Skip to main content
Associate II
September 29, 2023
Question

STM32F103C6T6 USB Bootloader Flash Issue

  • September 29, 2023
  • 5 replies
  • 12031 views

I've been previously programming the STM32F103C6T6 blue pill with an FTDI via UART and am now trying to flash a USB bootloader binary to program it directly via USB.
I've closely followed the guide on 
https://www.electrosoftcloud.com/en/stm32f103-bootloader-and-programming/ - I've successfully flashed the generic_bootloader_pc_13.bin file via UART, installed the required drivers, and followed the BOOT0 pattern correctly. On connecting via USB, the board is detected as "Maple DFU" in the Device Manager.

Kartik1004_0-1695959768385.png

But STM32CubeProgrammer keeps showing "No DFU detected" when I try connecting via USB and pressing the refresh button.

Kartik1004_1-1695959829733.png

However, when I enter the PID and VID specified in the Maple DFU driver properties shown below in STM32CubeProgrammer: 

Kartik1004_2-1695959884237.png

On refreshing and trying to connect, the error "unknown or unsupported device" is displayed:
Kartik1004_3-1695959973802.png

I've followed several online resources, and nobody seems to encounter this issue.
Can anyone provide any insights into why this might occur?

5 replies

TDK
Super User
September 29, 2023

STM32CubeProgrammer is looking for the system bootloader DFU, not some other device (Maple DFU).

I recommend using stm32duino tools to interface with the device via their bootloader.

"If you feel a post has answered your question, please click ""Accept as Solution""."
Associate II
September 30, 2023

Oh, okay, thanks! But to program the device through STM32CubeIDE via USB, can I use a bootloader, or do I need to resort to UART/ST-LINK?

AScha.3
Super User
September 30, 2023

you decided to use stm cpu and ..cubeide, so you need a st-link to connect/debug.

if money is a problem, try a cheap st-linkV2 ("clone") stick , 3$ investment. (but buy only, where you can see some comments from buyers, this unit is working fine . there are many bad st-link-sticks, wont work with ide/debug. )

"If you feel a post has answered your question, please click ""Accept as Solution""."
MM..1
Chief III
September 30, 2023
Pavel A.
Super User
September 30, 2023

So does your device show up with error as on the picture above, or as "Maple DFU"? The error shown above is not caused by any 3rd party driver, it is in the low level USB communication. Try a better cable and/or good USB 2.0 (not 3.x!) hub, better a powered one. If still shows up like above, your device (STM32) does not work.

Associate II
September 30, 2023

The device shows as "Maple DFU" when I boot from the user flash with Arduino STM32 tools and with the error when I boot from the system DFU bootloader. One of the cables I tried was indeed causing problems, and I'll try a USB 2.x hub as my system has USB 3.x ports only. But why not USB 3.x?

Pavel A.
Super User
September 30, 2023

But why not USB 3.x?

New USB 3.x hubs sometimes are less tolerable to "not 100% compatible" full speed devices. Depends on the model, of course.

MM..1
Chief III
September 30, 2023

why you dont choice device with system DFU? List is in AN2606

Associate II
October 1, 2023

So you mean that the STM32F10xxx series lacks a USB bootloader as the only bootloader listed on Page 75 is USART1? Other series do have DFU bootloader listed in their bootloader configuration. Seems there's no way to program the device in hand using STM32CubeProg and USB. I need to use this device so FTDI (to flash bin files)/ST-Link (to use STM32Cube since FTDI doesn't support debugging) are probably the only options :\

MM..1
Chief III
October 1, 2023

Yes as you see DFU is only 105 107

MM1_0-1696143762043.png

but MCUs with USB interface without this in system ROM, can use user coded DFU ... you test it, but not based on BOOT0 pin...