film grade controller for rgbww leds


I want to design/implement a controller for rgbww leds to use in film/photography illumination.

It has to be flicker and banding free, and also it cannot emit any sound in the audible range, which means that leds need to be controlled with pwm above 20khz, my plan is to use 25khz.

All leds will be emitting the same color.

rgbww leds integrate 5 different leds, red, green, blue, and two white leds with different color temperatures, to create different colors and intensities I need 5 pwm pins with different duty cycles running at 25khz with 0-255 resolution.

this is not my first arduino project, but it is the first using pwm and I am a little bit lost deciding what hardware I need.

I also plan to add wifi control to it.

I saw this video and I am wondering if an esp8266 + pca9685 will do the trick or if I need something else.

Thanks in advance.

How many, total, PWM pins are required? Do you need WiFi?

I said it in the initial post, 5 PWM pins and WiFi.

PCA9685 has a max pwm frequency of 1.5KHz. Even using an external 50MHz clock, it will only increase to 3KHz.

Maybe PCA9635? That has 97KHz pwm frequency. Only 8-bit precision, though. Are you sure that will be good enough?

The LEDs you plan to use: do they require constant current or constant voltage power supply?

I'm guessing your LED's have 6 pins (Common Anode or Common Cathode) and not 10 pins. That is going to complicate things since you can't use a single current driver on a string of LEDs. Have you considered using one LED per color?

Two of the six PWM pins on an Arduino UNO or Nano are driven by Timer0 which is used for millis() and micros() so you can't easily muck with the PWM frequency on those two. An Arduino MEGA can give you 62.5 kHz PWM on 12 of the 15 PWM pins.

These are the leds I want to use.

As you can see, the number of pins is 10, so it is just a package of 5 leds in smd format.

When I talk about 8 bit is 8 bit per channel, I need to control each of these components independently in a 0-255 range, 5 components, so total bits count would be 40, which in terms of color representation is very accurate.

Please post links correctly in future, like this. Just need to click the insert link icon. The forum software does not automatically detect links.

Link fixed, sorry.

Hmmm, I am reading a little bit more about precision in pwm for controlling leds, I guess that dynamic range and how we perceive the intensity variations light should be taken into consideration...

It never is as easy as it looks initially :slight_smile:

With the PCA9635 I suggested, you have 16 channels, so you could, at the expense of more high current drivers, organise your LEDs into 3 groups. This would give you, through code, effectively 9.5 bits of resolution on each of your 5 channels. For example if, on the red channel, the perfect level for lighting a particular scene was somewhere between, for example, 4 and 5. That's a 20% jump. But if you group your LEDs into 3 groups, you can set 2 groups to 4 and 1 group to 5, or 2 groups to 5 and one group to 4, giving two intermediate levels between 4 and 5. Do you see what I mean?

Hmmm, I am reading a little bit more about precision in pwm for controlling leds, I guess that dynamic range and how we perceive the intensity variations light should be taken into consideration…

If you switch from 8-bit PWM to 16-bit PWM you only get 244 Hz on a 16 MHz Arduino. To stay well above audio frequencies, I think the best an Arduino can do is 9-bit (31.250 kHz). If you go to 10-bit you’re at the high end of the audible range: 15.625 kHz.

You can simulate an extra bit of PWM by having two banks of LEDs at slightly different levels.

Yeah, I see what you both mean. Are there any circuits that will give me what I looking for? PCAxxxx or something else? I don’t mind spending a little bit more money if I have to.

No, what you are designing here is pretty custom, I think. So don't expect to find off-the-shelf circuits or code. But we can help you achieve it with the minimum components and help you with the code. First we need to know more. How many of these LEDs would you plan to use, for example?

I would need to do some tests first to know how many leds I am going to need, a rough estimate is 50 up to 100 maybe.

There are comercial products already doing this kind of stuff: example

Would be this appropriate for the job?

Those LEDs seem ok for displays, but not so for film illumination.
For illumination you need high current LEDs, not 20mA indicator LEDs.
Unless you pan to use hundreds/thousands of them.
All depending on the area you want to illuminate of course, which you didn't tell.

The main use would be to use the lights for creating accent colors in a room, no more than 40m^2.

Products like the Aputure Amaran MC RGBWW have a total output power of 5w using 12 leds, I think it puts the leds they are using in the same ballpark to those I put in the link a few messages ago.

Those LEDs might be a good choice. The main thing I would worry about is Footnote 1 which says that whatever the specification was it was measured at 1/10th duty cycle. Unfortunately they left out any indicators of what parameter went with what footnote! Imagine if the max power dissipation was 500 mW only if the LED was turned off 90% of the time!

Kind of odd that the light output of the Red, Green, and Blue LEDs is in millicandles but the light output of the two white LEDs is in Lumens.

I notice that the Blue output is about 1/2 the Red output and 1/3rd the Green output.

That LED driver chip can go up to 17V so you can put 5 LEDs in series on each of the outputs. If you use 5 driver chips you can drive 12 strings 5 leds for each color (60 LED packages total).

If you use two channels (10 LEDs) per color you would have two channels left over. Maybe instead use three sets of four strings on each chip. That would drive 20 LED packages with two chips with one group of 4 channels left over. To make everything come out even, you need 5 chips. That's 60 channels or 20 groups of 4.

This looks promising...

This looks promising...

Might be easier for most to read in English:
You might want to start by buying one of their evaluation board from Only $175.
Each chip can drive about about 20 of the 3.2V LEDs (75V / 3.2V = 23.4) so 5 chips per set of 20 RGBWW LEDs.