ATtiny85 + TLC5940

JoeN:
That's good. But I don't think the code is really using 100% of the CPU in the normal sense of the idea. The CPU is always running at 100% - it's just running the main loop code over and over - it's not a infinite length blocking call or anything like that. If you put something in your main loop to read the pot you will be fine, it will probably be reading that pot a few thousand times a second.

The CPU spends most of its time generating a clock output on a pin at about 4MHz (the tlc5940 needs a clock signal for the PWM). That's 100% in my book...

I got the pot working. I couldn't use analogRead() because it blocks until the conversion finishes. I need conversion in parallel so I can keep the PWM clock going. It wasn't too hard to program the ADC directly though.

Register level AVR programming is turning out to be very easy, I almost prefer it to using the Arduino library (which is VERY inefficient BTW). You can do some cool stuff, too, eg. flip the state of digital output pins directly (no read-modify-write needed) using the "PIN" register. I can't think why they didn't include a function in the library to use that (maybe some early AVR chips can't do it)

JoeN:
What is that blue box anyway, is that a fancy despiking cap? I don't have any that look like a blue box, that is new to me.

It's a 10uF polyester capacitor, they come in little boxes.

Its there for decoupling. The LEDs are common anode and draw power from that rail (the yellow wires). I'm going to connect 15 LEDs (5xRGB) and they might all switch on at once...