Development environment

You can develop applications for Azure Sphere on Windows 10 Anniversary Update or later, or a Linux machine running Ubuntu 20.04 LTS or 18.04 LTS.

  • For Windows, install the Windows SDK. You can use Visual Studio, Visual Studio Code, or the command line to build, deploy, and debug applications on Windows.
  • For Linux, install the Linux SDK. You can use Visual Studio Code or the command line to build, deploy, and debug applications on Linux.

The Tutorials walk you through building and deploying your first application. We also provide a samples repo on GitHub that includes sample applications that demonstrate how to program Azure Sphere hardware and use the APIs.

Azure Sphere Application Runtime

The Azure Sphere Application Runtime provides two sets of libraries for high-level application development: the base APIs and the applibs APIs. The base APIs are based on libraries that don't exclusively target Azure Sphere devices, whereas the applibs APIs specifically target Azure Sphere devices. High-level applications built with the Azure Sphere SDK compile and link against these interfaces. These APIs can't be used in real-time capable applications.

Base APIs

Library Description
C standard library POSIX-based C development library.
curl library Transfers data over HTTP/HTTPS.
Azure IoT C SDK library Interacts with an IoT Hub.
TLS utilities library Supports mutual authentication over TLS.

The header files are installed in the Sysroots\API set\usr\include folders of the Azure Sphere SDK installation directory. See base APIs for documentation.

Applibs

Library Description
ADC Interacts with analog-to-digital converters (ADCs).
Application Communicates with and controls real-time capable applications.
EventLoop Monitors and dispatches events.
GPIO Interacts with GPIOs (general-purpose input/output).
I2C Interacts with I2C (Inter-Integrated Circuit) bus devices.
Log Logs debug messages that are displayed when you debug an application through the Azure Sphere SDK. Applications do not have stdout or stdin.
Networking Manages network connectivity.
Power management Enables applications to change the device power state.
PWM Interacts with pulse-width modulators (PWMs).
RTC Interacts with the real-time clock (RTC).
SPI Interacts with SPI (Serial Peripheral Interface) devices.
Storage Supports the use of on-device storage.
SysEvent Interacts with system event notifications.
UART Interacts with UARTs (Universal Asynchronous Receiver/Transmitter).
WiFiConfig Manages Wi-Fi network connectivity.

The header files are installed in the Sysroots\API set\usr\include\applibs folder of the Azure Sphere SDK installation directory. See Azure Sphere application libraries for reference documentation.

Tools

The Azure Sphere SDK includes the azsphere command-line tool for managing devices, developing and deploying applications, and working with cloud services.