Raspberry Pi โ Single-Board Computer Guide
Last reviewed: 2026-05-29
The Raspberry Pi is a series of small single-board computers (SBCs) developed by the Raspberry Pi Foundation. Unlike microcontrollers (Arduino, ESP32), the Pi runs a full Linux operating system and supports general-purpose computing alongside GPIO-based hardware projects.
Overview
Raspberry Pi boards use ARM-based processors (Broadcom SoCs), run Linux (Raspberry Pi OS, Ubuntu, etc.), and provide: - Full desktop computing capability - 40-pin GPIO header for electronics projects - USB, HDMI, Ethernet, Wi-Fi, Bluetooth - Camera and display interfaces (CSI, DSI) - PCIe on newer models (Pi 5)
This makes them ideal for servers, media centers, home automation controllers, robotics, and educational computing.
Training Content
Raspberry Pi Models
| Model | SoC | RAM | Form Factor | Key Features |
|---|---|---|---|---|
| Pi 5 | BCM2712 (Cortex-A76) | 2/4/8 GB | Standard | PCIe 2.0, USB 3.0, RP1 I/O chip |
| Pi 4 B | BCM2711 (Cortex-A72) | 1/2/4/8 GB | Standard | USB-C power, dual HDMI 4K |
| Pi 3 B+ | BCM2837B0 (Cortex-A53) | 1 GB | Standard | Built-in Wi-Fi/BT, PoE support |
| Pi Zero 2 W | BCM2710A1 (Cortex-A53) | 512 MB | Miniature | 64-bit, Wi-Fi/BT, $15 |
| Pi Pico | RP2040 (Dual Cortex-M0+) | 264 KB RAM | Microcontroller | $4 MCU, C/C++/MicroPython |
GPIO Header (40-Pin)
The Pi's 40-pin GPIO header provides: - Digital I/O pins (3.3V logic โ not 5V tolerant!) - IยฒC bus (SDA/SCL) โ sensors, OLEDs, ADCs - SPI bus (MOSI/MISO/SCLK/CE) โ displays, DACs - UART (TX/RX) โ serial console, GPS, etc. - PWM โ servo motors, LED dimming - Power pins โ 3.3V, 5V, GND
โ ๏ธ Warning: Pi GPIO pins are 3.3V only, unlike Arduino's 5V. Connecting 5V to a GPIO pin can destroy the Pi.
Common Use Cases
| Use Case | Description |
|---|---|
| Home Server | Pi-hole DNS, NAS, web server, Home Assistant |
| Media Center | Kodi / OSMC for streaming and local media |
| IoT Gateway | MQTT broker, sensor aggregation, REST API |
| Retro Gaming | RetroPie / RecalBox for emulation |
| Robotics | Motor control, camera vision, ROS |
| Learning | Linux sysadmin, Python, electronics |
Initial Setup
- Flash Raspberry Pi OS to an SD card (use Raspberry Pi Imager)
- Insert SD card, connect power, HDMI, keyboard/mouse
- Run
sudo raspi-configto: - Enable SSH
- Enable IยฒC / SPI / UART (under Interface Options)
- Expand filesystem (auto on modern OS)
- Set locale, timezone, Wi-Fi
- Update:
sudo apt update && sudo apt upgrade -y
GPIO Programming
# Python (RPi.GPIO) โ Blink an LED
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
while True:
GPIO.output(17, GPIO.HIGH)
time.sleep(1)
GPIO.output(17, GPIO.LOW)
time.sleep(1)
Alternative libraries: gpiozero (higher-level, easier), wiringPi (C/C++), pigpio (daemon-based, PWM support).
Resources
- Raspberry Pi Documentation
- Pinout.xyz โ Interactive GPIO reference
- Raspberry Pi OS (64-bit) recommended for Pi 3B+/4/5