I thought (and drew) some more today, but in electricals … It’s been suggested that an ATTiny85 be added to each individual pod to locally control the encoder (as opposed to trying to multiplex hundreds onto a master controller), that’s trivial. Controlling the RGB LEDs, while I can do that with PWM signals, that means three pins, whereas if I use a driver such as a WS2801, LPD8806, or even use APA102 LEDs, I only need two wires. And for those who can live without the clock line, that’s a single wire. Me? I prefer that clock line. Two it is.
So let’s break it down:
Using (up to) 12V input means adding a regulator. Then there’s the ATTiny85, the sensor, and the output for the LED driver (regardless of which).
the ATTiny85 will be crowded on all pins:
PIN1 - RESET
PIN2 - Sensor output A Interrupt - PCINT3
PIN3 - Sensor output B
PIN4 - GND
PIN5 - MOSI
PIN6 - MISO
PIN7 - CLOCK
PIN8 - VCC
The only pin that will be available is the MISO pin. The only time it gets used is when you need to program the ATTiny85 itself. After that it can be used for whatever. And if you prefer sticking with a 1-wire driver, that means the CLOCK pin is also available.
Notice there is no crystal/resonator listed. That’s because I’ll be using the internal clock.
Moving on, the WS2801 has three output channels and the LPD8806 has six. However, the WS2801 is much slower than the LPD8806 … But then, thinking about space, it doesn’t make sense to use an external driver, so I’ll stick to the APA102. It just means sending out more data for the entire “string” inside the pod.
For the sensor there needs to be a 4-wire connector, VCC, GND, A, and B. For the LEDs, another 4-wire connector, VCC, GND, DATA, CLK. Then you need the ICSP port broken out so you can actually program the ATTiny85. A few discreet parts like capacitors and resistors and you’re done.
There’s still the issue of how to disable the local controller in favor of the master controller when it takes over and starts sending data down the line to everything. he one thing I like in the video is that the pods seem to systematically shut off, not all of them at the same time. I like that, it gives it some fluidity. But that’s not easily done unless you can address each pod individually and there just aren’t enough pins available on the ATTiny85 for that kind of communication.
So … we keep brainstorming. For now we have two bundles of wires for each pod:
- a pair for VCC and GND
- a group of five that gets daisy chained: DATA_IN + DATA_OUT, CLOCK_IN + CLOCK_OUT, and another to act as common GND.

