Raspberry Pi 3

board
Raspberry Pi Datasheet ↗

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.

DSI DISPLAY WIFI/BT BCM2837B0 MODEL A+ USB 2.0 Width compressed (not to scale) — click to show full true-scale width DSI DISPLAY WIFI/BT BCM2837B0 MODEL A+ CSI CAMERA USB 2.0 2 5V ! 5V_RAIL 5V_RAIL 4 5V 5V_RAIL 5V_RAIL 6 GND GND GND 8 GPIO14 ! UART0_TXD UART PIO +3 GPIO14 UART0_TXD UART1_TXD DPI_D10 10 GPIO15 ! UART0_RXD UART PIO +3 GPIO15 UART0_RXD UART1_RXD DPI_D11 12 GPIO18 PCM_CLK PWM SPI PIO +4 GPIO18 PCM_CLK PWM0_0 SPI1_CE0_N DPI_D14 14 GND GND GND 16 GPIO23 SD0_CMD System Debug PIO +4 GPIO23 SD0_CMD SD1_CMD ARM_RTCK DPI_D19 18 GPIO24 SD0_DAT0 System Debug PIO +4 GPIO24 SD0_DAT0 SD1_DAT0 ARM_TDO DPI_D20 20 GND GND GND 22 GPIO25 SD0_DAT1 System Debug PIO +4 GPIO25 SD0_DAT1 SD1_DAT1 ARM_TCK DPI_D21 24 GPIO8 GPIO8 SPI0_CE0_N DPI_D4 GPIO8 SPI0_CE0_N DPI_D4 26 GPIO7 GPIO7 SPI0_CE1_N DPI_D3 GPIO7 SPI0_CE1_N DPI_D3 28 ID_SC ! GPIO1 I2C0_SCL DPI_DE GPIO1 I2C0_SCL DPI_DE 30 GND GND GND 32 GPIO12 PWM0_0 PIO Debug +3 GPIO12 PWM0_0 DPI_D8 ARM_TMS 34 GND GND GND 36 GPIO16 SPI1_CE2_N UART PIO +4 GPIO16 SPI1_CE2_N UART0_CTS UART1_CTS DPI_D12 38 GPIO20 PCM_DIN SPI Clock PIO +4 GPIO20 PCM_DIN SPI1_MOSI GPCLK0 DPI_D16 40 GPIO21 PCM_DOUT SPI Clock PIO +4 GPIO21 PCM_DOUT SPI1_SCLK GPCLK1 DPI_D17 1 3V3 ! 3V3_OUT 3V3_OUT 3 GPIO2 ! GPIO2 I2C1_SDA DPI_VSYNC GPIO2 I2C1_SDA DPI_VSYNC 5 GPIO3 ! GPIO3 I2C1_SCL DPI_HSYNC GPIO3 I2C1_SCL DPI_HSYNC 7 GPIO4 GPCLK0 PIO Debug +3 GPIO4 GPCLK0 DPI_D0 ARM_TDI 9 GND GND GND 11 GPIO17 SPI1_CE1_N UART PIO +4 GPIO17 SPI1_CE1_N UART0_RTS UART1_RTS DPI_D13 13 GPIO27 SD0_DAT3 System Debug PIO +4 GPIO27 SD0_DAT3 SD1_DAT3 ARM_TMS DPI_D23 15 GPIO22 SD0_CLK System Debug PIO +4 GPIO22 SD0_CLK SD1_CLK ARM_TRST DPI_D18 17 3V3 3V3_OUT 3V3_OUT 19 GPIO10 GPIO10 SPI0_MOSI DPI_D6 GPIO10 SPI0_MOSI DPI_D6 21 GPIO9 GPIO9 SPI0_MISO DPI_D5 GPIO9 SPI0_MISO DPI_D5 23 GPIO11 GPIO11 SPI0_SCLK DPI_D7 GPIO11 SPI0_SCLK DPI_D7 25 GND GND GND 27 ID_SD ! GPIO0 I2C0_SDA DPI_PCLK GPIO0 I2C0_SDA DPI_PCLK 29 GPIO5 GPCLK1 PIO Debug +3 GPIO5 GPCLK1 DPI_D1 ARM_TDO 31 GPIO6 GPCLK2 PIO Debug +3 GPIO6 GPCLK2 DPI_D2 ARM_RTCK 33 GPIO13 PWM0_1 PIO Debug +3 GPIO13 PWM0_1 DPI_D9 ARM_TCK 35 GPIO19 PCM_FS PWM SPI PIO +4 GPIO19 PCM_FS PWM0_1 SPI1_MISO DPI_D15 37 GPIO26 SD0_DAT2 System Debug PIO +4 GPIO26 SD0_DAT2 SD1_DAT2 ARM_TDI DPI_D22 39 GND GND GND

Onboard Peripherals & Internal Signals

CYW43455_WIFI_BT System
Chip Pad: GPIO34
Dual-band 802.11ac Wi-Fi on SD1 (GPIO34..39) + Bluetooth 4.2 on PL011 UART0 (GPIO30..33)
RUN_PEN_PADS System
Unpopulated RUN (SoC reset) and PEN (MxL7704 PMIC shutdown) test pads

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