USB Development Tools
Tools and techniques for debugging and other development tasks.
The USB Implementer's Forum offers free diagnostic tools including the compliance test tool USB Command Verifier (USBCV). USBCV is for use only under Windows 2000 and XP with a USB 2.0 host and hubs. There's no need to run the tests under Windows 98 or Windows Me or USB 1.x.
If for some reason you want to run USB-IF's previous testing tool, USBCheck, with USB 1.x and Windows 98, IVOVI has it. IVOVI also has the preliminary point-of-sale driver that Microsoft provided at one time but has abandoned.
A protocol analyzer decodes, filters, and displays USB data. Some analyzers can also generate data on the bus. Some are software only, while others use hardware that connects to a USB or Ethernet port or a general-purpose logic analyzer.
A software-only analyzer resides on a PC and displays USB traffic sent and received by that PC. A software-only analyzer can display host driver information but can't display low-level bus information.
USBPcap is an open-source USB analyzer for Windows.
AGG Software has the Advanced USB Port Monitor.
busTRACE bus and device analysis tool from busTRACE Technologies.
HHD Software has the USB Monitor.
Perisoft's BusHound is an analyzer for USB and other buses. Free version available.
SourceQuest's SourceUSB shows all traffic, including enumeration.
USBTrace from SysNucleus.
USB Analyzer from Eltima.
USBlyzer from usblyzer.com.
A hardware/software analyzer uses a hardware module to monitor traffic on a bus segment. The analyzer can display traffic on the segment, including NAKS, CRC errors, bit-stuff errors, and data0/1 toggles.
Steve Calfee. Kitty USB Analyzer.
Crescent Heart Software. For use with a logic analyzer.
FTS4USB. From Frontline.
FuturePlus Systems. For use with a logic analyzer.
Prodigy Technovations. USB 2.0 Protocol Decode Software for use with Tektronix Windows-based oscilloscopes.
Rabbit House (Japan).
A traffic generator emulates a host and generates USB traffic.
PMTC has the TrafficLab traffic generator.
RPM Systems' Root 2 Test Host.
USBView in the WDK shows the tree of all USB hubs and connected devices and each device's descriptors, with additional support for video devices. From Microsoft. No source code. UVCView is a diagnostic tool for USB video-class and other hardware and is based on USBView.
A C# version of the DDK's USBView utility. Also demonstrates how to get the serial number and other attributes from a USB flash disk. Source code only. From Emmet Gray.
USBDeview. View all installed/connected USB devices on your system. Freeware from Nir Sofer.
SIV (System Information Viewer). From Ray Hinchliffe.
HCList is a utility that finds all of the host controllers in a system and displays a description, the host-controller type (OHCI, UHCI, EHCI), the hardware ID, and compatible ID for each. With Visual C++ source code. From tomb.
MCCI has a free Universal Serial Bus Resource Compiler that translates a plain-text description of a USB device into C data initialization structures to be placed in ROM.
MCCI's USB 3.0 Connection Exerciser simulates cable removal and attachment
Every USB device product must have a unique Vendor ID (VID) and Product ID (PID) pair that helps to identify the device to the host computer. Each value is 32 bits.
USB Vendor IDs and their owners. Unofficial and incomplete. From Vojtech Pavlik.
There are several ways to obtain a VID and PID to use in a device.
Devices that display the USB logo
If your device will undergo compliance testing and display the USB-IF logo, your company must own the Vendor ID. (An exception is companies that are second-sourcing a product developed by another company.) You can obtain a Vendor ID by joining USB-IF or by paying a licensing fee.
Devices that don't require the USB logo
If your device will not display the USB-IF logo, you have other options.
You can buy a Vendor ID from USB-IF for a 1-time administrative fee.
Chips that perform all of their USB communications in hardware can use a VID and PID embedded in the hardware. An example is FTDI's USB device controllers.
For lab use only
If your device won't be distributed to unknown host systems, the only requirement is that the VID/PID pair doesn't match any VID/PID pair in the host's INF files (or equivalent database in non-Windows hosts).
You can use Lakeview Research's VID (0925h) with PIDs from 9000h to 9100h at no charge under these conditions:
1. You use the devices only in your own lab or office.
2. You don't sell, give away, post online, or otherwise distribute source code or executable code containing Lakeview Research's Vendor ID.
3. You don't complain to me if another device uses the same VID/PID pair that your device uses.