Headless Wifi onboarding of Windows 10 IoT Core devices

Mar 24, 2016
• Ville Rantala

Introduction

In this post, I’ll explain and show with screenshots how to onboard a device running Windows 10 IoT Core onto a Wifi access point. Onboarding here means setting up the Wifi settings on the device so that the device gets connected to the wanted network to allow further work with the device.

The approach in this post is “headless”, because it doesn’t require a monitor to be connected to the device and all the input is done from the host machine (so no need to connect keyboard or mouse to the device).

The headless onboarding is especially useful in an environment where you have many devices (and potentially many developers) and it isn’t feasible to have a separate monitor and input devices to each of them.

Required software and hardware

The tool used in this post is the IoT Dashboard that can be downloaded from here. The tool works on Wifi-capable Windows machines (the tool most likely won’t work in a virtual machine, because it requires Wifi capabilities in a way that isn’t available in a virtualized environment).

The Windows IoT Core device needs to have Wifi hardware. On devices like Raspberry Pi 2 one would use a Wifi adapter and on some devices like Raspberry Pi 3 the Wifi would be built-in.

Steps

1. Verify that the device is found

After flashing and powering on a device, such as a Raspberry Pi 2, the tool should show the device in the “My devices”-tab. The name of the devices initially comes from the Wifi access point name that the device “advertise” for onboarding.

2. Start configuring the device

The device configuration is started by clicking the “Configure device”-link. There will be a note like below that informs that you will lose your internet connectivity on the host machine while the onboarding is happening (unless you have internet connectivity via a cable). This is because your host machine needs to temporarily connect directly to the IoT Core device to pass the right setup information.

3. Setup Wifi

After your host machine is connected to the IoT Core device, you should see a list of access points that the IoT Core device has access to. Select the one you want (typically the one you will connect also with your host machine).

4. Access the device via the configured Wifi

If all goes well, your IoT core device will get connected to the Wifi you selected in the previous step.

If you host machine is also connected to the same network and the network allows routing between peers, you will see your IoT Core device pop up to the “My devices”-tab like below. This time, the name comes from the name read from the device and the IP address reflects to the one given by the Wifi router.

If the IoT Core device doesn’t appear in the list, you could try rebooting it. The Wifi access point settings are persisted between reboots so there is a good chance that after the reboot, the device gets connected to the right network.

Once you have confirmed the device has an IP address, you can do further work such as:

Open the device portal from the tool

Create SSH or PowerShell connection to the device

Set this IP as the remote device in Visual Studio and deploy apps to it

As the final note, if you are in an environment with tens of devices, it isn’t necessarily obvious which physical device gets which IP address since there is no UI to look it from. One option would be to shutdown a device with a specific IP address and see visually which one got turned off.