Sdk usbwrapper

i have been trying to communicate with my maestro boards connected to a raspberry pi 3 running win 10 iot using the native USB protocol. Windows see the board and i can connect to it using the VCP ports. I have downloaded the usb sdk but it does not contain the source for the Usbwrapper.dll is the source available? or is there an Arm version of the DLL alternatively is there more information on the usb (searched hi and low) Endpoints and class used which may allow me to use winusb to talk to the maestro.

Hello.

We do not currently provide the source code for the Windows version of UsbWrapper.dll. The binary we provide in the Pololu USB SDK might work for you since it contains .NET code rather than native machine instructions.

We have not tried communicating with the Maestro’s native USB interface from Windows 10 IoT Core. The first step to would be to install WinUSB as its driver. Please run the following command on your device (e.g. in PowerShell). This command will show the status of all USB devices connected to your computer that have the Pololu vendor ID:

devcon status 'USB\VID_1FFB*'

Please post the full output from that command here.

–David

Hi David Thanks for getting back to me
although the serial ports were working the board had error code 28

USB\VID_1FFB&PID_008A&MI_04\6&3B96929&0&0004
    Name: Pololu Mini Maestro 12-Channel USB Servo Controller
    The device has the following problem: 28
    Problem status: 0xC0000490
USB\VID_1FFB&PID_008A&MI_02\6&3B96929&0&0002
    Name: USB Serial Device
    Driver is running.
USB\VID_1FFB&PID_008A\00137654
    Name: USB Composite Device
    Driver is running.
USB\VID_1FFB&PID_008A&MI_00\6&3B96929&0&0000
    Name: USB Serial Device
    Driver is running.
4 matching device(s) found.

after looking into it winusb was not installed for the board i played around for a while the inf file and finally managed to get it up and running with a modified version of your driver .inf file attached

pololu.inf (2.1 KB)

devcon after install

USB\VID_1FFB&PID_008A&MI_04\6&3B96929&0&0004
    Name: Pololu Mini Maestro 12-Channel USB Servo Controller
    Driver is running.
USB\VID_1FFB&PID_008A&MI_02\6&3B96929&0&0002
    Name: USB Serial Device
    Driver is running.
USB\VID_1FFB&PID_008C&MI_02\6&3AC749DB&0&0002
    Name: USB Serial Device
    Driver is running.
USB\VID_1FFB&PID_008A\00137654
    Name: USB Composite Device
    Driver is running.
USB\VID_1FFB&PID_008A&MI_00\6&3B96929&0&0000
    Name: USB Serial Device
    Driver is running.
USB\VID_1FFB&PID_008C\00123004
    Name: USB Composite Device
    Driver is running.
USB\VID_1FFB&PID_008C&MI_04\6&3AC749DB&0&0004
    Name: Pololu Mini Maestro 24-Channel USB Servo Controller
    Driver is running.
USB\VID_1FFB&PID_008C&MI_00\6&3AC749DB&0&0000
    Name: USB Serial Device
    Driver is running.

also starts my 6 channel board as well
going to try the USBWrapper but suspect it won’t work as i assume it is compiled for x86 not Arm.
will let you know the outcome later

Paul

Hi David
Having no luck with the USBWrapper crashes the application when i call any function in it.I have been having some success as i can now enumerate the board using the iot core USBdevice framework.
Could you supply Endpoint info for the maestro i assume there are two sets of bulkinout for the comm ports but not sure of the type used for the direct access.

paul

Hello, Paul.

The Maestro’s native USB interface uses vendor-defined control transfers on endpoint 0. You can find the details about what control transfers it uses in the file Usc.cs in the Pololu USB SDK.

–David

Hi David.
Just to let you know that i have managed to get the maestro working on my Pi 3 running windows 10 IOT core. i’m putting together a source class at the moment and can send it to you in a few days if that would be useful.

couple of things don’t work at present oddly they haven’t put any way of getting the Usb serial number into the device information class.

Regards
Paul