Azure IoT Edge Modules on Windows IoT

This directory contains sample modules demonstrating various features of Azure IoT Edge on Windows. Each of these samples can be treated as standalone samples that show how to use each Windows feature from an Azure IoT Edge module. Additionally, several of them are designed to work together to demonstrate coordinating a set of modules in cooperation and distributed across multiple IoT Edge devices. See MultiModule Architecture for an overview of how the multiple module coordination is designed and installed.

Samples

Readme C# Project
Window Machine Learning (WinML) with Azure Custom Vision Service Fruit Object Classifier Model FruitWinML
Serial I/O using PInvoke to Config Manager and Classic Win32 Serial APIs) SerialWin32
Windows Machine Learning using SqueezeNet Object Detection Model from the ONNX Model Zoo SqueezeNetObjectDetection
GPIO using standard WinRT Simple Peripheral Bus APIs GPIO
Azure Function that responds to Azure IoT Hub events and reflects GPIO state across devices HubEventHandler
I2C TempHumidity Sensor I2CTempHumidity
I2C Accelerometer I2C_mpu6050
SPI Accelerometer SPI_mpu9050
Pulse Width Modulated Fan Motor PWMFruit
Serial IO using legacy comX ports with classic .net APIs SerialIoPorts
Serial IO using WinRT serial device API UART_lcd
Common library for shared utilities and abstract base classes Common

Building the samples

All the projects reference a common MSBuild properties file in the root of the project set called Common.CS.props . In addition to other things, this file contains defaults for the windows sdk root path and the windows sdk version. If you have different values you can either modify your copy of the props file, or override them from environment variables with the same names as the prop variables -- WindowsSdkRoot and WindowsSdkVersion

Running the samples

These samples can be run on Window IoT Core or Windows IoT Enterprise. If you use Enterprise then you will need to be sure the optional Windows container feature is enabled. If you use IoT Core then you need a .ffu image that contains the Windows Container Optional Feature.