USB Map

Map USB ports and connected devices

USBMap is a feature of SerialTool that lists basic information about USB host controllers, USB hubs, and connected USB devices.

It also queries information about the devices from the system registry and via USB requests to the devices themselves. The main window of USBMap is divided into two panels: the left panel shows a connection-oriented tree view, which allows you to select any USB device; the right panel displays the USB data structures related to the selected USB device.
These structures include Device, Configuration, Interface, and Endpoint descriptors, and the current configuration of the device.

USBMap is compatible with Windows, macOS, and Linux, and is very useful for viewing which USB devices are connected to the various ports on your PC. It allows distinguishing between Host Controller Interface (USB, Firewire), USB Hub, External USB Hubs, generic devices, and Serial Ports . Regarding serial ports, USBMap also allows you to see which serial port or ports are available for a specific USB converter, which is particularly useful when a single USB-serial device can create multiple serial ports that would otherwise be difficult to identify.

The detailed information that USBMap provides is essential for developers and technicians, allowing them to analyze the specific characteristics of connected USB devices. The level of detail may vary depending on the operating system, but USBMap always ensures a thorough and accurate analysis of devices.

A distinctive feature of USBMap is that this functionality, typically reserved for developers on various operating systems, is integrated into SerialTool without the need to install additional packages or tools, providing direct and simplified access.

The displayed information can be copied directly to the clipboard, and the USB port map can be exported in ASCII format, making it easier to share and document the analysis performed.

Note 1: USBMap displays connected USB devices and not virtual serial ports if they are present.
Note 2: Some features of this utility may be limited in the FREE version of SerialTool. Get the PRO version of SerialTool now!



USBMap - Scan of connected USB ports

Example of USB Serial Converter with multiple serial ports.

Here is an example of a CH 347 USB Serial Converter produced by Nanjing Qinherg Electronics Co. that creates two serial ports on a single USB connection.

Screenshot of USBMap displaying detailed information about a USB device

USBMap - Details of USB Serial Converter with multiple serial ports


[Port12] : USB Composite Device
Type: Serial Port
[Multiple Serial Port 1]Serial Port Number: COM9
[Multiple Serial Port 1]Device Description: USB-HiSpeed-SERIAL-B CH347
[Multiple Serial Port 1]Friendly Name: USB-HiSpeed-SERIAL-B CH347 (COM9)
[Multiple Serial Port 1]Manufacturer: wch.cn
[Multiple Serial Port 1]Location Path: PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(12)#USBMI(2)
[Multiple Serial Port 1]USB Parent: USB\VID_1A86&PID_55DA\0123456789
[Multiple Serial Port 1]Driver Key: {4d36e978-e325-11ce-bfc1-08002be10318}\0011
[Multiple Serial Port 1]Hardware ID: USB\VID_1A86&PID_55DA&REV_0441&MI_02
Type: Serial Port
[Multiple Serial Port 2]Serial Port Number: COM10
[Multiple Serial Port 2]Device Description: USB-HiSpeed-SERIAL-A CH347
[Multiple Serial Port 2]Friendly Name: USB-HiSpeed-SERIAL-A CH347 (COM10)
[Multiple Serial Port 2]Manufacturer: wch.cn
[Multiple Serial Port 2]Location Path: PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(12)#USBMI(0)
[Multiple Serial Port 2]USB Parent: USB\VID_1A86&PID_55DA\0123456789
[Multiple Serial Port 2]Driver Key: {4d36e978-e325-11ce-bfc1-08002be10318}\0012
[Multiple Serial Port 2]Hardware ID: USB\VID_1A86&PID_55DA&REV_0441&MI_00

Is Port User Connectable: yes
Is Port Debug Capable: no
Companion Port Number: 22
Companion Hub Symbolic Link Name: USB#ROOT_HUB30#4&3783c1a5&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
Protocols Supported:
USB 1.1: yes
USB 2.0: yes
USB 3.0: no

---===>Device Information<===---
English product name: "USB Dual_Serial"

ConnectionStatus:
Current Config Value: 0x01
-> Device Bus Speed: High
(is not SuperSpeed or higher capable)
Device Address: 0x29
Open Pipes: 6

===>Device Descriptor<===
bLength: 0x12
bDescriptorType: 0x01
bcdUSB: 0x0200
bDeviceClass: 0xEF
-> This is a Multi-interface Function Code Device
bDeviceSubClass: 0x02
-> This is the Common Class Sub Class
bDeviceProtocol: 0x01
-> This is the Interface Association Descriptor protocol
bMaxPacketSize0: 0x40
= (64) Bytes
idVendor: 0x1A86
= Nanjing Qinherg Electronics Co., Ltd.
idProduct: 0x55DA
bcdDevice: 0x0441
iManufacturer: 0x01
English (United States) "wch.cn"
iProduct: 0x02
English (United States) "USB Dual_Serial"
iSerialNumber: 0x03
English (United States) "0123456789"
bNumConfigurations: 0x01

---===>Open Pipes<===---

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x81
-> Direction: IN - EndpointID: 1
bmAttributes: 0x03
-> Interrupt Transfer Type
wMaxPacketSize: 0x0040
= 1 transactions per microframe, 0x40 max bytes
bInterval: 0x01

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x02
-> Direction: OUT - EndpointID: 2
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x82
-> Direction: IN - EndpointID: 2
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x83
-> Direction: IN - EndpointID: 3
bmAttributes: 0x03
-> Interrupt Transfer Type
wMaxPacketSize: 0x0040
= 1 transactions per microframe, 0x40 max bytes
bInterval: 0x01

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x04
-> Direction: OUT - EndpointID: 4
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x84
-> Direction: IN - EndpointID: 4
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

Structure of Information Provided by Windows

Details of Serial Ports:

The USB port (Port12) is used to manage the device as a USB Composite Device, which means it has multiple interfaces and can manage different communication channels.
Each virtual serial port created by the device has its own designation:

- COM9 with the name "USB-HiSpeed-SERIAL-B CH347"
- COM10 with the name "USB-HiSpeed-SERIAL-A CH347"

Each serial port has:

A Friendly Name that allows you to identify the port in the system.
A Location Path indicating where the device’s connection is physically located.
A Driver Key and Hardware ID, which are unique information for the device and help the operating system correctly identify the type of hardware and required driver.

Connection and Transfer Type:

This device supports USB 1.1 and USB 2.0, but it is not compatible with USB 3.0. This is specified under the "Protocols Supported" section. Each port uses both Bulk endpoints (for large amounts of data) and Interrupt (for faster and more constant signals) for data transfer, enabling efficient transmission of serial data.

Device Descriptors:

The descriptor section provides details about the type of USB device, its function classes (e.g., Communications (CDC Control - Universal Serial Bus device class ) for communication devices), and how the interfaces are organized. The complete configuration description is also displayed, including information such as the maximum power required by the device (200 mA in this case) and the values associated with the various interfaces and endpoints.

Ability to Create Multiple Serial Ports:

This device can create multiple serial ports using a single physical USB connection. This is especially useful when you have a device with multiple serial channels, such as in a multi-control interface or for equipment that requires multiple communication connections.

Utility in USBMap:

With USBMap, you can view precise details for each created port, easily associating each virtual serial port with the physical device providing them. This is particularly useful for distinguishing various converters and serial ports in complex systems. USBMap also allows you to check which port (or ports) is associated with each device and export this information for documentation or diagnostics.

This example demonstrates how a multi-port USB-serial converter can manage multiple connections through a single USB port. With tools like USBMap, you can gain a detailed and in-depth view of the connections, making it easier to monitor, configure, and troubleshoot USB-serial communications. This is a great advantage for developers, technicians, and system integrators working with complex communication devices.