Wednesday, October 25, 2017

Things In My Lab - Raspberry Pi 3 and Windows 10 IoT Core For Digital Signage

Recently, I wrote an short post on using Windows 10 IoT Core on Raspberry Pi devices for Digital signage.  I wanted to detail a little bit more about what hardware I use for testing in the lab.

I have a SmartiPi Touch and Raspberry Pi setup in the home lab, which is really neat for giving demos and quickly testing stuff- as long as I don't need smooth video playback.  It is small and also shows what the UI looks like at a lower resolution

Otherwise, I use our Now Micro IoT Player 4k, since I can quickly PXE boot it and reimage for greenfield testing.  Prior to that product release, I used a variety of Intel BayTrail based devices, depending on what I was trying to accomplish at the time.

Overall, the IoT Player 4k is a lot faster and easier to work with when debugging UWP apps, but having a second monitor with me isn't always convenient.

Saturday, October 21, 2017

Adding Non-BSP Drivers to Windows 10 IoT Core

Windows 10 IoT Core has a significantly different way of handling drivers over a traditional Windows OS.  In particular, BSP drivers are compiled into the image during FFU creation.

If you are looking to install Windows 10 IoT Core on a different device than the FFU was built for, you can install drivers at run time on the device. Early on, while trying to find a commercial Windows 10 IoT Core platform, I did extensive testing with Intel Compute Sticks and can verify that the Wi-Fi module (Intel AC 7265) in the STK1AW32SC can is fully functional after installing a driver.

Basically, follow these steps, but copy the driver for the device from Intel.  You will need a Windows 10 driver (not Windows 7/8.1) and may need to search through the INFs to find the correct device ID.

The command itself is simple-  Use PowerShell to connect to the device, CD to the directory you copied the files to and run:
devcon.exe dp_add DRIVERINF.inf 
After rebooting, the device will be functional.  So far, I've only used this method for Wi-Fi drivers.  I would not expect all drivers to work, especially if they call APIs not available on Windows 10 IoT Core or install additional components.