With the Beagle USB 480 Protocol Analyzer, You Can Easily Create a Custom Class Decoder for a Captured Device

Question from the Customer:

I am integrating a proprietary device that uses a custom class to communicate with the host driver. For this project, I need a class decoder to interpret the packets received by the analyzer – what do you advise? I’m using the Beagle USB 480 Protocol Analyzer.

Response from Technical Support:

Thanks for your question! We have two software tools to help decode a custom class: Beagle Software API for decoding custom class commands and Data Center Software for specifying the descriptors for a captured device.

 Using the USB 480 Protocol Analyzer to capture USB 2.0 bus data

Figure 1: Beagle USB 480 Protocol Analyzer

The Beagle Software API is used for controlling the Beagle analyzer and writing customized programs, such as decoding. The Beagle API supports multiple operating systems and programming languages. Functional program examples are provided, that can be used as is or adapted for your specifications. Using the API you can capture data and define how to decode commands.  Please note, this runs independently of the Data Center Software.  For additional information, please refer to the API Documentation.

The Data Center Software provides a Configuration Management feature that enables specifying the descriptors for a captured device. Please note - this feature does not add support for decoding custom USB classes; it specifies custom configuration descriptors. You can use this Configuration Management to override descriptors that were already seen for a particular device, or provide new descriptors when the enumeration was not captured. This GUI dialog is easy to set up.

Data Center feature - Configuration Management

Figure 2: Data Center Software – USB Configuration Management

Through this GUI dialog, here are some of the features that you can apply:

  • Create your own customized configurations
  • Use or adapt the configurations that are provided with the Data Center software.
  • Save your configurations, which you can apply to any capture that is opened in the Data Center software

Here’s an example of assigning a custom configuration to a device:

  1. In the Configuration Management window (see Figure 2), locate and click the configuration you choose to assign to the device in the Assignable Configs, User Configs, or Configs Provided by Data Center categories.
  2. Click Assign at the bottom right of the window. A dialog will open for selecting a bConfigurationValue for assignment.
  3. Select the desired bConfigurationValue and click OK. The custom configuration will be assigned.

Until this configuration is removed, the Data Center will class-decode all transfers against the device as if the custom configuration actually occupied the device's bConfigurationValue.

For more information, please refer to the Configuration Management section of the Data Center Software User Manual.

Additional resources that you may find helpful include the following:

We hope this answers your questions. If you have other questions about our protocol analyzers or other Total Phase products, feel free to email us at sales@totalphase.com, or if you already own one of our devices and have a technical question, please submit a request for technical support.

Leave a Reply