How Can I Filter Data to Only Grab the Data that Is Delivered to a Specific Endpoint?

Question from the Customer:

I am using the Beagle USB 12 Protocol Analyzer with Beagle Software API (python) to grab data. My device outputs data very quickly through Endpoint 1. However, I only need the IN data that is output by Endpoint 3, which delivers far less data.

The API example I started with is written very well, but I have not found information about grabbing IN data from a specific Endpoint. My questions:

  • Is there a solution to make this work?
  • As an alternative, is there another way to grab IN data from interrupts, rather than constant polling?

Response from Technical Support:

Thanks for your question! For your setup, hardware filtering would provide the results that you need. The Beagle USB 12 analyzer does not support hardware filtering. However, we have other protocol analyzers than can do the job for you. We will go over the advantages of hardware filtering, how it can be implemented with an API function or with another software tool, and recommend a protocol analyzer to support your goals.

Advantages of Filtering Data Packets with a Hardware Filter

Hardware filters provide the ability to suppress data-less transactions. When possible, the hardware filters discard all the packets that meet the filtering criteria. These filters can save a significant amount of capture memory when used. Filtering is highly recommended when the capture-memory capacity is limited.

Another benefit of using hardware filters is the ability to reduce the amount of traffic between the analysis computer and the Beagle protocol analyzer. This is useful when the analysis computer has a hard time keeping up with the bandwidth requirements of the Beagle protocol analyzer that is being used.

For your requirements, we recommend the Beagle USB 480 Power Protocol Analyzer for your project.

How the Beagle USB 480 Power Protocol Analyzer Works

The Beagle USB 480 Power Protocol Analyzer is a non-intrusive monitor for High-speed, Full-speed, and Low-Speed USB 2.0 (480 Mbps / 12 Mbps / 1.5 Mbps). You can implement real-time USB class-level decoding by using the Beagle USB 480 Power Protocol Analyzer with the Data Center Software. Two capture modes are available, as well as real-time and delayed-download, High-speed USB chirp detection, robust automatic speed detection, advanced triggering, multiple digital inputs and outputs for synchronizing with external devices, and VBUS current and voltage monitoring.

This Beagle 480 analyzer can also detect suspend/resume events and unexpected signals. It provides high-performance, real-time analysis, current and voltage monitoring, plus the option of advanced state-based triggering. These features enable correlating USB data transactions with current and voltage measurements in real time.

You can also call an API function, Enable Hardware Filter (bg_usb2_hw_filter_config, to invoke hardware filtering. For more information, please refer to the chapter API Documentation in the Beagle Protocol Analyzer User Manual. For an overview of using the Data Center Software for capturing and filtering data, watch this video:

There are two versions of the Beagle 480 Power Protocol Analyzer: Standard and Ultimate Edition. Both versions provide the following:

  • Current/Voltage Monitoring – this feature is available only in the Beagle USB 480 Power Protocol Analyzer Standard and Ultimate
  • Real-time graphing of VBUS current and voltage values
  • Interactive and bi-directional correlation of current/voltage values with USB data
  • High-performance HW buffer
  • 256 MB capacity, which can capture volumes of pre-trigger data.
  • Large circular buffer

In addition, the Ultimate Edition of the Beagle USB 480 Power Protocol Analyzer provides:

  • USB 2.0 Advanced Triggering Capabilities
  • Ability to create state-based and flexible trigger conditions based on data patterns, packet types, error types, events, and other criteria
  • Hardware packet filtering
  • Up to eight independent states and six matches per state for USB 2.0 captures
  • Digital inputs and outputs to synchronize with oscilloscopes or logic analyzers

For a quick view of the capabilities of other Total Phase analyzers and devices, you can compare your system requirements to the main features listed in our USB Analyzer Product Guide.

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

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