Windows 10 IoT Core Pro
The new Windows 10 IoT Core is a minimized version of Windows 10 that runs on the following devices: The Raspberry Pi 2 and 3, the DragonBoard 410c and the MinnowBoard MAX. Microsoft already had a minimized version of Windows 8.1 running on small footprint devices such as the Intel Galileo board. Now they have released the final version based on Windows 10 called Windows 10 IoT Core. Microsoft released this version of Windows 10 at the same time as the Windows 10 IoT Enterprise system.
Windows 10 IoT Core is a great operating system for small footprint devices or as an endpoint for the cloud. There are many great features included in this version. Some of them are described here.
Windows 10 IoT Core is designed for only one Graphical User Interface Application (GUI) but it is possible to run as many applications as you want in the background (background workers). You can use a Windows 10 IoT Core running device in two different modes: headed and headless.
The headless mode means that you do not have to connect a display because you can connect to the device remotely. You can use the headless mode if you do not need a Graphical User Interface.
All applications that should run on Windows 10 IoT Core must be Universal Windows Apps. These are applications are based on the new Universal Windows Platform (UWP). The Universal Windows Platform is a new platform from Microsoft for Windows 10 devices. This means that, if you write an application once based on the UWP, you can use it on any Windows 10 running device – it doesn’t matter if it is Windows 10 Enterprise, Windows 10 Mobile, Windows 10 IoT Core, Xbox or HoloLens.
To port existing applications to the Universal Windows Platform, Microsoft designed some tools to analyze the source code of the existing Windows applications. If you use these tools, they will tell you what part of the source code you have to change to build an Universal Windows App.
One of the most interesting things is, that this operating system runs on two different architectures. For example: The Windows 10 IoT Core version on the Raspberry Pi 2 and 3 is ARM-based and the Windows 10 IoT Core version on the MinnowBoard MAX runs on x86-based architecture. There is a 32-bit and a 64-bit version available. If you use the x86-based version, it is possible to use the drivers from the classic Windows 10 devices. For the ARM version it is required to compile the drivers.
Remote Connection via PowerShell
After the installation it is possible to connect to your Windows 10 IoT Core device remotely by using the PowerShell. You just need to start the PowerShell as an administrator and type in two commands. The first to start the Windows Remote Management Service and the second to connect to the device remotely.
Via this connection it is possible to configure a few things like the name of the device or the password, which is recommended because all devices have the same password after the first boot. You can also retrieve a process list and setup a startup application.
Remote Connection via Remote Client
It is also possible to connect to a Windows 10 IoT Core running device remotely with the Windows IoT Remote Client. You can download this application from the Windows Store. The Remote Client shows you a list of all Windows 10 IoT Core running devices in your network and you can select a specific device you want to connect remotely. After the connection is established, you will see the devices screen content and can use your mouse and keyboard to control the device. This allows to run the device headless and still be able to control and configure it easily.
Windows IoT Core Dashboard & Device Portal
The IoT Core Dashboard allows you to see a list of all Windows 10 IoT Core running devices connected to your network. You can click on a specific device and select “Open in Device Portal”. There is a great web interface for your Windows 10 IoT Core device which lets you configure many things much easier than with the PowerShell remote connection.
It is possible to do important standard configurations like changing the name of the device or the password of the administrator account here. You can also change the time zone or configure the display resolution and the display orientation here. Many things listed here are also displayed in the default application on the device itself.
In this section you can configure your applications. You can change the default GUI application and you can do the installation of all applications by just browsing for the AppX files to install them on the device. You can also uninstall applications which you do not need on the device anymore.
This point gives you a great overview about the utilization of your device. It shows you the graph of the CPU and the RAM memory. You can also see how much memory is installed and in use. There is also the graph of the GPU utilization visible if your device supports it and you can take a look on the I/O of the device.
There is also a simplified Device Manager as on a normal Windows 10 running device. You can update drivers in there and export a list of all devices into a file.
Windows 10 IoT Core devices search automatically for new updates.
This configuration page lists you all available Windows Updates and will show you some information during an installation progress.
If the device has scheduled an update installation, you can also start the process immediately here.
Microsoft is continuously improving the web interface on Windows 10 IoT Core to allow you to setup the device more easily. The most recent version could already include more than shown here!
Installation / Image Deployment
Prepare to install
To start the installation, please run the IoT Core Dashboard and select “Install”. Then you just have to select your device type and the microSD card and hit the “Install” button. After doing this, a file called “Flash.ffu” will be downloaded automatically. This .ffu-file is similar to a .wim file but includes the content of a full disk with the Core system on it. The difference between a .wim-file and a .ffu-file is that a .ffu-file also includes complete disk partitions and not just files.
Now the tool will flash the image on your microSD card. After this has completed, you can hook up your board and start it.
The first boot will take about two minutes. Then you will see the Windows 10 IoT Core default application instead of a classic desktop shell.
This default application shows you some details about the device like the name, the IP address or how it is connected to the network. You can configure things like the language, bluetooth or network settings.
Please click here for a very detailed guide that shows you how to create a basic image, add an app to your image, add a file and a registry setting to an image, add networking and other provisioning package settings to an image, add a driver to an image, build a retail image, creating your own board support package, update your apps.
Comparison: Windows IoT Core vs Windows IoT Core Pro
Lets take a closer look on the two different versions of Windows 10 IoT Core. There two different versions available: The normal “Windows 10 IoT Core” version and the “Windows 10 IoT Core Pro” version. Technically they are nearly the same but in general the Pro version has some advantages which are very important for the embedded channel.
Windows 10 IoT Core
Windows 10 IoT Core Pro
Windows 10 IoT Core is for makers (hobbyists). That means commercial projects must be registered. They have to sign an agreement for Microsoft. This agreement contains licensing terms which are similar to our ATs and they get very limited liability from Microsoft.
Windows 10 IoT Core Pro is covered through the Customer License Agreement (CLA).
In the normal version, you have to install all updates and the devices can update themselves at any time in the field. This is a big problem because if an application doesn’t work with the new update all devices are not functional anymore and it is not allowed to deactivate the updates.
In the Pro version the Current Branch for Business is available. That means that you have control over the updates. You can defer them for at least 4 months and test the updates before you update all your devices. There is also the possibility to deactivate them completely.
For the normal version you get no COAs and you have to sign an agreement for the commercial usage for Microsoft.
For the Pro version you can pay a small fee to receive a Tracking label.