MakerLab
Raspberry PiRaspberry Pi 2 Model B v1.2

Raspberry Pi 2 Model B v1.2: The Quad-Core Powerhouse for Makers

This 2016 iteration of the popular Raspberry Pi 2 Model B features a quad-core ARM Cortex-A7 processor, making it a significant step up in performance for embedded projects.

Raspberry Pi 2 Model B v1.2

The Raspberry Pi 2 Model B v1.2 is a single-board computer that brought substantial performance gains to the Raspberry Pi family upon its release in early 2015, with this specific revision arriving around 2016. It retains the familiar credit-card size and extensive GPIO header of its predecessors but is powered by a significantly more capable Broadcom BCM2836 (later revised to BCM2837 in some v1.2 units) SoC. This upgrade makes it well-suited for more demanding applications than previous models, bridging the gap between basic microcontrollers and full-fledged desktop computers.

At its heart is a quad-core ARM Cortex-A7 processor, clocked at 900MHz. This is a considerable leap from the single-core processors found in earlier Pi models. Coupled with 1GB of LPDDR2 RAM, the Pi 2 v1.2 can handle multitasking and more complex software environments, including running a full desktop operating system like Raspberry Pi OS (formerly Raspbian) with greater fluidity. This makes it an excellent choice for projects that require more processing power, such as basic robotics, media centers, or even simple server applications.

Compared to its predecessor, the Raspberry Pi 2 Model B v1.1, this v1.2 revision primarily features an updated SoC (BCM2837 in some units, though often still referred to as BCM2836) which offers minor improvements. It maintains the same broad compatibility with existing Raspberry Pi accessories and HATs, ensuring a smooth transition for users upgrading from older models. Its blend of processing power, extensive I/O, and affordability cemented its place as a favorite for hobbyists, students, and engineers looking for a versatile and powerful development platform.

The Raspberry Pi 2 Model B v1.2 is ideal for makers who have outgrown the capabilities of simpler microcontrollers like the Arduino or early Raspberry Pi models. It's perfect for projects involving computer vision, machine learning inference, IoT gateways, home automation hubs, or any application where running a Linux-based operating system and performing significant data processing is a requirement. Its robust performance allows for more ambitious projects without sacrificing the accessibility and community support that the Raspberry Pi is known for.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCBroadcom BCM2836 (or BCM2837 in some v1.2 units)
ArchitectureQuad-core ARM Cortex-A7
Clock speed900MHz
Flash / StorageMicroSD card slot (up to 32GB recommended, OS dependent)
RAM / SRAM1GB LPDDR2 SDRAM
Operating voltage3.3V (for I/O logic)
Digital I/O pins40 GPIO pins
Analog / ADCNone (requires external ADC)
PWMYes (software-driven, limited hardware support on specific GPIOs)
Connectivity10/100 Ethernet, Wi-Fi (requires USB dongle), Bluetooth (requires USB dongle)
USB4 x USB 2.0 Type-A ports
Power inputMicro USB (5V, 2A recommended) or GPIO header (5V)
Dimensions85mm x 56mm

Pinout & pin functions

PinFunction
3.3VPower output (3.3V)
5VPower output (5V)
5VPower output (5V)
GNDGround
GNDGround
GPIO2General Purpose Input/Output, I2C SDA
GPIO3General Purpose Input/Output, I2C SCL
GPIO4General Purpose Input/Output
GPIO17General Purpose Input/Output
GPIO27General Purpose Input/Output
GPIO22General Purpose Input/Output, I2C SDA (alternate)
GPIO11General Purpose Input/Output, SPI SCK
GPIO10General Purpose Input/Output, SPI MOSI
GNDGround
GPIO5General Purpose Input/Output
GPIO6General Purpose Input/Output
GPIO13General Purpose Input/Output, PWM (hardware)
GPIO19General Purpose Input/Output, PWM (hardware)
GPIO26General Purpose Input/Output, PWM (hardware)
GPIO7General Purpose Input/Output, SPI MISO
GPIO8General Purpose Input/Output, SPI CS
GPIO25General Purpose Input/Output
GPIO24General Purpose Input/Output
GNDGround
GPIO23General Purpose Input/Output
GPIO18General Purpose Input/Output, PWM (hardware)
GPIO15General Purpose Input/Output
GPIO14General Purpose Input/Output, UART TX
GPIO30General Purpose Input/Output, UART RX (on later models, check revision)
GPIO31General Purpose Input/Output, UART RX (on later models, check revision)
GNDGround
GPIO9General Purpose Input/Output, SPI CS (alternate)
GPIO28General Purpose Input/Output
GPIO29General Purpose Input/Output
GPIO32General Purpose Input/Output
GPIO33General Purpose Input/Output
RUNSystem Reset (active low)
ID_SDI2C EEPROM interface
ID_SCI2C EEPROM interface

Wiring & circuit basics

Powering the Raspberry Pi 2 Model B v1.2 requires a stable 5V supply capable of delivering at least 2A, typically via its Micro USB port. Using a lower-rated power supply can lead to instability, brownouts, and data corruption, especially when multiple USB devices are connected or the system is under heavy load. The board has onboard regulators to step down the 5V input to the 3.3V required for its core components and I/O logic. It's crucial to understand that the GPIO pins operate at 3.3V logic levels. Connecting 5V signals directly to these pins can permanently damage the Raspberry Pi. When interfacing with 5V-tolerant components, a level shifter is necessary.

For a simple LED project, connect the longer leg (anode) of an LED to a current-limiting resistor (typically 220-330 ohms for a standard LED) and then to a chosen GPIO pin, such as GPIO17. Connect the shorter leg (cathode) of the LED directly to a GND pin on the header. When the GPIO pin is set to HIGH (3.3V), current flows through the resistor and LED, illuminating it. When set to LOW (0V), the LED turns off.

When connecting an I2C sensor, such as a BME280 environmental sensor, you'll typically need to connect its VCC pin to a 3.3V pin on the Raspberry Pi, its GND pin to a GND pin, its SDA pin to the SDA pin on the header (GPIO2), and its SCL pin to the SCL pin on the header (GPIO3). Ensure your sensor is 3.3V compatible or use a level shifter if it operates at 5V. The Raspberry Pi OS provides libraries to easily communicate with I2C devices.

Programming & getting started

The Raspberry Pi 2 Model B v1.2 runs a full Linux operating system, most commonly Raspberry Pi OS (formerly Raspbian). This opens up a wide range of programming options. For Python development, the default IDE is often Thonny, which comes pre-installed with Raspberry Pi OS Lite or Desktop. You can also use standard Python interpreters and editors like `vim` or `nano` directly in the terminal. For more complex projects or C/C++ development, you can use tools like `gcc` directly on the Pi or cross-compile on a more powerful computer.

To upload your first program, assuming you have Raspberry Pi OS installed and configured with network access: 1. Open a terminal. 2. If using Python, create a new file (e.g., `blink.py`) using `nano blink.py`. 3. Write your Python code (e.g., to blink an LED connected to GPIO17). 4. Save the file (Ctrl+X, Y, Enter). 5. Run the script using `sudo python3 blink.py`. The `sudo` command is often required for direct GPIO access. For other languages or IDEs like PlatformIO, the setup and upload process will involve installing specific extensions or toolchains and using their respective build/upload commands.

Project ideas

Home Media CenterTransform your Pi 2 v1.2 into a powerful media player using software like Kodi or Plex. This project leverages the quad-core processor for smooth video playback and utilizes HDMI output. No GPIO pins are strictly necessary, but can be used for hardware controls.
Network Attached Storage (NAS)Set up a NAS by connecting USB hard drives to the Pi 2 v1.2 and installing software like Samba or OpenMediaVault. This project utilizes the Ethernet port and USB ports, teaching file sharing and network configuration.
Weather Station with Data LoggingInterface with sensors (e.g., BME280 for temp/humidity/pressure) via I2C and log data to a file or database. This project uses the I2C pins (GPIO2, GPIO3) and teaches sensor interfacing and data management.
Basic Robotics ControllerUse the GPIO pins to control motors via motor driver boards and read sensor inputs (e.g., distance sensors). The quad-core processor allows for more complex movement algorithms and sensor fusion than simpler boards.
IoT GatewayConnect various sensors and devices (e.g., via Bluetooth or USB dongles) and act as a central hub to collect and process data before sending it to the cloud. This project utilizes USB ports, Wi-Fi/Bluetooth (if added), and GPIO for sensor integration.
Retro Gaming ConsoleInstall RetroPie or similar software to emulate classic video game consoles. The Pi 2 v1.2's performance is sufficient for many 8-bit and 16-bit era games, utilizing HDMI and USB ports for controllers.

Buying tips & gotchas

When purchasing a Raspberry Pi 2 Model B v1.2, be aware that it is an older model and may be harder to find new. Look for reputable sellers or consider used options, but check for physical damage. Avoid unbranded or suspiciously cheap 'Raspberry Pi' boards, as they may be clones with inferior performance or compatibility. Ensure you purchase a good quality MicroSD card (Class 10 or UHS-I, 16GB or larger recommended) for the operating system, as slow storage significantly impacts performance. A reliable 5V, 2A power supply is essential; do not skimp here. A case is also highly recommended to protect the board, especially if it will be used in a project environment.