Quick Start
Quick Start
Get your OpenArcade controller running from scratch.
Hardware Requirements
- Parent hub: Raspberry Pi Zero 2 W
- Child modules: ESP32 development boards
- Inputs: Arcade buttons, joysticks (Sanwa/Seimitsu compatible)
- Power: USB-C or battery pack
- Housing: 3D printed (see CAD files in documentation)
Setup
-
Flash the child modules
Connect your ESP32 board and flash the firmware:
Terminal window cd firmware/esp32idf.py set-target esp32idf.py -p /dev/ttyUSB0 flash monitorThe module will start advertising as “OpenArcade-XX” over BLE.
-
Set up the parent hub
On your Raspberry Pi Zero 2 W, run the parent hub service:
Terminal window cd serveruv run runtime_main.pyThe Pi will discover nearby modules and subscribe to their input notifications.
-
Install as boot services (optional)
For persistent installation that starts on boot:
Terminal window sudo ./packaging/rpi/install-rpi.shThis installs:
- OpenArcade under
/opt/openarcade - Config stored in
/var/lib/openarcade/config.json - Three systemd services for USB gadget, BLE/HID runtime, and serial config
- OpenArcade under
-
Configure your layout
Open the 3D configurator app to design and customize your controller layout, button mappings, and module arrangements.
Verify Connection
Once running, you should see:
- ESP32 modules advertising over BLE
- Parent hub discovering and connecting to modules
- Your computer/console recognizing a new HID keyboard device
Next Steps
- Architecture Overview – Understand how the system works
- Firmware Guide – Deep dive into ESP32 firmware
- Server Guide – Configure the parent hub