I'm learning a lot throughout this process, and for the most part it's been a positive experience. I keep missing things or finding out there's an angle from which I should be looking at things that I didn't even know existed. But hey, nobody knows everything, and nobody is perfect, and it only costs $23 to get another set of prototype boards manufactured and shipped here from PCBWay.
I thought I was finished with the circuitry when I succesfully added the ICSP programming pads, but then I caught a twitter post by @Nick Sayer suggesting the #badgelife folk use an AP2331 between the SAO 3.3v bus and the power supply coming in off the badge. This will help protect the circuitry when hot swapping SAOs. This was probably unnecessary but I liked the idea of adhering to higher standards than the SAOs need in case I end up trying to produce some other circuitry in the future.
The addition of this power protection took 2 board iterations because I totally biffed the way I connected the bypass caps on my schematic. Sometimes I really just don't pay attention, or have a severe lapse in my ability to pay attention to details.
Somewhere between board revs 4-7 I also had to connect the SCK pad for the EEPROM chip that I somehow just neglected to connect to anything (I used a wire jumper in the mean time to make things work).
For the latest iteration of the board, I also paid a little bit more attention to the actual layout of the parts. I grouped all the 10k resistors together, lined up the additional power protection components together, left the single 0 ohm jumper off by itself, and grouped and labeled the resistors for the LEDs accordingly so you can easily know which resistor pairs with which LED and can swap them out as you please to accommodate different color LEDs. I am satisfied with the level of flexibility built into this board and I hope I see some people modifying it.
At this point I'm happy with the art and the circuit. So I guess I'm done with the hardware design?
I made a larger order with digikey than I'm used to and I eagerly await it's arrival.
I didn't really foresee this, but I'm starting to feel really silly about calling this the shitty pixel. I don't mind profanity, but the name is wearing on me. I thought it would be funny to make a shitty pixel with a shitty add on connector. And it was for the first few days. What's in a name? I'll keep calling it the shitty pixel, but I removed the printed name off the back of the PCB to help satisfy myself.
At this point, I've commited to hand soldering all the SAOs that I'm going to make this year. I'll look into panelization, stencils, solderpaste and DIY reflow at some point in the future. The way I stumble through the learning process makes me feel like I'll add some serious delays to the production time for these boards if I try to learn anything else through this process.
I'm considering trying to share the circuit and code I've ended up with because it seems like a really good framework for an attiny based SAO with 3 channels of LED control. Good for the blinking. I was able to straight-up copy the schematic to a second SAO, the reusability is very nice.
On the software side of things, I have a python script on a Raspberry Pi that will flash and confirm Badge ID information written to EEPROM. I'm maybe 75% of the way through writing all the animations I want on the SAO. This is super easy to update with the ICSP pads, very happy with that.