We try to address common misunderstanding that USB Audio Class (UAC) is the same as USB mass storage or printer, hence any generic printer USB cables suffice for audio but in reality the choice of USB audio cable matters.
Key Points Summarized
If you don’t have the time to read the whole article, it is summarized below:
- USB data transmission is analog
- Timing is very critical in USB Audio data transmission
USB
Universal Serial Bus (USB) is an industry standard for data exchange and power delivery. The initial draft of USB specification was developed by Intel’s team led by Ajay Bhatt in 1994. The team includes engineers in Intel Penang, Malaysia who designed the USB 1.0 microcontroller in 1995.
Other companies involved include Microsoft, IBM, NEC, Nortel, Compaq and DEC. Later, they formed a working group called the USB Implementers Forum (USB-IF) to develop the USB specification, which was first introduced in 1996. Even though Intel held the patents for the technology, they transferred the ownership to USB-IF, making it an open standard. Since then, it has evolved to USB4.
Note: References made to [1], [2], and [3].
USB Audio devices relevant in the scope of this discussion are Class 2.0 even though Class 4.0 is defined but is not backward compatible. We will explain 4-wire USB connection only and will not explain USB 3.x.
When a USB 1.1 DAC is connected, it supports PCM up to 96k 24-bit. When a USB 2.0 DAC is used, i.e. today’s mainstream audio DACs, the upper limit of the bandwidth has not been reached yet even for DAC like Holo May which supports PCM up to 1536k and DSD up to 16x / 1024.
We recommend you read USB Made Simple [4] and USB in a Nutshell [5] before continuing to read this page. We only extract and summarize the important information to differentiate data transfer and audio endpoint. We try not to copy the sources verbatim. You can also download and read in full USB 2.0 Specification [6] and USB Audio Devices Rev 2.0 [7].
USB Connection
USB 1.0/1.1 and 2.0 have 4 wires; 2 wires for twisted pair carrying differential data signal (D+ and D-) with 90 Ω ± 15% characteristic impedance, 1 wire for GND (ground), and 1 wire for VBUS (5V). USB A plug (upstream) goes to the host (computer) and USB B plug goes to the device (downstream) such as a printer. A device such as mass storage flash drive plugs directly into the host’s USB A port.
In audio, USB A plug goes to the streamer and USB B plug goes to the DAC.
Even though the maximum length of USB 2.0 cable allowed is 5m, it should be minimized for audio purpose.
USB Signals
USB data transmission is analog. The differential data signal voltage level is ± 3.3V for USB 1.0 / 1.1 and ± 0.4V for USB 2.0. An example of USB FS transmission is shown below [9]:
- 0 bit is transmitted by toggling the data lines from J to K or vice versa.
- 1 bit is transmitted by leaving the data lines as-is.
USB Protocol
The USB protocol several layers of abstraction is summarized below [2]:
- Physical layer – differential signaling scheme to transmit data over a pair of wires
- Data link layer – packet-based protocol to send data between devices
- Transport layer – four different data transfer types between devices: Control, Interrupt, Bulk, and Isochronous, each one is optimized for different types of data and devices
- Application layer – device class specifications to define how different types of devices should behave and communicate
Packet
Packet is the smallest element of data transmission. A packet starts with a SYNC pattern followed by DATA BYTES (least significant bit first) and ends with End of Packet (EOP) signal. The first byte in every packet is the Packet Identifier (PID) byte, 4 bits long followed by its complement. There are 4 PID types (Token, Data, Handshake, Special) and 17 PID values defined [4]. USB 2.0 HS added 2 PID values and 6 packet types.
Token packets are sent by the host only and is used for setup, identifying targeted endpoint, and specifying the purpose of transaction. It uses 5-bit Cyclic Redundancy Code (CRC). With 7 bits address, up to 127 devices can be supported while each device may have up to 16 possible endpoints (4 bits). Endpoint zero of each device (the default pipe) receives device controls and status request during enumeration and also when the device is operational.
Data packets use 16-bit CRC.
Handshake packet is for checking status of transaction after data packet.
A successful transaction consists of Token, Data, and Handshake packets in sequence. Data transfers through pipes which are the logical connections between the host and the endpoints. Stream pipes support bulk, isochronous and interrupt transfer types while message pipes support control transfer.
Start of Frame (SoF) packet is used to synchronize isochronous transfer every 1 ms for LS/FS and 125 µs ± 0.0625 µs for HS.
Transfer Types
- Control Transfer – initiated by the host to setup a USB device (enumeration), setup to initiate data transfer, and status stage
- Bulk Transfer – for time insensitive, low priority, no bandwidth guarantee, bulk data transfer with error-free delivery (including retransmission after errors) such as printing and file copy
- Interrupt Transfer – device-generated data transfers by Human Interface Device (HID) such as keyboard, mouse, game controller, or touchscreen. Data is sent only when a key is pressed or a mouse is moved but the host needs to respond quickly
- Isochronous Transfer – time-sensitive, guaranteed bandwidth, without CRC, no guarantee for error-free delivery. Used for audio and video endpoints
It is important to note that for UAC Isochronous Transfer, CRC data is available in audio data packets. USB DAC receiver knows if the data has errors and decides what to do with it: mute, reduce its volume, or play the bad data as-is. However, there is no data transmission retry capability.
USB Enumeration
When a device is first connected, the host needs to recognize the USB device. This includes device type, data transfer speed, device descriptors, configuration descriptor, interface descriptor, and load drivers [10]. Examples of device descriptor are shown below [11].
Base Class | Descriptor Usage | Description |
---|---|---|
00h | Device | Use class information in the Interface Descriptors |
01h | Interface | Audio |
02h | Both | Communications and CDC Control |
03h | Interface | HID (Human Interface Device) |
05h | Interface | Physical |
06h | Interface | Image |
07h | Interface | Printer |
08h | Interface | Mass Storage |
09h | Device | Hub |
0Eh | Interface | Video |
10H | Interface | Audio/Video Devices |
Enumerating USB Mass Storage
When a USB Mass Storage Device is connected to Windows PC, USB Tree Viewer [12] displays the following information.
The following is the enumeration text. Please note that the device requests 98 mA of 5V for its operation.
USB Mass Storage Enumeration
=========================== USB Port2 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 1-2
Properties : 0x01
IsUserConnectable : yes
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x02 (Port 2)
CompanionIndex : 0
CompanionHubSymLnk : USB#ROOT_HUB30#4&1c6cf04&1&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
CompanionPortNumber : 0x13 (Port 19)
-> CompanionPortChain : 1-19
========================== Summary =========================
Vendor ID : 0x3538 (ScreenBeam Inc.)
Product ID : 0x0042
USB Version : 2.0
Port maximum Speed : High-Speed (Companion Port 1-19 is doing the SuperSpeed)
Device maximum Speed : High-Speed
Device Connection Speed : High-Speed
Self powered : no
Demanded Current : 98 mA
Used Endpoints : 4
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB Mass Storage Device
Device Path : \?\USB#VID_3538&PID_0042#00000000000041#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Kernel Name : \Device\USBPDO-8
Device ID : USB\VID_3538&PID_0042\00000000000041
Hardware IDs : USB\VID_3538&PID_0042&REV_0100 USB\VID_3538&PID_0042
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0007 (GUID_DEVCLASS_USB)
Driver : \SystemRoot\System32\drivers\USBSTOR.SYS (Version: 10.0.19041.4355 Date: 2024-05-15 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\usbstor.inf
Legacy BusType : PNPBus
Class : USB
Class GUID : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service : USBSTOR
Enumerator : USB
Location Info : Port_#0002.Hub_#0001
Address : 2
Location IDs : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(2), ACPI(SB)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HSP2)
Container ID : {34ded6ac-94f0-5e92-bb43-6d9122f1920b}
Manufacturer Info : Compatible USB storage device
Capabilities : 0x94 (Removable, UniqueID, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Address : 2
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3, wake from D0)
+++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\353800420100
osvc : REG_BINARY 00 00
---------------- Connection Information ---------------
Connection Index : 0x02 (Port 2)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x0A (10)
Is Hub : 0x00 (no)
Device Bus Speed : 0x02 (High-Speed)
Number of open Pipes : 0x03 (3 pipes to data endpoints)
Pipe[0] : EndpointID=1 Direction=OUT ScheduleOffset=0 Type=Bulk wMaxPacketSize=0x200 bInterval=1
Pipe[1] : EndpointID=2 Direction=IN ScheduleOffset=0 Type=Bulk wMaxPacketSize=0x200 bInterval=1
Pipe[2] : EndpointID=3 Direction=IN ScheduleOffset=0 Type=Interrupt wMaxPacketSize=0x40 bInterval=8 -> 718 Bits/ms = 89750 Bytes/s
--------------- Connection Information V2 -------------
Connection Index : 0x02 (2)
Length : 0x10 (16 bytes)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0) -> but Companion Port 1-19 does
ReservedMBZ : 0x00
Flags : 0x00
DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
ReservedMBZ : 0x00
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.0)
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x3538 (ScreenBeam Inc.)
idProduct : 0x0042
bcdDevice : 0x0100
iManufacturer : 0x00 (No String Descriptor)
iProduct : 0x02 (String Descriptor 2)
Language 0x0409 : “USB Mass Storage Device”
iSerialNumber : 0x03 (String Descriptor 3)
Language 0x0409 : “00000000000041”
bNumConfigurations : 0x01 (1 Configuration)
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0027 (39 bytes)
bNumInterfaces : 0x01 (1 Interface)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0x80
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x00 (no)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x31 (98 mA)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x03 (3 Endpoints)
bInterfaceClass : 0x08 (Mass Storage)
bInterfaceSubClass : 0x06 (SCSI transparent command set)
bInterfaceProtocol : 0x50 (Bulk-Only Transport)
iInterface : 0x00 (No String Descriptor)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x01 (at most 1 NAK each 1 microframe -> 0.125 ms)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x82 (Direction=IN EndpointID=2)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0200 (max 512 bytes)
bInterval : 0x01 (at most 1 NAK each 1 microframe -> 0.125 ms)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x83 (Direction=IN EndpointID=3)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0040
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x40 (64 bytes per packet)
bInterval : 0x08 (128 microframes -> 16 ms)
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English – United States)
—— String Descriptor 2 ——
bLength : 0x30 (48 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “USB Mass Storage Device”
—— String Descriptor 3 ——
bLength : 0x1E (30 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “00000000000041”
+++++++++++++++++ Device Information ++++++++++++++++++
Friendly Name : Generic USB Flash Disk USB Device
Device Description : Disk drive
Device Path : \?\USBSTOR#Disk&Ven_Generic&Prod_USB_Flash_Disk&Rev_0.00#00000000000041&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b} (GUID_DEVINTERFACE_DISK)
Kernel Name : \Device\0000010b
Win32 Name : \.\PhysicalDrive1
Kernel Name : \Device\Harddisk1\DR2
Device ID : USBSTOR\DISK&VEN_GENERIC&PROD_USB_FLASH_DISK&REV_0.00\00000000000041&0
Hardware IDs : USBSTOR\DiskGeneric_USB_Flash_Disk__0.00 USBSTOR\DiskGeneric_USB_Flash_Disk__ USBSTOR\DiskGeneric_ USBSTOR\Generic_USB_Flash_Disk__0 Generic_USB_Flash_Disk__0 USBSTOR\GenDisk GenDisk
Driver KeyName : {4d36e967-e325-11ce-bfc1-08002be10318}\0005 (GUID_DEVCLASS_DISKDRIVE)
Driver : System32\drivers\disk.sys (Version: 10.0.19041.4597 Date: 2024-07-10 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\disk.inf
Legacy BusType : Internal
Class : DiskDrive
Class GUID : {4d36e967-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_DISKDRIVE)
Service : disk
Enumerator : USBSTOR
Location Info : –
Address : 2
Manufacturer Info : (Standard disk drives)
Capabilities : 0x10 (UniqueID)
Status : 0x0180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3, wake from D0)
Size : 1 GB / 1000 MiB / 1,048,576,000 Bytes
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : Volume
Device Path : \?\STORAGE#Volume#_??_USBSTOR#Disk&Ven_Generic&Prod_USB_Flash_Disk&Rev_0.00#00000000000041&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b} (GUID_DEVINTERFACE_VOLUME)
Kernel Name : \Device\HarddiskVolume6
Device ID : STORAGE\VOLUME_??_USBSTOR#DISK&VEN_GENERIC&PROD_USB_FLASH_DISK&REV_0.00#00000000000041&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}
Hardware IDs : STORAGE\Volume
Driver KeyName : {71a27cdd-812a-11d0-bec7-08002be2092f}\0013 (GUID_DEVCLASS_VOLUME)
Driver : System32\drivers\volume.sys (Version: 10.0.19041.1 Date: 2019-12-07 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\volume.inf
Legacy BusType : Internal
Class : Volume
Class GUID : {71a27cdd-812a-11d0-bec7-08002be2092f} (GUID_DEVCLASS_VOLUME)
Service : volume
Enumerator : STORAGE
Location Info : –
Address : 6
Manufacturer Info : Microsoft
Capabilities : 0xB0 (UniqueID, SilentInstall, SurpriseRemovalOK)
Status : 0x4180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER, DN_NO_SHOW_IN_DM)
Problem Code : 0
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3)
Volume Name : \?\Volume{57e907e5-c336-11eb-ba88-0c96e6c9c76e}\
Mountpoint : D:\
Volume Label : AA AUDIO
Volume Serial : CAD2-A343
File System : FAT32
Size : 1 GB / 996 MiB / 1,044,381,696 Bytes
Available : 694 MB / 661 MiB / 694,108,160 Bytes
Enumerating Audio DAC
The following show the screenshots of USB Tree Viewer when the following audio devices are connected to Windows PC one at a time:
- AudioQuest DragonFly DAC
- SMSL M500 DAC
- Marantz SA-10 DAC
- Holo May KTE DAC
For each audio DAC, we show USB Device Tree Viewer screenshot and its enumeration text.
AudioQuest DragonFly DAC
AudioQuest DragonFly DAC Enumeration Text
=========================== USB Port2 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 1-2
Properties : 0x01
IsUserConnectable : yes
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x02 (Port 2)
CompanionIndex : 0
CompanionHubSymLnk : USB#ROOT_HUB30#4&1c6cf04&1&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
CompanionPortNumber : 0x13 (Port 19)
-> CompanionPortChain : 1-19
========================== Summary =========================
Vendor ID : 0x21B4 (Wavelength Audio, Ltd.)
Product ID : 0x0081
USB Version : 1.0
Port maximum Speed : High-Speed (Companion Port 1-19 is doing the SuperSpeed)
Device maximum Speed : Full-Speed
Device Connection Speed : Full-Speed
Self powered : no
Demanded Current : 200 mA
Used Endpoints : 1
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB Composite Device
Device Path : \?\USB#VID_21B4&PID_0081#5&1aab8f7b&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Kernel Name : \Device\USBPDO-7
Device ID : USB\VID_21B4&PID_0081\5&1AAB8F7B&0&2
Hardware IDs : USB\VID_21B4&PID_0081&REV_010< USB\VID_21B4&PID_0081
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0029 (GUID_DEVCLASS_USB)
Driver : \SystemRoot\System32\drivers\usbccgp.sys (Version: 10.0.19041.4474 Date: 2024-06-13 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\usb.inf
Legacy BusType : PNPBus
Class : USB
Class GUID : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service : usbccgp
Enumerator : USB
Location Info : Port_#0002.Hub_#0001
Address : 2
Location IDs : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(2), ACPI(SB)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HSP2)
Container ID : {bc0b1c67-89dd-11ef-8cfe-0c96e6c9c76e}
Manufacturer Info : (Standard USB Host Controller)
Capabilities : 0x84 (Removable, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Address : 2
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3, wake from D0)
+++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\21B40081010C
NewInterfaceUsage : REG_DWORD 00000000 (0)
---------------- Connection Information ---------------
Connection Index : 0x02 (Port 2)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x07 (7)
Is Hub : 0x00 (no)
Device Bus Speed : 0x01 (Full-Speed)
Number of open Pipes : 0x00 (0 pipes to data endpoints)
--------------- Connection Information V2 -------------
Connection Index : 0x02 (2)
Length : 0x10 (16 bytes)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0) -> but Companion Port 1-19 does
ReservedMBZ : 0x00
Flags : 0x00
DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
ReservedMBZ : 0x00
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x100 (USB Version 1.0)
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x08 (8 bytes)
idVendor : 0x21B4 (Wavelength Audio, Ltd.)
idProduct : 0x0081
bcdDevice : 0x010C
iManufacturer : 0x01 (String Descriptor 1)
Language 0x0409 : “AudioQuest inc.”
iProduct : 0x02 (String Descriptor 2)
Language 0x0409 : “AudioQuest DragonFly”
iSerialNumber : 0x03 (String Descriptor 3)
!ERROR String descriptor not found
bNumConfigurations : 0x01 (1 Configuration)
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0083 (131 bytes)
bNumInterfaces : 0x02 (2 Interfaces)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0x80
D7: Bus Powered : 0x01 (yes)
D6: Self Powered : 0x00 (no)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x64 (200 mA)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x00
iInterface : 0x00 (No String Descriptor)
------ Audio Control Interface Header Descriptor ------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header)
bcdADC : 0x0100
wTotalLength : 0x002B (43 bytes)
bInCollection : 0x01
baInterfaceNr[1] : 0x01
------- Audio Control Input Terminal Descriptor -------
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal)
bTerminalID : 0x05
wTerminalType : 0x0101 (USB Streaming)
bAssocTerminal : 0x00
bNrChannels : 0x02 (2 channels)
wChannelConfig : 0x0003 (L, R)
iChannelNames : 0x00 (No String Descriptor)
iTerminal : 0x00 (No String Descriptor)
-------- Audio Control Feature Unit Descriptor --------
bLength : 0x0D (13 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit)
bUnitID : 0x07 (7)
bSourceID : 0x05 (5)
bControlSize : 0x02 (2 bytes per control)
bmaControls[0] : 0x01, 0x00
D0: Mute : 1
D1: Volume : 0
D2: Bass : 0
D3: Mid : 0
D4: Treble : 0
D5: Graphic Equalizer : 0
D6: Automatic Gain : 0
D7: Delay : 0
D8: Bass Boost : 0
D9: Loudness : 0
D10: Reserved : 0
D11: Reserved : 0
D12: Reserved : 0
D13: Reserved : 0
D14: Reserved : 0
D15: Reserved : 0
bmaControls[1] : 0x02, 0x00
D0: Mute : 0
D1: Volume : 1
D2: Bass : 0
D3: Mid : 0
D4: Treble : 0
D5: Graphic Equalizer : 0
D6: Automatic Gain : 0
D7: Delay : 0
D8: Bass Boost : 0
D9: Loudness : 0
D10: Reserved : 0
D11: Reserved : 0
D12: Reserved : 0
D13: Reserved : 0
D14: Reserved : 0
D15: Reserved : 0
bmaControls[2] : 0x02, 0x00
D0: Mute : 0
D1: Volume : 1
D2: Bass : 0
D3: Mid : 0
D4: Treble : 0
D5: Graphic Equalizer : 0
D6: Automatic Gain : 0
D7: Delay : 0
D8: Bass Boost : 0
D9: Loudness : 0
D10: Reserved : 0
D11: Reserved : 0
D12: Reserved : 0
D13: Reserved : 0
D14: Reserved : 0
D15: Reserved : 0
iFeature : 0x00 (No String Descriptor)
------- Audio Control Output Terminal Descriptor ------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal)
bTerminalID : 0x08
wTerminalType : 0x0301 (Speaker)
bAssocTerminal : 0x00 (0)
bSourceID : 0x07 (7)
iTerminal : 0x00 (No String Descriptor)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x00
iInterface : 0x00 (No String Descriptor)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x00
iInterface : 0x00 (No String Descriptor)
-------- Audio Streaming Interface Descriptor ---------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS_GENERAL)
bTerminalLink : 0x05 (Terminal ID 5)
bDelay : 0x01 (1 frame)
wFormatTag : 0x0001 (PCM)
------- Audio Streaming Format Type Descriptor --------
bLength : 0x14 (20 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bNrChannels : 0x02 (2 channels)
bSubframeSize : 0x03 (3 bytes per subframe)
bBitResolution : 0x18 (24 bits per sample)
bSamFreqType : 0x04 (supports 4 sample frequencies)
tSamFreq[1] : 0x0AC44 (44100 Hz)
tSamFreq[2] : 0x0BB80 (48000 Hz)
tSamFreq[3] : 0x15888 (88200 Hz)
tSamFreq[4] : 0x17700 (96000 Hz)
----------------- Endpoint Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x024C (588 bytes)
bInterval : 0x01 (1 ms)
bRefresh : 0x00
bSynchAddress : 0x83 (Direction=IN EndpointID=3)
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x01
D0 : Sampling Freq : 0x01 (supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0000
----------------- Endpoint Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x83 (Direction=IN EndpointID=3)
bmAttributes : 0x01 (TransferType=Isochronous SyncType=None EndpointType=Data)
wMaxPacketSize : 0x0003 (3 bytes)
bInterval : 0x01 (1 ms)
bRefresh : 0x05 (32 ms)
bSynchAddress : 0x00
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English – United States)
—— String Descriptor 1 ——
bLength : 0x20 (32 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “AudioQuest inc.”
—— String Descriptor 2 ——
bLength : 0x2A (42 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “AudioQuest DragonFly”
+++++++++++++++++ Device Information ++++++++++++++++++
Friendly Name : AudioQuest DragonFly
Device Description : USB Audio Device
Device Path 1 : \?\USB#VID_21B4&PID_0081&MI_00#6&2bda1660&3&0000#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\global (AM_KSCATEGORY_AUDIO)
Device Path 2 : \?\USB#VID_21B4&PID_0081&MI_00#6&2bda1660&3&0000#{65e8773e-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_RENDER)
Kernel Name : \Device\000000e5
Device ID : USB\VID_21B4&PID_0081&MI_00\6&2BDA1660&3&0000
Hardware IDs : USB\VID_21B4&PID_0081&REV_010<&MI_00 USB\VID_21B4&PID_0081&MI_00
Driver KeyName : {4d36e96c-e325-11ce-bfc1-08002be10318}\0004 (GUID_DEVCLASS_MEDIA)
Driver : \SystemRoot\system32\drivers\usbaudio.sys (Version: 10.0.19041.4355 Date: 2024-05-15 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\wdma_usb.inf
Legacy BusType : PNPBus
Class : MEDIA
Class GUID : {4d36e96c-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_MEDIA)
Service : usbaudio
Enumerator : USB
Location Info : 0000.0014.0000.002.000.000.000.000.000
Address : 2
Manufacturer Info : (Generic USB Audio)
Capabilities : 0xA0 (SilentInstall, SurpriseRemovalOK)
Status : 0x0180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3, wake from D0)
+++++++++++++++++ Device Information ++++++++++++++++++
Friendly Name : Speakers (AudioQuest DragonFly)
Device Description : Audio Endpoint
Device Path : \?\SWD#MMDEVAPI#{0.0.0.00000000}.{c554983f-ca65-432a-b706-65acc0b1070e}#{e6327cad-dcec-4949-ae8a-991e976a79d2} (DEVINTERFACE_AUDIO_RENDER)
Kernel Name : \Device\000000e7
Device ID : SWD\MMDEVAPI{0.0.0.00000000}.{C554983F-CA65-432A-B706-65ACC0B1070E}
Hardware IDs : MMDEVAPI\AudioEndpoints
Driver KeyName : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e}\0007 (AUDIOENDPOINT_CLASS_UUID)
Driver Inf : C:\Windows\inf\audioendpoint.inf
Legacy BusType : PNPBus
Class : AudioEndpoint
Class GUID : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e} (AUDIOENDPOINT_CLASS_UUID)
Enumerator : SWD
Location Info : –
Address : 4294967295 (0xFFFFFFFF)
Manufacturer Info : Microsoft
Capabilities : 0xD0 (UniqueID, RawDeviceOK, SurpriseRemovalOK)
Status : 0x0180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3)
SMSL M500 DAC
SMSL M500 DAC Enumeration Text
=========================== USB Port2 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 1-2
Properties : 0x01
IsUserConnectable : yes
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x02 (Port 2)
CompanionIndex : 0
CompanionHubSymLnk : USB#ROOT_HUB30#4&1c6cf04&1&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
CompanionPortNumber : 0x13 (Port 19)
-> CompanionPortChain : 1-19
========================== Summary =========================
Vendor ID : 0x152A (Thesycon Systemsoftware & Consulting GmbH)
Product ID : 0x85DD
USB Version : 2.0
Port maximum Speed : High-Speed (Companion Port 1-19 is doing the SuperSpeed)
Device maximum Speed : High-Speed
Device Connection Speed : High-Speed
Self powered : yes
Demanded Current : 0 mA
Used Endpoints : 2
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB Composite Device
Device Path : \?\USB#VID_152A&PID_85DD#5&1aab8f7b&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Kernel Name : \Device\USBPDO-7
Device ID : USB\VID_152A&PID_85DD\5&1AAB8F7B&0&2
Hardware IDs : USB\VID_152A&PID_85DD&REV_0206 USB\VID_152A&PID_85DD
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0015 (GUID_DEVCLASS_USB)
Driver : \SystemRoot\System32\drivers\usbccgp.sys (Version: 10.0.19041.4474 Date: 2024-06-13 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\usb.inf
Legacy BusType : PNPBus
Class : USB
Class GUID : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service : usbccgp
Enumerator : USB
Location Info : Port_#0002.Hub_#0001
Address : 2
Location IDs : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(2), ACPI(SB)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HSP2)
Container ID : {b2568ea7-a20c-11ef-8d49-0c96e6c9c76e}
Manufacturer Info : (Standard USB Host Controller)
Capabilities : 0x84 (Removable, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Address : 2
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3, wake from D0)
+++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\152A85DD0206
osvc : REG_BINARY 00 00
---------------- Connection Information ---------------
Connection Index : 0x02 (Port 2)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x09 (9)
Is Hub : 0x00 (no)
Device Bus Speed : 0x02 (High-Speed)
Number of open Pipes : 0x01 (1 pipe to data endpoints)
Pipe[0] : EndpointID=3 Direction=IN ScheduleOffset=0 Type=Interrupt wMaxPacketSize=0x40 bInterval=8 -> 718 Bits/ms = 89750 Bytes/s
--------------- Connection Information V2 -------------
Connection Index : 0x02 (2)
Length : 0x10 (16 bytes)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0) -> but Companion Port 1-19 does
ReservedMBZ : 0x00
Flags : 0x00
DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
ReservedMBZ : 0x00
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.0)
bDeviceClass : 0xEF (Miscellaneous)
bDeviceSubClass : 0x02
bDeviceProtocol : 0x01 (IAD – Interface Association Descriptor)
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x152A (Thesycon Systemsoftware & Consulting GmbH)
idProduct : 0x85DD
bcdDevice : 0x0206
iManufacturer : 0x01 (String Descriptor 1)
Language 0x0409 : “SMSL”
iProduct : 0x03 (String Descriptor 3)
Language 0x0409 : “SMSL USB AUDIO”
iSerialNumber : 0x02 (String Descriptor 2)
!ERROR String descriptor not found
bNumConfigurations : 0x02 (2 Configurations)
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0123 (291 bytes)
bNumInterfaces : 0x04 (4 Interfaces)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x00 (0 mA)
------------------- IAD Descriptor --------------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B (Interface Association Descriptor)
bFirstInterface : 0x00 (Interface 0)
bInterfaceCount : 0x02 (2 Interfaces)
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x00 (undefined)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x00 (No String Descriptor)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x03 (String Descriptor 3)
Language 0x0409 : “SMSL USB AUDIO”
---- Audio Control Interface Header Descriptor 2.0 ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x08 (I/O box)
wTotalLength : 0x0036 (54 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
--- Audio Control Clock Source Unit Descriptor 2.0 ----
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x29
bmAttributes : 0x03
D1..0: Clock Type : 0x03
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x07
D1..0: Clock Frequency : 0x03 (host programmable)
D3..2: Clock Validity : 0x01 (read only)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x09 (String Descriptor 9)
Language 0x0409 : “SMSL Internal Clock”
--- Audio Control Clock Selector Unit Descriptor 2.0 --
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0B (Clock Selector 2.0)
bClockID : 0x28 (40)
bNrInPins : 0x01 (1 Input Pin)
baCSourceID[1] : 0x29 (41)
bmControls : 0x03
D1..0: Clock Selector : 0x03 (host programmable)
D7..2: Reserved : 0x00
iClockSelector : 0x08 (String Descriptor 8)
Language 0x0409 : “SMSL Clock Selector”
----- Audio Control Input Terminal Descriptor 2.0 -----
bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x02 (2)
wTerminalType : 0x0101 (USB Streaming)
bAssocTerminal : 0x00
bCSourceID : 0x28 (40)
bNrChannels : 0x02 (2 Channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “Analogue 1”
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x06 (String Descriptor 6)
Language 0x0409 : “SMSL USB AUDIO “
----- Audio Control Output Terminal Descriptor 2.0 ----
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x14 (20)
wTerminalType : 0x0301 (Speaker)
bAssocTerminal : 0x00 (0)
bSourceID : 0x02 (2)
bCSourceID : 0x28 (40)
iTerminal : 0x00 (No String Descriptor)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SMSL USB AUDIO “
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SMSL USB AUDIO “
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “Analogue 1”
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x02
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SMSL USB AUDIO “
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “Analogue 1”
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x18 (24 bits)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x03
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SMSL USB AUDIO “
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x80000000 (TYPE_I_RAW_DATA)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “Analogue 1”
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02 (Interface 2)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0xFE (Application Specific)
bInterfaceSubClass : 0x01 (Device Firmware Upgrade)
bInterfaceProtocol : 0x01 (Runtime)
iInterface : 0x0A (String Descriptor 10)
Language 0x0409 : “SMSL DFU”
----- Device Firmware Update Functional Descriptor ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (DFU Functional Descriptor)
bmAttributes : 0x07
Bit 7..4: reserved : 0x00
Bit 3: WillDetach : 0x00
Bit 2: ManifestTolerant : 0x01
Bit 1: CanUpload : 0x01
Bit 0: CanDownload : 0x01
wDetachTimeOut : 0x00FA (250 ms)
wTransferSize : 0x0040 (max 64 bytes)
bcdDFUVersion : 0x0110 (Version 1.10)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x03 (Interface 3)
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x03 (HID – Human Interface Device)
bInterfaceSubClass : 0x00 (None)
bInterfaceProtocol : 0x00 (None)
iInterface : 0x0E (String Descriptor 14)
Language 0x0409 : “SMSL USB AUDIO (MQA HID)”
------------------- HID Descriptor --------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (HID Descriptor)
bcdHID : 0x0110 (HID Version 1.10)
bCountryCode : 0x00 (00 = not localized)
bNumDescriptors : 0x01
Descriptor 1:
bDescriptorType : 0x22 (Class=Report)
wDescriptorLength : 0x0015 (21 bytes)
Error reading descriptor : ERROR_GEN_FAILURE (due to a obscure limitation of the Win32 USB API, see F1 Help)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x83 (Direction=IN EndpointID=3)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0040
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x40 (64 bytes per packet)
bInterval : 0x08 (128 microframes -> 16 ms)
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0123 (291 bytes)
bNumInterfaces : 0x04 (4 Interfaces)
bConfigurationValue : 0x01 (Configuration 1) !ERROR: Configuration 1 is defined more than once
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x00 (0 mA)
------------------- IAD Descriptor --------------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B (Interface Association Descriptor)
bFirstInterface : 0x00 (Interface 0)
bInterfaceCount : 0x02 (2 Interfaces)
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x00 (undefined)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x00 (No String Descriptor)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x03 (String Descriptor 3)
Language 0x0409 : “SMSL USB AUDIO”
---- Audio Control Interface Header Descriptor 2.0 ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x08 (I/O box)
wTotalLength : 0x0036 (54 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
--- Audio Control Clock Source Unit Descriptor 2.0 ----
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x29
bmAttributes : 0x03
D1..0: Clock Type : 0x03
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x07
D1..0: Clock Frequency : 0x03 (host programmable)
D3..2: Clock Validity : 0x01 (read only)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x09 (String Descriptor 9)
Language 0x0409 : “SMSL Internal Clock”
--- Audio Control Clock Selector Unit Descriptor 2.0 --
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0B (Clock Selector 2.0)
bClockID : 0x28 (40)
bNrInPins : 0x01 (1 Input Pin)
baCSourceID[1] : 0x29 (41)
bmControls : 0x03
D1..0: Clock Selector : 0x03 (host programmable)
D7..2: Reserved : 0x00
iClockSelector : 0x08 (String Descriptor 8)
Language 0x0409 : “SMSL Clock Selector”
----- Audio Control Input Terminal Descriptor 2.0 -----
bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x02 (2)
wTerminalType : 0x0101 (USB Streaming)
bAssocTerminal : 0x00
bCSourceID : 0x28 (40)
bNrChannels : 0x02 (2 Channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “Analogue 1”
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x06 (String Descriptor 6)
Language 0x0409 : “SMSL USB AUDIO “
----- Audio Control Output Terminal Descriptor 2.0 ----
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x14 (20)
wTerminalType : 0x0301 (Speaker)
bAssocTerminal : 0x00 (0)
bSourceID : 0x02 (2)
bCSourceID : 0x28 (40)
iTerminal : 0x00 (No String Descriptor)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SMSL USB AUDIO “
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SMSL USB AUDIO “
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “Analogue 1”
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x02
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SMSL USB AUDIO “
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “Analogue 1”
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x18 (24 bits)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x03
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SMSL USB AUDIO “
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x80000000 (TYPE_I_RAW_DATA)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “Analogue 1”
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02 (Interface 2)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0xFE (Application Specific)
bInterfaceSubClass : 0x01 (Device Firmware Upgrade)
bInterfaceProtocol : 0x01 (Runtime)
iInterface : 0x0A (String Descriptor 10)
Language 0x0409 : “SMSL DFU”
----- Device Firmware Update Functional Descriptor ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (DFU Functional Descriptor)
bmAttributes : 0x07
Bit 7..4: reserved : 0x00
Bit 3: WillDetach : 0x00
Bit 2: ManifestTolerant : 0x01
Bit 1: CanUpload : 0x01
Bit 0: CanDownload : 0x01
wDetachTimeOut : 0x00FA (250 ms)
wTransferSize : 0x0040 (max 64 bytes)
bcdDFUVersion : 0x0110 (Version 1.10)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x03 (Interface 3)
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x03 (HID – Human Interface Device)
bInterfaceSubClass : 0x00 (None)
bInterfaceProtocol : 0x00 (None)
iInterface : 0x0E (String Descriptor 14)
Language 0x0409 : “SMSL USB AUDIO (MQA HID)”
------------------- HID Descriptor --------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (HID Descriptor)
bcdHID : 0x0110 (HID Version 1.10)
bCountryCode : 0x00 (00 = not localized)
bNumDescriptors : 0x01
Descriptor 1:
bDescriptorType : 0x22 (Class=Report)
wDescriptorLength : 0x0015 (21 bytes)
Error reading descriptor : ERROR_GEN_FAILURE (due to a obscure limitation of the Win32 USB API, see F1 Help)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x83 (Direction=IN EndpointID=3)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0040
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x40 (64 bytes per packet)
bInterval : 0x08 (128 microframes -> 16 ms)
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English – United States)
—— String Descriptor 1 ——
bLength : 0x0A (10 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “SMSL”
—— String Descriptor 3 ——
bLength : 0x1E (30 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “SMSL USB AUDIO”
—— String Descriptor 4 ——
bLength : 0x20 (32 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “SMSL USB AUDIO ” !CAUTION trailing space character
—— String Descriptor 6 ——
bLength : 0x20 (32 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “SMSL USB AUDIO ” !CAUTION trailing space character
—— String Descriptor 8 ——
bLength : 0x28 (40 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “SMSL Clock Selector”
—— String Descriptor 9 ——
bLength : 0x28 (40 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “SMSL Internal Clock”
—— String Descriptor 10 ——
bLength : 0x12 (18 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “SMSL DFU”
—— String Descriptor 11 ——
bLength : 0x16 (22 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “Analogue 1”
—— String Descriptor 14 ——
bLength : 0x32 (50 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “SMSL USB AUDIO (MQA HID)”
+++++++++++++++++ Device Information ++++++++++++++++++
Friendly Name : SMSL USB AUDIO
Device Description : USB Audio 2.0
Device Path 1 : \?\USB#VID_152A&PID_85DD&MI_00#6&161a6961&5&0000#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\msft_wave (AM_KSCATEGORY_AUDIO)
Device Path 2 : \?\USB#VID_152A&PID_85DD&MI_00#6&161a6961&5&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\msft_wave (AM_KSCATEGORY_CAPTURE)
Device Path 3 : \?\USB#VID_152A&PID_85DD&MI_00#6&161a6961&5&0000#{65e8773e-8f56-11d0-a3b9-00a0c9223196}\msft_wave (AM_KSCATEGORY_RENDER)
Device Path 4 : \?\USB#VID_152A&PID_85DD&MI_00#6&161a6961&5&0000#{dda54a40-1e4c-11d1-a050-405705c10000}\msft_topo (STATIC_KSCATEGORY_TOPOLOGY)
Device Path 5 : \?\USB#VID_152A&PID_85DD&MI_00#6&161a6961&5&0000#{eb115ffc-10c8-4964-831d-6dcb02e6f23f}\msft_wave (STATIC_KSCATEGORY_REALTIME)
Kernel Name : \Device\00000103
Device ID : USB\VID_152A&PID_85DD&MI_00\6&161A6961&5&0000
Hardware IDs : USB\VID_152A&PID_85DD&REV_0206&MI_00 USB\VID_152A&PID_85DD&MI_00
Driver KeyName : {4d36e96c-e325-11ce-bfc1-08002be10318}\0019 (GUID_DEVCLASS_MEDIA)
Driver : \SystemRoot\System32\drivers\usbaudio2.sys (Version: 10.0.19041.1 Date: 2019-12-07 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\usbaudio2.inf
Legacy BusType : PNPBus
Class : MEDIA
Class GUID : {4d36e96c-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_MEDIA)
Service : usbaudio2
Enumerator : USB
Location Info : 0000.0014.0000.002.000.000.000.000.000
Address : 2
Manufacturer Info : Microsoft
Capabilities : 0x80 (SurpriseRemovalOK)
Status : 0x0180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3, wake from D0)
+++++++++++++++++ Device Information ++++++++++++++++++
Friendly Name : Speakers (SMSL USB AUDIO)
Device Description : Audio Endpoint
Device Path : \?\SWD#MMDEVAPI#{0.0.0.00000000}.{e6281dd6-54cd-43f0-9667-622f3bfeef86}#{e6327cad-dcec-4949-ae8a-991e976a79d2} (DEVINTERFACE_AUDIO_RENDER)
Kernel Name : \Device\00000109
Device ID : SWD\MMDEVAPI{0.0.0.00000000}.{E6281DD6-54CD-43F0-9667-622F3BFEEF86}
Hardware IDs : MMDEVAPI\AudioEndpoints
Driver KeyName : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e}\0021 (AUDIOENDPOINT_CLASS_UUID)
Driver Inf : C:\Windows\inf\audioendpoint.inf
Legacy BusType : PNPBus
Class : AudioEndpoint
Class GUID : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e} (AUDIOENDPOINT_CLASS_UUID)
Enumerator : SWD
Location Info : –
Address : 4294967295 (0xFFFFFFFF)
Manufacturer Info : Microsoft
Capabilities : 0xD0 (UniqueID, RawDeviceOK, SurpriseRemovalOK)
Status : 0x0180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3)
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB Input Device
Device ID : USB\VID_152A&PID_85DD&MI_03\6&161A6961&5&0003
Hardware IDs : USB\VID_152A&PID_85DD&REV_0206&MI_03 USB\VID_152A&PID_85DD&MI_03
Driver KeyName : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0020 (GUID_DEVCLASS_HIDCLASS)
Driver : \SystemRoot\System32\drivers\hidusb.sys (Version: 10.0.19041.3636 Date: 2023-11-15 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\input.inf
Legacy BusType : PNPBus
Class : HIDClass
Class GUID : {745a17a0-74d3-11d0-b6fe-00a0c90f57da} (GUID_DEVCLASS_HIDCLASS)
Service : HidUsb
Enumerator : USB
Location Info : 0000.0014.0000.002.000.000.000.000.000
Address : 5
Manufacturer Info : (Standard system devices)
Capabilities : 0x80 (SurpriseRemovalOK)
Status : 0x0180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
SelectiveSuspendEnabled : 0
EnhancedPowerMgmtEnabled : 1
Power State : D0 (supported: D0, D3, wake from D0)
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : HID-compliant vendor-defined device
Device Path : \?\HID#VID_152A&PID_85DD&MI_03#7&f3b2775&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
Kernel Name : \Device\00000108
Device ID : HID\VID_152A&PID_85DD&MI_03\7&F3B2775&0&0000
Hardware IDs : HID\VID_152A&PID_85DD&REV_0206&MI_03 HID\VID_152A&PID_85DD&MI_03 HID\VID_152A&UP:FF00_U:0001 HID_DEVICE_UP:FF00_U:0001 HID_DEVICE_UPR:FF00-FFFF HID_DEVICE
Driver KeyName : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0021 (GUID_DEVCLASS_HIDCLASS)
Driver Inf : C:\Windows\inf\input.inf
Legacy BusType : PNPBus
Class : HIDClass
Class GUID : {745a17a0-74d3-11d0-b6fe-00a0c90f57da} (GUID_DEVCLASS_HIDCLASS)
Enumerator : HID
Location Info : –
Address : 1
Manufacturer Info : (Standard system devices)
Capabilities : 0xE0 (SilentInstall, RawDeviceOK, SurpriseRemovalOK)
Status : 0x0180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3, wake from D0)
++++++++++++++ HID Information +++++++++++++++
Manufacturer : SMSL
Product : SMSL USB AUDIO (MQA HID)
UsagePage : 0xFF00 (Vendor Defined)
Usage : 0x01 (unk)
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : SMSL DFU
Device ID : USB\VID_152A&PID_85DD&MI_02\6&161A6961&5&0002
Hardware IDs : USB\VID_152A&PID_85DD&REV_0206&MI_02 USB\VID_152A&PID_85DD&MI_02
Driver KeyName : –
Legacy BusType : PNPBus
Enumerator : USB
Location Info : 0000.0014.0000.002.000.000.000.000.000
Address : 4
Manufacturer Info : –
Capabilities : 0x00 (-)
Status : 0x01802400 (DN_HAS_PROBLEM, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 28 (CM_PROB_FAILED_INSTALL)
EnhancedPowerMgmtEnabled : 0
Power State : D3 (supported: D0, D3, wake from D0)
Marantz SA-10 DAC
Marantz SA-10 DAC Enumeration Text
=========================== USB Port7 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 1-7
Properties : 0x01
IsUserConnectable : yes
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x07 (Port 7)
CompanionIndex : 0
CompanionHubSymLnk : USB#ROOT_HUB30#4&124beda1&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
CompanionPortNumber : 0x10 (Port 16)
-> CompanionPortChain : 1-16
========================== Summary =========================
Vendor ID : 0x154E (D & M Holdings, Inc.)
Product ID : 0x3008
USB Version : 2.0
Port maximum Speed : High-Speed (Companion Port 1-16 is doing the SuperSpeed)
Device maximum Speed : High-Speed
Device Connection Speed : High-Speed
Self powered : yes
Demanded Current : 10 mA
Used Endpoints : 1
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB Composite Device
Device Path : \?\USB#VID_154E&PID_3008#5&9bb4271&0&7#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Kernel Name : \Device\USBPDO-1
Device ID : USB\VID_154E&PID_3008\5&9BB4271&0&7
Hardware IDs : USB\VID_154E&PID_3008&REV_0004 USB\VID_154E&PID_3008
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0024 (GUID_DEVCLASS_USB)
Driver : \SystemRoot\System32\drivers\usbccgp.sys (Version: 10.0.19041.4474 Date: 2024-07-29 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\usb.inf
Legacy BusType : PNPBus
Class : USB
Class GUID : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service : usbccgp
Enumerator : USB
Location Info : Port_#0007.Hub_#0001
Address : 7
Location IDs : PCIROOT(0)#PCI(1500)#USBROOT(0)#USB(7), ACPI(SB)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS07)
Container ID : {d0368091-4d94-11ef-9997-806e6f6e6963}
Manufacturer Info : (Standard USB Host Controller)
Capabilities : 0x84 (Removable, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Address : 7
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3, wake from D0)
+++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\154E30080004
osvc : REG_BINARY 00 00
---------------- Connection Information ---------------
Connection Index : 0x07 (Port 7)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x01 (1)
Is Hub : 0x00 (no)
Device Bus Speed : 0x02 (High-Speed)
Number of open Pipes : 0x00 (0 pipes to data endpoints)
Data (HexDump) : 07 00 00 00 12 01 00 02 EF 02 01 40 4E 15 08 30 ………..@N..0
04 00 01 03 00 02 01 02 00 01 00 00 00 00 00 01 …………….
00 00 00 …
--------------- Connection Information V2 -------------
Connection Index : 0x07 (7)
Length : 0x10 (16 bytes)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0) -> but Companion Port 1-16 does
ReservedMBZ : 0x00
Flags : 0x00
DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
ReservedMBZ : 0x00
Data (HexDump) : 07 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 …………….
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.0)
bDeviceClass : 0xEF (Miscellaneous)
bDeviceSubClass : 0x02
bDeviceProtocol : 0x01 (IAD – Interface Association Descriptor)
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x154E (D & M Holdings, Inc.)
idProduct : 0x3008
bcdDevice : 0x0004
iManufacturer : 0x01 (String Descriptor 1)
Language 0x0409 : “D&M Holdings Inc.”
iProduct : 0x03 (String Descriptor 3)
Language 0x0409 : “SA-10S1”
iSerialNumber : 0x00 (No String Descriptor)
bNumConfigurations : 0x02 (2 Configurations)
Data (HexDump) : 12 01 00 02 EF 02 01 40 4E 15 08 30 04 00 01 03 …….@N..0….
00 02 ..
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x011C (284 bytes)
bNumInterfaces : 0x03 (3 Interfaces)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x05 (10 mA)
Data (HexDump) : 09 02 1C 01 03 01 00 C0 05 08 0B 00 02 01 00 20 ……………
00 09 04 00 00 00 01 01 20 03 09 24 01 00 02 08 …….. ..$….
48 00 00 08 24 0A 29 03 07 00 09 08 24 0B 28 01 H…$.)…..$.(.
29 03 0D 11 24 02 02 01 01 00 28 02 00 00 00 00 )…$…..(…..
0B 00 00 06 12 24 06 0A 02 0F 00 00 00 0F 00 00 …..$……….
00 0F 00 00 00 00 0C 24 03 14 02 06 00 0A 28 00 …….$……(.
00 00 09 04 01 00 00 01 02 20 04 09 04 01 01 02 ……… ……
01 02 20 04 10 24 01 02 00 01 01 00 00 00 02 00 .. ..$……….
00 00 00 0B 06 24 02 01 04 20 07 05 01 05 08 03 …..$… ……
01 08 25 01 00 00 02 08 00 07 05 81 11 04 00 04 ..%………….
09 04 01 02 02 01 02 20 04 10 24 01 02 00 01 01 ……. ..$…..
00 00 00 02 00 00 00 00 0B 06 24 02 01 04 18 07 ……….$…..
05 01 05 08 03 01 08 25 01 00 00 02 08 00 07 05 …….%……..
81 11 04 00 04 09 04 01 03 02 01 02 20 04 10 24 ………… ..$
01 02 00 01 00 00 00 80 02 00 00 00 00 0B 06 24 ……………$
02 01 04 20 07 05 01 05 08 03 01 08 25 01 00 00 … ……..%…
02 08 00 07 05 81 11 04 00 04 09 04 02 00 00 FE …………….
01 01 0A 09 21 07 FA 00 40 00 10 01 ….!…@…
------------------- IAD Descriptor --------------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B (Interface Association Descriptor)
bFirstInterface : 0x00 (Interface 0)
bInterfaceCount : 0x02 (2 Interfaces)
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x00 (undefined)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x00 (No String Descriptor)
Data (HexDump) : 08 0B 00 02 01 00 20 00 …… .
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x03 (String Descriptor 3)
Language 0x0409 : “SA-10S1”
Data (HexDump) : 09 04 00 00 00 01 01 20 03 ……. .
---- Audio Control Interface Header Descriptor 2.0 ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x08 (I/O box)
wTotalLength : 0x0048 (72 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
Data (HexDump) : 09 24 01 00 02 08 48 00 00 .$….H..
--- Audio Control Clock Source Unit Descriptor 2.0 ----
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x29
bmAttributes : 0x03
D1..0: Clock Type : 0x03
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x07
D1..0: Clock Frequency : 0x03 (host programmable)
D3..2: Clock Validity : 0x01 (read only)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x09 (String Descriptor 9)
Language 0x0409 : “D&M Holdings Inc. Internal Clock”
Data (HexDump) : 08 24 0A 29 03 07 00 09 .$.)….
--- Audio Control Clock Selector Unit Descriptor 2.0 --
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0B (Clock Selector 2.0)
bClockID : 0x28 (40)
bNrInPins : 0x01 (1 Input Pin)
baCSourceID[1] : 0x29 (41)
bmControls : 0x03
D1..0: Clock Selector : 0x03 (host programmable)
D7..2: Reserved : 0x00
iClockSelector : 0x0D (String Descriptor 13)
Language 0x0409 : “iAP Interface”
Data (HexDump) : 08 24 0B 28 01 29 03 0D .$.(.)..
----- Audio Control Input Terminal Descriptor 2.0 -----
bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x02 (2)
wTerminalType : 0x0101 (USB Streaming)
bAssocTerminal : 0x00
bCSourceID : 0x28 (40)
bNrChannels : 0x02 (2 Channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x06 (String Descriptor 6)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 11 24 02 02 01 01 00 28 02 00 00 00 00 0B 00 00 .$…..(……..
06 .
------ Audio Control Feature Unit Descriptor 2.0 ------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0)
bUnitID : 0x0A (10)
bSourceID : 0x02 (2)
bmaControls[0] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[1] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[2] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
iFeature : 0x00 (No String Descriptor)
Data (HexDump) : 12 24 06 0A 02 0F 00 00 00 0F 00 00 00 0F 00 00 .$…………..
00 00 ..
----- Audio Control Output Terminal Descriptor 2.0 ----
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x14 (20)
wTerminalType : 0x0602 (Digital audio interface)
bAssocTerminal : 0x00 (0)
bSourceID : 0x0A (10)
bCSourceID : 0x28 (40)
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 0C 24 03 14 02 06 00 0A 28 00 00 00 .$……(…
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 00 00 01 02 20 04 ……. .
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 01 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 01 00 00 00 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
Data (HexDump) : 06 24 02 01 04 20 .$…
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x02
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 02 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 01 00 00 00 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x18 (24 bits)
Data (HexDump) : 06 24 02 01 04 18 .$….
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x03
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 03 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x80000000 (TYPE_I_RAW_DATA)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 00 00 00 80 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
Data (HexDump) : 06 24 02 01 04 20 .$…
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02 (Interface 2)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0xFE (Application Specific)
bInterfaceSubClass : 0x01 (Device Firmware Upgrade)
bInterfaceProtocol : 0x01 (Runtime)
iInterface : 0x0A (String Descriptor 10)
Language 0x0409 : “D&M Holdings Inc. DFU”
Data (HexDump) : 09 04 02 00 00 FE 01 01 0A ………
----- Device Firmware Update Functional Descriptor ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (DFU Functional Descriptor)
bmAttributes : 0x07
Bit 7..4: reserved : 0x00
Bit 3: WillDetach : 0x00
Bit 2: ManifestTolerant : 0x01
Bit 1: CanUpload : 0x01
Bit 0: CanDownload : 0x01
wDetachTimeOut : 0x00FA (250 ms)
wTransferSize : 0x0040 (max 64 bytes)
bcdDFUVersion : 0x0110 (Version 1.10)
Data (HexDump) : 09 21 07 FA 00 40 00 10 01 .!…@…
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x011C (284 bytes)
bNumInterfaces : 0x03 (3 Interfaces)
bConfigurationValue : 0x01 (Configuration 1) !ERROR: Configuration 1 is defined more than once
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x05 (10 mA)
Data (HexDump) : 09 02 1C 01 03 01 00 C0 05 08 0B 00 02 01 00 20 ……………
00 09 04 00 00 00 01 01 20 03 09 24 01 00 02 08 …….. ..$….
48 00 00 08 24 0A 29 03 07 00 09 08 24 0B 28 01 H…$.)…..$.(.
29 03 0D 11 24 02 02 01 01 00 28 02 00 00 00 00 )…$…..(…..
0B 00 00 06 12 24 06 0A 02 0F 00 00 00 0F 00 00 …..$……….
00 0F 00 00 00 00 0C 24 03 14 02 06 00 0A 28 00 …….$……(.
00 00 09 04 01 00 00 01 02 20 04 09 04 01 01 02 ……… ……
01 02 20 04 10 24 01 02 00 01 01 00 00 00 02 00 .. ..$……….
00 00 00 0B 06 24 02 01 04 20 07 05 01 05 08 03 …..$… ……
01 08 25 01 00 00 02 08 00 07 05 81 11 04 00 04 ..%………….
09 04 01 02 02 01 02 20 04 10 24 01 02 00 01 01 ……. ..$…..
00 00 00 02 00 00 00 00 0B 06 24 02 01 04 18 07 ……….$…..
05 01 05 08 03 01 08 25 01 00 00 02 08 00 07 05 …….%……..
81 11 04 00 04 09 04 01 03 02 01 02 20 04 10 24 ………… ..$
01 02 00 01 00 00 00 80 02 00 00 00 00 0B 06 24 ……………$
02 01 04 20 07 05 01 05 08 03 01 08 25 01 00 00 … ……..%…
02 08 00 07 05 81 11 04 00 04 09 04 02 00 00 FE …………….
01 01 0A 09 21 07 FA 00 40 00 10 01 ….!…@…
------------------- IAD Descriptor --------------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B (Interface Association Descriptor)
bFirstInterface : 0x00 (Interface 0)
bInterfaceCount : 0x02 (2 Interfaces)
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x00 (undefined)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x00 (No String Descriptor)
Data (HexDump) : 08 0B 00 02 01 00 20 00 …… .
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x03 (String Descriptor 3)
Language 0x0409 : “SA-10S1”
Data (HexDump) : 09 04 00 00 00 01 01 20 03 ……. .
---- Audio Control Interface Header Descriptor 2.0 ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x08 (I/O box)
wTotalLength : 0x0048 (72 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
Data (HexDump) : 09 24 01 00 02 08 48 00 00 .$….H..
--- Audio Control Clock Source Unit Descriptor 2.0 ----
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x29
bmAttributes : 0x03
D1..0: Clock Type : 0x03
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x07
D1..0: Clock Frequency : 0x03 (host programmable)
D3..2: Clock Validity : 0x01 (read only)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x09 (String Descriptor 9)
Language 0x0409 : “D&M Holdings Inc. Internal Clock”
Data (HexDump) : 08 24 0A 29 03 07 00 09 .$.)….
--- Audio Control Clock Selector Unit Descriptor 2.0 --
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0B (Clock Selector 2.0)
bClockID : 0x28 (40)
bNrInPins : 0x01 (1 Input Pin)
baCSourceID[1] : 0x29 (41)
bmControls : 0x03
D1..0: Clock Selector : 0x03 (host programmable)
D7..2: Reserved : 0x00
iClockSelector : 0x0D (String Descriptor 13)
Language 0x0409 : “iAP Interface”
Data (HexDump) : 08 24 0B 28 01 29 03 0D .$.(.)..
----- Audio Control Input Terminal Descriptor 2.0 -----
bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x02 (2)
wTerminalType : 0x0101 (USB Streaming)
bAssocTerminal : 0x00
bCSourceID : 0x28 (40)
bNrChannels : 0x02 (2 Channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x06 (String Descriptor 6)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 11 24 02 02 01 01 00 28 02 00 00 00 00 0B 00 00 .$…..(……..
06 .
------ Audio Control Feature Unit Descriptor 2.0 ------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0)
bUnitID : 0x0A (10)
bSourceID : 0x02 (2)
bmaControls[0] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[1] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[2] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
iFeature : 0x00 (No String Descriptor)
Data (HexDump) : 12 24 06 0A 02 0F 00 00 00 0F 00 00 00 0F 00 00 .$…………..
00 00 ..
----- Audio Control Output Terminal Descriptor 2.0 ----
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x14 (20)
wTerminalType : 0x0602 (Digital audio interface)
bAssocTerminal : 0x00 (0)
bSourceID : 0x0A (10)
bCSourceID : 0x28 (40)
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 0C 24 03 14 02 06 00 0A 28 00 00 00 .$……(…
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 00 00 01 02 20 04 ……. .
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 01 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 01 00 00 00 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
Data (HexDump) : 06 24 02 01 04 20 .$…
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x02
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 02 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 01 00 00 00 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x18 (24 bits)
Data (HexDump) : 06 24 02 01 04 18 .$….
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x03
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 03 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x80000000 (TYPE_I_RAW_DATA)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 00 00 00 80 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
Data (HexDump) : 06 24 02 01 04 20 .$…
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x308 (776 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02 (Interface 2)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0xFE (Application Specific)
bInterfaceSubClass : 0x01 (Device Firmware Upgrade)
bInterfaceProtocol : 0x01 (Runtime)
iInterface : 0x0A (String Descriptor 10)
Language 0x0409 : “D&M Holdings Inc. DFU”
Data (HexDump) : 09 04 02 00 00 FE 01 01 0A ………
----- Device Firmware Update Functional Descriptor ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (DFU Functional Descriptor)
bmAttributes : 0x07
Bit 7..4: reserved : 0x00
Bit 3: WillDetach : 0x00
Bit 2: ManifestTolerant : 0x01
Bit 1: CanUpload : 0x01
Bit 0: CanDownload : 0x01
wDetachTimeOut : 0x00FA (250 ms)
wTransferSize : 0x0040 (max 64 bytes)
bcdDFUVersion : 0x0110 (Version 1.10)
Data (HexDump) : 09 21 07 FA 00 40 00 10 01 .!…@…
--------- Device Qualifier Descriptor (for Full-Speed) --------
bLength : 0x0A (10 bytes)
bDescriptorType : 0x06 (Device_qualifier Descriptor)
bcdUSB : 0x200 (USB Version 2.00)
bDeviceClass : 0xEF (Miscellaneous)
bDeviceSubClass : 0x02
bDeviceProtocol : 0x01 (IAD – Interface Association Descriptor)
bMaxPacketSize0 : 0x40 (64 Bytes)
bNumConfigurations : 0x02 (2 other-speed configurations)
bReserved : 0x00
Data (HexDump) : 0A 06 00 02 EF 02 01 40 02 00 …….@..
------------ Other Speed Configuration Descriptor -------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x07 (Other_speed_configuration Descriptor)
wTotalLength : 0x011C (284 bytes)
bNumInterfaces : 0x03 (3 Interfaces)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x05 (10 mA)
Data (HexDump) : 09 07 1C 01 03 01 00 C0 05 08 0B 00 02 01 00 20 ……………
00 09 04 00 00 00 01 01 20 03 09 24 01 00 02 08 …….. ..$….
48 00 00 08 24 0A 29 03 07 00 09 08 24 0B 28 01 H…$.)…..$.(.
29 03 0D 11 24 02 02 01 01 00 28 02 00 00 00 00 )…$…..(…..
0B 00 00 06 12 24 06 0A 02 0F 00 00 00 0F 00 00 …..$……….
00 0F 00 00 00 00 0C 24 03 14 02 06 00 0A 28 00 …….$……(.
00 00 09 04 01 00 00 01 02 20 04 09 04 01 01 02 ……… ……
01 02 20 04 10 24 01 02 00 01 01 00 00 00 02 00 .. ..$……….
00 00 00 0B 06 24 02 01 04 20 07 05 01 05 08 03 …..$… ……
01 08 25 01 00 00 02 08 00 07 05 81 11 04 00 04 ..%………….
09 04 01 02 02 01 02 20 04 10 24 01 02 00 01 01 ……. ..$…..
00 00 00 02 00 00 00 00 0B 06 24 02 01 04 18 07 ……….$…..
05 01 05 08 03 01 08 25 01 00 00 02 08 00 07 05 …….%……..
81 11 04 00 04 09 04 01 03 02 01 02 20 04 10 24 ………… ..$
01 02 00 01 00 00 00 80 02 00 00 00 00 0B 06 24 ……………$
02 01 04 20 07 05 01 05 08 03 01 08 25 01 00 00 … ……..%…
02 08 00 07 05 81 11 04 00 04 09 04 02 00 00 FE …………….
01 01 0A 09 21 07 FA 00 40 00 10 01 ….!…@…
------------------- IAD Descriptor --------------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B (Interface Association Descriptor)
bFirstInterface : 0x00 (Interface 0)
bInterfaceCount : 0x02 (2 Interfaces)
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x00 (undefined)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x00 (No String Descriptor)
Data (HexDump) : 08 0B 00 02 01 00 20 00 …… .
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x03 (String Descriptor 3)
Language 0x0409 : “SA-10S1”
Data (HexDump) : 09 04 00 00 00 01 01 20 03 ……. .
---- Audio Control Interface Header Descriptor 2.0 ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x08 (I/O box)
wTotalLength : 0x0048 (72 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
Data (HexDump) : 09 24 01 00 02 08 48 00 00 .$….H..
--- Audio Control Clock Source Unit Descriptor 2.0 ----
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x29
bmAttributes : 0x03
D1..0: Clock Type : 0x03
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x07
D1..0: Clock Frequency : 0x03 (host programmable)
D3..2: Clock Validity : 0x01 (read only)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x09 (String Descriptor 9)
Language 0x0409 : “D&M Holdings Inc. Internal Clock”
Data (HexDump) : 08 24 0A 29 03 07 00 09 .$.)….
--- Audio Control Clock Selector Unit Descriptor 2.0 --
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0B (Clock Selector 2.0)
bClockID : 0x28 (40)
bNrInPins : 0x01 (1 Input Pin)
baCSourceID[1] : 0x29 (41)
bmControls : 0x03
D1..0: Clock Selector : 0x03 (host programmable)
D7..2: Reserved : 0x00
iClockSelector : 0x0D (String Descriptor 13)
Language 0x0409 : “iAP Interface”
Data (HexDump) : 08 24 0B 28 01 29 03 0D .$.(.)..
----- Audio Control Input Terminal Descriptor 2.0 -----
bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x02 (2)
wTerminalType : 0x0101 (USB Streaming)
bAssocTerminal : 0x00
bCSourceID : 0x28 (40)
bNrChannels : 0x02 (2 Channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x06 (String Descriptor 6)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 11 24 02 02 01 01 00 28 02 00 00 00 00 0B 00 00 .$…..(……..
06 .
------ Audio Control Feature Unit Descriptor 2.0 ------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0)
bUnitID : 0x0A (10)
bSourceID : 0x02 (2)
bmaControls[0] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[1] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[2] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
iFeature : 0x00 (No String Descriptor)
Data (HexDump) : 12 24 06 0A 02 0F 00 00 00 0F 00 00 00 0F 00 00 .$…………..
00 00 ..
----- Audio Control Output Terminal Descriptor 2.0 ----
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x14 (20)
wTerminalType : 0x0602 (Digital audio interface)
bAssocTerminal : 0x00 (0)
bSourceID : 0x0A (10)
bCSourceID : 0x28 (40)
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 0C 24 03 14 02 06 00 0A 28 00 00 00 .$……(…
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 00 00 01 02 20 04 ……. .
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 01 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 01 00 00 00 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
Data (HexDump) : 06 24 02 01 04 20 .$…
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308 (776 bytes)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004 (4 bytes)
bInterval : 0x04 (4 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x02
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 02 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 01 00 00 00 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x18 (24 bits)
Data (HexDump) : 06 24 02 01 04 18 .$….
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308 (776 bytes)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004 (4 bytes)
bInterval : 0x04 (4 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x03
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 03 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x80000000 (TYPE_I_RAW_DATA)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 00 00 00 80 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
Data (HexDump) : 06 24 02 01 04 20 .$…
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308 (776 bytes)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004 (4 bytes)
bInterval : 0x04 (4 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02 (Interface 2)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0xFE (Application Specific)
bInterfaceSubClass : 0x01 (Device Firmware Upgrade)
bInterfaceProtocol : 0x01 (Runtime)
iInterface : 0x0A (String Descriptor 10)
Language 0x0409 : “D&M Holdings Inc. DFU”
Data (HexDump) : 09 04 02 00 00 FE 01 01 0A ………
----- Device Firmware Update Functional Descriptor ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (DFU Functional Descriptor)
bmAttributes : 0x07
Bit 7..4: reserved : 0x00
Bit 3: WillDetach : 0x00
Bit 2: ManifestTolerant : 0x01
Bit 1: CanUpload : 0x01
Bit 0: CanDownload : 0x01
wDetachTimeOut : 0x00FA (250 ms)
wTransferSize : 0x0040 (max 64 bytes)
bcdDFUVersion : 0x0110 (Version 1.10)
Data (HexDump) : 09 21 07 FA 00 40 00 10 01 .!…@…
------------ Other Speed Configuration Descriptor -------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x07 (Other_speed_configuration Descriptor)
wTotalLength : 0x011C (284 bytes)
bNumInterfaces : 0x03 (3 Interfaces)
bConfigurationValue : 0x01 (Configuration 1) !ERROR: Configuration 1 is defined more than once
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x05 (10 mA)
Data (HexDump) : 09 07 1C 01 03 01 00 C0 05 08 0B 00 02 01 00 20 ……………
00 09 04 00 00 00 01 01 20 03 09 24 01 00 02 08 …….. ..$….
48 00 00 08 24 0A 29 03 07 00 09 08 24 0B 28 01 H…$.)…..$.(.
29 03 0D 11 24 02 02 01 01 00 28 02 00 00 00 00 )…$…..(…..
0B 00 00 06 12 24 06 0A 02 0F 00 00 00 0F 00 00 …..$……….
00 0F 00 00 00 00 0C 24 03 14 02 06 00 0A 28 00 …….$……(.
00 00 09 04 01 00 00 01 02 20 04 09 04 01 01 02 ……… ……
01 02 20 04 10 24 01 02 00 01 01 00 00 00 02 00 .. ..$……….
00 00 00 0B 06 24 02 01 04 20 07 05 01 05 08 03 …..$… ……
01 08 25 01 00 00 02 08 00 07 05 81 11 04 00 04 ..%………….
09 04 01 02 02 01 02 20 04 10 24 01 02 00 01 01 ……. ..$…..
00 00 00 02 00 00 00 00 0B 06 24 02 01 04 18 07 ……….$…..
05 01 05 08 03 01 08 25 01 00 00 02 08 00 07 05 …….%……..
81 11 04 00 04 09 04 01 03 02 01 02 20 04 10 24 ………… ..$
01 02 00 01 00 00 00 80 02 00 00 00 00 0B 06 24 ……………$
02 01 04 20 07 05 01 05 08 03 01 08 25 01 00 00 … ……..%…
02 08 00 07 05 81 11 04 00 04 09 04 02 00 00 FE …………….
01 01 0A 09 21 07 FA 00 40 00 10 01 ….!…@…
------------------- IAD Descriptor --------------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B (Interface Association Descriptor)
bFirstInterface : 0x00 (Interface 0)
bInterfaceCount : 0x02 (2 Interfaces)
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x00 (undefined)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x00 (No String Descriptor)
Data (HexDump) : 08 0B 00 02 01 00 20 00 …… .
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x03 (String Descriptor 3)
Language 0x0409 : “SA-10S1”
Data (HexDump) : 09 04 00 00 00 01 01 20 03 ……. .
---- Audio Control Interface Header Descriptor 2.0 ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x08 (I/O box)
wTotalLength : 0x0048 (72 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
Data (HexDump) : 09 24 01 00 02 08 48 00 00 .$….H..
--- Audio Control Clock Source Unit Descriptor 2.0 ----
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x29
bmAttributes : 0x03
D1..0: Clock Type : 0x03
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x07
D1..0: Clock Frequency : 0x03 (host programmable)
D3..2: Clock Validity : 0x01 (read only)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x09 (String Descriptor 9)
Language 0x0409 : “D&M Holdings Inc. Internal Clock”
Data (HexDump) : 08 24 0A 29 03 07 00 09 .$.)….
--- Audio Control Clock Selector Unit Descriptor 2.0 --
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0B (Clock Selector 2.0)
bClockID : 0x28 (40)
bNrInPins : 0x01 (1 Input Pin)
baCSourceID[1] : 0x29 (41)
bmControls : 0x03
D1..0: Clock Selector : 0x03 (host programmable)
D7..2: Reserved : 0x00
iClockSelector : 0x0D (String Descriptor 13)
Language 0x0409 : “iAP Interface”
Data (HexDump) : 08 24 0B 28 01 29 03 0D .$.(.)..
----- Audio Control Input Terminal Descriptor 2.0 -----
bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x02 (2)
wTerminalType : 0x0101 (USB Streaming)
bAssocTerminal : 0x00
bCSourceID : 0x28 (40)
bNrChannels : 0x02 (2 Channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x06 (String Descriptor 6)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 11 24 02 02 01 01 00 28 02 00 00 00 00 0B 00 00 .$…..(……..
06 .
------ Audio Control Feature Unit Descriptor 2.0 ------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0)
bUnitID : 0x0A (10)
bSourceID : 0x02 (2)
bmaControls[0] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[1] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[2] : 0x0F, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
iFeature : 0x00 (No String Descriptor)
Data (HexDump) : 12 24 06 0A 02 0F 00 00 00 0F 00 00 00 0F 00 00 .$…………..
00 00 ..
----- Audio Control Output Terminal Descriptor 2.0 ----
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x14 (20)
wTerminalType : 0x0602 (Digital audio interface)
bAssocTerminal : 0x00 (0)
bSourceID : 0x0A (10)
bCSourceID : 0x28 (40)
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 0C 24 03 14 02 06 00 0A 28 00 00 00 .$……(…
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 00 00 01 02 20 04 ……. .
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 01 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 01 00 00 00 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
Data (HexDump) : 06 24 02 01 04 20 .$…
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308 (776 bytes)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004 (4 bytes)
bInterval : 0x04 (4 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x02
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 02 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 01 00 00 00 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x18 (24 bits)
Data (HexDump) : 06 24 02 01 04 18 .$….
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308 (776 bytes)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004 (4 bytes)
bInterval : 0x04 (4 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x03
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x04 (String Descriptor 4)
Language 0x0409 : “SA-10S1 “
Data (HexDump) : 09 04 01 03 02 01 02 20 04 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x02 (2)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x80000000 (TYPE_I_RAW_DATA)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x0B (String Descriptor 11)
Language 0x0409 : “L ch”
Data (HexDump) : 10 24 01 02 00 01 00 00 00 80 02 00 00 00 00 0B .$…………..
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
Data (HexDump) : 06 24 02 01 04 20 .$…
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0308 (776 bytes)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 01 05 08 03 01 …….
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0802
Data (HexDump) : 08 25 01 00 00 02 08 00 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004 (4 bytes)
bInterval : 0x04 (4 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x02 (Interface 2)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0xFE (Application Specific)
bInterfaceSubClass : 0x01 (Device Firmware Upgrade)
bInterfaceProtocol : 0x01 (Runtime)
iInterface : 0x0A (String Descriptor 10)
Language 0x0409 : “D&M Holdings Inc. DFU”
Data (HexDump) : 09 04 02 00 00 FE 01 01 0A ………
----- Device Firmware Update Functional Descriptor ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (DFU Functional Descriptor)
bmAttributes : 0x07
Bit 7..4: reserved : 0x00
Bit 3: WillDetach : 0x00
Bit 2: ManifestTolerant : 0x01
Bit 1: CanUpload : 0x01
Bit 0: CanDownload : 0x01
wDetachTimeOut : 0x00FA (250 ms)
wTransferSize : 0x0040 (max 64 bytes)
bcdDFUVersion : 0x0110 (Version 1.10)
Data (HexDump) : 09 21 07 FA 00 40 00 10 01 .!…@…
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English – United States)
Data (HexDump) : 04 03 09 04 ….
—— String Descriptor 1 ——
bLength : 0x24 (36 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “D&M Holdings Inc.”
Data (HexDump) : 24 03 44 00 26 00 4D 00 20 00 48 00 6F 00 6C 00 $.D.&.M. .H.o.l.
64 00 69 00 6E 00 67 00 73 00 20 00 49 00 6E 00 d.i.n.g.s. .I.n.
63 00 2E 00 c…
—— String Descriptor 3 ——
bLength : 0x10 (16 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “SA-10S1”
Data (HexDump) : 10 03 53 00 41 00 2D 00 31 00 30 00 53 00 31 00 ..S.A.-.1.0.S.1.
—— String Descriptor 4 ——
bLength : 0x12 (18 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “SA-10S1 ” !CAUTION trailing space character
Data (HexDump) : 12 03 53 00 41 00 2D 00 31 00 30 00 53 00 31 00 ..S.A.-.1.0.S.1.
20 00 .
—— String Descriptor 6 ——
bLength : 0x12 (18 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “SA-10S1 ” !CAUTION trailing space character
Data (HexDump) : 12 03 53 00 41 00 2D 00 31 00 30 00 53 00 31 00 ..S.A.-.1.0.S.1.
20 00 .
—— String Descriptor 9 ——
bLength : 0x42 (66 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “D&M Holdings Inc. Internal Clock”
Data (HexDump) : 42 03 44 00 26 00 4D 00 20 00 48 00 6F 00 6C 00 B.D.&.M. .H.o.l.
64 00 69 00 6E 00 67 00 73 00 20 00 49 00 6E 00 d.i.n.g.s. .I.n.
63 00 2E 00 20 00 49 00 6E 00 74 00 65 00 72 00 c… .I.n.t.e.r.
6E 00 61 00 6C 00 20 00 43 00 6C 00 6F 00 63 00 n.a.l. .C.l.o.c.
6B 00 k.
—— String Descriptor 10 ——
bLength : 0x2C (44 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “D&M Holdings Inc. DFU”
Data (HexDump) : 2C 03 44 00 26 00 4D 00 20 00 48 00 6F 00 6C 00 ,.D.&.M. .H.o.l.
64 00 69 00 6E 00 67 00 73 00 20 00 49 00 6E 00 d.i.n.g.s. .I.n.
63 00 2E 00 20 00 44 00 46 00 55 00 c… .D.F.U.
—— String Descriptor 11 ——
bLength : 0x0A (10 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “L ch”
Data (HexDump) : 0A 03 4C 00 20 00 63 00 68 00 ..L. .c.h.
—— String Descriptor 13 ——
bLength : 0x1C (28 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “iAP Interface”
Data (HexDump) : 1C 03 69 00 41 00 50 00 20 00 49 00 6E 00 74 00 ..i.A.P. .I.n.t.
65 00 72 00 66 00 61 00 63 00 65 00 e.r.f.a.c.e.
+++++++++++++++++ Device Information ++++++++++++++++++
Friendly Name : SA-10S1
Device Description : USB Audio 2.0
Device Path 1 : \?\USB#VID_154E&PID_3008&MI_00#6&2d0229&1&0000#{eb115ffc-10c8-4964-831d-6dcb02e6f23f}\msft_wave (STATIC_KSCATEGORY_REALTIME)
Device Path 2 : \?\USB#VID_154E&PID_3008&MI_00#6&2d0229&1&0000#{dda54a40-1e4c-11d1-a050-405705c10000}\msft_topo (STATIC_KSCATEGORY_TOPOLOGY)
Device Path 3 : \?\USB#VID_154E&PID_3008&MI_00#6&2d0229&1&0000#{65e8773e-8f56-11d0-a3b9-00a0c9223196}\msft_wave (AM_KSCATEGORY_RENDER)
Device Path 4 : \?\USB#VID_154E&PID_3008&MI_00#6&2d0229&1&0000#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\msft_wave (AM_KSCATEGORY_AUDIO)
Device Path 5 : \?\USB#VID_154E&PID_3008&MI_00#6&2d0229&1&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\msft_wave (AM_KSCATEGORY_CAPTURE)
Kernel Name : \Device\0000003a
Device ID : USB\VID_154E&PID_3008&MI_00\6&2D0229&1&0000
Hardware IDs : USB\VID_154E&PID_3008&REV_0004&MI_00 USB\VID_154E&PID_3008&MI_00
Driver KeyName : {4d36e96c-e325-11ce-bfc1-08002be10318}\0008 (GUID_DEVCLASS_MEDIA)
Driver : \SystemRoot\System32\drivers\usbaudio2.sys (Version: 10.0.19041.1 Date: 2019-12-07 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\usbaudio2.inf
Legacy BusType : PNPBus
Class : MEDIA
Class GUID : {4d36e96c-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_MEDIA)
Service : usbaudio2
Enumerator : USB
Location Info : 0000.0015.0000.007.000.000.000.000.000
Address : 7
Manufacturer Info : Microsoft
Capabilities : 0x80 (SurpriseRemovalOK)
Status : 0x0180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3, wake from D0)
+++++++++++++++++ Device Information ++++++++++++++++++
Friendly Name : Digital Audio Interface (SA-10S1)
Device Description : Audio Endpoint
Device Path : \?\SWD#MMDEVAPI#{0.0.0.00000000}.{46103e1f-cc01-43e2-bb23-5e25fe20809f}#{e6327cad-dcec-4949-ae8a-991e976a79d2} (DEVINTERFACE_AUDIO_RENDER)
Kernel Name : \Device\00000044
Device ID : SWD\MMDEVAPI{0.0.0.00000000}.{46103E1F-CC01-43E2-BB23-5E25FE20809F}
Hardware IDs : MMDEVAPI\AudioEndpoints
Driver KeyName : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e}\0009 (AUDIOENDPOINT_CLASS_UUID)
Driver Inf : C:\Windows\inf\audioendpoint.inf
Legacy BusType : PNPBus
Class : AudioEndpoint
Class GUID : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e} (AUDIOENDPOINT_CLASS_UUID)
Enumerator : SWD
Location Info : –
Address : 4294967295 (0xFFFFFFFF)
Manufacturer Info : Microsoft
Capabilities : 0xD0 (UniqueID, RawDeviceOK, SurpriseRemovalOK)
Status : 0x0180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3)
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : D&M Holdings Inc. DFU
Device ID : USB\VID_154E&PID_3008&MI_02\6&2D0229&1&0002
Hardware IDs : USB\VID_154E&PID_3008&REV_0004&MI_02 USB\VID_154E&PID_3008&MI_02
Driver KeyName : –
Legacy BusType : PNPBus
Enumerator : USB
Location Info : 0000.0015.0000.007.000.000.000.000.000
Address : 9
Manufacturer Info : –
Capabilities : 0x00 (-)
Status : 0x01802400 (DN_HAS_PROBLEM, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 28 (CM_PROB_FAILED_INSTALL)
EnhancedPowerMgmtEnabled : 0
Power State : D3 (supported: D0, D3, wake from D0)
Holo May KTE DAC
Holo May KTE DAC Enumeration Text
=========================== USB Port7 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 1-7
Properties : 0x01
IsUserConnectable : yes
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x07 (Port 7)
CompanionIndex : 0
CompanionHubSymLnk : USB#ROOT_HUB30#4&124beda1&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
CompanionPortNumber : 0x10 (Port 16)
-> CompanionPortChain : 1-16
========================== Summary =========================
Vendor ID : 0x1A40 (TERMINUS TECHNOLOGY INC.)
Product ID : 0x0101
USB Version : 2.0
Port maximum Speed : High-Speed (Companion Port 1-16 is doing the SuperSpeed)
Device maximum Speed : High-Speed
Device Connection Speed : High-Speed
Self powered : yes
Demanded Current : 100 mA
Used Endpoints : 2
========================== USB Hub =========================
Hub Symbolic Link : USB#VID_1A40&PID_0101#5&9bb4271&0&7#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : Generic USB Hub
Device Path : \?\USB#VID_1A40&PID_0101#5&9bb4271&0&7#{f18a0e88-c30c-11d0-8815-00a0c906bed8} (GUID_DEVINTERFACE_USB_HUB)
Kernel Name : \Device\USBPDO-1
Device ID : USB\VID_1A40&PID_0101\5&9BB4271&0&7
Hardware IDs : USB\VID_1A40&PID_0101&REV_0100 USB\VID_1A40&PID_0101
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0018 (GUID_DEVCLASS_USB)
Driver : \SystemRoot\System32\drivers\UsbHub3.sys (Version: 10.0.19041.4355 Date: 2024-07-29 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\usbhub3.inf
Legacy BusType : PNPBus
Class : USB
Class GUID : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service : USBHUB3
Enumerator : USB
Location Info : Port_#0007.Hub_#0001
Address : 7
Location IDs : PCIROOT(0)#PCI(1500)#USBROOT(0)#USB(7), ACPI(SB)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS07)
Container ID : {f6a81742-5bd9-11ee-9906-806e6f6e6963}
Manufacturer Info : (Standard USB HUBs)
Capabilities : 0x84 (Removable, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Address : 7
EnhancedPowerMgmtEnabled : 0
IdleInWorkingState : 1
Power State : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)
------------------- USB Hub Descriptor -----------------
bDescriptorLength : 0x09 (9 bytes)
bDescriptorType : 0x29 (Hub Descriptor)
bNumberOfPorts : 0x04 (4 Ports)
wHubCharacteristics : 0x0080
Power switching : Ganged
Compound device : No
Over-current protection : Global
TT Think Time : At most 8 FS bit times
Port Indicators : Supported
bPowerOnToPowerGood : 0x32 (100 ms)
bHubControlCurrent : 0x64 (100 mA)
DeviceRemovable : 0x00
Bit 0 : 0 (reserved, any value)
Bit 1 : 0 (Device at Port 1 is removable)
Bit 2 : 0 (Device at Port 2 is removable)
Bit 3 : 0 (Device at Port 3 is removable)
Bit 4 : 0 (Device at Port 4 is removable)
Bit 5 : 0 (unused, must be 0)
Bit 6 : 0 (unused, must be 0)
Bit 7 : 0 (unused, must be 0)
PowerControlMask : 0xFF
Data (HexDump) : 09 29 04 80 00 32 64 00 FF .)…2d..
HubIsBusPowered : 0x00 (Self Powered)
---------------- Extended USB Hub Descriptor ---------------
HubType : 0x02 (Usb20Hub – hub descriptor is defined in USB 2.0 and 1.1 specifications)
HighestPortNumber : 0x04 (Port 4 is the highest)
UsbHubDescriptor : identical with “USB Hub Descriptor” shown above
Data (HexDump) : 09 29 04 80 00 32 64 00 FF .)…2d..
----------------- USB Hub Capabilities ----------------
HubIs2xCapable : 1 (Is 2.x capable)
Data (HexDump) : 01 00 00 00 ….
--------------- USB Hub Capabilities Ex ---------------
HighSpeedCapable : 1 (Yes)
HighSpeed : 1 (Yes)
MultiTtCapable : 1 (Yes)
HubIsMultiTt : 1 (Yes)
ArmedWakeOnConnect : 0 (No)
IsBusPowered : 0 (No)
IsRoot : 0 (No)
Data (HexDump) : 0F 00 00 00 ….
---------------- Connection Information ---------------
Connection Index : 0x07 (Port 7)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x02 (2)
Is Hub : 0x01 (yes)
Device Bus Speed : 0x02 (High-Speed)
Number of open Pipes : 0x01 (1 pipe to data endpoints)
Pipe[0] : EndpointID=1 Direction=IN ScheduleOffset=0 Type=Interrupt wMaxPacketSize=0x1 bInterval=12 -> 130 Bits/ms = 16250 Bytes/s
Data (HexDump) : 07 00 00 00 12 01 00 02 09 00 02 40 40 1A 01 01 ………..@@…
00 01 00 01 00 01 01 02 01 02 00 01 00 00 00 01 …………….
00 00 00 07 05 81 03 01 00 0C 00 00 00 00 …………..
--------------- Connection Information V2 -------------
Connection Index : 0x07 (7)
Length : 0x10 (16 bytes)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0) -> but Companion Port 1-16 does
ReservedMBZ : 0x00
Flags : 0x00
DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
ReservedMBZ : 0x00
Data (HexDump) : 07 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 …………….
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.0)
bDeviceClass : 0x09 (Hub)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x02 (Hi-speed hub with multiple TTs)
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x1A40 (TERMINUS TECHNOLOGY INC.)
idProduct : 0x0101
bcdDevice : 0x0100
iManufacturer : 0x00 (No String Descriptor)
iProduct : 0x01 (String Descriptor 1)
Language 0x0409 : “USB 2.0 Hub [MTT]”
iSerialNumber : 0x00 (No String Descriptor)
bNumConfigurations : 0x01 (1 Configuration)
Data (HexDump) : 12 01 00 02 09 00 02 40 40 1A 01 01 00 01 00 01 …….@@…….
00 01 ..
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0029 (41 bytes)
bNumInterfaces : 0x01 (1 Interface)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xE0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x01 (yes)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x32 (100 mA)
Data (HexDump) : 09 02 29 00 01 01 00 E0 32 09 04 00 00 01 09 00 ..)…..2…….
01 00 07 05 81 03 01 00 0C 09 04 00 01 01 09 00 …………….
02 00 07 05 81 03 01 00 0C ………
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x09 (Hub)
bInterfaceSubClass : 0x00
bInterfaceProtocol : 0x01
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 00 00 01 09 00 01 00 ………
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0001
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x01 (1 byte per packet)
bInterval : 0x0C (2048 microframes -> 256 ms)
Data (HexDump) : 07 05 81 03 01 00 0C …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x01
bNumEndpoints : 0x01 (1 Endpoint)
bInterfaceClass : 0x09 (Hub)
bInterfaceSubClass : 0x00
bInterfaceProtocol : 0x02
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 00 01 01 09 00 02 00 ………
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0001
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x01 (1 byte per packet)
bInterval : 0x0C (2048 microframes -> 256 ms)
Data (HexDump) : 07 05 81 03 01 00 0C …….
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English – United States)
Data (HexDump) : 04 03 09 04 ….
—— String Descriptor 1 ——
bLength : 0x24 (36 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “USB 2.0 Hub [MTT]”
Data (HexDump) : 24 03 55 00 53 00 42 00 20 00 32 00 2E 00 30 00 $.U.S.B. .2…0.
20 00 48 00 75 00 62 00 20 00 5B 00 4D 00 54 00 .H.u.b. .[.M.T.
54 00 5D 00 T.].
=========================== USB Port1 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 1-7-1
Properties : 0x00
IsUserConnectable : no
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x01 (Port 1)
========================== Summary =========================
Vendor ID : 0x152A (Thesycon Systemsoftware & Consulting GmbH)
Product ID : 0x87C0
USB Version : 2.0
Port maximum Speed : High-Speed
Device maximum Speed : High-Speed
Device Connection Speed : High-Speed
Self powered : yes
Demanded Current : 100 mA
Used Endpoints : 1
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB Composite Device
Device Path : \?\USB#VID_152A&PID_87C0#6&1803261a&1&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Kernel Name : \Device\USBPDO-2
Device ID : USB\VID_152A&PID_87C0\6&1803261A&1&1
Hardware IDs : USB\VID_152A&PID_87C0&REV_3144 USB\VID_152A&PID_87C0
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0028 (GUID_DEVCLASS_USB)
Driver : \SystemRoot\System32\drivers\usbccgp.sys (Version: 10.0.19041.4474 Date: 2024-07-29 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\usb.inf
Legacy BusType : PNPBus
Class : USB
Class GUID : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service : usbccgp
Enumerator : USB
Location Info : Port_#0001.Hub_#0002
Address : 1
Location IDs : PCIROOT(0)#PCI(1500)#USBROOT(0)#USB(7)#USB(1), ACPI(SB)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS07)#USB(1)
Container ID : {2a3cbcca-837a-11ef-99fb-a8a159647fa8}
Manufacturer Info : (Standard USB Host Controller)
Capabilities : 0x84 (Removable, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Address : 1
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D2, D3, wake from D0, wake from D2)
+++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\152A87C03144
osvc : REG_BINARY 00 00
---------------- Connection Information ---------------
Connection Index : 0x01 (Port 1)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x03 (3)
Is Hub : 0x00 (no)
Device Bus Speed : 0x02 (High-Speed)
Number of open Pipes : 0x00 (0 pipes to data endpoints)
Data (HexDump) : 01 00 00 00 12 01 00 02 EF 02 01 40 2A 15 C0 87 ………..@*…
44 31 01 02 00 02 01 02 00 03 00 00 00 00 00 01 D1…………..
00 00 00 …
--------------- Connection Information V2 -------------
Connection Index : 0x01 (1)
Length : 0x10 (16 bytes)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0)
ReservedMBZ : 0x00
Flags : 0x00
DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
ReservedMBZ : 0x00
Data (HexDump) : 01 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 …………….
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.0)
bDeviceClass : 0xEF (Miscellaneous)
bDeviceSubClass : 0x02
bDeviceProtocol : 0x01 (IAD – Interface Association Descriptor)
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x152A (Thesycon Systemsoftware & Consulting GmbH)
idProduct : 0x87C0
bcdDevice : 0x3144
iManufacturer : 0x01 (String Descriptor 1)
Language 0x0409 : “Holo Audio”
iProduct : 0x02 (String Descriptor 2)
Language 0x0409 : “Holo Audio UAC2.0 Gen2.1 Enhanced”
iSerialNumber : 0x00 (No String Descriptor)
bNumConfigurations : 0x02 (2 Configurations)
Data (HexDump) : 12 01 00 02 EF 02 01 40 2A 15 C0 87 44 31 01 02 …….@*…D1..
00 02 ..
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x00D5 (213 bytes)
bNumInterfaces : 0x02 (2 Interfaces)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x32 (100 mA)
Data (HexDump) : 09 02 D5 00 02 01 00 C0 32 08 0B 00 02 01 00 20 ……..2……
00 09 04 00 00 00 01 01 20 00 09 24 01 00 02 01 …….. ..$….
48 00 00 08 24 0A 29 03 07 00 00 08 24 0B 28 01 H…$.)…..$.(.
29 03 00 11 24 02 2A 01 01 00 28 02 00 00 00 00 )…$.…(….. 00 00 00 00 12 24 06 0A 2A 03 00 00 00 0C 00 00 …..$..…….
00 0C 00 00 00 00 0C 24 03 2B 01 03 00 0A 28 00 …….$.+….(.
00 00 09 04 01 00 00 01 02 20 00 09 04 01 01 02 ……… ……
01 02 20 00 10 24 01 2A 00 01 01 00 00 00 02 03 .. ..$.…….. 00 00 00 00 06 24 02 01 04 20 07 05 01 05 20 0B …..$… …. . 01 08 25 01 00 00 02 00 08 07 05 81 11 04 00 04 ..%…………. 09 04 01 02 02 01 02 20 00 10 24 01 2A 00 01 00 ……. ..$.…
00 00 80 02 00 00 00 00 00 06 24 02 01 04 20 07 ……….$… .
05 01 05 20 0B 01 08 25 01 00 00 02 00 08 07 05 … …%……..
81 11 04 00 04 …..
------------------- IAD Descriptor --------------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x0B (Interface Association Descriptor)
bFirstInterface : 0x00 (Interface 0)
bInterfaceCount : 0x02 (2 Interfaces)
bFunctionClass : 0x01 (Audio)
bFunctionSubClass : 0x00 (undefined)
bFunctionProtocol : 0x20 (AF 2.0)
iFunction : 0x00 (No String Descriptor)
Data (HexDump) : 08 0B 00 02 01 00 20 00 …… .
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x01 (Audio Control)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 00 00 00 01 01 20 00 ……. .
---- Audio Control Interface Header Descriptor 2.0 ----
bLength : 0x09 (9 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (Header 2.0)
bcdADC : 0x0200 (2.0)
bCategory : 0x01 (desktop speaker)
wTotalLength : 0x0048 (72 bytes)
bmControls : 0x00
D1..0: Latency : 0x00 (not present)
D7..2: Reserved : 0x00
Data (HexDump) : 09 24 01 00 02 01 48 00 00 .$….H..
--- Audio Control Clock Source Unit Descriptor 2.0 ----
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0A (Clock Source 2.0)
bClockID : 0x29
bmAttributes : 0x03
D1..0: Clock Type : 0x03
D2 : Sync to SOF : 0x00
D7..3: Reserved : 0x00
bmControls : 0x07
D1..0: Clock Frequency : 0x03 (host programmable)
D3..2: Clock Validity : 0x01 (read only)
D7..4: Reserved : 0x00
bAssocTerminal : 0x00
iClockSource : 0x00 (No String Descriptor)
Data (HexDump) : 08 24 0A 29 03 07 00 00 .$.)….
--- Audio Control Clock Selector Unit Descriptor 2.0 --
bLength : 0x08 (8 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x0B (Clock Selector 2.0)
bClockID : 0x28 (40)
bNrInPins : 0x01 (1 Input Pin)
baCSourceID[1] : 0x29 (41)
bmControls : 0x03
D1..0: Clock Selector : 0x03 (host programmable)
D7..2: Reserved : 0x00
iClockSelector : 0x00 (No String Descriptor)
Data (HexDump) : 08 24 0B 28 01 29 03 00 .$.(.)..
----- Audio Control Input Terminal Descriptor 2.0 -----
bLength : 0x11 (17 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Input Terminal 2.0)
bTerminalID : 0x2A (42)
wTerminalType : 0x0101 (USB Streaming)
bAssocTerminal : 0x00
bCSourceID : 0x28 (40)
bNrChannels : 0x02 (2 Channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x00 (No String Descriptor)
bmControls : 0x0000
D1..0 : Copy Protect : 0x00 (not present)
D3..2 : Connector : 0x00 (not present)
D5..4 : Overload : 0x00 (not present)
D7..6 : Cluster : 0x00 (not present)
D9..8 : Underflow : 0x00 (not present)
D11..10: Overflow : 0x00 (not present)
D15..12: Reserved : 0x00
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 11 24 02 2A 01 01 00 28 02 00 00 00 00 00 00 00 .$.*…(……..
00 .
------ Audio Control Feature Unit Descriptor 2.0 ------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x06 (Feature Unit 2.0)
bUnitID : 0x0A (10)
bSourceID : 0x2A (42)
bmaControls[0] : 0x03, 0x00, 0x00, 0x00
D1..0 : Mute : 0x03 (host programmable)
D3..2 : Volume : 0x00 (not present)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[1] : 0x0C, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
bmaControls[2] : 0x0C, 0x00, 0x00, 0x00
D1..0 : Mute : 0x00 (not present)
D3..2 : Volume : 0x03 (host programmable)
D5..4 : Bass : 0x00 (not present)
D7..6 : Mid : 0x00 (not present)
D9..8 : Treble : 0x00 (not present)
D11..10: Graph Equalizer : 0x00 (not present)
D13..12: Automatic Gain : 0x00 (not present)
D15..14: Delay : 0x00 (not present)
D17..16: Bass Boost : 0x00 (not present)
D19..18: Loudness : 0x00 (not present)
D21..20: Input Gain : 0x00 (not present)
D23..22: Input Gain Pad : 0x00 (not present)
D25..24: Phase Inverter : 0x00 (not present)
D27..26: Underflow : 0x00 (not present)
D29..28: Overflow : 0x00 (not present)
D31..30: reserved : 0x00 (not present)
iFeature : 0x00 (No String Descriptor)
Data (HexDump) : 12 24 06 0A 2A 03 00 00 00 0C 00 00 00 0C 00 00 .$..*………..
00 00 ..
----- Audio Control Output Terminal Descriptor 2.0 ----
bLength : 0x0C (12 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x03 (Output Terminal 2.0)
bTerminalID : 0x2B (43)
wTerminalType : 0x0301 (Speaker)
bAssocTerminal : 0x00 (0)
bSourceID : 0x0A (10)
bCSourceID : 0x28 (40)
iTerminal : 0x00 (No String Descriptor)
Data (HexDump) : 0C 24 03 2B 01 03 00 0A 28 00 00 00 .$.+….(…
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 01 00 00 01 02 20 00 ……. .
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x01
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 01 01 02 01 02 20 00 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x2A (42)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x00000001 (PCM)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000003 (FL, FR)
iChannelNames : 0x00 (No String Descriptor)
Data (HexDump) : 10 24 01 2A 00 01 01 00 00 00 02 03 00 00 00 00 .$.*…………
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
Data (HexDump) : 06 24 02 01 04 20 .$…
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0B20
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x01 (1 additional transactions per microframe -> allows 513..1024 byte per packet)
Bits 10..0 : 0x320 (800 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
Data (HexDump) : 07 05 01 05 20 0B 01 …. ..
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0002
Data (HexDump) : 08 25 01 00 00 02 00 08 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x01 (Interface 1)
bAlternateSetting : 0x02
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x01 (Audio)
bInterfaceSubClass : 0x02 (Audio Streaming)
bInterfaceProtocol : 0x20 (Device Protocol Version 2.0)
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 01 02 02 01 02 20 00 ……. .
------ Audio Streaming Interface Descriptor 2.0 -------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x01 (AS General)
bTerminalLink : 0x2A (42)
bmControls : 0x00
D1..0: Active Alt Settng: 0x00 (not present)
D3..2: Valid Alt Settng : 0x00 (not present)
D7..4: Reserved : 0x00
bFormatType : 0x01 (FORMAT_TYPE_I)
bmFormats : 0x80000000 (TYPE_I_RAW_DATA)
bNrChannels : 0x02 (2 channels)
bmChannelConfig : 0x00000000 (-)
iChannelNames : 0x00 (No String Descriptor)
Data (HexDump) : 10 24 01 2A 00 01 00 00 00 80 02 00 00 00 00 00 .$.*…………
----- Audio Streaming Format Type Descriptor 2.0 ------
bLength : 0x06 (6 bytes)
bDescriptorType : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype : 0x02 (Format Type)
bFormatType : 0x01 (FORMAT_TYPE_I)
bSubslotSize : 0x04 (4 bytes)
bBitResolution : 0x20 (32 bits)
Data (HexDump) : 06 24 02 01 04 20 .$…
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x05 (TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
wMaxPacketSize : 0x0B20
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x01 (1 additional transactions per microframe -> allows 513..1024 byte per packet)
Bits 10..0 : 0x320 (800 bytes per packet)
bInterval : 0x01 (1 microframe -> 0.125 ms)
Data (HexDump) : 07 05 01 05 20 0B 01 …. ..
----------- Audio Data Endpoint Descriptor ------------
bLength : 0x08 (8 bytes)
bDescriptorType : 0x25 (Audio Endpoint Descriptor)
bDescriptorSubtype : 0x01 (General)
bmAttributes : 0x00
D0 : Sampling Freq : 0x00 (not supported)
D1 : Pitch : 0x00 (not supported)
D6..2: Reserved : 0x00
D7 : MaxPacketsOnly : 0x00 (no)
bLockDelayUnits : 0x00 (Undefined)
wLockDelay : 0x0002
Data (HexDump) : 08 25 01 00 00 02 00 08 .%……
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x11 (TransferType=Isochronous SyncType=None EndpointType=Feedback)
wMaxPacketSize : 0x0004
Bits 15..13 : 0x00 (reserved, must be zero)
Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
Bits 10..0 : 0x04 (4 bytes per packet)
bInterval : 0x04 (8 microframes -> 1 ms)
Data (HexDump) : 07 05 81 11 04 00 04 …….
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0012 (18 bytes)
bNumInterfaces : 0x01 (1 Interface)
bConfigurationValue : 0x02 (Configuration 2)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x32 (100 mA)
Data (HexDump) : 09 02 12 00 01 02 00 C0 32 09 04 00 00 00 FF FF ……..2…….
FF 00 ..
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0xFF
bInterfaceProtocol : 0xFF
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 00 00 00 FF FF FF 00 ………
--------- Device Qualifier Descriptor (for Full-Speed) --------
bLength : 0x0A (10 bytes)
bDescriptorType : 0x06 (Device_qualifier Descriptor)
bcdUSB : 0x200 (USB Version 2.00)
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x40 (64 Bytes)
bNumConfigurations : 0x01 (1 other-speed configuration)
bReserved : 0x00
Data (HexDump) : 0A 06 00 02 00 00 00 40 01 00 …….@..
------------ Other Speed Configuration Descriptor -------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x07 (Other_speed_configuration Descriptor)
wTotalLength : 0x0012 (18 bytes)
bNumInterfaces : 0x01 (1 Interface)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xC0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x01 (yes)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x32 (100 mA)
Data (HexDump) : 09 07 12 00 01 01 00 C0 32 09 04 00 00 00 FF FF ……..2…….
FF 00 ..
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0xFF
bInterfaceProtocol : 0xFF
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 00 00 00 FF FF FF 00 ………
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English – United States)
Data (HexDump) : 04 03 09 04 ….
—— String Descriptor 1 ——
bLength : 0x16 (22 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “Holo Audio”
Data (HexDump) : 16 03 48 00 6F 00 6C 00 6F 00 20 00 41 00 75 00 ..H.o.l.o. .A.u.
64 00 69 00 6F 00 d.i.o.
—— String Descriptor 2 ——
bLength : 0x44 (68 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : “Holo Audio UAC2.0 Gen2.1 Enhanced”
Data (HexDump) : 44 03 48 00 6F 00 6C 00 6F 00 20 00 41 00 75 00 D.H.o.l.o. .A.u.
64 00 69 00 6F 00 20 00 55 00 41 00 43 00 32 00 d.i.o. .U.A.C.2.
2E 00 30 00 20 00 47 00 65 00 6E 00 32 00 2E 00 ..0. .G.e.n.2…
31 00 20 00 45 00 6E 00 68 00 61 00 6E 00 63 00 1. .E.n.h.a.n.c.
65 00 64 00 e.d.
+++++++++++++++++ Device Information ++++++++++++++++++
Friendly Name : Holo Audio UAC2.0 Gen2.1 Enhanced
Device Description : USB Audio 2.0
Device Path 1 : \?\USB#VID_152A&PID_87C0&MI_00#7&d1d4b5f&2&0000#{65e8773e-8f56-11d0-a3b9-00a0c9223196}\msft_wave (AM_KSCATEGORY_RENDER)
Device Path 2 : \?\USB#VID_152A&PID_87C0&MI_00#7&d1d4b5f&2&0000#{dda54a40-1e4c-11d1-a050-405705c10000}\msft_topo (STATIC_KSCATEGORY_TOPOLOGY)
Device Path 3 : \?\USB#VID_152A&PID_87C0&MI_00#7&d1d4b5f&2&0000#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\msft_wave (AM_KSCATEGORY_AUDIO)
Device Path 4 : \?\USB#VID_152A&PID_87C0&MI_00#7&d1d4b5f&2&0000#{eb115ffc-10c8-4964-831d-6dcb02e6f23f}\msft_wave (STATIC_KSCATEGORY_REALTIME)
Device Path 5 : \?\USB#VID_152A&PID_87C0&MI_00#7&d1d4b5f&2&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\msft_wave (AM_KSCATEGORY_CAPTURE)
Kernel Name : \Device\0000004e
Device ID : USB\VID_152A&PID_87C0&MI_00\7&D1D4B5F&2&0000
Hardware IDs : USB\VID_152A&PID_87C0&REV_3144&MI_00 USB\VID_152A&PID_87C0&MI_00
Driver KeyName : {4d36e96c-e325-11ce-bfc1-08002be10318}\0009 (GUID_DEVCLASS_MEDIA)
Driver : \SystemRoot\System32\drivers\usbaudio2.sys (Version: 10.0.19041.1 Date: 2019-12-07 Company: Microsoft Corporation)
Driver Inf : C:\Windows\inf\usbaudio2.inf
Legacy BusType : PNPBus
Class : MEDIA
Class GUID : {4d36e96c-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_MEDIA)
Service : usbaudio2
Enumerator : USB
Location Info : 0000.0015.0000.007.001.000.000.000.000
Address : 1
Manufacturer Info : Microsoft
Capabilities : 0x80 (SurpriseRemovalOK)
Status : 0x0180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D2, D3, wake from D0, wake from D2)
+++++++++++++++++ Device Information ++++++++++++++++++
Friendly Name : Speakers (Holo Audio UAC2.0 Gen2.1 Enhanced)
Device Description : Audio Endpoint
Device Path : \?\SWD#MMDEVAPI#{0.0.0.00000000}.{5c133852-63f8-45fc-bc9f-2563a0da2021}#{e6327cad-dcec-4949-ae8a-991e976a79d2} (DEVINTERFACE_AUDIO_RENDER)
Kernel Name : \Device\00000051
Device ID : SWD\MMDEVAPI{0.0.0.00000000}.{5C133852-63F8-45FC-BC9F-2563A0DA2021}
Hardware IDs : MMDEVAPI\AudioEndpoints
Driver KeyName : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e}\0010 (AUDIOENDPOINT_CLASS_UUID)
Driver Inf : C:\Windows\inf\audioendpoint.inf
Legacy BusType : PNPBus
Class : AudioEndpoint
Class GUID : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e} (AUDIOENDPOINT_CLASS_UUID)
Enumerator : SWD
Location Info : –
Address : 4294967295 (0xFFFFFFFF)
Manufacturer Info : Microsoft
Capabilities : 0xD0 (UniqueID, RawDeviceOK, SurpriseRemovalOK)
Status : 0x0180200A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
EnhancedPowerMgmtEnabled : 0
Power State : D0 (supported: D0, D3)
=========================== USB Port2 ===========================
Connection Status : 0x00 (No device is connected)
Port Chain : 1-7-2
Properties : 0x00
IsUserConnectable : no
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x02 (Port 2)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0)
ReservedMBZ : 0x00
=========================== USB Port3 ===========================
Connection Status : 0x00 (No device is connected)
Port Chain : 1-7-3
Properties : 0x00
IsUserConnectable : no
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x03 (Port 3)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0)
ReservedMBZ : 0x00
=========================== USB Port4 ===========================
Connection Status : 0x00 (No device is connected)
Port Chain : 1-7-4
Properties : 0x00
IsUserConnectable : no
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x04 (Port 4)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0)
ReservedMBZ : 0x00
We can observe a few points from the enumeration texts of the USB flash drive and 4 DACs:
- Most DACs demand a specified amount of current while the SMSL M500 DAC specified zero, i.e. bus-powered or self-powered USB receiver. As stated earlier, the USB flash drive demands 98 mA for its operation. This is always the case for any USB flash drives but the demanded current can vary.
- Each USB device has Endpoint Descriptors and its Transfer Type.
- USB flash drive specified its Endpoint Descriptor as (TransferType=Bulk)
- All DACs specified the Endpoint Descriptors as
(TransferType=Isochronous SyncType=Asynchronous EndpointType=Data)
and
(TransferType=Isochronous SyncType=None EndpointType=Data) - It means the DACs can operate either in Asynchronous or Synchronous SyncType. Asynchronous Mode is better since the DAC clock is used. Synchronous Mode uses host clock; it may be necessary for the DAC USB receiver to reclock the data received.
- Two of the DACs have an Interface for Device Firmware Upgrade (DFU).
USB Bulk Transfer vs Isochronous Transfer
The block diagram below shows the basic transfer flow for Bulk Transfer and Isochronous Transfer. The standard Isochronous Transfer is a one-way data transfer.
UAC made modifications to the way Isochronous Transfer works for Audio so it is not really a one-way data transfer, especially when in Asynchronous mode where the DAC clock is used. The diagram below from an EDN article written by XMOS [12] simplifies the complexity of USB Audio transfers.
Another good reference is Silicon Labs’ USB Audio Simplified [13] which explains in simple language and illustrations the differences between Asynchronous Mode and Synchronous Mode USB Audio.
We captured the actual USB Audio data transmission in the following section (work in progress).
USB Sniffing with Wireshark
Let’s examine the actual data exchange between a Windows PC and a USB DAC (AudioQuest DragonFly) when playing a very short CD-quality audio file. A USB hardware sniffer device derived from Alex Taradov [14] design is used. The USB receptacles are A and B instead of A and C as in the original design. We use Wireshark [15] software for extracting and viewing data from the sniffer.
When Windows Media player played the short audio file, the host setups the audio device such as selecting sampling rate, bit depth, and volume. During this stage, it is a two-way communication with the host initiate sending the packets and the DAC responds back with data. Wireshark shows this as
Source = host, Destination = 13.0
Initially the responds come back with 3 bytes of data and an NAK (negative acknowledgement) which indicates the device is not ready.
Source = 13.0, Destination = host
The host retries until the device is ready. After the audio setup is done, the audio track data is sent in a different way. This is using pipe 1 endpoint.
Source = host, Destination = 13.1
The audio data of this packet is only 264 bytes; the first data byte being the PID and the last two data bytes being the CRC as shown below as Hex Dump. Wireshark shows the CRC as good.
0000 c3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0100 00 00 00 00 00 00 00 00 00 91 0d
The next screenshot shows non-zero data stream. Wireshark shows the CRC as good.
0000 c3 00 00 00 00 e8 ff 00 00 00 00 df ff 00 00 00
0010 00 e2 ff 00 00 00 00 e7 ff 00 00 00 00 e7 ff 00
0020 00 00 00 e4 ff 00 00 00 00 eb ff 00 00 00 00 e8
0030 ff 00 00 00 00 eb ff 00 00 00 00 e8 ff 00 00 00
0040 00 e7 ff 00 00 00 00 ec ff 00 00 00 00 f5 ff 00
0050 00 00 00 f0 ff 00 00 00 00 ed ff 00 00 00 00 f2
0060 ff 00 00 00 00 ef ff 00 00 00 00 f0 ff 00 00 00
0070 00 ea ff 00 00 00 00 f2 ff 00 00 00 00 f8 ff 00
0080 00 00 00 fa ff 00 00 00 00 f9 ff 00 00 00 00 f7
0090 ff 00 00 00 00 fc ff 00 00 00 00 ff ff 00 00 00
00a0 00 fc ff 00 00 00 00 00 00 00 00 00 00 04 00 00
00b0 00 00 00 0b 00 00 00 00 00 02 00 00 00 00 00 04
00c0 00 00 00 00 00 0b 00 00 00 00 00 0c 00 00 00 00
00d0 00 13 00 00 00 00 00 16 00 00 00 00 00 11 00 00
00e0 00 00 00 0e 00 00 00 00 00 23 00 00 00 00 00 21
00f0 00 00 00 00 00 21 00 00 00 00 00 1f 00 00 00 00
0100 00 1d 00 00 00 00 00 2b 00 d8 21
This section will be expanded further.
Conclusion
By illustrating and summarizing the key differences between Bulk Transfer and Isochronous Transfer, hopefully we achieve the objective of correcting the common misunderstanding that USB Audio endpoint is the same as USB mass storage or printer.
For USB Audio, it is very important that the data signal arrives without any error and in proper timing. The USB DAC will not be able to correct missing data or incorrect timing. Bad USB Audio data transmission is audibly different compared to perfect data transmission.
Future Work
We plan to expand this article by including explanation and graphical illustration of Asynchronous SyncType Isochronous Transfer for USB Audio.
Why USB Audio Cables Can Be Expensive
We spend time, money, and resources experimenting with different wire materials, insulator materials, wire geometries, shielding techniques, and quality USB plugs when developing and testing USB Audio cables. A reference-grade audio system is also required to test and voice the cable.
A good USB Audio cable should have:
- characteristic impedance of its data pair close to the 90 Ω target, even though USB specification is generous at 90 Ω ± 15%. Poor impedance and impedance discontinuity on the transmission line can lead to reflections.
- high-quality gold plated contacts for reliable electrical connection and to prevent reflections.
- good shielding to protect the data pair from EMI and RFI, especially with USB 2.0 HS signal at low ± 0.4V.
- good quality wires for power delivery. The size of the VBUS and GND wires and its material can affect power delivery and sound quality significantly.
- High-end DAC like MSB uses an external ProUSB adapter, which converts USB to optical, consumes 400 mA from VBUS.
- There are also USB Galvanic Isolators used in between streamer and USB DAC which are bus-powered and may consume high current; firstly to power itself and secondly to power the DAC using regenerated, isolated 5V.
- cable length that matches the size of the wires used. Too long can cause signal loss, reduced speed, and voltage drop especially for VBUS if the wires are not sized properly.
When looking for USB Audio cable, please keep the length between 1.0m to 1.5m. Shorter cable is better and cheaper but may affect components’ placement flexibility. Please check our AA USB Audio Cables.
This article first published on 15 Nov 2024, last updated on 18 Nov 2024 by Anwar Ali, DEng