Close

PewPew Lite Version 4.0

A project log for PewPew FeatherWing

A shield for Adafruit Feather boards with buttons and a LED matrix display, for simple games.

dehipudeʃhipu 08/07/2017 at 10:460 Comments

It's pretty crazy how much small details such a simple project can have. I just ordered the 4th iteration of PewPew Lite at OSHPark (that's the tenth iteration overall, if you count all the PewPew boards). The changes this time are prompted by two factors: simplifying and speeding up the software, and making the whole thing thinner. Also, making the LED matrix easier to attach. Here goes:


When I routed this board initially, I connected the columns for the red LEDs in the opposite order as the columns for the green LEDs — because that's physically more convenient, when one is on the top row, and the other on the bottom row of the pins. I didn't worry too much, and I said the famous last words, "we will fix it in software". And I did it in software, and it works fine.

However, CircuitPython on the Feather M0 board is not as lightning-fast at bit manipulation as C would be, and an additional iteration over 128 pixels just to inverse the bit order is a little bit visible in the frame rate. Not horribly, but hey, if we can get rid of that, that would be swell.

So I went back to the design, dropped a bunch of extra vias and made both colors use the same order of columns. And sice I was fiddling with that anyways, I also made the holes for the matrix pins larger, so you don't have to wiggle them so much to insert the matrix into the board. I also moved the chip to the center of the board and away from the matrix, so it's easier to get to all of the pins with the soldering iron.

Next is the thickness. I figured out that you can fit a small 110mAh LiPO battery between the two boards, at least with those Feather boards that have a prototyping area. That would really make this thing small, and there is enough room even if you use narrow headers. However, connecting and disconnecting your battery all the time would be super-inconvenient, and a switch hanging on a battery lead would look bad. So I added a small switch in the version 3.0 of the board (I didn't write about it here). But the only place where I could fit that switch was over the battery plug, which is incidentally the highest component on the feather board.


So the switch makes the whole thing about 1mm thicker. In version 4.0 I moved the button resistors a bit, dropped the diode (which is only required when you use more than 8 buttons), and made room for the switch on the edge opposite to the USB port.

Finally, I tried to space all the traces a little bit better, to leave more room between them and fewer opportunities for manufacturing problems. There are still a few tight spots, but it's better already.

Discussions