Develop apps for IoT devices with the .NET IoT Libraries
.NET runs on a variety of platforms and architectures. Common Internet of things (IoT) boards, such as Raspberry Pi and Hummingboard, are supported. IoT apps typically interact with specialized hardware, such as sensors, analog-to-digital converters, and LCD devices. The .NET IoT Libraries enable these scenarios.
The .NET IoT Libraries are composed of two NuGet packages:
System.Device.Gpio supports a variety of protocols for interacting with low-level hardware pins to control devices. These include:
- General-purpose I/O (GPIO)
- Inter-Integrated Circuit (I2C)
- Serial Peripheral Interface (SPI)
- Pulse Width Modulation (PWM)
- Serial port
- Contains device bindings to streamline app development by wrapping System.Device.Gpio.
- Is community-supported, and additional bindings are added continually.
Commonly used device bindings include:
- CharacterLcd - LCD character display
- SN74HC595 - 8-bit shift register
- Max7219 - LED Matrix driver
- RGBLedMatrix - RGB LED Matrix
Supported operating systems
System.Device.Gpio is supported on most versions of Linux that support ARM/ARM64 and Windows 10 IoT Core.
For Raspberry Pi, Raspberry Pi OS (formerly Raspbian) is recommended.
Supported hardware platforms
System.Device.Gpio is compatible with most single-board platforms. Recommended platforms are Raspberry Pi (2 and greater) and Hummingboard. Other platforms known to be compatible are BeagleBoard and ODROID.
PC platforms are supported via the use of a USB to SPI/I2C bridge.
.NET is not supported on ARMv6 architecture devices, including Raspberry Pi Zero and Raspberry Pi devices prior to Raspberry Pi 2.