As someone pointed out in the comments a few days ago (see? that’s what weblog comments are for!), there’s Jee Labs’ own Dimmer Plug to unload the ATmega of all PWM duties:
Hm, I really forgot all about that one… doh.
It’s a great suggestion, of course. And fortunately, it can easily be swapped into the RGB strip controller series. All I need is a slightly different JeePlug to tie things together:
The result has a 2×3 pin header which matches the one on my previous interface, so now it’s just a matter of swapping cables.
And new software, of course. Here’s a test sketch which cycles brightness and colors similar to the first test sketch:
Except that this no longer requires any processor attention once set. And there are a few extras: it’ll work with up to four independent sets of RGBW LED strips, and it has a “global” brightness control (currently set to max), making it easy to set up the color once, and then dim the whole shebang while keeping that setting.
Also – because it’s hardware now – the PWM happens much faster. I can’t tell the difference, but I have this hunch that our cat probably can. There’s got to be a difference between blinking at 120 Hz and 100 KHz!
I’m not sure yet which approach I’ll keep. Both software and hardware PWM work fine. Decisions, decisions…