Raspberry Pi – GPIO Connector Overview (2025 Beginner’s Guide to Pins & Projects)
Introduction – What Is the GPIO Connector on Raspberry Pi?
The GPIO (General Purpose Input/Output) header on Raspberry Pi is what turns it from a mini-computer into a powerful physical computing platform. It lets you interface with LEDs, sensors, motors, buttons, and other electronic components directly through Python or shell scripts.
In this guide, you’ll learn:
- GPIO layout and pin numbering schemes
- Different pin types (power, ground, data)
- Safe voltage levels and precautions
- Tools and libraries to use GPIO
- Example project: Blinking an LED
GPIO Pin Header – What It Looks Like
Most Raspberry Pi models (Pi 2/3/4/Zero/5) include a 40-pin GPIO header with the following layout:
| GPIO Pin Layout (Top View) |
|---|
| 1️⃣ Pin 1 = 3.3V |
| 2️⃣ Pin 2 = 5V |
| 3️⃣ Pin 3 = GPIO2 (SDA1, I2C) |
| 4️⃣ Pin 4 = 5V |
| 5️⃣ Pin 5 = GPIO3 (SCL1, I2C) |
| … and so on up to Pin 40 |
Pins include:
- Power (3.3V, 5V)
- Ground (GND)
- Digital I/O Pins (GPIO)
- Special interfaces (I2C, SPI, UART, PWM)
GPIO Pin Numbering – Two Modes
There are two ways to number pins:
| Mode | Description | Use In Code |
|---|---|---|
| Board | Physical pin numbers (1–40) | GPIO.setmode(GPIO.BOARD) |
| BCM | Broadcom SoC numbers (e.g., GPIO17) | GPIO.setmode(GPIO.BCM) |
BCM mode is preferred in most Python libraries and tutorials.
GPIO Pin Types – Categorized Table
| Type | Pins (Typical) | Description |
|---|---|---|
| Power | 1 (3.3V), 2/4 (5V), 17 (3.3V) | Provide voltage to sensors/LEDs |
| Ground (GND) | 6, 9, 14, 20, 25, 30, 34, 39 | Ground reference |
| GPIO (Digital) | 7, 11, 13, 15, 16, 18, etc. | Input/output for sensors, buttons, etc. |
| PWM | 12, 32, 33 | For motor/LED dimming (software PWM) |
| I2C | 3 (SDA), 5 (SCL) | Interfacing with I2C sensors/modules |
| SPI | 19 (MOSI), 21 (MISO), 23 (SCLK) | High-speed communication |
| UART | 8 (TXD), 10 (RXD) | Serial communication (e.g., GPS modules) |
GPIO Voltage Limits – Stay Safe
- GPIO pins are 3.3V logic
- Do NOT connect 5V directly to GPIO pins
- Always use resistors with LEDs, level shifters with 5V components
Example:
Use 330Ω resistor with LED to avoid overloading the GPIO
Access GPIO with Python – Setup
Install GPIO library:
sudo apt update
sudo apt install python3-gpiozero
Import in your script:
from gpiozero import LED
from time import sleep
led = LED(17) # GPIO17 (BCM mode)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
Run it:
python3 led_blink.py
This code blinks an LED connected to GPIO17 every second.
Tools to Visualize GPIO Pins
| Tool | Use Case |
|---|---|
pinout | Built-in command for GPIO layout |
| pinout.xyz | Visual web-based GPIO map |
| GPIO Extension Board | Makes pin access safer & easier |
GPIO Troubleshooting Tips
- LED not lighting up? ➜ Check polarity and GPIO number
- Pi shuts down? ➜ You may have shorted 5V to GND
- PWM not working? ➜ Make sure you’re using correct PWM-capable pins
Beginner-Friendly Project – Pushbutton + LED
| Component | Description |
|---|---|
| GPIO17 | Connect to LED (via 330Ω) |
| GPIO18 | Connect to pushbutton |
Python Code:
from gpiozero import LED, Button
from signal import pause
led = LED(17)
button = Button(18)
button.when_pressed = led.on
button.when_released = led.off
pause()
Press button ➜ LED turns on. Release ➜ LED turns off.
Summary – Recap & Next Steps
GPIO is where software meets hardware on Raspberry Pi. Whether you’re controlling LEDs, motors, or sensors, learning how to use GPIO pins opens up a world of interactive electronics.
Key takeaways:
- GPIO header includes power, ground, digital, and special function pins
- Use
gpiozeroorRPi.GPIOto control hardware via Python - Avoid overvoltage (only 3.3V logic!) and short circuits
- Try basic projects like blinking LEDs or pushbuttons to start
Real-world relevance: GPIO is used in robotics, automation, wearables, smart home setups, and STEM education.
FAQs – Raspberry Pi GPIO Connector
How many GPIO pins does Raspberry Pi have?
26 GPIO-capable pins on the 40-pin header (including power, GND, I2C, SPI, UART, etc.)
What’s the safest way to connect hardware to GPIO?
Use resistors, transistors, or logic level shifters. Avoid direct 5V inputs to GPIO.
Can I use GPIO in Bash or other languages?
Yes. GPIO can be controlled via shell scripts, Node.js, or C/C++ using libraries like wiringPi.
Are all GPIO pins the same?
No. Some support PWM, I2C, SPI, or UART. Refer to pinout maps to avoid confusion.
How can I test if GPIO is working?
Use the gpiozero Python library or command-line tools like raspi-gpio or pinout.
Share Now :
