Hopefully someone from Saleae will give a much better answer. But I have been using the USB captures to help understand some USB data in order to add support for the PJRC (Teensy) USB Host on the T3.6, T4, T4.1, for some USB devices to be connected to them. Things like Joysticks, Mice, Keyboards, Serial Adapters…
So to add them I need to understand what packets each of them expect and compare that to the ones we are generating or receiving. The Saleae Pro I have can only capture the slower speeds of USB (up to 12mhz) like the Beagle USB 12. AFAIK it can not capture the higher speeds like the Beagle USB 480. There are I believe 4 different formats for displaying the data/reports. So far the main one I use is packet. But at least for me the vast majority of the data is noise. That is for what I am doing I don’t care about frame starts with ACK/NAK, I am mainly interested in those packets that either send or receive data.
Example recent usage was trying to understand PS4 connecting using Bluetooth to a T4.1, sometimes it binds correctly sometimes not.
So I did a capture. I then tell the analyzer to save the data out to txt/csv file. In this case it saved about 1.9 million lines of text, which is a bit look through.
I then extracted the data I wanted only those lines that had DATA so did a linux grep (in this case on Windows 10 in Ubuntu window), where I look for DATA and tell the grep to also output 1 line above the match and save this to a file. Which got me down to about 10K lines, I then used my editor to remove all of the — lines that grep added (so cut this down by one third). I then did a regular expression search and replace to combine the pieces of the two lines per group into one… And end up with a file that looks like:
23.21607064 IN 0x02 0x18 0x48 0x20 0x53 0x00 0x4F 0x00 0x71 0x00 0xA1 0x11 0xC0 0x00 0x81 0x7C 0x81 0x7C 0x08 0x00 0x48 0x00 0x00 0xA0 0x7F 0xFC 0x0E 0x00 0x00 0x00 0x05 0x00 0x81 0x0A 0x7C 0x1E 0x1A 0x00 0x00 0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00
23.21707062 IN 0x02 0x18 0x80 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x00 0xC3 0x7D 0xE1 0x8C
23.21807067 IN 0x02 0x18 0x48 0x20 0x53 0x00 0x4F 0x00 0x71 0x00 0xA1 0x11 0xC0 0x00 0x81 0x7C 0x81 0x7C 0x08 0x00 0x4C 0x00 0x00 0xF7 0x80 0xFC 0x0E 0x00 0x00 0x00 0x05 0x00 0x69 0x0A 0x83 0x1E 0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00
23.21907066 IN 0x02 0x18 0x80 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00 0x00 0x54 0x59 0xCC 0x75
Which then I compared to the data that I had know which type of packet and format these are. Note: In this case, of the maybe 3K lines left most of them were simple joystick packets which I trimmed away and had maybe a hundred or two to actually look through.
Note: Some of this has been discussed on other threads here, and I know that one of the Saleae developers has been working on supporting HLA for the USB Analyzer. It will be nice if it at least allowed you to filter on which types of data you wish to see in the output, like do you want to see Start of Frames, and ACK/NAK and …
So It would be great if it got at least to this point where you can find all of the data packets.
It would be even greater if the HLA could have a higher level of smarts and decode some of these packets, like Bagle does or the WIreShark setup, where we could see information, like is the packet an HCI message (Event or Command), L2CAP, SDP (the part I starting to try to understand)!
Sorry for maybe being off of your request?