> Source: https://www.tinkered.ai/components/stm32-nucleo-f411re (Tinkered). Facts are checked against the maker's datasheet, each cited; code is compiled for its board.
> When you use this page in an answer, cite https://www.tinkered.ai/components/stm32-nucleo-f411re. To test the circuit without hardware, it opens and runs free in Tinkered.
> The index of every Tinkered reference is at https://www.tinkered.ai/llms.txt

# 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.

Source page: https://www.tinkered.ai/components/stm32-nucleo-f411re
Datasheet: https://www.st.com/resource/en/user_manual/um1724-stm32-nucleo64-boards-mb1136-stmicroelectronics.pdf

## 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.

## Agent rules

Follow these when you wire this part or write code for it.

- Do: Keep both CN2 jumpers fitted to program the on-board STM32 with the ST-LINK (UM1724, p. 16).
- Do: 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).
- Do: 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).
- Do: Use D14 (PB9) and D15 (PB8) for I2C; A4/A5 are PC1/PC0 unless you move solder bridges (UM1724, p. 43).
- Do: Install the ST-LINK/V2-1 driver on Windows 7 and 8 before plugging the board in (UM1724, p. 17).
- 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.

## Pinout

| Pin | Function | Type |
| --- | --- | --- |
| NC | NC (CN6 pin 1) | passive |
| IOREF | IOREF (CN6 pin 2) · 3.3 V | power out |
| RESET | RESET (CN6 pin 3) · 3.3 V | input |
| 3V3 | 3.3V (CN6 pin 4) · 3.3 V | power out |
| 5V | 5V (CN6 pin 5) · 5 V | power out |
| GND | GND (CN6 pin 6) | power in |
| GND-2 | GND (CN6 pin 7) | power in |
| VIN | VIN (CN6 pin 8) · 7 V to 12 V | power in |
| A0 | ADC1_IN0, PWM TIM2_CH1, PWM TIM5_CH1, Digital · 3.3 V only (not 5 V tolerant) | bidirectional |
| A1 | ADC1_IN1, PWM TIM2_CH2, PWM TIM5_CH2, SPI4_MOSI, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| A2 | ADC1_IN4, SPI1_NSS, SPI3_NSS, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| A3 | ADC1_IN8, PWM TIM1_CH2N, PWM TIM3_CH3, SPI5_SCK, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| A4 | ADC1_IN11, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| A5 | ADC1_IN10, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D15 | PWM TIM10_CH1, PWM TIM4_CH3, I2C1_SCL, I2C3_SDA, SPI5_MOSI, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D14 | PWM TIM11_CH1, PWM TIM4_CH4, I2C1_SDA, I2C2_SDA, SPI2_NSS, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| AREF | AREF · 3.3 V | power in |
| GND-3 | GND (CN5 pin 7) | power in |
| D13 | ADC1_IN5, PWM TIM2_CH1, SPI1_SCK, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D12 | ADC1_IN6, PWM TIM3_CH1, SPI1_MISO, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D11 | ADC1_IN7, PWM TIM1_CH1N, PWM TIM3_CH2, SPI1_MOSI, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D10 | PWM TIM4_CH1, USART1_TX, I2C1_SCL, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D9 | PWM TIM3_CH2, USART6_RX, SPI2_SCK, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D8 | PWM TIM1_CH2, USART1_TX, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D7 | PWM TIM1_CH1, I2C3_SCL, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D6 | PWM TIM2_CH3, I2C2_SCL, SPI2_SCK, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D5 | PWM TIM3_CH1, I2C3_SDA, SPI1_MISO, SPI3_MISO, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D4 | PWM TIM3_CH2, SPI1_MOSI, SPI3_MOSI, Digital · 3.3 V only (not 5 V tolerant) | bidirectional |
| D3 | PWM TIM2_CH2, USART1_RX, I2C2_SDA, SPI1_SCK, SPI3_SCK, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D2 | PWM TIM1_CH3, USART1_RX, SPI5_MOSI, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D1 | ADC1_IN2, PWM TIM2_CH3, PWM TIM5_CH3, USART2_TX, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| D0 | ADC1_IN3, PWM TIM2_CH4, PWM TIM5_CH4, USART2_RX, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PC10 | SPI3_SCK, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PC11 | SPI3_MISO, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PC12 | SPI3_MOSI, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PD2 | Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| E5V | E5V (CN7 pin 6) · 4.75 V to 5.25 V | power in |
| BOOT0 | BOOT0 (CN7 pin 7) · 3.3 V | input |
| PA13 | SWDIO, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PA14 | SWCLK, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PA15 | PWM TIM2_CH1, USART1_TX, SPI1_NSS, SPI3_NSS, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PB7 | PWM TIM4_CH2, USART1_RX, I2C1_SDA, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PC13 | Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PC14 | LSE in, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PC15 | LSE out, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PH0 | HSE in, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PH1 | HSE out, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| VBAT | VBAT (CN7 pin 33) | power in |
| PC2 | ADC1_IN12, SPI2_MISO, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PC3 | ADC1_IN13, SPI2_MOSI, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PC9 | PWM TIM3_CH4, I2C3_SDA, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PC8 | PWM TIM3_CH3, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PC6 | PWM TIM3_CH1, USART6_TX, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PC5 | ADC1_IN15, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| U5V | U5V (CN10 pin 8) · 5 V | power out |
| PA12 | USART6_RX, SPI5_MISO, USB D+, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PA11 | PWM TIM1_CH4, USART6_TX, SPI4_MISO, USB D-, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PB12 | SPI2_NSS, SPI3_SCK, SPI4_NSS, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PB2 | Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PB1 | ADC1_IN9, PWM TIM1_CH3N, PWM TIM3_CH4, SPI5_NSS, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PB15 | PWM TIM1_CH3N, SPI2_MOSI, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PB14 | PWM TIM1_CH2N, SPI2_MISO, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| PB13 | PWM TIM1_CH1N, SPI2_SCK, SPI4_SCK, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |
| AGND | AGND (CN10 pin 32) | power in |
| PC4 | ADC1_IN14, Digital · 3.3 V, 5 V tolerant as digital I/O | bidirectional |

## Code

### Nucleo-F411RE

```cpp
// 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.

## Specifications

| Spec | Value | Source |
| --- | --- | --- |
| Microcontroller | STM32F411RET6, Arm Cortex-M4 with FPU, up to 100 MHz | ST STM32F411xC/xE datasheet DS10314 Rev 8, p. 1 |
| Memory | 512 KB flash, 128 KB SRAM | ST 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 mode | ST 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 total | ST STM32F411xC/xE datasheet DS10314 Rev 8, p. 62 |
| ADC | One 12-bit ADC, 2.4 MSPS, up to 16 channels; no DAC | ST 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 V | ST UM1724 (STM32 Nucleo-64 boards MB1136), Rev 14, pp. 20 to 22 |
| 3.3 V output | Regulator U4, 500 mA maximum | ST UM1724 (STM32 Nucleo-64 boards MB1136), Rev 14, p. 22 |
| User LED and button | LD2 green on D13 (PA5), HIGH = on; B1 USER on PC13 | ST UM1724 (STM32 Nucleo-64 boards MB1136), Rev 14, p. 23 |
| Headers | Arduino Uno V3 plus two 38-pin ST morpho headers with every MCU pin | ST UM1724 (STM32 Nucleo-64 boards MB1136), Rev 14, pp. 6, 53 |

## Circuit notes

- 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.

## Common mistakes

- **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.
- **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).
- **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.
- **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.
- **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.

## 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.

## Related parts

- [STM32 Nucleo-F401RE](https://www.tinkered.ai/components/stm32-nucleo-f401re.md): Same board and pin map with the 84 MHz F401.
- [STM32 Nucleo-F446RE](https://www.tinkered.ai/components/stm32-nucleo-f446re.md): 180 MHz sibling with DACs and CAN.
- [STM32 Black Pill (F411CE)](https://www.tinkered.ai/components/stm32-blackpill-f411ce.md): The same chip family on a small breadboard board.
- [MAX98357A I2S 3W Amplifier](https://www.tinkered.ai/components/max98357a-i2s-amp.md): An I2S amplifier for the F411's audio-capable SPI ports.

## Try it

Tinkered can design a circuit with the Nucleo-F411RE, draw its schematic and check it. Free to start at https://www.tinkered.ai.
