Running Windows 10 IoT on a Raspberry Pi

I've been working with Raspberry Pi hardware for a while now, but mostly using the tools that are more common in the space. That means that my devices have all been running Raspbian as the OS and that the programs I've written for them have all been written in Python. Now that the official release of Windows 10 for IoT is out, I thought I'd give it a whirl and talk about my experience.

Installation

Installation of Windows 10 for IoT is very straightforward. Simply follow the steps outlined here. The one caveat is that you have to do this from a PC that already has Windows 10 installed. This may or may not be an issue for you.

I managed to get through installation without a hitch and was able to boot the Raspberry Pi with no issues. I did not connect a keyboard or monitor to mine, I simply plugged it in to my home network via an ethernet switch.

Network Connectivity

Ethernet Port

Connecting the device using the ethernet port worked out of the box for me.

WIFI

I wasn't able to get the USB WIFI adapter I have to work with Windows 10 IoT on the Raspberry Pi. I've used the Edimax EW-7811Un "successfully" with the Raspberry Pi and Raspbian but it simply doesn't work with Windows 10 on the Raspberry Pi. The internet seems to think and agree that only the official WIFI USB dongle will work. It's the only one that is showing as being supported on the official Windows 10 for IoT page. I contacted Edimax and asked them if they had a driver and their reponse was that they don't have a driver available and that they don't have it on the roadmap to build one. I tried using this same adapter on my Surface RT running Windows 8.1 and that adapter is not supported there either.

Remote Desktop, SSH and PUTTY

Device Name and Credentials

Once you get your device on the network, the default name for your device will be minwinpc (thought I'd save you some time searching through your router's connected device table). The default username to connect is administrator and the default password is p@ssw0rd. You should change this once you're able to connect to your Raspberry Pi.

Remote Desktop

First I tried using Remote Desktop to connect to the Raspberry Pi. It didn't work. I searched around the internet for a while and couldn't find any indications that this is possible at this time. I did notice that the Remote Desktop service is installed and running, so maybe there is a way to enable remote connections. Perhaps it's simply disabled and with some PowerShell magic you could turn it on. I might come back to this later but didn't spend more time on it.

SSH

Next I tried connecting to it via SSH. I already had Cygwin installed on my PC, so I tried that first. It didn't work. Then I tried updating my SSH client on Cygwin. That didn't work either. From looking at the verbose SSH connection dialog, it seems there is a mismatch between some of the algorithms supported by the SSH client and the Windows IoT SSH server. I might try to get one of my linux friends to help me debug this, as it seems many folks are trying to do the same thing I was trying to do with about the same results I had.

PUTTY

Now, the "manual" says you should use PUTTY to SSH into the RPi. So, I downloaded PUTTY and lo and behold, it connected! Now I'm looking at a regular c:\ command prompt. Huh, that was interesting. So I went to my PC and mounted a network drive to the C drive on my RPi. It worked! I think there might be a WinIoT RPi NAS project in there somewhere. But that project will have to go on my project backlog.

What Now?

Well, now that I have this device up and running, it's time for me to look at which one of my projects to tackle next. Perhaps the best candidate is to port some of my existing Python based projects to Windows 10 and C# and see how that works. Or maybe see if I can get Quartz.Net to run on the Raspberry Pi. I'll write some more posts as I make progress.

Help Me Out If You Can

If you're able to find a USB adapter that works with Windows IoT on the Raspberry Pi (other than the "official" one) or if you're able to get remote desktop to work, please let me know!