Steve Teixeira of Microsoft gives this statement:
"We’re embracing the simple principle of helping Makers and device builders do more by bringing our world-class development tools, the power of the Universal Windows Platform, direct access to hardware capabilities, and the ability to remotely debug, update, and manage the software running on Raspberry Pi 2 devices.
This Insider Preview release of Windows 10 IoT Core is our conversation-starter. Our goal is to give Makers the opportunity to play with the software bits early and to listen to the feedback on what’s working well and what we can do better. You may notice some missing drivers or rough edges; we look forward to receiving your feedback to help us prioritize our development work.
We will be incorporating the feedback we receive into regular software updates along with additional drivers, bug fixes and new features. Those looking for a commercial-quality release should wait for general availability this summer."
I previously blogged that Windows 10 on the Raspberry Pi 2 will not have a desktop and instead, it is an integrated, Internet of Things development system that is compatible with Microsoft Windows 10. In the Microsoft Build 2015 keynote they presented the integration of the HoloLens with a robot controlled by a Raspberry Pi 2 which is running Windows 10.
This integration of technology is an act that I have dreamed about, what you have here is an interaction crossover from physical to virtual, with the virtual overlaid onto the physical in real time. Microsoft are referring to it as holograms, it used to be called 'alternate reality', and before that simply 'virtual reality'. I'm sure the name is going to change as time goes on.
Where can I get it?
Microsoft have an Internet of Things for embedded devices hub where you can find the guide and downloads for the Raspberry Pi 2 (amongst others such as Arduino)
Is this the Embedded Pre-Release Program?
Yes, it was at least. you had to sign up to the "Windows Embedded Pre-Release Program" on 'Microsoft Connect'. While there was also the 'Windows On Devices' site, and now there's the 'Windows IoT' site, they did loop you around blogs and links. When you've went to the Pre-Release Program downloads area you saw this:
So once you've downloaded your Windows 10 IoT Core Insider Preview Image for Raspberry Pi 2 you're going to want to get it onto the Raspberry Pi 2. The zip file you've downloaded contains the following files:
This is a bit of a miss-direction. At this stage we're not entirely interested in using WindowsDeveloperProgramForIoT, for that you'll have to be running Windows 10. In fact, to do anything with this device, you're going to need:
- Microsoft Windows 10 (Though you can use Windows 8/8.1 to send code to the Pi 2)
- Microsoft Visual Studio 2015 (Professional / Enterprise / etc. though Community Edition will apparently work)
- Microsoft ADK for Windows 10 Technical Preview for Windows (you may not need this, but you need an up to date DISM.exe to write the Flash.ffu which comes with this)
- A way to access a microSD card on your computer
Hang on, I thought it was Released?
It is, and the steps have now changed from those above.
When You have downloaded the "IOT Core RPi.ISO" file from the downloads page you can either burn the image to a disc (which I admit is a bit antiquated these days) or you can extract the .ISO file using software such as 7zip. You will then have the file "Windows_10_IoT_Core_RPi2.msi" which, if you're running Windows 10 you can run and it will guide you through the setup process. Alternatively you can extract the .msi file and it will give you DISM along with the .ffu image file.
So What Now?
These steps are somewhat antiquated because of the final release of Windows 10 IoT Core, however if you ever need to setup your SDCard 'by hand' you still can.
So let us assume that you've got Windows 10 installed, you've installed the Microsoft ADK (or you're checking to see if you have dism), and you've got the microSD card installed and downloaded the File_WindowsIoTRpi2Flash.ffu / Flash.ffu image. You now need to follow these steps (as taken from ms-iot.github.io):
Follow these instructions to configure your SD card:
- NOTE: you will need to follow these instructions on a physical Windows machine (and not a VM) because you need access to the SD card reader.
- Configure your connect account here. Note that if your account was already configured, you'll see a blank page.
- Make a local copy of the flash.ffu contained in Windows_IoT_Core_RPI2_BUILD.zip found here. Follow the steps above on acquiring the file(s) unless you have already extracted File_WindowsIoTRpi2Flash.ffu
- Insert an SD card into your SD card reader.
- Open an admininistrator command prompt and navigate to the folder containing your local flash.ffu.
- Edit: Microsoft advised the below commands, but it's far easier to open a command prompt and type 'wmic diskdrive list brief' then you get the full DeviceID instead of guessing.
Find the disk number that your SD card is on your computer. This will be used when the image is applied in the next step. To do this, you can use the diskpart utility. Run the following commands:
- Using the administrator command prompt, apply the image to your SD card by running the following command (be sure to replace PhysicalDriveN with the value you found in the previous step, for example, if your SD card is disk number 3, use /ApplyDrive:\\.\PhysicalDrive3 below):
dism.exe /Apply-Image /ImageFile:File_WindowsIoTRpi2Flash.ffu /ApplyDrive:\\.\PhysicalDriveN /SkipPlatformCheck
- Click on the "Safely Remove Hardware" icon in your task tray and select your USB SD card reader to safely remove it from the system. Failing to do this can cause corruption of the image.
If, however, you don't have Windows 10 installed, or access to DISM you're going to have a not very fun time trying to get the image. You can at least mount the File_WindowsIoTRpi2Flash.ffu / Flash.ffu file within windows using ImgMount and I'm going to leave you to fiddle with disk cloning tools to duplicate your newly mounted image in those cases.
Also if you're putting the image onto a microSD card from a virtual machine, you may encounter the problem that your virtual machine can't see your SDCard reader if it isn't USB. If you're running Microsoft Windows and you're using VirtualBox you'll find an answer at this link, and if you're using VMWare then the trick is to add the SDCard reader as a hard drive, because it's seen as a 'removable disk' you can then continue with the steps.
There is apparently a known issue with the Windows 10 IoT Core build on Class 4 micro SDCards that cause applications to time out on boot and the operating system to not start properly. So you may as well make sure you're using a Class 10 micro SDCard. This issue and many others are covered in a Microsoft FAQ. Some are contradictory and others seem like the settings aren't entirely configured (power to USB ports for example).
Once you've got your image onto your microSD card you should be able to boot your Raspberry Pi 2 with it and get developing!
You can find guides on how to connect and configure it on Microsoft's Dev Center where you can also submit pull requests to the github repository.
Will it always be headless (no display supported)?
Yes, in the traditional sense of a 'standard computer' desktop. However that does not mean that you cannot code your own display. According to the FAQ:
When running headed the only supported UI is via the UWP UI stacks (XAML, HTML, DirectX).
DirectX support? On the Pi 2? Interesting. However at the time of writing the VideoCore drivers are still in development.
Do I have to use Ethernet?
Not strictly speaking, no. However it will be more reliable. WiFi and Bluetooth support is still being added. You'll want to check the Microsoft FAQs.
Want to see more and it being used in practice?