Raspberry Pi Zero family console: Jellyfin + mGBA launcher, Xbox pad as mouse, web mirror
  • Python 58%
  • Shell 23.7%
  • HTML 18.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nikita Kolmogorov f09d1b1cc4 Add funding links
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 15:24:50 -07:00
.github Add funding links 2026-10-08 15:24:50 -07:00
pi Force HDMI 0 on at 1080p (missing hot-plug from projector); document 5 GHz Wi-Fi vs Bluetooth coexistence 2026-09-28 18:56:01 -07:00
.gitignore Pi 400: chromium sandbox, .config ownership, mGBA aspect, BT pairing fixes, install host arg 2026-09-26 17:28:56 -07:00
AGENTS.md Force HDMI 0 on at 1080p (missing hot-plug from projector); document 5 GHz Wi-Fi vs Bluetooth coexistence 2026-09-28 18:56:01 -07:00
CLAUDE.md funstation: Pi Zero couch console (launcher, mGBA, Jellyfin, pad mouse, web mirror) 2026-09-26 15:54:31 -07:00
config.example.env Navidrome music app (generic web-app tabs), HDMI hotplug re-detect, re-show current app, config reload on restart 2026-09-27 07:51:12 -07:00
install.sh Pi 400: chromium sandbox, .config ownership, mGBA aspect, BT pairing fixes, install host arg 2026-09-26 17:28:56 -07:00
README.md Navidrome music app (generic web-app tabs), HDMI hotplug re-detect, re-show current app, config reload on restart 2026-09-27 07:51:12 -07:00

funstation

A tiny family console on a Raspberry Pi 4/400. Plug it into the projector's USB (power) and HDMI, and it boots straight into a couch launcher:

  • Jellyfin (web client in a kiosk browser)
  • Music from Navidrome (its web player)
  • GBA / GB / GBC games through mGBA, with box art and no emulator UI

You can drive it two ways:

  • An Xbox controller over Bluetooth. The stick is a mouse and the D-pad navigates. The Xbox button sends the current app to the background (paused) and brings you home; press it again to jump back in. Y closes a running app from the home screen.
  • A browser: https://funstation.<your-tailnet>.ts.net mirrors the screen, with full mouse and keyboard.

A paired Bluetooth speaker connects automatically and takes over the audio.

Setup

cp config.example.env config.env   # fill in
./install.sh                       # re-run after any change

See AGENTS.md for the full from-scratch procedure: flashing, Tailscale and Bluetooth pairing.

Controller

Button Action
Left stick mouse
Right stick scroll
A select (D-pad highlight) or click (stick pointer)
B back
X play / pause (Space)
Y close app (home screen) / right click
Menu Enter
View Esc
D-pad arrow keys
LB / RB volume down / up
Xbox (tap) home, app keeps running paused; again to resume
Xbox (hold) + D-pad up/down volume, works in games too

In games, the controller goes directly to mGBA: A/B, LB/RB → L/R, View → Select, Menu → Start, and the D-pad or left stick for directions.