Repository navigation
Replies: 9 comments 3 replies
|
Well that's weird, I mostly work on Windows 10 22H2 and never met this issue with daily cdc_dual_ports build on different MCUs. Maybe try another PC/port/hub ? |
|
Can't reproduce with STM32 Mini V2.0 + Windows 10 Pro 19045.6575. |
|
I'm using two CDC ports on windows 10 - it's recognized normally in windows. |
|
I'm at the begging of tinyusb learning curve - but with my USB expiriance - it looks like device descriptor/config descriptor problem. Normally Linux is much more tollerant to annomalies in descriptors. Have you tried on a different windows machine? |
|
I have a complete duplicate M6700 machine I use as a spare system - I just tried the device with that - no change in result. |
|
Hmmm definitely something weird going on here. Note - my USB device is in my USB Hub position 6, and my STLink dongle in Hub position 7 next to it. The extra USB dual serial ports are on a seperate port to the Dell M6700, so totally independent. The STLink SWD hookups go to the STM board for programming and stay attached during testing. My usual usage after a test run is, hack\recompile code, power cycle both USBs off and on (so Ubuntu USB host is happy), reprogram device, cycle power to both off and on (to launch new code from scratch) and then the next test run... For a Win10 test run its boot up, and then power on both USBs. So... went back to my custom USB device code, (which has debug logging enabled). The device worked in Ubuntu ok, debug output with TinyUSB stuff in it looked ok, so all good so far, then tried Win10. So.. I thought lets disconnect the SWD wires from the STLink, so I only have to power up just the USB device.... get same error, same one line power up hello debug output message. Win10 didn't react to the device power up at all. Whislt the USB device was still on, I then powered up the USB STLink in next HUB position.... and wooah.... I get a load of TinyUSB debug logging appear from my USB device! (Win10 beeped so USB device detected, but still ends up with the same error). NOTE the STLink device is not even connected to my USB device. Somehow, powering on the STLink device in the Hub port position 7, is causing the USB device in hub position 6 to do TinyUsb activity. Just did a test of plugging the USB device (without STLink attached) into the other Dell M6700. I get the debug logging saying power on hello and TinyUSB saying its getting descriptor requests but still the same WIn10 device error at the end of the day. Will go thru all this testing again tomorrow to reduce, refine and replicate to see if anything new pops up. |
|
Back... after hours and hours of testing. I had two seperate problems, one hardware (my hub) and one code (usb_descs.h). For the coding error I eventually tracked it down to ITF_NUM_TOTAL being wrong (during all my tests trying to get it to work when changing between different configurations I didn't check ITF_NUM_TOTAL was correct. For the latter problem, I didn't realise until after hours digging into TinyUsb that the stack is conditionally compiled depending on for example the value of CFG_TUD_CDC. This value dependency makes it difficult to incorporate TinyUsb as an independant library in a build. In my app I use TinyUsb as an imported library built for CDC, which I can then at runtime setup for USB configure of 3 CDCs - this makes it very easy for me to switch between USB configs for running other tests etc. The app code has a single source file to holding the USB descriptors that isn't used by the TinyUsb stack during building. This split adds very little overhead to the existing code base. The good news is situation kinda sorted, new hardware on its was and I've learnt a lot more about the TinyUsb internals. Now to get 4 CDCs working! |
|
Thanks to all for feedback and advice to help me get unstuck. Much appreciated. For anyone using Ubuntu to develop USB devices... Attached is a useful bash script for Ubuntu that I run as sudo to reset the USB subsystem between tests of 'iffy' USB devices. |

Uh oh!
There was an error while loading. Please reload this page.
Operating System
Windows 10
Commit SHA
1
Board
STM32F103 Bluepill
Firmware
I'm not having much luck in getting my custom CDC_ACM device to be recognised by Win10 Pro 2009 Build 19045.5737.
Device manager generally says Get Device Descriptor failed, status 0xC000009C, Problem 0xA.
So I tried the CDC ACMM dual port example and it too won't load under Win 10.
What happened ?
The device works perfectly in Ubuntu 25.10, but Win10 refuses to load it.
Just in case it was me, I tried the CDC ACM Dual port device from the examples folder.
The example device doesn't load in Win10 either (As a triple check the example device works fine in Ubuntu 25.10).
Does anyone have a working set of device configuration \ interface definitions proven to work in Win10?
How to reproduce ?
Build the example CDC ACM dual port for an stm32f103 Bluepill board.
Try it in Ubuntu 25.10 and it works.
Try it in Win10 and it won't load, (view hidden devices in device manager to see the faulty device).
Debug Log as txt file (LOG/CFG_TUSB_DEBUG=2)
Here is some technical info out of my Win10....
Edition Windows 10 Pro
Version 2009
Installed on 29/09/2024
OS Build 19045.5737
Device USB\VID_CAFE&PID_4002\30FF6B06304D453115410143 had a problem starting.
Driver Name: usb.inf
Class Guid: {36fc9e60-c465-11cf-8056-444553540000}
Service: usbccgp
Lower Filters:
Upper Filters:
Problem: 0xA
Problem Status: 0xC000009C
Device USB\VID_CAFE&PID_4002\30FF6B06304D453115410143 was configured.
Driver Name: usb.inf
Class Guid: {36fc9e60-c465-11cf-8056-444553540000}
Driver Date: 06/21/2006
Driver Version: 10.0.19041.4474
Driver Provider: Microsoft
Driver Section: Composite.Dev.NT
Driver Rank: 0xFF2003
Matching Device Id: USB\COMPOSITE
Outranked Drivers: oem26.inf:USB\COMPOSITE:00FF3003 oem27.inf:USB\COMPOSITE:00FF3003
Device Updated: false
Parent Device: USB\VID_1A40&PID_0101\7&dece10e&0&1
Screenshots
No response
I have checked existing issues, discussion and documentation
All reactions