I am using WindowsIoT for my rpi3 and currently it is using the generic usb driver as seen from the code below for my Arduino SAMD21 Mini breakout board. I used devcon hwids =usb
to display the result. I wanted to make it use the driver provided by Sparkfun SAMD21 Dev Breakout Installer
USB\VID_1B4F&PID_8D21\5&1451A01D&0&3
Name: USB Composite Device
Hardware IDs:
USB\VID_1B4F&PID_8D21&REV_0100
USB\VID_1B4F&PID_8D21
Compatible IDs:
USB\DevClass_00&SubClass_00&Prot_00
USB\DevClass_00&SubClass_00
USB\DevClass_00
USB\COMPOSITE
The sparkfun.inf file contains this code
;
; Copyright 2015 Arduino LLC (http://www.arduino.cc/)
;
; Developed by Zach Eveland, Blacklabel Development, Inc.
;
; Arduino is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 2 of the License, or
; (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program; if not, write to the Free Software
; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
;
; As a special exception, you may use this file as part of a free software
; library without restriction. Specifically, if other files instantiate
; templates or use macros or inline functions from this file, or you compile
; this file and link it with other files to produce an executable, this
; file does not by itself cause the resulting executable to be covered by
; the GNU General Public License. This exception does not however
; invalidate any other reasons why the executable file might be covered by
; the GNU General Public License.
;
[Strings]
DriverPackageDisplayName="SparkFun USB Driver"
ManufacturerName="SparkFun Electronics (www.sparkfun.com)"
ServiceName="USB RS-232 Emulation Driver"
bossa.name="Bossa Program Port"
samd21Breakout.sketch.name="SparkFun SAMD21 Breakout"
samd21Breakout.bootloader.name="SparkFun SAMD21 Bootloader"
[DefaultInstall]
CopyINF=sparkfun.inf
[Version]
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Signature="$Windows NT$"
Provider=%ManufacturerName%
DriverPackageDisplayName=%DriverPackageDisplayName%
CatalogFile=sparkfun.cat
DriverVer=06/15/2015,1.2.2.0
[Manufacturer]
%ManufacturerName%=DeviceList, NTamd64, NTia64, NTarm
[DestinationDirs]
FakeModemCopyFileSection=12
DefaultDestDir=12
[DeviceList]
%samd21Breakout.sketch.name%=DriverInstall, USB\VID_1B4F&PID_8D21&MI_00
%samd21Breakout.bootloader.name%=DriverInstall, USB\VID_1B4F&PID_0D21
[DeviceList.NTamd64]
%samd21Breakout.sketch.name%=DriverInstall, USB\VID_1B4F&PID_8D21&MI_00
%samd21Breakout.bootloader.name%=DriverInstall, USB\VID_1B4F&PID_0D21
[DeviceList.NTia64]
%samd21Breakout.sketch.name%=DriverInstall, USB\VID_1B4F&PID_8D21&MI_00
%samd21Breakout.bootloader.name%=DriverInstall, USB\VID_1B4F&PID_0D21
[DeviceList.NTarm]
%samd21Breakout.sketch.name%=DriverInstall, USB\VID_1B4F&PID_8D21&MI_00
%samd21Breakout.bootloader.name%=DriverInstall, USB\VID_1B4F&PID_0D21
[DriverInstall]
include=mdmcpq.inf,usb.inf,usbser.inf
CopyFiles = FakeModemCopyFileSection
AddReg=DriverAddReg
[DriverAddReg]
HKR,usbser.sys,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DriverInstall.Services]
include=mdmcpq.inf
AddService=usbser, 0x00000002, DriverService
[DriverService]
DisplayName=%ServiceName%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys
LoadOrderGroup=Base
I placed the .inf files inside the RPI system32 files. I used the command devcon dp_add c:\windows\system32\sparkfun.inf "USB\VID_1B4F&PID_8D21&MI_00"
. I think it was successfully installed because it said Driver package 'oem1.inf' added.
but when I restart the RPi it still uses USB Composite Device