QlockThreeW32
Flash a clock, from the browser
A blank Seeed XIAO ESP32-S3 Plus becomes a word clock in about a minute — no PlatformIO, no Python, nothing to install. This page writes the whole flash: bootloader, firmware and the configuration interface, in one go.
Before you start
- Chrome, Edge or Opera on a computer
- A USB-C cable that carries data
- A Seeed XIAO ESP32-S3 (Plus, 16 MB flash)
Safari and Firefox cannot do this — they have no Web Serial API. On a phone or tablet there is no port to connect to at all.
If the browser cannot find the board
The XIAO's own USB port is not a classic USB-serial bridge, so it does not always drop into the bootloader by itself. If "Connect" shows no port, or the install stalls right at the start:
- Unplug the USB cable.
- Hold the board's BOOT button down.
- Plug the cable back in while still holding it, then let go.
- Click "Connect and install" again.
After it's flashed
-
The clock reboots with no WiFi configured yet and opens its own access point,
QlockThreeW32, no password needed. Scan to join it from a phone, or pick it by hand in WiFi settings. - Joining opens a captive portal asking for your own network's name and password. Once the clock has them it restarts onto your network and its own access point disappears.
-
From then on the clock answers at
http://qlockthreew32.local— scan to open it, or type the address. That is where the rest of the setup — language, colour, the automatic brightness — happens.
Firmware and interface updates after this one never need a cable again: they go through the clock's own Update tab, or happen by themselves from the release channel it is set to.
What exactly does this write?
Five parts, at the offsets a factory-fresh XIAO ESP32-S3 Plus needs: the second-stage bootloader, the partition table, the tiny stub that tells it which partition to boot first, the firmware itself, and the filesystem image holding this configuration interface. The "erase" option this tool offers first clears the whole chip, which is the safe default for a board that has never run this firmware before. Reflashing a clock that is already running QlockThreeW32 does not need any of this — use its own Update tab instead, which only ever replaces the two halves that actually changed. Built straight from the latest stable release; see CLAUDE.md for how the firmware itself works.