STM32 Nucleo-64 (F401RE): specs and pinout
ST NUCLEO-F401RE: an STM32F401RET6 board with an on-board ST-LINK/V2-1 debugger, Arduino Uno-style connectors and ST Morpho headers.
Specs
| Spec | Value | Source |
|---|---|---|
| MCU | STM32F401RET6 | source p.2, board table (NUCLEO-F401RE row) |
| I/O logic level | 3.3 V: UM1724 states the I/Os are 3.3 V compatible instead of 5 V as on Arduino Uno; do not rely on 5 V tolerance when using Uno shields | source Arduino connectors section (p.30) |
| Board power input VIN (CN6 pin 8 / CN7 pin 24) | 7 V to 12 V; input current 800 mA at 7 V, 450 mA at 7-9 V, 250 mA at 9-12 V | source Table 6 External power sources (p.15) |
| Board power input E5V (CN7 pin 6) | 4.75 V to 5.25 V, max 500 mA | source Table 6 External power sources (p.15) |
| Board power input +3V3 (CN6 pin 4, CN7 pins 12 and 16) | 3 V to 3.6 V, only when the ST-LINK part is cut or SB2 and SB12 are off | source Section 5.3.3, Table 8 (p.17) |
| Debugger | On-board ST-LINK/V2-1 with SWD | source Features list (p.6) |
| User LED / button | LD2 green LED on Arduino D13; B1 USER button on PC13 | source Section 5.4 LEDs; section 5.5 Push buttons (p.17-18) |
Power
| Value | Source | |
|---|---|---|
| Supply | USB (ST-LINK connector), VIN 7-12 V, E5V 4.75-5.25 V, or +3V3 3-3.6 V in the special case above | source Section 5.3 and Tables 6, 8 (p.15-17) |
Pinout
Rows are the Arduino connectors CN5, CN6, CN8 and CN9 from UM1724 Rev 9 Table 15. The ST Morpho connectors CN7 and CN10 carry more pins (Table 27) and are not listed beyond the power pins and PC13. Rows are from UM1724 Rev 9 (Aug 2015).
| Pin | Function | Voltage | Notes | Source |
|---|---|---|---|---|
| IOREF | 3.3 V reference for shields | 3.3 V | CN6 pin 2 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) |
| NRST (RESET) | Reset | 3.3 V | CN6 pin 3 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) |
| +3V3 | 3.3 V input/output | 3.3 V | CN6 pin 4; CN7 pins 12 and 16 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37); Table 8 |
| +5V | 5 V output | 5 V | CN6 pin 5; CN7 pin 18 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) |
| GND | Ground | CN6 pins 6 and 7 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| VIN | Power input | 7 V to 12 V | CN6 pin 8; CN7 pin 24 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37); Table 6 |
| A0 (PA0) | ADC1_0 | CN8 pin 1 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| A1 (PA1) | ADC1_1 | CN8 pin 2 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| A2 (PA4) | ADC1_4 | CN8 pin 3 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| A3 (PB0) | ADC1_8 | CN8 pin 4 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| A4 (PC1 or PB9) | ADC1_11 (PC1) or I2C1_SDA (PB9) | CN8 pin 5; choice set by solder bridges (Table 9) | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| A5 (PC0 or PB8) | ADC1_10 (PC0) or I2C1_SCL (PB8) | CN8 pin 6; choice set by solder bridges (Table 9) | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D15 (PB8) | I2C1_SCL | CN5 pin 10 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D14 (PB9) | I2C1_SDA | CN5 pin 9 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| AREF | AVDD | CN5 pin 8 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D13 (PA5) | SPI1_SCK | CN5 pin 6; also the green LED LD2 (Section 5.4) | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D12 (PA6) | SPI1_MISO | CN5 pin 5 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D11 (PA7) | TIM1_CH1N or SPI1_MOSI | CN5 pin 4 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D10 (PB6) | TIM4_CH1 or SPI1_CS | CN5 pin 3 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D9 (PC7) | TIM3_CH2 | CN5 pin 2 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D8 (PA9) | no alternate function listed | CN5 pin 1 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D7 (PA8) | no alternate function listed | CN9 pin 8 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D6 (PB10) | TIM2_CH3 | CN9 pin 7 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D5 (PB4) | TIM3_CH1 | CN9 pin 6 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D4 (PB5) | no alternate function listed | CN9 pin 5 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D3 (PB3) | TIM2_CH2 | CN9 pin 4 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D2 (PA10) | no alternate function listed | CN9 pin 3 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D1 (PA2) | USART2_TX | CN9 pin 2 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| D0 (PA3) | USART2_RX | CN9 pin 1 | source Table 15 Arduino connectors on NUCLEO-F401RE (p.36-37) | |
| PC13 | User button B1 (USER) | 3.3 V | ST Morpho CN7 pin 23 | source Section 5.5 Push buttons (p.18); Table 27 Morpho connector |
Build with it
Project ideas for the STM32 Nucleo-64 (F401RE). Each link opens Soldr with the prompt filled in; Soldr assigns the pins, checks power and shows how to wire every part.
- A temperature and pressure logger over serial with an STM32 Nucleo-64 F401RE and a BME280 sensor module: The Nucleo I2C1 lines are D14 (SDA) and D15 (SCL) at 3.3 V logic. The stocked BME280 module is listed as a 5 V version and its supply and logic levels are not documented here: check the module before connecting it to the 3.3 V pins. Readings go to the ST-LINK virtual serial port.
- A potentiometer controlled servo sweeper with an STM32 Nucleo-64 F401RE, a 10k potentiometer and an SG90 servo: The potentiometer wiper goes to ADC pin A0 (3.3 V supply); the servo signal goes to a timer pin such as D5. Power the servo from its own 5 V supply with grounds joined, since the board's 5 V comes from USB or VIN with limited current.
- A desk clock that shows time from a DS3231 on a 0.96 inch OLED with an STM32 Nucleo-64 F401RE: Both modules share the I2C1 bus on D14 and D15 at 3.3 V; check each module's address and that its pull-ups and supply suit 3.3 V.
- A tilt angle readout over serial with an STM32 Nucleo-64 F401RE and an MPU6050 module: The MPU6050 module talks I2C on D14 and D15; running it from 3.3 V keeps the logic levels the same as the board.
Common mistakes
- Feeding 5 V logic into the I/O pins: UM1724 states the board I/Os are 3.3 V compatible, not 5 V like the Arduino Uno, so do not rely on 5 V tolerance on shields (source: link, Arduino connectors, p.30)
- Supplying VIN outside 7 V to 12 V, or drawing more than the limit for your input voltage (250 mA at 9-12 V) (source: link, Table 6, p.15)
- Powering the board through +3V3 while the ST-LINK is still connected: the ST-LINK is then unpowered, so programming and debug stop working (source: link, section 5.3.3, p.17)
Not covered by the official source
- Values are from UM1724 Rev 9 (2015) and are not compared with newer revisions.
- Morpho connector rows (CN7, CN10) other than power and PC13 are not given on this page.
- The A4/A5 pin choice depends on solder bridges (Table 9); defaults are not stated here.
- CPU speed, memory size, MCU supply range and temperature range are not given here. See the ST STM32F401xD/xE datasheet.
Sources
- link (UM1724 STM32 Nucleo-64 boards user manual, DocID025833 Rev 9, Aug 2015)