Microsoft recently released a version of the Windows 10 Insider Preview for the Raspberry Pi 2 mini-computer, a new Internet of Things (IoT) platform. Here’s a quick peek at this release, called Windows 10 IoT Core, and what it’s like to get it up and running.
Note: After four straight weeks on the road, it’s nice to be able to finally turn my attention to this kind of project. The Windows 10 IoT Core Insider Preview—love that name—shipped a few weeks back during the developer-oriented Build conference, as you might expect, so I’ve been kind of waiting on this one.
If you haven’t, be sure to check out Raspberry Pi 2: First Steps. In that article, I discuss Raspberry Pi 2 and how it can be used as a fully-functioning mini PC. Raspberry Pi 2 is really aimed at “makers,” the trendy new name for tech enthusiasts who like to dabble with hardware designs
Microsoft’s decision to port Windows 10 to Raspberry Pi 2 and other IoT platforms like Intel Galileo is indeed aimed at this audience as well. That is, the software giant doesn’t really expect any mainstream consumers to build their own low-cost mini-computers; they will instead later purchase whatever connected, embedded solutions that these makers do come up with.
I approach this from an enthusiast angle, though I have no ultimate goal of creating a weather station, a robot, or any of the other interesting IoT projects that Microsoft is currently promoting. What I’m most interested in is just seeing what Windows 10 is like on such devices, and how it differs from the experience on phones, tablets, PCs and other mainstream hardware. (As you will see, fairly dramatically.)
So first things first. Let’s get Windows 10—excuse me, the Windows 10 IoT Core Insider Preview—installed on Raspberry Pi 2. Microsoft has some surprisingly useful documentation of its own. But here I’ll step you through my own experience doing this.
Prerequisites. Fairly obviously, you need a Raspberry Pi 2 mini-computer, which you can purchase from one of the organization’s two distributors, with a suitable power supply (a 3.5V micro-USB power supply with at least 1.0A of current), plus whatever peripherals (HDMI cable and display, for example). You will also need a microSD card (the kind used in smart phones): this must a Class 10 (or better) type card and provide 8 GB or more of storage. This SanDisk card is an exceptional value at just $10 shipped at the time of this writing, but Amazon.com and other retailers have plenty of options. You will need a real PC (not a VM) running the Windows 10 Insider Preview. (This is the new name for the Technical Preview.) And, finally, you will need some way to access that microSD card from that PC.
Download the OS. Using the PC running the Windows 10 Insider Preview, download the Windows 10 IoT Core Insider Preview Image for Raspberry Pi 2 from Microsoft Connect. You will need to agree to a EULA first, and the download arrives in the form of a 500 MB-ish ZIP file.
Extract the ZIP file. If you use Project Spartan (Edge) to download the file, this will start automatically. Otherwise, copy or move the ZIP file to your desktop, right-click it, and choose “Extra All.” This will create a folder called Windows_IoT_Core_RPI2_BUILD (or similar) on the desktop. This folder contains the OS image and other files.
Connect the microSD card to the PC. Use the microSD slot if you have one or whatever adapter or dongle you need to make that happen.
Determine the disk number of your microSD card. Open an administrative command prompt (WINKEY + X, choose “Command Prompt (Admin)”) and type of the following set of commands in order to find the disk number of the microSD card. Make a note of the number.
Apply the OS image to the microSD card. From the administrative command prompt, change directory (CD) into the Windows_IoT_Core_RPI2_BUILD (or similar) on the desktop. Then, apply the OS image to the microSD card using the following command, where [#num] is replaced by the disk number of the microSD card.
dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDrive[#num] /SkipPlatformCheck
On my PC, the microSD card was disk 1, so the command I used looked like this:
dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDrive1 /SkipPlatformCheck
When the operation completes, a File Explorer window will open, showing the contents of the microSD card.
Correctly remove the microSD card. This one is important: you need to correctly remove the microSD card to prevent corruption. There are two ways to do this. Right-click on the microSD card icon in File Explorer and choose “Eject.” Or, use the “Safely Remove Hardware” icon in the system tray to select the correct disk and choose “Eject.”
Install the microSD card in your Raspberry Pi 2. You will find a microSD card slot on the bottom of the Raspberry Pi 2 board, on the end near the power (USB) connector and away from the four full-sized USB ports. By itself, the Raspberry Pi 2 doesn’t have any firmware or software to boot, let alone do anything else, so this microSD card contains it all, and the two pieces together—Pi2 plus the microSD card with Windows 10—are the minimum needed for anything to happen (once power is provided).
Connect the Raspberry Pi 2 to an HDMI-based display, network connection, and then power supply. Do it in that order. (I added a USB keyboard and mouse dongle too, but they don’t do anything.)
Raspberry Pi 2 boots. When you add the power, Raspberry Pi 2 will boot. The first time it does so, you’ll see a standard blue Windows 10 boot logo and then, after a few minutes of staring at a blank screen, you’ll see an all-blue full-screen textual app. It will stay there for about two minutes and then reboot. During this boot, you will see the blue boot logo, a multi-color block graphic, and then finally this full-screen app, called DefaultApp. You’re up and running.
There’s no other UI, and you can’t interact with this screen if you connect a mouse and/or keyboard. Instead, you have to access Raspberry Pi 2 remotely.
Access Raspberry Pi 2 remotely. Microsoft provides a set of step-by-step instructions for remotely connecting to your Pi 2 using the textual PowerShell interface. I won’t repeat them here, but I did rename the Windows 10 IoT device name from minwinpc to pi2 to make sure it was all working. It worked fine.
Next step. Next up, you can connect to the Raspberry Pi 2 from Visual Studio 2015, so that you can deploy apps you create to the mini-computer. I’ll take a look at this process next.