Windows Embedded/IoT: A New Beginning (Part2)

Microsoft is changing the game with a new cloud focus. With new tools and product lineup, we look to clarify the new direction.

Authors Sean D. Liming and John R. Malin, Annabooks, LLC.


In the first part of the article, we discussed the new focus and the context for a change in direction. Now, in part 2, we will cover the new products and new marketing focus.

The New Product Lineup and Farewell to Windows CE

For the embedded/IoT market, Microsoft offers a cloud services suite and three Windows 10 platforms. Each Windows 10 platform offers a unique target market, processor support, and application support (See Table 1).



Table 1 Caption: Application Support is different for each Windows 10 IoT version. The traditional Form applications are still supported in Enterprise. UWP applications are supported on all versions.

Azure IoT Suite – Another IoT in the name. Azure IoT is the last major item in the product line up. Azure has a special IoT hub that allows companies to add IP enabled devices or gateways to interact with Azure cloud services. The Azure IoT Suite packages together multiple Azure services for specific solutions such as Data Ingestion, Command and Control, and Predictive analytics. Azure IoT is not limited to Windows platforms. Microsoft is making sure the Azure IoT suite supports major Linux distributions such as Ubuntu, Fedora, and Debian. The Azure IoT Suite is continually evolving and growing, so expect to hear more about this product in the future.

Windows 10 IoT Enterprise – If you have been on the Windows NT Embedded, Windows XP Embedded, Windows Embedded Standard 7, POSReady, and Window Embedded 8.x track, the Windows 10 IoT Enterprise is your next product. The older products broke the OS down into selectable components. Componentization was great when RAM and disk size were small, but sometimes breaking the OS into components introduced little quirks that were different from the desktop versions. Since memory and disk sizes are bigger and cheaper, Windows 10 IoT Enterprise is Windows 10 Enterprise. In fact, Windows 10 IoT Enterprise doesn’t really exist. Those looking for Windows 10 IoT Enterprise will not find it on MSDN. Windows 10 IoT Enterprise is just a marketing name, and the real product name is Windows 10 Enterprise 2015 LTSB. Nothing at the Windows 10 launched mentioned this, which left many asking for clarification. After the misguided product name changes in 2008, Microsoft should have passed on using ‘IoT’ in the product names.

The LTSB, Long Term Servicing Branch, is a new approach, which is similar to the Linux distribution model. There are two versions: Windows 10 Enterprise and Windows 10 Enterprise LTSB. The non-LTSB is for desktops, laptops, and tablets. The LTSB is for those building embedded/IoT devices. Non-LTSB or Current Branch (CB) will get build updates every 6 months. The build updates will include major feature changes. LTSB will be updated with new features every 2 to 3 years. Although, there is a 1 year anniversary edition that fills in some missing items from the first LTSB. Both contain the lockdown features of the old Windows Embedded products and both will get the same security updates. By moving away from components, this removes any chance of there being differences between the desktop and the IoT/embedded versions of Windows 10 IoT Enterprise. Best of all, the same tools are used to develop and deploy both the desktop OS and the Windows 10 Enterprise LTSB OS.

Windows 10 IoT Mobile – Windows Mobile has evolved over the years. Once a system that anyone can develop, Microsoft now works closely with a set of handheld manufactures to develop each individual port of the OS. Again the IoT in the name can be a bit confusing. Windows 10 IoT Mobile is Windows 10 Mobile, but targeted for dedicate mobile enterprise systems that run specific applications. Windows Phone might have a small market share in the smartphone market, but the lines of phone, tablet, and PC are merging, so don’t count out Windows 10 Mobile in the future.

Windows 10 IoT Core – This brings us to the smallest Windows 10 platform called Windows 10 IoT Core. The Core version strips away all the legacy Form application support. This means there are no control panel applications, no IIS, no Media Player, etc. Removing the big overhead features and legacy support reduces the foot print so the OS can run on small platforms like the Raspberry Pi, DragonBoard 410c, and the MinnowBoardMax. Only UWP and console applications are support, but these applications have access to micro controller I/O like SPI, I2C, and GPIO that Windows didn’t fully support in the past.

Microsoft started the effort using Windows 8.1 on the Intel® Galileo platform. The project served as an incubator to work out the micro controller I/O API and get interest from the Maker community. With the release of Windows 10 IoT Core, support for the other platforms was added. Applications are written in Visual Studio 2015 and remotely deployed and debugged over Ethernet. There are several project examples on the website that demonstrate SPI, I2C, Node.JS, and GPIO.

The challenge with porting was one of the major lessons learned from Windows CE. Microsoft has trouble supplying and maintaining a code base that others can use to build the kernel image for their particular boards. With so many processors and peripheral chips to support, it becomes impossible to manage all the little quirks. For the OEM, Windows CE required a large amount engineering resources to port the OS to different processors. When it comes to Windows 10 IoT Core, rather than offer the source code for anyone to build the OS, Microsoft is working with certain processor vendors to have ports already available. A Windows 10 IoT Core Pro version is available that allows OEMs to customize the OS by building from binaries, thus removing all the headaches and cost of porting. If a processor is not supported, the new porting plan is that you ask your processor vendor to work with Microsoft to produce the port.

Windows 10 IoT Core is a natural fit for those needing a GUI interface and wanting to communicate over serial or Ethernet. The problem with IoT Core is that it is stuck in the hobbyist/maker community. Until IoT core adds industrial board support, breaking out of the limited hobbyist market is not going to be easy. Windows CE started this and once support for x86 was added, Windows CE took off. With all the available embedded PCs (x86, IA64, and AMD64) on the market and the MinnowBoard Max using an Intel Atom 3800 processor, Windows 10 IoT Core could break out once the hooks to boot the OS are adopted.

The odd product out is Windows CE (aka Windows Embedded Compact ) When Windows desktop was ported to ARM, Windows Phone 8 and Windows Mobile quickly adopted the Windows on ARM platform, and Windows CE no longer fit into the overall strategy. Considering industry support was waning, economically, it didn’t make sense to keep developing tools and new kernel releases. The promise of a ROM-able, 32-bit Windows OS introduced in 1996, Windows CE had some early success, but over time, it was not as economically successful as the Windows Embedded desktop versions. When Windows Embedded Compact 2013 ends in 2023, Windows CE will be history.

To be very clear, Windows 10 IoT Core is not a direct replacement for Windows CE. There is no C#/VB.NET Form GUI application support, no deterministic real-time capability, and the current processor support is limited. Microsoft has developed tools to help those who want to migrate to Windows 10 IoT Core, but it is not a fit for everybody. Many companies made an investment in Windows CE, but time and technology advancements have passed it by. With Visual Studio and Azure support for more than just Windows, it appears losing customers to other operating system solutions is worth the risk.

A New Marketing Approach

With one operating system, having two operating system groups was redundant. There were several internal reorganizations to fine tune the company. During one of these reorganizations, the embedded team merged with the desktop. The Windows Embedded marketing team merged with the company marketing team to have a single marketing focus and message. The remaining Windows Embedded developers and program managers merged with the desktop team to create the Windows Division.

Economically, the reorganization makes sense. Like all reorganizations, the trouble comes because many of the old Windows Embedded members have left Microsoft or moved on to other jobs. The experience and knowledge in the embedded world, learned over two decades, can become lost; and it is the little things that show up: important features missing, image development tools not full developed, settings supported in previous versions not working, Windows 10 license pricing for embedded/IoT OEMs jumping a large percentage, and product life cycles shorter than before. These little details that were lessons learned and correct over time, but for many long time Windows developers, it is frustrating to see that the lessons have to be re-learned.

What is interesting is the marketing approach to the embedded/IoT space. Back in the late 1980’s, many OEMs purchased an off the shelf PC and installed MS-DOS. This was done with no marketing since everyone knew MS-DOS. Microsoft didn’t license to the embedded market until the original founder of Annabooks, John Choisser, got Microsoft’s attention that MS-DOS was being used in embedded systems but no one was paying for run-time royalty.  Microsoft started with a few people to support the market, but over time the marketing attention grew. For some of us, the marketing got in the way of the products over time. The one critical problem with the Windows Embedded message was the lack of support from upper management. The executives had a hard time embracing Windows Embedded and making it part of the overall company message. With Windows 10, IoT is a natural part of the company messaging. Since Windows is a well-known quantity; and Azure and Visual Studio support Windows, iOS, and Android, there is no real need to focus on the operating systems. Of course, IoT Core technical details still need to be developed and released. In a sense, Microsoft has returned to the original no-cost marketing for the OS.

Since the real focus is on cloud services, rather than selling to a device manufacture, Microsoft is focusing on selling Azure to the end customer. You can see this strategy played out in their recent TV campaigns is all about the cloud. The end customer would in turn specify what the device manufactures need to design into the device. The top down approach is a big risk. With so many cloud and data center solutions available, only time will tell if this approach will work.

All in on the Cloud

As Microsoft was focusing on cloud services and big data coming onto the launch of Windows 10, it was beginning to look like the embedded space might be abandoned altogether. It appears that those in the embedded space, at Microsoft, made it clear to the rest of the company that a large proportion of the data that Microsoft hoped to manage with their cloud services came from embedded devices that were web-connected.  The embedded space has not been well understood by those outside of that space; and as different business sectors became aware of embedded devices as a tool for expanding their business, they generated new names for embedded technology, which further confused things. M2M, Machine-T-Machine technology began to get attention.  This was just a specialized application of embedded technology.  This then gave way to talking about “things” that could be Web-connected, and the Internet of Things, IoT, was born.  Again, this was just another subset of embedded devices. It finally became clear to Microsoft that they should support IoT development to make it easy to develop devices that could be managed by Microsoft cloud services.  It also became clear that, if they were really smart, they would not limit their development tools to only Windows devices.  This produces the added advantage that, any developer who uses Microsoft tools to develop on non-Windows devices can easily move to a Windows platform, if their device requirements and costs could better be met by a Windows platform.

Microsoft has made some big changes to go all in with cloud services. Dropping older products to focus on a limited few products was going too eventually happened. For the many OEMs who have been on the Windows NT Embedded to Windows Embedded Standard 7 track, they will not see much of a change. What has changed is the support for other operating systems and platforms to make cloud services and big data the new main revenue stream moving forward.