Schematic and PCB layout are created using KiCad 5. The project files can be found in the hardware
directory.
Exports for viewing without KiCad also exist. These should (hopefully) be pretty up-to-date.
- ESP-WROOM-02
-
Microcontroller with built-in WiFi.
- PCA9685
-
PWM LED controller with 16 channels and I2C bus interface.
As the ESP8266 does not have enough pins to drive 12 LED channels (3 * RGBW), a dedicated chip has to do this work.
The circuit consists of two power nets: a 12 V net for the LED strips and a 3.3 V net for everything else.
The 12 V are provided by an external power supply. The LED strips are directly connected to this power rail.
The 3.3 V are provided by an on-circuit power regulator whose input is connected to the 12 V rail. With a voltage difference of about 9 V and up to 500 mA current draw by the ESP8266 alone, a linear regulator is too inefficient, so a switching mode regulator is used.
-
ESP-WROOM-02: 500 mA
-
PCA9685: 10 mA (just the chip, without any driven LEDs)
-
One or two status LEDs: 40 mA
Adding some buffer, an 800 mA power supply should suffice easily.
This section is a collection of various design considerations.
As this is my first real hardware project and given my complete lack of experience with switch mode power supplies, I ruled out building my own regulator circuit (e.g. based on LM2595 or LM2675). Instead, an all-in-one regulator module will be used.
Name (Manufacturer) |
Datasheet | Distributor | Price | Notes |
---|---|---|---|---|
VXO7803-1000 |
2.22-2.35 € |
|||
VX7803-1000 |
2,80 € |
|||
R-78E3.3-1.0 |
2,67-2,80 € |
|||
MEZD71201A-F |
2,76-2,90 € |
|||
TR10S3V3 |
3,40 € |
Product search:
If the LED strips connected to the controller draw more power than the power supply and/or the circuitry can handle, this could potentially cause damage.
To prevent this, some kind of current limiter could be added to the circuitry feeding the LED strips.
-
How would the overcurrent protection work? Autonomous hardware, or with support from the firmware?
-
How about a current meter (with a I2C interface) that the firmware could read out? The current power draw could be reported via MQTT, providing for a nice little feature.
The following connections are accessible when the controller is inside a closed enclosure:
-
LED strip connectors.
-
Power supply jack.
-
Programming lines:
-
RX/TX
-
GND
-
Reset
-
Firmware flashing mode selector
-
While ESD protection for a simple and cheap product as this is probably a bit overkill, adding it would teach me something new, so I’ll likely do it.
To do:
-
Learn about different ESD protection techniques
-
Diodes to V+, one to V-.
-
Diodes only to V-.
-
-
Extend schematic.