Web Flasher

Flash firmware directly in your browser — no PlatformIO or cable hassle required.

Your browser is not supported. The Web Flasher requires the Web Serial API and only works in Google Chrome, Microsoft Edge or Opera (Desktop). Firefox and Safari are unfortunately not supported.

How It Works

  1. Connect the board via USB. Plug the ESP32 (Coordinator or Puck) into your computer using a USB cable.
  2. Use Chrome or Edge. The Web Flasher uses the Web Serial API — this only works in Chromium-based browsers (Chrome, Edge, Opera).
  3. Click the "Flash Firmware" button below. Select the correct COM port for your ESP32 in the dialog.
  4. Wait until the flash process is complete. The board will restart automatically. Do not disconnect the USB cable during flashing!
Important: Coordinator and Puck use different ESP32 chips. Never flash a Puck firmware onto the Coordinator or vice versa — the board will not boot!
No Chrome/Edge? — Flash firmware manually with esptool

If your browser does not support Web Serial (e.g. Safari, Firefox), you can flash the .bin file manually using the official esptool by Espressif. This works on all operating systems.

Prerequisites

Python 3 must be installed. Then install esptool:

pip install esptool

Flash Coordinator (ESP32-S3)

esptool.py --chip esp32s3 --port PORT --baud 921600 write_flash 0x0 coordinator.bin

Flash Puck (ESP32-C3)

esptool.py --chip esp32c3 --port PORT --baud 921600 write_flash 0x0 puck.bin

Replace PORT

  • Windows: COM3, COM4, ... — check Device Manager under "Ports (COM & LPT)"
  • macOS: /dev/cu.usbserial-* or /dev/cu.usbmodem* — list with ls /dev/cu.* in Terminal
  • Linux: /dev/ttyUSB0 or /dev/ttyACM0 — list with ls /dev/tty*. If permission denied: sudo usermod -aG dialout $USER and log out/in again

Tip: If the ESP32 is not recognized, hold the BOOT button on the board while plugging in the USB cable — this forces download mode.

Need more help? Click here and ChatGPT will guide you step by step.

Coordinator (ESP32-S3)

Coordinator Firmware

Board: ESP32-S3-DevKitC-1-N16R8 · 16 MB Flash

The Coordinator firmware controls the entire PUCK RACER system: game management, WebUI, ESP-NOW network and OTA updates for the Pucks. The merged image contains bootloader, partition table, firmware and the LittleFS file system with the WebUI.

PuckRacer Release Candidate 1 — V2.99.9

Your browser does not support Web Serial. Web Serial is not allowed in this context.

Puck (ESP32-C3)

Puck Firmware

Board: ESP32-C3-DevKitM-1 · RISC-V Single Core · 4 MB Flash

The Puck firmware controls LEDs (WS2812B), buttons, buzzer, battery and temperature protection. Communication with the Coordinator via ESP-NOW. The merged image contains bootloader, partition table and firmware.

PuckRacer Release Candidate 1 — FW 89

Your browser does not support Web Serial. Web Serial is not allowed in this context.

Already flashed once? — OTA Update

If your puck has already been flashed via USB, you can install future firmware updates wirelessly via OTA through the coordinator's web interface. No USB cable needed.

Important: For OTA, do not use the puck.bin above. Use the dedicated OTA file puck_OTA_FW89.bin instead. It contains only the firmware part (no bootloader) and is built specifically for the OTA path.

PuckRacer Release Candidate 1 — FW 89

GitHub Repository & README