Open
Description
Hosting CP210x serial devices such as the ESP32 is not supported with the srldrvce
library.
Here is an Example USB Device Descriptor for the NodeMCU-32S:
=========================== USB Port4 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 1-4
========================== Summary =========================
Vendor ID : 0x10C4 (Silicon Laboratories, Inc.)
Product ID : 0xEA60
USB Version : 1.1
Port maximum Speed : High-Speed
Device maximum Speed : Full-Speed
Device Connection Speed : Full-Speed
Self powered : no
Demanded Current : 100 mA
Used Endpoints : 3
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Friendly Name : Silicon Labs CP210x USB to UART Bridge (COM6)
Device Description : Silicon Labs CP210x USB to UART Bridge
Device Path 1 : \\?\USB#VID_10C4&PID_EA60#0001#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Device Path 2 : \\?\USB#VID_10C4&PID_EA60#0001#{86e0d1e0-8089-11d0-9ce4-08003e301f73} (GUID_DEVINTERFACE_COMPORT)
Device Path 3 : \\?\USB#VID_10C4&PID_EA60#0001#{a2a39220-39f4-4b88-aecb-3d86a35dc748}
Kernel Name : \Device\USBPDO-15
Device ID : USB\VID_10C4&PID_EA60\0001
Hardware IDs : USB\VID_10C4&PID_EA60&REV_0100 USB\VID_10C4&PID_EA60
Driver KeyName : {4d36e978-e325-11ce-bfc1-08002be10318}\0002 (GUID_DEVCLASS_PORTS)
Driver : \SystemRoot\system32\DRIVERS\silabser.sys (Version: 6.7.4.261 Date: 2021-12-20)
Driver Inf : C:\Windows\inf\oem76.inf
Legacy BusType : PNPBus
Class : Ports
Class GUID : {4d36e978-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_PORTS)
Service : silabser
Enumerator : USB
Location Info : Port_#0004.Hub_#0001
Location IDs : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(4), ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS04)
Container ID : {34c052a1-08b6-5809-881e-95820d434537}
Manufacturer Info : Silicon Labs
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
HcDisableSelectiveSuspend: 0
EnableSelectiveSuspend : 0
SelectiveSuspendEnabled : 0
EnhancedPowerMgmtEnabled : 0
IdleInWorkingState : 1
WakeFromSleepState : 0
Power State : D3 (supported: D0, D3, wake from D0)
COM-Port : COM6 (\Device\Silabser7)
---------------- Connection Information ---------------
Connection Index : 0x04 (Port 4)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x2C (44)
Is Hub : 0x00 (no)
Device Bus Speed : 0x01 (Full-Speed)
Number Of Open Pipes : 0x02 (2 pipes to data endpoints)
Pipe[0] : EndpointID=1 Direction=IN ScheduleOffset=0 Type=Bulk wMaxPacketSize=64 bInterval=0
Pipe[1] : EndpointID=1 Direction=OUT ScheduleOffset=0 Type=Bulk wMaxPacketSize=64 bInterval=0
Data (HexDump) : 04 00 00 00 12 01 10 01 00 00 00 40 C4 10 60 EA ...........@..`.
00 01 01 02 03 01 01 01 00 2C 00 02 00 00 00 01 .........,......
00 00 00 07 05 81 02 40 00 00 00 00 00 00 07 05 .......@........
01 02 40 00 00 00 00 00 00 ..@......
--------------- Connection Information V2 -------------
Connection Index : 0x04 (4)
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) : 04 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 : 0x110 (USB Version 1.1)
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x10C4 (Silicon Laboratories, Inc.)
idProduct : 0xEA60
bcdDevice : 0x0100
iManufacturer : 0x01 (String Descriptor 1)
iProduct : 0x02 (String Descriptor 2)
iSerialNumber : 0x03 (String Descriptor 3)
bNumConfigurations : 0x01 (1 Configuration)
Data (HexDump) : 12 01 10 01 00 00 00 40 C4 10 60 EA 00 01 01 02 .......@..`.....
03 01 ..
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0020 (32 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 : 0x32 (100 mA)
Data (HexDump) : 09 02 20 00 01 01 00 80 32 09 04 00 00 02 FF 00 .. .....2.......
00 02 07 05 81 02 40 00 00 07 05 01 02 40 00 00 ......@......@..
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0x00
bInterfaceProtocol : 0x00
iInterface : 0x02 (String Descriptor 2)
Data (HexDump) : 09 04 00 00 02 FF 00 00 02 .........
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0040 (64 bytes)
bInterval : 0x00 (ignored)
Data (HexDump) : 07 05 81 02 40 00 00 ....@..
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0040 (64 bytes)
bInterval : 0x00 (ignored)
Data (HexDump) : 07 05 01 02 40 00 00 ....@..
-------------------- String Descriptors -------------------
String descriptors are not available (because the device is in low power state)