WeAct Black Pill STM32F411CE pinout

A tiny, low-cost STM32F411 board with USB-C. Fast (100 MHz), breadboard friendly, 3.3 V logic, and most pins tolerate 5 V.

WeAct Black Pill STM32F411CE pinoutSTM32F411CEU65VG3V3B10 · 26I2C2_SCLB2 · 18BOOT1B1 · 17ADC1_IN9B0 · 16ADC1_IN8A7ADC1_IN7A6ADC1_IN6A5ADC1_IN5A4ADC1_IN4A3ADC1_IN3A2ADC1_IN2A1ADC1_IN1A0ADC1_IN0RC15 · 47OSC32_OUTC14 · 46OSC32_INC13 · 45RTC_OUTVBB12 · 28SPI2_NSSB13 · 29SPI2_SCKB14 · 30SPI2_MISOB15 · 31SPI2_MOSIA8TIM1_CH1A9UART1_TXA10UART1_RXA11USB_DMA12USB_DPA15JTDIB3 · 19SWOB4 · 20TIM3_CH1B5 · 21TIM3_CH2B6 · 22I2C_SCLB7 · 23I2C_SDAB8 · 24I2C1_SCLB9 · 25I2C1_SDA5VG3V3GNDSCK · 14SWCLKDIO · 13SWDIO3V3
Top view, USB connector on the left. Colors: red power, grey ground, green GPIO, yellow analog, orange USB serial, blue I2C.

At a glance

Chip
STM32F411CE (STM32F411CEU6)
Processor
Arm Cortex-M4 with FPU at 100 MHz, 128 KB SRAM, 512 KB flash
Logic level
3.3 V. Not 5 V tolerant unless marked below.
Flashing tool
STM32CubeProgrammer, stlink or dfu-util
Arduino board (FQBN)
STMicroelectronics:stm32:GenF4:pnum=BLACKPILL_F411CE,usb=CDCgen,upload_method=dfuMethod
Live pin view in BoardPilot
Yes (diagnostic agent available)

Pins to avoid or use with care

Strapping pins: B2

Their level at reset changes how the board boots. Usually fine after boot.

Native USB: A11, A12

The USB data lines. Using them breaks USB uploads and the serial monitor.

Debug port: SCK, DIO

SWD/JTAG. Using them can stop a debugger from reaching the chip.

Used on the board: A0, C15, C14

Already connected to something on the board (see the notes in the table).

Good pins for LEDs, buttons and signals

B12, B13, B14, B15, A8, B10, B0, B1, B8, B9, A15

Default pins in Arduino

I2C
SDA = B7, SCL = B6. Only these pins work with the Wire library defaults. Wire uses PB7 for SDA and PB6 for SCL. Only specific STM32 pin pairs can do I2C (for example PB9/PB8 with Wire.setSDA/setSCL).
SPI
MOSI = A7, MISO = A6, SCK = A5, CS = A4.
Analog inputs
A1, A2, A3, B0, B1, A4, A5, A6, A7, A0 (0–3.3 V)
5 V tolerant pins
B10, B2, B1, B0, A7, A6, A5, A4, A3, A2, A1, C15, C14, C13, B12, B13, B14, B15, A8, A9, A10, A11, A12, A15, B3, B4, B6, B7, B8, B9, SCK, DIO

How to flash it

To upload over USB, hold BOOT0, press and release NRST, then release BOOT0 (DFU mode). An ST-LINK on the SWD pins also works.

All 44 pins

PinGPIOChip pinFunctionsNotes
5V—5 V from USB-C (after a protection diode). Can also power the board.
G—
3V3—3.3 V output for sensors.
B1026GPIO, I2C2_SCL, SPI2_SCK, TIM2_CH3, PWM
B218GPIO, BOOT1BOOT1 (10 kohm to GND on the board). Only matters when BOOT0 is held at reset.
B117GPIO, ADC1_IN9, TIM3_CH4, TIM1_CH3N, PWM5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V.
B016GPIO, ADC1_IN8, TIM3_CH3, TIM1_CH2N, PWM5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V.
A77GPIO, ADC1_IN7, SPI_MOSI (default), SPI1_MOSI, TIM1_CH1N, TIM3_CH2, PWMAlso wired to the empty SPI flash footprint U3 on the back (only matters if you solder a flash chip). 5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V.
A66GPIO, ADC1_IN6, SPI_MISO (default), SPI1_MISO, TIM3_CH1, PWMAlso wired to the empty SPI flash footprint U3 on the back (only matters if you solder a flash chip). 5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V.
A55GPIO, ADC1_IN5, SPI_SCK (default), SPI1_SCK, TIM2_CH1, PWMAlso wired to the empty SPI flash footprint U3 on the back (only matters if you solder a flash chip). 5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V.
A44GPIO, ADC1_IN4, SPI_CS (default), SPI1_NSS, SPI3_NSSAlso wired to the empty SPI flash footprint U3 on the back (only matters if you solder a flash chip). 5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V.
A33GPIO, ADC1_IN3, UART2_RX, TIM2_CH4, TIM5_CH4, TIM9_CH2, PWM5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V.
A22GPIO, ADC1_IN2, UART2_TX, TIM2_CH3, TIM5_CH3, TIM9_CH1, PWM5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V.
A11GPIO, ADC1_IN1, TIM2_CH2, TIM5_CH2, UART2_RTS, PWM5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V.
A00GPIO, ADC1_IN0, TIM2_CH1, TIM5_CH1, UART2_CTS, WKUP, PWMKEY button is on this pin (to GND through 330 ohm): use INPUT_PULLUP, pressed = LOW. Not 5 V tolerant.
R—Reset: connect to GND to restart the board (same as the NRST button).
C1547GPIO, OSC32_OUT32.768 kHz crystal pin. Leave it free.
C1446GPIO, OSC32_IN32.768 kHz crystal pin. Leave it free.
C1345GPIO, RTC_OUTBlue onboard LED, active LOW (LOW = on). Weak pin: do not drive other loads from it.
VB—Input for a backup battery that keeps the RTC running. Gives no power.
B1228GPIO, SPI2_NSS, TIM1_BKIN
B1329GPIO, SPI2_SCK, TIM1_CH1N, PWM
B1430GPIO, SPI2_MISO, TIM1_CH2N, PWM
B1531GPIO, SPI2_MOSI, TIM1_CH3N, PWM
A88GPIO, TIM1_CH1, I2C3_SCL, UART1_CK, MCO1, PWM
A99GPIO, UART1_TX, TIM1_CH2, USB_VBUS, PWM
A1010GPIO, UART1_RX, TIM1_CH3, USB_ID, PWM
A1111GPIO, USB_DM, UART1_CTS, UART6_TX, TIM1_CH4, PWMUSB D- to the USB-C port. Used for USB serial and upload.
A1212GPIO, USB_DP, UART1_RTS, UART6_RX, TIM1_ETRUSB D+ to the USB-C port. Used for USB serial and upload.
A1515GPIO, JTDI, TIM2_CH1, SPI1_NSS, SPI3_NSS, PWMJTAG JTDI after reset; works as a normal pin in Arduino.
B319GPIO, SWO, TIM2_CH2, SPI1_SCK, SPI3_SCK, I2C2_SDA, PWMJTAG SWO after reset; works as a normal pin in Arduino.
B420GPIO, TIM3_CH1, SPI1_MISO, SPI3_MISO, I2C3_SDA, PWMJTAG NJTRST after reset; works as a normal pin in Arduino.
B521GPIO, TIM3_CH2, SPI1_MOSI, SPI3_MOSI, PWMNot 5 V tolerant on the F411 (keep it at 3.3 V or below).
B622GPIO, I2C_SCL (default), I2C1_SCL, UART1_TX, TIM4_CH1, PWM
B723GPIO, I2C_SDA (default), I2C1_SDA, UART1_RX, TIM4_CH2, PWM
B824GPIO, I2C1_SCL, TIM4_CH3, TIM10_CH1, PWM
B925GPIO, I2C1_SDA, TIM4_CH4, TIM11_CH1, SPI2_NSS, PWM
5V—Same 5 V rail as the other 5V pin.
G—
3V3—Same 3.3 V rail as the other 3V3 pin.
GND—
SCK14GPIO, SWCLKSWD debug clock (SWCLK). Leave it free if you use an ST-LINK.
DIO13GPIO, SWDIOSWD debug data (SWDIO). Leave it free if you use an ST-LINK.
3V3—3.3 V on the SWD header (same rail as 3V3).

Check your wiring with BoardPilot

BoardPilot shows this board in 3D, flags risky pins as you wire, and flashes it safely with a backup first.

Download BoardPilot

Sources

← All boards