I always wanted to make a version of the PewPew with discrete LEDs, but it didn't make much sense for many reasons. It looks worse, as you lose the diffuser that is built into the LED matrix, and it costs more, even if individual LEDs are cheaper, having to solder them all makes the costs grow. The resulting display is smaller, but PewPew's display is already too small, and people prefer the versions with larger matrices. Finally I convinced myself of two advantages: first, it's really slim, as the LED matrices are usually really thick, and individual LEDs aren't, and second, I can use bi-color LEDs to get back to the original color display experience.
Once I started to optimize for flatness, other decisions came naturally: touch pads in place of buttons, and USB socket cut out of the PCB itself.
If we want to keep it thin, of course we need to drop the battery, and without the battery we don't need the power switch (though I am leaving footprints for both of them on the back, so they can be added later by the user).
The final touch is replacing the thickest part, the voltage regulator, with one in a slightly smaller (and thinner) package.
The LEDs are connected in a cross-linked fashion, so that sending current one way will light up one color, and the other way the other color. I will be alternating that really fast, so you can get both colors too. This requires some custom C code to be added to the _pew library in CircuitPython, but it's nothing complicated, and keeps the number of pins needed by the matrix the same.
Routing the traces for the touch pads is a bit of a challenge, because you don't want the user to touch the traces accidentally while playing. So I've hidden the vias under the microcontroller chip (removing the thermal pad and making sure the vias are tented), and routed everything at the top, as far away from fingers as possible.
Finally, for easy programming, I broke out the SWD and SWC pins (which are also used to drive the LEDs) to a header of staggered holes on the side. You can insert a male pin header in there temporarily, and remove it when flashing the firmware is done.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.