How do I Periodically Log USB Data without Access to the Host Computer?

Question from the Customer:

I would like to periodically log data from a measurement device which communicates with the host computer via full-speed USB. The measurement uses bulk transfer to send the data in real time. I do not have access to the host computer and am thinking of using a Beagle USB 12 Protocol Analyzer to accomplish this task.

I would like to capture 50 packets every second, filter them by the source endpoint, and extract the data payload. Furthermore, I plan on further processing the data using a Python script.

Can I use the Beagle USB 12 Protocol Analyzer and API to log the data?

Response from Technical Support:

Thank you for your question! With the correct settings and large RAM to collect data for longer durations, you can use the Beagle USB 12 Protocol Analyzer to log the data. The amount of data the Beagle USB Protocol Analyzer can capture is based on the amount of RAM in the analysis PC, not on the analyzer hardware.

Since you do not have access to the host computer, you can either use the Beagle Software API or control our Data Center Software with a remote terminal.

Using Total Phase Tools to Log USB Data

Beagle USB 12 Protocol Analyzer

The Beagle USB 12 Protocol Analyzer is a non-intrusive Low- and Full-Speed USB Protocol Analyzer that provides real-time USB descriptor parsing. The Beagle USB 12 analyzer is galvanically isolated and will not affect the test system or distort the results. The Beagle USB 12 analyzer is attached inline to passively monitor USB communication between the host and device under test.

Beagle Software API

Users can write their own application using the Beagle Software API. The API comes with support for multiple OS (Windows, Linux, and Mac) and multiple languages (C, Python, Visual Basic, and C#), and includes examples. The examples can be emulated to suit your specific requirements and setup.

Data Center Software

The Data Center Software provides real-time USB descriptor decoding for data captured with a Beagle USB 12 Protocol Analyzer. The Beagle USB 12 Protocol Analyzer does not include full class-level decoding. A list of supported classes is available here. Most of the popular classes, such as HID (human interface device), mass storage, hub, and audio are supported. For custom class decoding, users can use our Beagle Software API.

Full class-level decoding is supported for data captured by a Beagle USB 480 Protocol Analyzer or a Beagle USB 5000 v2 SuperSpeed Protocol Analyzer.

Controlling Data Center Software with a Remote Terminal

You can also make use of the remote console to control the Data Center Software from an external process. This enables a telnet terminal for other applications or computers to connect to and control the software. The remote terminal takes the same commands as the internal command line interface.

This feature will allow the user to use a script to send each command as you would from within the application. Data Center User Manual section 5.1.5 has more information. In addition, more details can be found in this blog that explains how to automate certain tasks.

Beagle USB 480 Protocol Analyzer

For full class-level decoding, the Beagle USB 480 Protocol Analyzer is recommended. It offers class-decoding, triggers, and filtering with the deepest USB 2.0 HS HW buffer in our tools. In addition, the Beagle USB 480 Protocol Analyzer can non-intrusively monitor Low-, Full-, and High-Speed USB data.

We hope this answers your question. Additional resources that you may find helpful include the following:

For more information, feel free to contact us with your questions, or request a demo that applies to your application.