Total Revenue
$0.00
Games Played
0
Credits Sold
0
Active Kiosks
0
Recent Transactions
No transactions yet
All Kiosks
| Kiosk ID | Name | Balance | Games Played | Credits Earned | Status | Last Seen | Actions |
|---|---|---|---|---|---|---|---|
| No kiosks registered | |||||||
Push Update to Kiosks
Push the latest game code to all or selected Raspberry Pi kiosks. Each kiosk also auto-checks for updates every hour.
Ready to deploy. Select target and click "Push Update Now".
Update Status
| Kiosk | Current Version | Last Updated | Status |
|---|---|---|---|
| No update history | |||
Remote Install to a Raspberry Pi
Enter the Pi's IP address and a name. We'll generate a custom installer with the kiosk ID pre-configured.
Ready. Enter Pi details above.
Or Run Manually on the Pi
SSH into the Pi and run:
wget https://arcado.ai/Arcado-latest.zip && unzip Arcado-latest.zip && cd Arcado && bash setup.sh && bash start.sh
This auto-detects the Pi's hostname as the kiosk ID.
What Gets Installed
| ✓ | Arcado game server (12 games) |
| ✓ | Desktop icon — click to launch |
| ✓ | Auto-start on boot (systemd service) |
| ✓ | Fullscreen kiosk mode (Chromium) |
| ✓ | Auto-hide mouse cursor |
| ✓ | Hand & face tracking (MediaPipe) |
| ✓ | Hourly auto-updates from GitHub |
| ✓ | Unique Kiosk ID auto-generated |
| ✓ | Stripe payment via QR code |
Manual Setup
If you prefer to set up manually:
git clone https://github.com/fr1-ai/arcado.git ~/Downloads/Arcado
cd ~/Downloads/Arcado
pip3 install mediapipe opencv-python-headless websockets
python3 run.py
How to Use
SSH into the Pi (or open a terminal on it) and run any command below. Click the pink COPY button on the right of each command. Project lives in
~/Arcado.First Install (fresh Pi)
Run on a freshly flashed Pi (Bookworm Legacy 64-bit with Desktop). Downloads, extracts, installs MediaPipe, sets up auto-launch, and creates the desktop icon. Takes ~3-5 min.
One-line installcd ~ && wget https://arcado.ai/Arcado-latest.zip && unzip Arcado-latest.zip && cd Arcado && bash setup.sh
Then start the kiosk manuallybash ~/Arcado/kiosk.sh
Update / Reinstall
Pull the latest version from arcado.ai without re-running setup.
Refresh game files only (fast — no apt/pip)cd ~ && wget -O Arcado-latest.zip https://arcado.ai/Arcado-latest.zip && unzip -o Arcado-latest.zip
Restart kiosk after refreshpkill -f "python.*run.py"; pkill -f chromium; bash ~/Arcado/kiosk.sh &
Full reinstall (re-runs setup.sh)cd ~ && rm -rf Arcado-latest.zip Arcado && wget https://arcado.ai/Arcado-latest.zip && unzip Arcado-latest.zip && cd Arcado && bash setup.sh
System Sanity Check
Run these first when something isn't right. Confirms you're on the correct OS & Python.
Show OS, Python, architecturecat /etc/os-release | head -2 && python3 --version && uname -m
Verify MediaPipe is installed (should print versions)python3 -c "import mediapipe, cv2, websockets; print('mediapipe', mediapipe.__version__, '/ cv2', cv2.__version__)"
Reinstall MediaPipe if import failspip3 install --break-system-packages --upgrade pip && pip3 install --break-system-packages --upgrade mediapipe opencv-python-headless websockets
Camera
Check the USB camera is detected and capture works.
List USB cameraslsusb | grep -i cam
List /dev/video* devicesls /dev/video* && v4l2-ctl --list-devices
Capture one frame from camerapython3 -c "import cv2; c=cv2.VideoCapture(0); r,f=c.read(); print('OK' if r else 'FAIL'); c.release()"
Is the tracker WebSocket listening on port 8765?ss -tlnp | grep 8765
Arcado Process
Check if the kiosk is running. Restart it. Run in foreground for full error output.
Is run.py running?pgrep -af "python.*run.py"
Is Chromium kiosk running?pgrep -af chromium
Kill everything and restart the kioskpkill -f kiosk.sh; pkill -f "python.*run.py"; pkill -f chromium; sleep 1; bash ~/Arcado/kiosk.sh &
Kill kiosk WITHOUT restarting (for debugging)pkill -f kiosk.sh; pkill -f "python.*run.py"; pkill -f chromium
Run server in foreground (full error output, Ctrl+C to stop)cd ~/Arcado && python3 run.py
Test launcher HTTP servercurl -s http://localhost:8080 | head -20
Keyring Popup
If "Unlock keyring" or "Choose password for keyring" appears at boot.
Purge keyring + rebootkillall gnome-keyring-daemon 2>/dev/null; sudo apt-get purge -y gnome-keyring libpam-gnome-keyring seahorse; rm -rf ~/.local/share/keyrings; sudo reboot
Network & Config
Pi IP, central server connectivity, and current kiosk identity.
Show Pi IP addresshostname -I
Test arcado.aicurl -sI https://arcado.ai | head -1
Show this kiosk's .env (kiosk ID, central URL)cat ~/Arcado/.env
Regenerate .env from hardware serial + restart kioskPI_NAME=$(hostname) && PI_SERIAL=$(grep -m1 "^Serial" /proc/cpuinfo | awk '{print $3}') && HW_HASH=$(echo -n "$PI_SERIAL" | sha256sum | cut -c1-12) && printf "CENTRAL_SERVER_URL=https://arcado.ai\nKIOSK_ID=kiosk-$HW_HASH\nKIOSK_NAME=$PI_NAME\n" > ~/Arcado/.env && cat ~/Arcado/.env && pkill -f kiosk.sh; pkill -f "python.*run.py"; pkill -f chromium; sleep 1; bash ~/Arcado/kiosk.sh &
Display / Fonts
If emoji icons aren't rendering on the launcher.
Check if emoji font is installedfc-list | grep -i "noto color emoji"
Reinstall emoji font + refresh cachesudo apt-get install -y fonts-noto-color-emoji && fc-cache -f
Force Chromium fullscreenxdotool key F11
System Info
When you need to report a problem.
Full system snapshotuname -a && cat /etc/os-release | head -3 && free -h && df -h /
Pi CPU temperaturevcgencmd measure_temp
Scratch — Temp Commands
Ad-hoc diagnostic commands from current conversations. Cleared when issues are resolved.
(empty)# add new commands here as needed
Shared Scratchpad
Paste anything here (logs, errors, notes). Auto-saves to the cloud and syncs across all your laptops. Refresh to load latest.