Rules
Event-driven gameplay logic with triggers, conditions, and actions. Button pressed, fire a flipper and play a sound.
- Grouped trigger/condition logic
- Validation and unsaved-change protection
- Rules sync status visibility
Homebrew Pinball Control Platform
Pinball CTL combines a Raspberry Pi authoring/orchestration layer with an ESP32-S3 real-time runtime layer. You map hardware, build rules, author scoring and lighting, and manage media displays from a browser UI, then sync to ESP for deterministic runtime behavior.
Why Pinball CTL
This project was created because many existing pinball control tools feel cumbersome and non-intuitive for amateur builders.
As a software engineer, the goal here is to bridge that gap: provide a clearer workflow, a more approachable interface, and practical module structure so builders can move from wiring to playable behavior faster.
How It Works
The Pi is your authoring and orchestration surface. The ESP enforces real-time behaviour and safety constraints at runtime.
In practice, this means you edit and validate configuration in the web UI, then sync those changes to the device layer in a controlled way.
This split helps you iterate quickly during development while preserving predictable machine behavior during live operation.
Footnote: you can develop and iterate on macOS, then deploy the same project configuration to Raspberry Pi for production runtime.
Key Modules
Event-driven gameplay logic with triggers, conditions, and actions. Button pressed, fire a flipper and play a sound.
Visual table authoring and simulation workflows for placement, interaction, and fast validation.
Purpose-built points authoring for baseline awards, progressive ramps, and combos.
Video/overlay scene authoring with display-targeted runtime and kiosk launch controls.
Physical I/O mapping with explicit function assignment and safe-state controls for reliable machine behavior.
Device connectivity and firmware management for keeping the ESP runtime current and verifiable.
Scene authoring with Stage and Fixtures tabs, including timeline/pattern workflows and sync to ESP.
Cue-based playback system for assets, outputs, and runtime audio diagnostics.
Installation-level configuration, backup/restore workflows, and runtime diagnostics.
Maintenance and service history tracking for machine operations and handover visibility.
Safety and Reliability
Requirements
Flash Raspberry Pi OS, install Pinball CTL from Git, run `pinballctl`, then open the web UI and start configuring.
sudo apt update && sudo apt install -y python3-venv python3-pip git
mkdir -p ~/pinballctl && cd ~/pinballctl
python3 -m venv .venv && source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install \"git+https://github.com/VineCode/pinballctl.git@vX.Y.Z\"
pinballctl start