Flash Firmware
Install SpojBoard on a fresh board straight from your browser — no esptool, no command line.
Plug your board into this computer over USB, pick your variant below, and click Install. The flasher writes the bootloader, partition table, and firmware in one step.
⚠️ Browser support: Browser flashing uses the Web Serial API, available in Chrome, Edge, and Opera on desktop (not Firefox or Safari, and not on iOS). The page must be served over HTTPS — which it is here. On Linux you may need to add your user to the
dialout group for serial access.
Choose Your Board
MatrixPortal S3
Adafruit MatrixPortal ESP32-S3 — built-in HUB75 connector and level shifters.
Generic ESP32-S3 (N8R2)
ESP32-S3-DevKitC-1 or similar (8MB flash, 2MB PSRAM) with manual HUB75 wiring.
Not sure which board you have? If it's an Adafruit board with a built-in HUB75 connector, it's the MatrixPortal S3. If you wired a generic ESP32-S3 dev board to the panels yourself, pick Generic ESP32-S3. The two builds differ only in the RGB channel order they default to, so the wrong one shows miscoloured output — recoverable from the Hardware tab without reflashing, though reflashing the right one is simpler.
⚠️ "Failed to connect" or it just times out? If a board is already running firmware, the ESP32-S3 usually needs to be put into download mode by hand before it will accept a flash:
- Hold down the BOOT button (labeled
BOOTorB0). - While holding it, tap RESET (or unplug and replug USB).
- Release BOOT.
- Click Install again and pick the same serial port.
After Flashing
When the install finishes, the display boots into WiFi setup mode and shows a SpojBoard-XXXX network to join. Continue with Step 3 of the Getting Started guide to connect it to your WiFi and configure departures.
Other Ways to Flash
- Build from source:
git clonethe repo and runpio run -t uploadwith PlatformIO — it flashes everything over USB. See the Getting Started guide. - Updating an already-running device? You don't need to reflash over USB — use the built-in web interface (Check for Updates) or the GitHub OTA. The
.binfiles on the Releases page are application images for these over-the-air updates, not for first-time USB flashing.