mjs513
Senior Member+
Since I didn't have a BT keyboard I tried it with your merged version except using a PS4 controller that I know works wired or with USB Host Shield 2.0. I get as far as it identifying the hub and the adapter and "claiming" both the Joystick and the Bluetooth. But no data. Need to ask - to go into verbose mode just have to have the 2 defines uncommented?My current stuff is up on github: https://github.com/KurtE/USBHost_t36/tree/WIP2-Bluetooth
I have tried it with one of the dongles and the screwy keyboard: https://www.amazon.com/gp/product/B00JO80LVW
Took a bit of time, and experimenting, but I had it talking for awhile![]()
I turned on the Pairing code, then run it... Then turned on keyboard, hit BT button, then typed 0000<enter>
As that was the key that was part of the code..
Then it paired and I am able to type in a few things...
Here is complete debug: output with verbose output turned on.
….
As you can see at the end there are keyboard data... There is also data returned for pad area, not sure I am processing any of it...
But at least some of it looks like it is limping along
Code:
USB Host Testing
960
USB2 PLL running
reset waited 5
USBHS_ASYNCLISTADDR = 0
USBHS_PERIODICLISTBASE = 20006000
periodictable = 20006000
port change: 10001803
connect
begin reset
port change: 18001205
port enabled
end recovery
new_Device: 480 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
Device Descriptor:
12 01 00 02 09 00 01 40 E3 05 08 06 02 07 00 01 00 01
VendorID = 05E3, ProductID = 0608, Version = 0702
Class/Subclass/Protocol = 9(Hub) / 0 / 1(Single-TT)
Number of Configurations = 1
enumeration:
enumeration:
Product: USB2.0 Hub
enumeration:
Config data length = 25
enumeration:
Configuration Descriptor:
09 02 19 00 01 01 00 E0 32
NumInterfaces = 1
ConfigurationValue = 1
09 04 00 00 01 09 00 00 00
Interface = 0
Number of endpoints = 1
Class/Subclass/Protocol = 9(Hub) / 0 / 0
07 05 81 03 01 00 0C
Endpoint = 1 IN
Type = Interrupt
Max Size = 1
Polling Interval = 12
enumeration:
USBHub memory usage = 960
USBHub claim_device this=20002A00
found possible interface, altsetting=0
number of interfaces found = 1
*** Device Hub1 5e3:608 - connected ***
product: USB2.0 Hub
USBHub control callback
09 29 04 E0 00 32 64 00 FF 00 00 00 00 00 00 00
Hub ports = 4
USBHub control callback
USBHub control callback
USBHub control callback
USBHub control callback
power turned on to all ports
device addr = 1
new_Pipe
allocate_interrupt_pipe_bandwidth
ep interval = 12
interval = 256
best_bandwidth = 2, at offset = 0
pipe cap1 = F0012101
HUB Callback (member)
status = 10
getstatus, port = 4
USBHub control callback
01 01 01 00
New Port Status
status=10101 port=4
state=0
Device is present:
Has Power
USBHub control callback
Port Status Cleared, port=4
timer event (19999 us): Debounce Timer, this = 20002A00, timer = 20002D18
ports in use bitmask = 10
getstatus, port = 4
USBHub control callback
01 01 00 00
New Port Status
status=101 port=4
state=2
Device is present:
Has Power
timer event (20000 us): Debounce Timer, this = 20002A00, timer = 20002D18
ports in use bitmask = 10
getstatus, port = 4
USBHub control callback
01 01 00 00
New Port Status
status=101 port=4
state=3
Device is present:
Has Power
timer event (19999 us): Debounce Timer, this = 20002A00, timer = 20002D18
ports in use bitmask = 10
getstatus, port = 4
USBHub control callback
01 01 00 00
New Port Status
status=101 port=4
state=4
Device is present:
Has Power
timer event (22031 us): Debounce Timer, this = 20002A00, timer = 20002D18
ports in use bitmask = 10
getstatus, port = 4
USBHub control callback
01 01 00 00
New Port Status
status=101 port=4
state=5
Device is present:
Has Power
timer event (31619 us): Debounce Timer, this = 20002A00, timer = 20002D18
ports in use bitmask = 10
getstatus, port = 4
USBHub control callback
01 01 00 00
New Port Status
status=101 port=4
state=6
Device is present:
Has Power
sending reset
send_setreset
timer event (33684 us): Debounce Timer, this = 20002A00, timer = 20002D18
ports in use bitmask = 0
USBHub control callback
unhandled setup, message = 40323
HUB Callback (member)
status = 10
getstatus, port = 4
USBHub control callback
03 01 10 00
New Port Status
status=100103 port=4
state=7
Device is present:
Enabled, speed = 12 Mbit/sec
Has Power
HUB Callback (member)
status = 10
deferred getstatus, port = 4
USBHub control callback
unhandled setup, message = 140123
getstatus, port = 4
USBHub control callback
03 01 00 00
New Port Status
status=103 port=4
state=8
Device is present:
Enabled, speed = 12 Mbit/sec
Has Power
timer event (51658 us): Hello, I'm resettimer, this = 20002A00, timer = 20002D34
port_doing_reset = 4
PORT_RECOVERY
new_Device: 12 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
Device Descriptor:
12 01 00 02 FF 01 01 40 5C 0A E8 21 12 01 01 02 03 01
VendorID = 0A5C, ProductID = 21E8, Version = 0112
Class/Subclass/Protocol = 255 / 1 / 1
Number of Configurations = 1
enumeration:
enumeration:
Manufacturer: Broadcom Corp
enumeration:
Product: BCM20702A0
enumeration:
Serial Number: 5CF3707A1CC9
enumeration:
Config data length = 218
enumeration:
Configuration Descriptor:
09 02 DA 00 04 01 00 E0 00
NumInterfaces = 4
ConfigurationValue = 1
09 04 00 00 03 FF 01 01 00
Interface = 0
Number of endpoints = 3
Class/Subclass/Protocol = 255 / 1 / 1
07 05 81 03 10 00 01
Endpoint = 1 IN
Type = Interrupt
Max Size = 16
Polling Interval = 1
07 05 82 02 40 00 01
Endpoint = 2 IN
Type = Bulk
Max Size = 64
Polling Interval = 1
07 05 02 02 40 00 01
Endpoint = 2 OUT
Type = Bulk
Max Size = 64
Polling Interval = 1
09 04 01 00 02 FF 01 01 00
Interface = 1
Number of endpoints = 2
Class/Subclass/Protocol = 255 / 1 / 1
07 05 83 01 00 00 01
Endpoint = 3 IN
Type = Isochronous
Max Size = 0
Polling Interval = 1
07 05 03 01 00 00 01
Endpoint = 3 OUT
Type = Isochronous
Max Size = 0
Polling Interval = 1
09 04 01 01 02 FF 01 01 00
Interface = 1
Number of endpoints = 2
Class/Subclass/Protocol = 255 / 1 / 1
07 05 83 01 09 00 01
Endpoint = 3 IN
Type = Isochronous
Max Size = 9
Polling Interval = 1
07 05 03 01 09 00 01
Endpoint = 3 OUT
Type = Isochronous
Max Size = 9
Polling Interval = 1
09 04 01 02 02 FF 01 01 00
Interface = 1
Number of endpoints = 2
Class/Subclass/Protocol = 255 / 1 / 1
07 05 83 01 11 00 01
Endpoint = 3 IN
Type = Isochronous
Max Size = 17
Polling Interval = 1
07 05 03 01 11 00 01
Endpoint = 3 OUT
Type = Isochronous
Max Size = 17
Polling Interval = 1
09 04 01 03 02 FF 01 01 00
Interface = 1
Number of endpoints = 2
Class/Subclass/Protocol = 255 / 1 / 1
07 05 83 01 19 00 01
Endpoint = 3 IN
Type = Isochronous
Max Size = 25
Polling Interval = 1
07 05 03 01 19 00 01
Endpoint = 3 OUT
Type = Isochronous
Max Size = 25
Polling Interval = 1
09 04 01 04 02 FF 01 01 00
Interface = 1
Number of endpoints = 2
Class/Subclass/Protocol = 255 / 1 / 1
07 05 83 01 21 00 01
Endpoint = 3 IN
Type = Isochronous
Max Size = 33
Polling Interval = 1
07 05 03 01 21 00 01
Endpoint = 3 OUT
Type = Isochronous
Max Size = 33
Polling Interval = 1
09 04 01 05 02 FF 01 01 00
Interface = 1
Number of endpoints = 2
Class/Subclass/Protocol = 255 / 1 / 1
07 05 83 01 31 00 01
Endpoint = 3 IN
Type = Isochronous
Max Size = 49
Polling Interval = 1
07 05 03 01 31 00 01
Endpoint = 3 OUT
Type = Isochronous
Max Size = 49
Polling Interval = 1
09 04 02 00 02 FF FF FF 00
Interface = 2
Number of endpoints = 2
Class/Subclass/Protocol = 255 / 255 / 255
07 05 84 02 20 00 01
Endpoint = 4 IN
Type = Bulk
Max Size = 32
Polling Interval = 1
07 05 04 02 20 00 01
Endpoint = 4 OUT
Type = Bulk
Max Size = 32
Polling Interval = 1
09 04 03 00 00 FE 01 01 00
Interface = 3
Number of endpoints = 0
Class/Subclass/Protocol = 254 / 1 / 1
09 21 05 88 13 40 00 10 01
HID, 64 report descriptors
enumeration:
USBHub memory usage = 960
USBHub claim_device this=20002DC0
HIDParser claim this=200031A0
HIDParser claim this=200036A0
HIDParser claim this=20003BA0
HIDParser claim this=200040A0
HIDParser claim this=200045A0
JoystickController claim this=20005280
BluetoothController claim this=20004AA0
Descriptor 4 = INTERFACE
HIDParser claim this=200031A0
HIDParser claim this=200036A0
HIDParser claim this=20003BA0
HIDParser claim this=200040A0
HIDParser claim this=200045A0
JoystickController claim this=20005280
09 04 00 00 03 FF 01 01 00 07 05 81 03 10 00 01 07 05 82 02 40 00 01 07 05 02 02 40 00 01 09 04 01 00 02 FF 01 01 00 07 05 83 01 00 00 01 07 05 03 01 00 00 01 09 04 01 01 02 FF 01 01 00 07 05 83 01 09 00 01 07 05 03 01 09 00 01 09 04 01 02 02 FF 01 01 00 07 05 83 01 11 00 01 07 05 03 01 11 00 01 09 04 01 03 02 FF 01 01 00 07 05 83 01 19 00 01 07 05 03 01 19 00 01 09 04 01 04 02 FF 01 01 00 07 05 83 01 21 00 01 07 05 03 01 21 00 01 09 04 01 05 02 FF 01 01 00 07 05 83 01 31 00 01 07 05 03 01 31 00 01 09 04 02 00 02 FF FF FF 00 07 05 84 02 20 00 01 07 05 04 02 20 00 01 09 04 03 00 00 FE 01 01 00 09 21 05 88 13 40 00 10 01
Jtype=0
BluetoothController claim this=20004AA0
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
HIDParser claim this=200031A0
HIDParser claim this=200036A0
HIDParser claim this=20003BA0
HIDParser claim this=200040A0
HIDParser claim this=200045A0
JoystickController claim this=20005280
09 04 01 00 02 FF 01 01 00 07 05 83 01 00 00 01 07 05 03 01 00 00 01 09 04 01 01 02 FF 01 01 00 07 05 83 01 09 00 01 07 05 03 01 09 00 01 09 04 01 02 02 FF 01 01 00 07 05 83 01 11 00 01 07 05 03 01 11 00 01 09 04 01 03 02 FF 01 01 00 07 05 83 01 19 00 01 07 05 03 01 19 00 01 09 04 01 04 02 FF 01 01 00 07 05 83 01 21 00 01 07 05 03 01 21 00 01 09 04 01 05 02 FF 01 01 00 07 05 83 01 31 00 01 07 05 03 01 31 00 01 09 04 02 00 02 FF FF FF 00 07 05 84 02 20 00 01 07 05 04 02 20 00 01 09 04 03 00 00 FE 01 01 00 09 21 05 88 13 40 00 10 01
Jtype=0
BluetoothController claim this=20004AA0
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
HIDParser claim this=200031A0
HIDParser claim this=200036A0
HIDParser claim this=20003BA0
HIDParser claim this=200040A0
HIDParser claim this=200045A0
JoystickController claim this=20005280
09 04 01 01 02 FF 01 01 00 07 05 83 01 09 00 01 07 05 03 01 09 00 01 09 04 01 02 02 FF 01 01 00 07 05 83 01 11 00 01 07 05 03 01 11 00 01 09 04 01 03 02 FF 01 01 00 07 05 83 01 19 00 01 07 05 03 01 19 00 01 09 04 01 04 02 FF 01 01 00 07 05 83 01 21 00 01 07 05 03 01 21 00 01 09 04 01 05 02 FF 01 01 00 07 05 83 01 31 00 01 07 05 03 01 31 00 01 09 04 02 00 02 FF FF FF 00 07 05 84 02 20 00 01 07 05 04 02 20 00 01 09 04 03 00 00 FE 01 01 00 09 21 05 88 13 40 00 10 01
Jtype=0
BluetoothController claim this=20004AA0
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
HIDParser claim this=200031A0
HIDParser claim this=200036A0
HIDParser claim this=20003BA0
HIDParser claim this=200040A0
HIDParser claim this=200045A0
JoystickController claim this=20005280
09 04 01 02 02 FF 01 01 00 07 05 83 01 11 00 01 07 05 03 01 11 00 01 09 04 01 03 02 FF 01 01 00 07 05 83 01 19 00 01 07 05 03 01 19 00 01 09 04 01 04 02 FF 01 01 00 07 05 83 01 21 00 01 07 05 03 01 21 00 01 09 04 01 05 02 FF 01 01 00 07 05 83 01 31 00 01 07 05 03 01 31 00 01 09 04 02 00 02 FF FF FF 00 07 05 84 02 20 00 01 07 05 04 02 20 00 01 09 04 03 00 00 FE 01 01 00 09 21 05 88 13 40 00 10 01
Jtype=0
BluetoothController claim this=20004AA0
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
HIDParser claim this=200031A0
HIDParser claim this=200036A0
HIDParser claim this=20003BA0
HIDParser claim this=200040A0
HIDParser claim this=200045A0
JoystickController claim this=20005280
09 04 01 03 02 FF 01 01 00 07 05 83 01 19 00 01 07 05 03 01 19 00 01 09 04 01 04 02 FF 01 01 00 07 05 83 01 21 00 01 07 05 03 01 21 00 01 09 04 01 05 02 FF 01 01 00 07 05 83 01 31 00 01 07 05 03 01 31 00 01 09 04 02 00 02 FF FF FF 00 07 05 84 02 20 00 01 07 05 04 02 20 00 01 09 04 03 00 00 FE 01 01 00 09 21 05 88 13 40 00 10 01
Jtype=0
BluetoothController claim this=20004AA0
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
HIDParser claim this=200031A0
HIDParser claim this=200036A0
HIDParser claim this=20003BA0
HIDParser claim this=200040A0
HIDParser claim this=200045A0
JoystickController claim this=20005280
09 04 01 04 02 FF 01 01 00 07 05 83 01 21 00 01 07 05 03 01 21 00 01 09 04 01 05 02 FF 01 01 00 07 05 83 01 31 00 01 07 05 03 01 31 00 01 09 04 02 00 02 FF FF FF 00 07 05 84 02 20 00 01 07 05 04 02 20 00 01 09 04 03 00 00 FE 01 01 00 09 21 05 88 13 40 00 10 01
Jtype=0
BluetoothController claim this=20004AA0
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
HIDParser claim this=200031A0
HIDParser claim this=200036A0
HIDParser claim this=20003BA0
HIDParser claim this=200040A0
HIDParser claim this=200045A0
JoystickController claim this=20005280
09 04 01 05 02 FF 01 01 00 07 05 83 01 31 00 01 07 05 03 01 31 00 01 09 04 02 00 02 FF FF FF 00 07 05 84 02 20 00 01 07 05 04 02 20 00 01 09 04 03 00 00 FE 01 01 00 09 21 05 88 13 40 00 10 01
Jtype=0
BluetoothController claim this=20004AA0
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
HIDParser claim this=200031A0
HIDParser claim this=200036A0
HIDParser claim this=20003BA0
HIDParser claim this=200040A0
HIDParser claim this=200045A0
JoystickController claim this=20005280
09 04 02 00 02 FF FF FF 00 07 05 84 02 20 00 01 07 05 04 02 20 00 01 09 04 03 00 00 FE 01 01 00 09 21 05 88 13 40 00 10 01
Jtype=0
BluetoothController claim this=20004AA0
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
HIDParser claim this=200031A0
HIDParser claim this=200036A0
HIDParser claim this=20003BA0
HIDParser claim this=200040A0
HIDParser claim this=200045A0
JoystickController claim this=20005280
09 04 03 00 00 FE 01 01 00 09 21 05 88 13 40 00 10 01
Jtype=0
BluetoothController claim this=20004AA0
Descriptor 33 = HID