A synchronized LED matrix display system powered by ESP-NOW. One "Master" board detects its orientation (Pitch/Roll) using the built-in QMI8658 IMU and broadcasts visualization data to multiple "Slave" boards in real-time.
- Decentralized: No WiFi router or internet connection required. Uses ESP-NOW broadcast.
- Scalable: Supports 1 Master and practically unlimited Slaves within range.
- Dynamic Roles: Any board can be the Master. No hardcoded roles.
- Smooth Visuals:
- Fade Effect: Smooth color transitions based on tilt.
- Axis Cursors: "Highway" visualization with independent Pitch/Roll cursors.
- Plug & Play: Single firmware for all devices.
- Board: Waveshare ESP32-S3-Matrix (ESP32-S3 Mini + 8x8 RGB LED Matrix)
- Sensor: QMI8658 (6-Axis IMU)
- Display: Onboard 8x8 WS2812B RGB Matrix
- Flash: Upload this firmware to all your boards.
- Power On: All boards start as SLAVE (waiting for data) by default.
- Select Master:
- Pick ONE board.
- Press and HOLD the BOOT button for 2 seconds.
- The screen will turn YELLOW, then flash GREEN.
- Release the button. It is now the MASTER.
- Play: Tilt the Master board. All Slave boards will mimic the color and cursor movements instantly.
If you just want to use the swarm without modifying the code:
- Download the latest firmware binary from this repo.
- Connect your ESP32-S3-Matrix to your PC.
- Use ESP Tool (Web Browser) or
esptool.pyto flash the.binfile to address0x10000.
This project is built with PlatformIO.
- Clone the repo.
- Open in VS Code with PlatformIO extension.
- Upload to your ESP32-S3-Matrix boards.
pio run -t upload- Communication: ESP-NOW Broadcast (Address:
FF:FF:FF:FF:FF:FF) - Channel: 1 (Forced)
- Update Rate: ~50Hz
