MakerLab
Raspberry PiRaspberry Pi 3 Model B

Raspberry Pi 3 Model B: A Deep Dive for Makers and Engineers

The Raspberry Pi 3 Model B brought significant performance and connectivity upgrades to the popular single-board computer family, making it a versatile platform for a wide range of projects.

Raspberry Pi 3 Model B

The Raspberry Pi 3 Model B, released in February 2016, represented a substantial leap forward for the Raspberry Pi Foundation's single-board computer line. It was designed to offer a more powerful and connected computing experience for education, hobbyists, and professionals alike. This iteration moved beyond the basic computing capabilities of its predecessors, integrating features that made it suitable for more demanding applications, including embedded systems development, media centers, and even light desktop use.

At its heart, the Raspberry Pi 3 Model B is powered by the Broadcom BCM2837 System-on-Chip (SoC). This SoC features a 64-bit quad-core ARM Cortex-A53 processor running at 1.2 GHz. This was a significant upgrade from the dual-core Cortex-A7 in the Raspberry Pi 2 Model B, providing a noticeable boost in processing power. The BCM2837 also integrates a VideoCore IV GPU, which handles graphics and video output, enabling smooth HD playback and basic graphical interfaces.

Positioned as a mid-range board in the Raspberry Pi family at its release, the 3 Model B offered a compelling balance of performance, features, and cost. It retained the familiar 40-pin GPIO header, ensuring backward compatibility with many existing HATs and accessories, while introducing onboard Wi-Fi and Bluetooth connectivity. This integrated wireless capability eliminated the need for external dongles, simplifying builds and reducing costs for connected projects. It remains a popular choice for makers who need a capable, low-cost computer for projects requiring networking and moderate processing power.

The Raspberry Pi 3 Model B is ideal for makers, students, and embedded engineers looking for a robust platform that bridges the gap between microcontrollers like Arduino and full-fledged PCs. Its Linux-based operating system (Raspberry Pi OS, formerly Raspbian) provides a familiar environment for software development, while the GPIO pins offer direct hardware interaction. It's well-suited for projects involving IoT, robotics, home automation, learning programming, and experimenting with embedded Linux systems.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCBroadcom BCM2837
Architecture64-bit ARM Cortex-A53
Clock speed1.2 GHz (quad-core)
Flash / StorageMicroSD card slot (up to 32GB officially recommended, but larger cards often work)
RAM / SRAM1 GB LPDDR2 SDRAM
Operating voltage3.3V (for GPIO and onboard peripherals)
Digital I/O pins40 GPIO pins (programmable)
Analog / ADCNone (requires external ADC module)
PWMUp to 6 hardware PWM channels (shared with other functions)
ConnectivityOnboard 802.11 b/g/n Wi-Fi, Bluetooth 4.1 (BLE)
USB4 x USB 2.0 Type-A ports
Power input5V DC via Micro USB connector (minimum 2.5A recommended) or 5V via GPIO header
Dimensions85mm x 56mm

Pinout & pin functions

PinFunction
3.3V3.3V Power Output
5V5V Power Output
5V5V Power Output
GNDGround
GPIO2I2C SDA
GNDGround
GPIO3I2C SCL
GNDGround
GPIO4General Purpose I/O
GPIO17General Purpose I/O
GNDGround
GPIO27General Purpose I/O
GPIO22General Purpose I/O
GNDGround
GPIO18PWM0, I2S PCM CLK
GPIO23General Purpose I/O
GNDGround
GPIO24General Purpose I/O
GPIO25PWM1, I2S PCM FSYNC
GNDGround
GPIO8SPI MOSI
GPIO7SPI CE1
GNDGround
GPIO9SPI MISO
GPIO11SPI SCLK
GNDGround
GPIO5General Purpose I/O
GPIO6General Purpose I/O
GNDGround
GPIO12PWM0
GPIO13PWM1
GNDGround
GPIO19PWM0, I2S PCM TX
GPIO16General Purpose I/O
GNDGround
GPIO26General Purpose I/O
GPIO20I2S PCM DIN
GNDGround
GPIO21I2S PCM DOUT
GPIO22General Purpose I/O
GNDGround
GPIO28I2C SDA (alternate)
GPIO29I2C SCL (alternate)
GNDGround
GPIO30General Purpose I/O
GPIO31General Purpose I/O
GNDGround
GPIO14UART TXD
GPIO15UART RXD
GNDGround
ID_SDI2C EEPROM Data
ID_SCI2C EEPROM Clock
GNDGround
GPIO1General Purpose I/O
GPIO0General Purpose I/O
GNDGround
GPIO10SPI CS
GPIO9SPI MISO
GNDGround
GPIO11SPI SCLK
GPIO7SPI CE0
GNDGround
GPIO8SPI MOSI
GPIO17General Purpose I/O
GNDGround
GPIO18PWM0, I2S PCM CLK
GPIO27General Purpose I/O
GNDGround
GPIO22General Purpose I/O
GPIO23General Purpose I/O
GNDGround
GPIO24General Purpose I/O
GPIO25PWM1, I2S PCM FSYNC
GNDGround
GPIO5General Purpose I/O
GPIO12PWM0
GNDGround
GPIO6General Purpose I/O
GPIO13PWM1
GNDGround
GPIO19PWM0, I2S PCM TX
GPIO16General Purpose I/O
GNDGround
GPIO26General Purpose I/O
GPIO20I2S PCM DIN
GNDGround
GPIO21I2S PCM DOUT
GPIO28I2C SDA (alternate)
GNDGround
GPIO29I2C SCL (alternate)
GPIO30General Purpose I/O
GNDGround
GPIO31General Purpose I/O
GPIO14UART TXD
GNDGround
GPIO15UART RXD
GPIO2I2C SDA
GNDGround
GPIO3I2C SCL
GPIO0General Purpose I/O
GNDGround
GPIO1General Purpose I/O
GPIO4General Purpose I/O
GNDGround
GPIO17General Purpose I/O
GPIO27General Purpose I/O
GNDGround
GPIO22General Purpose I/O
GPIO10SPI CS
GNDGround
GPIO9SPI MISO
GPIO11SPI SCLK
GNDGround
GPIO8SPI MOSI
GPIO7SPI CE1
GNDGround
GPIO5General Purpose I/O
GPIO6General Purpose I/O
GNDGround
GPIO12PWM0
GPIO13PWM1
GNDGround
GPIO19PWM0, I2S PCM TX
GPIO16General Purpose I/O
GNDGround
GPIO26General Purpose I/O
GPIO20I2S PCM DIN
GNDGround
GPIO21I2S PCM DOUT
GPIO23General Purpose I/O
GNDGround
GPIO24General Purpose I/O
GPIO25PWM1, I2S PCM FSYNC
GNDGround
GPIO31General Purpose I/O
GPIO14UART TXD
GNDGround
GPIO15UART RXD
GPIO30General Purpose I/O
GNDGround
GPIO28I2C SDA (alternate)
GPIO29I2C SCL (alternate)

Wiring & circuit basics

Powering the Raspberry Pi 3 Model B requires a stable 5V DC supply. The primary method is through the Micro USB port, which is rated for a minimum of 2.5A to ensure stable operation, especially when peripherals are connected. Alternatively, power can be supplied via the 5V pins on the GPIO header, but this bypasses the onboard power regulation and requires careful attention to voltage and current. It is crucial to use a high-quality power supply designed for Raspberry Pi or similar devices to avoid voltage drops or instability, which can lead to system crashes or SD card corruption.

The Raspberry Pi 3 Model B operates at a logic level of 3.3V. This means that any sensors, LEDs, or other components directly connected to the GPIO pins must be compatible with 3.3V logic. Connecting 5V devices directly to the GPIO pins without level shifting can permanently damage the Raspberry Pi. For example, to safely connect an LED, you would connect it in series with a current-limiting resistor (typically 220-330 ohms for standard LEDs) between a GPIO pin and ground, or between a 3.3V pin and ground. The resistor value should be calculated based on the LED's forward voltage and current requirements to prevent overcurrent.

For connecting more complex peripherals like I2C sensors (e.g., an MPU6050 accelerometer/gyroscope), you would use the dedicated I2C pins. For the Raspberry Pi 3 Model B, these are typically GPIO2 (SDA) and GPIO3 (SCL). You would connect the sensor's SDA pin to GPIO2, its SCL pin to GPIO3, its VCC pin to a 3.3V pin on the Raspberry Pi, and its GND pin to a ground pin. Some I2C devices may require a pull-up resistor on the SDA and SCL lines, although many modern sensors include these onboard or the Raspberry Pi OS has them enabled by default in software. Always consult the sensor's datasheet for specific wiring requirements.

Programming & getting started

The Raspberry Pi 3 Model B primarily runs Raspberry Pi OS (a Debian-based Linux distribution), offering a wide range of programming options. For general-purpose programming, Python is extremely popular and well-supported, with libraries like RPi.GPIO or gpiozero making hardware interaction straightforward. You can write Python scripts directly on the Pi or remotely. For more system-level development or if you prefer a C/C++ environment, you can use tools like GCC and libraries like wiringPi (though it's now deprecated, alternatives exist) or the official Broadcom VCHIQ/BCMHost APIs. For embedded C development, PlatformIO is an excellent choice, supporting cross-compilation and integrated debugging.

To upload your first program (e.g., a Python script to blink an LED), you would typically connect to your Raspberry Pi 3 Model B via SSH after booting it with Raspberry Pi OS. Once logged in, you can write a Python script using a text editor like nano. For instance, to blink an LED connected to GPIO17: `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)`. Save this as `blink.py`. Then, run it from the terminal using `sudo python3 blink.py`. The `sudo` is often required for direct GPIO access.

Project ideas

Networked Weather StationBuild a weather station using sensors for temperature, humidity, and pressure, connected to the Pi's GPIO pins. The Pi 3 Model B's onboard Wi-Fi allows it to send data to a cloud service or web server, enabling remote monitoring. This project teaches sensor interfacing, data logging, and network communication.
Home Automation HubUse the Raspberry Pi 3 Model B as a central hub for controlling smart home devices. It can interface with relays to control lights, read sensors for security, and communicate wirelessly via Wi-Fi or Bluetooth with other devices. This project explores IoT protocols, server-side programming, and system integration.
Robotics PlatformCombine the Pi 3 Model B with motor drivers and sensors to create a mobile robot. The quad-core processor is capable of handling computer vision tasks (with a camera module) for navigation or object recognition, while the GPIO pins control motors and read encoders. This project covers motor control, sensor fusion, and potentially basic AI.
Retro Gaming ConsoleWith its improved processing power and HDMI output, the Pi 3 Model B is excellent for emulating retro game consoles. Install RetroPie or similar software, connect USB controllers, and relive classic games. This project focuses on OS installation, software configuration, and understanding hardware capabilities for multimedia.
Web Server for IoT DataHost a simple web server directly on the Raspberry Pi 3 Model B to display data from connected sensors. Using Flask or Django, you can create a dynamic interface accessible from any device on your local network. This project teaches web development basics and how to serve dynamic content from embedded hardware.
GPIO-Controlled LED Matrix DisplayDrive a large LED matrix display using the Pi's GPIO pins. This requires careful multiplexing and potentially shift registers or dedicated drivers, but the Pi 3 Model B has enough processing power to manage the refresh rates for animated graphics or text. This project delves into low-level hardware control and efficient data management.

Buying tips & gotchas

When purchasing a Raspberry Pi 3 Model B, be aware that it has been superseded by newer models; however, it remains a capable and affordable option. Look for reputable sellers to avoid counterfeit boards, which can have performance issues or lack proper certification. Ensure you buy a quality Micro SD card (Class 10 or higher, 16GB or more recommended) as it is critical for system stability and speed. A good quality 5V 2.5A power supply is essential; using an underpowered phone charger can lead to unpredictable behavior. Accessories like a heatsink are advisable if the Pi will be under heavy load for extended periods, though active cooling is rarely necessary for typical use cases.