ATtiny Game Boy
This is my version of a mini game console based around the ATtiny85 microcontroller. There are countless iterations of this type of game console utilizing an ATtiny chip that you can find online. I had a few of these chips laying around after finishing my previous project, Pocket Dice! and wanted to make my own! In my version, my goal was to celebrate the simplicity of the circuit by displaying it in a "see-through" case. Many versions utilize a custom PCB, but I thought it would be awesome solder all of the connections by hand and see them in the final product. My other goal included a way to easily change out the ATtiny chip to play different games. If you're looking for a quick weekend project, follow along for my complete build process.
Inspiration for this project came from electronoobs.
Supplies
- ATtiny85 microcontroller
- I2C 128x64 OLED
- Piezo speaker
- CR2032 battery and holder
- 2x 1K Ohm resistors
- 2x 6x6mm push buttons
- 1 mini slide switch
- Solid core wire
- clear acrylic
- 2 x ball-point pen springs
- 4 x M2 circuit board standoffs
- 4 x M2 screws
- Tools
- Wire cutters/strippes
- Tiny AVR programmer
- soldering iron/solder
- 3D printer (optional)
- PCB 12-in-1 multitool (optional)
Prototyping
The first step I always take when building up a circuit is prototype on a breadboard. The schematic above is what I followed and the pdf is available for download below. I usually start by placing all of the major components on the breadboard like the OLED, speaker, buttons, and then I work on wiring them all together. Again this is a fairly simple circuit which makes this easy to put together and hopefully solder by hand.
Once all of the wiring was complete, I uploaded different "games" (programs) to the Attiny85 to test them. I downloaded here. There are many different games available and can be found online. Some may require minor tweaking of the circuit or code to get working. I decided I liked the UFO/Stacker game because there are 2 games in 1!
Downloads
Soldering the Components
I found my PCB 12-in-1 Multitool to be very helpful in gathering the right components and testing parts of the circuit during this step.
This is the most challenging part of the project and it takes some planning. I will describe my thought process below and you can follow along with the pictures above. I started with a piece of 4cm x 6 cm protoboard and wanted to fit all of the components within that constraint. I did a test fit of many of the components before soldering. Here is my final layout:
On the front: buttons, resistors, ATtiny85 with socket connector, speaker, OLED
On the back: battery, switch
I was planning on putting the speaker behind the OLED and so I started with gluing that component in place with the wires facing up. I next soldered in the socket connecter for the Attiny followed by the buttons. Once they were in place I began making connections between all of these components. Because you are working from the top and bottom of the board, it is important to keep checking the orientation and confirming that you are soldering to the correct pins of the chip. The solid core wire is extremely helpful to make some of the longer connections. I used insulated wire to solder across other exposed joints.
Next, I soldered in the battery connector and the switch. Then, I added in the resistors to the buttons and made the connections to the attiny pins along with the speaker wires. Finally, I soldered the connections for the OLED pins to the Attiny and added the OLED.
Designing the Case
I designed the case in Fusion 360. I wanted to use clear acrylic to protect the components while still displaying all of the internal solder work. Thus, I created front and back pieces that would sandwich the PCB in between. The width of each piece would allow clearance between all of the components with an inset piece of acrylic. The case has 4 holes that line up with milled holes in the PCB. I used 4 M2 screws to hold everything together.
In the front piece of the case, I glued in 4 shortened female end of the PCB stand offs. I had these laying around but M2 nuts would work just as well with a little adjustment to the 3D model.
Next, I cut out 2 pieces of 1/4in acrylic to fit in both pieces of the case. I cut out 2 holes on the front piece that lined up with the buttons. On the back piece, I filed away the corners to fit the M2 screws.
I did a dry fit to test that everything lined up properly and it did! I did not glue the pieces of acrylic to the case because the fit was so snug but you would still have access to all of the components by unscrewing both halves.
On to the button mechanism!
Buttons
The case works and fits great but there is no way to activate the buttons. We are going to solve this problem and I decided to take advantage of the acrylic piece.
First, I harvested two springs from old ballpoint pens. I used wire cutters to trim the springs down until they were about 1-2mm taller than the black part of the button. See picture above. The height of the springs will adjust the tension of the buttons and can be tuned later.
I inserted the white (bottom part) of the buttons through the holes in the front acrylic piece. I assembled the case as described in the last step. Then I tested the buttons and tension with the springs. Once I was satisfied, I glued the blue thumb pad (top part) to the white (bottom part).
Final Thoughts
This was a quick, fun project to make your own mini game console. I am happy with the final design and enjoy looking at the internal components. The screw together case makes it easy to swap out ATtiny chips for different games or to replace the battery.
My goal for a future project is to program my own game to play on my ATtiny Game boy.
I hope you enjoyed this project and are inspired to make your own. Happy Making!