The Windows developer program for Internet of Things (IoT) is the first in a series of IoT programs for the creation of connected devices. This program is tailor-made for both makers and Windows developers entering into the IoT space. With this program, Microsoft has launched a new Windows Developer for IoT Portal, with documentation and examples to support the developer kits. These developer kits include a Galileo board and preview Windows image that supports the standard Arduino Wiring API set and a subset of Win32 API. Galileo board is the development board.
The Arduino extension boards (called shields) are programmed using the open source Wiring programming framework for microcontrollers. To ensure this, developers can easily add off-the-shelf Arduino shields on top of their Intel Galileo board running the preview Windows image from the developer kit. MS Open Tech is open sourcing the Windows implementation of the Wiring API set that ships with the preview image. This implementation makes it very simple for developers to add functionality to their project, as the exact same code that comes with the shields for Arduino usually developed by the community, can be added as is into their Windows project.
The Intel Galileo board is the first in a family of Arduino-certified development and prototyping boards based on Intel architecture, providing users with a fully open source hardware and software development environment. The board complements and extends the Arduino line of products to deliver more advanced compute functionality to those already familiar with Arduino prototyping tools. It is designed to be hardware-, software-, and pin-compatible with a wide range of Arduino Uno R3 shields and also allows users to incorporate Linux firmware calls in their Arduino sketch programming.
The key features of Intel Galileo are:
Intel Quark™ SoC X1000 application processor, a 32-bit, single-core, single-thread, Intel Pentium processor instruction set architecture (ISA)-compatible, operating at speeds up to 400 MHz.
Support for a wide range of industry standard I/O interfaces, including a full-sized mini-PCI Express slot, 100 Mb Ethernet port, microSD slot, USB host port, and USB client port.
256 MB DDR3, 512 kb embedded SRAM, 8 MB NOR Flash, and 8 kb EEPROM standard on the board, plus support for microSD card up to 32 GB.
Hardware and pin compatibility with a wide range of Arduino Uno R3 shields.
Programmable through the Arduino integrated development environment (IDE) that is supported on Microsoft Windows*, Mac OS*, and Linux host operating systems.
Support for Yocto 1.4 Poky* Linux release.
The accessibility of Arduino combined with the connectivity of Windows helps quickly iterate and expand on hardware and software designs using existing shields and sketches. The step down version of Windows CE 2013, Windows Embedded can be made to run on the Galileo board. The Windows platform with Visual Studio and its diverse hardware ecosystem can be leveraged, utilizing familiar Win32 programming using best-in-class development and debugging tools. The open community allows connecting with fellow developers and sharing code through GIT which allows in participating and influencing subsequent releases of the SDK.
To program a Galileo running Windows, you’ll need to run Visual Studio (the free editions are fine) on a Windows PC. Microsoft has ported the Arduino/Wiring libraries to their Windows for the Internet of Things, so you’ll be using Visual C++ to write code against the Arduino API. It looks a lot like Arduino source.
The Development Environment includes the following things:
MS VS2013 + NETMF SDK
.NET micro framework [NETMF] : Open source code from MS under apache license 2.0
Standard Arduino Wiring API set : A subset of Win32 [very close to WIN CE programming in Win32]
Step-down version of WinCE 2013 : Galileo board bootable image micro SD card
The tutorial for setting up the Galileo board and creating a Microsoft Windows bootable microSD card can be found at http://ms-iot.github.io/content/SetupGalileo.htm. Please note that the Windows developer program for IoT is still available as a development license but not available for commercial use.