Skip to content

🖥️ Purple Pi OH2

In Stock  Single Board Computer  RK3576 · 6 TOPS NPU

Industrial-grade edge computing with built-in AI acceleration. The Purple Pi OH2 is powered by the Rockchip RK3576 octa-core SoC (8nm), delivering up to 16GB LPDDR4 memory, a 6 TOPS NPU, 8K HDMI 2.1 output, triple MIPI CSI cameras, and dual Gigabit Ethernet — all in a compact SBC built for demanding industrial and embedded deployments.


Quick Start

⚡ Up and running in 5 steps

1. Flash Debian, Ubuntu, or Buildroot to eMMC or a microSD card 2. Connect power (DC 9–24V barrel jack) 3. Attach HDMI display and USB keyboard/mouse 4. SSH in or use the desktop — default user: `root` 5. Connect Ethernet — DHCP assigns an IP automatically

Main Board Overview

Front View

Front View

Back View

Back View


Technical Specifications

Processor & Memory
SoCRockchip RK3576 (8nm)
CPU4× Cortex-A72 @ 2.2GHz + 4× Cortex-A53
NPU6 TOPS neural processing unit
RAMUp to 16GB LPDDR4
Storage
eMMCOnboard eMMC 5.1 (OS bootable)
microSDTF card slot — SDIO 3.0 (J4)
M.2 NVMeM-Key 2280, PCIe 2.1 (J6)
Display Output
HDMIHDMI 2.1 — up to 8K@60fps (J14)
DisplayPortDP 1.4 via USB-C — up to 4K@30fps (J7)
MIPI DSI40-pin FPC 0.5mm connector (J15)
Camera Input
MIPI CSI3× independent interfaces (J19, J20, J25)
Connectivity
Ethernet2× Gigabit RJ45 (eth0: J21, eth1: J22)
WiFi / BTAP6256 module (antenna FPC included)
USB 3.2 Gen11× Type-C OTG + DP Alt Mode (J7)
USB 3.02× Type-A stacked (J10)
USB 2.02× PH2.0-4P headers (J8, J9)
Expansion (40-pin Header)
GPIO16× programmable GPIOs
UART3× TTL UART channels
I2C2× channels (I2C4: pins 3/5 · I2C7: pins 27/28)
SPI1× channel (/dev/spidev0.x)
CAN Bus2× CAN channels
ADC1× analog input header (J26)
Audio
CodecES8388
SpeakerPH2.0-4P dual channel, 4Ω 3W/ch (J13)
Headphone3.5mm 4-pole CTIA jack (J12)
MicrophoneMX1.25T-2P connector (J11)
Other
Debug UARTUSB-C (CH340 chip, J5) at 1.5Mbps
RTCBattery holder for CR1220 coin cell (J23)
FanPH2.0-2P 5V fan header (J3)
Power & OS
Input VoltageDC 9–24V (barrel jack)
Supported OSDebian · Ubuntu · Buildroot

Connectivity

Ethernet

The Purple Pi OH2 has two native Gigabit Ethernet ports (eth0 and eth1). Both support automatic DHCP — just plug in a cable and the board is network-ready.

# Check IP address assigned by DHCP
ip addr show eth0

# Set a static IP
nmcli con mod "Wired connection 1" ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8" ipv4.method manual
nmcli con up "Wired connection 1"

WiFi

# Check interface status
nmcli device

# List available networks
nmcli device wifi list

# Connect to a network
nmcli device wifi connect "YourSSID" password "YourPassword"

# Confirm connection
nmcli connection show --active
ip addr show wlan0

Antenna required

Always connect the included WiFi/BT antenna FPC for reliable wireless reception.

Bluetooth

bluetoothctl power on          # Turn on Bluetooth
bluetoothctl scan on           # Scan for devices
bluetoothctl devices           # List found devices
bluetoothctl trust  XX:XX:XX:XX:XX:XX   # Trust a device
bluetoothctl pair   XX:XX:XX:XX:XX:XX   # Pair
bluetoothctl connect XX:XX:XX:XX:XX:XX  # Connect

GPIO (40-pin Header)

GPIO Pinout

The 40-pin header is Raspberry Pi HAT-compatible and exposes 16 GPIOs, UART, I2C, SPI, and CAN. All GPIO logic is 3.3V.

# Install GPIO tools
sudo apt update && sudo apt install -y libgpiod-dev gpiod

# Set pin HIGH (Pin 7 = GPIO2_B4 = gpiochip2 offset 12)
gpioset gpiochip2 12=1

# Set pin LOW
gpioset gpiochip2 12=0

# Read a pin
gpioget gpiochip2 12

# Control multiple pins at once
gpioset gpiochip2 12=1 13=0 14=1

Key pin assignments

Pin Function Device Node
3 / 5 I2C4 SDA / SCL /dev/i2c-4
8 / 10 UART7 TX / RX /dev/ttyS7
19, 21, 23, 24, 26 SPI0 (MOSI, MISO, CLK, CS0, CS1) /dev/spidev0.x
27 / 28 I2C7 SDA / SCL /dev/i2c-7
37 POWER_KEY /dev/input/event0

Storage & Expansion

M.2 NVMe SSD

Install a 2280 NVMe drive into the M-Key slot (J6), then verify detection:

fdisk -l    # NVMe shows as /dev/nvme0n1
lsblk       # Confirm mount tree

microSD Card

The TF card slot (J4, back of board) supports SDIO 3.0. List storage after insertion:

lsblk       # microSD shows as /dev/mmcblk1

Manual mount may be needed

During boot, eMMC partition changes can affect TF card automounting. Mount manually with mount /dev/mmcblk1p1 /mnt if needed.

USB Power Control

Software control for the two USB 3.0 Type-A ports:

echo 0 > /sys/class/leds/usb_pwr/brightness   # Power OFF
echo 1 > /sys/class/leds/usb_pwr/brightness   # Power ON

Camera (MIPI CSI)

Three independent MIPI CSI interfaces support simultaneous camera input.

Connector Device Node Default Sensor
J19 /dev/video42 OV13855
J20 /dev/video51 OV13855
J25 /dev/video33 Standard CSI
# Live preview from J19 (requires display)
export DISPLAY=:0
gst-launch-1.0 v4l2src device=/dev/video42 \
  ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 \
  ! videoconvert ! autovideosink sync=false

# Capture a still image from J19
v4l2-ctl --verbose -d /dev/video42 \
  --set-fmt-video=width=1920,height=1080,pixelformat='NV12' \
  --stream-mmap=4 --stream-skip=3 \
  --stream-to=./capture.yuv --stream-count=1 --stream-poll

# Play back the captured frame
ffplay -f rawvideo -video_size 1920x1080 -pixel_format nv12 ./capture.yuv

J20 color tint

J20 may show a green tint depending on the sensor module used. Apply a color correction filter in your pipeline if needed.


Audio

The ES8388 codec handles speaker, headphone, and microphone I/O.

# Enable speaker / headphone output
amixer -c 0 cset name='Speaker Switch' on

# Play audio
aplay -D hw:0,0 audio.wav

# Record from headphone mic (J12)
amixer -c 0 cset numid=67 off               # Disable onboard mic
echo -n "mic1" > /sys/class/es8388_mic/mic_channel
arecord -D hw:0,0 -f S16_LE -r 16000 -c 2 recording.wav

# Set capture volume (0–192)
amixer -c 0 cset numid=50 100

# Enable Automatic Level Control (stereo)
amixer -c 0 cset numid=41 3

Troubleshooting

Issue Likely Cause Fix
No display on HDMI Cable or resolution mismatch Try a different HDMI cable; check OS display settings
WiFi weak or disconnects Antenna not connected Attach the included antenna FPC to the AP6256 connector
microSD not automounted eMMC partition change on boot Mount manually: mount /dev/mmcblk1p1 /mnt
NVMe not detected Drive not fully seated Re-seat the M.2 drive and re-tighten the screw
Camera shows green tint Sensor color calibration on J20 Apply color correction in GStreamer pipeline
No audio output Speaker switch disabled Run amixer -c 0 cset name='Speaker Switch' on
USB device not recognized USB power is off Run echo 1 > /sys/class/leds/usb_pwr/brightness