stm32f411-minimum

This page discusses issues unique to NuttX configurations for the WeAct Studio MiniF4 minimum system development board.

Board information

It is sometimes referred to as “black pill”, although there are several clone boards with f103-like chips and even an official f103 blackpill from Robotdyn. Both WeAct Studio (via Taobao and Aliexpress) and Adafruit sell the boards as “BlackPill Core Board” with STM32F411CEU6 or STM32F401CCU6 or “STM32F411 BlackPill Development board”, so we’ll assume that WeAct Studio is the original manufacturer and F401/F411 is the chip.

Board documentation: https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1

Summary pages from STM32-base https://stm32-base.org/boards/STM32F401CCU6-WeAct-Black-Pill-V1.2.html https://stm32-base.org/boards/STM32F411CEU6-WeAct-Black-Pill-V2.0.html https://stm32-base.org/boards/STM32F401CEU6-WeAct-Black-Pill-V3.0.html

The board features:

  • On-board 64 Mbits (8 MBytes) External SPI-NOR Flash (optional),

  • nRST reset button and BOOT0 ST BootROM entry button,

  • One user LED and one user push-button,

  • HSE 25 Mhz and LSE 32.768 kHz,

  • USB OTG FS with micro-AB connector,

  • Around 30 remappable GPIOs on 2.54mm headers (after excluding 7 power pins, two LSE pins, the LED pin, NRST, BOOT1 and the SWD header),

  • Serial Wire Debug header for use with an external SWD/JTAG adapter.

As F4 series have a USB DFuSe-capable BootROM [AN2606], the board can be flashed via dfu-util over USB, or via stm32flash over UART without any debuggers.

LEDs

The STM32F411 Minimum board has only one software controllable LED on PC13. This LED can be used by the board port when CONFIG_ARCH_LEDS option is enabled.

If enabled the LED is simply turned on when the board boots successfully, and is blinking on panic / assertion failed.

UARTs

USART1

UART/USART

PINS

TX

PA9

RX

PA10

USART2

UART/USART

PINS

CTS

PA0

RTS

PA1

TX

PA2

RX

PA3

CK

PA4

Default USART/UART Configuration

USART1 (RX & TX only) is available through pins PA9 (TX) and PA10 (RX).

USB

The board routes F401/F411’s built-in FS PHY to a USB-C (non-dual-role) port. The chips still have a DWC2 USBOTG IP core, but only device mode is used. Note that only V3.1 PCB got a DNI solder bridge to short 5V and USB VBUS. Previous revisions had no support for USB host because of lack of port power as well as 5k pull-downs on USB-C CC1/CC2 pins (not affecting USB-A adapters). Because of this we are not considering USBOTG-FS Host configurations and do not map OTG_VBUS, OTG_ID pins to FS PHY, also no OVER/PWRON GPIOs.

If using USB and USART1 simultaneously, make sure to check CONFIG_OTG_ID_GPIO_DISABLE, else stm32_otgfsdev driver code remaps PA10 pin from USART1_RX to OTG_ID, and you’ll lose keyboard/console input!

SPI NOR Flash

The seller may send boards with soldered on-board SPI NOR Flash, usually Winbond W25Q64JVSIQ (QuadSPI) or similar. F401/F411 lack QuadSPI support. NuttX supports such MTD storage via special drivers and filesystems. For example, external flash can be formatted with SmartFS (or NXFFS, LittleFS) and mounted on boot by board init code or interactively from NSH.

Configurations

Each stm32f411-minimum configuration is maintained in a sub-directory and can be selected as follow:

  tools/configure.sh stm32f411-minimum:<subdir>

Where <subdir> is one of the following:

Configuration Directories

nsh

Configures the NuttShell (nsh) located at apps/examples/nsh. This configuration enables a serial console on UART1.