INSTAR Deutschland GmbH

Windows IoT & Raspberry Pi



Windows 10 IoT Core is a version of Windows 10 that is optimized for smaller devices with or without a display that run on both ARM and x86/x64 devices. The Windows IoT Core documentation provides information on connecting, managing, updating, securing your devices, and more.

Software Download

  1. Download the Windows 10 IoT Core Dashboard, open the dashboard and click on set up a new device and insert a SD card into your computer:

Windows IoT Core


  1. Select the newest build of Windows 10 IoT Core and the device, you want to install it on, the version of Windows 10 IoT core (only downloading the latest developer version requires you to create a Windows Insider account / login), name your Raspberry Pi and add a password, you want to use to log in later. Then click download and install:

Windows IoT Core


  1. Once the SD card is prepared, plug it into your Raspberry Pi, connect it with your router - using an Ethernet cable - and plug in the power supply. Wait for 15 - 20min for the operating system to be set up. Then click on My devices to search for your Raspberry Pi on your local network:

Windows IoT Core


  1. To start a PowerShell session with your Windows 10 IoT Core device, you'll first need to create a trust relationship between your host PC and your device. The can get the local IP address of your Rapsberry Pi from the following screen:

Windows IoT Core


  1. Now go to the Windows start menu, search for PowerShell and open the PowerShell ISE as Administartor.

Windows IoT Core


  1. You may need to start the WinRM service on your desktop to enable remote connections. To do so, from the PowerShell console, type the following command:
net start WinRM

If you see the following, you are already set:


Windows IoT Core


  1. From the PowerShell console, type the following, substituting <machine-name or IP address> with the appropriate value - as seen in the screenshot, the machine-name - in my case - is winiotcore and the IP address is 192.168.2.57:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value <machine-name or IP address>

Enter Y to confirm the change.


Windows IoT Core


  1. Now you can start a session with your Windows IoT Core device. From you administrator PowerShell console, type:
Enter-PSSession -ComputerName <machine-name or IP Address> -Credential <machine-name or IP Address or localhost>\Administrator

You will be asked to log in using the password you set in step 2 (above).


Windows IoT Core


If you successfully connected to the device, you should see the IP address of your device before the prompt and you now have access to a wide range of Windows 10 IoT Core Command Line Utils.

  1. Now I'd like to enable the IoT remote server, which is disabled by default. When enabled this feature allows you to establish a remote desktop-like connection with an app named Windows IoT Remote Client application.

The user password and user name in the required POST Request have to be used with Basic Authentication, which can be done with the following function:

function Invoke-AuthenticatedWebRequest {
	param (
		[string] $uri,
		[string] $userName,
		[string] $password,
		[string] $method,
		[string] $contentType
	)
	
	$credentials = "$($userName):$($password)"
	$encodedCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($credentials))
	$basicAuthValue = "Basic $encodedCredentials"
	$headers = @{
		Authorization = $basicAuthValue
	}

	Invoke-WebRequest -Uri $uri -Headers $headers -Method $method -ContentType $contentType -DisableKeepAlive
}

Now we can enable and disable, /api/iot/remote/enable and /api/iot/remote/disable, the remote access with the following POST Request:

Invoke-AuthenticatedWebRequest -uri "$apiRoot/iot/remote/enable" -userName $username -password $password -method "POST" -contentType ""

Windows IoT Core

Windows IoT Core


Software Installation

Fill out all of the fields as indicated. Accept the software license terms and click Download and install. You'll see that Windows 10 IoT Core is now flashing your SD card.