The Raspberry Pi 3 (Model B and B+) utilizes a standardized 40-pin GPIO header. Pin 1 is the 3.3V power pin located closest to the SD card slot. While the Pi 4 and Pi 5 dominate new deployments in 2026, the Pi 3 remains heavily installed in legacy industrial control panels, home automation hubs, and long-term hobbyist projects. Below is the complete physical and BCM (Broadcom) pin mapping, followed by critical wiring and troubleshooting protocols.

The Complete Raspberry Pi 3 Pinout GPIO Table

The BCM2837 (and BCM2837B0 on the B+) chip maps physical pins to internal GPIO numbers. Always use the BCM numbering in your Python/C code, but reference the Physical pin when wiring. For deeper hardware specifications, consult the official Raspberry Pi hardware documentation.

PhysicalBCMNameFunction / Notes
1-3V33.3V Power (Max 50mA draw)
2-5V5V Power (Input from USB/adapter)
32SDA1I2C Data (Hardware 1.8k pull-up)
4-5V5V Power
53SCL1I2C Clock (Hardware 1.8k pull-up)
6-GNDGround
74GPIO4General Purpose / 1-Wire default
814TXDUART Transmit (3.3V logic)
9-GNDGround
1015RXDUART Receive (3.3V logic)
1117GPIO17General Purpose
1218GPIO18PWM0 (Hardware PWM)
1327GPIO27General Purpose
14-GNDGround
1522GPIO22General Purpose
1623GPIO23General Purpose
17-3V33.3V Power
1824GPIO24General Purpose
1910MOSISPI0 MOSI
20-GNDGround
219MISOSPI0 MISO
2225GPIO25General Purpose
2311SCLKSPI0 SCLK
248CE0SPI0 Chip Select 0
25-GNDGround
267CE1SPI0 Chip Select 1
270ID_SDHAT ID EEPROM Data (Do not use)
281ID_SCHAT ID EEPROM Clock (Do not use)
295GPIO5General Purpose
30-GNDGround
316GPIO6General Purpose
3212GPIO12PWM0 (Alternate)
3313GPIO13PWM1 (Hardware PWM)
34-GNDGround
3519MISOSPI1 MISO / PCM Frame Sync
3616GPIO16General Purpose
3726GPIO26General Purpose
3820MOSISPI1 MOSI / PCM Data In
39-GNDGround
4021SCLKSPI1 SCLK / PCM Clock

GPIO Harness Wire Color Standards (IEC vs. NEC vs. Legacy)

When building custom wiring harnesses or permanent terminal block adapters for the Pi 3, relying on random Dupont jumper wire colors leads to catastrophic debugging sessions. Professional embedded engineers follow regional DC wiring standards. The interactive diagrams on Pinout.xyz are excellent for software mapping, but physical harness fabrication requires adherence to color codes.

Below is the comparison of how to color-code your 3.3V, 5V, Ground, and Signal wires depending on your region and the standard your facility enforces.

FunctionIEC 60446 (EU/UK Modern)NEC DC (US Standard)Old UK (Pre-2004 DC)Hobbyist Default
5V PowerBrownRedRedRed
3.3V PowerOrangeYellowYellowOrange
Ground (GND)BlueBlack or GreyBlackBlack
Signal / DataBlack or GreyBlue or WhiteGreen or BlueYellow / Green
Protective EarthGreen/Yellow StripeGreen/Yellow StripeGreenN/A
Warning: Logic Level Mismatch. The Raspberry Pi 3 BCM2837 GPIO pins operate at 3.3V logic and are not 5V tolerant. Feeding a 5V signal into any GPIO pin (including UART RX on Pin 10) will permanently destroy the SoC. If your sensor or microcontroller outputs 5V, you must use a bidirectional logic level shifter or a voltage divider (e.g., 2kΩ and 3.3kΩ resistors) before connecting to the Pi.

Rows People Get Wrong & Faded Silkscreen Recovery

Even experienced makers misinterpret specific pin functions or struggle when the board's physical markings are obscured. Here is how to navigate the most common pitfalls and safely identify pins when the silkscreen is missing.

The Rows People Get Wrong

  • Pins 3 & 5 (I2C SDA/SCL): These pins have hardware 1.8kΩ pull-up resistors tied to the 3.3V rail on the Pi 3 board. If you are wiring an I2C device that already has onboard pull-ups, you create a parallel resistance that can skew the bus voltage. More importantly, never drive these pins as standard push-pull GPIO outputs; you will short the 3.3V rail through the internal pull-up.
  • Pins 27 & 28 (ID_SD / ID_SC): These are reserved exclusively for reading the HAT (Hardware Attached on Top) identification EEPROM. They are connected to the I2C0 bus. Do not use them for general-purpose sensors, or you will cause boot-time enumeration errors when a HAT is attached.
  • Pins 8 & 10 (UART TX/RX): By default, the Pi 3 routes the primary serial console to these pins. If you are trying to use them for an external microcontroller (like an Arduino) and get no data, ensure you have disabled the serial console in raspi-config while keeping the serial hardware port enabled.

Safe Interpretation When Markings Are Faded or Missing

In industrial environments, flux residue, heat, and time can obliterate the white silkscreen text on the PCB. If you are handed a bare Pi 3 board with no visible pin labels, follow this safe recovery procedure:

  1. Locate Pin 1 via the Pad Shape: Look closely at the copper pads at the base of the header pins. Pin 1 is the only pad that is square. All other 39 pins have round pads. Pin 1 is always the 3.3V power pin.
  2. Use Physical Landmarks: Pin 1 is located on the side of the header closest to the SD card slot, and it is the pin closest to the corner of the board. Pin 2 (5V) is directly across from it on the opposite row.
  3. Verify Ground with Continuity: Before applying power, set your multimeter to continuity mode. Probe your suspected Ground pins (Pins 6, 9, 14, 20, 25, 30, 34, 39) against the metal shielding of the USB ports. They should read near 0.0Ω.
  4. Never Blind-Probe Voltage: If the board is powered and you are unsure of the layout, do not probe with a multimeter while looking at the voltage reading. A slip of the probe tip bridging Pin 2 (5V) and Pin 3 (3.3V I2C) will instantly fry the I2C bus and potentially the main PMIC. Always map the board with continuity checks while de-energized.