Flash & set up
Once the box is assembled, three short stages get it running: flash CircuitPython, copy the app, then set up WiFi and pick your parks from a web page the sign hosts itself. After that it updates itself over the air. You shouldn’t need a computer again.
Flash CircuitPython
Connect the board over USB-C and double-tap its RESET button to enter the bootloader. A drive named MATRIXS3BOOT (or similar) appears. Drag the CircuitPython .uf2 onto it; the board reboots and remounts as CIRCUITPY.
Copy the app
Grab the Theme Park Waits 3.0 app and copy code.py, boot.py, and the src/ and lib/ folders onto the CIRCUITPY drive. The board restarts and boots the sign.
Want to change something first? Make It Yours shows how to tweak the code or add your own ride animation, then copy your version instead.
Connect WiFi from your phone
On first boot with no saved network, the sign scrolls join instructions and opens its own WiFi access point. Connect your phone to it, and a setup page appears at http://192.168.4.1. Pick your home network, enter the password, and the sign saves it and reconnects on its own. No cables, no editing files.
Pick your parks & style
Once it’s online, the sign advertises itself on your network as http://themeparkwaits.local. Open that in any browser to choose up to four parks, set brightness and colors, pick a scroll speed and number-reveal effect, sort or group rides, and hide closed rides or character meets. Save, and the display rebuilds with your picks.

Updates arrive over the air
New features, ride art, and fixes ship from a public GitHub channel. The sign checks for a newer version, and when there is one it shows an “Installing… do not unplug” screen, downloads it, and reboots into the new version. You can also trigger an update from the configuration page. There’s no subscription and no account: the channel just carries the latest release from the public GitHub project, and if you’re running your own customized copy you can ignore it and pull changes yourself.
Upgrading from 2.x
Already have an older Theme Park Waits box? Version 3.0 is a ground-up rewrite on a newer CircuitPython, so the smoothest path is a one-time re-flash: run Steps 1–2 above, then reconnect WiFi and re-pick your parks (a two-minute job). From then on, updates are automatic over the air like always.