Recent Posts

Pages: [1] 2 3 ... 10
USB / Re: xinput WTF is it?
« Last post by ulao on February 08, 2018, 03:01:13 pm »

I did like this stament.
The XUSB driver implements both an XUSB class interface and a HID class interface for devices in order to support both XINPUT and DirectInput usage.

It sounds like xusb is a dll, that support hid and xinput. but my issue is that I want my device to work or emulate a xinput because software developers are expecting xinput. More of them need to support xusb but I can not change what exists.
USB / Re: xinput WTF is it?
« Last post by ulao on February 08, 2018, 09:01:50 am »
Could one write a xinput device without a driver? That is to say so that windows installs a driver for it.  I'm wondering if just changing the device and descriptor reports are enough to get it to show as a xinput.
USB / Re: Problem with HUB Class Driver STM32F205
« Last post by pisekA on February 06, 2018, 10:06:41 am »
Thank you, but my problem is with usb-host, with hosting a hub. if I quote Tops, it describes my problem exactly.
I have a problem with enumeration of low speed devices through a hub (working at full speed).
I am using STM32F205 USB full speed (USB_OTG_HS in full speed mode using the embedded full speed phy)
with STM32_USB-Host-Device_Lib_V2.1.0.
I did some modifications to the host lib to support multiple devices / interfaces
and added the hub class driver. Everything is fine with devices working at full speed, but the enumeration
of low speed devices fails sometimes (sometimes it works!). The problem is, that sending the SETUP packet of a low speed control transfer
could result in a transaction error (TXERR).
The problem always occurs when resetting the channel (EP0) from full to low speed (changing the HCCHAR register) after that the next SETUP packet sometimes results in a transaction error (TXERR).
USB / Re: Problem with HUB Class Driver STM32F205
« Last post by ulao on February 05, 2018, 01:25:08 pm »
I'm using the STM32F205 USB full speed via the hall (stm32f2xx_hal.h) driver. Control transfers works fine on a PC. I do have issues with a MAC.  The usb device gives up after a few seconds but I an not get any info on it. Happy to try any hex if you like.
USB / Re: Problem with HUB Class Driver STM32F205
« Last post by pisekA on February 05, 2018, 11:03:56 am »
4 years later and exact same problem on my side, just different board (STM32F469I). Looks like USB library did not advance much in this matter.
Anyone got past this problem?

I tried to register the low-speed transactions at SOF-Interrupt as mentioned, but only with partial success.
What did you mean by this? I can't figure it out since link to ST-Forum is obsolete.

I would much appreciate any help in this matter.

USB / Re: winusb bad?
« Last post by Jan Axelson on February 01, 2018, 11:03:21 am »
Yes, WinUSB does not understand HID APIs. You will also need to change the device firmware, as WinUSB doesn't use class requests.
USB / Re: winusb bad?
« Last post by ulao on February 01, 2018, 08:26:40 am »
Then I'm confused on the terms here.

What is a "HID report"
"Control transfer"

Are the above reports not all control transfers? I thought all feature reports were control transfers?

oh wait.. I think I see where I failed to connect the dots. So winusb is not going to work with my c# HIDapi wrapper. I was thinking that they were agnostic of each other. I would need to find a winusb wrapper so it sends the "winusb Control transfer" instead of the "hid Control transfer". is this right?

I guess my issue is my application is using the hidapi.dll to send data but with a system that has winusb, that is not going to work? I package the hidapi.dll with my application so I would assume that it uses that but maybe the system is using winusb and somehow messing things up?

USB / Re: winusb bad?
« Last post by Jan Axelson on January 31, 2018, 05:47:47 pm »
WinUSB doesn't support HID reports though you can use WinUSB control transfers to send and request generic data.
USB / Re: winusb bad?
« Last post by ulao on January 31, 2018, 02:45:10 pm »
All of my reports are vendor-defined reports but all stall with winUSB. Also the PID interface is stalling (i.e. force feedback out/in reports).

this report for example stalls with winUSB not with hidUSB (PID)


0x05,0x0F,    //    Usage Page Physical Interface
    0x09,0x89,    //    Usage Block Load Status
    0xA1,0x02,    //    Collection Datalink
       0x85,0x02,    //    Report ID 2
       0x09,0x22,    //    Usage Effect Block Index
       0x25,0x28,    //    Logical Maximum 28h (40d)
       0x15,0x01,    //    Logical Minimum 1
       0x35,0x01,    //    Physical Minimum 1
       0x45,0x28,    //    Physical Maximum 28h (40d)
       0x75,0x08,    //    Report Size 8
       0x95,0x01,    //    Report Count 1
       0xB1,0x02,    //    Feature (Variable)
       0x09,0x8B,    //    Usage Block Load Full
       0xA1,0x02,    //    Collection Datalink
          0x09,0x8C,    //    Usage Block Load Error
          0x09,0x8D,    //    Usage Block Handle
          0x09,0x8E,    //    Usage PID Block Free Report
          0x25,0x03,    //    Logical Maximum 3
          0x15,0x01,    //    Logical Minimum 1
          0x35,0x01,    //    Physical Minimum 1
          0x45,0x03,    //    Physical Maximum 3
          0x75,0x08,    //    Report Size 8
          0x95,0x01,    //    Report Count 1
          0xB1,0x00,    //    Feature
       0xC0     ,                   // End Collection
       0x09,0xAC,                   //    Usage Undefined
       0x15,0x00,                   //    Logical Minimum 0
       0x27,0xFF,0xFF,0x00,0x00,    //    Logical Maximum FFFFh (65535d)
       0x35,0x00,                   //    Physical Minimum 0
       0x47,0xFF,0xFF,0x00,0x00,    //    Physical Maximum FFFFh (65535d)
       0x75,0x10,                   //    Report Size 10h (16d)
       0x95,0x01,                   //    Report Count 1
       0xB1,0x00,                   //    Feature
    0xC0     ,    //    End Collection

these are my custom reports and they all fail.

0x09,0x01, // USAGE (Vendor Usage 1)
   0xa1, 0x01,                    // COLLECTION (Application)
   0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
   0x26, 0xff, 0x00,              //   LOGICAL_MAXIMUM (255)
   0x75, 0x08,                    //   REPORT_SIZE (8)
       //get pressure
      0x85, 0x15,                    //   REPORT_ID (21)
      0x95, 0x0D,                    //   REPORT_COUNT (13)
      0x09, 0x00,                    //   USAGE (Undefined)
      0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)
      //get info
      0x85, 0x11,                    //   REPORT_ID (17)
      0x95, 0x04,                    //   REPORT_COUNT (4
      0x09, 0x00,                    //   USAGE (Undefined)
      0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)

      //get info
      0x85, 0x17,                    //   REPORT_ID (23)
      0x95, 0x30,                    //   REPORT_COUNT (48)
      0x09, 0x00,                    //   USAGE (Undefined)
      0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)
       //get DC LCD
      0x85, 0x13,                    //   REPORT_ID (19)
      0x95, 0xc0,                    //   REPORT_COUNT (192)
      0x09, 0x00,                    //   USAGE (Undefined)
      0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)

       //get data
      0x85, 0x16,                    //   REPORT_ID (22)
      0x95, 0x22,                    //   REPORT_COUNT (34)
      0x09, 0x00,                    //   USAGE (Undefined)
      0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)
      //send data
      0x85, 0x12,                    //   REPORT_ID (18)
      0x95, 0x24,                    //   REPORT_COUNT (36) 32+(rid,command, 0, 0)
      0x09, 0x00,                    //   USAGE (Undefined)
      0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)
      //send DC LCD
      0x85, 0x14,                    //   REPORT_ID (20)
      0x95, 0xc4,                    //   REPORT_COUNT (196) 192+(rid,command, 0, 0)
      0x09, 0x00,                    //   USAGE (Undefined)
      0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)
   0xc0,                           // END_COLLECTION
Pages: [1] 2 3 ... 10