I was an early adopter of Win 10 IoT with Raspberry PI 2 (RPI2) as well as Windows Remote Arduino. Whilst I was able to use my Windows 8.1 phone to control an Arduino device as per the latter technology, I did have some problems with some fine detail with the RPI2 technology. I have now had a second stab at Win 10 IoT with RPI2 with success. This blog discusses these issues.

First Configuration

For the first setup, I updated an older laptop that ran Win 8.1 to the Win 10 Technical Preview. This was problematic so I put its hard drive into my less than 12 months old I7 laptop. Whilst after upgrades and installation of drivers for the this laptop, it performed better it was still problematic so I resurrected an older laptop hard drive for the I7 system and installed a completely new Win 10 Technical Preview. This addressed many issues but, apart from the IoT issues, I still find the system is rather flakey. I suspect it is something to do with video drivers. The laptop has an Intel HD Graphics 4600 display adapter as well as an AMD Radeon HD 8600/8700M display adapter. The airwaves indicate that there are some problems with the AMD device with Win 10 so I have reverted this to the Win 8.1 driver.

I followed the IoT RPI2 setup as per :
http://ms-iot.github.io/content/en-US/win10/SetupRPI.htm

  • Installed Win 10 Technical Preview
  • Downloaded the Initial RPI2 IoT release dated 29/04/2015.
    • I used the Download link on the right as I hadn’t installed the File Transfer Manager
  • Created the MicroSD image from the flash.ffu file.
    • Documentation says to use a Class 10 device or better, which I did.
    • I did hear reports of slower SD cards failing.
    • Later on I also found that the version of DISM on Win 8.1 does not accept one of the command line parameters, so this had to be done on Win 10.
  • Connected my RPI2 up:
    • HDMI to my 42-inch LCD TV
    • Micro USB to a phone backup battery
    • Ethernet port to my home network, with internet access.
    • Inserted the Micro SD card.
  • Turned on the system and lights flashed and after a long wait the system booted to the Startup app.Smile J

clip_image002

  • I noted the IP Address of the device.
  • Also I click on the setup icon, the star at the bottom right and set the locality and examined the network configuration. This was a bit slow at first.
  • I also examined the power settings (shutdown/reboot) at the top right icon.

I then attempted to communicate with the device via PowerShell as per:
http://ms-iot.github.io/content/en-US/win10/samples/PowerShell.htm

  • net start WinRM
  • Set-Item WSMan:\localhost\Client\TrustedHosts -Value <IP Address>
  • Set-Item WSMan:\localhost\Client\TrustedHosts -Value minwinpc
  • remove-module psreadline -force
  • Enter-PsSession -ComputerName minwinpc -Credential localhost\Administrator
    Entered the given password when prompted.

All of this worked except the last command which gave me errors with respect to requiring https .. lots of red ink! L Same for if I used IP Address instead of the machine name. I spent much time looking at solutions to this but never found a workable solution in Win 10. Sad smile

I was though able to connect in this manner from a Win 8.1 PowerShell instance.Smile

From the Win 8.1 PowerShell I was able to run some of the commands on the page as per the last link and some of the commands as per the link at the bottom of that page. I did have some problems running some of the commands.

I then set up my development laptop as per (having already done the Win 10 first step):
http://ms-iot.github.io/content/en-US/win10/SetupPC.htm

  • I installed Visual Studio 2015 Preview (I later used VS 2015 RC)
  • I installed WindowsDeveloperProgramForIoT.msi from the previous download
  • I could not run the Windows IoT Core Watcher application. This was a reported and much discussed problem, and accepted as a bug. The problem manifested itself on x64 systems (as mine is) as was due to a Strong Name issue.
    • I attempted some remedies but although I could get it to run it world not list my device. Sad smile
  • I had already immersed my device and development system into my home network.

I then moved on to some app development:

  • · I built and deployed a blank Universal app and then a Hello World version as per:
    http://ms-iot.github.io/content/en-US/win10/samples/HelloWorld.htm
    • Setup laptop for Developer Mode
    • Tested the apps on the desktop (x86)
    • … Remember to compile for ARM for RPI2
    • Set target as Remote Machine NOT Device
    • Configured the target (use IP address not machine name):

clip_image003

    • Did not need to run schtasks /run /tn StartMsvsmon
  • These worked OK Smile
    • Was able to set breakpoints and debug the app.
  • I then built and tested Blinky as per::
    http://ms-iot.github.io/content/en-US/win10/samples/Blinky.htm
    • NB: I used a “Basic Stamp Professional Development Board” for my LED.
      For much of my RPI2 and Arduino journeys I have used this board for basic IO testing.

clip_image004

  • Blinky worked OK Smile

So my issues were:

  • Flaky-ness of Windows 10 Technical Preview on my laptop
  • Couldn’t connect to my RPI2 via PowerShell on Windows 10 Technical Preview on my laptop
    • Although could do this from Win 8.1
  • As installed on an x64 system, Windows IoT Core Watcher application wouldn’t run.
    • With some fixes it ran but would not list my RPI2 device

Second Release of Windows 10 IoT Core Insider Preview Image for Raspberry Pi 2

Whilst this did not solve my issues as above it announced the availability (actually update) of a web interface to the IoT device.

Date: 12 May 2015

“This 5/12 release of Windows 10 IoT Core Insider Preview includes an updated base OS build. It also includes an updated login-based web-interface for device setup, startup application configuration, and feedback capabilities.”


Second Configuration: AKA Take Two

For the second setup I created a Hyper-V VM on my desktop. The only limitation for this was I couldn’t do DISM here as it requires access to the physical SD card. With this instance, the problems as above vaporized!

  • I created a new VM with 4 CPUs, 4G RAM, 150G VHD, type 2 VM
  • I downloaded the latest Win 10 Professional from MSDN “Windows 10 Pro Insider Preview Build 10074”.
    • Did not set Fast Track for updates
  • I booted the VM with this as the boot DVD and setup Win 10.
  • I installed Visual Studio 2015 Enterprise RC.
  • Installed 5/12 release of Windows 10 IoT Core Insider Preview.
  • Created a new Micro SD boot media for the RPI2  5/12 version.
    • Had to do this back on the laptop.

Setup 2 Outcomes:

  • ∞ OS is a lot more stable J
  • ∞ Can connect to RPI2 via PowerShell from Win 10 J
  • ∞ Windows IoT Core Watcher application still wouldn’t run L
  • ∞ Able to build, run and debug Universal Apps. SmileRed heart

Fix for Windows IoT Core Watcher

Posted by Ed Dore on 2/05/2015 at 7:54 PM at:
https://connect.microsoft.com/windowsembeddedIoT/Feedback/Details/1295993

"After a bit of experimentation, I was able to get it working. Here's the steps I used to "fix" the WindowsIoTCoreWatcher.exe.
Launch the "Developer Command Prompt for VS2015" as Administrator
change the working directory over to "C:\Program Files (x86)\Microsoft IoT"

 

sn -Vr WindowsIoTCoreWatcher.exe
corflags WindowsIoTCoreWatcher.exe /32BIT+ /FORCE

"The first command (sn.exe) tells windows to skip strongname verification of the binary
The second command forces the application to run as a 32bit application."

Note: Second command line HAS been amended as per a later post.

That works now, Thanks Ed Smile

image


Next: Windows 10 I0T Raspberry PI 2 Basic IO.


My Recent IoT Blogs (in chronological order):

  1. Windows 10 on Raspberry Pi!
  2. Windows 10 IoT Core Insider Preview
  3. About Windows 10 IoT
  4. Windows 10 IoT Systems

There is also a a series on Windows Embedded Compact IoT with Azure Mobile Services and same with Arduino in my blogs.