Nucleo-F411RE

ST's Nucleo-64 board with a 100 MHz STM32F411RE, Arduino Uno headers, ST morpho headers and an on-board ST-LINK/V2-1.

  • MicrocontrollerSTM32F411RET6, Arm Cortex-M4 with FPU, up to 100 MHz
  • Memory512 KB flash, 128 KB SRAM
  • I/O voltage1.7 V to 3.6 V supply, 3.3 V on the board; I/Os 5 V tolerant except PA0 and PB5, and none in analog mode
  • Current per pin25 mA maximum sunk or sourced per pin, 120 mA in total
Nucleo-F411RE, ST's Nucleo-64 board with a 100 MHz STM32F411RE, Arduino Uno headers, ST morpho headers and an on-board ST-LINK/V2-1.
In short

The Nucleo-F411RE is ST's Nucleo-64 board (MB1136) around an STM32F411RET6, a Cortex-M4 with FPU at up to 100 MHz with 512 KB of flash and 128 KB of SRAM (ST DS10314, p. 1). Its built-in ST-LINK/V2-1 programs it over mini-USB and brings Serial (USART2 on PA2/PA3) out as a virtual COM port; the board takes 300 mA from USB, or VIN at 7 V to 12 V (UM1724, pp. 20, 21, 25). Its Arduino Uno headers run at 3.3 V, with I2C on D14/D15 (PB9/PB8) and the green LED on D13 (PA5) (UM1724, pp. 23, 43).

The NUCLEO-F411RE belongs to ST's first Nucleo-64 generation, built on the MB1136 board described in UM1724. The target half carries the STM32F411RET6 in LQFP64, the Arduino Uno V3 headers, the two 38-pin ST morpho headers, the blue USER button and the green LED; the snap-off end is an ST-LINK/V2-1 that flashes and debugs over SWD and offers a USB drive and a virtual COM port on the same mini-USB cable (UM1724, pp. 6, 16).

The STM32F411 is the fastest of ST's 'dynamic efficiency' F4 parts: 100 MHz, 512 KB of flash, 128 KB of SRAM, one 12-bit 2.4 MSPS ADC with up to 16 channels, three I2C, three USARTs, five SPI/I2S ports, SDIO and a USB 2.0 full-speed OTG controller (DS10314, p. 1). It has no DAC and no CAN. Up to 77 of its I/Os are 5 V tolerant; on this package only PA0 and PB5 are not (DS10314, pp. 1, 39 to 47).

Its Arduino header uses the same pin map as the Nucleo-F401RE, so code and shields move between the two unchanged (UM1724, Table 16). The common surprises are Uno habits: Serial does not reach D0/D1 as shipped, A4/A5 are analog pins rather than I2C, and every output swings to 3.3 V.

Nucleo-F411RE pinout

tinkered.ai/components/stm32-nucleo-f411reNucleo-F411RENCNC (CN6 pin 1)IOREFPowerRESETRESET (CN6 pin 3)3V3Power5VPowerGNDGroundGND-2GroundVINPowerA0ADC1_IN0 · PWM TIM2_CH1 · PWM TIM5_CH1 · DigitalA1ADC1_IN1 · PWM TIM2_CH2 · PWM TIM5_CH2 · SPI4_MOSI · DigitalA2ADC1_IN4 · SPI1_NSS · SPI3_NSS · DigitalA3ADC1_IN8 · PWM TIM1_CH2N · PWM TIM3_CH3 · SPI5_SCK · DigitalA4ADC1_IN11 · DigitalA5ADC1_IN10 · DigitalD15PWM TIM10_CH1 · PWM TIM4_CH3 · I2C1_SCL · I2C3_SDA · SPI5_MOSI · DigitalD14PWM TIM11_CH1 · PWM TIM4_CH4 · I2C1_SDA · I2C2_SDA · SPI2_NSS · DigitalAREFPowerGND-3GroundD13ADC1_IN5 · PWM TIM2_CH1 · SPI1_SCK · DigitalD12ADC1_IN6 · PWM TIM3_CH1 · SPI1_MISO · DigitalD11ADC1_IN7 · PWM TIM1_CH1N · PWM TIM3_CH2 · SPI1_MOSI · DigitalD10PWM TIM4_CH1 · USART1_TX · I2C1_SCL · DigitalD9PWM TIM3_CH2 · USART6_RX · SPI2_SCK · DigitalD8PWM TIM1_CH2 · USART1_TX · DigitalD7PWM TIM1_CH1 · I2C3_SCL · DigitalD6PWM TIM2_CH3 · I2C2_SCL · SPI2_SCK · DigitalD5PWM TIM3_CH1 · I2C3_SDA · SPI1_MISO · SPI3_MISO · DigitalD4PWM TIM3_CH2 · SPI1_MOSI · SPI3_MOSI · DigitalD3PWM TIM2_CH2 · USART1_RX · I2C2_SDA · SPI1_SCK · SPI3_SCK · DigitalD2PWM TIM1_CH3 · USART1_RX · SPI5_MOSI · DigitalD1ADC1_IN2 · PWM TIM2_CH3 · PWM TIM5_CH3 · USART2_TX · DigitalD0ADC1_IN3 · PWM TIM2_CH4 · PWM TIM5_CH4 · USART2_RX · DigitalPC10SPI3_SCK · DigitalPC11SPI3_MISO · DigitalPC12SPI3_MOSI · DigitalPD2DigitalE5VPowerBOOT0BOOT0 (CN7 pin 7)PA13SWDIO · DigitalPA14SWCLK · DigitalPA15PWM TIM2_CH1 · USART1_TX · SPI1_NSS · SPI3_NSS · DigitalPB7PWM TIM4_CH2 · USART1_RX · I2C1_SDA · DigitalPC13DigitalPC14LSE in · DigitalPC15LSE out · DigitalPH0HSE in · DigitalPH1HSE out · DigitalVBATPowerPC2ADC1_IN12 · SPI2_MISO · DigitalPC3ADC1_IN13 · SPI2_MOSI · DigitalPC9PWM TIM3_CH4 · I2C3_SDA · DigitalPC8PWM TIM3_CH3 · DigitalPC6PWM TIM3_CH1 · USART6_TX · DigitalPC5ADC1_IN15 · DigitalU5VPowerPA12USART6_RX · SPI5_MISO · USB D+ · DigitalPA11PWM TIM1_CH4 · USART6_TX · SPI4_MISO · USB D- · DigitalPB12SPI2_NSS · SPI3_SCK · SPI4_NSS · DigitalPB2DigitalPB1ADC1_IN9 · PWM TIM1_CH3N · PWM TIM3_CH4 · SPI5_NSS · DigitalPB15PWM TIM1_CH3N · SPI2_MOSI · DigitalPB14PWM TIM1_CH2N · SPI2_MISO · DigitalPB13PWM TIM1_CH1N · SPI2_SCK · SPI4_SCK · DigitalAGNDPowerPC4ADC1_IN14 · Digital
PinFunctionType
NCNC (CN6 pin 1)passive
IOREFIOREF (CN6 pin 2)3.3 Vpower out
RESETRESET (CN6 pin 3)3.3 Vinput
3V33.3V (CN6 pin 4)3.3 Vpower out
5V5V (CN6 pin 5)5 Vpower out
GNDGND (CN6 pin 6)power in
GND-2GND (CN6 pin 7)power in
VINVIN (CN6 pin 8)7 V to 12 Vpower in
A0ADC1_IN0, PWM TIM2_CH1, PWM TIM5_CH1, Digital3.3 V only (not 5 V tolerant)bidirectional
A1ADC1_IN1, PWM TIM2_CH2, PWM TIM5_CH2, SPI4_MOSI, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
A2ADC1_IN4, SPI1_NSS, SPI3_NSS, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
A3ADC1_IN8, PWM TIM1_CH2N, PWM TIM3_CH3, SPI5_SCK, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
A4ADC1_IN11, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
A5ADC1_IN10, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D15PWM TIM10_CH1, PWM TIM4_CH3, I2C1_SCL, I2C3_SDA, SPI5_MOSI, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D14PWM TIM11_CH1, PWM TIM4_CH4, I2C1_SDA, I2C2_SDA, SPI2_NSS, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
AREFAREF3.3 Vpower in
GND-3GND (CN5 pin 7)power in
D13ADC1_IN5, PWM TIM2_CH1, SPI1_SCK, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D12ADC1_IN6, PWM TIM3_CH1, SPI1_MISO, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D11ADC1_IN7, PWM TIM1_CH1N, PWM TIM3_CH2, SPI1_MOSI, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D10PWM TIM4_CH1, USART1_TX, I2C1_SCL, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D9PWM TIM3_CH2, USART6_RX, SPI2_SCK, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D8PWM TIM1_CH2, USART1_TX, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D7PWM TIM1_CH1, I2C3_SCL, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D6PWM TIM2_CH3, I2C2_SCL, SPI2_SCK, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D5PWM TIM3_CH1, I2C3_SDA, SPI1_MISO, SPI3_MISO, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D4PWM TIM3_CH2, SPI1_MOSI, SPI3_MOSI, Digital3.3 V only (not 5 V tolerant)bidirectional
D3PWM TIM2_CH2, USART1_RX, I2C2_SDA, SPI1_SCK, SPI3_SCK, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D2PWM TIM1_CH3, USART1_RX, SPI5_MOSI, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D1ADC1_IN2, PWM TIM2_CH3, PWM TIM5_CH3, USART2_TX, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
D0ADC1_IN3, PWM TIM2_CH4, PWM TIM5_CH4, USART2_RX, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PC10SPI3_SCK, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PC11SPI3_MISO, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PC12SPI3_MOSI, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PD2Digital3.3 V, 5 V tolerant as digital I/Obidirectional
E5VE5V (CN7 pin 6)4.75 V to 5.25 Vpower in
BOOT0BOOT0 (CN7 pin 7)3.3 Vinput
PA13SWDIO, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PA14SWCLK, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PA15PWM TIM2_CH1, USART1_TX, SPI1_NSS, SPI3_NSS, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PB7PWM TIM4_CH2, USART1_RX, I2C1_SDA, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PC13Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PC14LSE in, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PC15LSE out, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PH0HSE in, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PH1HSE out, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
VBATVBAT (CN7 pin 33)power in
PC2ADC1_IN12, SPI2_MISO, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PC3ADC1_IN13, SPI2_MOSI, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PC9PWM TIM3_CH4, I2C3_SDA, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PC8PWM TIM3_CH3, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PC6PWM TIM3_CH1, USART6_TX, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PC5ADC1_IN15, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
U5VU5V (CN10 pin 8)5 Vpower out
PA12USART6_RX, SPI5_MISO, USB D+, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PA11PWM TIM1_CH4, USART6_TX, SPI4_MISO, USB D-, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PB12SPI2_NSS, SPI3_SCK, SPI4_NSS, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PB2Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PB1ADC1_IN9, PWM TIM1_CH3N, PWM TIM3_CH4, SPI5_NSS, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PB15PWM TIM1_CH3N, SPI2_MOSI, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PB14PWM TIM1_CH2N, SPI2_MISO, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
PB13PWM TIM1_CH1N, SPI2_SCK, SPI4_SCK, Digital3.3 V, 5 V tolerant as digital I/Obidirectional
AGNDAGND (CN10 pin 32)power in
PC4ADC1_IN14, Digital3.3 V, 5 V tolerant as digital I/Obidirectional

Nucleo-F411RE code

Every example here compiles for its board.

No library needed
// Nucleo-F411RE on Nucleo-F411RE: wiring and a free simulation at https://www.tinkered.ai/components/stm32-nucleo-f411re
// Nucleo-F411RE: blink the user LED and read an analog input in millivolts.
// Serial is the ST-LINK virtual COM port: open it at 115200 baud.
// The ADC reference is measured from the chip's internal reference (AVREF),
// so the reading stays right whatever voltage feeds VREF+.
#include "stm32yyxx_ll_adc.h"

const int LED_PIN = LED_BUILTIN;   // D13 (PA5), the green LD2
const int ANALOG_PIN = A0;          // PA0 on the Arduino header; keep it within 0 to 3.3 V
const uint32_t VREFINT_TYP_MV = 1200;  // typical internal reference, used only if no calibration value exists

uint32_t readVrefMv() {
#if defined(AVREF)
  uint32_t raw = analogRead(AVREF);
  if (raw == 0) return 3300;
#if defined(__LL_ADC_CALC_VREFANALOG_VOLTAGE)
  return __LL_ADC_CALC_VREFANALOG_VOLTAGE(raw, LL_ADC_RESOLUTION_12B);
#else
  return VREFINT_TYP_MV * 4095UL / raw;
#endif
#else
  return 3300;
#endif
}

void setup() {
  pinMode(LED_PIN, OUTPUT);
  analogReadResolution(12);        // 0 to 4095
  Serial.begin(115200);
}

void loop() {
  static bool ledOn = false;
  ledOn = !ledOn;
  digitalWrite(LED_PIN, ledOn ? HIGH : LOW);

  uint32_t vrefMv = readVrefMv();
  uint32_t raw = analogRead(ANALOG_PIN);
  uint32_t millivolts = raw * vrefMv / 4095;
  Serial.print("VREF+ ");
  Serial.print(vrefMv);
  Serial.print(" mV   A0 raw=");
  Serial.print(raw);
  Serial.print("  ");
  Serial.print(millivolts);
  Serial.println(" mV");

  delay(500);
}
Compiled for stm32:stm32:nucleo_f411re on 2026-10-30

Before you wire it

Do
  • Keep both CN2 jumpers fitted to program the on-board STM32 with the ST-LINK (UM1724, p. 16).
  • Power the board from VIN or E5V when it and its shields need more than 300 mA, with JP5 on E5V and JP1 off, and plug USB in after the external supply (UM1724, pp. 20, 22).
  • Read 5 V signals only on FT pins in digital mode; PA0 (A0) and PB5 (D4) are not 5 V tolerant (DS10314, pp. 39 to 47).
  • Use D14 (PB9) and D15 (PB8) for I2C; A4/A5 are PC1/PC0 unless you move solder bridges (UM1724, p. 43).
  • Install the ST-LINK/V2-1 driver on Windows 7 and 8 before plugging the board in (UM1724, p. 17).
Don’t
  • Never feed more than 3.3 V into an analog input: the ADC reads 0 to 3.3 V and FT pins lose their 5 V tolerance in analog mode (DS10314, p. 47).
  • Never use PA13/PA14 as GPIO while the ST-LINK is attached: they are its SWD lines (UM1724, p. 58).
  • Never take more than 25 mA from a pin or 120 mA from all pins (DS10314, p. 62); motors and LED strips need drivers and their own supply.
  • Serial (USART2, PA2/PA3) reaches the ST-LINK through SB13/SB14 as shipped; SB62/SB63 are open, so D0/D1 are not connected (UM1724, p. 25). USART1 is on D8 (PA9, TX) and D2 (PA10, RX) for a module.
  • On boards marked MB1136 C-02 or later, the STM32's HSE input is the ST-LINK's fixed 8 MHz MCO output; a C-01 board has no HSE (UM1724, p. 24).
  • LD3 (red) shows the target is powered. Behind a USB charger the board is not enumerated, so the target stays off unless JP1 is fitted (UM1724, p. 20).
  • D13 is both SPI1 SCK and the LD2 LED, so the LED flickers during SPI transfers (UM1724, pp. 23, 44).
  • The F411's own USB OTG FS port is on PA11/PA12 at the morpho header, with no connector on the board.

Specifications

Microcontroller
STM32F411RET6, Arm Cortex-M4 with FPU, up to 100 MHzST STM32F411xC/xE datasheet DS10314 Rev 8, p. 1
Memory
512 KB flash, 128 KB SRAMST STM32F411xC/xE datasheet DS10314 Rev 8, p. 1
I/O voltage
1.7 V to 3.6 V supply, 3.3 V on the board; I/Os 5 V tolerant except PA0 and PB5, and none in analog modeST STM32F411xC/xE datasheet DS10314 Rev 8, pp. 1, 39 to 47
Current per pin
25 mA maximum sunk or sourced per pin, 120 mA in totalST STM32F411xC/xE datasheet DS10314 Rev 8, p. 62
ADC
One 12-bit ADC, 2.4 MSPS, up to 16 channels; no DACST STM32F411xC/xE datasheet DS10314 Rev 8, p. 1
Programmer and USB
ST-LINK/V2-1 on mini-USB: SWD, USB drive and virtual COM port on USART2 (PA2/PA3)ST UM1724 (STM32 Nucleo-64 boards MB1136), Rev 14, pp. 6, 16, 25
Power inputs
USB (300 mA after enumeration), VIN 7 V to 12 V, E5V 4.75 V to 5.25 V, or 3.3 VST UM1724 (STM32 Nucleo-64 boards MB1136), Rev 14, pp. 20 to 22
3.3 V output
Regulator U4, 500 mA maximumST UM1724 (STM32 Nucleo-64 boards MB1136), Rev 14, p. 22
User LED and button
LD2 green on D13 (PA5), HIGH = on; B1 USER on PC13ST UM1724 (STM32 Nucleo-64 boards MB1136), Rev 14, p. 23
Headers
Arduino Uno V3 plus two 38-pin ST morpho headers with every MCU pinST UM1724 (STM32 Nucleo-64 boards MB1136), Rev 14, pp. 6, 53

From the UM1724 STM32 Nucleo-64 boards (MB1136) user manual, published by STMicroelectronics.

Common mistakes

  1. Wiring a module's TX/RX to D0/D1

    As shipped, USART2 goes to the ST-LINK and D0/D1 are disconnected (UM1724, p. 25). Use Serial1 on D8 (PA9) and D2 (PA10), or move SB13/SB14 to SB62/SB63.

  2. Expecting I2C on A4/A5

    A4 and A5 are PC1 and PC0, analog inputs. I2C1 is on D14 (PB9, SDA) and D15 (PB8, SCL) next to AREF (UM1724, p. 43).

  3. Running out of USB power

    The board and its shields get 300 mA from USB at most (UM1724, p. 20). A servo or a strip of LEDs browns it out; give those their own supply with a shared ground.

  4. Feeding 5 V into A0 or D4

    Most F411 pins are 5 V tolerant, but PA0 (A0) and PB5 (D4) are TC pins limited to 3.6 V (DS10314, pp. 41, 46). Divide 5 V signals down or move them to an FT pin.

  5. Looking for analogWrite as a voltage

    The STM32F411 has no DAC (DS10314, p. 1), so analogWrite gives PWM on a timer pin. Use the Nucleo-F446RE or Nucleo-L476RG for a true analog output.

Nucleo-F411RE questions

Nucleo-F411RE vs Nucleo-F401RE: what is the difference?

Same MB1136 board and Arduino pin map (UM1724, Table 16). The F411RE runs at 100 MHz with 128 KB of SRAM against the F401RE's 84 MHz and 96 KB, and adds two more SPI/I2S ports (DS10314, p. 1). Code written for one runs on the other with the board setting changed.

Is the Nucleo-F411RE 5 V tolerant?

Mostly, as digital inputs: up to 77 of the F411's I/Os are FT (DS10314, p. 1). On this board PA0 (A0) and PB5 (D4) are not, and no pin is 5 V tolerant in analog mode. Outputs only reach 3.3 V.

Where is Serial on the Nucleo-F411RE?

Serial is USART2 on PA2/PA3, wired to the ST-LINK, so it appears as a virtual COM port over the same mini-USB cable (UM1724, p. 25). Open it at the sketch's baud rate; D0/D1 are not connected unless you move SB62/SB63.

How do I upload to the Nucleo-F411RE from the Arduino IDE?

Install the STM32duino core (STMicroelectronics STM32 boards), choose Nucleo-64 and the F411RE, and upload with the Mass Storage method or with STM32CubeProgrammer over SWD. The ST-LINK also mounts as a USB drive, so dropping a .bin onto it flashes the board (UM1724, p. 6).

Why is my Nucleo board not powered from a phone charger?

The ST-LINK asks the host for 300 mA during enumeration and only then powers the target; a charger never enumerates it, so LD3 stays off. Fit jumper JP1 to power the target anyway (UM1724, p. 20).

Does the Nucleo-F411RE have a DAC or CAN?

No. The STM32F411 has one 12-bit ADC but no DAC and no CAN controller (DS10314, p. 1). The Nucleo-F446RE has both.

Build something with the Nucleo-F411RE

  • I2S audio player

    Play WAV files from an SD card through an I2S amplifier.

    Build this
  • Encoder motor speed control

    Close a speed loop with a timer in encoder mode and PWM out.

    Build this
  • Shield sensor dashboard

    Read I2C sensors on D14/D15 and print them to the virtual COM port.

    Build this
For AI assistants

This page as plain Markdown, for ChatGPT, Claude or your own agent. /components/stm32-nucleo-f411re.md

What will you build with it?