Getting Started with Windows 10 IoT Core & Raspberry Pi 3B+
In this post, App Dev Manager, Robert Schumann shows how to get started with Windows 10 IoT Core with Raspberry Bi 3 B+.
Jumping right in, let’s get a few matters out of the way upfront.
- This article specifically uses the Raspberry Pi 3 model B+
- If you’re not sure what model of Pi you’re running then review how-to details here: https://www.raspberrypi-spy.co.uk/2012/09/checking-your-raspberry-pi-board-version/
- Topics covered should take about 30 minutes to complete provided everything you need is readily available.
- At present, there is no supported version of Windows 10 IoT Core specifically for the Raspberry Pi 3 model B+. This article demonstrates an unsupported technical preview for a Raspberry Pi 3 B+.
- I love Pi. For me it’s been a faithful hacker/maker companion for years from which I’ve learned a lot.
- I work for Microsoft as a Senior Premier Application Development Manager. As such I often, and increasingly, support non-Windows platforms and open source projects, including cloud-based.
- Laptop or desktop running Windows 10
- Raspberry Pi 3 model B+
- 5V 2A microUSB power supply for Pi
- 8GB or larger Class 10 microSD, with ability to read/write from standard Windows 10 laptop or desktop
- Ethernet cable
- HDMI cable
- USB or proprietary wireless Keyboard for Pi
- USB or proprietary wireless Mouse for Pi
You will need the HDMI cable to connect the Pi to a monitor for checking installation status. Likewise, having a USB keyboard and mouse for installation is suggested in case they’re needed for troubleshooting. Technically speaking, a lot of functionality can be accomplished through the browser or remote connection once the OS is installed.
At date of writing, there is no supported version of Windows 10 IoT Core for the Pi 3 B+ model we need to take a somewhat non-linear installation path. We simply need to make one extra download and complete one out-of-band task. Beyound that, all steps are the same.
Using a standard Windows 10 laptop or desktop, start by downloading a preview build from here: https://www.microsoft.com/en-us/software-download/windowsiot
I’m using the latest ISO build version 17661 for this article. Once download is complete, right-click to mount the image and access the .msi installer. Because the supported IoT Dashboard cannot be used to setup the Raspberry Pi 3 B+, this “Windows IoT Core Image Helper” app is used instead. Double-click the .msi to launch the installer and follow directions, this process is straight forward and self-explanatory. By default, the image helper is installed to path C:\Program Files (x86)\Microsoft IoT.
Before launching the image helper app, make sure the microSD card being used for the Pi is read/write accessible to the laptop or desktop app host system. Then, start the Windows IoT Core Image Helper app. Once started, select the correct SD card. As for the required .ffu file that is located under the application folder in the FFU directory. Confirm the correct SD card is selected and the ffu file is identified then click Flash button. Flash will spawn a command dialog that provides percentage completion output. Once finished, a notification pops up with overall status. If successful then remove the microSD from the app host system and insert into Pi. Make sure all Pi hardware is good-to-go (monitor, power, mouse, keyboard), then power on the Pi.
Comment: At least for me boots are slow even with the understanding this is a Pi. I tried several different microSD cards of varying vendors, sizes, and specs. Restarts from the box tended to hang so much so that out of impatience or frustration, I found myself pulling Pi power. Oddly, restarting remotely from the Windows IoT Dashboard worked better than directly on the system.
The initial boot is painfully slow; you’ll get the win logo and spinning donut for about the first 2 minutes, then just a spinning donut for about another 3-4 minutes. (Think taking away the logo was meant to be a distraction, like an attempted offset or rest to the “why is this taking so long” personal timer.) Once the system initially boots, and loads, things get better depending on where work is being managed. I found performance directly on the Raspberry Pi to be frustrating. Luckily there are alternatives…
So at this point, a preview version of Windows 10 IoT Core was flashed to a microSD, subsequently inserted into a Raspberry Pi 3 B+, which was then turned on, successfully boots, and is now running. The image helper app is no longer needed, and can be uninstalled if desired. In case you’ve not read any existing documentation, here’s a link that outlines known issues: https://docs.microsoft.com/en-us/windows/iot-core/troubleshooting
- No Pi WiFi
- No Pi Bluetooth
- May experience boot problems
That’s quite a bunch of “OTB awesomeness”! Pressing forward, however, things look promising…
Windows IoT Dashboard
We can now use the supported dashboard found here: https://docs.microsoft.com/windows/iot-core/downloads
|Default User Name: administrator|
Default Password: p@ssw0rd
|TIP: If your Pi is not listed under My Devices try the following:|
When the dashboard runs it should display a list of (Windows) IoT devices connected to the network. Your newly implemented Raspberry Pi 3 B+ should show. It likely contains default properties such as name and logon account. Double-click the listed Windows IoT Pi device to go to its properties page. From there you can change the device name and see the default account. Notice the link to the device portal at bottom, click that link. A browser should pop up the Windows Device Portal for the selected device using an network subnet address at port 8080.
All things considered, the device portal has a decent amount of capabilities and performance. There might be a couple matters to tend to first, such as applying updates and tweaking performance.
From the device portal page, expand Apps, click Apps Manager, then click Check for Updates. A prompt will display for any outstanding updates, click Ok. Reboots may be required. Rinse repeat until fully updated in which case the prompt with say 0 updates found.
If you’re more concerned about performance than security then change the default controller driver. Click Devices left, then on right from the dropdown select Direct Memory Mapped Driver, click Update Driver. Reboot required.
Another way to connect to the Pi is through the Windows Remote IoT Client application from Microsoft Store. Recommend reading the application’s description. Essentially what this app does is receive UI data from the Pi and sends sensor and input data to remotely manipulate the device. Somewhat of a different twist on establishing a remote “connection”.
There are may more features in Windows 10 IoT Core to explore. Recommend starting with the device portal Tutorials option, lower left, to help get up-to-speed with navigating. There is also the dashboard Connect to Azure and Try some samples for development.
Overall, I like being able to repurpose my Raspberry Pi 3 B+. It makes sense that Microsoft wants to enable and optimize edge devices. Extending the Windows ecosystem via Windows 10 IoT Core and being able to run it on an expanded list of devices certainly helps. Like most emerging technology, Windows 10 IoT Core is evolving, and I look forward to future enhancements and capabilities.