This repository contains a collection of inspirational, unmaintained Azure Sphere software samples and hardware designs ready to be reused.
For maintained samples and designs, see the official Azure Sphere Samples, Azure Sphere Tools, and Azure Sphere Hardware Designs repos:
- https://github.com/Azure/azure-sphere-samples
- https://github.com/Azure/azure-sphere-tools
- https://github.com/Azure/azure-sphere-hardware-designs
See the Azure Sphere Getting Started page for background on Azure Sphere.
Each sample/hardware design will include instructions in the readme for any system requirements, maintenance expectations, who to contact for support, and the amount of testing completed.
Each folder within this repository contains a README.md file that describes the samples or hardware designs therein. Follow the instructions in each individual readme.
Folder name | Description |
---|---|
AzureEventGrid | This project shows how to connect an Azure Sphere device to the Azure Event Grid service. |
AzureFunctionApp_AzureSpherePublicAPI | This project shows how to create a Python Azure Function app that uses Managed Service Identity to call the Azure Sphere Public API |
AzureIoT_StoreAndForward | This project shows how to add telemetry store and forward capability to the AzureIoT sample |
AzureSphereSquirrel | This project shows how to run a high-level scripting langauge (Squirrel Lang) on MT3620 for powerful high-level API use, code hot-reload and unit testing. |
BalancingRobot | This project contains the hardware, enclosure, and software files needed to build an Azure Sphere and Azure RTOS self-balancing robot. |
CO2 Monitor healthy spaces | This project integrates a CO2 monitor with IoT Central. It covers security, driver development, IoT Plug and Play, deferred updates, and watchdogs. |
CrashDumpsConfigure | Script that can be used to get or set crash dump policy for your device groups in the Azure Sphere Security Service |
AzureIoTMessageWithProperties | A project that shows how to add custom properties to an Azure IoT Hub telemetry message, which can then be used for message routing |
AzureSphereTenantDeviceTwinSync | A project that shows how to update IoT Hub device twin with OS Version, Product/Device Group and more based on telemetry triggers using Azure IoT Hub/EventGrid and a custom ASP.NET Core REST API |
DeviceTenantFinder | Utility that makes it easy to find the Azure Sphere tenant name/Id within your tenants for a given Device Id |
DNSServiceDiscoveryUnicast | Application showing unicast DNS service discovery to allow discovery of and connection to services outside of the local network |
DRAMClickboard | Application showcases the capabilites of interacting with a Mikro DRAM Click board on Azure Sphere |
EAP-TLS_Solution | A library & demo solution implementation for Azure Sphere-based devices connecting to Extensible Authentication Protocol – Transport Layer Security (EAP-TLS) networks. |
EncryptedStorage | A project demonstrating simple use of the wolfCrypt authenticated encryption APIs |
GetDeviceOSVersion | A project that retrieves the OS versions for all Azure Sphere based devices. |
Grove_16x2_RGB_LCD | A project that shows how to integrate a Seeed Grove LCD/RGB 16x2 display |
HeapTracker | A memory allocation tracking library that can help diagnose memory leaks. |
LittleFs_Encrypted_RemoteDisk | A project that shows how to add encrypted, authenticated storage using Littlefs to an Azure Sphere project (with remote storage) |
LittleFs_RemoteDisk | A project that shows how to add Littlefs to an Azure Sphere project, uses Curl to talk to remote storage |
LittleFs_SDCard | A project that combines Littlefs with SD Card support, and PC utilities to read the SD Card and extract files/folders. |
MQTT-C_Client | A project that shows how to add the MQTT-C library to an Azure Sphere project. There is also a host Python app provided for testing purposes. |
MultiDeviceProvisioning | Shows how multiple Azure Sphere devices can be provisioned automatically and simultaneously from a single PC. |
MutableStorageKVP | Provides a set of functions that expose Key/Value pair functions (write, read, delete) over Azure Sphere Mutable Storage. |
NativeBlink | A project demonstrating the use of the Azure Sphere Native Container to build, debug, and unit test a native Azure Sphere app |
NetworkInterfaceAddresses | A minimal Azure Sphere app that prints the MAC and IP address of the given network interface. |
OSNetworkRequirementChecker-HLApp | A sample app that performs DNS resolver and custom NTP test for diagnosing networking connectivity problems. |
OSNetworkRequirementChecker-PC | A PC command line utility for diagnosing networking connectivity issues. |
OpenSourceProjectsSupportingExternalPeripherals | This is a list of open-source projects supporting external hardware on the Azure Sphere MT3620 platform |
ParseDeviceLog | Tools that can parse device logs in to human readable format. This content has moved to the Azure Sphere Tools repository. |
PWMAudio | Generate tones using PWM on the real-time cores |
RS485Driver | An RS-485 real-time driver with HL-Core interfacing API. |
ServiceAPIDeviceCodeAuth | Code snippet to access public rest api using device code flow from a web app. |
SetIoTCentralPropsForDeviceGroup | Utility that makes it easy to set an Azure IoT Central Device Twin property for all devices in an Azure Sphere Device Group. |
SetTimeFromLocation | Project that shows how to use Reverse IP lookup to get location information, then obtain time for location, and set device time. |
SimpleFileSystem_RemoteDisk | Project that shows how to add a simple FIFO/circular buffer file system to an Azure Sphere project, uses Curl to talk to remote storage |
ToggleClassicCLI | Scripts for Windows and Linux that allow you to test the removal (and restore) of the Azure Sphere Classic CLI. |
TranslatorCognitiveServices | Project that shows how to call Microsoft Translator Cognitive Services APIs from Azure Sphere |
UdpDebugLog | Code that demonstrates how to override Log_Debug to broadcast on a UDP Socket, includes a Desktop Viewer application. |
VS1053AudioStreaming | Project that shows how to play audio through a VS1053 codec board |
WebHookPublicAPIServicePrincipal | Project that shows how to use the Azure Sphere Public API with Azure Active Directory Service Principal authentication |
WifiConfigurationViaAppResource | Project that shows how to configure device Wi-Fi settings using an embedded JSON resource file |
WifiConfigurationViaNfc | Project that shows how to configure device Wi-Fi settings using NFC |
WifiConfigurationViaUart | Project that shows how to configure device Wi-Fi settings using Uart |
IndustrialDeviceController | Project that provides a set of tools, service and software to enable collecting real time telemetry data from various CE devices through MODBUS protocol in a secure, low latency and reliable way. |
Rust | Rust language support for Azure Sphere |
This project contains a collection of Microsoft employee demos, hacks, hardware designs, and proof of concepts. Microsoft authors of new contributions should fork the repo and create a pull request using a new folder, using the appropriate README template for software or hardware contributions, and following the checklist in the pull request template.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
For information about the licenses that apply to a particular sample or hardware design, see the License and README.md files in each subdirectory.