Opens in a new tab

NUCLEO-F446RE Pinout

NUCLEO-F446RE is an ST development board with the STM32F446RE microcontroller (Cortex-M4F, 180 MHz). It has headers for Arduino Uno shields, ST Morpho headers with all the chip’s pins, and a snap-off ST-LINK/V2-1 programmer that also handles debugging.

The same board (MB1136) is used by NUCLEO-F401RE, F411RE and others – the pin layout on the headers is the same for most of them (the F302R8 is one exception), and they differ mainly in the functions the chip provides.

Specifications

  • STM32F446RE: Arm Cortex-M4 with FPU, 180 MHz
  • 512 kB flash, 128 kB SRAM
  • 50 GPIO on the Morpho headers, Arduino Uno R3 headers
  • 4× USART + 2× UART, 3× SPI, 3× I2C + FMPI2C, 2× CAN, 3× 12-bit ADC, 2× DAC, USB OTG
  • ST-LINK/V2-1: uploading, debugging and virtual COM port over mini USB
  • user button B1 (PC13), green LED LD2 (PA5)
  • power from USB, 7–12 V via VIN or 5 V via E5V

You can program it in STM32CubeIDE, with PlatformIO, in the Arduino IDE (STM32duino core) or in MicroPython. When connected to USB, the board also shows up as a drive – uploading a program is just copying a .bin file.

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-F446RE (STM32 Nucleo-64) – pinoutNUCLEO-F446RE (STM32 Nucleo-64) – pinoutchiptron.eu · CC BY 4.0STM32F446REmini USBST-LINK/V2-1 1 PC10 TX3 SCK3 3 PC12 TX5 SDA2 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 ADC123_IN12 37 PC3 MOSI2 ADC123_IN13 2 PC8 T3CH3 4 PC6 TX6 T3CH1 6 PC5 RX3 ADC12_IN15 8 U5V → 5 V z USB konektoru ST-LINK 10 NC 12 PA12 CAN1 TX USB DP 14 PA11 CAN1 RX T1CH4 USB DM 16 PB12 NSS2 CAN2 RX 18 NC 20 GND 22 PB2 MOSI3 T2CH4 24 PB1 T1CH3N ADC12_IN9 26 PB15 MOSI2 T1CH3N 28 PB14 MISO2 T1CH2N 30 PB13 SCK2 CAN2 TX T1CH1N 32 AGND Analog ground 34 PC4 ADC12_IN14 36 NC 38 NC 2 PC11 RX3 4 PD2 RX5 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 TX4 ADC123_IN0 30 PA1 A1 RX4 ADC123_IN1 32 PA4 A2 NSS1 ADC12_IN4 34 PB0 A3 MOSI3 ADC12_IN8 36 PC1 A4 MOSI2 ADC123_IN11 38 PC0 A5 ADC123_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 TX3 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 CAN ADC (analog) PWM Power Ground (GND) Control / reset Not connected
Download:PNGSVG
Pin table – NUCLEO-F446RE (STM32 Nucleo-64)
PinNameArduinoDirectionUARTI2CSPICANPWMI2S (PCM)ADCDACNote
CN7-1PC10input/outputTX3, TX4SCK3I2S3 CK
CN7-2PC11input/outputRX3, RX4MISO3
CN7-3PC12input/outputTX5, CK3SDA2MOSI3I2S3 SD
CN7-4PD2input/outputRX5
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/outputRTS4NSS1, NSS3T2CH1I2S1 WS, I2S3 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/outputTX4, CTS2T2CH1, T5CH1ADC123_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/outputRX4, RTS2T2CH2, T5CH2ADC123_IN1
CN7-31PH1input/outputHSE crystal (X3) not fitted – pin is free
CN7-32PA4A2input/outputCK2NSS1, NSS3I2S1 WS, I2S3 WSADC12_IN4DAC1
CN7-33VBATinputRTC backup (tied to VDD on the board)
CN7-34PB0A3input/outputCTS4MOSI3T1CH2N, T3CH3, T8CH2NI2S3 SDADC12_IN8
CN7-35PC2input/outputMISO2ADC123_IN12
CN7-36PC1A4input/outputMOSI2, MOSI3I2S2 SD, I2S3 SDADC123_IN11A4 (default). Solder jumpers SB46/SB52 (and opening SB51/SB56) route PB9 (I2C SDA) to A4
CN7-37PC3input/outputMOSI2I2S2 SDADC123_IN13
CN7-38PC0A5input/outputADC123_IN10A5 (default). Solder jumpers SB46/SB52 (and opening SB51/SB56) route PB8 (I2C SCL) to A5
CN10-1PC9input/outputCTS5SDA3T3CH4, T8CH4
CN10-2PC8input/outputRTS5, CK6T3CH3, T8CH3
CN10-3PB8D15input/outputSCL1CAN1 RXT2CH1, T4CH3, T10CH1
CN10-4PC6input/outputTX6T3CH1, T8CH1I2S2 MCK
CN10-5PB9D14input/outputSDA1NSS2CAN1 TXT2CH2, T4CH4, T11CH1I2S2 WS
CN10-6PC5input/outputRX3ADC12_IN15
CN10-7AVDDoutputAnalog supply VDDA; AREF on the Arduino header
CN10-8U5Voutput5 V z USB konektoru ST-LINK
CN10-9GND–
CN10-10NC–
CN10-11PA5D13input/outputSCK1T2CH1, T8CH1NI2S1 CKADC12_IN5DAC2D13 – green LED LD2
CN10-12PA12input/outputRTS1CAN1 TXMicrocontroller USB OTG FS D+ (no connector on the board)
CN10-13PA6D12input/outputMISO1T3CH1, T13CH1I2S2 MCKADC12_IN6
CN10-14PA11input/outputCTS1CAN1 RXT1CH4Microcontroller USB OTG FS D− (no connector on the board)
CN10-15PA7D11input/outputMOSI1T1CH1N, T3CH2, T8CH1N, T14CH1I2S1 SDADC12_IN7
CN10-16PB12input/outputCK3NSS2CAN2 RXI2S2 WS
CN10-17PB6D10input/outputTX1SCL1CAN2 TXT4CH1
CN10-18NC–
CN10-19PC7D9input/outputRX6SCK2T3CH2, T8CH2I2S2 CK, I2S3 MCK
CN10-20GND–
CN10-21PA9D8input/outputTX1SCK2T1CH2I2S2 CK
CN10-22PB2input/outputMOSI3T2CH4I2S3 SDBOOT1
CN10-23PA8D7input/outputCK1SCL3T1CH1
CN10-24PB1input/outputT1CH3N, T3CH4, T8CH3NADC12_IN9
CN10-25PB10D6input/outputTX3SCL2SCK2T2CH3I2S2 CK
CN10-26PB15input/outputMOSI2T1CH3N, T8CH3N, T12CH2I2S2 SD
CN10-27PB4D5input/outputSDA3MISO1, NSS2, MISO3T3CH1I2S2 WS
CN10-28PB14input/outputRTS3MISO2T1CH2N, T8CH2N, T12CH1
CN10-29PB5D4input/outputMOSI1, MOSI3CAN2 RXT3CH2I2S1 SD, I2S3 SD
CN10-30PB13input/outputCTS3SCK2CAN2 TXT1CH1NI2S2 CK
CN10-31PB3D3input/outputSDA2SCK1, SCK3T2CH2I2S1 CK, I2S3 CKSWO – debug output to ST-LINK (via SB15)
CN10-32AGND–Analog ground
CN10-33PA10D2input/outputRX1T1CH3
CN10-34PC4input/outputI2S1 MCKADC12_IN14
CN10-35PA2D1input/outputTX2T2CH3, T5CH3, T9CH1ADC123_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, T9CH2ADC123_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) are connected to the ST-LINK virtual COM port by default and are not on the header – to use them with a shield, connect them with solder jumpers SB62/SB63.
  • Logic is 3.3 V. Many pins tolerate 5 V (marked FT in the datasheet), but the analog ones don’t – check before connecting a 5V signal.
  • A4 and A5 are PC1 and PC0 (ADC) by default; I2C is on D14/D15 (PB9/PB8).
  • When powering from VIN or E5V, move jumper 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