Compact "Black Pill" STM32 dev board. Fast Cortex-M4 MCU(s) with FPU, great for real-time projects, audio, sensors, robotics and compact IoT nodes. Choose STM32F401CCU6 or STM32F411CEU6 variants — check product photos / SKU.
| MCU Options | STM32F401CCU6 (Cortex-M4, 84 MHz) or STM32F411CEU6 (Cortex-M4, 100 MHz) — variant dependent |
| Core | ARM Cortex-M4 with FPU |
| Flash & RAM | Depends on MCU variant (e.g. 128KB+ flash typical; check exact MCU datasheet) |
| Interface | USB (micro or Type-C depending on board), UART (Tx/Rx), SWD / ST-Link (external) |
| GPIO | Multiple GPIOs, ADC, DAC (variant dependent), SPI, I2C, USART, TIMs |
| Operating Voltage | 3.3V |
| Form Factor | Black Pill standard |
| Brand | Unbranded / Generic |
| Model | Black Pill — STM32F401 / STM32F411 |
| MPN | Does Not Apply |
| Microcontroller | STM32F401CCU6 or STM32F411CEU6 |
| Condition | New |
| Compatible With | Arduino IDE (STM32 core), PlatformIO, STM32CubeMX/HAL |
| Country/Region of Manufacture | China |
These instructions show two safe ways to flash your Black Pill board: 1) ST-Link (SWD) — recommended, and 2) Serial / system bootloader (BOOT0) — fallback. Use ST-Link if available (fast, full debugging). Always power the board at 3.3V and never apply 5V to MCU pins.
Typical ST-Link V2 pin names (adapt to your ST-Link clone): SWDIO, SWCLK, GND, 3.3V, NRST (optional).
| ST-Link Pin | Black Pill / STM32 Pin |
| 3.3V (VTARGET) | 3.3V (Board VCC) — power target or verify external power |
| GND | GND |
| SWDIO | PA13 (SWDIO) on STM32 — labelled SWDIO on many Black Pill headers |
| SWCLK | PA14 (SWCLK) on STM32 — labelled SWCLK on many Black Pill headers |
| NRST (optional) | NRST (Reset) — allows programmer to reset MCU during flashing |
Notes: some Black Pill clones expose a 4- or 6-pin SWD header — match labels. If your ST-Link supplies power, you can power the board from ST-Link’s 3.3V; otherwise power the board separately but keep grounds common.
GUI tip: if the programmer fails to connect, double-check wiring (SWDIO / SWCLK / GND / 3.3V) and that BOOT0 is 0 (board boots from flash).
Example CLI commands (replace firmware.bin with your file):
STM32_Programmer_CLI -c port=SWD -w firmware.bin 0x08000000 -v
This connects via SWD, writes the binary at flash address 0x08000000, and verifies it. Use the full path to STM32_Programmer_CLI if it's not in your PATH.
platformio.ini, set the upload protocol: upload_protocol = stlink (and the correct board). Example:[env:blackpill_f401]
platform = ststm32
board = blackpill_f401
framework = arduino
upload_protocol = stlink
Then run pio run -t upload to build and flash via your connected ST-Link.
STM32 MCUs include a factory system bootloader that can accept firmware via UART. This method requires toggling BOOT0 pin to enter the system bootloader and a serial flasher (STM32CubeProgrammer or stm32flash).
BOOT0 or jumper pad).0x08000000. Click Start Programming.Notes about serial bootloader: the exact UART (USART1/2) and baud supported varies by MCU and board wiring — if STM32CubeProgrammer cannot connect, consult your board pinout or use ST-Link instead.
Some Black Pill variants with a USB connection and DFU support can be flashed using DFU mode — this depends on MCU variant and board wiring. If your board supports USB DFU:
BOOT0 = 1 and reset to enter the built-in DFU (if supported).dfu-util or STM32CubeProgrammer (USB) to upload firmware.BOOT0 = 0 and reset after upload.Important: USB DFU availability depends on MCU & board — ST-Link remains the most reliable method.
// Blink example for STM32 (Black Pill)
// Select correct board & MCU in Arduino IDE / PlatformIO
const int LED_PIN = LED_BUILTIN; // often defined; otherwise use a known pin such as PC13
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(250);
digitalWrite(LED_PIN, LOW);
delay(250);
}
Notes: In Arduino IDE choose the proper board package (STM32 boards by stm32duino or STMicro electronics core). LED_BUILTIN pin varies by board — check silkscreen or map to PC13/PA5 as appropriate.
// PlatformIO main.cpp example for STM32
#include <Arduino.h>
void setup() {
Serial.begin(115200);
while (!Serial) { delay(10); }
Serial.println("STM32 Black Pill ready");
pinMode(PC13, OUTPUT); // example LED pin (adjust per board)
}
void loop() {
digitalWrite(PC13, HIGH);
delay(500);
digitalWrite(PC13, LOW);
delay(500);
int analogValue = analogRead(A0); // confirm ADC pin mapping for your board
Serial.printf("ADC: %d\n", analogValue);
}
Notes: PlatformIO makes it easy to select the exact MCU (board = blackpill_f401 or similar). Check `platformio.ini` for framework and board settings.
Ships from UK. International shipping available via eBay Global Shipping Programme. 30-day returns accepted.