Microsoft’s Windows 10 IOT core , has been available for the Raspberry pi 2 since around April to May 2015 and brings the Raspberry pi range of development boards into Microsoft “Internet of Things” arena, alongside other such development boards as the MinnowBoard Max boards along with the Intel Galileo board.
Ever since it’s release I have working on setting up and testing an installation using a Raspberry pi mode 2, so I just wanted to share my initial impressions and experiences.
Firstly I think its important to state just exactly what Windows 10 IOT core for the Raspberry pi is! and what it is not! along with firstly the current methods for project development using Linux.
Raspberry Pi development using a Linux OS
Since the very beginning of the Raspberry pi project the concept has been to produce a cheap small computer that can be used to develop electronics projects ( Such as Robotics and/or Sensor related applications ! ) that can be designed using development languages such as Python or C++. In order to achieve these aims the Raspberry Pi has used ARM core CPU’s alongside versions of the Linux Operating system. With user installed copies of Python and/or C++. As with all Open systems installations building this configuration and related projects is completely free.
This model of systems installation has provided for a completely self-contains development unit that can be controlled locally (i.e. by installing a keyboard/screen and a mouse) or remotely ( Via SSH or VNC over a network connection ! ) for all application and project development stages. The advantages to this configuration are that you are working in a standalone environment, i.e. you only need to work with your Raspberry Pi in order to develop meaningful projects !
Just what is Microsoft’s Windows 10 IOT core and the Internet of things ?
This short introduction below, is how Microsoft has chosen to introduce Window 10 IOT core to its potential users.
We are excited to announce the public release of Windows 10 IoT Core for the Raspberry Pi 2 and the MinnowBoard Max. Visit the Windows IoT Dev Center to choose your target board, then walk through the steps to provision your board, acquire the tools, and get started Making. This release of Windows 10 IoT Core requires a development machine running the 7/29/2015 release of Windows 10 (Build 10240) and Visual Studio 2015.
Introduction to Windows 10 IoT Core
Windows 10 IoT Core is a new edition for Windows targeted towards small, embedded devices that may or may not have screens. For devices with screens, Windows 10 IoT Core does not have a Windows shell experience; instead you can write a Universal Windows app that is the interface and “personality” for your device. IoT core designed to have a low barrier to entry and make it easy to build professional grade devices. It’s designed to work with a variety of open source languages and works well with Visual Studio.”
So as you can read and see from the above text and image, Windows 10 IOT core, is not Windows 10 on the Raspberry pi 2 , in fact its not a standalone operating system at all !!!!!
Well isn’t that’s very interesting !!! ok lets take a quick look at what it is then !
When you have completed the installation of Windows 10 IOT core, following the setting up and getting going instructions from the link here, you are presented with a very basic screen on first boot, this shows such details as your IP address and basic system details such as installed devices.
Other available screens are a very basic training screen that provides access to the Microsoft’s IOT web site videos, along with an extra screen that shows full details of your Raspberry Pi 2.
So then , I think the picture here has becoming clearer as to what Microsoft has given the owners of supported Windows 10 IOT development Boards along what they have not !
What they have not done clearly, is to port a full or even cut down version of “Windows 10” to the ARM processor boards!
So what have they done ?
Well the Windows 10 Installation you have built on your Raspberry pi 2 system is nothing more that an application development and processing interfaces with some basic network management and web-server tools, these facilities provide for access to the board via a TCP/IP connection, wired or Wireless. Windows 10 IOT core allows for development of applications remotely on a Windows 10 based Desktop/Laptop system. It also allows these systems to Install applications for testing and final project release along with monitoring these project based application when they are running live.
As you can see from the above images, along with installing IOT core on a development board, you also install applications onto your Windows 10 Development system, these applications and network services search your local Network for any installations of “Windows 10 IOT” that happen to be broadcasting, once found they allow you to connect to these systems via Windows Powershell and/or using an internet browser.
The final element of this configuration is the inclusion of Microsoft’s Visual studio 2015, which provides for application development using its supported Languages such as C++ or C#. If your familiar with Visual studio then this is great , if not you have a bit of a learning curve to navigate around before you can just start coding. For example you will have to configure the IOT modules in Visual studio 2015 in order to manage application development and release.
So that’s what Windows 10 IOT core on the Raspberry Pi is and is not!
It’s not a small device version of Windows 10 , its not a command line version of Windows 10 and its not even a standalone operation system in the form we all know.
Windows 10 IOT core simply allows you to connect your Raspberry pi 2 to a machine running Windows 10 full! with Visual Studio installed and start developing, simple as that !
From a personal point of view , I have been left wondering what the point is ? in as much as, I am wondering why at a time when The Raspberry Pi has just been upgrade to a Quad core CPU with double the RAM offering much better performance, would you bother to install Windows 10 IOT core , which does very little with the Raspberry Pi 2 ‘s capabilities.
Well , there are some very good reasons, however they in no shape or form make the Linux operating system redundant for the Raspberry Pi project, indeed to convert the Pi project over to Windows 10 could potentially kill it altogether !!
The only reasons I can think of to use Windows 10 IOT core, is it would allow you to run a Raspberry as a Headless system with a network connection, so that you have no need to purchase a keyboard/mouse or a screen. However this is something you can easily achive anyway with a simple (SSH/TELNET or VNC) client installed under Linux!
For me then this leaves only one possible reason and this is that some project developers may not want to learn the Linux operating system and using Windows 10 IOT core with Visual Studio is a great answer for these individuals.
I personally feel that the reason that Microsoft has take this model of ( Client / Server development !) is that they want to keep developers tied into having to use a Primary Windows 10 installation with Visual Studio 2015 as a part of the equation, You also have to take into account that Microsoft no longer offers a command line ability of control for developing applications or even a text based editor such as is available if needed in Linux. The new Raspberry2 however is very capable of running development IDE’s locally such as Geany or Netbeans, x-windows based applications.
I think that all this depends on how you view your raspberry pi or other such devices, you can see them as dumb but programmable devices that sit at the end of a food chain of development and finally a live active project , such as being a device used to react to readings from a sensor and then performing localized tasks that relate to these sensor reading, or you can see them as standalone computer systems the are very capable of running, as a standalone project with all development and application processing being performed locally. The very fact Microsoft calls Windows 10 for these devices “The internet of things ” (IOT core) should be the clue here! as in they expect your development board to both be programmed and then controlled using a TCP/IP connection, thus the first perspective above.
A factor that you may need to take into account is that you may not want your controller boards like the Raspberry pi to be connected to the internet as it maybe much more secure and efficient to run standalone, in which cases using a local ( screen, keyboard and mouse ) is a better option. Also as already said , Lunix offers many ways to connect remotely such as (SSH , TELNET and VNC).
As a parting comment , I feel that Windows 10 IOT core, is just offering another possible route into developing projects based on Raspberry Pi hardware, however many will worry about seeing their open source system even having Microsoft nudging in at all. For these people however the answer is simple, you have no need to use it, Linux is doing very well in these kind of environments ( along with servers and desktops !) and will remain doing so for a very long time to come , so keep using it !!!