This is a shitty add-on with one RGB LED controlled by twelve switches. The top row controls the red brightness, the middle row controls the green brightness, the bottom row the blue brightness. Each row of switches is like a 4-bit binary number, giving 16 brightness options for each color channel.
Should I have used knobs instead of switches? Maybe, but then it's not a shitty add-on, is it?
Each color channel is controlled by its own ATtiny10, reading an analog voltage and PWMing the LED accordingly. The ATtiny10s are programmed using [Simon Merrett]'s SOICbite footprint, which I *love*.
Should I have used a 555 instead of a microcontroller? Perhaps. But isn't this a better solution for a shitty add-on?
Now that I know the ATtiny10s work, it's time to publish the project! I am still waiting for some common-cathode RGB LEDs to arrive; until then I can just test one channel at a time.
The most recent KiCad PCB is actually a little different than the physical PCBs in the photos. I originally routed power to sides of the LED, but that's easy to fix with a little hidden rework on the underside of the PCB. The lovely Oshpark After Dark front side is unharmed!