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 CYW43455 BCM2837B0 1.4GHz 64-BIT CSI CAMERA HDMI GbE ETH POE USB 2.0 Width compressed (not to scale) — click to show full true-scale width DSI DISPLAY CYW43455 BCM2837B0 1.4GHz 64-BIT POE LAN7515 CSI CAMERA HDMI GbE ETH 2x USB 2.0 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)
POE_HEADER_J14 Power
4-pin 2.54 mm PoE header (TR00..TR03 Ethernet transformer taps for 802.3af PoE HAT)
RUN_PEN_J2 System
2-pin header with RUN (reset to GND) and PEN (MxL7704 PMIC enable — note adjacent pin is PEN, NOT GND!)

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