USB Connectivity in Windows 11 on Surface

I previously posted this in the Discord help channel, but I have not been able to solve the issues yet, so I am posting in full, here. Sorry, this will be a long post, as it contains a lot of background into what I’ve tried.

Any help getting this solved, or pointing me in the right direction, is very much welcome.

PROBLEM

I have a challenge connecting Daisy to Windows… but it seems to be the opposite of what others have encountered.

Setup:

  • Windows 11, latest GA build and patches. USB C going to an Expansion Box with (as Surface only has USB C)
  • SetupSTM32CubeProgrammer_win64
  • Installed and run Zagdig
  • I have installed the board definitions and DaisyDuino library, configured based on the instructions on the DaisySeed installation page. See the config image for the settings of the board (image 1)

Detailed Problem Statement

  • When I first plugged in the DS to my Window 11 USB (Surface Studio Laptop), I got a com port (port 5.) All good. The DS had a blinking LED app already installed, as the right LED was blinking.
  • However, the DS was not being detected when I put it into upload mode.
  • Being a known issue, I fired up Zadig and following the instructions to get the DFU over the WindowsUSB (see image). And vola! I was able to upload the blinking light demo (though I changed the speed so I could check the results.)
  • However, when the device returns to ‘run’ mode, the blinking lights did not blink and - more importantly - it is no longer connecting to USB or finding a com port.
  • Running Zadig again reveals that the DS is not opening up any USB port.
  • Putting DS into boot mode results in a USB ‘chiome’ on Windows and I can upload code again, but no port shows (weird)

Initial Remediation Steps:

Problem

When I first plugged in the DS to my Window 11 USB (Surface Studio Laptop), I got a com port (port 5.) All good. The DS had a blinking LED app already installed, as the right LED was blinking.
However, the DS was not being detected when I put it into upload mode.
Being a known issue, I fired up Zadig and following the instructions to get the DFU over the WindowsUSB (see image). And vola! I was able to upload the blinking light demo (though I changed the speed so I could check the results.)
However, when the device returns to ‘run’ mode, the blinking lights did not blink and - more importantly - it is no longer connecting to USB or finding a com port.
Running Zadig again reveals that the DS is not opening up any USB port.
Putting DS into boot mode results in a USB ‘chiome’ on Windows and I can upload code again, but no port shows (weird)

REMEDIATION EFFORTS SO FAR

  1. Disconnected DS and reconnected on differetn USB port.
  2. Rebooted laptop
  3. Replaced USB extension box with another
  4. Tried a different laptop
  5. Checked settings to ensure I have USB serials coms setup (all good)
  6. Reinstalled WinUSB driver
  7. Reinstalled SetupSTM32CubeProgrammer_win64
  8. Re-rechecked all board setting

I’m stuck. I have read that DS can have issues with USB 3. The only device I have with a non USBC socket uses USB3. :frowning_face_with_open_mouth: Any workarounds or thoughts on that?

The biggest brain stretcher is that the DS did work prior to me sending it the blink code.

Initial Responses

1.tele_player 7/10/25, 11:20 PM

I suspect that the Blink image running on a factory-new Daisy Seed has USB serial code included, so it appears as a COM port, maybe for some automated verification in manufacturing? But, the source code Blink (in DaisyExamples) doesn’t have USB code, so once you modify/build/upload a new Blink, the COM port disappears.

2.DocJoe 7/11/25, 11:18 AM

Ah.. interesting idea. Thank you! So I would need to include a serial library? I did add a Serial.print statement in the loop, but that’s not visible due to com port not being set. Also, the blink is not working.

  1. tele_player 7/11/25, 11:43 AM

You should only need to set the USB support and U(S)ART support, IIRC.

Second Remeditation Efforts and Tests

Thanks @tele_player . Based on you advice, I began a step by step investigation of the USB settings. The settings were correct, but the tests did reveal some more details… Process for tests:

  1. Check all Ardunio settings. Appear as correct, with USB support set. See image 1.
  2. Put DS into boot mode. Hear the ‘USB connect chime’ and application uploads correctly. See image 2,3,4,5.
  3. USB chime once application has completed uploading. DS is not showing a blinking LED. No com port available.
  4. Used Zadig to check USB ports. Unknown USB Device (Device Description Request Failed) found. Attempted to set this to WinUSB(v 6.1…) with Zadig. See image 6.
  5. Setting of Unknown USB Device with Zadig fails. See image 7.
  6. Attempted setting of Unknown USB Device a second time, with same result.
  7. Note that the DS is still not showing a Blinking LED, suggesting the application is not running.
  8. As hail mary, attempted to use Zadig to set Unknown USB Device to libusb-win32, and CDC Usb settings… both failed.
  9. Repeated steps 1 to 4 above, but with a fresh (non modified) instance of the blink example code. Same results.
  10. Closed IDE and deleted all temp files.
  11. Reopened IDE and recompiled as per steps 1-4, with the same results.
  12. Closed IDE. Disconnected DS.
  13. Opened Device Manager, located the Unknown USB Device and deleted it. Rebooted device.
  14. Confirmed in Device Manager and Zadig that Unknown USB device is gone. Image 8.
  15. Reconnected DS, and opened IDE. Put DS into book mode and DFU FS Mode shows in Device Manager. See image 9.
  16. Repeated steps 1-4 and same result.
  17. Rescanned for devices in Device Manager and with Zadig and the Unknown USB Device is back. See image 10.

So… I now know that Unknown USB Device (Device descriptor request failed) is the DS USB, but it is not able to be configured with Zadig.

Images 1 - 5





Image 6, 7


Image 8

Image 9

Image 10

SUMMARY

Sorry for the huge torrent of info. Hopefully someone will spot where I’ve gone wrong and be able to lend a hand.

  • Initial USB port was detected (port 3)
  • After uploading Blink application via DFU, Windows 11 will not detect the DS
  • DFU bootloading still works, but…
  • DS seems not to be responding or running the Blink code uploaded

Can you provide the actual code you tried to run? I’m having trouble seeing how an apparently successful upload isn’t blinking.

Sure thing @tele_player! And thanks again for the assistance. Working through it one step at a time!

Blockquote
/*
Blink

Turns an LED on for one second, then off for one second, repeatedly.

Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:
https://docs.arduino.cc/hardware/

modified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman

This example code is in the public domain.

Daisyseed Setup
Board: Nucleo-65
C Runtime: Newlib Nano (default)
Part No: Nucleo L476RG
USB SUpport: CDC (generic ‘Serial’ supercede U(S)ART)
Upload method: STM32CubeProgrammer (DFU)
U(S)ART support: Enabled (generic Serial)
USB Speed: Low/Full Speed

https://docs.arduino.cc/built-in-examples/basics/Blink/
*/

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(500); // wait for a second
Serial.print( “.” );
}

The standard Arduino Blink.ino, I was just making sure.

Solved -

See Board: and Board part number: below.

1 Like

Hoooooray. I knew it woukd be something obvious. Thank you so much. The previous settings came from thea daisy seed installation page link to github.com/stm32dunino/Arduino_Core_STM32/wiki/Gettin-Started

Im including that link so other folks on this journwy dont mak we the same mistake as me.

Again, thanks so much for your help.