I've received the first shitty pixel boards. While I'm amazed at how fast the turnaround was, I think I need to slow down and think slightly more between steps.
Nearly instantaneously after my initial design was approved, I discovered/realized a few things that I would need to change. First off, I didn't know that there was a KiCad footprint for the SAOv1.69bis standard. I instead used a generic 2x3 pin header footprint. While this technically works, using the generic footprint allowed me to place the footprint so close to the edge of the board that if you solder on a shrouded 2x3 connector like I plan to, the connector overhangs the board. I would've realized this had I used the 'official' KiCad footprint from the beginning. Slightly frustrating but I'm really happy to learn.
Next to think about are the colors. I mentioned this in a previous post but I haphazardly chose white soldermask and black screenprinting when I saw the cost of the black matte soldermask I had initially considered. I don't know why I didn't choose black soldermask with white screenprinting, because this would've at least shown me a visual approximation of my intended design. Instead, I got this wacky inverted colorway but again, it has me thinking about what I want to do for the next iteration.
I have components shipping from digikey at the moment but wont be able to assemble this and test it for a few days. I did get some shrouded connectors delivered and tried setting up the shitty pixel on top of an actual badge to see if I was happy with size and placement of the badge connector. I think I might need more mounting options. It might be nice to be able to solder the connector onto one side or the other so that it can hang off to the left or right of the badge it's attached to. I'm pretty happy with the size though, I didn't want to go 100x100mm thinking it would be far to big, so I started at a 50mm square.
As previously mentioned, the backside of the add-on needs some attention. I've mocked up a face to put on the back but I haven't settled on that whatsoever. I also believe I'll be removing "defcon 27" from the back as this is an unofficial add-on, I don't feel I have the right to put the defcon name on this, plus shitty add-ons show up outside of defcon. Everything I needed to do to allow light to pass through the substrate seems to be correct. I'm excited to see this with actual LEDs mounted to it.
To RGB or not to RGB ?
I designed this board as the thoughts were flowing out of my brain. The first thought three individual single color LEDs. One red, one blue, one green. With the new 1.69bis SAO standard, I keep thinking about how fitting it would be if this add-on had some WS2812b's on it that could be controlled via it's badge host. This seems like a great meta idea being that the design of this add-on is based on a WS2812b but also because it will force me to learn a little more. I believe this would also make the add-on a lot more interesting to others as well.
If I do switch out the single color LED's for WS2812b's, I want to be able to have an onboard program running the lights with the option to switch to the data stream coming from the badge. I have no idea how to handle this intellegently, but I figured I could put a physical toggle switch on the add-on to switch between data streams. I tested this with an arduino running a neopixel example sketch with two different animations on two different pins. I wired up a few neopixels to the arduino with a toggle switch in line to switch between the two different data sources. I switched it back multiple times while the program was running and it seemed to handle it OK. Clearly there are some timing hiccups when you switch between the streams, but eventually (~1-2 seconds) the correct animation starts playing. This is proof enough for me that I could have an on-board program running with a physical switch that toggles to the badge's pixel data stream. I'm sure there's a more eloquent way to do this, but I'm satisfied with this result for now.
Second thought about switching to WS2812b's is that I'll need to make the substrate passthrough windows bigger because WS2812b's are bigger than the 1206 SMD leds I'm currently using.
Third thought is that thought two would cause me to have to increase the overall size of the add-on which I don't want to do.
Fourth thought is that I could feed the pixel data stream out one of the big oversize contacts on the front of the board, allowing you to chain the actual add-ons together. This sounds really cool in my head but might be more difficult than it's worth.
I think I'm going to hold off on doing anything until I get the components from digikey and assemble the first prototype.