Windows 10 IoT Core: what you need to know

Windows 10 IoT Core: What you need to know
 

Windows 10 IoT Core: What you need to know

Windows 10 IoT Core is gradually growing in popularity among system designers, not only because of its simplicity, but also due to the combination of low licencing costs and ongoing updates. The latter ensures that major security holes and upgraded feature-sets for new standards are available (Microsoft has committed to a 10-year support window), while low license costs and dedicated commercial developer tools (notably the ability to create test and retail images) are gaining attention.

Here we take a look at the pros, cons and wider details around Windows 10 IoT Core…

Is Windows 10 IoT Core just a newer Windows CE?

There are similarities between the two offerings, in that they were both intended for embedded or limited resource systems. However, Windows 10 IoT Core is more of an out of the box experience where Windows CE was more of a toolkit for a system. Windows CE (WEC2013 – the last released version) allowed the kernel and drivers to be modified to suit the developer’s target system, while Windows 10 IoT Core is a closed system – both kernel drivers and kernel are closed and require driver signing – but the system can be configured for the target at the user level.

While the older Windows CE variants are still officially supported by Microsoft (see our detailed article ‘Windows Embedded Compact Migration[1] and End-of-Life Support’), the last version – WEC2013 – dropped mainstream support in 2018 and hits the extended support buffers in 2023. In short, its days are numbered.

Can Windows 10 IoT Core run the same applications as CE7 or WEC2013?

No, Windows 10 IoT Core can run UWP and .NET applications, C++ application will run but are limited in the features that can be supported. Microsoft has recognised that many developers will be keen to port applications from CE, so has developed a ‘pico’ solution[2]. This sees the entire Windows CE environment, both user mode and kernel mode, lifted into the pico process, which runs in the user mode of the underlying Windows 10 IoT OS. A Windows 10 platform abstraction layer handles syscalls (e.g., virtual memory allocations) from the pico process and delivers them to the Windows 10 host OS for processing.

Is Windows 10 IoT Core real-time like Windows CE?

Much like Android Windows 10 IoT Core is more of a presentation OS that is meant to drive basic physical outputs, display information and handle communications. Anything requiring hard real-time should be done with a companion microcontroller or other device that is better suited attached to the system.

This is not a huge departure for most users; any device running an OS has a much higher latency on small tasks compared with a simple microcontroller with just bare metal or simple RTOS.

Is Windows 10 IoT Core an embedded system?

Yes, it is intended for use in single purpose devices and is optimized for smaller devices with or without a display that runs on both ARM and x86/x64 devices.

Can I migrate my hardware from CE6.0/CE7.0 to WEC2013 or Windows 10 IoT Core?

It is possible but success will depend heavily on the CPU or module you are using on your target platform.

Windows 10 IoT Core is a closed system in terms of porting; only certain vendors have access to enable support on their modules or platforms unlike Windows CE that given the right knowledge could be done with effort on many platforms.

WEC2013 has higher basic requirements than CE6.0 which was happy to run on 64MB RAM. You are looking at a 256MB RAM as a sensible starting point. Windows 10 IoT Core has a minimum of 256MB but also requires at least 2GB of storage as well.

In short, most hardware migrations will require at least a redesign of the system CPU or CPU module and/or replacement with a device that has software support at a base level. This will then potentially require customisation to control the system as it did before.

Which version of Visual Studio do I use on WEC2013 or Windows 10 IoT Core?

WEC2013 can be used with Visual Studio 2012, 2013 or 2015. Windows 10 IoT Core has support using Visual Studio 2015 or 2017.

Is Visual Basic still supported?

WEC2013 and Windows 10 IoT Core support Visual C++, Visual C#, and Visual Basic. There are limitations with Windows 10 IoT Core when it comes to non-UWP apps, there is no legacy Win32 UI API for starters. What this means is that applications cannot call standard CreateWindow or other window handling functions from C++, also Windows Forms, WPF, and MFC classes are also not supported.

What is the footprint of WEC2013 or Windows 10 IoT Core?

Windows 10 IoT Core needs 256MB RAM and 2GB storage, while WEC2013 is less, 256MB RAM and 256MB storage is plenty for many systems.

What is the cost of WEC2013 or Windows 10 IoT Core?

WEC2013 has three licenses, Core (NR), Entry and General Embedded (full)

The Windows 10 IoT Core operating system remains royalty-free[3]. Windows 10 IoT Core Services is a paid offering that can easily be added depending on the scenario.

  • Businesses and solution integrators can purchase IoT Core Services through an Azure subscription. The subscription price will be $0.30 per device per month when the product releases later this fall. During the preview period, the price is $0.15 per device per month.
  • Partners enrolled in our Cloud Solution Provider (CSP) program will be able to resell the service and establish ongoing relationships with their customers. They can sell a flexible, pay-as-you-go subscription as needed to meet device requirements. This option will be available later in the year.
  • OEMs can license the service with a device by pre-paying for the service. This option will be available later in the year.

Can I try out Windows 10 IoT Core?

You can try out Windows 10 IoT Core on a number of platforms, one of the easiest low-cost ways is to try it on a Raspberry PI with Visual Studio. The licence-free community version will be enough to let you write and run code on this platform for evaluation purposes.

Of course, it is important to remember that care should always be taken evaluating systems on CPUs that are different from the one you will use on your end device. If you are planning on using an i.MX6, i.MX7 or i.MX8 in your final solution then get a reference board using that processor to de-risk any major variations in performance or features.

Conclusion

Windows 10 IoT Core is well worth investigating for embedded systems, and designers and developers should be familiar with its pros and cons for upcoming projects. While there are many alternatives out there, Windows 10 IoT Core fills a niche very competently.

[1] https://www.bytesnap.com/windows-embedded-compact-migration-end-of-life-support/

[2] https://blogs.windows.com/windowsdeveloper/2019/05/07/modernizing-windows-ce-systems-with-windows-10-iot/

[3] https://blogs.windows.com/windowsexperience/2018/07/18/microsoft-announces-the-public-preview-of-windows-iot-core-services-today/#2co44UvpC9l37MkW.97

How can ByteSnap help you today?

From start-ups to blue chips, ByteSnap’s embedded systems software developers are enabling companies to stay a step ahead by providing them with bespoke solutions. Maintain your competitive edge – contact us today and let your business be among them!

2019-12-05T15:51:13+00:00