STM32F103C8T6 — 64KB Flash, STM32 ARM Cortex-M3 Mini System Dev Board (STM Firmware)

Discontinued RobotDyn SKU: RD-STM32F103-ST
STM32F103C8T6 — 64KB Flash, STM32 ARM Cortex-M3 Mini System Dev Board (STM Firmware)

Overview

This board is the classic STM32 “Blue Pill” in its purest form — STM32F103C8T6 with stock ST factory firmware, no Arduino bootloader. It’s intended for developers using STM32CubeIDE, Keil µVision, IAR EWARM, or GCC-based toolchains with an ST-Link V2 debugger.

If you want easy Arduino IDE compatibility out of the box, use the Blue Pill with Arduino Bootloader variant instead.

Why This Variant?

Flash Memory Note

The chip is officially specified as STM32F103C8T6 with 64 KB flash. However, many of these chips actually have 128 KB physically present (ST’s manufacturing test yielded acceptable parts that they marked as 64 KB to fill demand). You can experimentally test this:

  1. Flash a binary larger than 64 KB
  2. Verify execution at addresses > 0x08010000

This is undocumented and not guaranteed — use at your own risk for hobby projects, but don’t rely on it for production.

Pinout

40-pin layout (2× 20 along the long edges):

5 V-tolerant on most pins (except analog inputs at PA0–PA3 in certain configurations).

Programming Options

  1. Connect ST-Link clone to the 4-pin SWD header (3.3V, GND, SWCLK, SWDIO)
  2. In STM32CubeIDE: New project, select STM32F103C8Tx, configure pins, generate code, build, debug
  3. Or in Arduino IDE (with STM32duino core): Upload method → STM32CubeProgrammer (SWD)

Option 2: Serial via ROM bootloader

  1. Set BOOT0 jumper to 1 (high), BOOT1 to 0
  2. Press reset — board enters factory bootloader
  3. Connect USB-TTL adapter to PA9 (TX) / PA10 (RX) at 3.3V logic
  4. Use STM32CubeProgrammer or stm32flash CLI tool to upload via UART
  5. Return BOOT0 to 0 and reset for normal operation

Option 3: USB DFU (after flashing a DFU bootloader)

The F103C8 does not have native USB DFU in ROM. You’d need to flash a custom USB bootloader first (e.g., the STM32duino bootloader, then it becomes the “Arduino-bootloader” variant).

Common Uses

Documentation