USB Endpoint Terminal

USB Endpoint Terminal

Notification Center
 
Purchase

Required:
$45

The USB Endpoint plugin was designed with developers of non-standard USB devices in mind and is also an invaluable tool for those looking to reverse engineer USB interfaces. It provides direct, low-level access to USB transactions, making it indispensable when standard USB classes and system-level drivers fall short. Powered by the libusb library, the plugin offers an intuitive, interactive interface for sending and receiving data over a range of USB transfer types, bridging the gap for custom and proprietary USB development scenarios.

Why USB Endpoint?

Control Transfers

Control transfers (EP0) are essential for retrieving USB descriptors, reading string identifiers, and issuing commands for device configuration. Using the built-in form, you can easily set parameters such as request type, value, and index. Combine these parameters with data buffers from the Transmit Pane to run custom control transfers, making descriptor checks or low-level commands a breeze.

Low-Level USB Transfers

With support for control, bulk, interrupt, and isochronous transfers, the USB Endpoint plugin lets you craft precise data packets for your device. This flexibility is crucial when traditional, class-based drivers either do not exist or cannot handle specific commands. You can issue custom instructions over OUT-endpoints and examine the results in real time on IN-endpoints.

Multi-Endpoint Monitoring

In more complex scenarios, you may have multiple endpoints—sometimes across multiple USB interfaces—active at the same time. The USB Endpoint plugin supports concurrent reading from several IN-endpoints, allowing you to track and debug incoming data holistically without juggling multiple tools or contexts.

Windows Driver Support

On Windows, libusb operates only with compatible drivers (e.g., the Microsoft-supplied WINUSB.SYS). Therefore, before using the USB Endpoint plugin, ensure that your USB device is associated with a supported driver. You can follow Microsoft’s official installation guide, or use tools like Zadig to manage driver installation more easily.

Powerful & Beautiful Logging Engine

The Ninja Scroll logging engine is the heart of IO Ninja! It offers many unique and useful features you won't find in other USB endpoint terminals, such as interleaving binary data with informational messages for a clear timeline of events, switching between hex-view and plain-text view of binary data, a regex markup engine for highlighting data based on regular expressions, and many others!

Scriptability

With the Script Pane, you can generate USB packets programmatically, wait for and react to USB events, and automatically reply to incoming data, etc.

For more complex binary packets, you can describe the structure and methods for updating checksums or other auto-calculated fields as a Packet Template, then conveniently fill in the fields in a property grid.

Getting Started

Documentation

See Also

PluginRelevance
HID Terminal
Allows low-level interactions with HID devices.
HID Monitor
Allows capturing low-level communications on any HID device.

Gallery