T3.6 USB Host - Joysticks

Good Morning @mjs513 and @defragster,

Warning, Mike, I pulled in your latest changes to the JoystickBT example app, but I also had changes in my version that got merged in as well...

Hard part was I had used the Arduino Auto format command, semi by accident, so I needed to do a merge and clean up some of the changes...

I hope I got the stuff in correct... If not, you might want to hold onto your previous version, and maybe do a whole replace back to the section you changed. Or I can do it if you would like.

On XBox one front, Plugged in USB I sort of updated the order of axis to match the PS4ish
But as far as I know it just has the 2 joysticks, The 4 buttons (A=40, B=20, X=40, Y=80), plus the Hat, which appears to setup 4 buttons(up=100,right=800, down=200, left=400), and diagonal press will get combination of bits that is up-RIght=900, L1=1000, L2=axis, L3=4000, R1=2000, R2 axis, R3=8000

I put in some quick and dirty display of XBox in the test app, note: Axis are 16 bit values and it does not appear to be a lot of slop!

Example RX data:
20 00 9C 0E 00 00 00 00 00 00 ED 07 30 FE D3 07 74 F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

The location I found most of the information was also again looking at HS2 code, but mostly in places like: https://github.com/quantus/xbox-one-controller-protocol

So far I am only processing the messages 0x20... There is a different message that gets sent when you press the PS button (0x07), but not sure if any useful data in it.
 
Good Morning @mjs513 and @defragster,

Warning, Mike, I pulled in your latest changes to the JoystickBT example app, but I also had changes in my version that got merged in as well...

Hard part was I had used the Arduino Auto format command, semi by accident, so I needed to do a merge and clean up some of the changes...

I hope I got the stuff in correct... If not, you might want to hold onto your previous version, and maybe do a whole replace back to the section you changed. Or I can do it if you would like.

On XBox one front, Plugged in USB I sort of updated the order of axis to match the PS4ish
But as far as I know it just has the 2 joysticks, The 4 buttons (A=40, B=20, X=40, Y=80), plus the Hat, which appears to setup 4 buttons(up=100,right=800, down=200, left=400), and diagonal press will get combination of bits that is up-RIght=900, L1=1000, L2=axis, L3=4000, R1=2000, R2 axis, R3=8000

I put in some quick and dirty display of XBox in the test app, note: Axis are 16 bit values and it does not appear to be a lot of slop!

Example RX data:
20 00 9C 0E 00 00 00 00 00 00 ED 07 30 FE D3 07 74 F9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

The location I found most of the information was also again looking at HS2 code, but mostly in places like: https://github.com/quantus/xbox-one-controller-protocol

So far I am only processing the messages 0x20... There is a different message that gets sent when you press the PS button (0x07), but not sure if any useful data in it.

Good morning all. Think its almost ready to merge BT into the main branch :)

Anyway - I will check it out and to the compare - I have a working copy on my desktop.

To be honest - think that is all there is for the XBOX - if you press the buttons you might see ff's in the other fields for on off but that is all I can see. I came across that one as well - has some interesting stuff on effects - issue #1 is interesting as well.
 
I agree probably close to ready to merge into main Branch :D

XBox One BT - may take awhile :D May try in a few steps to see what makes sense. Like can I pair it with some BT dongle (maybe using Windows), will try Ubuntu as my main machine has BT built in, so not sure if I can get Windows 10 to for this one case use the external dongle instead...

But assuming that part works, then maybe try connect with dongle plugged into Teensy and see what messages are sent...
 
How did you get it to pair> Tried three dongles - can't figure it out.

EDIT: To get it to pair on windows with BT dongle you actually have to go into Bluetooth settings and add device, when it sees the controller then it pairs.

EDIT2: If you pair it on windows and use that BT dongle with USBHost_t36 it sees the controller but disconnects:
Code:
BluetoothController claim this=1fff36e0 vid:pid=a5c:21e8
    9 4 0 0 3 ff 1 1 0 7 5 81 3 10 0 1 7 5 82 2 40 0 1 7 5 2 2 40 0 1 9 4 1 0 2 ff 1 1 0 7 5 83 1 0 0 1 7 5 3 1 0 0 1 9 4 1 1 2 ff 1 1 0 7 5 
    83 1 9 0 1 7 5 3 1 9 0 1 9 4 1 2 2 ff 1 1 0 7 5 83 1 11 0 1 7 5 3 1 11 0 1 9 4 1 3 2 ff 1 1 0 7 5 83 1 19 0 1 7 5 3 1 19 0 1 9 4 1 4 2 ff 
    1 1 0 7 5 83 1 21 0 1 7 5 3 1 21 0 1 9 4 1 5 2 ff 1 1 0 7 5 83 1 31 0 1 7 5 3 1 31 0 1 9 4 2 0 2 ff ff ff 0 7 5 84 2 20 0 1 7 5 4 2 20 0 1 9 
    4 3 0 0 fe 1 1 0 9 21 5 88 13 40 0 10 1 
      rxep=1(16) txep=2(64) rx2ep=2(64)
HCI_RESET called (03 0c 00 )
    Control callback (bluetooth): 1 : 3 c 0 
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 : 24 c 3 4 8 0 
BT rx_data(6): e 4 1 24 c 0 
    Command Completed! 
HCI_Read_BD_ADDR called (09 10 00 )
    Control callback (bluetooth): 4 : 9 10 0 
BT rx_data(12): e a 1 9 10 0 e0 e 0 86 19 0 
    Command Completed! 
   BD Addr:e0:e:0:86:19:0
HCI_Read_Local_Version_Information called (01 10 00 )
    Control callback (bluetooth): 4 : 1 10 0 
BT rx_data(14): e c 1 1 10 0 6 0 10 6 f 0 e 22 
    Command Completed! 
    Local Version: 6
HCI_WRITE_SCAN_ENABLE called(1a 0c 01 02 )
    Control callback (bluetooth): 0 : 1a c 1 2 
BT rx_data(6): e 4 1 1a c 0 
    Command Completed! 
Write_Scan_enable Completed
tedBT rx_data(12): 4 a e9 a7 db 1b aa 9c 8 5 0 1 
    Event: Incoming Connect -  e9:a7:db:1b:aa:9c CL:508 LT:1
      Peripheral device
        Gamepad
BluetoothController::find_driver  driver 1fff4a38
JoystickController::claim_bluetooth TRUE
    *** Claimed ***
HCI_OP_REMOTE_NAME_REQ called (19 04 0a e9 a7 db 1b aa 9c 01 00 00 00 )
    Control callback (bluetooth): 0 : 19 4 a e9 a7 db 1b aa 9c 1 0 0 0 
BT rx_data(6): f 4 0 1 19 4 
    Command 419 Status 0
BT rx_data(16): 7 ff 0 e9 a7 db 1b aa 9c 58 62 6f 78 20 57 69 
BT rx_data(16): 72 65 6c 65 73 73 20 43 6f 6e 74 72 6f 6c 6c 65 
BT rx_data(16): 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(1): 0 
    Event: handle_hci_remote_name_complete(0)
    Remote Name: Xbox Wireless Controller
  JoystickController::remoteNameComplete Xbox Wireless Controller - Unknown
  Joystick Type: 0
HCI_OP_ACCEPT_CONN_REQ called (09 04 07 e9 a7 db 1b aa 9c 00 )
    Control callback (bluetooth): 0 : 9 4 7 e9 a7 db 1b aa 9c 0 
BT rx_data(6): f 4 0 1 9 4 
    Command 409 Status 0
BT rx_data(10): 12 8 0 e9 a7 db 1b aa 9c 0 
BT rx_data(13): 3 b 0 b 0 e9 a7 db 1b aa 9c 1 0 
    Connection Complete - ST:0 LH:b
BT rx_data(5): 1b 3 b 0 5 
BT rx_data(8): 17 6 e9 a7 db 1b aa 9c 
    Event: Link Key Request e9:a7:db:1b:aa:9c
HCI_LINK_KEY_NEG_REPLY called (0c 04 06 e9 a7 db 1b aa 9c )
    Control callback (bluetooth): 120 : c 4 6 e9 a7 db 1b aa 9c 
BT rx_data(12): e a 1 c 4 0 e9 a7 db 1b aa 9c 
    Command Completed! 
BT rx_data(6): 5 4 0 b 0 15 
    Event: HCI Disconnect complete(0): handle: b, reason:15
:15

If I use the pairing option it gets a little farther:
Code:
HCI_LINK_KEY_NEG_REPLY called (0c 04 06 e9 a7 db 1b aa 9c )
    Control callback (bluetooth): 120 : c 4 6 e9 a7 db 1b aa 9c 
BT rx_data(12): e a 1 c 4 0 e9 a7 db 1b aa 9c 
    Command Completed! 
BT rx_data(8): 16 6 e9 a7 db 1b aa 9c 
    Event: Pin Code Request e9:a7:db:1b:aa:9c
HCI_PIN_CODE_REPLY called (0d 04 17 e9 a7 db 1b aa 9c 04 30 30 30 30 00 00 00 00 00 00 00 00 00 00 00 00 )
    Control callback (bluetooth): 130 : d 4 17 e9 a7 db 1b aa 9c 4 30 30 30 30 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(12): e a 1 d 4 0 e9 a7 db 1b aa 9c 
    Command Completed! 
BT rx_data(5): 1b 3 b 0 5 

=====================
BT rx2_data(16): b 20 c 0 8 0 1 0 2 1 4 0 1 0 40 0 
    L2CAP Connection Request: ID: 1, PSM: 1, SCID: 40
 40BT rx_data(5): 6 3 6 b 0 
    Event: HCI Authentication complete(6): handle: b
ConnectionRequest called(0b 20 0c 00 08 00 01 00 02 00 04 00 11 00 70 00 )
tx_data callback (bluetooth): 0 : b 20 c 0 8 0 1 0 2 0 4 0 11 0 70 0 

=====================
BT rx2_data(20): b 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(0b 20 10 00 0c 00 01 00 04 00 08 00 40 00 00 00 01 02 ff ff )
tx_data callback (bluetooth): 0 : b 20 10 0 c 0 1 0 4 0 8 0 40 0 0 0 1 2 ff ff 

=====================
BT rx2_data(18): b 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 
BT rx_data(7): 13 5 1 b 0 2 0 
�
 
@KurtE

If you look closely I get xbox - unknown controller and joysticktype = 0;

That is coming from:
Code:
JoystickController::remoteNameComplete
Think we need to XBOX to as a test :) so it get the right joystick type
 
@KurtE and @defragster
Since I am rather stubborn in getting windows/Linux working so I could do the hid dumps decided to install virtualbox and ubuntu. After a few issues with guest additions for usb it now works. Just for reference I did a test on the Logitech 3d joystick:
Code:
Usage Page (Desktop),                   ; Generic desktop controls (01h)
Usage (Joystik),                        ; Joystik (04h, application collection)
Collection (Application),
    Collection (Logical),
        Report Count (2),
        Report Size (10),
        Logical Minimum (0),
        Logical Maximum (1023),
        Physical Minimum (0),
        Physical Maximum (1023),
        Usage (X),                      ; X (30h, dynamic value)
        Usage (Y),                      ; Y (31h, dynamic value)
        Input (Variable),
        Report Size (4),
        Report Count (1),
        Logical Maximum (7),
        Physical Maximum (315),
        Unit (Degrees),
        Usage (Hat Switch),             ; Hat switch (39h, dynamic value)
        Input (Variable, Null State),
        Unit,
        Report Size (8),
        Logical Maximum (255),
        Physical Maximum (255),
        Usage (Rz),                     ; Rz (35h, dynamic value)
        Input (Variable),
        Push,
        Report Count (8),
        Report Size (1),
        Logical Maximum (1),
        Physical Maximum (1),
        Usage Page (Button),            ; Button (09h)
        Usage Minimum (01h),
        Usage Maximum (08h),
        Input (Variable),
        Pop,
        Usage (Slider),                 ; Slider (36h, dynamic value)
        Input (Variable),
        Report Count (4),
        Report Size (1),
        Logical Maximum (1),
        Physical Maximum (1),
        Usage Page (Button),            ; Button (09h)
        Usage Minimum (09h),
        Usage Maximum (0Ch),
        Input (Variable),
        Report Count (4),
        Input (Constant),
    End Collection,
    Collection (Logical),
        Report Count (4),
        Report Size (8),
        Logical Maximum (255),
        Physical Maximum (255),
        Usage Page (FF00h),             ; FF00h, vendor-defined
        Usage (01h),
        Feature (Variable),
    End Collection,
End Collection,
 
HI @mjs513 - Looks like you may have gotten some farther with the BT and XBox than I did. I had not yet gotten it paired to a dongle that we would see.

Maybe should try again :D

Yes - Maybe we will need to check the name as you mentioned and set joystick type.

But my guess is then we need to know/experiment, figuring out what is different about what the connection sequence Windows uses to actually make it talk....

With PS4 - We needed to ask to make connections.
With PS3 - We had to tell it to go to some report...

Not sure how far I will get today, need to take truck in for work...

And then there is the other interruption:
IMG_0715.jpg
 
Morning @KurtE

See Annie likes the snow as much as my yorkie. :)

Anyway - what I did was to pair the dongle and Xbox on windows first since it wouldn't pair from the app yet. That got me to the point that I showed in post #54. I did add this:
Code:
	} else if (strncmp((const char *)remoteName, "Xbox Wireless Controller", 24) == 0) {
		DBGPrintf("  JoystickController::remoteNameComplete %x %s - set to XBOXONE\n", (uint32_t)this, remoteName);
		joystickType_ = XBOXONE;
	} else {
but like you said
But my guess is then we need to know/experiment, figuring out what is different about what the connection sequence Windows uses to actually make it talk....

With PS4 - We needed to ask to make connections.
With PS3 - We had to tell it to go to some report...
 
@KurtE and @defragster
Know this isn't a Linux forum but you guys are use to working on Linux. I finally got my setup to see the BT dongle and installed Wireshark for Linux. Its suppose to be able to sniff for BT packets but for the life of me I can't figure it out - do you all have any experience with this one?
 
Frank sent me a private ILI9488 lib that is working with touch on T$! So looking at that and not USBHost again yet.

Not much on Linux for me ... I'd be happy to have a faux Linux if WSL works though. I Got email from SFun about their Machine learning on a microcontroller with SparkFun TensorFlow : Cortex 4F at 64 MHz - not Arduino but cpp. Only $15 with 2 mics and bluetooth and 3-axis accelerometer?
>> That seemed like something Teensy 3.5/3.6/T4 would do much better :)
It had notes on github and such - made me decide to try TyComm Build - it worked with Koromix steps - installed build and then built - of course it doesn't seem to be able to see connected Teensy's with "TyCmd list"?
Installed PJRC DevRules for fun.
Found this note on USB like rPi - and with Win_TyComm set no Serial on Com13 - I got connect - but no transfer with "CU". It did see the Teensy, and dropped when I reset it.
 
Frank sent me a private ILI9488 lib that is working with touch on T$! So looking at that and not USBHost again yet.

Not much on Linux for me ... I'd be happy to have a faux Linux if WSL works though. I Got email from SFun about their Machine learning on a microcontroller with SparkFun TensorFlow : Cortex 4F at 64 MHz - not Arduino but cpp. Only $15 with 2 mics and bluetooth and 3-axis accelerometer?
>> That seemed like something Teensy 3.5/3.6/T4 would do much better :)
It had notes on github and such - made me decide to try TyComm Build - it worked with Koromix steps - installed build and then built - of course it doesn't seem to be able to see connected Teensy's with "TyCmd list"?
Installed PJRC DevRules for fun.
Found this note on USB like rPi - and with Win_TyComm set no Serial on Com13 - I got connect - but no transfer with "CU". It did see the Teensy, and dropped when I reset it.
Wow - have my ili9488 sitting on my desk - on list of things to do after XBOX BT and my mega joystick is tested :)

Interesting about tensorflow and machine learning. Don't know if you saw my posts but I did get ARM-NN working on the T3.5/3.6/T$! with their same image files. But Artificial Intelligence and Image Recognition/Voice Recognition is a whole project in of it self - I know I have been looking at it for a long time and it keeps going on to the back burner.

Eventually I will get around to TyCommander stuff eventually - just don't know when. Guess when everything settles down. Working on porting over CAN from the SDK to the T$ in between, that still frustrates me when we can't get it working.
 
I didn't order xBox1 controller yet - can't see until it is working without Linux - and when it is working.

I added Xming Xserver to Windows and I can run GUI TyCommander I built in WSL! Except it is blinded to USB and active Teensy's - even when Win TyComm is closed that could see them all. So no hope of seeing BT or USB with Linux tools on WSL - unless there is a magic switch I didn't come across yet.

Frank is going to abandon his 9488 port - but it works with touch, unlike when I tried KurtE's lib on T$? He does a look up table from one byte/pix to 18 bit colors - so less RAM (only 150KB) - but still slow w/blocking SPIwrite when expanded by row to 3 color byte write :( He started a minimal port [anticipating DMA] - just pixel Direct or RAM as proof of concept/function. GOSH those are tiny pixels - not compared to phone but ... and mag lens shows a couple bad pixels. Kurt(Mike) - let me know when you get back to look at ILI9488. There may be something in FrankB's code making the difference. I plopped an ILI9341 on and it gets Touch but no display - and your code on T_3.6 would give bad color but functioned - it may be just out of bounds with 320x480 commands in this sample.

So report is - nothing to report - other than no indication I fried my T$ the other day trying to put display shield on the breakout without 5V power ( massive Power back feed [like my smaller i2c digit matrix] from data lines and SPI pullups? or some other conflict? ) when a chip (LDO?) got toasty - my T$ is working to run ili9488 when kludged onto PJRC purple video board - with touch when display MISO is cut on my board.
 
Good Morning,

Did not get much done yesterday as, Truck service including two recalls, plus Annie, plus doing lots of stuff to hopefully not need to see doctors...

But did finally get to maybe same setup as Mike, Was able to get my secondary machine pair a BT dongle with the XBox One. It had windows on it as well, but it was 17xx version and did not appear to support the XBox, so it finally updated to now 1803 and the XBox showed up...

Now with our stuff:
Code:
BluetoothController claim this=20004260 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)
HCI_RESET called (03 0c 00 )
    Control callback (bluetooth): 1 : 3 c 0
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 : 24 c 3 4 8 0
BT rx_data(6): e 4 1 24 c 0
    Command Completed!
HCI_Read_BD_ADDR called (09 10 00 )
    Control callback (bluetooth): 4 : 9 10 0
BT rx_data(12): e a 1 9 10 0 11 71 da 7d 1a 0
    Command Completed!
   BD Addr:11:71:da:7d:1a:0
HCI_Read_Local_Version_Information called (01 10 00 )
    Control callback (bluetooth): 4 : 1 10 0
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_SCAN_ENABLE called(1a 0c 01 02 )
    Control callback (bluetooth): 0 : 1a c 1 2
BT rx_data(6): e 4 1 1a c 0
    Command Completed!
Write_Scan_enable Completed
BT rx_data(12): 4 a dc 13 d6 1b aa 9c 8 5 0 1
    Event: Incoming Connect -  dc:13:d6:1b:aa:9c CL:508 LT:1
      Peripheral device
        Gamepad
BluetoothController::find_driver  driver 200055b8
JoystickController::claim_bluetooth TRUE
    *** Claimed ***
HCI_OP_REMOTE_NAME_REQ called (19 04 0a dc 13 d6 1b aa 9c 01 00 00 00 )
    Control callback (bluetooth): 0 : 19 4 a dc 13 d6 1b aa 9c 1 0 0 0
BT rx_data(6): f 4 0 1 19 4
    Command 419 Status 0
BT rx_data(16): 7 ff 0 dc 13 d6 1b aa 9c 58 62 6f 78 20 57 69
BT rx_data(16): 72 65 6c 65 73 73 20 43 6f 6e 74 72 6f 6c 6c 65
BT rx_data(16): 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(1): 0
    Event: handle_hci_remote_name_complete(0)
    Remote Name: Xbox Wireless Controller
  JoystickController::remoteNameComplete Xbox Wireless Controller - Unknown
  Joystick Type: 0
HCI_OP_ACCEPT_CONN_REQ called (09 04 07 dc 13 d6 1b aa 9c 00 )
    Control callback (bluetooth): 0 : 9 4 7 dc 13 d6 1b aa 9c 0
BT rx_data(6): f 4 0 1 9 4
    Command 409 Status 0
BT rx_data(10): 12 8 0 dc 13 d6 1b aa 9c 0
BT rx_data(13): 3 b 0 48 0 dc 13 d6 1b aa 9c 1 0
    Connection Complete - ST:0 LH:48
BT rx_data(9): 20 7 dc 13 d6 1b aa 9c 1
BT rx_data(5): 1b 3 48 0 5
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 )
    Control callback (bluetooth): 120 : c 4 6 dc 13 d6 1b aa 9c
BT rx_data(12): e a 1 c 4 0 dc 13 d6 1b aa 9c
    Command Completed!
BT rx_data(6): 5 4 0 48 0 15
    Event: HCI Disconnect complete(0): handle: 48, reason:15
I am now going to compare this with PS4, stuff which I think stopped the bind at about the same place... So will try that hack and see if it gets farther...
 
I tried the same hack on XBox as PS4, did not help yet.

Note: my secondary windows setup, on my old machine appears to be semi-screwed... That is it is not allowing me to install anything, like the logic analyzer software, or run regedit, or cmd, or...
Some message like: Your organization uses Windows Defender Application control to block this app... (Note: my user type is administrator...)

But I was able to get a Logic capture from my main machine of when I pressed the X on the gamepad to make connection and then edited the heck out of the data...

Code:
SETUP	0x00	0x05	0x00 0x01 0x01 0x00 0x00 0x00 0x00 0x00
IN	0x00	0x05	0x0000
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00
OUT	0x00	0x05	0x0B 0x20 0x07 0x00 0xBD 0x00 0x1D 0x00 0x00 0x01
IN	0x01	0x13	0x04 0x0A 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x08 0x05 0x00 0x01
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x04 0x01 0x0B 0x20 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00
OUT	0x00	0x05	0x09 0x04 0x07 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x00
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0F 0x04 0x00 0x01 0x09 0x04
IN	0x01	0x13	0x12 0x08 0x00 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x00
IN	0x01	0x13	0x03 0x0B 0x00 0x47 0x00 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x01 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00
OUT	0x00	0x05	0x05 0x14 0x02 0x47 0x00
IN	0x01	0x13	0x20 0x07 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x01
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x07 0x01 0x05 0x14 0x00 0x47 0x00 0x03
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x07 0x00
OUT	0x00	0x05	0x0D 0x08 0x04 0x47 0x00 0x0F 0x00
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x06 0x01 0x0D 0x08 0x00 0x47 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00
OUT	0x00	0x05	0x09 0x08 0x02 0x47 0x00
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x07 0x01 0x09 0x08 0x00 0x47 0x00 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x07 0x00
OUT	0x00	0x05	0x28 0x0C 0x04 0x47 0x00 0x00 0x00
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x06 0x01 0x28 0x0C 0x00 0x47 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00
OUT	0x00	0x05	0x1F 0x04 0x02 0x47 0x00
IN	0x01	0x13	0x1B 0x03 0x47 0x00 0x05
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0F 0x04 0x00 0x01 0x1F 0x04
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x06 0x00
OUT	0x00	0x05	0x2D 0x0C 0x03 0x47 0x00 0x00
IN	0x01	0x13	0x17 0x06 0xDC 0x13 0xD6 0x1B 0xAA 0x9C
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x07 0x01 0x2D 0x0C 0x00 0x47 0x00 0x04
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00
OUT	0x00	0x05	0x03 0x14 0x02 0x47 0x00
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x07 0x01 0x03 0x14 0x00 0x47 0x00 0xFF
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00
OUT	0x00	0x05	0x36 0x0C 0x02 0x47 0x00
IN	0x01	0x13	0x1C 0x05 0x00 0x47 0x00 0x9C 0x49
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x08 0x01 0x36 0x0C 0x00 0x47 0x00 0x00 0x7D
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x19 0x00
OUT	0x00	0x05	0x0B 0x04 0x16 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x14 0x1C 0x44 0x07 0x97 0x22 0x58 0xEA 0x96 0xF4 0x8C 0xB2 0x26 0xA2 0xF9 0x29
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x0A 0x01 0x0B 0x04 0x00 0xDC 0x13 0xD6 0x1B 0xAA 0x9C
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x06 0x00
OUT	0x00	0x05	0x2D 0x0C 0x03 0x47 0x00 0x01
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x07 0x01 0x2D 0x0C 0x00 0x47 0x00 0x08
IN	0x01	0x13	0x08 0x04 0x00 0x47 0x00 0x01
IN	0x02	0x00	0x47 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x01 0x04 0x00 0x11 0x00 0x40 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x01 0x08 0x00 0x40 0x00 0x40 0x00 0x01 0x00 0x00 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x01 0x08 0x00 0x40 0x00 0x40 0x00 0x00 0x00 0x00 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x40 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x02	0x00	0x47 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x02 0x08 0x00 0x40 0x00 0x00 0x00 0x01 0x02 0xC8 0x05
OUT	0x02	0x00	0x47 0x00 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x02 0x0A 0x00 0x40 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x02	0x00	0x47 0x20 0x0E 0x00 0x0A 0x00 0x01 0x00 0x05 0x03 0x06 0x00 0x40 0x00 0x00 0x00 0x00 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x07 0x00
OUT	0x00	0x05	0x37 0x0C 0x04 0x47 0x00 0x80 0x0C
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x02	0x00	0x47 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x03 0x04 0x00 0x13 0x00 0x41 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x03 0x08 0x00 0x41 0x00 0x41 0x00 0x01 0x00 0x00 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x03 0x08 0x00 0x41 0x00 0x41 0x00 0x00 0x00 0x00 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x04 0x08 0x00 0x41 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x06 0x01 0x37 0x0C 0x00 0x47 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x17 0x00
OUT	0x00	0x05	0x07 0x08 0x14 0x47 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10 0x27 0x00 0x00 0xFF 0xFF 0xFF 0xFF
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0F 0x04 0x00 0x01 0x07 0x08
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x02	0x00	0x47 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x04 0x08 0x00 0x41 0x00 0x00 0x00 0x01 0x02 0xC8 0x05
OUT	0x02	0x00	0x47 0x00 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x04 0x0A 0x00 0x41 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x02	0x00	0x47 0x20 0x0E 0x00 0x0A 0x00 0x01 0x00 0x05 0x04 0x06 0x00 0x41 0x00 0x00 0x00 0x00 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x17 0x00
OUT	0x02	0x00	0x47 0x00 0x06 0x00 0x02 0x00 0x40 0x00 0x90 0x00
OUT	0x00	0x05	0x07 0x08 0x14 0x47 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10 0x27 0x00 0x00 0xFF 0xFF 0xFF 0xFF
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x01	0x13	0x0D 0x15 0x00 0x47 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10
IN	0x01	0x13	0x27 0x00 0x00 0xFF 0xFF 0xFF 0xFF
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x01	0x13	0x0F 0x04 0x00 0x01 0x07 0x08
IN	0x01	0x13	0x1B 0x03 0x47 0x00 0x01
IN	0x01	0x13	0x14 0x06 0x00 0x47 0x00 0x02 0x0C 0x00
IN	0x02	0x00	0x47 0x20 0x05 0x00 0x01 0x00 0x40 0x00 0x00
IN	0x02	0x00	0x47 0x20 0x15 0x00 0x11 0x00 0x41 0x00 0xA1 0x01 0x04 0x89 0x93 0x83 0xEF 0x88 0x3D 0x85 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x13	0x0D 0x15 0x00 0x47 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10
IN	0x01	0x13	0x27 0x00 0x00 0xFF 0xFF 0xFF 0xFF
IN	0x02	0x00	0x47 0x20 0x15 0x00 0x11 0x00 0x41 0x00 0xA1 0x01 0x04 0x89 0x93 0x83 0xEF 0x88 0x3D 0x85 0x00 0x00 0x00 0x00 0x00 0x00 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00
OUT	0x00	0x05	0x0B 0x20 0x07 0x00 0xBD 0x00 0x1D 0x00 0x00 0x01
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x04 0x01 0x0B 0x20 0x00
SETUP	0x00	0x05	0x00 0x03 0x01 0x00 0x00 0x00 0x00 0x00
IN	0x00	0x05	0x0000
SETUP	0x00	0x05	0x00 0x01 0x01 0x00 0x00 0x00 0x00 0x00
IN	0x00	0x05	0x0000
IN	0x02	0x00	0x47 0x20 0x07 0x00 0x03 0x00 0x41 0x00 0xA1 0x04 0x87
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00
OUT	0x00	0x05	0x0B 0x20 0x07 0x00 0xBD 0x00 0x1D 0x00 0x00 0x01
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x04 0x01 0x0B 0x20 0x00
So now need to decode where we diverge...
 
That is a pile of data to parse - MAN or MCU'ually - even after the manual purge … AND process correctly.

Win to 1809: With the linked install sources it should jump and clean up - another benefit of going straight to the latest. If it was still on 17xx nothing good about that and dribbling up to year old stuff just a waste of time and bandwidth. Reading through WSL pages … 1903 has new stuff :( - old plan would have been march for 6 months - looks like it may be:: 'Windows 10 April 2019 Update Version 1903' ... if the RTM build holds. I don't recall widespread refusal to run apps from Windows except on downloaded [right click 'unblock' ] and it seems new version has a bypass to click in the presented warning - is there some dumb AVirus in use? Suggest running Malwarebytes [custom with rootkit C: ] - but some flags may have been set …

I see display discussion started . . . Frank's code ran overnight [ SPICLOCK 67000000 ] doing some busy work … and touching still works. I hope to do my map touch_pnt to Pixel on that then I'll power Frank's C64 for USB host test. Mike will have one Monday. Kurt was it a TFT C64 I sent you?
 
@KurtE - don't envy you going through that dump-I have been trying to get something to work all morning with ubuntu called ubertooth one. Supposedly it will sniff BT packets and you can dump everything in readable format. Have a lot more work and reading to get it to work. :)

@defragster - I just saw a youtube video on the April 2019 release looks like there may be another one right after that :) Looking forward to getting the TFT C64 - should be interesting.
 
Thanks guys, yep lots of data to parse through, although compared to the raw stuff before I edited it, it is a lot easier!

I try to go through and compare it versus the stuff we sent or see in our stuff.. So looking for key things, like:
Code:
SETUP	0x00	0x05	0x00 0x01 0x01 0x00 0x00 0x00 0x00 0x00
IN	0x00	0x05	0x0000
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00
OUT	0x00	0x05	0x0B 0x20 0x07 0x00 0xBD 0x00 0x1D 0x00 0x00 0x01
[COLOR="#006400"]IN	0x01	0x13	0x04 0x0A 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x08 0x05 0x00 0x01 Incoming connect [/COLOR] 
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x04 0x01 0x0B 0x20 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00
[COLOR="#006400"]OUT	0x00	0x05	0x09 0x04 0x07 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x00 Accept connection[/COLOR]
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0F 0x04 0x00 0x01 0x09 0x04
IN	0x01	0x13	0x12 0x08 0x00 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x00
[COLOR="#006400"]IN	0x01	0x13	0x03 0x0B 0x00 0x47 0x00 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x01 0x00 Connection complete[/COLOR]
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00
OUT	0x00	0x05	0x05 0x14 0x02 0x47 0x00
IN	0x01	0x13	0x20 0x07 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x01
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x07 0x01 0x05 0x14 0x00 0x47 0x00 0x03
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x07 0x00
OUT	0x00	0x05	0x0D 0x08 0x04 0x47 0x00 0x0F 0x00
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x06 0x01 0x0D 0x08 0x00 0x47 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00
OUT	0x00	0x05	0x09 0x08 0x02 0x47 0x00
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x07 0x01 0x09 0x08 0x00 0x47 0x00 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x07 0x00
OUT	0x00	0x05	0x28 0x0C 0x04 0x47 0x00 0x00 0x00
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x06 0x01 0x28 0x0C 0x00 0x47 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00
OUT	0x00	0x05	0x1F 0x04 0x02 0x47 0x00
IN	0x01	0x13	0x1B 0x03 0x47 0x00 0x05
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0F 0x04 0x00 0x01 0x1F 0x04
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x06 0x00
OUT	0x00	0x05	0x2D 0x0C 0x03 0x47 0x00 0x00
[COLOR="#006400"]IN	0x01	0x13	0x17 0x06 0xDC 0x13 0xD6 0x1B 0xAA 0x9C Link Key Request[/COLOR]
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x07 0x01 0x2D 0x0C 0x00 0x47 0x00 0x04
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00
OUT	0x00	0x05	0x03 0x14 0x02 0x47 0x00
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x07 0x01 0x03 0x14 0x00 0x47 0x00 0xFF
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x05 0x00
OUT	0x00	0x05	0x36 0x0C 0x02 0x47 0x00
IN	0x01	0x13	0x1C 0x05 0x00 0x47 0x00 0x9C 0x49
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x08 0x01 0x36 0x0C 0x00 0x47 0x00 0x00 0x7D
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x19 0x00
OUT	0x00	0x05	0x0B 0x04 0x16 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x14 0x1C 0x44 0x07 0x97 0x22 0x58 0xEA 0x96 0xF4 0x8C 0xB2 0x26 0xA2 0xF9 0x29
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x0A 0x01 0x0B 0x04 0x00 0xDC 0x13 0xD6 0x1B 0xAA 0x9C
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x06 0x00
OUT	0x00	0x05	0x2D 0x0C 0x03 0x47 0x00 0x01
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x07 0x01 0x2D 0x0C 0x00 0x47 0x00 0x08
IN	0x01	0x13	0x08 0x04 0x00 0x47 0x00 0x01
[COLOR="#006400"]IN	0x02	0x00	0x47 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x01 0x04 0x00 0x11 0x00 0x40 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x01 0x08 0x00 0x40 0x00 0x40 0x00 0x01 0x00 0x00 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x01 0x08 0x00 0x40 0x00 0x40 0x00 0x00 0x00 0x00 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x40 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x02	0x00	0x47 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x02 0x08 0x00 0x40 0x00 0x00 0x00 0x01 0x02 0xC8 0x05
OUT	0x02	0x00	0x47 0x00 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x02 0x0A 0x00 0x40 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02[/COLOR]
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x02	0x00	0x47 0x20 0x0E 0x00 0x0A 0x00 0x01 0x00 0x05 0x03 0x06 0x00 0x40 0x00 0x00 0x00 0x00 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x07 0x00
OUT	0x00	0x05	0x37 0x0C 0x04 0x47 0x00 0x80 0x0C
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
[COLOR="#006400"]IN	0x02	0x00	0x47 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x03 0x04 0x00 0x13 0x00 0x41 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x03 0x08 0x00 0x41 0x00 0x41 0x00 0x01 0x00 0x00 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x03 0x08 0x00 0x41 0x00 0x41 0x00 0x00 0x00 0x00 0x00
OUT	0x02	0x00	0x47 0x00 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x04 0x08 0x00 0x41 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x06 0x01 0x37 0x0C 0x00 0x47 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x17 0x00
OUT	0x00	0x05	0x07 0x08 0x14 0x47 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10 0x27 0x00 0x00 0xFF 0xFF 0xFF 0xFF
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0F 0x04 0x00 0x01 0x07 0x08
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x02	0x00	0x47 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x04 0x08 0x00 0x41 0x00 0x00 0x00 0x01 0x02 0xC8 0x05
OUT	0x02	0x00	0x47 0x00 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x04 0x0A 0x00 0x41 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02[/COLOR]
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x02	0x00	0x47 0x20 0x0E 0x00 0x0A 0x00 0x01 0x00 0x05 0x04 0x06 0x00 0x41 0x00 0x00 0x00 0x00 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x17 0x00
OUT	0x02	0x00	0x47 0x00 0x06 0x00 0x02 0x00 0x40 0x00 0x90 0x00
OUT	0x00	0x05	0x07 0x08 0x14 0x47 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10 0x27 0x00 0x00 0xFF 0xFF 0xFF 0xFF
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x01	0x13	0x0D 0x15 0x00 0x47 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10
IN	0x01	0x13	0x27 0x00 0x00 0xFF 0xFF 0xFF 0xFF
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x13 0x05 0x01 0x47 0x00 0x01 0x00
IN	0x01	0x13	0x0F 0x04 0x00 0x01 0x07 0x08
IN	0x01	0x13	0x1B 0x03 0x47 0x00 0x01
IN	0x01	0x13	0x14 0x06 0x00 0x47 0x00 0x02 0x0C 0x00
IN	0x02	0x00	0x47 0x20 0x05 0x00 0x01 0x00 0x40 0x00 0x00
IN	0x02	0x00	0x47 0x20 0x15 0x00 0x11 0x00 0x41 0x00 0xA1 0x01 0x04 0x89 0x93 0x83 0xEF 0x88 0x3D 0x85 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x13	0x0D 0x15 0x00 0x47 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10
IN	0x01	0x13	0x27 0x00 0x00 0xFF 0xFF 0xFF 0xFF
IN	0x02	0x00	0x47 0x20 0x15 0x00 0x11 0x00 0x41 0x00 0xA1 0x01 0x04 0x89 0x93 0x83 0xEF 0x88 0x3D 0x85 0x00 0x00 0x00 0x00 0x00 0x00 0x00
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00
OUT	0x00	0x05	0x0B 0x20 0x07 0x00 0xBD 0x00 0x1D 0x00 0x00 0x01
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x04 0x01 0x0B 0x20 0x00
SETUP	0x00	0x05	0x00 0x03 0x01 0x00 0x00 0x00 0x00 0x00
IN	0x00	0x05	0x0000
SETUP	0x00	0x05	0x00 0x01 0x01 0x00 0x00 0x00 0x00 0x00
IN	0x00	0x05	0x0000
IN	0x02	0x00	0x47 0x20 0x07 0x00 0x03 0x00 0x41 0x00 0xA1 0x04 0x87
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00
OUT	0x00	0x05	0x0B 0x20 0x07 0x00 0xBD 0x00 0x1D 0x00 0x00 0x01
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x04 0x01 0x0B 0x20 0x00
The parts in green are stuff you might have noticed in previous handshakes. The later parts that I put in green are the parts that setup the setup and INT link, which is what we needed to force the start of with PS4, but that does not appear to be the magic I would need to get them to talk yet.

I do notice they are using a command that neither us or HS2 has defined or used (HCI_ACCEPT_PHSYSICAL_LINK), now to back up from there.
 
Again if anyone else is looking through this data:
Just before we setup the connections, we see the commands and responses like:
Code:
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x19 0x00
OUT	0x00	0x05	0x0B 0x04 0x16 0xDC 0x13 0xD6 0x1B 0xAA 0x9C 0x14 0x1C 0x44 0x07 0x97 0x22 0x58 0xEA 0x96 0xF4 0x8C 0xB2 0x26 0xA2 0xF9 0x29
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x0A 0x01 0x0B 0x04 0x00 0xDC 0x13 0xD6 0x1B 0xAA 0x9C
SETUP	0x00	0x05	0x20 0x00 0x00 0x00 0x00 0x00 0x06 0x00
OUT	0x00	0x05	0x2D 0x0C 0x03 0x47 0x00 0x01
IN	0x00	0x05	0x0000
IN	0x01	0x13	0x0E 0x07 0x01 0x2D 0x0C 0x00 0x47 0x00 0x08
IN	0x01	0x13	0x08 0x04 0x00 0x47 0x00 0x01
So you see the first setup, here, you know this is something we are setting up to outptu:
So then you look at the Out command after it, and the first data bytes are 0x0b 0x04

So this is 16 bit command 0x40b, which the top 6 bits are what is considered the OGF.
So in this case this maps to OGF of 1 (top byte >> 2)

If you look at bluetooth spec Volume 2 Section E (Host Controller Interface Functional Specification)
You find that OGF of 1 is the Link Control commands (7.1 section) Now you look for the OCF of 0b\Which is
HCI_Link_Key_Request_reply, it takes a parameter of BD_ADDR and Link Key...

And it should generate an event HCI_Link_Key_Request_reply, which is hopefully one of the IN lines following...

What could be easier ;)
 
@KurtE
What could be easier - what a comedian. :)

Had some luck with ubertooth - that piece works - I can see the spectrum but haven't have much luck with getting the other software pieces working - something always wrong with the install and instructions... argh.... doesn't help I don't know Linux. Think I will put that on the side for now.
 
@mjs513 - I know the feeling...

On my secondary machine where windows was not working well, I first tried to do another update from 1803 to 1809, and still had issue, that it did not want me to install anything, nor able to run CMD nor...

So I downloaded 1809 to an SD Card and did a reinstall - Told it not to save my settings... Good news is, it looks like windows is now running properly :D Bad news is the windows installer removed the Linux multi bootloader so currently can not run Ubuntu... Need to probably reinstall, and I remember there may be some issues with later versions with multi boot...

Making some progress on understanding that dump of data...
The windows (and likewise Linux) drivers often do a lot more gunk than we try to do typically, likewise for the HS2 code, where we try to boil it down to minimum needed...

I think one primary difference is, that with all of the current devices, we receive a HCI_LINK_KEY_REQUEST, and we respond with a Negative response...

But in this case Windows appears to respond with a HCI_LINK_KEY_REQUEST_REPLY: with data of 6 bytes for the BDADDR and 16 byte key data... And it is after this, that under windows the device starts the setup of the control and interrupt channel, which we are not seeing. Not sure if these will support connection without this data, which if I understand correctly, that maybe the controller generated this information as part of the pairing process, which it then is sent to the host (not sure which message) and the host stores this somewhere to respond back later?

Again I know the very tip of the iceberg when it comes to Bluetooth!
 
Quite the chore handling those messages … it seems to work so seamlessly.

Kurt - glad Win10 working - bummer on dual boot loss :(. I got this that you may find as well. And the first Link is updated Jan 2019 so it may work?
I'm Greg, an installation specialist and 9 year Windows MVP, here to help you.

See this tutorial for multi-booting Linux with Windows 10: https://www.groovypost.com/howto/dual-boot-wind...

To have a Windows Boot menu when installing Linux ensure that you use the Advanced options and load GRUB to Linux Partition, rather than the Windows partition, then use EasyBCD to add the grub loader to the Windows Bootloader.
http://neosmart.net/wiki/display/EBCD/EasyBCD+B...

Another view: http://www.pcworld.com/article/2955460/operatin...
 
@defragster - Thanks, I simply used the sledgehammer approach and reinstalled Ubuntu 18.04 from ISO, which reinstalled their grub2 stuff... Then edited the grub2 to have it remember which thing I last booted from...

So far working. I then retried the pair operation on the Windows machine for the XBox360... To look at the stuff. I am not sure I captured everything as it removed most everything, will try again.

I am curious why some devices don't show up when we setup to do the pariing. Things like my LinkSys router(s) and the like as well as a few mice (Microsoft and Logitech BT mice)... So wondering if they are using a different request...

So far it looks like they are using same Inquiry, other than the limits they put on it.. We said wait up to a minute and max of 10 responses. There code says wait up to: maybe 10 seconds and unlimited number of responses...


They also setup I believe to receive extended data on the inquiry where we don't, we use the basic.... Always an interesting question of what specific thing(s) is the controller looking for.
 
Glad your way back to multi boot worked again. As you noted the Win boot scheme has changed so not having a valid current replacement can get it lost.

Interesting that the host response wrong/missing can cause the device to bail - another silent twist - now I see the need to parse the long/painful spew from a working connect.

Just put a Velcro cable tie strap around the ILI9488 display and the PJRC OSH board (over the single row connector) so it stops flopping and sometimes pulling out on touch testing.
 
Did not get as far today as I was hoping for. But did another trace of windows starting a paring.

Figured out windows is using extended inquiry mode, which I want to try, as the extended response includes the name, which was trying to get earlier for ps4...
 
Back
Top