T3.6 USB Host - Bluetooth

Okay read enough to be entertained by it being controlled by the DEGUG :: #define USBHOST_DEGUG_MEMORY_STREAM

Sounds like a nice feature to stream spew/data that otherwise comes too fast to deal with in real time - but can't be missed, and a good use of the PSRAM!
 
@KurtE
Downloaded your latest debug branch and gave it a try with my PS4. Seeing a couple of things:
1. If i press any button it looks like its trying to setLEDS, now this may be in the sketch, didn't check yet:
Code:
Joystick: buttons = 80000 0:129 1:125 2:131 3:0 4:0 5:130 6:0 7:0 8:0 9:0 10:6 11:24 12:14 13:181 14:255 15:217::setLEDS(0 0 0)
2. I always seem to be able to connect with the PS4 but sometimes it connects as a PS4 where rumble and all mappings are working and other times its connecting as something else - only getting the basic mappings and rumble not working - generic bt-joystick ?

Also I gave you debug a shot but when i hit 'D' its not printing data only little boxes to serial?
 
@mjs513 - I assume your running this on a T4.1 with EXTRAM... As that is where I am storing the data.

I am thinking about hacking this up some more and instead of assuming this, it will check this and if available allocate buffer up there. If not maybe call malloc for probably smaller buffer, depending if maybe T4.x can get maybe try for 256KB, if T3.6 either punt or see if maybe 64K or 128K...

And it would be interesting on why at times it properly sees it as a PS4 and maybe other times not.
 
@mjs513 - I assume your running this on a T4.1 with EXTRAM... As that is where I am storing the data.

I am thinking about hacking this up some more and instead of assuming this, it will check this and if available allocate buffer up there. If not maybe call malloc for probably smaller buffer, depending if maybe T4.x can get maybe try for 256KB, if T3.6 either punt or see if maybe 64K or 128K...

And it would be interesting on why at times it properly sees it as a PS4 and maybe other times not.

Oops no - just double checked and forgot i didn't solder the PSRAM on to the T41 I am using - just checked. Don't think I have enough space to solder it on now may give it a try though.
 
@mjs513 I just pushed up a version that can probably work on T4, and on T4.1 without PSRAM.
On T4.1 at startup the sketch checks for PSRAM and if not there it uses malloc of 256KB and uses that.

Obviously catches less stuff. Note: I should put in more debug prints on serial monitor, but if you look, there are simple one letter commands that change the buffering to remember the first part of stuff captured (stops recording when full), or last part (when full it bumps the head index as well so loses data at the front...
 
@mjs513 I just pushed up a version that can probably work on T4, and on T4.1 without PSRAM.
On T4.1 at startup the sketch checks for PSRAM and if not there it uses malloc of 256KB and uses that.

Obviously catches less stuff. Note: I should put in more debug prints on serial monitor, but if you look, there are simple one letter commands that change the buffering to remember the first part of stuff captured (stops recording when full), or last part (when full it bumps the head index as well so loses data at the front...

Ok that got it - works with no PSRAM only tested with a T4.1.

And it would be interesting on why at times it properly sees it as a PS4 and maybe other times not.
On initial connect it sees it all the time as a PS4. If i power off while its running and then power on and try and reconnect it sees it as something else after i connect again. Now it could be the PS4 is in a wacky state between disconnecting and reconnecting.
 
Morning again,

As mentioned on the: Joystick Thread, maybe this thread is more appropriate for discussing and maybe extending the Bluetooth support to handle the
XBox One S controller and maybe some others devices that us SDP...


So continuing here:

May have to go back to try Wireshark again on Linux box...

I did capture the communications on Arduino Mega/HostShield, using Logic Analyzer. Hopefully at some point soon they will add in some of the higher level anlyzers for USB, but did save report out:
Which was a little over 71.5K lines of output.

I then did the grep/sublime text editing like I mention in: https://forum.pjrc.com/threads/5545...-in-large-file?p=200761&viewfull=1#post200761

And now have 126 lines, which is a little easier to look through.

I think the interesting data in this case starts around line 100:
Code:
IN	0x01	0x0D	0x0F 0x04 0x00 0x00 0x1C 0x04	0xD807
[COLOR="#FF0000"]IN	0x02	0x1E	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x03 0x04 0x00 0x01 0x00 0x40 0x00	0x5668[/COLOR]
OUT	0x02	0x1E	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x03 0x08 0x00 0x50 0x00 0x40 0x00 0x01 0x00 0x00 0x00	0x0E3E
OUT	0x02	0x1E	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x03 0x08 0x00 0x50 0x00 0x40 0x00 0x00 0x00 0x00 0x00	0xF23F
OUT	0x02	0x1E	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x04 0x08 0x00 0x40 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF	0x0D7E
IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05	0xACFF
IN	0x01	0x0D	0x0F 0x04 0x00 0x01 0x00 0x00	0x1B5F
IN	0x01	0x0D	0x23 0x0D 0x00 0x48 0x00 0x00 0x03 0xBF 0x3E 0x8D 0xFE 0xDB 0xFD 0x7B 0x87	0xFC4E
SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00	0xBCBE
 
Morning (i think)
Yeah - what i liked about wire shark was that it gave you commands in english as opposed to hex as well and showed whether it was SDP, L2CAP along with DCIDs and SCIDS in the info field. Learn a little more each day :)

Not sure how to translate what you are showing in RED.
 
I completely understand! It helps to see the translations.

The Three output lines are Two connection responses (On Pending, one Complete), followed by a request...
I have some of this emulated now...
Code:
USB Host Testing

960

*** Device Bluet a12:1 - connected ***
  product: CSR8510 A10
  BDADDR: 11:71:da:7d:1a:0
*** BTHID Device Joystick1 0:0 - connected ***
  Serial:  

 *** dump the USBHost Debug data ***

USB2 PLL running

 reset waited 6

USBHS_ASYNCLISTADDR = 0

USBHS_PERIODICLISTBASE = 20008000

periodictable = 20008000

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 E0 01 01 40 12 0A 01 00 91 88 00 02 00 01 

    VendorID = 0A12, ProductID = 0001, Version = 8891

    Class/Subclass/Protocol = 224 / 1 / 1

    Number of Configurations = 1

enumeration:

enumeration:

Product: CSR8510 A10

enumeration:

Config data length = 177

enumeration:

Configuration Descriptor:

  09 02 B1 00 02 01 00 E0 32 

    NumInterfaces = 2

    ConfigurationValue = 1

  09 04 00 00 03 E0 01 01 00 

    Interface = 0

    Number of endpoints = 3

    Class/Subclass/Protocol = 224 / 1 / 1

  07 05 81 03 10 00 01 

    Endpoint = 1 IN

    Type = Interrupt

    Max Size = 16

    Polling Interval = 1

  07 05 02 02 40 00 01 

    Endpoint = 2 OUT

    Type = Bulk

    Max Size = 64

    Polling Interval = 1

  07 05 82 02 40 00 01 

    Endpoint = 2 IN

    Type = Bulk

    Max Size = 64

    Polling Interval = 1

  09 04 01 00 02 E0 01 01 00 

    Interface = 1

    Number of endpoints = 2

    Class/Subclass/Protocol = 224 / 1 / 1

  07 05 03 01 00 00 01 

    Endpoint = 3 OUT

    Type = Isochronous

    Max Size = 0

    Polling Interval = 1

  07 05 83 01 00 00 01 

    Endpoint = 3 IN

    Type = Isochronous

    Max Size = 0

    Polling Interval = 1

  09 04 01 01 02 E0 01 01 00 

    Interface = 1

    Number of endpoints = 2

    Class/Subclass/Protocol = 224 / 1 / 1

  07 05 03 01 09 00 01 

    Endpoint = 3 OUT

    Type = Isochronous

    Max Size = 9

    Polling Interval = 1

  07 05 83 01 09 00 01 

    Endpoint = 3 IN

    Type = Isochronous

    Max Size = 9

    Polling Interval = 1

  09 04 01 02 02 E0 01 01 00 

    Interface = 1

    Number of endpoints = 2

    Class/Subclass/Protocol = 224 / 1 / 1

  07 05 03 01 11 00 01 

    Endpoint = 3 OUT

    Type = Isochronous

    Max Size = 17

    Polling Interval = 1

  07 05 83 01 11 00 01 

    Endpoint = 3 IN

    Type = Isochronous

    Max Size = 17

    Polling Interval = 1

  09 04 01 03 02 E0 01 01 00 

    Interface = 1

    Number of endpoints = 2

    Class/Subclass/Protocol = 224 / 1 / 1

  07 05 03 01 19 00 01 

    Endpoint = 3 OUT

    Type = Isochronous

    Max Size = 25

    Polling Interval = 1

  07 05 83 01 19 00 01 

    Endpoint = 3 IN

    Type = Isochronous

    Max Size = 25

    Polling Interval = 1

  09 04 01 04 02 E0 01 01 00 

    Interface = 1

    Number of endpoints = 2

    Class/Subclass/Protocol = 224 / 1 / 1

  07 05 03 01 21 00 01 

    Endpoint = 3 OUT

    Type = Isochronous

    Max Size = 33

    Polling Interval = 1

  07 05 83 01 21 00 01 

    Endpoint = 3 IN

    Type = Isochronous

    Max Size = 33

    Polling Interval = 1

  09 04 01 05 02 E0 01 01 00 

    Interface = 1

    Number of endpoints = 2

    Class/Subclass/Protocol = 224 / 1 / 1

  07 05 03 01 31 00 01 

    Endpoint = 3 OUT

    Type = Isochronous

    Max Size = 49

    Polling Interval = 1

  07 05 83 01 31 00 01 

    Endpoint = 3 IN

    Type = Isochronous

    Max Size = 49

    Polling Interval = 1

enumeration:

USBHub memory usage = 960

USBHub claim_device this=20005AE0

USBHub memory usage = 960

USBHub claim_device this=20005EA0

HIDParser claim this=20004200

HIDParser claim this=20004820

HIDParser claim this=20006300

HIDParser claim this=20004E60

HIDParser claim this=20005480

JoystickController claim this=20007100

BluetoothController claim this=200069E0

BluetoothController claim this=200069e0 vid:pid=a12:1
    9 4 0 0 3 e0 1 1 0 7 5 81 3 10 0 1 7 5 2 2 40 0 1 7 5 82 2 40 0 1 9 4 1 0 2 e0 1 1 0 7 5 3 1 0 0 1 7 5 83 1 0 0 1 9 4 1 1 2 e0 1 1 0 7 5 
    3 1 9 0 1 7 5 83 1 9 0 1 9 4 1 2 2 e0 1 1 0 7 5 3 1 11 0 1 7 5 83 1 11 0 1 9 4 1 3 2 e0 1 1 0 7 5 3 1 19 0 1 7 5 83 1 19 0 1 9 4 1 4 2 e0 
    1 1 0 7 5 3 1 21 0 1 7 5 83 1 21 0 1 9 4 1 5 2 e0 1 1 0 7 5 3 1 31 0 1 7 5 83 1 31 0 1 
      rxep=1(16) txep=2(64) rx2ep=2(64)
BluetoothController, rxep=1(16), txep=2(64)

new_Pipe

allocate_interrupt_pipe_bandwidth

 best_bandwidth = 3, at offset = 0, shift= 0

new_Pipe

allocate_interrupt_pipe_bandwidth

 best_bandwidth = 6, at offset = 0, shift= 1

new_Pipe

HCI_RESET called (03 0c 00 )
    control callback (bluetooth) 1

    Control callback (bluetooth): 1 : 3 c 0 
0E 04 01 03 0C 00 

BT rx_data(6): e 4 1 3 c 0 
    Command Completed! 
HCI_WRITE_CLASS_OF_DEV called (24 0c 03 04 08 00 )
    control callback (bluetooth) 3

    Control callback (bluetooth): 3 : 24 c 3 4 8 0 
0E 04 01 24 0C 00 

BT rx_data(6): e 4 1 24 c 0 
    Command Completed! 
HCI_Read_BD_ADDR called (09 10 00 )
    control callback (bluetooth) 4

    Control callback (bluetooth): 4 : 9 10 0 
0E 0A 01 09 10 00 11 71 DA 7D 1A 00 

BT rx_data(12): e a 1 9 10 0 11 71 da 7d 1a 0 
    Command Completed! 
   BD Addr 0:1a:7d:da:71:11
HCI_Read_Local_Version_Information called (01 10 00 )
    control callback (bluetooth) 4

    Control callback (bluetooth): 4 : 1 10 0 
0E 0C 01 01 10 00 06 BB 22 06 0A 00 BB 22 

BT rx_data(14): e c 1 1 10 0 6 bb 22 6 a 0 bb 22 
    Command Completed! 
    Local Version: 6
HCI_WRITE_INQUIRY_MODE called (45 0c 01 02 )
    control callback (bluetooth) 6

    Control callback (bluetooth): 6 : 45 c 1 2 
0E 04 01 45 0C 00 

BT rx_data(6): e 4 1 45 c 0 
    Command Completed! 
HCI_Set_Event_Mask called (01 0c 08 ff ff ff ff ff 5f 00 00 )
    control callback (bluetooth) 7

    Control callback (bluetooth): 7 : 1 c 8 ff ff ff ff ff 5f 0 0 
0E 04 01 01 0C 00 

BT rx_data(6): e 4 1 1 c 0 
    Command Completed! 
HCI_INQUIRY called (01 04 05 33 8b 9e 30 0a )
    control callback (bluetooth) 8

    Control callback (bluetooth): 8 : 1 4 5 33 8b 9e 30 a 
0F 04 00 01 01 04 

BT rx_data(6): f 4 0 1 1 4 
    Command 401 Status 0
2F FF 01 DC 13 D6 1B AA 9C 01 02 08 05 00 08 5A 

BT rx_data(16): 2f ff 1 dc 13 d6 1b aa 9c 1 2 8 5 0 8 5a 
A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): a0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
00 

BT rx_data(1): 0 
    Extended Inquiry Result - Count: 1
      BD:dc:13:d6:1b:aa:9c, PS:1, class: 508
      Peripheral device
        Gamepad
BluetoothController::find_driver  driver 20007118
JoystickController::claim_bluetooth TRUE
    *** Claimed ***
HCI_INQUIRY_CANCEL called (02 04 00 )
    control callback (bluetooth) 64

    Control callback (bluetooth): 100 : 2 4 0 
0E 04 01 02 04 00 

BT rx_data(6): e 4 1 2 4 0 
    Command Completed! 
HCI_CREATE_CONNECTION called (05 04 0d dc 13 d6 1b aa 9c 18 cc 01 00 00 00 00 )
    control callback (bluetooth) 65

    Control callback (bluetooth): 101 : 5 4 d dc 13 d6 1b aa 9c 18 cc 1 0 0 0 0 
0F 04 00 01 05 04 

BT rx_data(6): f 4 0 1 5 4 
    Command 405 Status 0
03 0B 00 48 00 DC 13 D6 1B AA 9C 01 00 

BT rx_data(13): 3 b 0 48 0 dc 13 d6 1b aa 9c 1 0 
    Connection Complete - ST:0 LH:48
HCI_AUTH_REQUESTED called (11 04 02 48 00 )
    control callback (bluetooth) 6E

    Control callback (bluetooth): 110 : 11 4 2 48 0 
0F 04 00 00 11 04 

BT rx_data(6): f 4 0 0 11 4 
    Command 411 Status 0

=====================
BT rx2_data(16): 48 20 c 0 8 0 1 0 2 1 4 0 1 0 40 0 
  [COLOR="#FF0000"]  L2CAP Connection Request: ID: 1, PSM: 1, SCID: 40[/COLOR]
[COLOR="#008000"]L2CAP_CMD_CONNECTION_RESPONSE called(48 20 10 00 0c 00 01 00 03 01 08 00 50 00 40 00 01 00 00 00 )[/COLOR]
    tx_data(bluetooth) 6E

tx_data callback (bluetooth): 205 : 48 20 10 0 c 0 1 0 3 1 8 0 50 0 40 0 1 0 0 0 
[COLOR="#008000"]L2CAP_CMD_CONNECTION_RESPONSE called(48 20 10 00 0c 00 01 00 03 01 08 00 50 00 40 00 00 00 00 00 )[/COLOR]
    tx_data(bluetooth) 6E

tx_data callback (bluetooth): 206 : 48 20 10 0 c 0 1 0 3 1 8 0 50 0 40 0 0 0 0 0 
[COLOR="#008000"]L2CAP_ConfigRequest called(48 20 10 00 0c 00 01 00 04 02 08 00 40 00 00 00 01 02 ff ff )[/COLOR]
    tx_data(bluetooth) 6E

tx_data callback (bluetooth): 0 : 48 20 10 0 c 0 1 0 4 2 8 0 40 0 0 0 1 2 ff ff 
1B 03 48 00 05 

BT rx_data(5): 1b 3 48 0 5 
17 06 DC 13 D6 1B AA 9C 

BT rx_data(8): 17 6 dc 13 d6 1b aa 9c 
    Event: Link Key Request dc:13:d6:1b:aa:9c
HCI_LINK_KEY_NEG_REPLY called (0c 04 06 dc 13 d6 1b aa 9c )
0F 04 00 01 00 00 

BT rx_data(6): f 4 0 1 0 0 
    Command 0 Status 0
    control callback (bluetooth) 78

    Control callback (bluetooth): 120 : c 4 6 dc 13 d6 1b aa 9c 
0E 0A 01 0C 04 00 DC 13 D6 1B AA 9C 

BT rx_data(12): e a 1 c 4 0 dc 13 d6 1b aa 9c 
    Command Completed! 
16 06 DC 13 D6 1B AA 9C 

BT rx_data(8): 16 6 dc 13 d6 1b aa 9c 
    Event: Pin Code Request dc:13:d6:1b:aa:9c
HCI_PIN_CODE_REPLY called (0d 04 17 dc 13 d6 1b aa 9c 04 30 30 30 30 00 00 00 00 00 00 00 00 00 00 00 00 )
13 05 01 48 00 01 00 

BT rx_data(7): 13 5 1 48 0 1 0 
    control callback (bluetooth) 82

    Control callback (bluetooth): 130 : d 4 17 dc 13 d6 1b aa 9c 4 30 30 30 30 0 0 0 0 0 0 0 0 0 0 0 0 

=====================
BT rx2_data(20): 48 20 10 0 c 0 1 0 4 2 8 0 50 0 0 0 1 2 c8 5 
    L2CAP config Request: ID: 2, Dest:50, Flags:0,  Options: 1 2 c8 5
13 05 01 48 00 01 00 

BT rx_data(7): 13 5 1 48 0 1 0 

=====================
BT rx2_data(18): 48 20 e 0 a 0 1 0 5 2 6 0 50 0 0 0 0 0 
    L2CAP config Response: ID: 2, Source:50, Flags:0, Result:0, Config: 5c8
0E 0A 01 0D 04 00 DC 13 D6 1B AA 9C 

BT rx_data(12): e a 1 d 4 0 dc 13 d6 1b aa 9c 
    Command Completed! 
13 05 01 48 00 01 00 

BT rx_data(7): 13 5 1 48 0 1 0 

 *** dump the USBHost Debug data ***

06 03 06 48 00 

BT rx_data(5): 6 3 6 48 0 
    Event: HCI Authentication complete(6): handle: 48
ConnectionRequest called(48 20 0c 00 08 00 01 00 02 00 04 00 11 00 70 00 )
    tx_data(bluetooth) 82

tx_data callback (bluetooth): 0 : 48 20 c 0 8 0 1 0 2 0 4 0 11 0 70 0 
13 05 01 48 00 01 00 

BT rx_data(7): 13 5 1 48 0 1 0 

=====================
BT rx2_data(20): 48 20 10 0 c 0 1 0 3 0 8 0 40 0 70 0 3 0 0 0 
    L2CAP Connection Response: ID: 0, Dest:40, Source:70, Result:3, Status: 0
      Control Response
L2CAP_ConfigRequest called(48 20 10 00 0c 00 01 00 04 00 08 00 40 00 00 00 01 02 ff ff )
    tx_data(bluetooth) 82

tx_data callback (bluetooth): 0 : 48 20 10 0 c 0 1 0 4 0 8 0 40 0 0 0 1 2 ff ff 

=====================
BT rx2_data(18): 48 20 e 0 a 0 1 0 1 0 6 0 2 0 40 0 0 0 
    L2CAP command reject: ID: 0, length:6, Reason:2,  Data: 0 40 
13 05 01 48 00 01 00 

BT rx_data(7): 13 5 1 48 0 1 0 

 *** dump the USBHost Debug data ***

I am doing this using my save debug data to memory PSRAM branch. You can see where I did three dump commands. So the 2nd one shows where it sort of hung up (no more data) for awhile, which usually I am missing processing something and/or asking for something

EDIT: Forgot to mention in the output data, the original line showing different type connection in RED, the three lines I was not outputting is in green
 
Hey Kurt, just started using the USBHost_t36 library (master) and noticed that your bluetooth contributions are quite significant. I'm using a CSR 4.0 dongle with a PS4BT controller and found that it's a bit unreliable compared to the USBHostShield library.
I usually have to press the PS button many times until it connects, and if I turn the controller off and on, it never connects again. Sorry if this was already addressed in a previous post, I didn't read the 32 pages, but I read many of them :).

I'd like to debug the issue and maybe contribute with a fix, any tips on where to start? (I have a logic analyzer if that helps)

Here is the dump from the JoystickBT example.
Code:
USB Host Testing

960

*** Device Bluet a12:1 - connected ***
  product: CSR8510 A10
  BDADDR: 13:71:da:7d:1a:0
BluetoothController::find_driver  driver 20004b78
    *** Claimed ***
*** BTHID Device Joystick1 0:0 - connected ***
  Serial: �
Bluetooth Disconnect*** BTHID Device Joystick1 - disconnected ***
*** Device Bluet - disconnected ***
*** Device Bluet a12:1 - connected ***
  product: CSR8510 A10
  BDADDR: 13:71:da:7d:1a:0
 
Hi @arielbernal - It would be great to get additional help on trying to figure out why sometimes the PS4 connects and other times not.

If you have looked at this thread, you will see I have a couple of WIP branches for Bluetooth stuff.

Probably the most up to date (without my later tinkering is the BT-Multi-merge up on github (KurtE)

The one with more tinkering where I am using some T4.1 with the possibility of more memory PSRAM to help figure this out plus trying to figure out XBox One is
BT-Multi-Merge-Debug

With this debug branch I am trying to write all of the Debug Outputs to Ram instead of Serial as the timing changes when debug is being output to Serial was such that PS4 almost always worked. Even when writing to memory it works a lot of the time.

There are things that allow more debug information to be output, including:
in USBHost_t36 is a define that is usually commented out: #define USBHOST_PRINT_DEBUG

In the above debug branch there is the code for memory stream as well...

Then in bluetooth.cpp there are some defines to print out Bluetooth specific things. by the two defines:
#define DEBUG_BT
#define DEBUG_BT_VERBOSE

And likewise in joystick.cpp is another define:
#define DEBUG_JOYSTICK

Again in most releases these are all commented out.

Logic Analyzers can help: I use my logic 8 Pro from Saleae to capture USB traffic. But this can be huge. If you look up a few posts you will see a link to another thread, where I then use linux grep and text editor to cut the output down to manageable size, but it is raw data being sent to and from the device. It is a lot easier with the debug output to hopefully make sense of the actual data.

Again it would be great to have another set of eyes and the like to figure this out.

Kurt
 
Thank you for the tips, I just started debugging the problem. I got to the point where I can get it to fail 90% of the time. After the PS4 connects the application just hangs and doesn't get back to the main loop.
I started by adding printf statements as you did but at the beginning and end of every function of the BluetoothController class to find the issue. So I got a tabulated list like this one

Code:
BluetoothController::claim 
    BluetoothController::sendResetHCI 
        BluetoothController::sendHCICommand 
        BluetoothController::sendHCICommand End 
    BluetoothController::sendResetHCI End 
BluetoothController::claim End 
BluetoothController::control 
BluetoothController::control End 
BluetoothController::rx_callback 
    BluetoothController::rx_data 
        BluetoothController::handle_hci_command_complete 
            BluetoothController::queue_next_hci_command 
                BluetoothController::sendHDCWriteClassOfDev 
                    BluetoothController::sendHCICommand 
                    BluetoothController::sendHCICommand End 
                BluetoothController::sendHDCWriteClassOfDev End 
            BluetoothController::queue_next_hci_command End 
        BluetoothController::handle_hci_command_complete End 
    BluetoothController::rx_data End 
BluetoothController::rx_callback End 
BluetoothController::control 
BluetoothController::control End 
...
BluetoothController::rx2_callback 
    BluetoothController::rx2_data 
    BluetoothController::rx2_data End 
BluetoothController::rx2_callback End 
BluetoothController::rx2_callback 
    BluetoothController::rx2_data 
        BluetoothController::handleHIDTHDRData 
        BluetoothController::handleHIDTHDRData End 
    BluetoothController::rx2_data End 
BluetoothController::rx2_callback End

As you can see every call matches a return so it seems that it doesn't get stuck in any of the BluetoothController functions.
 
Thanks,

What may be interesting is to see if we can deduce some order of messages or the like. Example are we properly detecting it is a PS4. I will get back to looking at this soon, but been sort of distracted. But would like to get back to this. On my own project the PS3 is currently more reliable but I like the PS4 a lot better.

But will probably next again try to figure out XBox One. (Or punt on it)
 
Wondering if anything still running on the hang? Could be faulted - GDB may work to show that - or just stops hitting loop - but an interval timer _isr to pinToggle(13) - might show it still alive. I have seen loop() fail in some context - but the _isr() still was running {testing then was with a pin change interrupt}. Seeing the LED blink (or not) would be telling as a first step.
 
Thank you @defragster. I just attached a timer interruption to the built_in_led and worked fine until I reconnected the controller then it hangs. The programming port gets disconnected too, so I have to reboot the teensy to get the usb port back. I wish I have GDB set it up in my dev system, I'm using printf statements to debug. When the PS4 connects, it does detect it as a Joystick PS4 but the manufacture and serial values are random chars.
Even though the teensy hangs the PS4 is still connected (led on) and the CSR4 led is blinking like there's some traffic. I'll try to attach the logic analyzer to see if there's any communication from the BT.
 
These are the last calls to the USBHost class member functions before it hangs and it doesn't get stuck there either
Code:
USBHost::isr BEG
  USBHost::followup_Transfer BEG
    USBHost::queue_Data_Transfer BEG
      init_qTD BEG
      init_qTD END
    USBHost::queue_Data_Transfer END
    USBHost::queue_Transfer BEG
      add_to_periodic_followup_list BEG
      add_to_periodic_followup_list END
    USBHost::queue_Transfer END
    USBHost::queue_Data_Transfer BEG
      init_qTD BEG
      init_qTD END
    USBHost::queue_Data_Transfer END
    USBHost::queue_Transfer BEG
    USBHost::queue_Transfer END
  USBHost::followup_Transfer END
  remove_from_async_followup_list BEG
  remove_from_async_followup_list END
  USBHost::followup_Transfer BEG
  USBHost::followup_Transfer END
  USBHost::followup_Transfer BEG
    USBHost::queue_Data_Transfer BEG
      init_qTD BEG
      init_qTD END
    USBHost::queue_Data_Transfer END
    USBHost::queue_Transfer BEG
      add_to_periodic_followup_list BEG
      add_to_periodic_followup_list END
    USBHost::queue_Transfer END
  USBHost::followup_Transfer END
  remove_from_periodic_followup_list BEG
  remove_from_periodic_followup_list END
  USBHost::followup_Transfer BEG
  USBHost::followup_Transfer END
  USBHost::followup_Transfer BEG
  USBHost::followup_Transfer END
USBHost::isr END
 
If this is Windows it is easy to get GDB started - it is already in the installed files of IDE/TeensyDuino.

It was added as an option using github.com/Defragster/Tset/

The GDB thread also has an installer for the IDE that just hooks up the paths as needed - though not tried it - others have. That also works for non-windows. But depending on USB type in use it may not configure 'normally' needing "Dual Serial".

The LED Blink would stop with a Fault - as would the USB. So doing that might allow seeing info about where the code was when it faulted.
 
I almost succeeded at using GDB, unfortunately some TyCommander QT dependencies didn't like my dev configuration. I'll keep working on getting the debugging capabilities since it's quite a challenge to debug with printf statements. I added the following debugging class to help me tracking the calls (so far interruptions haven't messed up the indentation).
I can't believe that std::string is fully supported (probably performance is not great)
Code:
class debugPrint {
public:
	static debugPrint& getInstance() {
                static debugPrint instance;
    	        return instance;
  	}
	static void begin(const std::string& x) {
		Serial.printf("%s BEG\n", (getInstance().str + x).c_str()); 
		getInstance().str += "  ";
	}
	static void end(const std::string& x) {
 		getInstance().str.pop_back(); 
		getInstance().str.pop_back();
		Serial.printf("%s END\n", (getInstance().str + x).c_str());
	}
private:
       std::string str = "";
       debugPrint() = default;
       ~debugPrint() = default;
       debugPrint(const debugPrint&) = delete;
       debugPrint& operator=(const debugPrint&) = delete;	
};
 
I just found that if I disable UpdateActiveDeviceInfo() in JoystickBT.ino I cannot reproduce the hang anymore. Which is weird since there is not much going on in that function.
I noticed it that there is some subtyping between JoystickController and BTHIDInput, and that the following evaluation
Code:
if(*bthiddrivers[i] != bthid_driver_active[i])
calls the BTHIDInput::bool operator instead of JoystickController::bool since is overwritten because there is no virtual modifier. I still need to check whether this is an issue or not. It seems odd that the teensy would crash here since I haven't seen any pointer misuse.

Still about 10-20% of time it fails to connect but it does after retrying, and it doesn't hang after reconnecting either.
 
@mjs513 and ...

As mentioned in the thread: https://forum.pjrc.com/threads/62712-Usbhost_t36-is-broken-for-bluetooth-xbox-one-controllers

Some one has made a version of the USB Host Shield 2 code that talks to XBox One controllers.

So I cloned it down and built it.

So far I have not gotten any Teensy to work use the Host shields I have... But one works with Arduino Mega... I did today order one of the Sparkfun ones and will try that one with Teensy.

I have been able to get a XBox One to talk using this.

I turned on a lot of the debug stuff in the library. There are probably more secrets on how to turn on more .

Debug Output:
Code:
Start
XBOX Bluetooth Library Started

BTDSSP ConfigureDevice
BTDSSP Init
Addr: 0A
Bluetooth Dongle Initialized
EV_CONNECTION_REQUEST
Class of device: 00 05 08
...
EV_CONNECTION_REQUEST
Class of device: 00 05 08
Gamepad is connecting
EV_CONNECTION_REQUEST
Class of device: 00 05 08
Gamepad is connecting
No response to HCI Reset
HCI Reset complete
Write class of device
Simple pairing was enabled
Set Event Mask
HCI_CHECK_DEVICE_SERVICE
pairWithHIDDevice = 01
Please enable discovery of your device.
Number of responses: 1
Class of device: 00 05 08
Gamepad found
BD_ADDR: C8:3F:26:B3:AC:16
HID device found
Remote Name: Xbox Wireless Controller
Connecting to HID device
EV_CONNECTION_COMPLETE:Connection established
Connected to HID device
EV_LINK_KEY_REQUEST 
pairWithHIDDevice = 01
EEPROM.read Link Key: 
hci_link_key_request_reply
EV_AUTHENTICATION_COMPLETE
Pairing successful with HID device
pairWithHIDDevice:01
connectToHIDDevice:01
Send HID Control Connection Request
EV_Encryption Changed
EV_Encryption Changed
EV_Encryption Changed
Send HID Control Config Request
Set protocol mode: 01
Send HID Interrupt Connection Request
Send HID Interrupt Config Request
HID Channels Established
L2CAP Interrupt: A1 01 29 7F 58 7D 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 7D58   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F 58 7D 24 84 85 86 00 00 00 00 00 00 00 
L2CAP Interrupt: A1 01 29 7F A8 7D 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 7DA8   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F 0D 7E 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 7E0D   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F 7E 7F 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 7F7E   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F D4 80 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 80D4   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F E5 81 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 81E5   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F BF 82 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 82BF   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F 69 83 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 8369   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F1 83 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 83F1   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F 53 84 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 8453   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F 9B 84 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 849B   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 24 84 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 8424  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 A3 83 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 83A3  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 A5 82 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 82A5  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 C9 80 85 86 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 80C9  Z2: 8685   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 C1 7C 41 87 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 7CC1  Z2: 8741   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 D1 5A 0C 89 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 5AD1  Z2: 890C   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 8C 56 20 8B 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 568C  Z2: 8B20   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 2D 32 04 8D 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 322D  Z2: 8D04   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 A6 2F 81 8E 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 2FA6  Z2: 8E81   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 C5 2A B3 8F 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 2AC5  Z2: 8FB3   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 4F 09 A2 90 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 094F  Z2: 90A2   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 60 91 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 9160   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 ED 91 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 91ED   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 4C 92 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 924C   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 87 92 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 9287   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 14 92 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 9214   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 B8 91 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 91B8   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 3C 91 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 913C   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 BB 90 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 90BB   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 4F 90 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 904F   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 52 8F 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 8F52   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 25 8E 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 8E25   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 F5 8C 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 8CF5   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 DB 8B 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 8BDB   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 C4 8A 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 8AC4   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 B8 89 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 89B8   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 D1 88 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 88D1   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 DE 87 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 87DE   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 CB 86 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 86CB   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 C6 85 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 85C6   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 A5 84 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 84A5   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 EE 82 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 82EE   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 FF 80 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 80FF   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 01 7F 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 7F01   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 1D 7D 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 7D1D   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 2D 7B 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 7B2D   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 66 79 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 7966   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 D8 77 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 77D8   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 78 76 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 7678   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 58 75 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 7558   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 55 74 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 7455   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 6A 73 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 736A   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 8B 72 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 728B   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 88 71 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 7188   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 90 70 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 7090   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 A6 6F 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 6FA6   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 00 B2 6E 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0000  Z2: 6EB2   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 74 00 8D 6D 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 0074  Z2: 6D8D   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 EE 01 74 6C 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 01EE  Z2: 6C74   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 BD 04 8E 6B 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 04BD  Z2: 6B8E   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 EB 08 D7 6A 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 08EB  Z2: 6AD7   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 31 23 48 6A 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 2331  Z2: 6A48   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 18 25 E9 69 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 2518  Z2: 69E9   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 0B 29 E9 69 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 290B  Z2: 69E9   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 68 2D E9 69 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 2D68  Z2: 69E9   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 4A 31 38 6A 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 314A  Z2: 6A38   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 7B 34 89 6A 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 347B  Z2: 6A89   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 2C 37 D5 6A 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 372C  Z2: 6AD5   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 71 39 22 6B 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 3971  Z2: 6B22   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 4D 3B 8E 6B 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 3B4D  Z2: 6B8E   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 D0 3C 01 6C 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 3CD0  Z2: 6C01   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 3F 3F 1B 6D 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 3F3F  Z2: 6D1B   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 33 5D 28 6F 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 5D33  Z2: 6F28   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 B1 61 BC 72 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 61B1  Z2: 72BC   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 48 66 D1 75 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 6648  Z2: 75D1   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 00 6A 55 78 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 6A00  Z2: 7855   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 F4 6C 5C 7A 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 6CF4  Z2: 7A5C   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 7A 6F 03 7C 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 6F7A  Z2: 7C03   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 7E 71 55 7D 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 717E  Z2: 7D55   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 22 73 68 7E 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 7322  Z2: 7E68   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 77 74 3E 7F 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 7477  Z2: 7F3E   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 8D 75 F0 7F 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 758D  Z2: 7FF0   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 72 76 7E 80 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 7672  Z2: 807E   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 BD 77 44 81 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 77BD  Z2: 8144   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 38 78 8D 81 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 7838  Z2: 818D   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 A0 78 C9 81 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 78A0  Z2: 81C9   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 2C 79 1D 82 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 792C  Z2: 821D   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 A0 79 1D 82 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 79A0  Z2: 821D   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 A0 79 60 82 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 79A0  Z2: 8260   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 14 7A 60 82 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 7A14  Z2: 8260   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 6B 7A 60 82 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 7A6B  Z2: 8260   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 6B 7A 9B 82 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 7A6B  Z2: 829B   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F F2 84 C4 7A 9B 82 00 00 00 00 00 00 00    X: 7F29  Y: 84F2   Z1: 7AC4  Z2: 829B   LT: 0000   RT: 0000

L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 01 29 7F 9B 84 C4 7A 9B 82 00 00 00 00 00 00 00    X: 7F29  Y: 849B   Z1: 7AC4  Z2: 829B   LT: 0000   RT: 0000

HCI_DONE_STATE: >>> HCI_DISCONNECT_STATE:
L2CAP Interrupt: A1 01 29 7F 44 84 C4 7A 9B 82 00 00 00 00 00 00 00    X: 7F29  Y: 8444   Z1: 7AC4  Z2: 829B   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F EA 83 C4 7A 9B 82 00 00 00 00 00 00 00    X: 7F29  Y: 83EA   Z1: 7AC4  Z2: 829B   LT: 0000   RT: 0000

L2CAP Interrupt: A1 01 29 7F 8F 83 C4 7A 9B 82 00 00 00 00 00 00 00    X: 7F29  Y: 838F   Z1: 7AC4  Z2: 829B   LT: 0000   RT: 0000

L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 01 29 7F 8F 83 1C 7B 9B 82 00 00 00 00 00 00 00    X: 7F29  Y: 838F   Z1: 7B1C  Z2: 829B   LT: 0000   RT: 0000

L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 87 
Unknown Report type: 04
L2CAP Interrupt: A1 04 07 
Unknown Report type: 04
EV_DISCONNECTION_COMPLETE:
hci_check_flag HCI_FLAG_DISCONNECT_COMPLETE
HCI_DISCONNECT_STATE: >>> HCI_DISCONNECTED_STATE:
EV_DISCONNECTION_COMPLETE:
HCI Disconnected from Device
HCI_DISCONNECTED_STATE: >>> HCI_SCANNING_STATE:
HCI_SCANNING_STATE:
connectToHIDDevice:00
pairWithHIDDevice:00
Wait For Incoming Connection Request
Inquiry Scan disabled. Page Scan enabled.

I also did a Logic Analyzer capture of this one and then output report and then used, grep and Sublimetext regular expression stuff to knock the data more down to size... Which looks like:

Code:
Column1	Column2	Column3	Column4	Column5
7.15195892	SETUP	0x00	0x16	0xA3 0x00 0x00 0x00 0x02 0x00 0x04 0x00
7.152385572	OUT	0x00	0x16	0x0000
7.152512272	SETUP	0x00	0x16	0x23 0x01 0x14 0x00 0x02 0x00 0x00 0x00
7.15295836	SETUP	0x00	0x16	0x23 0x01 0x10 0x00 0x02 0x00 0x00 0x00
7.173362842	SETUP	0x00	0x02	0x80 0x06 0x00 0x01 0x00 0x00 0x12 0x00
7.174425796	IN	0x00	0x02	0x12 0x01 0x00 0x02 0xE0 0x01 0x01 0x40 0x12 0x0A 0x01 0x00 0x91 0x88 0x00 0x02 0x00 0x01
7.17456166	OUT	0x00	0x02	0x0000
7.174956566	SETUP	0x00	0x02	0x80 0x06 0x00 0x01 0x00 0x00 0x12 0x00
7.175743336	IN	0x00	0x02	0x12 0x01 0x00 0x02 0xE0 0x01 0x01 0x40 0x12 0x0A 0x01 0x00 0x91 0x88 0x00 0x02 0x00 0x01
7.175956484	OUT	0x00	0x02	0x0000
7.476206442	SETUP	0x00	0x02	0x00 0x05 0x0A 0x00 0x00 0x00 0x00 0x00
7.47641357	IN	0x00	0x02	0x0000
7.776634066	SETUP	0x00	0x1B	0x80 0x06 0x00 0x02 0x00 0x00 0x09 0x00
7.777506204	IN	0x00	0x1B	0x09 0x02 0xB1 0x00 0x02 0x01 0x00 0xE0 0x32
7.77761757	OUT	0x00	0x1B	0x0000
7.777740332	SETUP	0x00	0x1B	0x80 0x06 0x00 0x02 0x00 0x00 0xB1 0x00
7.7786268	IN	0x00	0x1B	0x09 0x02 0xB1 0x00 0x02 0x01 0x00 0xE0 0x32 0x09 0x04 0x00 0x00 0x03 0xE0 0x01 0x01 0x00 0x07 0x05 0x81 0x03 0x10 0x00 0x01 0x07 0x05 0x02 0x02 0x40 0x00 0x01 0x07 0x05 0x82 0x02 0x40 0x00 0x01 0x09 0x04 0x01 0x00 0x02 0xE0 0x01 0x01 0x00 0x07 0x05 0x03 0x01 0x00 0x00 0x01 0x07 0x05 0x83 0x01 0x00 0x00 0x01 0x09 0x04
7.779329118	IN	0x00	0x1B	0x01 0x01 0x02 0xE0 0x01 0x01 0x00 0x07 0x05 0x03 0x01 0x09 0x00 0x01 0x07 0x05 0x83 0x01 0x09 0x00 0x01 0x09 0x04 0x01 0x02 0x02 0xE0 0x01 0x01 0x00 0x07 0x05 0x03 0x01 0x11 0x00 0x01 0x07 0x05 0x83 0x01 0x11 0x00 0x01 0x09 0x04 0x01 0x03 0x02 0xE0 0x01 0x01 0x00 0x07 0x05 0x03 0x01 0x19 0x00 0x01 0x07 0x05 0x83 0x01
7.780016312	IN	0x00	0x1B	0x19 0x00 0x01 0x09 0x04 0x01 0x04 0x02 0xE0 0x01 0x01 0x00 0x07 0x05 0x03 0x01 0x21 0x00 0x01 0x07 0x05 0x83 0x01 0x21 0x00 0x01 0x09 0x04 0x01 0x05 0x02 0xE0 0x01 0x01 0x00 0x07 0x05 0x03 0x01 0x31 0x00 0x01 0x07 0x05 0x83 0x01 0x31 0x00 0x01
7.780555018	OUT	0x00	0x1B	0x0000
7.780687528	SETUP	0x00	0x1B	0x00 0x09 0x01 0x00 0x00 0x00 0x00 0x00
7.78140849	IN	0x00	0x1B	0x0000
7.781907012	SETUP	0x00	0x16	0xA3 0x00 0x00 0x00 0x01 0x00 0x04 0x00
7.782337624	OUT	0x00	0x16	0x0000
7.782471238	SETUP	0x00	0x16	0xA3 0x00 0x00 0x00 0x02 0x00 0x04 0x00
7.78301938	OUT	0x00	0x16	0x0000
7.783152952	SETUP	0x00	0x16	0xA3 0x00 0x00 0x00 0x03 0x00 0x04 0x00
7.783582042	OUT	0x00	0x16	0x0000
7.783723802	SETUP	0x00	0x16	0xA3 0x00 0x00 0x00 0x04 0x00 0x04 0x00
7.784262216	OUT	0x00	0x16	0x0000
7.78438983	IN	0x01	0x0D	0x04 0x0A 0x16 0xAC 0xB3 0x26 0x3F 0xC8 0x08 0x05 0x00 0x01
8.405856132	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x03 0x00
8.405954228	OUT	0x00	0x1B	0x03 0x0C 0x00
8.406534348	IN	0x00	0x1B	0x0000
8.527052244	IN	0x01	0x0D	0x0E 0x04 0x01 0x03 0x0C 0x00
9.53389705	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x03 0x00
9.533988646	OUT	0x00	0x1B	0x03 0x0C 0x00
9.534265248	IN	0x00	0x1B	0x0000
9.648286362	IN	0x01	0x0D	0x0E 0x04 0x01 0x03 0x0C 0x00
9.648754718	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x06 0x00
9.648853168	OUT	0x00	0x1B	0x24 0x0C 0x03 0x04 0x08 0x00
9.649153852	IN	0x00	0x1B	0x0000
9.649474326	IN	0x01	0x0D	0x0E 0x04 0x01 0x24 0x0C 0x00
9.649852462	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x04 0x00
9.649953704	OUT	0x00	0x1B	0x56 0x0C 0x01 0x01
9.65026093	IN	0x00	0x1B	0x0000
9.650574986	IN	0x01	0x0D	0x0E 0x04 0x01 0x56 0x0C 0x00
9.6509876	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x0B 0x00
9.651098382	OUT	0x00	0x1B	0x01 0x0C 0x08 0xFF 0xFF 0xFF 0xFF 0xFF 0x1F 0xFF 0x00
9.651413314	IN	0x00	0x1B	0x0000
9.651754516	IN	0x01	0x0D	0x0E 0x04 0x01 0x01 0x0C 0x00
9.658104934	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x08 0x00
9.658211634	OUT	0x00	0x1B	0x01 0x04 0x05 0x33 0x8B 0x9E 0x30 0x0A
9.658883684	IN	0x00	0x1B	0x0000
9.659206636	IN	0x01	0x0D	0x0F 0x04 0x00 0x01 0x01 0x04
11.15663164	IN	0x01	0x0D	0x02 0x0F 0x01 0x16 0xAC 0xB3 0x26 0x3F 0xC8 0x01 0x02 0x00 0x08 0x05 0x00 0x01
11.15776032	IN	0x01	0x0D	0x5B
11.16042577	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x03 0x00
11.16063132	OUT	0x00	0x1B	0x02 0x04 0x00
11.16109736	IN	0x00	0x1B	0x0000
11.16196029	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x0D 0x00
11.16207336	OUT	0x00	0x1B	0x19 0x04 0x0A 0x16 0xAC 0xB3 0x26 0x3F 0xC8 0x01 0x00 0x00 0x00
11.16671507	IN	0x00	0x1B	0x0000
11.16703513	IN	0x01	0x0D	0x0E 0x04 0x01 0x02 0x04 0x00
11.1678871	IN	0x01	0x0D	0x0F 0x04 0x00 0x01 0x19 0x04
13.80780006	IN	0x01	0x0D	0x07 0xFF 0x00 0x16 0xAC 0xB3 0x26 0x3F 0xC8 0x58 0x62 0x6F 0x78 0x20 0x57 0x69
13.80892744	IN	0x01	0x0D	0x72 0x65 0x6C 0x65 0x73 0x73 0x20 0x43 0x6F 0x6E 0x74 0x72 0x6F 0x6C 0x6C 0x65
13.81005841	IN	0x01	0x0D	0x72 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.81118582	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.81212287	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.81341481	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.81455309	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.81568052	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.81609665	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x10 0x00
13.81621385	OUT	0x00	0x1B	0x05 0x04 0x0D 0x16 0xAC 0xB3 0x26 0x3F 0xC8 0x18 0xCC 0x01 0x00 0x00 0x00 0x00
13.81720945	IN	0x00	0x1B	0x0000
13.81761694	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.81875164	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.81989178	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.82101919	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.82141415	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.82254389	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.82367128	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.82479906	IN	0x01	0x0D	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
13.82517653	IN	0x01	0x0D	0x00
13.82613939	IN	0x01	0x0D	0x0F 0x04 0x00 0x01 0x05 0x04
16.30925421	IN	0x01	0x0D	0x03 0x0B 0x00 0x48 0x00 0x16 0xAC 0xB3 0x26 0x3F 0xC8 0x01 0x00
16.31021089	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00
16.31030682	OUT	0x00	0x1B	0x11 0x04 0x02 0x48 0x00
16.3137988	IN	0x00	0x1B	0x0000
16.31421062	IN	0x01	0x0D	0x0F 0x04 0x00 0x00 0x11 0x04
16.32166053	IN	0x02	0x1E	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x01 0x04 0x00 0x01 0x00 0x40 0x00
16.33079048	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.34304283	IN	0x01	0x0D	0x17 0x06 0x16 0xAC 0xB3 0x26 0x3F 0xC8
16.34380162	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x19 0x00
16.34393957	OUT	0x00	0x1B	0x0B 0x04 0x16 0x16 0xAC 0xB3 0x26 0x3F 0xC8 0xEB 0xB6 0x70 0xB2 0xBF 0x74 0xBE 0x79 0x1C 0x71 0x4A 0xCF 0xB3 0x0A 0xEE 0xD8
16.35174618	IN	0x00	0x1B	0x0000
16.35241348	IN	0x01	0x0D	0x0F 0x04 0x00 0x01 0x00 0x00
16.35333676	IN	0x01	0x0D	0x0E 0x0A 0x01 0x0B 0x04 0x00 0x16 0xAC 0xB3 0x26 0x3F 0xC8
16.36454145	IN	0x01	0x0D	0x06 0x03 0x00 0x48 0x00
16.36848752	SETUP	0x00	0x1B	0x20 0x00 0x00 0x00 0x00 0x00 0x06 0x00
16.36859751	OUT	0x00	0x1B	0x13 0x04 0x03 0x48 0x00 0x01
16.3787079	IN	0x00	0x1B	0x0000
16.37926456	OUT	0x02	0x1E	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x00 0x04 0x00 0x11 0x00 0x70 0x00
16.37948698	IN	0x01	0x0D	0x0F 0x04 0x00 0x01 0x13 0x04
16.39935344	IN	0x01	0x0D	0x08 0x04 0x00 0x48 0x00 0x01
16.40248691	IN	0x01	0x0D	0x13 0x05 0x01 0x48 0x00 0x01 0x00
16.40882717	IN	0x02	0x1E	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x00 0x08 0x00 0x41 0x00 0x70 0x00 0x01 0x00 0x00 0x00
16.41180286	IN	0x02	0x1E	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x00 0x08 0x00 0x41 0x00 0x70 0x00 0x00 0x00 0x00 0x00
16.41232011	OUT	0x02	0x1E	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x01 0x08 0x00 0x41 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF
16.41281247	IN	0x02	0x1E	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x02 0x08 0x00 0x70 0x00 0x00 0x00 0x01 0x02 0xC8 0x05
16.41320252	OUT	0x02	0x1E	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x02 0x0A 0x00 0x41 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
16.41678464	IN	0x01	0x0D	0x13 0x05 0x01 0x48 0x00 0x01 0x00
16.41780175	IN	0x01	0x0D	0x13 0x05 0x01 0x48 0x00 0x01 0x00
16.41797354	IN	0x02	0x1E	0x48 0x20 0x0E 0x00 0x0A 0x00 0x01 0x00 0x05 0x01 0x06 0x00 0x70 0x00 0x00 0x00 0x00 0x00
16.4183893	OUT	0x02	0x1E	0x48 0x20 0x05 0x00 0x01 0x00 0x41 0x00 0x71
16.41987095	OUT	0x02	0x1E	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x02 0x04 0x00 0x13 0x00 0x71 0x00
16.42293114	IN	0x01	0x0D	0x13 0x05 0x01 0x48 0x00 0x01 0x00
16.42393806	IN	0x01	0x0D	0x13 0x05 0x01 0x48 0x00 0x01 0x00
16.42520152	IN	0x02	0x1E	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x02 0x08 0x00 0x42 0x00 0x71 0x00 0x01 0x00 0x00 0x00
16.42831903	IN	0x02	0x1E	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x02 0x08 0x00 0x42 0x00 0x71 0x00 0x00 0x00 0x00 0x00
16.42884986	OUT	0x02	0x1E	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x42 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF
16.42933245	IN	0x02	0x1E	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x71 0x00 0x00 0x00 0x01 0x02 0xC8 0x05
16.42962332	OUT	0x02	0x1E	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x03 0x0A 0x00 0x42 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
16.43320084	IN	0x01	0x0D	0x13 0x05 0x01 0x48 0x00 0x01 0x00
16.43422467	IN	0x01	0x0D	0x13 0x05 0x01 0x48 0x00 0x01 0x00
16.43439652	IN	0x02	0x1E	0x48 0x20 0x0E 0x00 0x0A 0x00 0x01 0x00 0x05 0x03 0x06 0x00 0x71 0x00 0x00 0x00 0x00 0x00
16.49049743	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.49564047	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.49580885	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0x58 0x7D 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.5020243	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.50220908	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0x58 0x7D 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.50799046	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.51319431	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.51819394	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.52327351	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.52841655	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.5334993	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.53864234	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.5437846	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.54886627	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.55397554	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.55819063	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.56322814	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.56831087	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.57345366	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.57859661	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.58367887	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.5888219	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.59396463	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.59818739	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.603187	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.60837981	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.61340221	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.61848492	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.62362798	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.62577034	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xA8 0x7D 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.63198573	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.6339113	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.63518441	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0x0D 0x7E 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.64337553	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.64418365	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.64530633	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0x7E 0x7F 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.65476527	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.65495	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xD4 0x80 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.66618186	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.66636565	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xE5 0x81 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.67754476	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.67772956	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xBF 0x82 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.68893454	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.68917998	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0x69 0x83 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.70033036	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.70051509	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF1 0x83 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.71183338	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.71201811	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0x53 0x84 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.72317722	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.72336593	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0x9B 0x84 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.73449382	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.73467859	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x24 0x84 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.74588362	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.74651561	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.74757454	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.74855806	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.74961723	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.75060017	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.75160284	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.75267723	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.75369123	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.75470531	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.75571938	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.75673338	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.75774744	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.75882175	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.75983579	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.76390137	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.76917344	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.7731731	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.77825281	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.78339576	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.78847776	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.7936208	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.79876378	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.80384653	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.80895565	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.81416973	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.81922733	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.82640469	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.83047023	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.83663048	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.84171317	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.84889054	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.85316654	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.85916611	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.86425151	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.87142893	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.87555478	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.88165461	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.88679765	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.89394944	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.89816287	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.90320221	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.90828487	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.9134126	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.91855564	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.92363837	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.92878135	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.9339244	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.93815964	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.94415911	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.94822482	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.95336782	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.95844951	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.96359184	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.96873458	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.97381729	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.97894281	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.98315597	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.98527192	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0xA3 0x83 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
16.99148731	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
16.99332776	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
16.99549961	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0xA5 0x82 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.00287719	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.00315433	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0xC9 0x80 0x85 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.01437994	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.01456471	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0xC1 0x7C 0x41 0x87 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.0256567	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.02584148	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0xD1 0x5A 0x0C 0x89 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.03715158	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.03734029	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x8C 0x56 0x20 0x8B 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.04843626	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.04862685	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x2D 0x32 0x04 0x8D 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.05983216	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.06014966	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0xA6 0x2F 0x81 0x8E 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.07121569	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.07140045	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0xC5 0x2A 0xB3 0x8F 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.08260551	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.08279027	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x4F 0x09 0xA2 0x90 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.09414686	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.09433436	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x60 0x91 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.10538507	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.10556982	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xED 0x91 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.11688788	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.11714498	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x4C 0x92 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.12816458	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.12835544	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x87 0x92 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.13955442	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.1397452	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x14 0x92 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.15095022	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.15114222	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xB8 0x91 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.16233491	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.16331769	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.16430711	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.16529855	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.16635025	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.1674015	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.16837215	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.16938615	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.17046056	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.17147458	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.17248865	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.17350269	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.17451667	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.17553073	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.17569909	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x3C 0x91 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.1819145	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.18275175	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.18373371	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.18479389	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.18577733	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.18683752	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.18713928	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xBB 0x90 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.19334978	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.19413871	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.19513867	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.19531959	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x4F 0x90 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.2047397	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.20492446	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x52 0x8F 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.21613696	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.21632271	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x25 0x8E 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.22763235	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.22782321	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xF5 0x8C 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.23890893	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.23913504	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xDB 0x8B 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.25030477	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.25048946	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xC4 0x8A 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.26168849	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.26187324	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xB8 0x89 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.27313226	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.2733231	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xD1 0x88 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.28446817	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.28465284	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xDE 0x87 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.29585795	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.29613043	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xCB 0x86 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.30724754	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.30743233	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xC6 0x85 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.31863744	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.31882824	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xA5 0x84 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.33025845	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.33044277	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xEE 0x82 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.34142295	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.34160771	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xFF 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.35280671	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.35312573	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x01 0x7F 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.36419649	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.36438127	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x1D 0x7D 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.37558635	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.37577109	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x2D 0x7B 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.38712299	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.38730667	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x66 0x79 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.39836578	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.3985505	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xD8 0x77 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.40975577	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.40994053	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x78 0x76 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.42114538	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.42133618	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x58 0x75 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.43265423	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.43283901	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x55 0x74 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.44393021	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.4441183	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x6A 0x73 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.45531472	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.45549941	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x8B 0x72 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.46670462	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.46688931	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x88 0x71 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.47811552	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.47830496	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0x90 0x70 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.48948414	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.48966887	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xA6 0x6F 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.50087398	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.50111369	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x00 0x00 0xB2 0x6E 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.5122638	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.51245405	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0x74 0x00 0x8D 0x6D 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.52365957	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01
17.52384406	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0xEE 0x01 0x74 0x6C 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.53524044	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x05
17.53542522	IN	0x02	0x1E	0x48 0x20 0x15 0x00 0x11 0x00 0x71 0x00 0xA1 0x01 0x29 0x7F 0xF2 0x84 0xBD 0x04 0x8E 0x6B 0x00 0x00 0x00 0x00 0x00 0x00 0x00
17.546433	IN	0x01	0x0D	0x1B 0x03 0x48 0x00 0x01

Now slowly figure out what they are doing different...
 
@KurtE ...
I have a version of the USB Host shield 2 library that works with the T4 - had to modify several files including the avrpins.h file. I can post if you are interested - tested with PS4.

Unfortunately, couldn't get the xbox lib working with the T4 today. Have to do several file compares to see which files i have to change.

This page will probably help with seeing what he did with the library: http://kato-h.cocolog-nifty.com/khweblog/2020/07/post-c93f3c.html. Its in Japanese so you will have to get your browser to translate.
 
Thanks @mjs513...

Might be interesting to see. what changed. Right now I have one of the full size adapters plugged into mega, which I did the captures from. I have a T3.5 jumpered to a cheap clone of the micro adapter, which I looked at several of the suggestions on which wire goes where, and did several iterations. until the check for firmware version succeeded. It then failed in the memory transfer test... So I punted and ordered the Sparkfun one, where at least I can see Schematic on which pin goes where... Plus they already bring out 5v to the USB power pin. Should get here next week (ordered from Amazon)

The translation to English is interesting. But what I get out of it, was he started from the main library, and ripped out all of the PS3, PS4... Binding code left with BT HID and kept experimenting until he got something that worked... Sounds like he needed SSP...

Will reread it several more times.
The Readme file in the library also mentions:

Using a USB Host Shield 2.0 with a Bluettoth USB adapter and a USB Host Library Rev.2.0, I tried to connect a Microsoft game controller (MODEL 1708, which was first used on the Xbox One S) to the Arduino via Bluetooth. However, I couldn't because the game controller does not support old pairing that uses a 4-digit PIN code. So I modified BTD.cpp of USB Host Library Rev.2.0 so that it could be paired with Bluetooth Classic SSP. The function of Bluetooth connection with the conventional PS3 controller, PS4 controller, Wii remote controller, etc. has been removed.

And:
The basic usage is almost the same as BTHID of the original USB Host Library Rev.2.0. However, use BTDSSP from this library instead of BTD. And because you don't use a PIN code for pairing,

Pairing mode is BTXBOX btxbox(&Btdssp, PAIR);

After pairing, BTXBOX btxbox(&Btdssp);

Will be. See sketch example.

This library uses an EEPROM library that writes and reads data in the flash area inside the Arduino. be careful. Specifically, 6 bytes of BD address (Bluetooth Device Address) of the device that has been successfully paired, followed by 16 bytes of the link key generated at the time of pairing are written from address 0 and read when reconnecting. .. (Data in this flash area is not affected by sketch writing)
 
@KurtE
Missed the following:
This library uses an EEPROM library that writes and reads data in the flash area inside the Arduino. be careful. Specifically, 6 bytes of BD address (Bluetooth Device Address) of the device that has been successfully paired, followed by 16 bytes of the link key generated at the time of pairing are written from address 0 and read when reconnecting. .. (Data in this flash area is not affected by sketch writing)
might be why my xbox controller is dying - but don't see where he is flashing the data? Have to look again.

Here are 2 versions for the T4x - one is the xbox library.

View attachment USB_Host_Shield_Library_2.0_BTXBOX-master.zip

View attachment USB_Host_Shield_Library_2.0_T4.zip

The translation to English is interesting. But what I get out of it, was he started from the main library, and ripped out all of the PS3, PS4... Binding code left with BT HID and kept experimenting until he got something that worked... Sounds like he needed SSP...
Thats my interpretation as well. And yes he added in the SSP support.

EDIT: I am using a micro as well that i did a wire wrap shield for my breakout board a long time ago. It works great with the PS4. But i made the T4 changes a long time ago so not sure how current they are :)
 
Found my full size shield and put it on the Mega but my controller still does not connect with the library. But it does recognize the PS4. Tried a couple of different dongles with the same result.
 
Back
Top