CIO

How Microsoft can enable the internet of things

Microsoft has two IoT-specific operating systems Windows 10 IoT Core for low-power devices and Windows 10 IoT Enterprise for more demanding devices

As the Internet of Things (IoT) phenomenon continues to grow, Microsoft has responded by contributing two new editions of Windows 10 – Core and Enterprise –  that are aimed at radically different parts of the devices and systems market.

Here's how Windows 10 IoT is used today, and where it might be going in the future.

Windows 10 IoT Core

The Core edition is a barebones Windows kernel that has been stripped down significantly in order to run on low-power hardware. It is not a full version of Windows, but it is enough to light up the hardware and run whatever application is being designed for that board. This version of Windows 10 has no shell and essentially supports only universal apps – those coded to run in the managed environment of the Universal Windows Platform (UWP) and NOT traditional x86 or x64 apps. This OS version supports a maximum of 256MB of RAM and 2GB of device storage and can run on the x86 chip platform or the ARM platform for low-power devices.

It is also free; the only cost is to agree to Microsoft’s terms and conditions. It’s downloadable right from the Web – just pick the version that corresponds to the board being used in development. Currently supported boards include the Raspberry Pi versions 2 and 3, the Dragonboard 410c and the MinnowBoard Turbot/MAX, which is a 64-bit platform.

There is also a version in preview for the very widely used NXP i.MX 6 and i.MX 7 processors that have the unique capability of integrating with a part of the hardware that prevents malware, even if it has breached the OS layer, from tampering with the physical control of the device.

Upsides of Core

For really lightweight devices, Core offers a way to install an operating system that supports apps that developers can build using known tools and languages, like Visual Studio and C#, without a bunch of rewriting to target Linux kernels and other things that might not be as familiar. The idea is to have a platform where developers can ramp up quickly and easily. It is also free with no royalty payments required, and it has deep hooks into the Azure platform to allow raw sensor and input data to flow freely into the cloud, where it can be massaged and teased of insights and trends.

Windows 10 IoT Enterprise

The Enterprise edition is a little more confusing. Windows 10 IoT Enterprise is an official product, but from a bits-on-the-DVD perspective, it is an exact equivalent of Windows 10 Enterprise, which means that the only distinction between the two products is licensing. It’s available only through direct and indirect embedded OEM agreements, not via any sort of retail channel, so this edition is really limited to device manufacturers in the healthcare, industrial, financial or similar verticals that build large devices that require a full OS to run their device controls. That doesn't really fit the the strict definition of the population of devices that make up the “Internet of Things,” but there it is.  Th Enterprise edition is clearly too heavy for the likes of Raspberry Pis, and it still comes with the servicing and patch-management overhead of any other Windows 10 Long Term Servicing Branch (LTSB) edition, but it is aimed at being run in systems that do not change much and are generally devoted to single purposes, like controlling machinery or powering kiosks.

Other Utilities

Users of the Core edition will want to download the Windows IoT Dashboard, which is a nice gateway into the world of dealing with Windows on small devices. This utility helps getting started with headless devices in a systematic way. It will help in formatting the SD cards that will be inserted into the devices in order to boot the OS, and it also provides a central place to execute PowerShell commands, transfer files to and from the devices, and shut down and restart the devices. The Dashboard app also has plenty of coding samples, including Hello World and a networked 3-D printer app to get started developing apps. Many other examples are freely available on Github.

What about Windows Embedded?

You may be wondering where Windows Embedded went, as the name has disappeared from Microsoft SKU lists. The Windows 10 IoT editions are indeed the replacement for Windows Embedded. It isn’t the best fit for a replacement, because there are many systems like ATMs and medical equipment that run Windows Embedded that might not be considered members of the internet of things, but the roadmap is clear on this point.

There are a couple of notable differences between the two products:

  • Unlike Windows Embedded, one cannot choose which components of Windows 10 to install and generally cannot customize the branding and chrome of the OS in Windows 10.
  • Both editions of Windows 10 IoT – Core and Enterprise –will have a full 10 years of support lifecycle behind them, as they are both based on the LTSB of the Windows client.

The clear picture here is that in the Windows 10 era for device manufacturers, the IoT editions are the story.

Why would an enterprise choose Windows 10 IoT?

Manageability and security are the two areas of most interest to enterprises for both Windows 10 IoT versions. One might image that since these editions of Windows are geared toward ubiquitous, lightweight, always connected devices, there would be some way of managing all of those endpoints. If that is the case, Windows 10 Enterprise is best suited for all but the lowest power devices. Because it is a full-fledged Windows install, it can be managed by whatever Windows management infrastructure is already in place, whether that is Group Policy, System Center, WMI-based settings or anything else.

For Core devices, however, any traditional mobile-device-management system (think Microsoft Intune or System Center) that enrolls devices via certificates can manage Windows 10 IoT. You can also use the Azure IoT Hub service and its device management functionality can also keep tabs on these devices.

In the Wild Today

A number of production devices in the market today already use Windows 10 IoT Core. These include the GLAS smart thermostat by Johnson Controls, the Askey TurboMate E1 smartwatch wearable, and the Misty robot from Misty Robotics.

Many other applications of IoT technology require support for other boards that are widely used in production sensors and other devices. Some of these boards are now supported in preview, including the following:

Future of Windows 10 IoT

As the IoT matures and Windows 10’s capabilities continue to improve, expect to see deeper integration with Azure’s data ingestion and management services as well as enhanced device management and security for the Core edition, all coupled with a wider expanse of hardware support, including cellular modems and 5G connectivity.

Until then, the best way to get started is to grab a Raspberry Pi, a breadboard, and a copy of Windows 10 IoT Core and get into the sample code.