Posts: 10
Joined: Fri Jul 31, 2015 8:52 am

Generic USB communication

Fri Jul 31, 2015 9:01 am


On a regular Windows PC we can use a generic USB library to communicate with USB devices without having to resort to 3rd party drivers. An example of such a library is

Does similar options exist for Windows 10 IoT?
"Anything one man can imagine other men can make real."
- Jules Verne

Posts: 10
Joined: Fri Jul 31, 2015 8:52 am

Re: Generic USB communication

Sat Nov 21, 2015 10:40 am

Keeping this thread updated with what I find :)

Windows 10 IoT comes with a generic USB driver called WinUSB. You can get your USB device to use this driver by creating and INF file with the following contents:

Code: Select all

; WinUSB installation file for USB device

Signature = "$Windows NT$"
Class     = USBDevice
ClassGUID = {88BAE032-5A81-49f0-BC3D-A4FF138216D6}
Provider  = %ManufacturerName%
CatalogFile =

; ========== Manufacturer/Models sections ===========

%DeviceName% =USB_Install, USB\VID_1234&PID_ABCD

; ========== Class definition ===========
AddReg = ClassInstall_AddReg


; =================== Installation ===================
Include = winusb.inf
Needs   = WINUSB.NT

Include =winusb.inf
Needs   = WINUSB.NT.Services



; =================== Strings ===================
ManufacturerName="The name of the company producing your device"
ClassName="Universal Serial Bus devices"
DeviceName="The name of your device"
REG_MULTI_SZ = 0x00010000
Replace the Vendor ID (VID) and Product ID (PID) in [Standard.NTarm] with the corresponding VID and PID of the USB you're adding. Finally replace the ManufacturerName and DeviceName near the bottom with the correct info for your device.

Put this file somewhere on the Raspberry Pi 2, using either SMB or FTP.

SSH or PowerShell to the Raspberry Pi 2 and go to the folder where you put the INF file. Run the following command:

Code: Select all

devcon dp_add .\<name of your INF file>
You should see the following result:
Driver package 'oem0.inf' added.
Finally restart the RP2 from SSH/PowerShell: shutdown -r -t 0

When the RP2 gets back up your device should be listed under "Connected Devices" on the default startup app, and you should now be able to use functionality from Windows.Devices.Usb to communicate with the USB device.

(Though I haven't been able to do that so far due to some other error, but I'll update here when/if I get it to work)
"Anything one man can imagine other men can make real."
- Jules Verne

Return to “Windows 10 for IoT”