Powered by the 28 nm Broadcom BCM2711 quad-core Cortex-A72 processor (1.5/1.8 GHz) with 1-8 GB LPDDR4 SDRAM, true RGMII Gigabit Ethernet, PCIe-backed USB 3.0, and dual 4K60 Micro-HDMI outputs, the Raspberry Pi 4 Model B dramatically expands peripheral multiplexing on the classic 40-pin J8 HAT header. Alongside legacy SPI0/SPI1, I2C0/I2C1, and UART0/UART1, BCM2711 adds four extra PL011 UARTs (UART2-UART5), four extra I2C buses (I2C3-I2C6), and four extra SPI controllers (SPI3-SPI6) across GPIO0-GPIO27. USB-C supplies 5V/3A power while the MxL7704 PMIC regulates 3.3V and core rails (note right-edge RJ45 Ethernet is swapped to the top-right position vs Pi 3B+). All 28 GPIOs are strictly 3.3V-only (never 5V tolerant), with fixed 1.8 kOhm pull-ups on GPIO2/GPIO3.
Onboard Peripherals & Internal Signals
Pin Assignment Planner
Add the peripherals you need and plan the pin assignments
Full Pin Reference (40 Pins)
| Pin # | Label | Type | Functions | Warnings & Notes |
|---|---|---|---|---|
| 1 | 3V3 | power | 3V3_OUT |
[CAUTION] 3.3V regulated output rail — GPIO pins are strictly NOT 5V tolerant
All Raspberry Pi GPIO pins operate at 3.3V CMOS levels. Never connect 5V logic directly to any GPIO pin.
|
| 2 | 5V | power | 5V_RAIL |
[DANGER] Direct 5V supply rail — NEVER wire to 3.3V GPIO pins without level shifting
Connected directly to the 5V input power bus.
|
| 3 | GPIO2 | digital | GPIO2 I2C1_SDA SPI3_MOSI UART2_CTS I2C3_SDA DPI_VSYNC |
[CAUTION] Fixed 1.8 kOhm onboard pull-up resistor to 3.3V
Hardwired 1.8 kOhm physical pull-up to the 3.3V rail for I2C1; cannot be disabled in software.
BCM2711 GPIO2 (Bank 0, reset default: pull-up HIGH; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 4 | 5V | power | 5V_RAIL | |
| 5 | GPIO3 | digital | GPIO3 I2C1_SCL SPI3_SCLK UART2_RTS I2C3_SCL DPI_HSYNC |
[CAUTION] Fixed 1.8 kOhm onboard pull-up resistor to 3.3V
Hardwired 1.8 kOhm physical pull-up to the 3.3V rail for I2C1; cannot be disabled in software.
BCM2711 GPIO3 (Bank 0, reset default: pull-up HIGH; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 6 | GND | ground | GND | |
| 7 | GPIO4 | digital | GPIO4 GPCLK0 UART3_TXD I2C3_SDA SPI4_CE0_N DPI_D0 |
BCM2711 GPIO4 (Bank 0, reset default: pull-up HIGH; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 8 | GPIO14 | digital | GPIO14 UART0_TXD UART1_TXD SPI5_MOSI UART5_CTS DPI_D10 |
[CAUTION] Default console uses mini-UART (UART1) while PL011 (UART0) feeds Bluetooth
On Bluetooth-equipped Raspberry Pi models, UART0 (PL011) is routed to the onboard CYW43455 Bluetooth modem by default and GPIO14/15 use UART1 (mini-UART). Add dtoverlay=disable-bt or dtoverlay=miniuart-bt in config.txt to route PL011 here.
BCM2711 GPIO14 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 9 | GND | ground | GND | |
| 10 | GPIO15 | digital | GPIO15 UART0_RXD UART1_RXD SPI5_SCLK UART5_RTS DPI_D11 |
[CAUTION] Default console uses mini-UART (UART1) while PL011 (UART0) feeds Bluetooth
On Bluetooth-equipped Raspberry Pi models, UART0 (PL011) is routed to the onboard CYW43455 Bluetooth modem by default and GPIO14/15 use UART1 (mini-UART). Add dtoverlay=disable-bt or dtoverlay=miniuart-bt in config.txt to route PL011 here.
BCM2711 GPIO15 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 11 | GPIO17 | digital | GPIO17 SPI1_CE1_N UART0_RTS UART1_RTS DPI_D13 |
BCM2711 GPIO17 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 12 | GPIO18 | digital | GPIO18 PCM_CLK PWM0_0 SPI1_CE0_N SPI6_CE0_N DPI_D14 |
BCM2711 GPIO18 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 13 | GPIO27 | digital | GPIO27 SPI6_CE1_N SD0_DAT3 ARM_TMS DPI_D23 |
BCM2711 GPIO27 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 14 | GND | ground | GND | |
| 15 | GPIO22 | digital | GPIO22 I2C6_SDA SD0_CLK ARM_TRST DPI_D18 |
BCM2711 GPIO22 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 16 | GPIO23 | digital | GPIO23 I2C6_SCL SD0_CMD ARM_RTCK DPI_D19 |
BCM2711 GPIO23 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 17 | 3V3 | power | 3V3_OUT | |
| 18 | GPIO24 | digital | GPIO24 SPI3_CE1_N SD0_DAT0 ARM_TDO DPI_D20 |
BCM2711 GPIO24 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 19 | GPIO10 | digital | GPIO10 SPI0_MOSI UART4_CTS I2C5_SDA DPI_D6 |
BCM2711 GPIO10 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 20 | GND | ground | GND | |
| 21 | GPIO9 | digital | GPIO9 SPI0_MISO UART4_RXD I2C4_SCL DPI_D5 |
BCM2711 GPIO9 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 22 | GPIO25 | digital | GPIO25 SPI4_CE1_N SD0_DAT1 ARM_TCK DPI_D21 |
BCM2711 GPIO25 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 23 | GPIO11 | digital | GPIO11 SPI0_SCLK UART4_RTS I2C5_SCL DPI_D7 |
BCM2711 GPIO11 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 24 | GPIO8 | digital | GPIO8 SPI0_CE0_N UART4_TXD I2C4_SDA DPI_D4 |
BCM2711 GPIO8 (Bank 0, reset default: pull-up HIGH; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 25 | GND | ground | GND | |
| 26 | GPIO7 | digital | GPIO7 SPI0_CE1_N SPI4_SCLK UART3_RTS I2C4_SCL DPI_D3 |
BCM2711 GPIO7 (Bank 0, reset default: pull-up HIGH; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 27 | ID_SD GPIO0 | digital | GPIO0 I2C0_SDA UART2_TXD SPI3_CE0_N I2C6_SDA DPI_PCLK |
[CAUTION] Reserved by default for HAT ID EEPROM probe (I2C0) at boot
Firmware probes I2C0 on Pins 27/28 at boot for a HAT EEPROM. Set force_eeprom_read=0 in config.txt if repurposing as GPIO or alternate mux.
BCM2711 GPIO0 (Bank 0, reset default: pull-up HIGH; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 28 | ID_SC GPIO1 | digital | GPIO1 I2C0_SCL UART2_RXD SPI3_MISO I2C6_SCL DPI_DE |
[CAUTION] Reserved by default for HAT ID EEPROM probe (I2C0) at boot
Firmware probes I2C0 on Pins 27/28 at boot for a HAT EEPROM. Set force_eeprom_read=0 in config.txt if repurposing as GPIO or alternate mux.
BCM2711 GPIO1 (Bank 0, reset default: pull-up HIGH; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 29 | GPIO5 | digital | GPIO5 GPCLK1 UART3_RXD I2C3_SCL SPI4_MISO DPI_D1 |
BCM2711 GPIO5 (Bank 0, reset default: pull-up HIGH; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 30 | GND | ground | GND | |
| 31 | GPIO6 | digital | GPIO6 GPCLK2 SPI4_MOSI UART3_CTS I2C4_SDA DPI_D2 |
BCM2711 GPIO6 (Bank 0, reset default: pull-up HIGH; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 32 | GPIO12 | digital | GPIO12 PWM0_0 UART5_TXD I2C5_SDA SPI5_CE0_N DPI_D8 |
BCM2711 GPIO12 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 33 | GPIO13 | digital | GPIO13 PWM0_1 UART5_RXD I2C5_SCL SPI5_MISO DPI_D9 |
BCM2711 GPIO13 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 34 | GND | ground | GND | |
| 35 | GPIO19 | digital | GPIO19 PCM_FS PWM0_1 SPI1_MISO SPI6_MISO DPI_D15 |
BCM2711 GPIO19 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 36 | GPIO16 | digital | GPIO16 SPI1_CE2_N UART0_CTS UART1_CTS DPI_D12 |
BCM2711 GPIO16 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 37 | GPIO26 | digital | GPIO26 SPI5_CE1_N SD0_DAT2 ARM_TDI DPI_D22 |
BCM2711 GPIO26 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 38 | GPIO20 | digital | GPIO20 PCM_DIN SPI1_MOSI SPI6_MOSI GPCLK0 DPI_D16 |
BCM2711 GPIO20 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 39 | GND | ground | GND | |
| 40 | GPIO21 | digital | GPIO21 PCM_DOUT SPI1_SCLK SPI6_SCLK GPCLK1 DPI_D17 |
BCM2711 GPIO21 (Bank 0, reset default: pull-down LOW; 3.3V/1.8V CMOS, NOT 5V tolerant).
|