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.
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
| Pin | GPIO | Chip pin | Functions | Notes |
|---|---|---|---|---|
| 5V | — | 5 V from USB-C (after a protection diode). Can also power the board. | ||
| G | — | |||
| 3V3 | — | 3.3 V output for sensors. | ||
| B10 | 26 | GPIO, I2C2_SCL, SPI2_SCK, TIM2_CH3, PWM | ||
| B2 | 18 | GPIO, BOOT1 | BOOT1 (10 kohm to GND on the board). Only matters when BOOT0 is held at reset. | |
| B1 | 17 | GPIO, ADC1_IN9, TIM3_CH4, TIM1_CH3N, PWM | 5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V. | |
| B0 | 16 | GPIO, ADC1_IN8, TIM3_CH3, TIM1_CH2N, PWM | 5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V. | |
| A7 | 7 | GPIO, ADC1_IN7, SPI_MOSI (default), SPI1_MOSI, TIM1_CH1N, TIM3_CH2, PWM | Also 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. | |
| A6 | 6 | GPIO, ADC1_IN6, SPI_MISO (default), SPI1_MISO, TIM3_CH1, PWM | Also 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. | |
| A5 | 5 | GPIO, ADC1_IN5, SPI_SCK (default), SPI1_SCK, TIM2_CH1, PWM | Also 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. | |
| A4 | 4 | GPIO, ADC1_IN4, SPI_CS (default), SPI1_NSS, SPI3_NSS | Also 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. | |
| A3 | 3 | GPIO, ADC1_IN3, UART2_RX, TIM2_CH4, TIM5_CH4, TIM9_CH2, PWM | 5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V. | |
| A2 | 2 | GPIO, ADC1_IN2, UART2_TX, TIM2_CH3, TIM5_CH3, TIM9_CH1, PWM | 5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V. | |
| A1 | 1 | GPIO, ADC1_IN1, TIM2_CH2, TIM5_CH2, UART2_RTS, PWM | 5 V tolerant only as a digital input. As an analog input keep it between 0 and 3.3 V. | |
| A0 | 0 | GPIO, ADC1_IN0, TIM2_CH1, TIM5_CH1, UART2_CTS, WKUP, PWM | KEY 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). | ||
| C15 | 47 | GPIO, OSC32_OUT | 32.768 kHz crystal pin. Leave it free. | |
| C14 | 46 | GPIO, OSC32_IN | 32.768 kHz crystal pin. Leave it free. | |
| C13 | 45 | GPIO, RTC_OUT | Blue 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. | ||
| B12 | 28 | GPIO, SPI2_NSS, TIM1_BKIN | ||
| B13 | 29 | GPIO, SPI2_SCK, TIM1_CH1N, PWM | ||
| B14 | 30 | GPIO, SPI2_MISO, TIM1_CH2N, PWM | ||
| B15 | 31 | GPIO, SPI2_MOSI, TIM1_CH3N, PWM | ||
| A8 | 8 | GPIO, TIM1_CH1, I2C3_SCL, UART1_CK, MCO1, PWM | ||
| A9 | 9 | GPIO, UART1_TX, TIM1_CH2, USB_VBUS, PWM | ||
| A10 | 10 | GPIO, UART1_RX, TIM1_CH3, USB_ID, PWM | ||
| A11 | 11 | GPIO, USB_DM, UART1_CTS, UART6_TX, TIM1_CH4, PWM | USB D- to the USB-C port. Used for USB serial and upload. | |
| A12 | 12 | GPIO, USB_DP, UART1_RTS, UART6_RX, TIM1_ETR | USB D+ to the USB-C port. Used for USB serial and upload. | |
| A15 | 15 | GPIO, JTDI, TIM2_CH1, SPI1_NSS, SPI3_NSS, PWM | JTAG JTDI after reset; works as a normal pin in Arduino. | |
| B3 | 19 | GPIO, SWO, TIM2_CH2, SPI1_SCK, SPI3_SCK, I2C2_SDA, PWM | JTAG SWO after reset; works as a normal pin in Arduino. | |
| B4 | 20 | GPIO, TIM3_CH1, SPI1_MISO, SPI3_MISO, I2C3_SDA, PWM | JTAG NJTRST after reset; works as a normal pin in Arduino. | |
| B5 | 21 | GPIO, TIM3_CH2, SPI1_MOSI, SPI3_MOSI, PWM | Not 5 V tolerant on the F411 (keep it at 3.3 V or below). | |
| B6 | 22 | GPIO, I2C_SCL (default), I2C1_SCL, UART1_TX, TIM4_CH1, PWM | ||
| B7 | 23 | GPIO, I2C_SDA (default), I2C1_SDA, UART1_RX, TIM4_CH2, PWM | ||
| B8 | 24 | GPIO, I2C1_SCL, TIM4_CH3, TIM10_CH1, PWM | ||
| B9 | 25 | GPIO, 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 | — | |||
| SCK | 14 | GPIO, SWCLK | SWD debug clock (SWCLK). Leave it free if you use an ST-LINK. | |
| DIO | 13 | GPIO, SWDIO | SWD 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 BoardPilotSources
- WeAct MiniF4x1Cx V3.1 Board Shape, Top view: 52.81 x 20.78 mm, rows 15.22 mm apart, pin order, SWD header
- WeAct MiniF4x1Cx V3.1 schematic, Headers P1/P2/P3, KEY (PA0, 330R), BOOT0/PB2 pull-downs, LED PC13 active low, Y1 32.768 kHz, Y2 25 MHz, USB-C PA11/PA12, U3 flash footprint PA4-PA7
- ST STM32F411xC/xE datasheet DS10314 (DocID026289 Rev 7), Table 8 pin definitions: FT pins, PA0 and PB5 are TC; ADC1_IN channels
- stm32duino Arduino_Core_STM32, variants/STM32F4xx/F411C(C-E)(U-Y)/variant_BLACKPILL_F411CE.h (PIN_WIRE_SDA PB7, PIN_WIRE_SCL PB6, SPI PA7/PA6/PA5/PA4, LED PC13, USER_BTN PA0); boards.txt GenF4; platform.txt USB ids
- Board data file and source notes on GitHub