Bare pcb only for DIY assembly no components.
Motherboard & Front panel
Pi Zero + Zero extra chips. Fully transparent, fully yours.
ZEPIR is a minimal HAT that transforms a Raspberry Pi Zero (or Zero 2 W) into a complete pocket Linux computer — with a real keyboard, display, and speaker. No proprietary chips, no black boxes. Every component is standard, every line of code is visible and customizable. The perfect open foundation for handhelds, cyberdecks, and pocket terminals.
> ⚠️ This is not plug & play. It requires basic Linux experience — configuring overlays, editing config files, and running Python scripts. If you enjoy tinkering, you'll love it. When in doubt, feel free to ask!
> Raspberry Pi is NOT included (optional add-on at checkout)
| Feature | Detail |
|---|---|
| Display | 2.8" IPS 320×240, ST7789, SPI |
| Keyboard | 7×10 GPIO matrix, ~70 keys, software-scanned |
| Audio | PWM mono amplifier + speaker (Zero 2 W, Pi 4) |
| USB-A | Optional — requires 2 wires soldered to D+/D− test points |
| Power | Integrated power supply, designed for powerbank use |
| Battery | Optional 18650 holder (Pi 4 requires GPIO extension) |
Compatible boards: - ✅ Raspberry Pi Zero W - ✅ Raspberry Pi Zero 2 W — RECOMMENDED - ✅ Raspberry Pi 4 (without 18650 holder, needs GPIO extension) - ✅ Raspberry Pi 5 (without 18650 holder, needs GPIO extension) - Audio not supported
| Component | Qty | Notes |
|---|---|---|
| ZEPIR main PCB (this product) | 1 | Display, buttons, header pre-soldered on assembled version |
| Raspberry Pi Zero 2 W | 1 | Recommended — optional add-on at checkout |
| MicroSD card (8 GB+) | 1 | For Raspberry Pi OS |
| 18650 Li-ion cell | 1 | Optional — for built-in battery operation |
| MH-CD42 charge/boost module | 1 | Optional — for battery power (AliExpress) |
| USB-A connector (GCT USB3130-30-A) | 1 | Optional — solder to D+/D− test points |
The bare PCB version requires soldering the 40-pin header and a few passives. Component values are printed directly on the PCB.
ZEPIR runs full Raspberry Pi OS — it's a real Linux computer, not a toy terminal.
fbi/fimFlash Raspberry Pi OS Lite using Raspberry Pi Imager.
In the Imager advanced settings: - Enable SSH - Set username, password, and Wi-Fi credentials
Edit /boot/firmware/config.txt and add:
# SPI display
dtparam=spi=on
dtoverlay=fbtft,spi0-0,st7789v,dc_pin=25,rotate=270,width=240,height=320,speed=62000000
# Audio
dtparam=audio=on
dtoverlay=audremap,pins_18_19
audio_pwm_mode=2
Edit /boot/firmware/cmdline.txt — append to the existing single line:
fbcon=map:10 fbcon=font:VGA8x8
Connect via SSH. Then run:
sudo raspi-config
Configure: Expand filesystem → Enable autologin → Boot to terminal (CLI) → Finish.
Configure console font:
sudo dpkg-reconfigure console-setup
Select: UTF-8 → Guess optimal → Terminus → 6×12
Test display: ls /dev/fb* sudo dd if=/dev/urandom of=/dev/fb1
Random pixels should appear on screen.
Test audio:
aplay -l
alsamixer
espeak-ng "Hello from ZEPIR"
sudo apt update
sudo apt install mc w3m w3m-img mpg123 espeak-ng fbi fim python3-evdev
sudo apt install mikmod ranger nnn btop ncdu cmus cmatrix sl cowsay fortune
In sudo raspi-config, set sound output to PCM audio.
Copy the keyboard driver to /home/pi/gpiokeyboard/gpiokeyboard.py (download from the Source Code link below).
Edit /etc/rc.local and add before exit 0:
sudo python3 /home/pi/gpiokeyboard/gpiokeyboard.py &
The keyboard driver is plain Python using evdev — read it, modify it, make it yours.
> Pi Zero 2 W is great for Linux tasks. For running local LLMs, a Raspberry Pi 5 with at least 4 GB RAM is required.
Install Ollama curl -fsSL https://ollama.com/install.sh | sh Run a small model ollama run qwen3:1.7b
Recommended lightweight models:
| Model | Size | Notes |
|---|---|---|
| tinyllama | ~700 MB | Smallest, fastest |
| gemma3:1b | ~800 MB | Google's compact model |
| qwen3:1.7b | ~1.5 GB | Good multilingual support |
| ministral-3b | ~2 GB | Solid all-round performance |
Voice pipeline (experimental):
ollama run qwen3:1.7b "Say hello" --nowordwrap | espeak-ng