T3.6 USB Host - Bluetooth

Again check the function: void BluetoothController::handle_hci_remote_name_complete() {
Is it being called: DBGPrintf(" Event: handle_hci_remote_name_complete(%d)\n", rxbuf_[2]);

If so make sure you got my update fix, where remember the call for remoteNameComplete was commented out in the block above it...

Yep. I traced it that function in Bluetooth.cpp and made sure I had you change incorporated you update to pull out remoteNameComplete from the commented section of the function. So that part is correct. However, in that function (void BluetoothController::handle_hci_remote_name_complete()) you have a debug statement:
Code:
	DBGPrintf("    Event: handle_hci_remote_name_complete(%d)\n", rxbuf_[2]);

This is the kicker. I never see that "Event" printed in the debug data log I have from Serial1 (using TyCommander so I have the log).
 
Here is a part of a session I had for the mouse... Captured using Kitty and transfered to a sublime text window:
Code:
BT rx_data(12): 4 a 3e 58 b3 26 2c dc 80 5 0 1
    Event: Incoming Connect -  3e:58:b3:26:2c:dc CL:580 LT:1
      Peripheral device
        Mouse
BluetoothController::find_driver  driver 20003b58
Keyboard Controller::claim_bluetooth - Class 580
  driver 20003dd8
Keyboard Controller::claim_bluetooth - Class 580
  driver 20005bec
MouseController Controller::claim_bluetooth - Class 580
MouseController::claim_bluetooth TRUE
    *** Claimed ***
[COLOR="#FF0000"]HCI_OP_REMOTE_NAME_REQ [/COLOR]called (19 04 0a 3e 58 b3 26 2c dc 01 00 00 00 )
    Control callback (bluetooth): 0 : 19 4 a 3e 58 b3 26 2c dc 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 3e 58 b3 26 2c dc 42 4d 33 30 58 20 6d
BT rx_data(16): 6f 75 73 65 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(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BT rx_data(1): 0
    [COLOR="#FF0000"]Event: handle_hci_remote_name_complete(0)[/COLOR]
    Remote Name: BM30X mouse
HCI_OP_ACCEPT_CONN_REQ called (09 04 07 3e 58 b3 26 2c dc 00 )
Note: I have lots of debug turned on, at least the main one in bluetooth as well as the verbose. So it is dumping the who name buffer...

Again right at the start of the claim process it should show the type like and then should ask for the remote name...
 
I do understand what you are saying, unfortunately that's not what I am seeing in the dump (using Notepad++)
Code:
BT rx_data(16): 2 f 1 ea 94 9b e2 1f 0 1 2 0 8 25 0 d7 
BT rx_data(1): 6a 
    Inquiry Result - Count: 1
      BD:ea:94:9b:e2:1f:0, PS:1, class: 2508
      Peripheral device
        Gamepad
BluetoothController::find_driver  driver 1fff48f8
[COLOR="#FF0000"]JoystickController::claim_bluetooth TRUE: 9472
    *** Claimed ***
HCI_INQUIRY_CANCEL called (02 04 00 )
    Control callback (bluetooth): 100 : 2 4 0 [/COLOR]
BT rx_data(6): e 4 1 2 4 0 
    Command Completed! 
HCI_CREATE_CONNECTION called (05 04 0d ea 94 9b e2 1f 00 18 cc 01 00 00 00 00 )
    Control callback (bluetooth): 101 : 5 4 d ea 94 9b e2 1f 0 18 cc 1 0 0 0 0 
BT rx_data(6): f 4 0 1 5 4 
    Command 405 Status 0
s 0BT rx_data(13): 3 b 0 48 0 ea 94 9b e2 1f 0 1 0 
    Connection Complete - ST:0 LH:48
HCI_AUTH_REQUESTED called (11 04 02 48 00 )
    Control callback (bluetooth): 110 : 11 4 2 48 0 
BT rx_data(6): f 4 0 0 11 4 
    Command 411 Status 0

Here is the function I am seeing:
Code:
void BluetoothController::handle_hci_remote_name_complete() {
	//           STAT bd   bd   bd   bd    bd  bd
	// 0x07 0xFF 0x00 0x79 0x22 0x23 0x0A 0xC5 0xCC 0x42 0x6C 0x75 0x65 0x74 0x6F 0x6F ...
	DBGPrintf("    Event: handle_hci_remote_name_complete(%d)\n", rxbuf_[2]);
	if (rxbuf_[2] == 0) {
		DBGPrintf("    Remote Name: ");
		for (uint8_t *psz = &rxbuf_[9]; *psz; psz++) DBGPrintf("%c", *psz);
		DBGPrintf("\n");
	}
	if (device_driver_) {
	/*
		if (!device_driver_->btstrbuf) {
			device_driver_->btstrbuf = USBHost::allocate_string_buffer();
			if (device_driver_->btstrbuf) {

			}
		}
	*/
		device_driver_->remoteNameComplete(&rxbuf_[9]);
	}

	// Lets now try to accept the connection. 
	sendHCIAcceptConnectionRequest();
}
It is like "if (device_driver_) {" is never true to call remoteNameComplete.
 
Wondering which case is this? With the pari code in place or with the pair part off?

Code:
//BluetoothController bluet(myusb, true, "0000");   // Version does pairing to device
BluetoothController bluet(myusb);   // version assumes it already was paired

I sort of feel like I have seen cases where when I did the pair I did not see joystick stuff, but worked fine after? Maybe need to check where device_driver_ is set (or not set)
 
Kurt - turn on All the debug and see if anything changes? As noted it failed my mouseBt with it present but not printing because Serial1 was non enabled???.

Mike - I put a Trace_tt on the caller of that T:\arduino-1.8.8T4_146\hardware\teensy\avr\libraries\USBHost_t36\bluetooth.cpp:
Code:
void BluetoothController::rx_data(const Transfer_t *transfer)
{
// ...
[B]  debTraceE_tt( transfer, len, __func__ );
[/B]
//…
	if (rx_packet_data_remaining == 0) {	// read started at beginning of packet so get the total length of packet
[B]  debTraceE_tt( [B][U]rxbuf_[0][/U][/B], len, __func__ );
[/B]	    switch(rxbuf_[0]) { // Switch on event type
		    case EV_COMMAND_COMPLETE: //0x0e
	        	handle_hci_command_complete();// Check if command succeeded
	            break;
//…
			case EV_REMOTE_NAME_COMPLETE: // 0x07
				handle_hci_remote_name_complete();

The useful value would be 7 == rxbuf_[0] from line #391 - but you are not seeing that
#1: V1: 19 V2: 7 func rx_data in rxbuf_[0] L#:391 {72
#2: V1: 536825024 V2: 7 func rx_data in transfer L#:377 {72

I'm not sure if that gives you any hint you didn't have to see where it is missing or mis-interpreted?

Looking at that code comment between those two debTraceE commands makes me wonder about the case: "Note the logical packets returned from the device may be larger"?
This will extend rx_packet_data_remaining, and hopefully correct to process the whole packet.
In order to see when this happens it might be interesting to add the Trace_tt below
Code:
	if (rx_packet_data_remaining == 0) {	// Previous command was fully handled
		rx_packet_data_remaining = rxbuf_[1] + 2;	// length of data plus the two bytes at start...
  [B][U]debTraceE_tt( rxbuf_[1] + 2, len, "LargeLog_Packet" );[/U][/B]
	}		
    // Now see if the data 
    rx_packet_data_remaining -= len;	// remove the length of this packet from length

	if (rx_packet_data_remaining == 0) {	// read started at beginning of packet so get the total length of packet
  debTraceE_tt( rxbuf_[0], len, __func__ );

BTW/Anyhow - I just tested and the 'ATOMIC' [test for interrupt occurrence] code used for micros() calc from CycleCounter builds on T_3.6. So I'm going to use that to allow Trace_tt to work when it interrupts during a ShowTrace() print loop in progress - to keep the queue vars valid.
The while loop will repeat if ANY interrupt occurs during the enclosed code - i.e. reading variables that may change during an interrupt - without disabling interrupts:
Code:
uint32_t micros(void)
{
	uint32_t ccdelta, usec, smc, scc;
  [B]do { // must :: #include "arm_math.h"
    __LDREXW(&systick_safe_read);[/B]
		smc = systick_millis_count;
		scc = systick_cycle_count;
  [B]} while ( __STREXW(1, &systick_safe_read));[/B]
	ccdelta = ARM_DWT_CYCCNT - scc;
	usec = 1000*smc + (ccdelta/(F_CPU_ACTUAL/1000000));
	return usec;
}
Not sure that helps in this code - but it worked in ...\hardware\teensy\avr\cores\teensy4\delay.c::micros() - and this means that code could be ported back to Teensy3 (at least for T_3.6) for a more efficient micros() that doesn't toggle interrupts. And because I learned and used it in micros() it will be used again now :)
 
Thanks @defragster... Will take a look...

@mjs513 I am thinking the get remote name is not being called in your case... As I mentioned in the previous post.

Was thinking of trying to insert it into the flow. Sort of a pain as all of these things are ASYNC. So need to insert request wait for response, figure out what was it I was doing and continue with next request...

What I was thinking of trying is to change: void BluetoothController::handle_hci_inquiry_result()

Code:
			// Now we need to bail from inquiry and setup to try to connect...
			sendHCIInquiryCancel();
			pending_control_ = PC_INQUIRE_CANCEL;
			break;
To instead ask for remote name
sendHCIRemoteNameRequest();
pending_control_ = PC_INQUIRE_REMOTE_NAME ;

Then add a new value just before PC_INQUIRE_CANCEL
maybe PC_INQUIRE_REMOTE_NAME (make it 100 and have the old there...)
Then change: void BluetoothController::queue_next_hci_command()

Look at where the PC_INQUIRE_CANCEL case is, and just above it have:
Code:
    case PC_INQUIRE_REMOTE_NAME:
        sendHCIInquiryCancel();
			pending_control_++;
			break;

    case PC_INQUIRE_CANCEL
Again not sure if this will work, and (code formatting not correct), but this is where I would start...
Alternatively if this gets in the way of current processing, may have to try to insert it elsewhere in the flow.
 
Very Odd that debug ON fixes it - and yet Serial1 off stopped it from working - first seemed there was needed code under ifdef(debug) - but no Serial1 fail makes it seem like a timing/race issue … short of any other info to explain it.

Just repeated the Logitech keyboard recognize fail with no Serial1.begin - And then again with Logitech Mouse M557 AND Microsoft Mouse. In all three cases with Serial1 the device stops BT light blink and transfers device actions, with no Serial1 then the device Bt connect light keeps blinking without connection.

Only code change is removing comment syntax from this line in added in MouseBT.ino setup() :: //Serial1.begin(1843200);

I see missing groups of Trace_tt elements - so I need to go make it interrupt safe to print and Trace together. I added the LargeLogical packet entry and it shows often - in both cases of Serial1 begin or not.

Kurt: My ILI9488 displays {the one Paul Posted somewhere} have arrived by Plane in San Francisco - hopefully get them next week.
 
Wondering which case is this? With the pari code in place or with the pair part off?

Code:
//BluetoothController bluet(myusb, true, "0000");   // Version does pairing to device
BluetoothController bluet(myusb);   // version assumes it already was paired

I sort of feel like I have seen cases where when I did the pair I did not see joystick stuff, but worked fine after? Maybe need to check where device_driver_ is set (or not set)

Sorry guys - had a few things to take care of including my puppy who wanted some attention. You know that feeling Tim. :)

Any the problem is happening when I use the pair on part (true). If I use the pair off constructor it will run the misbehaving code, i.e.,
Code:
BT rx_data(12): 4 a ea 94 9b e2 1f 0 8 25 0 1 
    Event: Incoming Connect -  ea:94:9b:e2:1f:0 CL:2508 LT:1
      Peripheral device
        Gamepad
BluetoothController::find_driver  driver 1fff48f8
JoystickController::claim_bluetooth TRUE: 9472
    *** Claimed ***
HCI_OP_REMOTE_NAME_REQ called (19 04 0a ea 94 9b e2 1f 00 01 00 00 00 )
    Control callback (bluetooth): 0 : 19 4 a ea 94 9b e2 1f 0 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 ea 94 9b e2 1f 0 57 69 72 65 6c 65 73 
BT rx_data(16): 73 20 43 6f 6e 74 72 6f 6c 6c 65 72 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(16): 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
BT rx_data(1): 0 
    [COLOR="#FF0000"][B]Event: handle_hci_remote_name_complete(0)[/B][/COLOR]
    Remote Name: Wireless Controller
  JoystickController::remoteNameComplete Wireless Controller - set to PS4
  JoystickController::remoteNameComplete Wireless Controller - set to PS4
HCI_OP_ACCEPT_CONN_REQ called (09 04 07 ea 94 9b e2 1f 00 00 )
    Control callback (bluetooth): 0 : 9 4 7 ea 94 9b e2 1f 0 0 
BT rx_data(6): f 4 0 1 9 4 
    Command 409 Status 0
but the controller doesn't stayed paired and it tries to reconnect:
Code:
USB Host Testing
960
*** Device Bluet a12:1 - connected ***
  product: CSR8510 A10
*** Device Bluet - disconnected ***
*** Device Bluet a12:1 - connected ***
  product: CSR8510 A10
Tried it with 2 different dongles and same thing happened. Don't have any other Bluetooth joysticks to try it with.

[EDIT] Just finished reading your next post. Won't do anything with it until you have time to sort through this - may be a different issue.
 
Kurt has the new puppy - I just have a cat - 9 this spring - but yes - I suppose spent more time giving her attention than Teensy already today - well the code anyhow not forum posts :)

Mike, does that PS4 joystick have a USB connect method to compare too? My PS3 Bt is a bust without the Pre-Pairing - but it works on USB - though it sends a neurotic unending message stream. Does this $15 PS3 have similar Rumble? How similar are the USB streams for USB versus Bt connection?
 
Kurt has the new puppy - I just have a cat - 9 this spring - but yes - I suppose spent more time giving her attention than Teensy already today - well the code anyhow not forum posts :)

Mike, does that PS4 joystick have a USB connect method to compare too? My PS3 Bt is a bust without the Pre-Pairing - but it works on USB - though it sends a neurotic unending message stream. Does this $15 PS3 have similar Rumble? How similar are the USB streams for USB versus Bt connection?

Oops sorry Tim. We had an adopted wild cat for about 1 year but then he got into something and past on. So I know they like the attention too :)

The PS4 USB works fine, no problems as does the PS3. The data streams I think are different between BT and wired. That's part of the problem I think we are running into.
 
@mjs513 and @defragster - Yes I know the feeling, just got back in also after playing with 4.5 month old puppy

Tried the update I mentioned a couple back... I think that order is not correct. Not getting binding... Will try moving it later in the chain of messages.

Maybe the issue I am tracking down with the Mouse reconnecting is similar issue you are seeing on joystick.

I just reran the test on HS2, with the mouse already bind to it. So ran startup and then get similar to what I already showed. Only difference is this time I have a HUB connected, where it is easy for me to hook up logic analyzer connections. Where I captured everything after I pressed a button on joystick, and then output a couple different versions of the data...

But now to edit that data is it shows lots of junk...

Example the top level report: 224 lines
Code:
SETUP address: 0x0B time: 6.350893788
	bmRequestType=0x20 Data direction=Host to device, Type=Class, Recipient=Device
	bRequest=0x00 (Class request)
	wValue=0x0000
	wIndex=0x0000
	wLength=0x000D
DATA time: 6.350997946
	byte=0x19
	byte=0x04
	byte=0x0A
	byte=0x3E
	byte=0x58
	byte=0xB3
	byte=0x26
	byte=0x2C
	byte=0xDC
	byte=0x01
	byte=0x00
	byte=0x00
	byte=0x00
STATUS time: 6.35107346
	<status IN packet NAKed by device. Time: 6.351076534>
	<status IN packet NAKed by device. Time: 6.35112197>
	<status IN packet NAKed by device. Time: 6.351159282>
	<status IN packet NAKed by device. Time: 6.351210846>
	<status IN packet NAKed by device. Time: 6.351248096>
	<status IN packet NAKed by device. Time: 6.351293596>
	<status IN packet NAKed by device. Time: 6.351330784>
	<status IN packet NAKed by device. Time: 6.351376222>
	<status IN packet NAKed by device. Time: 6.351413534>
	<status IN packet NAKed by device. Time: 6.351593786>
	<status IN packet NAKed by device. Time: 6.351641222>
	<status IN packet NAKed by device. Time: 6.351678536>
	<status IN packet NAKed by device. Time: 6.351723972>
	<status IN packet NAKed by device. Time: 6.351761222>
	<status IN packet NAKed by device. Time: 6.351806722>
	<status IN packet NAKed by device. Time: 6.35184391>
	<status IN packet NAKed by device. Time: 6.351889348>
	<status IN packet NAKed by device. Time: 6.351926536>
	<status IN packet NAKed by device. Time: 6.351972036>
	<status IN packet NAKed by device. Time: 6.352009286>
	<status IN packet NAKed by device. Time: 6.352054786>
	<status IN packet NAKed by device. Time: 6.352091974>
	<status IN packet NAKed by device. Time: 6.352129162>
	<status IN packet NAKed by device. Time: 6.3521746>
	<status IN packet NAKed by device. Time: 6.352211912>
	<status IN packet NAKed by device. Time: 6.352263474>
	<status IN packet NAKed by device. Time: 6.352300786>
	<status IN packet NAKed by device. Time: 6.352345974>
	<status IN packet NAKed by device. Time: 6.352383162>
	<status IN packet NAKed by device. Time: 6.3524286>
	<status IN packet NAKed by device. Time: 6.352593726>
	<status IN packet NAKed by device. Time: 6.352629788>
	<status IN packet NAKed by device. Time: 6.352675226>
	<status IN packet NAKed by device. Time: 6.352712476>
	<status IN packet NAKed by device. Time: 6.352757914>
	<status IN packet NAKed by device. Time: 6.352795164>
	<status IN packet NAKed by device. Time: 6.35284054>
	<status IN packet NAKed by device. Time: 6.352877852>
	<status IN packet NAKed by device. Time: 6.352923228>
	<status IN packet NAKed by device. Time: 6.352960476>
	<status IN packet NAKed by device. Time: 6.353005976>
	<status IN packet NAKed by device. Time: 6.353043228>
	<status IN packet NAKed by device. Time: 6.353088602>
	<status IN packet NAKed by device. Time: 6.353125914>
	<status IN packet NAKed by device. Time: 6.35317104>
	<status IN packet NAKed by device. Time: 6.35320829>
	<status IN packet NAKed by device. Time: 6.353259978>
	<status IN packet NAKed by device. Time: 6.353297228>
	<status IN packet NAKed by device. Time: 6.353342604>
	<status IN packet NAKed by device. Time: 6.353379916>
	<status IN packet NAKed by device. Time: 6.35342529>
	<status IN packet NAKed by device. Time: 6.353593666>
	<status IN packet NAKed by device. Time: 6.35363573>
	<status IN packet NAKed by device. Time: 6.353681104>
	<status IN packet NAKed by device. Time: 6.353718354>
	<status IN packet NAKed by device. Time: 6.353763854>
	<status IN packet NAKed by device. Time: 6.353801104>
	<status IN packet NAKed by device. Time: 6.35384648>
	<status IN packet NAKed by device. Time: 6.353883792>
	<status IN packet NAKed by device. Time: 6.353929168>
	<status IN packet NAKed by device. Time: 6.353966418>
	<status IN packet NAKed by device. Time: 6.354011918>
	<status IN packet NAKed by device. Time: 6.354049168>
	<status IN packet NAKed by device. Time: 6.354094544>
	<status IN packet NAKed by device. Time: 6.354131856>
	<status IN packet NAKed by device. Time: 6.354169044>
	<status IN packet NAKed by device. Time: 6.35421448>
	<status IN packet NAKed by device. Time: 6.354251732>
	<status IN packet NAKed by device. Time: 6.354303356>
	<status IN packet NAKed by device. Time: 6.354340668>
	ACK

SETUP address: 0x0B time: 6.365593588
	bmRequestType=0x20 Data direction=Host to device, Type=Class, Recipient=Device
	bRequest=0x00 (Class request)
	wValue=0x0000
	wIndex=0x0000
	wLength=0x000A
DATA time: 6.365701246
	byte=0x09
	byte=0x04
	byte=0x07
	byte=0x3E
	byte=0x58
	byte=0xB3
	byte=0x26
	byte=0x2C
	byte=0xDC
	byte=0x00
STATUS time: 6.365776532
	<status IN packet NAKed by device. Time: 6.365779644>
...

EDIT: here is without the NAKs

Code:
SETUP address: 0x0B time: 6.350893788
	bmRequestType=0x20 Data direction=Host to device, Type=Class, Recipient=Device
	bRequest=0x00 (Class request)
	wValue=0x0000
	wIndex=0x0000
	wLength=0x000D
DATA time: 6.350997946
	byte=0x19
	byte=0x04
	byte=0x0A
	byte=0x3E
	byte=0x58
	byte=0xB3
	byte=0x26
	byte=0x2C
	byte=0xDC
	byte=0x01
	byte=0x00
	byte=0x00
	byte=0x00
STATUS time: 6.35107346
	ACK

SETUP address: 0x0B time: 6.365593588
	bmRequestType=0x20 Data direction=Host to device, Type=Class, Recipient=Device
	bRequest=0x00 (Class request)
	wValue=0x0000
	wIndex=0x0000
	wLength=0x000A
DATA time: 6.365701246
	byte=0x09
	byte=0x04
	byte=0x07
	byte=0x3E
	byte=0x58
	byte=0xB3
	byte=0x26
	byte=0x2C
	byte=0xDC
	byte=0x00
STATUS time: 6.365776532
	ACK

SETUP address: 0x0B time: 7.580496202
	bmRequestType=0x20 Data direction=Host to device, Type=Class, Recipient=Device
	bRequest=0x00 (Class request)
	wValue=0x0000
	wIndex=0x0000
	wLength=0x0004
DATA time: 7.580590674
	byte=0x1A
	byte=0x0C
	byte=0x01
	byte=0x02
STATUS time: 7.580658628
	ACK
Not much data here ...

Then change analyzer to show packets mode and again export... But again large file: > 50K lines....
Code:
6.349251940000000,IN,0x0B,0x01,,,0x12
6.349255050000000,NAK,,,,,
6.349368576000000,IN,0x0B,0x02,,,0x01
6.349371674000000,NAK,,,,,
6.349579434000000,SOF,,,0x59A,,0x00
6.350291878000000,IN,0x0B,0x01,,,0x12
6.350294990000000,DATA0,,,,0x04 0x0A 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x80 0x05 0x00 0x01,0xFE93
6.350306334000000,ACK,,,,,
6.350579312000000,SOF,,,0x59B,,0x1F
6.350889122000000,SETUP,0x0B,0x00,,,0x04
6.350892454000000,DATA0,,,,0x20 0x00 0x00 0x00 0x00 0x00 0x0D 0x00,0x7CB9
6.350900930000000,ACK,,,,,
6.350997280000000,OUT,0x0B,0x00,,,0x04
6.351000612000000,DATA1,,,,0x19 0x04 0x0A 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x01 0x00 0x00 0x00,0xB32E
6.351012430000000,ACK,,,,,
6.351072794000000,IN,0x0B,0x00,,,0x04
6.351075868000000,NAK,,,,,
6.351118228000000,IN,0x0B,0x00,,,0x04
6.351121306000000,NAK,,,,,
6.351155496000000,IN,0x0B,0x00,,,0x04
6.351158618000000,NAK,,,,,
Now to try to do some post processing... With the first one, maybe just remove all of the NAK lines

The other one, it has been awhile since I did it, before I would do some quick and dirty grep where it only included certain types of lines (usually I had it include some lines before and after the matched line)... But again it has been awhile (like over a year so may take some experimenting.
 
@KurtE

Was following the changes you suggested but you lost on this
Code:
maybe PC_INQUIRE_REMOTE_NAME (make it 100 and have the old there...)
The piece I got confused on "and have the old there"?. By the way "PC_INQUIRE_CANCEL=100" so we need to use a different value.

EDIT --- ok nevermind our posts crossed :)
 
Here is a complete stripped down version of the packet report.
Code:
Time [s]	PID	Address	Endpoint	Frame #	Data	CRC
6.350291878	IN	0x0B	0x01			0x12
6.35029499	DATA0				0x04 0x0A 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x80 0x05 0x00 0x01	0xFE93
6.350889122	SETUP	0x0B	0x00			0x04
6.350892454	DATA0				0x20 0x00 0x00 0x00 0x00 0x00 0x0D 0x00	0x7CB9
6.35099728	OUT	0x0B	0x00			0x04
6.351000612	DATA1				0x19 0x04 0x0A 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x01 0x00 0x00 0x00	0xB32E
6.354382028	IN	0x0B	0x00			0x04
6.354385128	DATA1					0x0000
6.354763644	IN	0x0B	0x01			0x12
6.354766754	DATA1				0x0F 0x04 0x00 0x01 0x19 0x04	0x4855
6.361589242	IN	0x0B	0x01			0x12
6.36159234	DATA0				0x07 0xFF 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x42 0x4D 0x33 0x30 0x58 0x20 0x6D	0x048C
6.36272609	IN	0x0B	0x01			0x12
6.362729218	DATA1				0x6F 0x75 0x73 0x65 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0xE266
6.363857166	IN	0x0B	0x01			0x12
6.363860284	DATA0				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.36498822	IN	0x0B	0x01			0x12
6.364991352	DATA1				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.365588922	SETUP	0x0B	0x00			0x04
6.365592254	DATA0				0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00	0x4CBB
6.36570058	OUT	0x0B	0x00			0x04
6.365703912	DATA1				0x09 0x04 0x07 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00	0xB169
6.369819228	IN	0x0B	0x00			0x04
6.369822304	DATA1					0x0000
6.370110788	IN	0x0B	0x01			0x12
6.370113868	DATA0				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.371245802	IN	0x0B	0x01			0x12
6.371248934	DATA1				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.372376878	IN	0x0B	0x01			0x12
6.37238	DATA0				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.373588302	IN	0x0B	0x01			0x12
6.37359138	DATA1				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.373963708	IN	0x0B	0x01			0x12
6.373966818	DATA0				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.375098764	IN	0x0B	0x01			0x12
6.375101884	DATA1				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.376233818	IN	0x0B	0x01			0x12
6.37623695	DATA0				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.377364812	IN	0x0B	0x01			0x12
6.377367892	DATA1				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.377768154	IN	0x0B	0x01			0x12
6.377771268	DATA0				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.378909458	IN	0x0B	0x01			0x12
6.378912584	DATA1				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.380040472	IN	0x0B	0x01			0x12
6.380043588	DATA0				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.381175528	IN	0x0B	0x01			0x12
6.381178654	DATA1				0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00	0x0F41
6.381587702	IN	0x0B	0x01			0x12
6.38159078	DATA0				0x00	0xBF40
6.382040708	IN	0x0B	0x01			0x12
6.382043782	DATA1				0x0F 0x04 0x00 0x01 0x09 0x04	0x8858
6.530575738	IN	0x0B	0x01			0x12
6.530578832	DATA0				0x12 0x08 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00	0x270D
6.541739072	IN	0x0B	0x01			0x12
6.541742182	DATA1				0x03 0x0B 0x00 0x48 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x01 0x00	0x511F
6.542823298	IN	0x0B	0x01			0x12
6.542826374	DATA0				0x20 0x07 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00	0x6868
6.543803448	IN	0x0B	0x01			0x12
6.543806564	DATA1				0x1B 0x03 0x48 0x00 0x05	0xACFF
6.576685854	IN	0x0B	0x02			0x01
6.576688984	DATA0				0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x02 0x04 0x00 0x11 0x00 0x45 0x00	0x067F
6.580571688	OUT	0x0B	0x02			0x01
6.58057502	DATA0				0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x02 0x08 0x00 0x70 0x00 0x45 0x00 0x01 0x00 0x00 0x00	0xBF38
6.581791778	OUT	0x0B	0x02			0x01
6.58179511	DATA1				0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x02 0x08 0x00 0x70 0x00 0x45 0x00 0x00 0x00 0x00 0x00	0x4339
6.583022908	OUT	0x0B	0x02			0x01
6.58302624	DATA0				0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x45 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF	0x46A4
6.585794228	IN	0x0B	0x01			0x12
6.585797328	DATA0				0x13 0x05 0x01 0x48 0x00 0x01 0x00	0x9BED
6.586789148	IN	0x0B	0x01			0x12
6.586792268	DATA1				0x13 0x05 0x01 0x48 0x00 0x01 0x00	0x9BED
6.587951264	IN	0x0B	0x02			0x01
6.587954396	DATA1				0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x70 0x00 0x00 0x00 0x01 0x02 0x30 0x00	0xDD72
6.58823124	OUT	0x0B	0x02			0x01
6.588234572	DATA1				0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x03 0x0A 0x00 0x45 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02	0xE905
6.588869064	IN	0x0B	0x01			0x12
6.58887215	DATA0				0x13 0x05 0x01 0x48 0x00 0x01 0x00	0x9BED
6.589048112	IN	0x0B	0x02			0x01
6.589051212	DATA0				0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x03 0x0A 0x00 0x70 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0x30 0x00	0xC7F8
6.58975291	OUT	0x0B	0x02			0x01
6.589756242	DATA0				0x48 0x20 0x05 0x00 0x01 0x00 0x45 0x00 0x70	0xE5D9
6.591916152	IN	0x0B	0x01			0x12
6.591919286	DATA1				0x13 0x05 0x01 0x48 0x00 0x01 0x00	0x9BED
6.592963298	IN	0x0B	0x01			0x12
6.592966412	DATA0				0x13 0x05 0x01 0x48 0x00 0x01 0x00	0x9BED
6.593158096	IN	0x0B	0x02			0x01
6.593161226	DATA1				0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x04 0x04 0x00 0x13 0x00 0x40 0x00	0xEE1B
6.598200024	OUT	0x0B	0x02			0x01
6.598203356	DATA1				0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x04 0x08 0x00 0x71 0x00 0x40 0x00 0x01 0x00 0x00 0x00	0xAEE7
6.599570226	OUT	0x0B	0x02			0x01
6.599573558	DATA0				0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x04 0x08 0x00 0x71 0x00 0x40 0x00 0x00 0x00 0x00 0x00	0x52E6
6.60079088	OUT	0x0B	0x02			0x01
6.600794212	DATA1				0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x05 0x08 0x00 0x40 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF	0xF17A
6.601267778	IN	0x0B	0x02			0x01
6.601270878	DATA0				0x48 0x20 0x05 0x00 0x01 0x00 0x70 0x00 0x00	0x0FC8
6.602183226	IN	0x0B	0x01			0x12
6.602186318	DATA1				0x13 0x05 0x01 0x48 0x00 0x01 0x00	0x9BED
6.603222934	IN	0x0B	0x01			0x12
6.60322601	DATA0				0x13 0x05 0x01 0x48 0x00 0x01 0x00	0x9BED
6.604232374	IN	0x0B	0x01			0x12
6.60423545	DATA1				0x13 0x05 0x01 0x48 0x00 0x01 0x00	0x9BED
6.604569784	IN	0x0B	0x02			0x01
6.60457289	DATA1				0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x05 0x08 0x00 0x71 0x00 0x00 0x00 0x01 0x02 0x30 0x00	0x99AD
6.604885344	OUT	0x0B	0x02			0x01
6.604888674	DATA0				0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x05 0x0A 0x00 0x40 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02	0x3F1C
6.605343806	IN	0x0B	0x02			0x01
6.605346892	DATA0				0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x05 0x0A 0x00 0x71 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0x30 0x00	0xC4A0
6.609339506	IN	0x0B	0x01			0x12
6.609342592	DATA0				0x13 0x05 0x01 0x48 0x00 0x01 0x00	0x9BED
6.614685744	IN	0x0B	0x02			0x01
6.61468886	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x01 0x00 0x00 0x00	0x743C
6.616702062	IN	0x0B	0x02			0x01
6.616705178	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x00 0x00 0x00	0x883D
7.501229372	IN	0x41	0x01			0x00
7.580491536	SETUP	0x0B	0x00			0x04
7.58049487	DATA0				0x20 0x00 0x00 0x00 0x00 0x00 0x04 0x00	0x2CBF
7.580590008	OUT	0x0B	0x00			0x04
7.58059334	DATA1				0x1A 0x0C 0x01 0x02	0x91B8
7.580905274	IN	0x0B	0x00			0x04
7.580908402	DATA1					0x0000
7.581233498	IN	0x0B	0x01			0x12
7.581236592	DATA1				0x0E 0x04 0x01 0x1A 0x0C 0x00	0x312A
7.95187411	IN	0x0B	0x02			0x01
7.951877238	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xFF 0xFE 0x00	0xD84D
7.952936274	IN	0x0B	0x02			0x01
7.952939366	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xF7 0xDC 0x00	0xBAD4
7.960098804	IN	0x0B	0x02			0x01
7.96010189	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xF6 0xE7 0x00	0x4A96
7.97457858	IN	0x0B	0x02			0x01
7.974581686	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xFF 0xE9 0x00	0x2842
7.982602832	IN	0x0B	0x02			0x01
7.982605962	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x00 0xF1 0x00	0x1878
7.996933558	IN	0x0B	0x02			0x01
7.996936634	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x01 0xF7 0x00	0x782A
8.005138816	IN	0x0B	0x02			0x01
8.005141912	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x01 0xFD 0x00	0xD82C
8.03380356	IN	0x0B	0x02			0x01
8.033806692	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x03 0x00 0x00	0x88CD
8.041004336	IN	0x0B	0x02			0x01
8.041007466	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x0C 0x02 0x00	0xEBFC
8.054278502	IN	0x0B	0x02			0x01
8.054281634	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x11 0x08 0x00	0x4D6A
8.06257544	IN	0x0B	0x02			0x01
8.062578536	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x14 0x0D 0x00	0x1C79
8.076810424	IN	0x0B	0x02			0x01
8.07681352	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x1A 0x0F 0x00	0xBF19
8.08499483	IN	0x0B	0x02			0x01
8.084997922	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x22 0x14 0x00	0x8292
8.099449898	IN	0x0B	0x02			0x01
8.099453032	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x1D 0x1C 0x00	0x4EA5
8.107564394	IN	0x0B	0x02			0x01
8.107567496	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x1A 0x22 0x00	0xEF04
8.121876308	IN	0x0B	0x02			0x01
8.121879418	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x1C 0x22 0x00	0xEEE4
8.130061068	IN	0x0B	0x02			0x01
8.130064194	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x1E 0x23 0x00	0xBE44
8.144446352	IN	0x0B	0x02			0x01
8.144449428	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x19 0x22 0x00	0xEFF4
8.152603844	IN	0x0B	0x02			0x01
8.152606954	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x14 0x1B 0x00	0x7C77
8.16691653	IN	0x0B	0x02			0x01
8.166919626	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x18 0x22 0x00	0x2FA5
8.175101748	IN	0x0B	0x02			0x01
8.17510484	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x17 0x24 0x00	0x8C96
8.189561256	IN	0x0B	0x02			0x01
8.189564388	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x15 0x1E 0x00	0xEC25
8.197625672	IN	0x0B	0x02			0x01
8.197628788	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x18 0x21 0x00	0xDFA5
8.211994748	IN	0x0B	0x02			0x01
8.211997836	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x18 0x20 0x00	0x4FA4
8.220176612	IN	0x0B	0x02			0x01
8.220179738	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x15 0x1C 0x00	0x8C24
8.234559104	IN	0x0B	0x02			0x01
8.234562222	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x15 0x1F 0x00	0x7C24
8.242701014	IN	0x0B	0x02			0x01
8.242704124	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x14 0x1B 0x00	0x7C77
8.25706507	IN	0x0B	0x02			0x01
8.25706817	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x10 0x18 0x00	0x4D36
8.26525029	IN	0x0B	0x02			0x01
8.265253384	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x12 0x19 0x00	0x1D96
8.279595888	IN	0x0B	0x02			0x01
8.279598994	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x13 0x16 0x00	0x2DC2
8.287781462	IN	0x0B	0x02			0x01
8.287784582	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x0D 0x0E 0x00	0x2BA8
8.302097272	IN	0x0B	0x02			0x01
8.302100378	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x0E 0x11 0x00	0x1B50
8.31043302	IN	0x0B	0x02			0x01
8.310436094	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x0D 0x0D 0x00	0xDBA8
8.324614528	IN	0x0B	0x02			0x01
8.32461764	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x06 0x05 0x00	0xD9DE
8.332801226	IN	0x0B	0x02			0x01
8.332804354	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x01 0x01 0x00	0xD86D
8.392211858	IN	0x0B	0x02			0x01
8.392214984	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xFE 0xFE 0x00	0x181C
8.394426242	IN	0x0B	0x02			0x01
8.394429368	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xF9 0xFA 0x00	0x19AF
8.399553998	IN	0x0B	0x02			0x01
8.39955707	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xEA 0xF0 0x00	0x7C58
8.412671632	IN	0x0B	0x02			0x01
8.41267474	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xE4 0xEE 0x00	0x1F30
8.421929328	IN	0x0B	0x02			0x01
8.421932456	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xE4 0xEB 0x00	0x4F33
8.435234782	IN	0x0B	0x02			0x01
8.435237874	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xD9 0xE2 0x00	0xD3A4
8.444539848	IN	0x0B	0x02			0x01
8.444542968	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xDB 0xE3 0x00	0x8304
8.457726956	IN	0x0B	0x02			0x01
8.457730072	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xD4 0xDF 0x00	0x8025
8.466984944	IN	0x0B	0x02			0x01
8.46698804	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xD9 0xDB 0x00	0x83B6
8.480419366	IN	0x0B	0x02			0x01
8.48042246	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xDC 0xDB 0x00	0x82A6
8.489540092	IN	0x0B	0x02			0x01
8.489543176	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xDC 0xDD 0x00	0x22A5
8.502796176	IN	0x0B	0x02			0x01
8.502799282	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xE4 0xE2 0x00	0x1F35
8.512001208	IN	0x0B	0x02			0x01
8.512004312	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xE4 0xE1 0x00	0xEF35
8.525415778	IN	0x0B	0x02			0x01
8.525418856	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xE9 0xE7 0x00	0x8CA7
8.534535068	IN	0x0B	0x02			0x01
8.534538198	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xF0 0xF0 0x00	0xBB79
8.54783746	IN	0x0B	0x02			0x01
8.547840554	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xEF 0xEF 0x00	0x4D40
8.557091738	IN	0x0B	0x02			0x01
8.557094834	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xF5 0xF4 0x00	0x7A6B
8.570532618	IN	0x0B	0x02			0x01
8.570535752	DATA1				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xF9 0xFA 0x00	0x19AF
8.57959812	IN	0x0B	0x02			0x01
8.57960122	DATA0				0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0xFF 0xFE 0x00	0xD84D
10.10109782	IN	0x41	0x01			0x00
10.250728	IN	0x0B	0x02			0x01
Still sort of hard to read, but when you see SETUP, I believe those are things sent on control pipe, then we have an output and 2 inputs so you can start to get an idea of all of the data... Now to print it out and compare it to what I am doing on our library...
 
Well I think I did it - my ref index check numbers are interrupted by _isr changing during print - but they add in the end across 600 Traced elements. Put the ShowTrace on 20 ms timer in loop() so bigger bunches - odd the biggest bunch size is 20 - so 1 msg per ms.

Realized - after posting prior confusing notes on ordering - I should have done FIFO not LIFO print. Have to re-order for LIFO but updated

So the LDREXW and STREXW works on T_3.6. I used it to track the counts on entry allowing the new Trace elements to arrive after that then just update the start. So that works great for reading the shared value - but leaves a hole in the end where I have write the value back that could lose one entry.

So this _isr driven USB looks to be a good test case for working out details. In the end with the right tweaks it could match a version of the p#188 output.
 
@Paul

Just got the pogo pins in the mail. Thank you - really appreciate it. Now if I can stop obsessing over BT I can get back to the breakout board.
 
@KurtE

Kurt = I know just pressing the PS button worked at one point so I pulled a past commit "WIP - a way for maybe joystick to call off to L2CAPCommand?" and reran the sketch and it worked with just the PS key. So now to figure out what the deltas are or try later commits

EDIT: This update has the same problem. "Some BT Joystick support plus optional Debug msgs to SerialX"

EDIT1: Tried it again with the debug statements uncommented, i.e.,
Code:
#define DEBUG_BT
#define DEBUG_BT_VERBOSE
Again, by working I mean, it connects with issue using just the PS button.
 
Last edited:
@mjs513 - Let me know what you find... Hopefully something simple I screwed up on...

Note: I am currently trying to resolve the differences in the data that was sent in message #188 versus what I am seeing in our code...
Looks close (some handles different, might rerun, clean to see if I can get closer to same handles...

I found I was not handling the processing connection request properly to detect if it is the control or the interrupt version... So have that...
Then yesterday was getting to the end of the data from LA trace before it was returning real mouse data... and found I was not outputting the connection response so added that, then
got the response and then now code to output code in the process interrupt connect is now sending out a config request like the HS2, but parameters different, trying to resolve...

This is the last message I output before the connection is rejected... Already found one issue, they incremented the connection ID before this, which I tried yesterday...
 
@KurtE
Ran one more test with the latest version where I commented out the debug statements. This time using the PS button didn't connect at all to the dongle. However, it does connect if you using the Paring on mode. Going to have to do a code compare to see the deltas between the versions.
 
@mjs513 - let me know what you find out...

I reran the connect of the mouse on HS2 board, with LA output, and did some more editing in Sublime text using regex search and replace... I know there are simpler ways to do this, but I did it with more data reduction to make it easier to look at:
Code:
Column1	Column2	Column3	Column4
IN	0x01	DATA0	0x04 0x0A 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x80 0x05 0x00 0x01
SETUP	0x00	DATA0	0x20 0x00 0x00 0x00 0x00 0x00 0x0D 0x00
OUT	0x00	DATA1	0x19 0x04 0x0A 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x01 0x00 0x00 0x00
IN	0x00	DATA1	
IN	0x01	DATA1	0x0F 0x04 0x00 0x01 0x19 0x04
IN	0x01	DATA0	0x07 0xFF 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x42 0x4D 0x33 0x30 0x58 0x20 0x6D
IN	0x01	DATA1	0x6F 0x75 0x73 0x65 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA0	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA1	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
SETUP	0x00	DATA0	0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00
OUT	0x00	DATA1	0x09 0x04 0x07 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00
IN	0x00	DATA1	
IN	0x01	DATA0	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA1	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA0	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA1	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA0	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA1	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA0	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA1	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA0	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA1	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA0	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA1	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	DATA0	0x00
IN	0x01	DATA1	0x0F 0x04 0x00 0x01 0x09 0x04
IN	0x01	DATA0	0x12 0x08 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00
IN	0x01	DATA1	0x03 0x0B 0x00 0x48 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x01 0x00
IN	0x01	DATA0	0x20 0x07 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00
IN	0x01	DATA1	0x1B 0x03 0x48 0x00 0x05
IN	0x02	DATA0	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x02 0x04 0x00 0x11 0x00 0x43 0x00
OUT	0x02	DATA0	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x02 0x08 0x00 0x70 0x00 0x43 0x00 0x01 0x00 0x00 0x00
OUT	0x02	DATA1	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x02 0x08 0x00 0x70 0x00 0x43 0x00 0x00 0x00 0x00 0x00
OUT	0x02	DATA0	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x43 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF
IN	0x01	DATA0	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x01	DATA1	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	DATA1	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x70 0x00 0x00 0x00 0x01 0x02 0x30 0x00
OUT	0x02	DATA1	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x03 0x0A 0x00 0x43 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
IN	0x01	DATA0	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	DATA0	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x03 0x0A 0x00 0x70 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0x30 0x00
OUT	0x02	DATA0	0x48 0x20 0x05 0x00 0x01 0x00 0x43 0x00 0x70
IN	0x01	DATA1	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	DATA1	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x04 0x04 0x00 0x13 0x00 0x41 0x00
OUT	0x02	DATA1	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x04 0x08 0x00 0x71 0x00 0x41 0x00 0x01 0x00 0x00 0x00
OUT	0x02	DATA0	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x04 0x08 0x00 0x71 0x00 0x41 0x00 0x00 0x00 0x00 0x00
OUT	0x02	DATA1	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x05 0x08 0x00 0x41 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF
IN	0x01	DATA0	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	DATA0	0x48 0x20 0x05 0x00 0x01 0x00 0x70 0x00 0x00
IN	0x01	DATA1	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x01	DATA0	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x01	DATA1	0x13 0x05 0x01 0x48 0x00 0x01 0x00
[COLOR="#FF0000"]IN	0x02	DATA1	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x05 0x08 0x00 0x71 0x00 0x00 0x00 0x01 0x02 0x30 0x00[/COLOR]
OUT	0x02	DATA0	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x05 0x0A 0x00 0x41 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
IN	0x02	DATA0	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x05 0x0A 0x00 0x71 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0x30 0x00
IN	0x01	DATA0	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	DATA1	0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x01 0x00 0x00 0x00
IN	0x02	DATA0	0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x00 0x00 0x00
SETUP	0x00	DATA0	0x20 0x00 0x00 0x00 0x00 0x00 0x04 0x00
OUT	0x00	DATA1	0x1A 0x0C 0x01 0x02
IN	0x00	DATA1	
IN	0x01	DATA1	0x0E 0x04 0x01 0x1A 0x0C 0x00
Combined the two lines of IN/OUT/SETUP followed by DATA... into one line, removed checksum... In here if you look at the IN/OUT on 0x02, the 8th column is the actual command being sent or received... LCAP...
So for example the line in RED is something we are receiving from device 0x04 -> L2CAP_CMD_CONFIG_REQUEST

The line after that is the command we are sending back 0x05 -> L2CAP_CMD_CONFIG_RESPONSE

On a Side note: with the HiLetGo boards, I contacted them through Amazon... Their first response was to give me a list of places to look, including link to Wiki that does not exist...
2.0 ADK Mini USB Host Shield SLR Development Tool Compatible SPI Interface For Arduino

The technical support and tutorial documentation download links are as follows (specification parameters, software, code, PCB download):

Http://Wiki.Duinofun.Com/index.Php?Title=USB_Host_迷你

Library: Https://Github.Com/felis/USB_Host_Shield_2.0

How to build an ADK hardware platform:
Http://Www.Circuitsathome.Com/mcu/building-google-adk-hardware-from-standard-components
Http://Intijk.Com/
http://Intijk.Com/?P=977
http://Www.Cppblog.Com/heath/archive/2012/02/02/164857.Html
The technical support and tutorial documentation download links are as follows (specification parameters, software, code, PCB download):
http://wiki.duinofun.com/index.php?title=USB_Host_迷你

Official website: http://www.circuitsathome.com/category/mcu/arduino
Library file: https://github.com/felis/USB_Host_Shield_2.0

How to build an ADK hardware platform: http://www.circuitsathome.com/mcu/building-google-adk-hardware-from-standard-components
note:
By Android, some jar packages are streamlined and the error is reported. Refer to the enthusiastic buyer's tutorial to solve:
Http://intijk.com/
Http://intijk.com/?p=977
Http://www.cppblog.com/heath/archive/2012/02/02/164857.html


More info you could reference at below links:
https://github.com
http://www.instructables.com
https://www.youtube.com
So I mentioned to them I had looked at those... And was still having problems and that some of the comments about needing replacement boards...
I received another response this morning, saying they could do that, but probably same issue, so gave me the option to get most of my money back and hold on to it, on the hope may figure out something later... Which I accepted...
 
@KurtE

Pretty much ran out of things. I did compares and updates to base that I used, the one that worked. Got that to work to pair with PS button and identify the joystick name, but then rumble did not work nor did pair set to true. And it still wouldn't work with the debug's commented out.

Could this be a weird timing issue?

EDIT: Forgot to add - could not see anything should be overridden by debug etc.

EDIT2: Did one more thing before I stop. I made everything go to Serial instead of serial one (using current version) and noticed this if I try and pair with the PS button:
Code:
HCI_OP_REMOTE_NAME_REQ called (19 04 0a ea 94 9b e2 1f 00 01 00 00 00 )
HCI_AUTH_REQUESTED called (11 04 02 00 00 )
    Control callback (bluetooth): 110 : 11 4 2 0 0 9b e2 1f 0 1 0 0 0 
BT rx_data(6): f 4 12 1 11 4 
    Command 411 Status 12 - ???
    Control callback (bluetooth): 110 : 11 4 2 0 0 
BT rx_data(6): f 4 2 1 11 4 
    Command 411 Status 2 - Unknown Connection Identifier
BT rx_data(13): 3 b 10 48 0 ea 94 9b e2 1f 0 1 0 
    Connection Complete - ST:10 LH:48
Not sure if its useful. But I just can't see where it would fail.
 
Last edited:
@mjs513 - Maybe...

Right now I am comparing the two Mouse connections with just the clicking on top of mouse. This is with the same BT adapter so already paired, again with lots of edit of the output of LA...

This is HS2:
Code:
Column1	Column2	Column4
IN	0x01	0x04 0x0A 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x80 0x05 0x00 0x01
SETUP	0x00	0x20 0x00 0x00 0x00 0x00 0x00 0x0D 0x00
OUT	0x00	0x19 0x04 0x0A 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x01 0x00 0x00 0x00
IN	0x00	
IN	0x01	0x0F 0x04 0x00 0x01 0x19 0x04
IN	0x01	0x07 0xFF 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x42 0x4D 0x33 0x30 0x58 0x20 0x6D
IN	0x01	0x6F 0x75 0x73 0x65 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
SETUP	0x00	0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00
OUT	0x00	0x09 0x04 0x07 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00
IN	0x00	
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00
IN	0x01	0x0F 0x04 0x00 0x01 0x09 0x04
IN	0x01	0x12 0x08 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00
IN	0x01	0x03 0x0B 0x00 0x48 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x01 0x00
IN	0x01	0x20 0x07 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00
IN	0x01	0x1B 0x03 0x48 0x00 0x05
IN	0x02	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x02 0x04 0x00 0x11 0x00 0x43 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x02 0x08 0x00 0x70 0x00 0x43 0x00 0x01 0x00 0x00 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x02 0x08 0x00 0x70 0x00 0x43 0x00 0x00 0x00 0x00 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x43 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x70 0x00 0x00 0x00 0x01 0x02 0x30 0x00
OUT	0x02	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x03 0x0A 0x00 0x43 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x03 0x0A 0x00 0x70 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0x30 0x00
OUT	0x02	0x48 0x20 0x05 0x00 0x01 0x00 0x43 0x00 0x70
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x04 0x04 0x00 0x13 0x00 0x41 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x04 0x08 0x00 0x71 0x00 0x41 0x00 0x01 0x00 0x00 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x04 0x08 0x00 0x71 0x00 0x41 0x00 0x00 0x00 0x00 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x05 0x08 0x00 0x41 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	0x48 0x20 0x05 0x00 0x01 0x00 0x70 0x00 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x05 0x08 0x00 0x71 0x00 0x00 0x00 0x01 0x02 0x30 0x00
OUT	0x02	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x05 0x0A 0x00 0x41 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
IN	0x02	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x05 0x0A 0x00 0x71 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0x30 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x01 0x00 0x00 0x00
IN	0x02	0x48 0x20 0x0A 0x00 0x06 0x00 0x71 0x00 0xA1 0x02 0x00 0x00 0x00 0x00
SETUP	0x00	0x20 0x00 0x00 0x00 0x00 0x00 0x04 0x00
OUT	0x00	0x1A 0x0C 0x01 0x02
IN	0x00	
IN	0x01	0x0E 0x04 0x01 0x1A 0x0C 0x00

This is from T4...
Code:
IN	0x01	0x04 0x0A 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x80 0x05 0x00 0x01
SETUP	0x00	0x20 0x00 0x00 0x00 0x00 0x00 0x0D 0x00
OUT	0x00	0x19 0x04 0x0A 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x01 0x00 0x00 0x00
IN	0x00	
IN	0x01	0x0F 0x04 0x00 0x01 0x19 0x04
IN	0x01	0x07 0xFF 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x42 0x4D 0x33 0x30 0x58 0x20 0x6D
IN	0x01	0x6F 0x75 0x73 0x65 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x00
SETUP	0x00	0x20 0x00 0x00 0x00 0x00 0x00 0x0A 0x00
OUT	0x00	0x09 0x04 0x07 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00
IN	0x00	
IN	0x01	0x0F 0x04 0x00 0x01 0x09 0x04
IN	0x01	0x12 0x08 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00
IN	0x01	0x03 0x0B 0x00 0x48 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x01 0x00
IN	0x01	0x20 0x07 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x00
IN	0x01	0x1B 0x03 0x48 0x00 0x05
IN	0x02	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x02 0x04 0x00 0x11 0x00 0x40 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x02 0x08 0x00 0x70 0x00 0x40 0x00 0x01 0x00 0x00 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x02 0x08 0x00 0x70 0x00 0x40 0x00 0x00 0x00 0x00 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x40 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x03 0x08 0x00 0x70 0x00 0x00 0x00 0x01 0x02 0x30 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
OUT	0x02	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x03 0x0A 0x00 0x40 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0xA0 0x02
IN	0x02	0x48 0x20 0x12 0x00 0x0E 0x00 0x01 0x00 0x05 0x03 0x0A 0x00 0x70 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0x30 0x00
OUT	0x02	0x48 0x20 0x05 0x00 0x01 0x00 0x40 0x00 0x70
IN	0x02	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x04 0x04 0x00 0x13 0x00 0x45 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
OUT	0x02	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x02 0x04 0x04 0x00 0x13 0x00 0x71 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	0x48 0x20 0x05 0x00 0x01 0x00 0x70 0x00 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x04 0x08 0x00 0x71 0x00 0x45 0x00 0x01 0x00 0x00 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x04 0x08 0x00 0x71 0x00 0x45 0x00 0x00 0x00 0x00 0x00
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x05 0x08 0x00 0x45 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x03 0x04 0x08 0x00 0x44 0x00 0x71 0x00 0x04 0x00 0x00 0x00
IN	0x02	0x48 0x20 0x0C 0x00 0x08 0x00 0x01 0x00 0x06 0x05 0x04 0x00 0x70 0x00 0x40 0x00
OUT	0x02	0x48 0x20 0x10 0x00 0x0C 0x00 0x01 0x00 0x04 0x06 0x08 0x00 0x44 0x00 0x00 0x00 0x01 0x02 0xFF 0xFF
IN	0x01	0x13 0x05 0x01 0x48 0x00 0x01 0x00
IN	0x02	0x48 0x20 0x0E 0x00 0x0A 0x00 0x01 0x00 0x01 0x06 0x06 0x00 0x02 0x00 0x00 0x00 0x00 0x00
They are mostly the same... There are areas toward the top, where there are a bunch of INs in a row... Where we may get all of the INS in first, and they may only get part in first...
This is because, the lines:
Code:
IN	0x01	0x07 0xFF 0x00 0x3E 0x58 0xB3 0x26 0x2C 0xDC 0x42 0x4D 0x33 0x30 0x58 0x20 0x6D
That 0xff in second byte says there is 255 bytes of data, and the packets are only giving up to 16 bytes, so we have to wait for the ins to come to fill in the actual buffer...

Using the sublime merge plug in to sublime text to look at some of the differences...
Mouse-HS2-T4-Diff.jpg
Now back to seeing what differences are important...

Hopefully figuring this out will also figure out the joystick... I remember back when I first started playing with the BT stuff, certain orders were important and also at times different devices would act differently, so I would get it to work for Joystick and Keyboard would stop... But hopefully now learning more and maybe fix some underlying issue.
Keep fingers crossed
 
Hopefully figuring this out will also figure out the joystick... I remember back when I first started playing with the BT stuff, certain orders were important and also at times different devices would act differently, so I would get it to work for Joystick and Keyboard would stop... But hopefully now learning more and maybe fix some underlying issue.
Keep fingers crossed

@KurtE
Me too - because I am pretty much stuck. Fix one thing and another thing breaks.... arg.
 
My wholly uniformed observational conjecture in recent posts was 'timing' based on with/without Serial1.begin() changed MouseBt Connect Yes/No - since I accidentally was running full_debug without Serial1.begin.

But the USB messages appear to be on a 1ms heartbeat - and the prints I checked were like 450 cycles … unless it wasn't the timing but some underlying MCU activity keeping something alive?

And that brings up another posted question : Individual drivers and process ordering per device? At least on Windows without the right VENDOR_ID/PRODUCT_ID and device specific driver install will it ever work.

Kurt is there some spec I could emulate to make a TraceUSB_tt() to record Trace/Show each IN / OUT / SETUP / ??? message log to record the COLUMN1/2/4 of post #197 - that looks like some ~20 bytes per record? { byte IOS; byte CMD, byte data[16] } Then add Timestamp Other info? If there are static strings left for a message I could store a *szLook to display when not NULL.

What I have was a generic proof of concept to track data values at code locations. And it seems to be interrupt safe as it did not alter connect of Mouse behavior as Serial1 did/didn't exist - but showed processing of added [less than helpful] message info.
 
@defragster.

There is a bunch of stuff out there for windows including some source code. I did find this but the guy never posted the source: https://www.plop.at/en/teensy.html

And that brings up another posted question : Individual drivers and process ordering per device? At least on Windows without the right VENDOR_ID/PRODUCT_ID and device specific driver install will it ever work.
In the uhs2.0 code they get the id's from the device descriptor, but I can't really find where we do that - just started looking though - say for the joystick.

Just for a data point I commented out Serial1 as a test for the pairing on and off (true or blank). In the first case I get the same behavior. In the second case it gets more interesting. With Serial1 it does not seem to want to connect at all, with Serial1 uncommented, I see that connect/disconnect/connect behavior to the joystick.
 
Back
Top