Built around the 1.4 GHz 64-bit Broadcom BCM2837B0 quad-core ARM Cortex-A53 with metal heatspreader and Infineon CYW43455 802.11ac Wi-Fi / BLE radio, the Raspberry Pi 3 family comes in the full 85 x 56 mm Model B+ (1 GB RAM, Gigabit Ethernet over USB 2.0, 4x USB, 4-pin PoE) and compact 65 x 56 mm Model A+ (512 MB RAM, 1x USB). Both expose the standard 40-pin J8 header with 28 3.3V GPIOs supporting SPI0, SPI1, I2C1, UART, hardware PWM, PCM/I2S, and GPCLK. By default, PL011 UART0 feeds the onboard Bluetooth modem on GPIO30..33 while GPIO14/15 use the VPU-clocked mini-UART (UART1) unless remapped via dtoverlay=disable-bt. All GPIOs are strictly 3.3V non-5V-tolerant, with fixed 1.8 kOhm pull-ups on GPIO2/GPIO3 and HAT EEPROM probing on ID_SD/ID_SC.
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 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.
BCM GPIO2 (Bank 0, reset default: pull-up HIGH; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 4 | 5V | power | 5V_RAIL | |
| 5 | GPIO3 | digital | GPIO3 I2C1_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.
BCM GPIO3 (Bank 0, reset default: pull-up HIGH; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 6 | GND | ground | GND | |
| 7 | GPIO4 | digital | GPIO4 GPCLK0 DPI_D0 ARM_TDI |
BCM GPIO4 (Bank 0, reset default: pull-up HIGH; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 8 | GPIO14 | digital | GPIO14 UART0_TXD UART1_TXD 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.
BCM GPIO14 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 9 | GND | ground | GND | |
| 10 | GPIO15 | digital | GPIO15 UART0_RXD UART1_RXD 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.
BCM GPIO15 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 11 | GPIO17 | digital | GPIO17 SPI1_CE1_N UART0_RTS UART1_RTS DPI_D13 |
BCM GPIO17 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 12 | GPIO18 | digital | GPIO18 PCM_CLK PWM0_0 SPI1_CE0_N DPI_D14 |
BCM GPIO18 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 13 | GPIO27 | digital | GPIO27 SD0_DAT3 SD1_DAT3 ARM_TMS DPI_D23 |
BCM GPIO27 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 14 | GND | ground | GND | |
| 15 | GPIO22 | digital | GPIO22 SD0_CLK SD1_CLK ARM_TRST DPI_D18 |
BCM GPIO22 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 16 | GPIO23 | digital | GPIO23 SD0_CMD SD1_CMD ARM_RTCK DPI_D19 |
BCM GPIO23 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 17 | 3V3 | power | 3V3_OUT | |
| 18 | GPIO24 | digital | GPIO24 SD0_DAT0 SD1_DAT0 ARM_TDO DPI_D20 |
BCM GPIO24 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 19 | GPIO10 | digital | GPIO10 SPI0_MOSI DPI_D6 |
BCM GPIO10 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 20 | GND | ground | GND | |
| 21 | GPIO9 | digital | GPIO9 SPI0_MISO DPI_D5 |
BCM GPIO9 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 22 | GPIO25 | digital | GPIO25 SD0_DAT1 SD1_DAT1 ARM_TCK DPI_D21 |
BCM GPIO25 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 23 | GPIO11 | digital | GPIO11 SPI0_SCLK DPI_D7 |
BCM GPIO11 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 24 | GPIO8 | digital | GPIO8 SPI0_CE0_N DPI_D4 |
BCM GPIO8 (Bank 0, reset default: pull-up HIGH; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 25 | GND | ground | GND | |
| 26 | GPIO7 | digital | GPIO7 SPI0_CE1_N DPI_D3 |
BCM GPIO7 (Bank 0, reset default: pull-up HIGH; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 27 | ID_SD GPIO0 | digital | GPIO0 I2C0_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.
BCM GPIO0 (Bank 0, reset default: pull-up HIGH; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 28 | ID_SC GPIO1 | digital | GPIO1 I2C0_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.
BCM GPIO1 (Bank 0, reset default: pull-up HIGH; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 29 | GPIO5 | digital | GPIO5 GPCLK1 DPI_D1 ARM_TDO |
BCM GPIO5 (Bank 0, reset default: pull-up HIGH; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 30 | GND | ground | GND | |
| 31 | GPIO6 | digital | GPIO6 GPCLK2 DPI_D2 ARM_RTCK |
BCM GPIO6 (Bank 0, reset default: pull-up HIGH; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 32 | GPIO12 | digital | GPIO12 PWM0_0 DPI_D8 ARM_TMS |
BCM GPIO12 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 33 | GPIO13 | digital | GPIO13 PWM0_1 DPI_D9 ARM_TCK |
BCM GPIO13 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 34 | GND | ground | GND | |
| 35 | GPIO19 | digital | GPIO19 PCM_FS PWM0_1 SPI1_MISO DPI_D15 |
BCM GPIO19 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 36 | GPIO16 | digital | GPIO16 SPI1_CE2_N UART0_CTS UART1_CTS DPI_D12 |
BCM GPIO16 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 37 | GPIO26 | digital | GPIO26 SD0_DAT2 SD1_DAT2 ARM_TDI DPI_D22 |
BCM GPIO26 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 38 | GPIO20 | digital | GPIO20 PCM_DIN SPI1_MOSI GPCLK0 DPI_D16 |
BCM GPIO20 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|
| 39 | GND | ground | GND | |
| 40 | GPIO21 | digital | GPIO21 PCM_DOUT SPI1_SCLK GPCLK1 DPI_D17 |
BCM GPIO21 (Bank 0, reset default: pull-down LOW; strictly 3.3V/1.8V CMOS, NOT 5V tolerant).
|