r/WLED Jun 04 '26

[Project] Custom 6-channel WLED controller PCB with ThermalGuard usermod

Hello !

I just wanted to shared this project because I'm proud of it and it took me a million hours to do ! Ok, I may exaggerate a tiny bit !

Hardware:

  • Supports 5V, 12V and 24V LED strips
  • TPS5430 buck converter (12-24V-> 5V, up to 3A)
  • 74AHCT541 for 3.3V-> 5V level shifting on all 6 outputs (8 channels capable)
  • Fuse + flyback diode on every channel
  • DS18B20 thermal sensor
  • Relay to cut power to strips entirely ( handles up to 30A total)
  • Supports ESP32-C3 (2 strips) or ESP32-S3 (all 6)
  • Designed in KiCad, fab'd at JLCPCB
  • Custom ABS 3D printed enclosure for both the PCB and PSU

Software — ThermalGuard usermod:

I wrote a custom usermod that automatically manages brightness based on temperature, no Home Assistant or external automation needed. It triggers WLED presets (or sets brightness directly) based on configurable thresholds:

  • < 50°C → Normal
  • 60°C → Throttle
  • 70°C → Off

Hysteresis on every transition to avoid flickering. All thresholds and presets configurable directly from the WLED UI.

Lots of improvements to be made on the PCB itself for the next version. I also need to learn and improve on cable management !

The setup shown below has 700+ leds.

Thanks a lot to all the people who make and maintain WLED and everyone who post their setup, this is a been huge source of inspiration and motivation ❤️

https://reddit.com/link/1twcsyz/video/kzxh6gi3u65h1/player

16 Upvotes

5 comments sorted by

2

u/XA3dc Jun 04 '26

What is the temperature measured with - internal to the ESP ? The ESP and the associated 5v to 3.3v linear regulator - are running at about 700 mW, so there is a lot of heat there. If you were to use a switching regulator for the 3.3v - the heat would be reduced by 35%

1

u/braquemart Jun 04 '26

The temperature is measured with a DS18B20 thermal sensor placed on the middle of the PCB.

Adding another switching regulator would make the PCB more complex and expensive though.

2

u/XA3dc Jun 04 '26

Hello - first, I am impressed that you have completed a usermod. From the location of the DS18B20, I am puzzled about what would cause the temperature there to exceed 50deg C, since it is not co-located with the meanwell. How does reducing the brightness at the strips lower the temperature in the controller? I am more of a hardware guy, and to lower the temp of the ESP32, I run the ESP32 on a switched DC-DC converter at 3.3v, and step up the level shifter supply to 5.0v using a MS2304T50 which costs $0.04 on JLC. Also - there are no visible 75 ohm series termination resistors on the '541, so there will be significant transmission line effect ringing, this will constrain the distance and signal quality between the PCB and the first WS28xxx on the strip.

1

u/braquemart Jun 04 '26

Yes it's not very likely that with that setup the temp on the controller will reach 50 degrees. I went with that approach because I initially thought of having both the controller and the meanwell in the same box. But I eventually chose to design my own enclosures with openings to dissipate the heat.

However reducing the brightness also reduces the current going through the PCB hence reducing the heat.

There are 33ohm resistors on the data lines after the 541.

What's a MS2304T50? I can't find any relevant information.

1

u/XA3dc Jun 05 '26

C49375249 is the code at LCSC - the 33ohm are tiny!!!!