Greetings, Makers!
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.
Oh, and you can also use it to build robotic air-hockey tables.
New in this release
The first public preview of Windows 10 IoT Core was released at the //build/ conference, and we’ve made great progress since then. Perhaps most importantly, long-awaited support for Wi-Fi and Bluetooth connectivity has arrived. The full list of new features and improvements is too long to list here but here’s a nice sampling:
- Improved support for Python and Node.js, including a new Express Node.js project template
- GPIO performance on the Raspberry Pi 2 has improved by 8X to 10X
- Analog-to-digital converter (ADC) and pulse-width modulation (PWM) are now supported via breakout boards and ICs
- New Universal Windows Platform (UWP) APIs give apps easy control over system management features like time zone and network connections
Developers, Developers, Developers
The developer experience has been a high priority for our team as we’ve built Windows 10 IoT Core, and we hope this shows when constructing apps for this platform. Our philosophy is that we want to make it easy for developers to use the languages and frameworks they prefer to build IoT device apps. This means full support for the standard UWP languages like C++, C#, JS and VB, but it also means bringing support – including full tools, debugging, and project systems – for Node.js and Python. The project templates for the standard UWP languages create projects that look like standard UWP projects, but for Node.js and Python we’ve worked hard to make these apps look and feel just like they do on other platforms. The code below shows a complete Node.js UWP app that reads from an I2C sensor and serves up a web page with the data (and you can get the sample here).
// Copyright (c) Microsoft. All rights reserved. var http = require('http'); //Import WinRT into Node.JS var uwp = require("uwp"); uwp.projectNamespace("Windows"); var i2cDevice; //Find the device: same code in other project, except in JS instead of C# var aqs = Windows.Devices.I2c.I2cDevice.getDeviceSelector("I2C1"); Windows.Devices.Enumeration.DeviceInformation.findAllAsync(aqs, null).done(function (dis) { Windows.Devices.I2c.I2cDevice.fromIdAsync(dis[0].id, new Windows.Devices.I2c.I2cConnectionSettings(0x40)).done(function (device) { i2cDevice = device; }); }); http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); var output = ""; var humidity = 0; //Read the humidity from the sensor var command = new Array(1); command[0] = 0xE5; var data = new Array(2); i2cDevice.writeRead(command, data); var rawhumidityReading = data[0] << 8 | data[1]; var ratio = rawhumidityReading / 65536.0; humidity = -6 + (125 * ratio); //Read the temperature from the sensor var tempCommand = new Array(1); command[0] = 0xE3; var tempData = new Array(2); i2cDevice.writeRead(command, data); var rawTempReading = data[0] << 8 | data[1]; var tempRatio = rawTempReading / 65536.0; var temperature = (-46.85 + (175.72 * tempRatio)) * 9 / 5 + 32; output = "Humidity: " + humidity + ", Temperature: " + temperature; res.end(output); }).listen(1337);
A small note about VS RC->RTM project system compatibility:
There were a variety of breaking changes in the VS project system between the //build/ and RC and RTM. For the most part, application code will remain functional, but the project itself will need to be rebuilt. The recommendation from the Visual Studio team is to build a new project and move the code over into the new project shell.
Built to work with the tools & languages you want to use – whatever they are
As part of our engagement with the broader community, we’ve worked with the community to support as many open source options as we can. You can find all of our IoT samples on Github, as well as documentation and a growing set of libraries and helper tools. Even our project system and runtime support for Python and Node.js is available open source on Github.
When our samples start turning into full projects, you can find them on Hackster.io.
We’ve also worked with our friends at Arduino to make it very easy to talk to Arduino boards from Windows and even for Arduinos to talk to Windows devices as if they were virtual shields. See this project for more information.
IoT Projects for fun and profit
We built IoT Core and the corresponding developer tools to make it easy to build projects that are fun and cool, as well as those that have very practical uses in the real world. Find evidence of this in the range of projects, from members of our team, as well as the community, that have been created in the months since our first public builds.
Sampling of Hackster.IO projects:
- From IoT team members
- Rover Robot Kit– Make and program your own robot using a Raspberry Pi 2 running Windows 10 IoT Core
- Windows Remote Arduino- using an Arduino from a Windows Phone app to control an LED
- Home Automation with the RPI2
- From the community
- Cooling off in the Summer: Handheld fan control from an RPI2
- Even more robots : GoPiGo
We have more projects in the pipeline, so keep your eyes on our hackster.io hub for more information about our Air Hockey Table, Face Recognition Unlocked Door, and more.
We are listening
While you’re playing around, if you notice some rough edges, please let us know. As always, we appreciate your feedback, so keep it coming and we’ll do our best to address issues.
Quick links
- Release Notes : Details about what is covered in this release of Windows 10 IoT Core.
- Download Now : Click here to start downloading for FREE now. You will need the latest version of Windows 10, Visual Studio 2015 and tools.
- Community : Share your feedback here and engage with other Makers using our forums.
Show Us What You’ve Got
We do what we do so we can see all the cool things people build on top of our platforms. Most of our projects start with the unofficial Maker credo of “Wouldn’t it be cool if…” and we can’t wait to see how you answer that question. Have fun building amazing things and, when you do, tweet @WindowsDev with the hashtag #makeInventDo with pictures so we can have as much fun as you do.