No DFU capable USB device available

Hi!

Anyone experienced this problem: "No DFU capable USB device available" uploading a simple sketch to a Portenta machine control board?

I tried everything... cables, PC, OS, with or without power supply... also other boards...
with the green LED is fading and not fading...

The COM port is visible on Device Manager. I've also tried to change port number.

Andrea

Below the tail of the log of Arduino IDE 1.8.19:

Compiling core...
"C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g3 -nostdlib "@C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\variants\\PORTENTA_H7_M7/defines.txt" "@C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\variants\\PORTENTA_H7_M7/cxxflags.txt" -MMD -mcpu=cortex-m7 -mfloat-abi=softfp -mfpu=fpv5-d16 -DARDUINO=10819 -DARDUINO_PORTENTA_H7_M7 -DARDUINO_ARCH_MBED_PORTENTA -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=0 "-IC:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\cores\\arduino" "-IC:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\variants\\PORTENTA_H7_M7" -DCM4_BINARY_START=0x08100000 "-IC:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\cores\\arduino/api/deprecated" "-IC:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\cores\\arduino/api/deprecated-avr-comp" "-iprefixC:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\cores\\arduino" "@C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\variants\\PORTENTA_H7_M7/includes.txt" "C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\variants\\PORTENTA_H7_M7\\variant.cpp" -o "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\core\\variant.cpp.o"
Using precompiled core: C:\Users\shc-user\AppData\Local\Temp\arduino_cache_149801\core\core_arduino_mbed_portenta_envie_m7_split_50_50,security_none_ce7568b526942b72047cc33ac9c00ae2.a
Linking everything together...
"C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -E -P -x c -DCM4_BINARY_START=0x08100000 "C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\variants\\PORTENTA_H7_M7/linker_script.ld" -o "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691/linker_script.ld"
"C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" "-LC:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691" -Wl,--gc-sections -w -Wl,--as-needed -DCM4_BINARY_START=0x08100000 "@C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\variants\\PORTENTA_H7_M7/ldflags.txt" "-TC:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691/linker_script.ld" "-Wl,-Map,C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691/TechIO_v3.ino.map" --specs=nosys.specs -o "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691/TechIO_v3.ino.elf" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\sketch\\TechIO_v3.ino.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\Arduino_MachineControl\\Objects.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\Arduino_MachineControl\\utility\\MAX31865\\MAX31865.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\Arduino_MachineControl\\utility\\QEI\\QEI.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\Arduino_MachineControl\\utility\\RTC\\PCF8563T.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\Arduino_MachineControl\\utility\\THERMOCOUPLE\\MAX31855.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\Arduino_MachineControl\\utility\\ioexpander\\ArduinoIOExpander.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\Arduino_MachineControl\\utility\\ioexpander\\I2Cdev.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\Arduino_MachineControl\\utility\\ioexpander\\TCA6424A.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\SPI\\SPI.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\ArduinoRS485\\RS485.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\Wire\\Wire.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\WiFi\\WiFi.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\WiFi\\WiFiServer.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\SocketWrapper\\MbedClient.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\SocketWrapper\\MbedSSLClient.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\SocketWrapper\\MbedServer.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\SocketWrapper\\MbedUdp.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\SocketWrapper\\SocketHelpers.cpp.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\libraries\\SocketWrapper\\utility\\http_parser\\http_parser.c.o" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691\\core\\variant.cpp.o" -Wl,--whole-archive "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691/..\\arduino_cache_149801\\core\\core_arduino_mbed_portenta_envie_m7_split_50_50,security_none_ce7568b526942b72047cc33ac9c00ae2.a" "C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed_portenta\\3.4.1\\variants\\PORTENTA_H7_M7/libs/libmbed.a" -Wl,--no-whole-archive -Wl,--start-group -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys -Wl,--end-group
"C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-objcopy" -O binary "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691/TechIO_v3.ino.elf" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691/TechIO_v3.ino.bin"
"C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-objcopy" -O ihex -R .eeprom "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691/TechIO_v3.ino.elf" "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691/TechIO_v3.ino.hex"
Più di una libreria trovata per "WiFi.h"
Usata: C:\Users\shc-user\AppData\Local\Arduino15\packages\arduino\hardware\mbed_portenta\3.4.1\libraries\WiFi
Non usata: C:\Program Files (x86)\Arduino\libraries\WiFi
Uso la libreria arduino-timer alla versione 2.3.1 nella cartella: C:\Users\shc-user\Documents\Arduino\libraries\arduino-timer 
Uso la libreria Arduino_MachineControl alla versione 1.1.0 nella cartella: C:\Users\shc-user\Documents\Arduino\libraries\Arduino_MachineControl 
Uso la libreria SPI nella cartella: C:\Users\shc-user\AppData\Local\Arduino15\packages\arduino\hardware\mbed_portenta\3.4.1\libraries\SPI (legacy)
Uso la libreria ArduinoRS485 alla versione 1.0.2 nella cartella: C:\Users\shc-user\Documents\Arduino\libraries\ArduinoRS485 
Uso la libreria Wire nella cartella: C:\Users\shc-user\AppData\Local\Arduino15\packages\arduino\hardware\mbed_portenta\3.4.1\libraries\Wire (legacy)
Uso la libreria WiFi alla versione 1.0 nella cartella: C:\Users\shc-user\AppData\Local\Arduino15\packages\arduino\hardware\mbed_portenta\3.4.1\libraries\WiFi 
Uso la libreria SocketWrapper alla versione 1.0 nella cartella: C:\Users\shc-user\AppData\Local\Arduino15\packages\arduino\hardware\mbed_portenta\3.4.1\libraries\SocketWrapper 
"C:\\Users\\shc-user\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-size" -A "C:\\Users\\shc-user\\AppData\\Local\\Temp\\arduino_build_548691/TechIO_v3.ino.elf"
Lo sketch usa 326724 byte (41%) dello spazio disponibile per i programmi. Il massimo è 786432 byte.
Le variabili globali usano 78520 byte (14%) di memoria dinamica, lasciando altri 445104 byte liberi per le variabili locali. Il massimo è 523624 byte.
Forzo il reset aprendo e chiudendo a 1200bps la porta COM2
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
PORTS {COM2, } / {COM2, } => {}
Uploading using selected port: COM2
C:\Users\shc-user\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.10.0-arduino1/dfu-util --device 0x2341:0x035b -D C:\Users\shc-user\AppData\Local\Temp\arduino_build_548691/TechIO_v3.ino.bin -a0 --dfuse-address=0x08040000:leave 
dfu-util 0.10-dev

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Warning: Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release
No DFU capable USB device available
Errore durante il caricamento dello sketch

Not sure, but I guess I have seen: when USB-C is used as UART and the terminal program, e.g. TeraTerm is still running and connected - even double press RESET and fading green LED - the DFU bootloader does not find.
Close your UART terminal first.

Also seen: with my FW flashed, a double RESET press does not result in a fading flashing LED.
Instead I get a solid green LED.
I have to power cycle the board - but very quickly: unplug the USB-C and plug in again, pretty fast as you can. Now I have fading green flashing LED and bootloader works.

Hi tjaekel,

Thanks for the feedback, I can't figure out what is the problem...

Andrea

Hi @e500. One possible cause of this error is not having the drivers installed. They should be installed automatically by Arduino IDE when you install the "Arduino Mbed OS Portenta Boards" platform, so it might be somewhat of a long shot, but I think it is worth a try to manually install the drivers anyway. I'll provide instructions:

Even though it is somewhat of a roundabout approach, I think the simplest way is to uninstall and then reinstall the platform. The previously downloaded files are cached, so it should be relatively quick:

  1. Select Tools > Board > Boards Manager from the Arduino IDE menus.
  2. Wait for the updates to finish.
  3. Scroll down through the list of boards platforms until you see "Arduino Mbed OS Portenta Boards". Click on it.
  4. Click the Remove button.
  5. Wait for the removal to finish.
  6. Click the Install button on the "Arduino Mbed OS Portenta Boards" entry.
  7. Wait for the installation to finish.
  8. (possibly depending on your Windows security settings), you will see a "User Account Control" dialog about dpinst-amd64.exe asking whether you "want to allow this app from an unknown publisher to make changes to your device". Click the Yes button.
    This is the tool that installs the driver.
  9. Click the Close button.

Now try uploading to your board again. Hopefully the error will no longer occur.

Hi @ptillisch thanks for your feedback.

I've tried with a old Intel Centrino Duo, with Windows 7 and with a different cable but with the same identical issue. I've tried compiling an empty sketch on Portenta H7 processor.

This sound me very strange... I've bought 30 bricked boards? (I've tried 2 boards with 3 PCs) on Monday I'll try with an other board.

Thanks,
Andrea

You are welcome. Did you try what I suggested?

Did all three PCs use Windows 7?

Hi to everybody, finally I've done it! I've tried with a third cable (a very short and low budget one)

The other two cables (apparently high quality and 50cm long) won't work. The third (robbed to my son's low quality bluetooth speaker charger) worked like a charme.

Anyone can tell me why? I'm interested to understand in depth.
There is a kind of cable suitable for the connection to the Portenta boards?

Thanks,
Andrea

Oh, yes: you have to install the bootloader USB drivers:
They are located in: C:\Users<yourUserName>\AppData\Local\Arduino15\packages\arduino\hardware\mbed_portenta\3.0.1\drivers

I have seen this as well: on a fresh computer, Arduino IDE not installed - the flash loader does not work due to missing drivers (you see USB device with no drivers available - check via Device Manager).

I tried to separate the drivers, for "stand-alone" install (w/o Arduino IDE install needed):
bootloader_drivers.zip (692.6 KB)

I know this topic was months ago but in regard to the cable(s)... Often 'charge cables' don't work as they need to be 'data cables'. The charge only cables do not have the extra wires in the cable to carry the data - they only have two wires for charging.

3 Likes

One more SOLUTION to this:

-> Make sure you have ESP32 board with ESP32 package
-> If you are using ESP8266 board DONT use ESP32 package (Use the esp8266 package)

This sounds like a stupid mistake but this mistake took me 2 hours of my life and the output of this mistake is the same annoying:
"dfu-util: No DFU capable USB device available
Failed uploading: uploading error: exit status 74"

1 Like

14 posts were split to a new topic: Upload to Nano ESP32 fails: "No DFU capable USB device available"