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