[This blog entry was originally posted to Reddit in May 2021]
Lots of progress to report on my development of an addressable, waterproof spotlight based on the Cree XM-L high-power RGBW LED. (Link to previous update).
I’ve now received and tested these Cree XM-L RGBW star modules using a Sparkfun PicoBuck LED driver board. I initially tested using the default PicoBuck configuration of 330mA/channel, and I was a little underwhelmed by the brightness. But when I jacked the current up to 660mA, I got the blinding result I was hoping for (I have to stop looking directly at them!). Based one that, I modified my circuit design (see below) to support both 660mA as well as 1000mA (1A), the maximum per-channel capability of the LED.
The Cree XM-L LEDs from LEDSupply.com cost $15, but I found modules that look nearly identical on AliExpress for only $4.60 each. I guess it’s possible that these are counterfeit, but it seems more likely that they’re just out of spec in some way. I’ve received some and they look fine, but I haven’t had a chance to test them yet.
I finished the circuit design and recently received the printed circuit boards back from the fab house. The main features of the boards are:
- ATMega328p microcontroller, 3.3v, 8MHz
- 12v-to-3.3v linear regulator
- RS-422 receiver
- 4-channel constant current LED driver (up to 1A/channel)
I originally planned to use the AL8861 buck LED driver, but there appears to be a worldwide shortage of these right now, so I switched to a similar/clone chip, the Richtek RT8471. This chip is actually better in a couple of respects, so I’m glad I had to switch.
I’ve partially assembled one board, but I’m temporarily hung up on getting the Bootloader installed on the ATMega328p. I didn’t realize that the ISP programmer I bought doesn’t work with 3.3v microcontrollers, so I’m waiting on parts for a level shifter circuit.
I haven’t done much here yet, but I’m exploring ways to achieve PWM resolutions higher than 8 bits. Since the ATMega328p doesn’t have enough high-res timers to support all four channels (right?), I’m looking into a technique I heard about (thanks u/sutaburosu!) called Binary Code Modulation (BCM). This looks promising as a means to achieve smoother fades at low brightness levels (e.g. fade in/out).
For the LED “head” I’m sticking with these inexpensive LED landscape lights. It’s easy to rip out the white LED and electronics and repurpose the remaining parts. Here’s a photo of one with the Cree XM-L module installed. The LED star module is mounted (with thermal paste) to a removable metal disk that provides a reasonably good thermal path to the housing. I did a test running the LED at 5W, and the steady-state temperature rise was less than 8 degrees C. Better than I expected.
For the electronics I found a better enclosure, and the PCB was designed to fit into this. I’ll add three PG7 cable glands: one for the electronics-to-LED head cable, and two for the daisy-chained power/RS-422 cables. The LED cable (~3 ft) will be soldered to the PCB, but the daisy-chain connections are made using two 8-contact push-terminal blocks. This allows most of the cables to be cut and wired on-site with custom cable lengths. All of the cable are made with the same Cat5 24 AWG outdoor-rated cable.
As I’ve said before, most inexpensive TIR lenses don’t work well with multi-LED packages. The initial version of the spotlights will just use the faceted reflector that comes with the enclosure, resulting in a fairly wide beam (~120 deg) with a less-than horrible amount of edge fringe effects. I still plan to try these semi-pricey ($7) Kahtod lenses that appear to be compatible with the Cree XM-L RGBW LED. But it will be a challenge cramming it into the enclosure I’m using, since it’s about one inch deep.
Ok, that’s all I can think of for now. Thanks to everyone for their suggestions and support!