USBhost and volume control knob troubles

MrCanvas

Well-known member
I was trying to get this cheap usb volume control knob to work with USBHost_t36, as a easy "encoder-style" addon where I need it. However ran into constant crashes as soon as I plug it in which I never encountered with other devices. Not sure if it is worth the effort, but is there anything obvious in this output from HIDDeviceInfo with usb host debug info on? The goal would just be to get the data similar to a mouse scroll wheel.

Code:
USB2 PLL running
 reset waited 6
USBHS_ASYNCLISTADDR = 0
USBHS_PERIODICLISTBASE = 20006000
periodictable = 20006000
port change: 10001803
    connect
  begin reset
port change: 10001805
  port enabled
  end recovery
new_Device: 12 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
Device Descriptor:
  12 01 00 02 00 00 00 40 D0 BC 00 11 07 CC 01 02 03 01
    VendorID = BCD0, ProductID = 1100, Version = CC07
    Class/Subclass/Protocol = 0 / 0 / 0
    Number of Configurations = 1
enumeration:
enumeration:
Manufacturer: CC
enumeration:
Product: DSK3
enumeration:
Serial Number: 000123456789
enumeration:
Config data length = 91
enumeration:
Configuration Descriptor:
  09 02 5B 00 03 01 00 80 32
    NumInterfaces = 3
    ConfigurationValue = 1
  09 04 00 00 01 03 01 01 04
    Interface = 0
    Number of endpoints = 1
    Class/Subclass/Protocol = 3(HID) / 1(Boot) / 1(Keyboard)
  09 21 11 01 00 01 22 2D 00
   HID, 1 report descriptor
  07 05 81 03 08 00 01
    Endpoint = 1 IN
    Type = Interrupt
    Max Size = 8
    Polling Interval = 1
  09 04 01 00 01 03 00 00 05
    Interface = 1
    Number of endpoints = 1
    Class/Subclass/Protocol = 3(HID) / 0 / 0
  09 21 10 01 00 01 22 76 00
    HID, 1 report descriptor
  07 05 82 03 10 00 01
    Endpoint = 2 IN
    Type = Interrupt
    Max Size = 16
    Polling Interval = 1
  09 04 02 00 02 03 00 00 06
    Interface = 2
    Number of endpoints = 2
    Class/Subclass/Protocol = 3(HID) / 0 / 0
  09 21 10 01 00 01 22 22 00
    HID, 1 report descriptor
  07 05 83 03 40 00 02
    Endpoint = 3 IN
    Type = Interrupt
    Max Size = 64
    Polling Interval = 2
  07 05 04 03 40 00 02
    Endpoint = 4 OUT
    Type = Interrupt
    Max Size = 64
    Polling Interval = 2
enumeration:
USBHub memory usage = 960
USBHub claim_device this=2000DAC0
USBHub memory usage = 960
USBHub claim_device this=2000DE80

USBDeviceInfo claim this=2000EF68

****************************************
** Device Level **
  vid=BCD0
  pid=1100
  bDeviceClass = 0
  bDeviceSubClass = 0
  bDeviceProtocol = 0
09 04 00 00 01 03 01 01 04 09 21 11 01 00 01 22 2D 00 07 05 81 03 08 00 01 09 04 01 00 01 03 00
00 05 09 21 10 01 00 01 22 76 00 07 05 82 03 10 00 01 09 04 02 00 02 03 00 00 06 09 21 10 01 00
01 22 22 00 07 05 83 03 40 00 02 07 05 04 03 40 00 02
HIDParser claim this=2000B680
HIDParser claim this=2000BDC0
HIDParser claim this=2000C500
HIDParser claim this=2000CC40
HIDParser claim this=2000D380
Descriptor 4 = INTERFACE

USBDeviceInfo claim this=2000EF68

****************************************
** Interface Level **
09 04 00 00 01 03 01 01 04 09 21 11 01 00 01 22 2D 00 07 05 81 03 08 00 01 09 04 01 00 01 03 00
00 05 09 21 10 01 00 01 22 76 00 07 05 82 03 10 00 01 09 04 02 00 02 03 00 00 06 09 21 10 01 00
01 22 22 00 07 05 83 03 40 00 02 07 05 04 03 40 00 02
 bInterfaceNumber = 0
 number end points = 1
 bInterfaceClass =    3
 bInterfaceSubClass = 1
    HID (BOOT)
 bInterfaceProtocol = 1
    Keyboard
report descriptor size = 45
  endpoint = 81
    attributes = 3 Interrupt
    size = 8
    interval = 1
HIDParser claim this=2000B680
 bInterfaceNumber =   0
 bInterfaceClass =    3
 bInterfaceSubClass = 1
 bInterfaceProtocol = 1
HID Parser Claim: 09 04 00 00 01 03 01 01 04 09 21 11 01 00 01 22 2D 00 07 05 81 03 08 00 01 09 04 01 00 01 03 00 00 05 09 21 10 01 00 01 22 76 00 07 05 82 03 10 00 01 09 04 02 00 02 03 00 00 06 09 21 10 01 00 01 22 22 00 07 05 83 03 40 00 02 07 05 04 03 40 00 02
report descriptor size = 45
Single endpoint HID:
  endpoint = 81
   size = 8
   interval = 1
new_Pipe
allocate_interrupt_pipe_bandwidth
 best_bandwidth = 3, at offset = 0, shift= 0
Descriptor 33 = HID
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE

USBDeviceInfo claim this=2000EF68

****************************************
** Interface Level **
09 04 01 00 01 03 00 00 05 09 21 10 01 00 01 22 76 00 07 05 82 03 10 00 01 09 04 02 00 02 03 00
00 06 09 21 10 01 00 01 22 22 00 07 05 83 03 40 00 02 07 05 04 03 40 00 02
 bInterfaceNumber = 1
 number end points = 1
 bInterfaceClass =    3
 bInterfaceSubClass = 0
    HID
 bInterfaceProtocol = 0
    None
report descriptor size = 118
  endpoint = 82
    attributes = 3 Interrupt
    size = 16
    interval = 1
HIDParser claim this=2000BDC0
 bInterfaceNumber =   1
 bInterfaceClass =    3
 bInterfaceSubClass = 0
 bInterfaceProtocol = 0
HID Parser Claim: 09 04 01 00 01 03 00 00 05 09 21 10 01 00 01 22 76 00 07 05 82 03 10 00 01 09 04 02 00 02 03 00 00 06 09 21 10 01 00 01 22 22 00 07 05 83 03 40 00 02 07 05 04 03 40 00 02
report descriptor size = 118
Single endpoint HID:
  endpoint = 82
   size = 16
   interval = 1
new_Pipe
allocate_interrupt_pipe_bandwidth
 best_bandwidth = 5, at offset = 0, shift= 3
Descriptor 33 = HID
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE

USBDeviceInfo claim this=2000EF68

****************************************
** Interface Level **
09 04 02 00 02 03 00 00 06 09 21 10 01 00 01 22 22 00 07 05 83 03 40 00 02 07 05 04 03 40 00 02
 bInterfaceNumber = 2
 number end points = 2
 bInterfaceClass =    3
 bInterfaceSubClass = 0
    HID
 bInterfaceProtocol = 0
    None
report descriptor size = 34
  endpoint = 83
    attributes = 3 Interrupt
    size = 64
    interval = 2
  endpoint = 4
    attributes = 3 Interrupt
    size = 64
    interval = 2
HIDParser claim this=2000C500
 bInterfaceNumber =   2
 bInterfaceClass =    3
 bInterfaceSubClass = 0
 bInterfaceProtocol = 0
HID Parser Claim: 09 04 02 00 02 03 00 00 06 09 21 10 01 00 01 22 22 00 07 05 83 03 40 00 02 07 05 04 03 40 00 02
report descriptor size = 34
Two endpoint HID:
  endpoint = 83
   size = 64
   interval = 2
  endpoint = 4
   size = 64
   interval = 2
new_Pipe
allocate_interrupt_pipe_bandwidth
 best_bandwidth = 8, at offset = 0, shift= 2
new_Pipe
allocate_interrupt_pipe_bandwidth
best_bandwidth = 7, at offset = 1, shift= 1
Descriptor 33 = HID
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
*** Device HID2 bcd0:1100 - connected ***
  manufacturer: CC
  product: DSK3
  Serial: 000123456789
*** Device HID3 bcd0:1100 - connected ***
  manufacturer: CC
  product: DSK3
  Serial: 000123456789
*** Device HID1 bcd0:1100 - connected ***
  manufacturer: CC
  product: DSK3
  Serial: 000123456789
ERROR Followup
    remove from followup list
    stray halted 20009440
    stray halted 2000D660
CrashReport:
  A problem occurred at (system time) 12:28:48
  Code was executing from address 0x4170
  CFSR: 82
    (DACCVIOL) Data Access Violation
    (MMARVALID) Accessed Address: 0x10 (nullptr)
      Check code at 0x4170 - very likely a bug!
      Run "addr2line -e mysketch.ino.elf 0x4170" for filename & line number.
  Temperature inside the chip was 43.57 °C
  Startup CPU clock speed is 600MHz
  Reboot was caused by auto reboot after fault or bad interrupt detected
 
Back
Top