Opens in a new tab

NUCLEO-F401RE Pinout

NUCLEO-F401RE is one of the most widespread ST boards: STM32F401RE (Cortex-M4F, 84 MHz), headers for Arduino Uno shields, ST Morpho headers with all the pins and a snap-off ST-LINK/V2-1 for uploading and debugging.

The MB1136 board is the same as for the F411RE and F446RE – their Arduino pin mapping is identical.

Specifications

  • STM32F401RE: Arm Cortex-M4 with FPU, 84 MHz
  • 512 kB flash, 96 kB SRAM
  • 50 GPIO on the Morpho headers, Arduino Uno R3 headers
  • 3× USART, 3× SPI, 3× I2C, 12-bit ADC, USB OTG
  • ST-LINK/V2-1: uploading, debugging and virtual COM port over mini USB
  • user button B1 (PC13), green LED LD2 (PA5)

You can program it in STM32CubeIDE, PlatformIO, the Arduino IDE (STM32duino) or MicroPython.

Pinout and pin table

Hover over a pin in the diagram or a table row; use the filter to highlight a bus. You can download the pinout as PNG or SVG.

Pin names:
NUCLEO-F401RE (STM32 Nucleo-64) – pinoutNUCLEO-F401RE (STM32 Nucleo-64) – pinoutchiptron.eu · CC BY 4.0STM32F401REmini USBST-LINK/V2-1 1 PC10 SCK3 3 PC12 MOSI3 5 VDD ← MCU power 3.3 V 7 BOOT0 → Logic 1 at boot = bootloader 9 NC 11 NC 13 PA13 SWDIO 15 PA14 SWCLK 17 PA15 NSS1 T2CH1 JTDI 19 GND 21 PB7 RX1 SDA1 T4CH2 23 PC13 B1 USER 25 PC14 OSC32 IN 27 PC15 OSC32 OUT 29 PH0 OSC IN 31 PH1 OSC OUT 33 VBAT → RTC backup (tied to VDD on the board) 35 PC2 MISO2 ADC1_IN12 37 PC3 MOSI2 ADC1_IN13 2 PC8 T3CH3 4 PC6 TX6 T3CH1 6 PC5 ADC1_IN15 8 U5V → 5 V z USB konektoru ST-LINK 10 NC 12 PA12 RX6 USB DP 14 PA11 TX6 T1CH4 USB DM 16 PB12 NSS2 18 NC 20 GND 22 PB2 24 PB1 T1CH3N ADC1_IN9 26 PB15 MOSI2 T1CH3N 28 PB14 MISO2 T1CH2N 30 PB13 SCK2 T1CH1N 32 AGND Analog ground 34 PC4 ADC1_IN14 36 NC 38 NC 2 PC11 MISO3 4 PD2 6 E5V 8 GND 10 NC 12 IOREF 14 RESET 16 3V3 18 5V 20 GND 22 GND 24 VIN 26 NC 28 PA0 A0 ADC1_IN0 30 PA1 A1 ADC1_IN1 32 PA4 A2 NSS1 ADC1_IN4 34 PB0 A3 ADC1_IN8 36 PC1 A4 ADC1_IN11 38 PC0 A5 ADC1_IN10 1 PC9 SDA3 3 PB8 D15 SCL1 5 PB9 D14 SDA1 7 AVDD 9 GND 11 PA5 D13 SCK1 13 PA6 D12 MISO1 15 PA7 D11 MOSI1 17 PB6 D10 TX1 19 PC7 D9 RX6 21 PA9 D8 TX1 23 PA8 D7 SCL3 25 PB10 D6 SCL2 27 PB4 D5 SDA3 29 PB5 D4 MOSI1 31 PB3 D3 SDA2 33 PA10 D2 RX1 35 PA2 D1 TX2 37 PA3 D0 RX2 GPIO Arduino UART I2C SPI ADC (analog) PWM Power Ground (GND) Control / reset Not connected
Download:PNGSVG
Pin table – NUCLEO-F401RE (STM32 Nucleo-64)
PinNameArduinoDirectionUARTI2CSPIPWMI2S (PCM)ADCNote
CN7-1PC10input/outputSCK3I2S3 CK
CN7-2PC11input/outputMISO3I2S3ext SD
CN7-3PC12input/outputMOSI3I2S3 SD
CN7-4PD2input/output
CN7-5VDDoutputMCU power 3.3 V
CN7-6E5VinputExternal 5 V input – jumper JP5 in the E5V position (pins 2–3)
CN7-7BOOT0inputBOOT0 – logic 0 by default (boot from flash). A jumper between CN7-5 (VDD) and CN7-7 starts the built-in bootloader
CN7-8GND–
CN7-9NC–
CN7-10NC–
CN7-11NC–
CN7-12IOREFoutputVoltage reference for shields (3.3 V)
CN7-13PA13input/outputSWDIO – debugging via ST-LINK
CN7-14RESETinputMCU reset (NRST) – connect to GND, same as the black button B2
CN7-15PA14input/outputSWCLK – debugging via ST-LINK
CN7-163V3output3.3 V output
CN7-17PA15input/outputNSS1, NSS3T2CH1I2S3 WS
CN7-185VoutputPower 5 V (from USB, or from the regulator when powered from VIN)
CN7-19GND–
CN7-20GND–
CN7-21PB7input/outputRX1SDA1T4CH2
CN7-22GND–
CN7-23PC13input/outputBlue button B1 USER (via SB17)
CN7-24VINinput7–12 V input for the 5 V regulator – jumper JP5 in the E5V position (pins 2–3)
CN7-25PC14input/outputFrom revision MB1136 C-02 used by the 32.768 kHz crystal (X2) – on the header only after modifying SB48/SB49
CN7-26NC–
CN7-27PC15input/outputFrom revision MB1136 C-02 used by the 32.768 kHz crystal (X2) – on the header only after modifying SB48/SB49
CN7-28PA0A0input/outputCTS2T2CH1, T5CH1ADC1_IN0
CN7-29PH0input/outputFrom revision MB1136 C-02 the ST-LINK feeds an 8 MHz clock (MCO) here and the pin is not on the header
CN7-30PA1A1input/outputRTS2T2CH2, T5CH2ADC1_IN1
CN7-31PH1input/outputHSE crystal (X3) not fitted – pin is free
CN7-32PA4A2input/outputCK2NSS1, NSS3I2S3 WSADC1_IN4
CN7-33VBATinputRTC backup (tied to VDD on the board)
CN7-34PB0A3input/outputT1CH2N, T3CH3ADC1_IN8
CN7-35PC2input/outputMISO2I2S2ext SDADC1_IN12
CN7-36PC1A4input/outputADC1_IN11A4 (default). Solder jumpers SB46/SB52 (and opening SB51/SB56) route PB9 (I2C SDA) to A4
CN7-37PC3input/outputMOSI2I2S2 SDADC1_IN13
CN7-38PC0A5input/outputADC1_IN10A5 (default). Solder jumpers SB46/SB52 (and opening SB51/SB56) route PB8 (I2C SCL) to A5
CN10-1PC9input/outputSDA3T3CH4
CN10-2PC8input/outputCK6T3CH3
CN10-3PB8D15input/outputSCL1T4CH3, T10CH1
CN10-4PC6input/outputTX6T3CH1I2S2 MCK
CN10-5PB9D14input/outputSDA1NSS2T4CH4, T11CH1I2S2 WS
CN10-6PC5input/outputADC1_IN15
CN10-7AVDDoutputAnalog supply VDDA; AREF on the Arduino header
CN10-8U5Voutput5 V z USB konektoru ST-LINK
CN10-9GND–
CN10-10NC–
CN10-11PA5D13input/outputSCK1T2CH1ADC1_IN5D13 – green LED LD2
CN10-12PA12input/outputRX6, RTS1Microcontroller USB OTG FS D+ (no connector on the board)
CN10-13PA6D12input/outputMISO1T3CH1ADC1_IN6
CN10-14PA11input/outputTX6, CTS1T1CH4Microcontroller USB OTG FS D− (no connector on the board)
CN10-15PA7D11input/outputMOSI1T1CH1N, T3CH2ADC1_IN7
CN10-16PB12input/outputNSS2I2S2 WS
CN10-17PB6D10input/outputTX1SCL1T4CH1
CN10-18NC–
CN10-19PC7D9input/outputRX6T3CH2I2S3 MCK
CN10-20GND–
CN10-21PA9D8input/outputTX1T1CH2
CN10-22PB2input/outputBOOT1
CN10-23PA8D7input/outputCK1SCL3T1CH1
CN10-24PB1input/outputT1CH3N, T3CH4ADC1_IN9
CN10-25PB10D6input/outputSCL2SCK2T2CH3I2S2 CK
CN10-26PB15input/outputMOSI2T1CH3NI2S2 SD
CN10-27PB4D5input/outputSDA3MISO1, MISO3T3CH1I2S3ext SD
CN10-28PB14input/outputMISO2T1CH2NI2S2ext SD
CN10-29PB5D4input/outputMOSI1, MOSI3T3CH2I2S3 SD
CN10-30PB13input/outputSCK2T1CH1NI2S2 CK
CN10-31PB3D3input/outputSDA2SCK1, SCK3T2CH2I2S3 CKSWO – debug output to ST-LINK (via SB15)
CN10-32AGND–Analog ground
CN10-33PA10D2input/outputRX1T1CH3
CN10-34PC4input/outputADC1_IN14
CN10-35PA2D1input/outputTX2T2CH3, T5CH3, T9CH1ADC1_IN2D1 = USART2 TX. By default routed to the ST-LINK (virtual COM port) and not on the headers – connect it via solder jumpers SB62/SB63 (and by opening SB13/SB14)
CN10-36NC–
CN10-37PA3D0input/outputRX2T2CH4, T5CH4, T9CH2ADC1_IN3D0 = USART2 RX. By default routed to the ST-LINK (virtual COM port) and not on the headers – see PA2
CN10-38NC–

What to watch out for

  • D0 and D1 (PA3, PA2) go to the ST-LINK by default and are not on the header – solder jumpers SB62/SB63 connect them.
  • Logic is 3.3 V; only pins marked FT in the datasheet tolerate 5 V.
  • A4 and A5 are PC1 and PC0 by default; I2C is on D14/D15 (PB9/PB8).
  • When powering from VIN or E5V, move JP5 to the E5V position and remove JP1.
  • From revision C-02, PC14/PC15 and PH0 are taken by the crystal and the clock from the ST-LINK.

STM32 Nucleo on chiptron.eu/

On chiptron.eu/ you'll find these articles about Nucleo boards:

  • STM32duino I. – first LED blink on a Nucleo-64 with STM32F411 in the Arduino IDE
  • STM32 Nucleo – an introduction to the Nucleo development kits, including NUCLEO-F401RE
  • STM32CubeIDE 2.x – what changed and where CubeMX went, tested on Nucleo-F767ZI

More pinouts

See all pinouts on the Pinouts page.

Related Articles