For many years, Microsoft developed operating systems for mobile and embedded devices. We used Windows CE and Windows Embedded on industrial devices. Then, Microsoft released a user-friendly version of Windows CE for mobile phones, called Windows Mobile. Mostly, technical and IT departments used the Windows Mobile OS.
Meanwhile, Microsoft released the .NET Micro Framework to target software people who are trying to enter into hardware development. .NET Micro Framework makes ARM-based microcontrollers to run .NET code. However it was fun to develop embedded projects on Visual Studio, there were performance issues while running .NET code on microcontrollers.
When IoT concept increased its popularity, Microsoft made an excellent step towards to the smart devices and made Windows 10 kernel to be compatible for all devices. It means Windows 10 operates on x86, x64 and ARM platforms. So, its Universal Windows Platform (UWP) applications can be compatible with PC, tablet, Xbox, Hololens and Raspberry Pi like devices.
It's evident that each platform has its personality. Making the whole Windows run on low powered devices would be a failure. Therefore, Microsoft released a primary operating system for the embedded devices and named it as Windows 10 IoT Core. At a glance, the first thing that distinguishes IoT Core from desktop versions of Windows is the absence of the Start menu. As we design embedded devices for a single purpose, there is no need for a Start menu system. Instead, we select an application to run at start-up, and it runs until we start another program. Imagine you're developing an autonomous delivery robot, and probably you'll never want to have a classical Windows UI. (Of course, there is support for multiple background services.)
If you wonder what is possible with Windows 10 IoT Core, there are few use-cases:
- You can develop UWP apps with modern interfaces, and create interactive digital signages.
- You may wish to make a headless device, e.g., an IoT hub to bridge local area sensor data with the cloud.
- GPIO Pins on some hardware creates new opportunities for hardware developers. You can control relays, valves, motors or any physical devices.
- As you'll probably have USB host on your device, integrating devices like a camera or gamepad is possible.
- IoT Core transforms some non-network 3D printers into wireless ones.
- Using shields or HATs (Hardware Attached on Top), you can easily add new functionalities to your devices. One example is our IoT HAT sensor expansion for Raspberry Pi.
To sum up, Windows 10 IoT Core brings modern application environments to your IoT devices. If you're working with the .NET platform, IoT Core is here to be your best friend.