Flash AnimatedPixelClock to your ESP32-S3 straight from your browser.
Plug the board in over USB and hit install. Then point it at your WiFi - and get a 128×64 RGB LED wall panel: the animated retro-arcade clocks, a world clock, flight and rail boards, markets and media from Home Assistant, Lua effects uploaded over WiFi, text in Latin and Cyrillic, a knob and an infrared remote.
00
Before you start
Desktop Chrome or Edge. Web Serial doesn't run on Firefox, Safari, or mobile.
A real data USB cable. Power-only cables are silent killers - the port simply won't show up.
The Waveshare ESP32-S3-RGB-Matrix board. The driver board with the controller on it: 32MB octal flash, 16MB octal PSRAM and a HUB75 socket. It is the only board this page installs - the only one that has been flashed from here and seen to boot. The firmware drives 2× 64×64 HUB75E panels chained into one 128×64 matrix.
Stuck in a connect / disconnect loop? Hold BOOT, plug in USB while holding, then release. Or hold BOOT, tap RESET, then let go of both.
Nothing else on the serial port. Close Arduino IDE, PlatformIO Monitor, and the serial monitor below before flashing.
01
Flash your board
chip
ESP32-S3
board
…
display
HUB75 · 128×64 RGB
firmware
…
flash
0x0 · full image (bootloader + app)
A dialog will ask which serial port to use - pick the one that appears when you plug the board in. The installer erases and writes the full image at offset 0x0; it takes ~30 seconds.
Right after flashing, the installer can hand your WiFi straight to the device in this tab - no phone needed. If you miss that window, the device also broadcasts its own setup hotspot you can join from anything. Either way it reboots onto your WiFi and shows its IP address on the matrix.
recommended
Configure WiFi in this tab
When the flash finishes, the install dialog opens a Configure WiFi step. Pick your home network, type the password, and hit Connect. The credentials travel to the device over USB using Improv Serial - no captive portal, no app switching. It appears only on a freshly flashed device and stays open for about 3 minutes.
Wait for “Installation complete”, then keep the dialog open.
Pick your WiFi network and enter the password.
The device joins your WiFi, reboots, and prints its IP address on the matrix. Note it down - you'll need it in the next step.
fallback
Or join the setup hotspot
Missed the Configure WiFi dialog? The device falls back to an open setup hotspot you can join from any device and finish in a browser.
No password - it's an open setup network. It disappears once the device joins your WiFi.
On your phone or laptop, join the PixelClock-Setup WiFi network.
Open 192.168.4.1 - a captive portal should pop up automatically.
Pick your home network, enter the password, and save.
The device reboots, joins your WiFi, and prints its IP address on the matrix. Note it down - you'll need it in the next step.
After this you can reach the full config portal any time at the device's IP or at http://pixelclock.local - clock styles, sprite colours, layout, timezone, brightness and OTA updates all live there.
03
Connect your PC optional
The companion streams live PC stats and your music to the matrix. Use the audio visualizer while music plays, show CPU / RAM / GPU / disk stats, or leave the clock running on its own.
Download and run pc_stats_monitor_v4.exe using the button above. It lives in the system tray; closing its window keeps it running.
For temperature, fan and power sensors: install LibreHardwareMonitor and run it as Administrator. On 0.9.5+, enable Options → Remote Web Server → Run. The music visualizer works without it.
In the config window, enter the device IP (from the matrix), pick the sensors you want, arrange them on the live preview, then Save & push.
tip
Windows SmartScreen may warn on first run - click More info → Run anyway (normal for unsigned tools). The Autostart toggle in the app launches it on boot.
Grab the companion from the repo and install its dependencies:
In the config window, enter the device IP (from the matrix), pick your sensors, arrange the layout, then Save & push.
tip
The app's Autostart toggle installs a systemd user unit. Check it with systemctl --user status pcstatsmonitor.
Stats travel over UDP on port 4210 and refresh every few seconds - both configurable in the app. Get it from the project repo.
04
View serial logs
Reading the board's serial output is the fastest way to capture a boot loop, a WiFi error, or a crash for a bug report. Plug the board in over USB, click Connect, and pick the same serial port you'd use for flashing.
Only one program can hold the serial port at a time - close PlatformIO / Arduino monitors first, and don't click Install during a monitor session. Baud rate is 115200 to match the firmware.