We all love a nice strip or grid of addressable LEDs. It can add flair or an artistic touch to many projects, and it can make gaming computers look extra 1337. However, providing enough current to a long strip of addressable LEDs can sometimes be difficult. Often a separate voltage rail is needed to supply enough juice. At the same time, continually sending out data to animate them can often use 100% of the microcontroller’s CPU power, especially if the serial bus is being bit-banged. A crash or badly timed interrupt can leave the system in a weird state and sometimes with the LEDs not displaying the correct colours. Or you might just want to enter a power-saving mode from time to time on your main MCU? Well, the BAPPR is designed to address all of these problems.
[TheMariday] created the BAPPR and made it fully open-source. It’s a switch-mode power supply that can accept anywhere from 7 V to 17 V and converts it into a strong 5 V rail for typical addressable LEDs. It also has a “smart” mode where it monitors the data line going to the LEDs to see if there is activity. If for some reason the system stops sending data, the BAPPR can intervene and shut off the power to the LEDs, which can help prevent strange colour combinations from being displayed while the system recovers. Once data starts flowing again, power is restored and the light party can resume.
This is accomplished by directly rectifying and filtering the actual data line itself. As long as it remains active, enough charge will remain on C4 to keep the output alive. While this is a very simple and effective solution, it’s possible that a system might get stuck outputting VOH and this would keep the system enabled. Adding a series coupling capacitor could be a way to change the behaviour if desired — that’s the beauty of open hardware! At the same time, it’s very simple to disable the LED system simply by outputting a low level on the data line, which allows quick and efficient power saving.
It’s easy to adjust the parameters of the “smart” mode by simply picking different values for the input resistor, storage capacitor, and draining resistor. This can either have it activate more quickly upon resumption of data, or you can increase the amount of time it waits before shutting the output off when the data line goes to zero. If you’ve got a project with lots of addressable LED strips, having local power supplies like the BAPPR allows you to increase the efficiency of the entire system by sending a higher voltage, perhaps 12 V – 18 V, to each module, reducing losses over potentially long cable runs.