Close

The Challenge of Driving Bare LEDs

A project log for Open Source Light and Motion Controller

The goal of this project is to develop an open-source firmware and controller for kinetic sculptures, mobiles and moving lamps.

marciotmarciot 05/04/2019 at 17:410 Comments

For this project, I intend to use 1W RGB LEDs that come in a "star" configuration. These are different from "addressible" LEDs in that they have no build-in electronics. What they have is six pads that connect directly to the anodes and cathodes of a red, green and blue LED die. Driving these is tricky, because each color LED has a different voltage drop. You could use resistors for current limiting, but you would be generating a lot of waste heat. One trick I've used in the past is to tie them all in series and then use an adjustable voltage bulk converter to drive them as one:

Although this works, it requires the bulk-converter to be tuned to a very precise voltage and I later found out, also carries a risk of thermal runaway, especially if the LEDs are driven near their maximum ratings. Of course, this method also makes controlling the individual LEDs from a microcontroller impossible.

For this reason, I set out to find a constant-current supply for my LED projects. One part I came across was the DM100-AC, which can often be found on eBay for around six bucks. There is little documentation on these boards, but they seem to have quite a following on a particular Christmas decoration forum.

These boards are quite sophisticated, combining a STM microprocessor, two MAX1487 RS-485 transceivers and a three channels of 300mA constant-current LED drivers. The supply voltage is from 9V to 24V and the board features built in rectifiers and a large electrolytic capacitor for power filtering, so you could power it using an AC wall wart, although DC works fine too (there seems to be a variant without rectifiers, the DM100-DC, available as well):

At the top, there is an unpopulated header which I presume is for programming, conceivably one could load new firmware into these boards, but sadly none of the unused GPIO pins are exposed as pads on the PCB, limiting the possibilities of using this as a generic dev board. This header does provide access to 5V and GND, which I was hoping I could use to drive the Arduino Nano. However, the power regulator is a 78L05, which is rated for 100mA, so probably not enough head room.

In my next installment, I'll discuss the interfacing of the DM100-AC to the Arduino.

Discussions