Safe GPIO pins
Caution: Broadcom processors on Raspberry Pi boards operate strictly at 3.3V logic and are NOT 5V tolerant! Applying 5V to any GPIO pin will permanently destroy the SoC. Maximum current per GPIO is 16 mA, and aggregate draw from all 3.3V pins should not exceed 50 mA.
ADC and analog pins
Raspberry Pi boards have no native Analog-to-Digital Converters (ADC) on the 40-pin GPIO header. To read analog sensors, use external ADC converters connected via I2C or SPI (e.g., ADS1115 or MCP3008).
I2C, SPI and UART pins
Core interfaces: I2C1 on Pin 3 (SDA) & Pin 5 (SCL) with onboard 1.8 kΩ pull-ups; SPI0 on Pins 19 (MOSI), 21 (MISO), 23 (SCLK), 24 (CE0), 26 (CE1); Primary UART0 on Pins 8 (TXD) & 10 (RXD); Hardware PWM on GPIO 12, 13, 18, 19; I2S/PCM audio on GPIO 18 (CLK), 19 (FS), 20 (DIN), 21 (DOUT).
Strapping and boot pins
Pins 27 (ID_SD) and 28 (ID_SC) are dedicated to the HAT ID EEPROM on I2C0. They are reserved by the official HAT specification for hardware auto-identification at boot and must never be used as general-purpose GPIO or user sensors.
Input-only pins
All 28 BCM GPIO lines support software-configurable internal pull-up and pull-down resistors, edge-triggered interrupts, and drive strength configuration from 2 to 16 mA per pin.