Skip to content
  • Live
  • Blog
  • Shop
  • Contact
  • About
  • Instagram
  • YouTube
  • Twitch
  • GitHub
CheerLights

CheerLights

We are all connected.

CheerLights on GitHub, Twitch, and Discord. We are all connected.
  • Learn
  • Build
  • Connect
  • Toggle search form

Flash WLED on an ESP32-C3 and Sync It to CheerLights

Posted on July 5, 2026October 27, 2026 By Hans Scharler No Comments on Flash WLED on an ESP32-C3 and Sync It to CheerLights

We have published a step-by-step guide to flashing WLED on an ESP32-C3 board over USB, setting it up for addressable WS281x LEDs, and syncing it to CheerLights over MQTT. The guide was tested with WLED v16.0.0 on a GLEDOPTO WLED ESP32 Mini.

An ESP32-C3 WLED controller driving a lit LED strip, with the WLED color picker behind it, on a soft color spectrum

What You Need

  • An ESP32-C3 board. The GPIO pins in the guide (LED on 10, button on 9) are for the GLEDOPTO WLED ESP32 Mini; other boards use different pins.
  • A strip or string of addressable WS281x LEDs
  • A USB data cable (a charge-only cable will not work)
  • Python 3 with pip, to install esptool

Flash WLED with esptool

For most people, the official web installer at install.wled.me is the way to put WLED on a board. The guide covers the manual esptool method, which helps with scripting, flashing offline, and seeing exactly what happens. That method writes only the app image, so it is for boards already running WLED; use the web installer for a blank chip. The guide walks through finding the COM port, installing esptool, downloading WLED_16.0.0_ESP32-C3.bin, and writing it to the app partition at 0x10000:

python -m esptool --port COM4 --baud 460800 write_flash 0x10000 WLED_16.0.0_ESP32-C3.bin

Replace COM4 with your port. The guide also covers making sure the board boots the new firmware, configuring the LED output and the button, powering longer strips, and troubleshooting.

Sync WLED to CheerLights

The CheerLights MQTT broker publishes the current color straight to WLED’s standard topics, so there is nothing custom to install. In WLED, open Settings → Sync Interfaces → MQTT, check Enable MQTT, and set:

  • Broker: mqtt.cheerlights.com
  • Port: 1883, with no username or password
  • Device Topic: wled. CheerLights publishes the color to wled/col, so a per-device topic like wled/xxxxxx never gets it.
  • Group Topic: wled/all

Save, then unplug the board and plug it back in. WLED connects to the MQTT broker only at boot. Once it reconnects, pick a color on the CheerLights Discord and your LEDs change with every other CheerLights light around the world.

Read the full guide on GitHub, including a recipe where one pixel follows CheerLights and the rest run an effect, and see CheerLights + WLED for more WLED builds.

Share this:

  • Share on X (Opens in new window) X
  • Share on Facebook (Opens in new window) Facebook
  • Share on Tumblr (Opens in new window) Tumblr
  • Share on Reddit (Opens in new window) Reddit
  • More
  • Share on Pinterest (Opens in new window) Pinterest
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Email a link to a friend (Opens in new window) Email
  • Print (Opens in new window) Print

Related

News, Projects

Post navigation

Previous Post: CheerLights Terminal: The Current Color in ASCII Art
Next Post: CheerLights Updates: llms.txt and a Refreshed API Reference

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  • Build Your First CheerLights Light with WLED
  • CheerLights Updates: llms.txt and a Refreshed API Reference
  • Flash WLED on an ESP32-C3 and Sync It to CheerLights
  • CheerLights Terminal: The Current Color in ASCII Art
  • CheerLights MCP Server 2.0: Color History, Statistics, and Search

Copyright © 2026 CheerLights.

Powered by PressBook Grid Blogs theme

Loading Comments...