YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
ReachyPi
Run the Reachy Mini Lite wirelessly
Reachy Mini Lite USB without cable and the official app, via a Raspberry Pi 5 running reachy-mini-os.
The Lite normally tethers to a computer over USB. ReachyPi gives you a Pi 5 SD-card image so the robot runs standalone β motors, camera, sound, and the official app over Bluetooth all work (tested on a Pi 5, daemon v1.8.4).
Getting started
- Download the image: β¬ latest build (
.zip, ~1.6 GB) β or build it. - Flash it to an SD card, then boot it (now wireless).
π οΈ Flash with Raspberry Pi Imager β "Use custom" β the .zip
β οΈ In the customization, don't set a user (it renames pollen and breaks the robot); wifi is fine.
Build
The build runs in Docker, so any OS works (a Raspberry Pi builds it natively).
Install Docker and start it
| OS | Docker |
|---|---|
| Ubuntu / Debian / Raspberry Pi OS | sudo apt install docker.io |
| Arch | sudo pacman -S docker |
| Fedora | sudo dnf install docker |
| macOS | Docker Desktop (or brew install --cask docker) |
| Windows | Docker Desktop with the WSL2 backend |
| other Linux | curl -fsSL https://get.docker.com | sudo sh |
On Linux, start it with sudo systemctl enable --now docker. On macOS/Windows, just launch Docker Desktop (on Windows, run the build from a WSL2 terminal).
Build the image
sudo modprobe loop # often already loaded (Ubuntu) β needed on Arch
docker build -t reachy-pi5 .
docker run --rm --privileged -v "$PWD/deploy:/pi-gen/deploy" reachy-pi5
Image lands in ./deploy/*.zip, then flash it (see Getting started).
Override the daemon version with
docker build --build-arg DAEMON_VERSION=v1.8.4 -t reachy-pi5 .
CM5 variant (Wireless carrier)
The Reachy Mini Wireless ships a CM4; a CM5 pops right into the carrier (see the community swap thread). Dockerfile.cm5 builds the image for that swap: motor UART on uart2-pi5 with the same udev alias, external antenna kept, the CSI camera keeps libcamera (do not use the Pi 5 image there, its camera fix targets the Lite's USB camera), and the WebRTC stream encodes with x264 in software since the CM5 has no hardware encoder (docker/stage-cm5-fixes.sh).
docker build -f Dockerfile.cm5 -t reachy-cm5 .
docker run --rm --privileged -v "$PWD/deploy:/pi-gen/deploy" reachy-cm5
An eMMC CM5 flashes through rpiboot/usbboot rather than an SD card. β οΈ Not yet tested on hardware: the CM5 camera timeout reported by the community is an open question this image may still hit.
First boot & SSH if needed
The image ships the pollen user with SSH enabled β nothing to set up in Imager.
ssh pollen@reachy-mini.local # password: root
passwd # change it
- Web UI / API:
http://reachy-mini.local:8000/ - Pair from the app's BLE SETUP β
ReachyMini
Everything (services, the venv, sudo) is built around pollen β that's why you must not set a user in Imager.
How it works
The Dockerfile downloads reachy-mini-os, patches config.txt (Pi 5 motor UART, antenna), pins the daemon, and bakes the fixes from docker/stage-pi5-fixes.sh. Each fix lives in /etc, /usr/local, or sitecustomize.py, so it survives reboots and daemon self-updates.
Changelog
Each release and what it brought is in CHANGELOG.md.