Continuing their push into supporting IoT development end to end, Microsoft releases new GPIO library

In Microsoft’s continuing adoption of more advanced IoT functionality, they have just released a new library for .NET Core, System.Device.Gpio, which provides access to individual GPIO pins on controller hardware. With .Net Core running on Raspberry Pi, BeagleBoard, HummingBoard, and ODROID, this gives IoT an end-to-end story for using Microsoft technologies in their devices.
The new package is available via a free NuGet package, and since .Net Core runs on Linux as well as Windows 10 IoT, your choice of firm ware language does not have to be driven by OS cost considerations. Firmware written in C# can be developed quickly with the best-in-class development IDE Visual Studio, taking advantage of the huge number of opensource libraries and add on components the IDE offers, and then deployed to a Linux distro of 4.8 or above. Building IoT firmware with Visual Studio gives full step-by-step debugging so you can go to market with higher quality.
The new Microsoft offering relies on native drivers for the supported platforms providing easy development with drivers provided on the OS at install. It also provides the library Iot.Device.Bindings to enable communication with older sensors and devices using a higher level API that is easier to build against. This new library supports many devices, and you can look here to see if yours is on the list.
Note that this new library is still listed as “experimental”.
Supported Devices
Analog/Digital converters
- Adafruit Seesaw – extension board (ADC, PWM, GPIO expander)
- ADS1115 – Analog to Digital Converter
- Mcp3428 – Analog to Digital Converter (I2C)
- MCP3xxx family of Analog to Digital Converters
Accelerometers
- ADXL345 – Accelerometer
- BNO055 – inertial measurement unit
- LSM9DS1 – 3D accelerometer, gyroscope and magnetometer
- MPU6500/MPU9250 – Gyroscope, Accelerometer, Temperature and Magnetometer (MPU9250 only)
- Sense HAT
Gas sensors
Light sensor
- Bh1745 – RGB Sensor
- BH1750FVI – Ambient Light Sensor
- MAX44009 – Ambient Light Sensor
- TCS3472x Sensors
Barometers
- BMP180 – barometer, altitude and temperature sensor
- BMxx80 Device Family
- LPS25H – Piezoresistive pressure and thermometer sensor
- Sense HAT
Altimeters
Thermometers
- BMP180 – barometer, altitude and temperature sensor
- BMxx80 Device Family
- Cpu Temperature
- DHTxx – Digital-Output Relative Humidity & Temperature Sensor Module
- HTS221 – Capacitive digital sensor for relative humidity and temperature
- LM75 – Digital Temperature Sensor
- LPS25H – Piezoresistive pressure and thermometer sensor
- MLX90614 – Infra Red Thermometer
- MPU6500/MPU9250 – Gyroscope, Accelerometer, Temperature and Magnetometer (MPU9250 only)
- Sense HAT
- SHT3x – Temperature & Humidity Sensor
- Si7021 – Temperature & Humidity Sensor
Gyroscopes
- BNO055 – inertial measurement unit
- LSM9DS1 – 3D accelerometer, gyroscope and magnetometer
- MPU6500/MPU9250 – Gyroscope, Accelerometer, Temperature and Magnetometer (MPU9250 only)
- Sense HAT
Compasses
Lego related devices
Motor controllers/drivers
Inertial Measurement Units
- BNO055 – inertial measurement unit
- LSM9DS1 – 3D accelerometer, gyroscope and magnetometer
- MPU6500/MPU9250 – Gyroscope, Accelerometer, Temperature and Magnetometer (MPU9250 only)
- Sense HAT
Magnetometers
- AK8963 – Magnetometer
- BNO055 – inertial measurement unit
- HMC5883L – 3 Axis Digital Compass
- LSM9DS1 – 3D accelerometer, gyroscope and magnetometer
- MPU6500/MPU9250 – Gyroscope, Accelerometer, Temperature and Magnetometer (MPU9250 only)
- Sense HAT
Liquid Crystal Displays
Hygrometers
- BMxx80 Device Family
- DHTxx – Digital-Output Relative Humidity & Temperature Sensor Module
- HTS221 – Capacitive digital sensor for relative humidity and temperature
- Sense HAT
- SHT3x – Temperature & Humidity Sensor
- Si7021 – Temperature & Humidity Sensor
Clocks
Sonars
Distance sensors
Passive InfraRed (motion) sensors
Motion sensors
Displays
- Adafruit Seesaw – extension board (ADC, PWM, GPIO expander)
- Max7219 (LED Matrix driver)
- RGBLedMatrix – RGB LED Matrix
- Sense HAT
- Solomon Systech Ssd1306 OLED display
- Solomon Systech Ssd1351 – CMOS OLED
- TM1637 – Segment Display
- Ws28xx LED drivers
GPIO Expanders
- Adafruit Seesaw – extension board (ADC, PWM, GPIO expander)
- Mcp23xxx – I/O Expander device family
- NXP/TI PCx857x
- Pca95x4 – I2C GPIO Expander
CAN BUS libraries/modules
Proximity sensors
Touch sensors
- Adafruit Seesaw – extension board (ADC, PWM, GPIO expander)
- MPR121 – Proximity Capacitive Touch Sensor Controller