Showing results for 
Search instead for 
Did you mean: 

Bluepill program upload does not work as expected

Associate II


This is my first post on this forum.

I just got an STM32F103C8T6 board from Ebay, ( )

and I have a question regarding programming it.

I use Arduino IDE 1.8.9 for programming and the correct board manager.

For upload I use an USB FTDI card that I run in 3.3V mode. I have connected the FTDI as follows: VCC to 3.3V, GND to GND, RX to A9 and TX to A10.

I load the Blink example and upload it to the board using arduino IDE. The settings I have used in Arduino is 

Board: Generic STM32F103C series

Variant: STM32F103CB (20k RAM 64k Flash

Upload method: Serial

CPU speed: 72 MHz

I have switched BOOT0 jumper to "1" position.

The program uploads and this is what appears in the output window:

Using Parser : Raw BINARY

Interface serial_w32: 115200 8E1

Version     : 0x22

Option 1    : 0x00

Option 2    : 0x00

Device ID   : 0x0410 (Medium-density)

- RAM       : 20KiB (512b reserved by bootloader)

- Flash     : 128KiB (sector size: 4x1024)

- Option RAM : 16b

- System RAM : 2KiB

Write to memory

Erasing memory

Wrote address 0x08000100 (2.03%)

Wrote address 0x08000200 (4.06%)



Wrote address 0x08003100 (99.37%)

Wrote address 0x08003150 (100.00%) Done.

Starting execution at address 0x08000000... done.

The program does not run immediately after upload as I would expect.

I have to switch BOOT 0 back to position 0 to make the program run. This takes a lot of time in the development phase, and I would like it to run immediately after the upload is done.

Has anyone else experienced this behavior?

I have tried this on two identical boards.

Am I doing everything correctly when connecting and uploading to the board?



Perhaps check with the vendor? Most here are using IDE and debuggers to compiler, download and run directly.

Looks like stm32duino is down permanently, which is unfortunate. Fecking GDPR non-sense killing the internet. A name and an email address hardly constitute private information.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Associate II

These are cheap boards from ebay and the sellers usually knows nothing. Not even who made the board. This type of board looks pretty common, so I thought maybe someone here had started out on the STM32 in the same way and perhaps run into the same issue.

the stm32duino is would probably have been a better place to ask had it been up...


Indeed, it was more of a rhetorical suggestion, as support is so chronically undervalued these days.

So stm32duino would have been my first stop, sure there are a bunch of places with videos and tutorials on the Blue Pill, get occasional people here, but as it typically needed an Arduino loader for Arduino usage, you'd need that.

Most of us here aren't using Arduino.

If the ROM loader has watchdog running, and boot0 is high, it will always reset back into the ROM, not your FLASH code. Haven't poked at the F103 in recent years, bit antiquated.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Associate II

I am not an expert on the boot process but what I imagined was that the bootloader code would load the program and then jump to the start of the program (as the output from the IDE suggests)

Of course if I press reset while the BOOT0 is high, it would just start another bootloader execution.

Anyway, it's not a showstopper if I don't get this to work. It's just a bit more cumbersome and not what I expected from videos I have watched.

I am just a beginner on this platform and I will probably move on to better development software If I continue to use STM32.

Thanks for taking the time to respond to my question.