Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Short config desc has wrong bDescriptorType (IDFGH-14788) #15526

Open
3 tasks done
alex-k8 opened this issue Mar 5, 2025 · 15 comments
Open
3 tasks done

Short config desc has wrong bDescriptorType (IDFGH-14788) #15526

alex-k8 opened this issue Mar 5, 2025 · 15 comments
Assignees
Labels
Awaiting Response awaiting a response from the author Status: Selected for Development Issue is selected for development Type: Bug bugs in IDF

Comments

@alex-k8
Copy link

alex-k8 commented Mar 5, 2025

Answers checklist.

  • I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.

v5.4.0

Espressif SoC revision.

ESP32-S3

Operating System used.

Windows

How did you build your project?

VS Code IDE

If you are using Windows, please specify command line type.

PowerShell

Development Kit.

Custom Board

Power Supply used.

Battery

What is the expected behavior?

I expect the enumeration and parsing to succeed successfully when connecting a USB Keyboard

What is the actual behavior?

Instead, I get the error Short config desc has wrong bDescriptorType

Steps to reproduce.

  1. Build and upload the HID Host or the USB Host Lib Example code
  2. Connect the NuPhy Air75 HE keyboard
  3. Check the logs

Debug Logs.

�[0;32mI (6795) CLASS: Deregistering Client�[0m
�[0;32mI (6795) USB host lib: No more clients�[0m
�[0;32mI (6795) USB host lib: All devices marked as free�[0m
�[0;32mI (6895) USB host lib: End of the example�[0m
�[0;32mI (6895) main_task: Returned from app_main()�[0m
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0xb (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x21d4
load:0x403c8700,len:0xed8
load:0x403cb700,len:0x3468
entry 0x403c8974
I (26) boot: ESP-IDF v5.5-dev-1942-g1160a86ba0 2nd stage bootloader
I (27) boot: compile time Mar  3 2025 22:28:53
I (27) boot: Multicore bootloader
D (29) bootloader_flash: non-XMC chip detected by SFDP Read (00), skip.
D (35) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
D (41) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
D (48) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
D (54) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
D (60) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
D (67) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
I (73) boot: chip revision: v0.2
I (76) boot: efuse block revision: v1.3
D (80) boot.esp32s3: magic e9
D (82) boot.esp32s3: segments 03
D (85) boot.esp32s3: spi_mode 02
D (88) boot.esp32s3: spi_speed 0f
D (91) boot.esp32s3: spi_size 01
I (94) boot.esp32s3: Boot SPI Speed : 80MHz
I (98) boot.esp32s3: SPI Mode       : DIO
I (102) boot.esp32s3: SPI Flash Size : 2MB
D (106) boot: Enabling RTCWDT(9000 ms)
I (109) boot: Enabling RNG early entropy source...
D (114) bootloader_flash: rodata starts from paddr=0x00008000, size=0xc00, will be mapped to vaddr=0x3c000000
V (123) bootloader_flash: after mapping, starting from paddr=0x00000000 and vaddr=0x3c000000, 0x10000 bytes are mapped
D (134) boot: mapped partition table 0x8000 at 0x3c008000
D (139) flash_parts: partition table verified, 4 entries
I (144) boot: Partition Table:
I (147) boot: ## Label            Usage          Type ST Offset   Length
D (153) boot: load partition table entry 0x3c008000
D (158) boot: type=1 subtype=2
I (161) boot:  0 nvs              WiFi data        01 02 00009000 00006000
D (167) boot: load partition table entry 0x3c008020
D (172) boot: type=1 subtype=1
I (175) boot:  1 phy_init         RF data          01 01 0000f000 00001000
D (181) boot: load partition table entry 0x3c008040
D (186) boot: type=0 subtype=0
I (189) boot:  2 factory          factory app      00 00 00010000 00100000
I (195) boot: End of partition table
D (198) boot: Trying partition index -1 offs 0x10000 size 0x100000
D (204) esp_image: reading image header @ 0x10000
D (209) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (215) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (222) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (228) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (235) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (241) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (248) esp_image: image header: 0xe9 0x06 0x02 0x01 40375400
V (253) esp_image: loading segment header 0 at offset 0x10018
D (259) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (265) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
V (272) esp_image: segment data length 0xcdf4 data starts 0x10020
V (278) esp_image: MMU page size 0x10000
V (281) esp_image: segment 0 map_segment 1 segment_data_offs 0x10020 load_addr 0x3c020020
I (289) esp_image: segment 0: paddr=00010020 vaddr=3c020020 size=0cdf4h ( 52724) map
D (297) esp_image: free data page_count 0x00000200
D (301) bootloader_flash: rodata starts from paddr=0x00010020, size=0xcdf4, will be mapped to vaddr=0x3c000000
V (311) bootloader_flash: after mapping, starting from paddr=0x00010000 and vaddr=0x3c000000, 0x10000 bytes are mapped
V (331) esp_image: loading segment header 1 at offset 0x1ce14
D (331) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (333) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
V (340) esp_image: segment data length 0x2ad4 data starts 0x1ce1c
V (346) esp_image: MMU page size 0x10000
V (349) esp_image: segment 1 map_segment 0 segment_data_offs 0x1ce1c load_addr 0x3fc92c00
I (357) esp_image: segment 1: paddr=0001ce1c vaddr=3fc92c00 size=02ad4h ( 10964) load
D (365) esp_image: free data page_count 0x00000200
D (369) bootloader_flash: rodata starts from paddr=0x0001ce1c, size=0x2ad4, will be mapped to vaddr=0x3c000000
V (379) bootloader_flash: after mapping, starting from paddr=0x00010000 and vaddr=0x3c000000, 0x10000 bytes are mapped
V (392) esp_image: loading segment header 2 at offset 0x1f8f0
D (395) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (401) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
V (408) esp_image: segment data length 0x720 data starts 0x1f8f8
V (414) esp_image: MMU page size 0x10000
V (417) esp_image: segment 2 map_segment 0 segment_data_offs 0x1f8f8 load_addr 0x40374000
I (425) esp_image: segment 2: paddr=0001f8f8 vaddr=40374000 size=00720h (  1824) load
D (433) esp_image: free data page_count 0x00000200
D (437) bootloader_flash: rodata starts from paddr=0x0001f8f8, size=0x720, will be mapped to vaddr=0x3c000000
V (447) bootloader_flash: after mapping, starting from paddr=0x00010000 and vaddr=0x3c000000, 0x20000 bytes are mapped
V (458) esp_image: loading segment header 3 at offset 0x20018
D (463) bootloader_flash: mmu set block paddr=0x00020000 (was 0xffffffff)
D (469) bootloader_flash: mmu set block paddr=0x00020000 (was 0xffffffff)
V (476) esp_image: segment data length 0x1dda0 data starts 0x20020
V (482) esp_image: MMU page size 0x10000
V (485) esp_image: segment 3 map_segment 1 segment_data_offs 0x20020 load_addr 0x42000020
I (493) esp_image: segment 3: paddr=00020020 vaddr=42000020 size=1dda0h (122272) map
D (501) esp_image: free data page_count 0x00000200
D (505) bootloader_flash: rodata starts from paddr=0x00020020, size=0x1dda0, will be mapped to vaddr=0x3c000000
V (515) bootloader_flash: after mapping, starting from paddr=0x00020000 and vaddr=0x3c000000, 0x20000 bytes are mapped
V (547) esp_image: loading segment header 4 at offset 0x3ddc0
D (547) bootloader_flash: mmu set block paddr=0x00030000 (was 0xffffffff)
D (548) bootloader_flash: mmu set block paddr=0x00030000 (was 0xffffffff)
V (554) esp_image: segment data length 0xe3dc data starts 0x3ddc8
V (560) esp_image: MMU page size 0x10000
V (564) esp_image: segment 4 map_segment 0 segment_data_offs 0x3ddc8 load_addr 0x40374720
I (572) esp_image: segment 4: paddr=0003ddc8 vaddr=40374720 size=0e3dch ( 58332) load
D (579) esp_image: free data page_count 0x00000200
D (584) bootloader_flash: rodata starts from paddr=0x0003ddc8, size=0xe3dc, will be mapped to vaddr=0x3c000000
V (593) bootloader_flash: after mapping, starting from paddr=0x00030000 and vaddr=0x3c000000, 0x20000 bytes are mapped
V (617) esp_image: loading segment header 5 at offset 0x4c1a4
D (617) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (617) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
V (624) esp_image: segment data length 0x1c data starts 0x4c1ac
V (629) esp_image: MMU page size 0x10000
V (633) esp_image: segment 5 map_segment 0 segment_data_offs 0x4c1ac load_addr 0x600fe000
I (641) esp_image: segment 5: paddr=0004c1ac vaddr=600fe000 size=0001ch (    28) load
D (649) esp_image: free data page_count 0x00000200
D (653) bootloader_flash: rodata starts from paddr=0x0004c1ac, size=0x1c, will be mapped to vaddr=0x3c000000
V (663) bootloader_flash: after mapping, starting from paddr=0x00040000 and vaddr=0x3c000000, 0x10000 bytes are mapped
V (673) esp_image: image start 0x00010000 end of last section 0x0004c1c8
D (679) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (686) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (692) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (699) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (705) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (712) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (719) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (725) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (732) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (738) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (745) boot: Calculated hash: 43ab35d7f4bcfeb4c964175247bf2fa042e4c6bf55e61ef07ad312bb650daa90
I (759) boot: Loaded app from partition at offset 0x10000
I (759) boot: Disabling RNG early entropy source...
D (763) boot: Mapping segment 0 as DROM
D (766) boot: Mapping segment 3 as IROM
D (770) boot: calling set_cache_and_start_app
D (774) boot: configure drom and irom and start
V (778) boot: rodata starts from paddr=0x00010020, vaddr=0x3c020020, size=0xcdf4
V (785) boot: after mapping rodata, starting from paddr=0x00010000 and vaddr=0x3c020000, 0x10000 bytes are mapped
V (795) boot: mapped one page of the rodata, from paddr=0x00010000 and vaddr=0x3dff0000, 0x10000 bytes are mapped
V (805) boot: text starts from paddr=0x00020020, vaddr=0x42000020, size=0x1dda0
V (812) boot: after mapping text, starting from paddr=0x00020000 and vaddr=0x42000000, 0x20000 bytes are mapped
D (822) boot: start: 0x40375400
V (837) mmap: after coalescing, 1 regions are left�[0m
�[0;32mI (837) cpu_start: Multicore app�[0m
D (837) cpu_start: Pro cpu up�[0m
D (837) cpu_start: Starting app cpu, entry point is 0x403752d8�[0m
D (0) cpu_start: App cpu up�[0m
V CACHE_ERR: illegal error intr clr & ena mask is: 0x3f
V CACHEDER8:1)core 1 access erroK  intr clr & ena mas4 is0: �x0f
V CACHE_ERR: illegal error intr clr & ena mask is: 0x3f
V CACHE_ERR: core 0 access error intr clr & ena mask is: 0x1f
D (869) cpu_start: calling init function: 0x42001b04 on core: 0�[0m
D (873) cpu_start: calling init function: 0x42001d90 on core: 0�[0m
�[0;32mI (879) cpu_start: Pro cpu start user code�[0m
�[0;32mI (884) cpu_start: cpu freq: 160000000 Hz�[0m
D (889) cpu_start: calling init function: 0x42001a34 on core: 0�[0m
�[0;32mI (895) app_init: Application information:�[0m
�[0;32mI (899) app_init: Project name:     usb_host_lib_example�[0m
�[0;32mI (905) app_init: App version:      1�[0m
�[0;32mI (910) app_init: Compile time:     Mar  3 2025 22:29:04�[0m
�[0;32mI (916) app_init: ELF file SHA256:  131d6ca3b...�[0m
�[0;32mI (921) app_init: ESP-IDF:          v5.5-dev-1942-g1160a86ba0�[0m
D (927) cpu_start: calling init function: 0x42001b18 on core: 0�[0m
�[0;32mI (933) efuse_init: Min chip rev:     v0.0�[0m
�[0;32mI (938) efuse_init: Max chip rev:     v0.99 �[0m
�[0;32mI (943) efuse_init: Chip rev:         v0.2�[0m
D (948) cpu_start: calling init function: 0x420038f8 on core: 0�[0m
V (954) memory_layout: reserved range is 0x3c02cd6c - 0x3c02cd94�[0m
D (960) memory_layout: Checking 6 reserved memory ranges:�[0m
D (965) memory_layout: Reserved memory range 0x3fc84000 - 0x3fc92c00�[0m
D (972) memory_layout: Reserved memory range 0x3fc92c00 - 0x3fc95f40�[0m
D (978) memory_layout: Reserved memory range 0x3fceee34 - 0x3fcf0000�[0m
D (985) memory_layout: Reserved memory range 0x40374000 - 0x40382c00�[0m
D (991) memory_layout: Reserved memory range 0x600fe000 - 0x600fe01c�[0m
D (997) memory_layout: Reserved memory range 0x600fffe8 - 0x60100000�[0m
D (1004) memory_layout: Building list of available memory regions:�[0m
V (1010) memory_layout: Examining memory region 0x3fc88000 - 0x3fc90000�[0m
V (1017) memory_layout: Region 0x3fc88000 - 0x3fc90000 inside of reserved 0x3fc84000 - 0x3fc92c00�[0m
V (1026) memory_layout: Examining memory region 0x3fc90000 - 0x3fca0000�[0m
V (1032) memory_layout: Start of region 0x3fc90000 - 0x3fca0000 overlaps reserved 0x3fc84000 - 0x3fc92c00�[0m
V (1042) memory_layout: Start of region 0x3fc92c00 - 0x3fca0000 overlaps reserved 0x3fc92c00 - 0x3fc95f40�[0m
D (1052) memory_layout: Available memory region 0x3fc95f40 - 0x3fca0000�[0m
V (1058) memory_layout: Examining memory region 0x3fca0000 - 0x3fcb0000�[0m
D (1065) memory_layout: Available memory region 0x3fca0000 - 0x3fcb0000�[0m
V (1072) memory_layout: Examining memory region 0x3fcb0000 - 0x3fcc0000�[0m
D (1078) memory_layout: Available memory region 0x3fcb0000 - 0x3fcc0000�[0m
V (1085) memory_layout: Examining memory region 0x3fcc0000 - 0x3fcd0000�[0m
D (1092) memory_layout: Available memory region 0x3fcc0000 - 0x3fcd0000�[0m
V (1099) memory_layout: Examining memory region 0x3fcd0000 - 0x3fce0000�[0m
D (1105) memory_layout: Available memory region 0x3fcd0000 - 0x3fce0000�[0m
V (1112) memory_layout: Examining memory region 0x3fce0000 - 0x3fce9710�[0m
D (1119) memory_layout: Available memory region 0x3fce0000 - 0x3fce9710�[0m
V (1125) memory_layout: Examining memory region 0x3fce9710 - 0x3fcf0000�[0m
V (1132) memory_layout: End of region 0x3fce9710 - 0x3fcf0000 overlaps reserved 0x3fceee34 - 0x3fcf0000�[0m
D (1141) memory_layout: Available memory region 0x3fce9710 - 0x3fceee34�[0m
V (1148) memory_layout: Examining memory region 0x3fcf0000 - 0x3fcf8000�[0m
D (1155) memory_layout: Available memory region 0x3fcf0000 - 0x3fcf8000�[0m
V (1161) memory_layout: Examining memory region 0x600fe000 - 0x60100000�[0m
V (1168) memory_layout: Start of region 0x600fe000 - 0x60100000 overlaps reserved 0x600fe000 - 0x600fe01c�[0m
V (1178) memory_layout: End of region 0x600fe01c - 0x60100000 overlaps reserved 0x600fffe8 - 0x60100000�[0m
D (1187) memory_layout: Available memory region 0x600fe01c - 0x600fffe8�[0m
�[0;32mI (1194) heap_init: Initializing. RAM available for dynamic allocation:�[0m
D (1201) heap_init: New heap initialised at 0x3fc95f40�[0m
�[0;32mI (1206) heap_init: At 3FC95F40 len 000537D0 (333 KiB): RAM�[0m
�[0;32mI (1213) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM�[0m
D (1219) heap_init: New heap initialised at 0x3fcf0000�[0m
�[0;32mI (1224) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM�[0m
D (1230) heap_init: New heap initialised at 0x600fe01c�[0m
�[0;32mI (1235) heap_init: At 600FE01C len 00001FCC (7 KiB): RTCRAM�[0m
D (1242) cpu_start: calling init function: 0x42001870 on core: 0�[0m
D (1248) cpu_start: calling init function: 0x42006f48 on core: 0�[0m
D (1254) cpu_start: calling init function: 0x42001ddc on core: 0�[0m
V (1260) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1267) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x40E�[0m
D (1275) intr_alloc: Connected src 39 to int 0 (cpu 0)�[0m
D (1280) cpu_start: calling init function: 0x42001de8 on core: 0�[0m
D (1286) cpu_start: calling init function: 0x42006f54 on core: 0�[0m
D (1292) cpu_start: calling init function: 0x42001df4 on core: 0�[0m
V (1298) memspi: raw_chip_id: 16405E
�[0m
V (1302) memspi: chip_id: 5E4016
�[0m
V (1305) memspi: raw_chip_id: 16405E
�[0m
V (1309) memspi: chip_id: 5E4016
�[0m
D (1313) spi_flash: trying chip: issi�[0m
D (1316) spi_flash: trying chip: gd�[0m
D (1320) spi_flash: trying chip: mxic�[0m
D (1324) spi_flash: trying chip: winbond�[0m
D (1328) spi_flash: trying chip: boya�[0m
D (1331) spi_flash: trying chip: th�[0m
D (1335) spi_flash: trying chip: mxic (opi)�[0m
D (1339) spi_flash: trying chip: generic�[0m
�[0;32mI (1343) spi_flash: detected chip: generic�[0m
�[0;32mI (1348) spi_flash: flash io: dio�[0m
�[0;33mW (1352) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.�[0m
D (1365) cpu_start: calling init function: 0x42001bb4 on core: 0�[0m
D (1371) cpu_start: calling init function: 0x40379b3c�[0m
D (1376) cpu_start: calling init function: 0x42002fe4�[0m
D (1382) cpu_start: calling init function: 0x4201c92c on core: 0�[0m
D (1388) cpu_start: calling init function: 0x42004fd4 on core: 0�[0m
�[0;32mI (1394) sleep_gpio: Configure to isolate all GPIO pins in sleep state�[0m
�[0;32mI (1401) sleep_gpio: Enable automatic switching of GPIO sleep configuration�[0m
D (1409) cpu_start: calling init function: 0x42001e28 on core: 0�[0m
D (1415) cpu_start: calling init function: 0x42001e34 on core: 0�[0m
V (1421) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1427) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x40E�[0m
D (1435) intr_alloc: Connected src 79 to int 1 (cpu 0)�[0m
D (1441) app_start: Starting scheduler on CPU0�[0m
V (1445) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1445) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x402�[0m
D (1445) intr_alloc: Connected src 57 to int 2 (cpu 0)�[0m
V�(0445)I (1r4al oci _sa_kn rtaltod_on rPt0tus (cpu 1): checking args�[0m
V (1455) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): Args okay. Resulting flags 0x40E�[0m
D (1455) intr_alloc: Connected src 80 to int 1 (cpu 1)�[0m
D (1465) app_start: Starting scheduler on CPU1�[0m
V (1465) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): checking args�[0m
V (1475) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): Args okay. Resulting flags 0x402�[0m
D (1485) intr_alloc: Connected src 58 to int 2 (cpu 1)�[0m
D (1485) heap_init: New heap initialised at 0x3fce9710�[0m
V (1495) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1505) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0xE�[0m
D (1505) intr_alloc: Connected src 52 to int 3 (cpu 0)�[0m
�[0;32mI (1515) main_task: Calling app_main()�[0m
�[0;32mI (1515) USB host lib: USB host library example�[0m
�[0;32mI (1525) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 �[0m
�[0;32mI (1535) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:2 �[0m
V (1545) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1545) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x2�[0m
D (1555) intr_alloc: Connected src 16 to int 5 (cpu 0)�[0m
�[0;32mI (1565) USB host lib: Installing USB Host Library�[0m
V (1565) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1575) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x802�[0m
D (1585) intr_alloc: Connected src 38 to int 8 (cpu 0)�[0m
�[0;32mI (1615) CLASS: Registering Client�[0m
D (2805) HUB: Root port reset�[0m
D (2805) HUB: Device tree node (uid=1): new�[0m
D (2805) ENUM: [0:0] Start processing, device address 0�[0m
D (2805) ENUM: [0:0] GET_SHORT_DEV_DESC OK�[0m
D (2805) USBH: Processing actions 0x4�[0m
D (2805) USBH: Default pipe device 0�[0m
V (2815) ENUM: 0x3fceb324   80 06 00 01 00 00 08 00  12 01 00 02 00 00 00 40  |...............@|�[0m
D (2825) ENUM: [0:0] CHECK_SHORT_DEV_DESC OK�[0m
D (2885) ENUM: [0:0] SECOND_RESET OK�[0m
D (2885) ENUM: [0:0] SECOND_RESET_COMPLETE OK�[0m
D (2885) ENUM: [0:0] SET_ADDR OK�[0m
D (2885) USBH: Processing actions 0x4�[0m
D (2885) USBH: Default pipe device 0�[0m
V (2885) ENUM: 0x3fceb324   00 05 01 00 00 00 00 00                           |........|�[0m
D (2895) ENUM: Assign address (dev_addr=1)�[0m
D (2905) ENUM: [0:0] CHECK_ADDR OK�[0m
D (2915) ENUM: [0:0] SET_ADDR_RECOVERY OK�[0m
D (2915) ENUM: [0:0] GET_FULL_DEV_DESC OK�[0m
D (2915) USBH: Processing actions 0x4�[0m
D (2915) USBH: Default pipe device 1�[0m
V (2915) ENUM: 0x3fceb324   80 06 00 01 00 00 12 00  12 01 00 02 00 00 00 40  |...............@|�[0m
V (2925) ENUM: 0x3fceb334   f5 19 20 61 04 01 01 02  03 01                    |.. a......|�[0m
D (2935) ENUM: [0:0] CHECK_FULL_DEV_DESC OK�[0m
D (2945) ENUM: Selected bConfigurationValue=1�[0m
D (2945) ENUM: [0:0] SELECT_CONFIG OK�[0m
D (2945) ENUM: [0:0] GET_SHORT_CONFIG_DESC OK�[0m
D (2955) USBH: Processing actions 0x4�[0m
D (2955) USBH: Default pipe device 1�[0m
V (2965) ENUM: 0x3fceb324   80 06 00 02 00 00 08 00  00 00 00 00 00 00 00 00  |................|�[0m
�[0;31mE (2965) ENUM: Short config desc has wrong bDescriptorType�[0m
�[0;31mE (2975) ENUM: [0:0] CHECK_SHORT_CONFIG_DESC FAILED�[0m
D (2985) ENUM: [0:0] CANCEL OK�[0m
D (2985) HUB: Disabling root port�[0m

More Information.

I enabled verbose logs just in case it helps. I have tried many keyboards and this is the first that this occurs. Not sure if the short config is necessary? Might be just possible to skip it and it could be that this device does not support it for some reason?
Below are also logs from USB Device Tree Viewer if it helps. Thank you very much!

Edit: I noticed in the above logs it says version v5.5. Not sure why, but either way this error was happening on earlier and on latest versions, even on Arduino.


    =========================== USB Port2 ===========================

Connection Status        : 0x01 (Device is connected)
Port Chain               : 1-4-2
Properties               : 0x01
 IsUserConnectable       : yes
 PortIsDebugCapable      : no
 PortHasMultiCompanions  : no
 PortConnectorIsTypeC    : no
ConnectionIndex          : 0x02 (Port 2)
CompanionIndex           : 0
 CompanionHubSymLnk      : USB#VID_0424&PID_5734#5&25660ec0&0&24#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
 CompanionPortNumber     : 0x02 (Port 2)
 -> CompanionPortChain   : 1-24-2

      ========================== Summary =========================
Vendor ID                : 0x19F5 (Nationz Technologies Inc.)
Product ID               : 0x6120
Manufacturer String      : NuPhy
Product String           : NuPhy Air75 HE
Serial                   : 13BC609A0594
USB Version              : 2.0
Port maximum Speed       : High-Speed (Companion Port 1-24-2 is doing the SuperSpeed)
Device maximum Speed     : High-Speed
Device Connection Speed  : High-Speed
Self powered             : no
Demanded Current         : 500 mA
Used Endpoints           : 5

      ======================== USB Device ========================

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : USB Composite Device
Device Path              : \\?\USB#VID_19F5&PID_6120#13BC609A0594#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Kernel Name              : \Device\USBPDO-9
Device ID                : USB\VID_19F5&PID_6120\13BC609A0594
Hardware IDs             : USB\VID_19F5&PID_6120&REV_0104 USB\VID_19F5&PID_6120
Driver KeyName           : {36fc9e60-c465-11cf-8056-444553540000}\0015 (GUID_DEVCLASS_USB)
Driver                   : \SystemRoot\System32\drivers\usbccgp.sys (Version: 10.0.26100.1882  Date: 2024-12-11  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_#0004
Address                  : 2
Location IDs             : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(4)#USB(2), ACPI(_SB_)#ACPI(PC00)#ACPI(XHCI)#ACPI(RHUB)#ACPI(HS04)#USB(2)
Container ID             : {56ef82f2-b510-51e3-94eb-b79b80da4a5e}
Manufacturer Info        : (Standard USB Host Controller)
Capabilities             : 0x94 (Removable, UniqueID, SurpriseRemovalOK)
Status                   : 0x0180400A (DN_DRIVER_LOADED, DN_STARTED, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code             : 0
Address                  : 2
EnhancedPowerMgmtEnabled : 0
Power State              : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)

        +++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\19F561200104
 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     : 0x04 (4 pipes to data endpoints)
Pipe[0]                  : EndpointID=1  Direction=IN   ScheduleOffset=0  Type=Interrupt  wMaxPacketSize=0x8     bInterval=1   -> 196 Bits/ms = 24500 Bytes/s
Pipe[1]                  : EndpointID=2  Direction=IN   ScheduleOffset=0  Type=Interrupt  wMaxPacketSize=0x40    bInterval=8   -> 718 Bits/ms = 89750 Bytes/s
Pipe[2]                  : EndpointID=2  Direction=OUT  ScheduleOffset=0  Type=Interrupt  wMaxPacketSize=0x40    bInterval=8   -> 718 Bits/ms = 89750 Bytes/s
Pipe[3]                  : EndpointID=3  Direction=IN   ScheduleOffset=0  Type=Interrupt  wMaxPacketSize=0x40    bInterval=8   -> 718 Bits/ms = 89750 Bytes/s
Data (HexDump)           : 02 00 00 00 12 01 00 02 00 00 00 40 F5 19 20 61   ...........@.. a
                           04 01 01 02 03 01 01 02 00 0A 00 04 00 00 00 01   ................
                           00 00 00 07 05 81 03 08 00 01 00 00 00 00 07 05   ................
                           82 03 40 00 08 00 00 00 00 07 05 02 03 40 00 08   ..@..........@..
                           00 00 00 00 07 05 83 03 40 00 08 00 00 00 00      ........@......

        --------------- 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-24-2 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)           : 02 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             : 0x00 (defined by the interface descriptors)
bDeviceSubClass          : 0x00
bDeviceProtocol          : 0x00
bMaxPacketSize0          : 0x40 (64 bytes)
idVendor                 : 0x19F5 (Nationz Technologies Inc.)
idProduct                : 0x6120
bcdDevice                : 0x0104
iManufacturer            : 0x01 (String Descriptor 1)
 Language 0x0409         : "NuPhy"
iProduct                 : 0x02 (String Descriptor 2)
 Language 0x0409         : "NuPhy Air75 HE"
iSerialNumber            : 0x03 (String Descriptor 3)
 Language 0x0409         : "13BC609A0594"
bNumConfigurations       : 0x01 (1 Configuration)
Data (HexDump)           : 12 01 00 02 00 00 00 40 F5 19 20 61 04 01 01 02   .......@.. a....
                           03 01                                             ..

    ------------------ Configuration Descriptor -------------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x02 (Configuration Descriptor)
wTotalLength             : 0x005B (91 bytes)
bNumInterfaces           : 0x03 (3 Interfaces)
bConfigurationValue      : 0x01 (Configuration 1)
iConfiguration           : 0x00 (No String Descriptor)
bmAttributes             : 0xA0
 D7: Reserved, set 1     : 0x01
 D6: Self Powered        : 0x00 (no)
 D5: Remote Wakeup       : 0x01 (yes)
 D4..0: Reserved, set 0  : 0x00
MaxPower                 : 0xFA (500 mA)
Data (HexDump)           : 09 02 5B 00 03 01 00 A0 FA 09 04 00 00 01 03 01   ..[.............
                           01 00 09 21 11 01 00 01 22 3E 00 07 05 81 03 08   ...!....">......
                           00 01 09 04 01 00 02 03 00 00 00 09 21 10 01 00   ............!...
                           01 22 20 00 07 05 82 03 40 00 08 07 05 02 03 40   ." .....@......@
                           00 08 09 04 02 00 01 03 01 01 00 09 21 10 01 21   ............!..!
                           01 22 A3 00 07 05 83 03 40 00 08                  ."......@..

        ---------------- Interface Descriptor -----------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x04 (Interface Descriptor)
bInterfaceNumber         : 0x00 (Interface 0)
bAlternateSetting        : 0x00
bNumEndpoints            : 0x01 (1 Endpoint)
bInterfaceClass          : 0x03 (HID - Human Interface Device)
bInterfaceSubClass       : 0x01 (Boot Interface)
bInterfaceProtocol       : 0x01 (Keyboard)
iInterface               : 0x00 (No String Descriptor)
Data (HexDump)           : 09 04 00 00 01 03 01 01 00                        .........

        ------------------- HID Descriptor --------------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x21 (HID Descriptor)
bcdHID                   : 0x0111 (HID Version 1.11)
bCountryCode             : 0x00 (00 = not localized)
bNumDescriptors          : 0x01
Data (HexDump)           : 09 21 11 01 00 01 22 3E 00                        .!....">.
Descriptor 1:
bDescriptorType          : 0x22 (Class=Report)
wDescriptorLength        : 0x003E (62 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         : 0x81 (Direction=IN EndpointID=1)
bmAttributes             : 0x03 (TransferType=Interrupt)
wMaxPacketSize           : 0x0008
 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              : 0x08 (8 bytes per packet)
bInterval                : 0x01 (1 microframe -> 0.125 ms)
Data (HexDump)           : 07 05 81 03 08 00 01                              .......

        ---------------- Interface Descriptor -----------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x04 (Interface Descriptor)
bInterfaceNumber         : 0x01 (Interface 1)
bAlternateSetting        : 0x00
bNumEndpoints            : 0x02 (2 Endpoints)
bInterfaceClass          : 0x03 (HID - Human Interface Device)
bInterfaceSubClass       : 0x00 (None)
bInterfaceProtocol       : 0x00 (None)
iInterface               : 0x00 (No String Descriptor)
Data (HexDump)           : 09 04 01 00 02 03 00 00 00                        .........

        ------------------- HID Descriptor --------------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x21 (HID Descriptor)
bcdHID                   : 0x0110 (HID Version 1.10)
bCountryCode             : 0x00 (00 = not localized)
bNumDescriptors          : 0x01
Data (HexDump)           : 09 21 10 01 00 01 22 20 00                        .!...." .
Descriptor 1:
bDescriptorType          : 0x22 (Class=Report)
wDescriptorLength        : 0x0020 (32 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         : 0x82 (Direction=IN EndpointID=2)
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)
Data (HexDump)           : 07 05 82 03 40 00 08                              ....@..

        ----------------- Endpoint Descriptor -----------------
bLength                  : 0x07 (7 bytes)
bDescriptorType          : 0x05 (Endpoint Descriptor)
bEndpointAddress         : 0x02 (Direction=OUT EndpointID=2)
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)
Data (HexDump)           : 07 05 02 03 40 00 08                              ....@..

        ---------------- Interface Descriptor -----------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x04 (Interface Descriptor)
bInterfaceNumber         : 0x02 (Interface 2)
bAlternateSetting        : 0x00
bNumEndpoints            : 0x01 (1 Endpoint)
bInterfaceClass          : 0x03 (HID - Human Interface Device)
bInterfaceSubClass       : 0x01 (Boot Interface)
bInterfaceProtocol       : 0x01 (Keyboard)
iInterface               : 0x00 (No String Descriptor)
Data (HexDump)           : 09 04 02 00 01 03 01 01 00                        .........

        ------------------- HID Descriptor --------------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x21 (HID Descriptor)
bcdHID                   : 0x0110 (HID Version 1.10)
bCountryCode             : 0x21 (33 = US)
bNumDescriptors          : 0x01
Data (HexDump)           : 09 21 10 01 21 01 22 A3 00                        .!..!."..
Descriptor 1:
bDescriptorType          : 0x22 (Class=Report)
wDescriptorLength        : 0x00A3 (163 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)
Data (HexDump)           : 07 05 83 03 40 00 08                              ....@..

    --------- Device Qualifier Descriptor (for Full-Speed) --------
bLength                  : 0x0A (10 bytes)
bDescriptorType          : 0x06 (Device_qualifier Descriptor)
bcdUSB                   : 0x200 (USB Version 2.0)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                     .......@..

      -------------------- 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                  : 0x0C (12 bytes)
bDescriptorType          : 0x03 (String Descriptor)
Language 0x0409          : "NuPhy"
Data (HexDump)           : 0C 03 4E 00 75 00 50 00 68 00 79 00               ..N.u.P.h.y.
             ------ String Descriptor 2 ------
bLength                  : 0x1E (30 bytes)
bDescriptorType          : 0x03 (String Descriptor)
Language 0x0409          : "NuPhy Air75 HE"
Data (HexDump)           : 1E 03 4E 00 75 00 50 00 68 00 79 00 20 00 41 00   ..N.u.P.h.y. .A.
                           69 00 72 00 37 00 35 00 20 00 48 00 45 00         i.r.7.5. .H.E.
             ------ String Descriptor 3 ------
bLength                  : 0x1A (26 bytes)
bDescriptorType          : 0x03 (String Descriptor)
Language 0x0409          : "13BC609A0594"
Data (HexDump)           : 1A 03 31 00 33 00 42 00 43 00 36 00 30 00 39 00   ..1.3.B.C.6.0.9.
                           41 00 30 00 35 00 39 00 34 00                     A.0.5.9.4.

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : USB Input Device
Device ID                : USB\VID_19F5&PID_6120&MI_00\6&31DEAC4&0&0000
Hardware IDs             : USB\VID_19F5&PID_6120&REV_0104&MI_00 USB\VID_19F5&PID_6120&MI_00
Driver KeyName           : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0047 (GUID_DEVCLASS_HIDCLASS)
Driver                   : \SystemRoot\System32\drivers\hidusb.sys (Version: 10.0.26100.1882  Date: 2024-12-11  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.004.002.000.000.000.000
Address                  : 2
Manufacturer Info        : (Standard system devices)
Capabilities             : 0x80 (SurpriseRemovalOK)
Status                   : 0x0180000A (DN_DRIVER_LOADED, DN_STARTED, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code             : 0
SelectiveSuspendEnabled  : 0
EnhancedPowerMgmtEnabled : 1
Power State              : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : HID Keyboard Device
Device Path 1            : \\?\HID#VID_19F5&PID_6120&MI_00#7&31507750&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd} (GUID_DEVINTERFACE_KEYBOARD)
Device Path 2            : \\?\HID#VID_19F5&PID_6120&MI_00#7&31507750&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd (GUID_DEVINTERFACE_HID)
Kernel Name              : \Device\00000190
Device ID                : HID\VID_19F5&PID_6120&MI_00\7&31507750&0&0000
Hardware IDs             : HID\VID_19F5&PID_6120&REV_0104&MI_00 HID\VID_19F5&PID_6120&MI_00 HID\VID_19F5&UP:0001_U:0006 HID_DEVICE_SYSTEM_KEYBOARD HID_DEVICE_UP:0001_U:0006 HID_DEVICE
Driver KeyName           : {4d36e96b-e325-11ce-bfc1-08002be10318}\0006 (GUID_DEVCLASS_KEYBOARD)
Driver                   : \SystemRoot\System32\drivers\kbdhid.sys (Version: 10.0.26100.1882  Date: 2024-12-11  Company: Microsoft Corporation)
Driver Inf               : C:\windows\inf\keyboard.inf
Legacy BusType           : PNPBus
Class                    : Keyboard
Class GUID               : {4d36e96b-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_KEYBOARD)
Service                  : kbdhid
Enumerator               : HID
Location Info            : -
Address                  : 1
Manufacturer Info        : (Standard keyboards)
Capabilities             : 0xA0 (SilentInstall, SurpriseRemovalOK)
Status                   : 0x0180000A (DN_DRIVER_LOADED, DN_STARTED, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code             : 0
EnhancedPowerMgmtEnabled : 0
Power State              : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)

             ++++++++++++ Keyboad Information +++++++++++++
Keyboard ID.Type         : 0x51 (HID)
Keyboard ID.Subtype      : 0
Keyboard Mode            : 1
Number of Function Keys  : 12
Number of Indicators     : 3
Number of Keys Total     : 154
Input Data Queue Length  : 1
Key Repeat Minimum.UnitId: 17
Key Repeat Minimum.Rate  : 2 per second
Key Repeat Minimum.Delay : 250 ms
Key Repeat Maximum.UnitId: 17
Key Repeat Maximum.Rate  : 30 per second
Key Repeat Maximum.Delay : 1000 ms
Key Repeat UnitId        : 0
Key Repeat Rate          : 30 per second
Key Repeat Delay         : 500 ms

             ++++++++++++++ HID Information +++++++++++++++
Manufacturer             : NuPhy
Product                  : NuPhy Air75 HE
Serial Number            : 13BC609A0594
UsagePage                : 0x01 (Generic Desktop Controls)
Usage                    : 0x06 (Keyboard)

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : USB Input Device
Device ID                : USB\VID_19F5&PID_6120&MI_01\6&31DEAC4&0&0001
Hardware IDs             : USB\VID_19F5&PID_6120&REV_0104&MI_01 USB\VID_19F5&PID_6120&MI_01
Driver KeyName           : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0048 (GUID_DEVCLASS_HIDCLASS)
Driver                   : \SystemRoot\System32\drivers\hidusb.sys (Version: 10.0.26100.1882  Date: 2024-12-11  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.004.002.000.000.000.000
Address                  : 3
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, D1, D2, D3, wake from D0, wake from D1, wake from D2)

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : HID-compliant device
Device Path              : \\?\HID#VID_19F5&PID_6120&MI_01#7&8e5c987&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
Kernel Name              : \Device\00000191
Device ID                : HID\VID_19F5&PID_6120&MI_01\7&8E5C987&0&0000
Hardware IDs             : HID\VID_19F5&PID_6120&REV_0104&MI_01 HID\VID_19F5&PID_6120&MI_01 HID\VID_19F5&UP:0001_U:0000 HID_DEVICE_UP:0001_U:0000 HID_DEVICE
Driver KeyName           : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0050 (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, D1, D2, D3, wake from D0, wake from D1, wake from D2)

             ++++++++++++++ HID Information +++++++++++++++
Manufacturer             : NuPhy
Product                  : NuPhy Air75 HE
Serial Number            : 13BC609A0594
UsagePage                : 0x01 (Generic Desktop Controls)
Usage                    : 0x00 (Undefined)

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : USB Input Device
Device ID                : USB\VID_19F5&PID_6120&MI_02\6&31DEAC4&0&0002
Hardware IDs             : USB\VID_19F5&PID_6120&REV_0104&MI_02 USB\VID_19F5&PID_6120&MI_02
Driver KeyName           : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0049 (GUID_DEVCLASS_HIDCLASS)
Driver                   : \SystemRoot\System32\drivers\hidusb.sys (Version: 10.0.26100.1882  Date: 2024-12-11  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.004.002.000.000.000.000
Address                  : 4
Manufacturer Info        : (Standard system devices)
Capabilities             : 0x80 (SurpriseRemovalOK)
Status                   : 0x0180000A (DN_DRIVER_LOADED, DN_STARTED, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code             : 0
SelectiveSuspendEnabled  : 0
EnhancedPowerMgmtEnabled : 1
Power State              : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : HID Keyboard Device
Device Path 1            : \\?\HID#VID_19F5&PID_6120&MI_02&Col01#7&1c15e5c5&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd} (GUID_DEVINTERFACE_KEYBOARD)
Device Path 2            : \\?\HID#VID_19F5&PID_6120&MI_02&Col01#7&1c15e5c5&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd (GUID_DEVINTERFACE_HID)
Kernel Name              : \Device\00000192
Device ID                : HID\VID_19F5&PID_6120&MI_02&COL01\7&1C15E5C5&0&0000
Hardware IDs             : HID\VID_19F5&PID_6120&REV_0104&MI_02&Col01 HID\VID_19F5&PID_6120&MI_02&Col01 HID\VID_19F5&UP:0001_U:0006 HID_DEVICE_SYSTEM_KEYBOARD HID_DEVICE_UP:0001_U:0006 HID_DEVICE
Driver KeyName           : {4d36e96b-e325-11ce-bfc1-08002be10318}\0007 (GUID_DEVCLASS_KEYBOARD)
Driver                   : \SystemRoot\System32\drivers\kbdhid.sys (Version: 10.0.26100.1882  Date: 2024-12-11  Company: Microsoft Corporation)
Driver Inf               : C:\windows\inf\keyboard.inf
Legacy BusType           : PNPBus
Class                    : Keyboard
Class GUID               : {4d36e96b-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_KEYBOARD)
Service                  : kbdhid
Enumerator               : HID
Location Info            : -
Address                  : 1
Manufacturer Info        : (Standard keyboards)
Capabilities             : 0xA0 (SilentInstall, SurpriseRemovalOK)
Status                   : 0x0180000A (DN_DRIVER_LOADED, DN_STARTED, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code             : 0
EnhancedPowerMgmtEnabled : 0
Power State              : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)

             ++++++++++++ Keyboad Information +++++++++++++
Keyboard ID.Type         : 0x51 (HID)
Keyboard ID.Subtype      : 0
Keyboard Mode            : 1
Number of Function Keys  : 12
Number of Indicators     : 3
Number of Keys Total     : 125
Input Data Queue Length  : 1
Key Repeat Minimum.UnitId: 18
Key Repeat Minimum.Rate  : 2 per second
Key Repeat Minimum.Delay : 250 ms
Key Repeat Maximum.UnitId: 18
Key Repeat Maximum.Rate  : 30 per second
Key Repeat Maximum.Delay : 1000 ms
Key Repeat UnitId        : 0
Key Repeat Rate          : 30 per second
Key Repeat Delay         : 500 ms

             ++++++++++++++ HID Information +++++++++++++++
Manufacturer             : NuPhy
Product                  : NuPhy Air75 HE
Serial Number            : 13BC609A0594
UsagePage                : 0x01 (Generic Desktop Controls)
Usage                    : 0x06 (Keyboard)

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : HID-compliant mouse
Device Path 1            : \\?\HID#VID_19F5&PID_6120&MI_02&Col02#7&1c15e5c5&0&0001#{378de44c-56ef-11d1-bc8c-00a0c91405dd} (GUID_DEVINTERFACE_MOUSE)
Device Path 2            : \\?\HID#VID_19F5&PID_6120&MI_02&Col02#7&1c15e5c5&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
Kernel Name              : \Device\00000193
Device ID                : HID\VID_19F5&PID_6120&MI_02&COL02\7&1C15E5C5&0&0001
Hardware IDs             : HID\VID_19F5&PID_6120&REV_0104&MI_02&Col02 HID\VID_19F5&PID_6120&MI_02&Col02 HID\VID_19F5&UP:0001_U:0002 HID_DEVICE_SYSTEM_MOUSE HID_DEVICE_UP:0001_U:0002 HID_DEVICE
Driver KeyName           : {4d36e96f-e325-11ce-bfc1-08002be10318}\0005 (GUID_DEVCLASS_MOUSE)
Driver                   : \SystemRoot\System32\drivers\mouhid.sys (Version: 10.0.26100.1150  Date: 2024-09-06  Company: Microsoft Corporation)
Driver Inf               : C:\windows\inf\msmouse.inf
Legacy BusType           : PNPBus
Class                    : Mouse
Class GUID               : {4d36e96f-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_MOUSE)
Service                  : mouhid
Enumerator               : HID
Location Info            : -
Address                  : 2
Manufacturer Info        : Microsoft
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, D1, D2, D3, wake from D0, wake from D1, wake from D2)

             +++++++++++++ Mouse Information ++++++++++++++
Input Data Queue Length  : 2
Mouse Identifier         : 256
Number of Buttons        : 5
Sample Rate              : 0

             ++++++++++++++ HID Information +++++++++++++++
Manufacturer             : NuPhy
Product                  : NuPhy Air75 HE
Serial Number            : 13BC609A0594
UsagePage                : 0x01 (Generic Desktop Controls)
Usage                    : 0x02 (Mouse)

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : HID-compliant consumer control device
Device Path              : \\?\HID#VID_19F5&PID_6120&MI_02&Col03#7&1c15e5c5&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
Kernel Name              : \Device\00000194
Device ID                : HID\VID_19F5&PID_6120&MI_02&COL03\7&1C15E5C5&0&0002
Hardware IDs             : HID\VID_19F5&PID_6120&REV_0104&MI_02&Col03 HID\VID_19F5&PID_6120&MI_02&Col03 HID\VID_19F5&UP:000C_U:0001 HID_DEVICE_SYSTEM_CONSUMER HID_DEVICE_UP:000C_U:0001 HID_DEVICE
Driver KeyName           : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0051 (GUID_DEVCLASS_HIDCLASS)
Driver Inf               : C:\windows\inf\hidserv.inf
Legacy BusType           : PNPBus
Class                    : HIDClass
Class GUID               : {745a17a0-74d3-11d0-b6fe-00a0c90f57da} (GUID_DEVCLASS_HIDCLASS)
Enumerator               : HID
Location Info            : -
Address                  : 3
Manufacturer Info        : Microsoft
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, D1, D2, D3, wake from D0, wake from D1, wake from D2)

             ++++++++++++++ HID Information +++++++++++++++
Manufacturer             : NuPhy
Product                  : NuPhy Air75 HE
Serial Number            : 13BC609A0594
UsagePage                : 0x0C (Consumer)
Usage                    : 0x01 (Consumer Control)

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : HID-compliant system controller
Device Path 1            : \\?\HID#VID_19F5&PID_6120&MI_02&Col04#7&1c15e5c5&0&0003#{4afa3d53-74a7-11d0-be5e-00a0c9062857} (GUID_DEVICE_SYS_BUTTON)
Device Path 2            : \\?\HID#VID_19F5&PID_6120&MI_02&Col04#7&1c15e5c5&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
Kernel Name              : \Device\00000195
Device ID                : HID\VID_19F5&PID_6120&MI_02&COL04\7&1C15E5C5&0&0003
Hardware IDs             : HID\VID_19F5&PID_6120&REV_0104&MI_02&Col04 HID\VID_19F5&PID_6120&MI_02&Col04 HID\VID_19F5&UP:0001_U:0080 HID_DEVICE_SYSTEM_CONTROL HID_DEVICE_UP:0001_U:0080 HID_DEVICE
Driver KeyName           : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0052 (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                  : 4
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, D1, D2, D3, wake from D0, wake from D1, wake from D2)

             ++++++++++++++ HID Information +++++++++++++++
Manufacturer             : NuPhy
Product                  : NuPhy Air75 HE
Serial Number            : 13BC609A0594
UsagePage                : 0x01 (Generic Desktop Controls)
Usage                    : 0x80 (System Control)

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : HID-compliant wireless radio controls
Device Path              : \\?\HID#VID_19F5&PID_6120&MI_02&Col05#7&1c15e5c5&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
Kernel Name              : \Device\00000196
Device ID                : HID\VID_19F5&PID_6120&MI_02&COL05\7&1C15E5C5&0&0004
Hardware IDs             : HID\VID_19F5&PID_6120&REV_0104&MI_02&Col05 HID\VID_19F5&PID_6120&MI_02&Col05 HID\VID_19F5&UP:0001_U:000C HID_DEVICE_UP:0001_U:000C HID_DEVICE
Driver KeyName           : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0053 (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                  : 5
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, D1, D2, D3, wake from D0, wake from D1, wake from D2)

             ++++++++++++++ HID Information +++++++++++++++
Manufacturer             : NuPhy
Product                  : NuPhy Air75 HE
Serial Number            : 13BC609A0594
UsagePage                : 0x01 (Generic Desktop Controls)
Usage                    : 0x0C (unk)
@alex-k8 alex-k8 added the Type: Bug bugs in IDF label Mar 5, 2025
@github-actions github-actions bot changed the title Short config desc has wrong bDescriptorType Short config desc has wrong bDescriptorType (IDFGH-14788) Mar 5, 2025
@espressif-bot espressif-bot added the Status: Opened Issue is new label Mar 5, 2025
@roma-jam
Copy link
Collaborator

roma-jam commented Mar 5, 2025

Hi @alex-k8 ,

could you try to increase Reset recovery delay to 500 ms and try again?

This parameter could be found in menuconfig: Component config → USB-OTG → Hub Driver Configuration → Root Port configuration.

@alex-k8
Copy link
Author

alex-k8 commented Mar 6, 2025

Hey @roma-jam

Thanks for the suggestion, however it seems to be doing the same thing. Judging by these two lines and the timestamp, I suppose I did set the value correctly, right?
D (3295) ENUM: [0:0] CHECK_SHORT_DEV_DESC OK�[0m
D (3825) ENUM: [0:0] SECOND_RESET OK�[0m

�[0;33mW (4155) USB host lib: To shutdown example, remove all USB devices and press button again.�[0m
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0xb (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x21d4
load:0x403c8700,len:0xed8
load:0x403cb700,len:0x3468
entry 0x403c8974
I (26) boot: ESP-IDF v5.5-dev-1942-g1160a86ba0 2nd stage bootloader
I (27) boot: compile time Mar  3 2025 22:28:53
I (27) boot: Multicore bootloader
D (29) bootloader_flash: non-XMC chip detected by SFDP Read (00), skip.
D (35) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
D (41) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
D (48) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
D (54) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
D (60) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
D (67) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
I (73) boot: chip revision: v0.2
I (76) boot: efuse block revision: v1.3
D (80) boot.esp32s3: magic e9
D (82) boot.esp32s3: segments 03
D (85) boot.esp32s3: spi_mode 02
D (88) boot.esp32s3: spi_speed 0f
D (91) boot.esp32s3: spi_size 01
I (94) boot.esp32s3: Boot SPI Speed : 80MHz
I (98) boot.esp32s3: SPI Mode       : DIO
I (102) boot.esp32s3: SPI Flash Size : 2MB
D (106) boot: Enabling RTCWDT(9000 ms)
I (109) boot: Enabling RNG early entropy source...
D (114) bootloader_flash: rodata starts from paddr=0x00008000, size=0xc00, will be mapped to vaddr=0x3c000000
V (123) bootloader_flash: after mapping, starting from paddr=0x00000000 and vaddr=0x3c000000, 0x10000 bytes are mapped
D (134) boot: mapped partition table 0x8000 at 0x3c008000
D (139) flash_parts: partition table verified, 4 entries
I (144) boot: Partition Table:
I (147) boot: ## Label            Usage          Type ST Offset   Length
D (153) boot: load partition table entry 0x3c008000
D (158) boot: type=1 subtype=2
I (161) boot:  0 nvs              WiFi data        01 02 00009000 00006000
D (167) boot: load partition table entry 0x3c008020
D (172) boot: type=1 subtype=1
I (175) boot:  1 phy_init         RF data          01 01 0000f000 00001000
D (181) boot: load partition table entry 0x3c008040
D (186) boot: type=0 subtype=0
I (189) boot:  2 factory          factory app      00 00 00010000 00100000
I (195) boot: End of partition table
D (198) boot: Trying partition index -1 offs 0x10000 size 0x100000
D (204) esp_image: reading image header @ 0x10000
D (209) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (215) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (222) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (228) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (235) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (241) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (248) esp_image: image header: 0xe9 0x06 0x02 0x01 40375400
V (253) esp_image: loading segment header 0 at offset 0x10018
D (259) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (265) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
V (272) esp_image: segment data length 0xcdf4 data starts 0x10020
V (278) esp_image: MMU page size 0x10000
V (281) esp_image: segment 0 map_segment 1 segment_data_offs 0x10020 load_addr 0x3c020020
I (289) esp_image: segment 0: paddr=00010020 vaddr=3c020020 size=0cdf4h ( 52724) map
D (297) esp_image: free data page_count 0x00000200
D (301) bootloader_flash: rodata starts from paddr=0x00010020, size=0xcdf4, will be mapped to vaddr=0x3c000000
V (311) bootloader_flash: after mapping, starting from paddr=0x00010000 and vaddr=0x3c000000, 0x10000 bytes are mapped
V (331) esp_image: loading segment header 1 at offset 0x1ce14
D (331) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (333) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
V (340) esp_image: segment data length 0x2ad4 data starts 0x1ce1c
V (346) esp_image: MMU page size 0x10000
V (349) esp_image: segment 1 map_segment 0 segment_data_offs 0x1ce1c load_addr 0x3fc92c00
I (357) esp_image: segment 1: paddr=0001ce1c vaddr=3fc92c00 size=02ad4h ( 10964) load
D (365) esp_image: free data page_count 0x00000200
D (369) bootloader_flash: rodata starts from paddr=0x0001ce1c, size=0x2ad4, will be mapped to vaddr=0x3c000000
V (379) bootloader_flash: after mapping, starting from paddr=0x00010000 and vaddr=0x3c000000, 0x10000 bytes are mapped
V (392) esp_image: loading segment header 2 at offset 0x1f8f0
D (395) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (401) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
V (408) esp_image: segment data length 0x720 data starts 0x1f8f8
V (414) esp_image: MMU page size 0x10000
V (417) esp_image: segment 2 map_segment 0 segment_data_offs 0x1f8f8 load_addr 0x40374000
I (425) esp_image: segment 2: paddr=0001f8f8 vaddr=40374000 size=00720h (  1824) load
D (433) esp_image: free data page_count 0x00000200
D (437) bootloader_flash: rodata starts from paddr=0x0001f8f8, size=0x720, will be mapped to vaddr=0x3c000000
V (447) bootloader_flash: after mapping, starting from paddr=0x00010000 and vaddr=0x3c000000, 0x20000 bytes are mapped
V (458) esp_image: loading segment header 3 at offset 0x20018
D (463) bootloader_flash: mmu set block paddr=0x00020000 (was 0xffffffff)
D (469) bootloader_flash: mmu set block paddr=0x00020000 (was 0xffffffff)
V (476) esp_image: segment data length 0x1dda0 data starts 0x20020
V (482) esp_image: MMU page size 0x10000
V (485) esp_image: segment 3 map_segment 1 segment_data_offs 0x20020 load_addr 0x42000020
I (493) esp_image: segment 3: paddr=00020020 vaddr=42000020 size=1dda0h (122272) map
D (501) esp_image: free data page_count 0x00000200
D (505) bootloader_flash: rodata starts from paddr=0x00020020, size=0x1dda0, will be mapped to vaddr=0x3c000000
V (515) bootloader_flash: after mapping, starting from paddr=0x00020000 and vaddr=0x3c000000, 0x20000 bytes are mapped
V (547) esp_image: loading segment header 4 at offset 0x3ddc0
D (547) bootloader_flash: mmu set block paddr=0x00030000 (was 0xffffffff)
D (548) bootloader_flash: mmu set block paddr=0x00030000 (was 0xffffffff)
V (554) esp_image: segment data length 0xe3dc data starts 0x3ddc8
V (560) esp_image: MMU page size 0x10000
V (564) esp_image: segment 4 map_segment 0 segment_data_offs 0x3ddc8 load_addr 0x40374720
I (572) esp_image: segment 4: paddr=0003ddc8 vaddr=40374720 size=0e3dch ( 58332) load
D (579) esp_image: free data page_count 0x00000200
D (584) bootloader_flash: rodata starts from paddr=0x0003ddc8, size=0xe3dc, will be mapped to vaddr=0x3c000000
V (593) bootloader_flash: after mapping, starting from paddr=0x00030000 and vaddr=0x3c000000, 0x20000 bytes are mapped
V (617) esp_image: loading segment header 5 at offset 0x4c1a4
D (617) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (617) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
V (624) esp_image: segment data length 0x1c data starts 0x4c1ac
V (629) esp_image: MMU page size 0x10000
V (633) esp_image: segment 5 map_segment 0 segment_data_offs 0x4c1ac load_addr 0x600fe000
I (641) esp_image: segment 5: paddr=0004c1ac vaddr=600fe000 size=0001ch (    28) load
D (649) esp_image: free data page_count 0x00000200
D (653) bootloader_flash: rodata starts from paddr=0x0004c1ac, size=0x1c, will be mapped to vaddr=0x3c000000
V (663) bootloader_flash: after mapping, starting from paddr=0x00040000 and vaddr=0x3c000000, 0x10000 bytes are mapped
V (673) esp_image: image start 0x00010000 end of last section 0x0004c1c8
D (679) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (686) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (692) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (699) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (705) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (712) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (719) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (725) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (732) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (738) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
D (745) boot: Calculated hash: d4ac3cee90afd3e449c6b05bc920fe7fd7ec72a4f7d32e9612fc55b78045675d
I (759) boot: Loaded app from partition at offset 0x10000
I (759) boot: Disabling RNG early entropy source...
D (763) boot: Mapping segment 0 as DROM
D (766) boot: Mapping segment 3 as IROM
D (770) boot: calling set_cache_and_start_app
D (774) boot: configure drom and irom and start
V (778) boot: rodata starts from paddr=0x00010020, vaddr=0x3c020020, size=0xcdf4
V (785) boot: after mapping rodata, starting from paddr=0x00010000 and vaddr=0x3c020000, 0x10000 bytes are mapped
V (795) boot: mapped one page of the rodata, from paddr=0x00010000 and vaddr=0x3dff0000, 0x10000 bytes are mapped
V (805) boot: text starts from paddr=0x00020020, vaddr=0x42000020, size=0x1dda0
V (812) boot: after mapping text, starting from paddr=0x00020000 and vaddr=0x42000000, 0x20000 bytes are mapped
D (822) boot: start: 0x40375400
V (837) mmap: after coalescing, 1 regions are left�[0m
�[0;32mI (837) cpu_start: Multicore app�[0m
D (837) cpu_start: Pro cpu up�[0m
D (837) cpu_start: Starting app cpu, entry point is 0x403752d8�[0m
D (0) cpu_start: App cpu up�[0m
V CACHE_ERR: illegal error intr clr & ena mask is: 0x3f
V CACHED R8: ) rlk 1RTacceOWs error inrar onlr & ena ma1sk9�is: 0x1f
V CACHE_ERR: illegal error intr clr & ena mask is: 0x3f
V CACHE_ERR: core 0 access error intr clr & ena mask is: 0x1f
D (869) cpu_start: calling init function: 0x42001b04 on core: 0�[0m
D (873) cpu_start: calling init function: 0x42001d90 on core: 0�[0m
�[0;32mI (879) cpu_start: Pro cpu start user code�[0m
�[0;32mI (884) cpu_start: cpu freq: 160000000 Hz�[0m
D (889) cpu_start: calling init function: 0x42001a34 on core: 0�[0m
�[0;32mI (895) app_init: Application information:�[0m
�[0;32mI (900) app_init: Project name:     usb_host_lib_example�[0m
�[0;32mI (906) app_init: App version:      1�[0m
�[0;32mI (910) app_init: Compile time:     Mar  5 2025 23:33:54�[0m
�[0;32mI (916) app_init: ELF file SHA256:  a045df45d...�[0m
�[0;32mI (921) app_init: ESP-IDF:          v5.5-dev-1942-g1160a86ba0�[0m
D (928) cpu_start: calling init function: 0x42001b18 on core: 0�[0m
�[0;32mI (934) efuse_init: Min chip rev:     v0.0�[0m
�[0;32mI (938) efuse_init: Max chip rev:     v0.99 �[0m
�[0;32mI (943) efuse_init: Chip rev:         v0.2�[0m
D (948) cpu_start: calling init function: 0x420038f8 on core: 0�[0m
V (954) memory_layout: reserved range is 0x3c02cd6c - 0x3c02cd94�[0m
D (960) memory_layout: Checking 6 reserved memory ranges:�[0m
D (966) memory_layout: Reserved memory range 0x3fc84000 - 0x3fc92c00�[0m
D (972) memory_layout: Reserved memory range 0x3fc92c00 - 0x3fc95f40�[0m
D (979) memory_layout: Reserved memory range 0x3fceee34 - 0x3fcf0000�[0m
D (985) memory_layout: Reserved memory range 0x40374000 - 0x40382c00�[0m
D (991) memory_layout: Reserved memory range 0x600fe000 - 0x600fe01c�[0m
D (998) memory_layout: Reserved memory range 0x600fffe8 - 0x60100000�[0m
D (1004) memory_layout: Building list of available memory regions:�[0m
V (1010) memory_layout: Examining memory region 0x3fc88000 - 0x3fc90000�[0m
V (1017) memory_layout: Region 0x3fc88000 - 0x3fc90000 inside of reserved 0x3fc84000 - 0x3fc92c00�[0m
V (1026) memory_layout: Examining memory region 0x3fc90000 - 0x3fca0000�[0m
V (1033) memory_layout: Start of region 0x3fc90000 - 0x3fca0000 overlaps reserved 0x3fc84000 - 0x3fc92c00�[0m
V (1042) memory_layout: Start of region 0x3fc92c00 - 0x3fca0000 overlaps reserved 0x3fc92c00 - 0x3fc95f40�[0m
D (1052) memory_layout: Available memory region 0x3fc95f40 - 0x3fca0000�[0m
V (1059) memory_layout: Examining memory region 0x3fca0000 - 0x3fcb0000�[0m
D (1065) memory_layout: Available memory region 0x3fca0000 - 0x3fcb0000�[0m
V (1072) memory_layout: Examining memory region 0x3fcb0000 - 0x3fcc0000�[0m
D (1079) memory_layout: Available memory region 0x3fcb0000 - 0x3fcc0000�[0m
V (1085) memory_layout: Examining memory region 0x3fcc0000 - 0x3fcd0000�[0m
D (1092) memory_layout: Available memory region 0x3fcc0000 - 0x3fcd0000�[0m
V (1099) memory_layout: Examining memory region 0x3fcd0000 - 0x3fce0000�[0m
D (1106) memory_layout: Available memory region 0x3fcd0000 - 0x3fce0000�[0m
V (1112) memory_layout: Examining memory region 0x3fce0000 - 0x3fce9710�[0m
D (1119) memory_layout: Available memory region 0x3fce0000 - 0x3fce9710�[0m
V (1126) memory_layout: Examining memory region 0x3fce9710 - 0x3fcf0000�[0m
V (1132) memory_layout: End of region 0x3fce9710 - 0x3fcf0000 overlaps reserved 0x3fceee34 - 0x3fcf0000�[0m
D (1142) memory_layout: Available memory region 0x3fce9710 - 0x3fceee34�[0m
V (1148) memory_layout: Examining memory region 0x3fcf0000 - 0x3fcf8000�[0m
D (1155) memory_layout: Available memory region 0x3fcf0000 - 0x3fcf8000�[0m
V (1162) memory_layout: Examining memory region 0x600fe000 - 0x60100000�[0m
V (1168) memory_layout: Start of region 0x600fe000 - 0x60100000 overlaps reserved 0x600fe000 - 0x600fe01c�[0m
V (1178) memory_layout: End of region 0x600fe01c - 0x60100000 overlaps reserved 0x600fffe8 - 0x60100000�[0m
D (1188) memory_layout: Available memory region 0x600fe01c - 0x600fffe8�[0m
�[0;32mI (1194) heap_init: Initializing. RAM available for dynamic allocation:�[0m
D (1202) heap_init: New heap initialised at 0x3fc95f40�[0m
�[0;32mI (1207) heap_init: At 3FC95F40 len 000537D0 (333 KiB): RAM�[0m
�[0;32mI (1213) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM�[0m
D (1219) heap_init: New heap initialised at 0x3fcf0000�[0m
�[0;32mI (1224) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM�[0m
D (1231) heap_init: New heap initialised at 0x600fe01c�[0m
�[0;32mI (1236) heap_init: At 600FE01C len 00001FCC (7 KiB): RTCRAM�[0m
D (1242) cpu_start: calling init function: 0x42001870 on core: 0�[0m
D (1248) cpu_start: calling init function: 0x42006f48 on core: 0�[0m
D (1254) cpu_start: calling init function: 0x42001ddc on core: 0�[0m
V (1260) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1267) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x40E�[0m
D (1275) intr_alloc: Connected src 39 to int 0 (cpu 0)�[0m
D (1280) cpu_start: calling init function: 0x42001de8 on core: 0�[0m
D (1286) cpu_start: calling init function: 0x42006f54 on core: 0�[0m
D (1292) cpu_start: calling init function: 0x42001df4 on core: 0�[0m
V (1299) memspi: raw_chip_id: 16405E
�[0m
V (1302) memspi: chip_id: 5E4016
�[0m
V (1306) memspi: raw_chip_id: 16405E
�[0m
V (1310) memspi: chip_id: 5E4016
�[0m
D (1313) spi_flash: trying chip: issi�[0m
D (1317) spi_flash: trying chip: gd�[0m
D (1320) spi_flash: trying chip: mxic�[0m
D (1324) spi_flash: trying chip: winbond�[0m
D (1328) spi_flash: trying chip: boya�[0m
D (1332) spi_flash: trying chip: th�[0m
D (1335) spi_flash: trying chip: mxic (opi)�[0m
D (1340) spi_flash: trying chip: generic�[0m
�[0;32mI (1344) spi_flash: detected chip: generic�[0m
�[0;32mI (1348) spi_flash: flash io: dio�[0m
�[0;33mW (1352) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.�[0m
D (1366) cpu_start: calling init function: 0x42001bb4 on core: 0�[0m
D (1372) cpu_start: calling init function: 0x40379b3c�[0m
D (1377) cpu_start: calling init function: 0x42002fe4�[0m
D (1382) cpu_start: calling init function: 0x4201c92c on core: 0�[0m
D (1388) cpu_start: calling init function: 0x42004fd4 on core: 0�[0m
�[0;32mI (1394) sleep_gpio: Configure to isolate all GPIO pins in sleep state�[0m
�[0;32mI (1402) sleep_gpio: Enable automatic switching of GPIO sleep configuration�[0m
D (1409) cpu_start: calling init function: 0x42001e28 on core: 0�[0m
D (1415) cpu_start: calling init function: 0x42001e34 on core: 0�[0m
V (1421) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1428) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x40E�[0m
D (1436) intr_alloc: Connected src 79 to int 1 (cpu 0)�[0m
D (1441) app_start: Starting scheduler on CPU0�[0m
V (1445) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1445) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x402�[0m
D (1445) intr_alloc: Connected src 57 to int 2 (cpu 0)�[0m
V�(0445)I (1r4al oci _sa_kn rtaltod_on rPt0tus (cpu 1): checking args�[0m
V (1455) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): Args okay. Resulting flags 0x40E�[0m
D (1455) intr_alloc: Connected src 80 to int 1 (cpu 1)�[0m
D (1465) app_start: Starting scheduler on CPU1�[0m
V (1465) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): checking args�[0m
V (1475) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): Args okay. Resulting flags 0x402�[0m
D (1485) intr_alloc: Connected src 58 to int 2 (cpu 1)�[0m
D (1485) heap_init: New heap initialised at 0x3fce9710�[0m
V (1495) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1505) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0xE�[0m
D (1505) intr_alloc: Connected src 52 to int 3 (cpu 0)�[0m
�[0;32mI (1515) main_task: Calling app_main()�[0m
�[0;32mI (1515) USB host lib: USB host library example�[0m
�[0;32mI (1525) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 �[0m
�[0;32mI (1535) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:2 �[0m
V (1545) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1545) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x2�[0m
D (1555) intr_alloc: Connected src 16 to int 5 (cpu 0)�[0m
�[0;32mI (1565) USB host lib: Installing USB Host Library�[0m
V (1565) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args�[0m
V (1575) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x802�[0m
D (1585) intr_alloc: Connected src 38 to int 8 (cpu 0)�[0m
�[0;32mI (1615) CLASS: Registering Client�[0m
D (3275) HUB: Root port reset�[0m
D (3275) HUB: Device tree node (uid=1): new�[0m
D (3275) ENUM: [0:0] Start processing, device address 0�[0m
D (3275) ENUM: [0:0] GET_SHORT_DEV_DESC OK�[0m
D (3275) USBH: Processing actions 0x4�[0m
D (3275) USBH: Default pipe device 0�[0m
V (3285) ENUM: 0x3fceb324   80 06 00 01 00 00 08 00  12 01 00 02 00 00 00 40  |...............@|�[0m
D (3295) ENUM: [0:0] CHECK_SHORT_DEV_DESC OK�[0m
D (3825) ENUM: [0:0] SECOND_RESET OK�[0m
D (3825) ENUM: [0:0] SECOND_RESET_COMPLETE OK�[0m
D (3825) ENUM: [0:0] SET_ADDR OK�[0m
D (3825) USBH: Processing actions 0x4�[0m
D (3825) USBH: Default pipe device 0�[0m
V (3825) ENUM: 0x3fceb324   00 05 01 00 00 00 00 00                           |........|�[0m
D (3835) ENUM: Assign address (dev_addr=1)�[0m
D (3845) ENUM: [0:0] CHECK_ADDR OK�[0m
D (3855) ENUM: [0:0] SET_ADDR_RECOVERY OK�[0m
D (3855) ENUM: [0:0] GET_FULL_DEV_DESC OK�[0m
D (3855) USBH: Processing actions 0x4�[0m
D (3855) USBH: Default pipe device 1�[0m
V (3855) ENUM: 0x3fceb324   80 06 00 01 00 00 12 00  12 01 00 02 00 00 00 40  |...............@|�[0m
V (3865) ENUM: 0x3fceb334   f5 19 20 61 04 01 01 02  03 01                    |.. a......|�[0m
D (3875) ENUM: [0:0] CHECK_FULL_DEV_DESC OK�[0m
D (3885) ENUM: Selected bConfigurationValue=1�[0m
D (3885) ENUM: [0:0] SELECT_CONFIG OK�[0m
D (3885) ENUM: [0:0] GET_SHORT_CONFIG_DESC OK�[0m
D (3895) USBH: Processing actions 0x4�[0m
D (3895) USBH: Default pipe device 1�[0m
V (3905) ENUM: 0x3fceb324   80 06 00 02 00 00 08 00  00 00 00 00 00 00 00 00  |................|�[0m
�[0;31mE (3905) ENUM: Short config desc has wrong bDescriptorType�[0m
�[0;31mE (3915) ENUM: [0:0] CHECK_SHORT_CONFIG_DESC FAILED�[0m
D (3925) ENUM: [0:0] CANCEL OK�[0m
D (3925) HUB: Disabling root port�[0m

@roma-jam
Copy link
Collaborator

roma-jam commented Mar 6, 2025

Hi @alex-k8,

thanks for trying this, sometimes devices need a bit more time after reset to be able to return the Configuration Descriptor. But this is not our case.

May I ask you to change the logic of getting short descriptor in the file esp-idf/components/usb/enum.c, line 370?

Just replace the whole case with this:

    case ENUM_STAGE_GET_SHORT_CONFIG_DESC: {
        // Get a short config descriptor at descriptor index
        USB_SETUP_PACKET_INIT_GET_CONFIG_DESC((usb_setup_packet_t *)transfer->data_buffer, desc_index, 255  /* ENUM_SHORT_DESC_REQ_LEN */);
        transfer->num_bytes = sizeof(usb_setup_packet_t) + usb_round_up_to_mps(255 /* ENUM_SHORT_DESC_REQ_LEN */, ctrl_ep_mps);
        // IN data stage should return exactly ENUM_SHORT_DESC_REQ_LEN bytes
        p_enum_driver->single_thread.expect_num_bytes = 0 /* sizeof(usb_setup_packet_t) + ENUM_SHORT_DESC_REQ_LEN */;
        break;
    }

And share the output. You can share only the lines after tne ENUM: [0:0] Start processing, device address 0, everything else is not relevant right now.

Thank you.

@alex-k8
Copy link
Author

alex-k8 commented Mar 6, 2025

Thanks @roma-jam

Still getting the same issue. It did return more bytes (zeros) so I suspect the change was successful, but I'm still getting the Short config desc has wrong bDescriptorType error. Doesn't seem to be related to the number of bytes, but the values of them (?)

D (3276) ENUM: [0:0] Start processing, device address 0�[0m
D (3276) ENUM: [0:0] GET_SHORT_DEV_DESC OK�[0m
D (3276) USBH: Processing actions 0x4�[0m
D (3276) USBH: Default pipe device 0�[0m
V (3286) ENUM: 0x3fceb324   80 06 00 01 00 00 08 00  12 01 00 02 00 00 00 40  |...............@|�[0m
D (3296) ENUM: [0:0] CHECK_SHORT_DEV_DESC OK�[0m
D (3826) ENUM: [0:0] SECOND_RESET OK�[0m
D (3826) ENUM: [0:0] SECOND_RESET_COMPLETE OK�[0m
D (3826) ENUM: [0:0] SET_ADDR OK�[0m
D (3826) USBH: Processing actions 0x4�[0m
D (3826) USBH: Default pipe device 0�[0m
V (3826) ENUM: 0x3fceb324   00 05 01 00 00 00 00 00                           |........|�[0m
D (3836) ENUM: Assign address (dev_addr=1)�[0m
D (3846) ENUM: [0:0] CHECK_ADDR OK�[0m
D (3856) ENUM: [0:0] SET_ADDR_RECOVERY OK�[0m
D (3856) ENUM: [0:0] GET_FULL_DEV_DESC OK�[0m
D (3856) USBH: Processing actions 0x4�[0m
D (3856) USBH: Default pipe device 1�[0m
V (3856) ENUM: 0x3fceb324   80 06 00 01 00 00 12 00  12 01 00 02 00 00 00 40  |...............@|�[0m
V (3866) ENUM: 0x3fceb334   f5 19 20 61 04 01 01 02  03 01                    |.. a......|�[0m
D (3876) ENUM: [0:0] CHECK_FULL_DEV_DESC OK�[0m
D (3886) ENUM: Selected bConfigurationValue=1�[0m
D (3886) ENUM: [0:0] SELECT_CONFIG OK�[0m
D (3886) ENUM: [0:0] GET_SHORT_CONFIG_DESC OK�[0m
D (3896) USBH: Processing actions 0x4�[0m
D (3896) USBH: Default pipe device 1�[0m
V (3906) ENUM: 0x3fceb324   80 06 00 02 00 00 ff 00  00 00 00 00 00 00 00 00  |................|�[0m
V (3906) ENUM: 0x3fceb334   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|�[0m
V (3916) ENUM: 0x3fceb344   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|�[0m
V (3926) ENUM: 0x3fceb354   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|�[0m
V (3936) ENUM: 0x3fceb364   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|�[0m
V (3946) ENUM: 0x3fceb374   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|�[0m
V (3956) ENUM: 0x3fceb384   00 00 00                                          |...|�[0m
�[0;31mE (3966) ENUM: Short config desc has wrong bDescriptorType�[0m
�[0;31mE (3966) ENUM: [0:0] CHECK_SHORT_CONFIG_DESC FAILED�[0m
D (3976) ENUM: [0:0] CANCEL OK�[0m
D (3976) HUB: Disabling root port�[0m

@roma-jam
Copy link
Collaborator

roma-jam commented Mar 6, 2025

Hi @alex-k8 , thanks for the info.

Yes, the device returns appropriate amount of bytes (91, which is 0x5B - right wTotalLengh value for Config Descriptor), but the questions is why the data is invalid.

Do you have any chance to capture the Wireshark log while attaching this device to the PC Host?

@alex-k8
Copy link
Author

alex-k8 commented Mar 6, 2025

@roma-jam unfortunately I don't own the device, I'm getting the logs from my customer who is using my custom board. I can assist him in getting the logs if you can send me some high level instructions, or I can figure it out as well if needed. I have done it once in the past but it's been over a year.

From my understanding, the short config response is used to store the wTotalLength value, and then that's used in the full config request? Couldn't we hardcode the 0x005B to see if it proceeds and works as expected after that step?

@roma-jam
Copy link
Collaborator

roma-jam commented Mar 6, 2025

@alex-k8 ,

short config response is used to store the wTotalLength value, and then that's used in the full config request?

yes, there is no information about the full length, so we request first 8 bytes (short), get the full length and then use this value to request the whole Configuration Descriptor.

Couldn't we hardcode the 0x005B

We could, indeed, but that doesn't make any real sense, as this will be the same as request the maximum - 0xff (or 255) which we just tried.

if you can send me some high level instructions

I don't think that I will provide any better than the Wireshark themselves: https://wiki.wireshark.org/CaptureSetup/USB
Anyway, the process in oversimplified way should be: install the software, select the capture source (usb), attach the device, wait till it appears in system, save log.

Then, it is better to filter the log, but if that is not possible by any reasons we can filter it on our side and get the information we need. So, both (filtered / non-filtered) are OK.

If you need anything more precise, let me know.

@alex-k8
Copy link
Author

alex-k8 commented Mar 6, 2025

@roma-jam

yes, there is no information about the full length, so we request first 8 bytes (short), get the full length and then use this value to request the whole Configuration Descriptor.

Oh I see, so it's actually passing the GET_SHORT_CONFIG_DESC and the issue is in the full descriptor?

Thanks for the link, I will see what I can do and get back to you soon!

@roma-jam
Copy link
Collaborator

roma-jam commented Mar 6, 2025

@alex-k8,

in case to prevent any misunderstandings - there are no requirements for any additional hardware to capture the usb log with Wireshark: only the device itself and PC Host.

Feel free to ask any questions in case they appear.

Thanks for the understanding and collaboration.

@alex-k8
Copy link
Author

alex-k8 commented Mar 6, 2025

Yup, thanks @roma-jam . I had used it once before to figure out what the computer sends to turn on the caps lock LED on keyboards, so I'll figure it out.

Thank you for your help.

@espressif-bot espressif-bot added Awaiting Response awaiting a response from the author Status: Selected for Development Issue is selected for development and removed Status: Opened Issue is new labels Mar 18, 2025
@alex-k8
Copy link
Author

alex-k8 commented Mar 22, 2025

Hey @roma-jam , I managed to get some Wireshark logs. Unfortunately they are not filtered, but the logs with ID 1.17.0 should be the relevant ones. Let me know if you need anything else from me. Github wouldnt allow me to upload the .pcapng file, so I zipped it.

log (1).zip

@roma-jam
Copy link
Collaborator

@alex-k8,

Thanks, log from the Host was from the High-speed port.....S3 has a Full-speed. That might be relevant.
Is there any chance to verify the device in the other Full-speed port (not esp)?

In the log the request configuration descriptor is done in two steps: first request is 9 bytes only, then - the wTotalLength (which is 91 or 0x5b).

We can try to do the same: change short amount from 8 to 9 bytes and check whether it helps.

To do that, it is possible just to change the define in enum.c:

#define ENUM_SHORT_DESC_REQ_LEN 9 // Number of bytes to request when getting a short descriptor (just enough to get bMaxPacketSize0 or wTotalLength)

@alex-k8
Copy link
Author

alex-k8 commented Mar 23, 2025

Hey @roma-jam thanks for the quick response.

Not sure what you mean by other full-speed port? You mean a USB 2.0 port on the computer? Unfortunately my customer who has the UHK only has USB 3.0 ports.

I did some tests by changing the ENUM_SHORT_DESC_REQ_LEN, but it didn't seem to help unfortunately. Below are the logs

D (3276) ENUM: [0:0] Start processing, device address 0�[0m
D (3276) ENUM: [0:0] GET_SHORT_DEV_DESC OK�[0m
D (3276) USBH: Processing actions 0x4�[0m
D (3276) USBH: Default pipe device 0�[0m
V (3286) ENUM: 0x3fceb324   80 06 00 01 00 00 09 00  12 01 00 02 00 00 00 40  |...............@|�[0m
V (3296) ENUM: 0x3fceb334   f5                                                |.|�[0m
D (3296) ENUM: [0:0] CHECK_SHORT_DEV_DESC OK�[0m
D (3836) ENUM: [0:0] SECOND_RESET OK�[0m
D (3836) ENUM: [0:0] SECOND_RESET_COMPLETE OK�[0m
D (3836) ENUM: [0:0] SET_ADDR OK�[0m
D (3836) USBH: Processing actions 0x4�[0m
D (3836) USBH: Default pipe device 0�[0m
V (3836) ENUM: 0x3fceb324   00 05 01 00 00 00 00 00                           |........|�[0m
D (3846) ENUM: Assign address (dev_addr=1)�[0m
D (3856) ENUM: [0:0] CHECK_ADDR OK�[0m
D (3866) ENUM: [0:0] SET_ADDR_RECOVERY OK�[0m
D (3866) ENUM: [0:0] GET_FULL_DEV_DESC OK�[0m
D (3866) USBH: Processing actions 0x4�[0m
D (3866) USBH: Default pipe device 1�[0m
V (3866) ENUM: 0x3fceb324   80 06 00 01 00 00 12 00  12 01 00 02 00 00 00 40  |...............@|�[0m
V (3876) ENUM: 0x3fceb334   f5 19 20 61 04 01 01 02  03 01                    |.. a......|�[0m
D (3886) ENUM: [0:0] CHECK_FULL_DEV_DESC OK�[0m
D (3896) ENUM: Selected bConfigurationValue=1�[0m
D (3896) ENUM: [0:0] SELECT_CONFIG OK�[0m
D (3896) ENUM: [0:0] GET_SHORT_CONFIG_DESC OK�[0m
D (3906) USBH: Processing actions 0x4�[0m
D (3906) USBH: Default pipe device 1�[0m
V (3916) ENUM: 0x3fceb324   80 06 00 02 00 00 09 00  00 00 00 00 00 00 00 00  |................|�[0m
V (3916) ENUM: 0x3fceb334   00                                                |.|�[0m
�[0;31mE (3926) ENUM: Short config desc has wrong bDescriptorType�[0m
�[0;31mE (3936) ENUM: [0:0] CHECK_SHORT_CONFIG_DESC FAILED�[0m
D (3936) ENUM: [0:0] CANCEL OK�[0m
D (3946) HUB: Disabling root port�[0m

@roma-jam
Copy link
Collaborator

roma-jam commented Mar 24, 2025

@alex-k8 ,
thanks for the additional information.

You mean a USB 2.0 port on the computer?

Yes, some device (maybe some old laptop, but I guess it should be really old, so maybe some other embedded device) with the port, that supports Full-speed. Because the keyboard has the usb-c connected and the behavior on Full-speed is quite strange: it reports the right amount of bytes, but no data.

Based on the Wireshark log, there is no specific in the interaction.

Also, could be the power problem. So let's exclude it: is there any chance to try connect the keyboard via external hub with the external power supply?

UPD: I had read about the keyboard and there are some complains about it being not detected after loading to Win from BIOS. It requires to be turned-off and then turned-on with the switcher.

So, if there is a power switcher on the keyboard we could try:

  • Connect keyboard to the esp32s3 usb and turn it on after connection
  • Power-off / power-on keyboard, while it is still connected to esp32s3 usb port
  • Power on the full combination: esp32s3 + connected keyboard (if possible, that means we need to power the esp32 board only after connection the keyboard to the usb host port of esp32s3)

Please, let me know if any of this help or change the original behavior somehow.
Thanks.

@alex-k8
Copy link
Author

alex-k8 commented Mar 24, 2025

Hi @roma-jam thank you.

I got some logs from a usb2 port, not sure if they are too much different. ID should be 1.2.0.

Unfortunately no power hub is available. But my PCB operates both in power mode (through the type c) and through battery. Same issue on both.

I read some things as well, but keep in mind this is the Air75HE and not the Air75. There is a switch that toggles between Windows/Linux/Mac, but unfortunately again it's the same issue on all. It doesn't seem to change anything, only some key bindings probably. There is no power switch.

Thank you for taking time to look at this.

log (2).zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Response awaiting a response from the author Status: Selected for Development Issue is selected for development Type: Bug bugs in IDF
Projects
None yet
Development

No branches or pull requests

3 participants