DimLED Mini

[+] Tech Stack

DimLED Mini started as a simple idea: create a reliable PWM LED dimmer that’s both easy to use and fun to build. What began as a side project evolved into a complete hardware+software solution, taking it from breadboard prototype to a polished IoT device with web-based control and OTA updates.

Hardware Design Process

The project began with a 2-layer PCB design built around the ESP8266 ESP-01 module. I focused on keeping things simple while ensuring reliable performance:

The assembled board showcases attention to detail with clean solder joints and professional component placement

Custom Web Interface: Making It Usable

I wanted to avoid the clunky default ESPHome interface, so I built a custom web dashboard with modern JavaScript and a clean dark theme:

Getting the PWM Control Right

Getting smooth LED dimming proved trickier than expected. Through some trial and error, I settled on these settings:

Remembering Settings Between Power Cycles

One of the most requested features was remembering the last brightness level. I added state management using flash memory:

3D Printed Enclosure

I designed a simple two-part enclosure that’s easy to print:

Development Workflow

To keep things organized, I set up some automation:

Documentation and Files

I tried to document everything so others could build it too:

Easy Setup and Use

I wanted to make sure the device was accessible to different users:

Extra Features

Along the way, I added some useful capabilities:

What I Learned Along the Way

This project taught me a lot about bringing together hardware and software:

  1. Full-Stack Development: From PCB design to web interfaces and everything in between
  2. Hardware Design: The importance of proper component selection and PCB layout
  3. Software Architecture: How modular design makes maintenance and feature addition much easier
  4. User Experience: Small details like smooth transitions and responsive controls really matter
  5. Documentation: Good documentation makes all the difference for others (and future me)

Open Source & Community

The entire project is open source because I believe projects like this benefit from community input. The modular architecture should make it easier for others to contribute ideas or adapt it for their own needs.

Want to build your own? Check out the GitHub repository for all the source code, PCB files, and documentation.