This is an arcade gaming console based on a very simple chip, the ATtiny85. But this
is nothing new, these projects were online for a long time, but I wanted to make it too,
so, I’ve made a PCB. The ATtiny85 is this low power 8-bit microcontroller that has enough
flash memory for these small games. The pinout of this chip is very limited, so those who
made these games had to think of different ways to make use of more buttons. By the way,
you have links below for all the original posts with the creator of each game and a
huge thank you to each one, these games are quite fun.
Since the ATTINY is very cheap, you could upload a different game to multiple chips,
and like that, all you have to do in order to play a different game, is to swap the chip,
as you would do with any retro gaming console. You could have one for space invaders, another
chip for Tetris, another for flappy bird and so on.
The circuit of the board is very simple. In this video I will show you how to make this
board, order the PCB, solder the components, prepare the bootloader of the ATtiny85 and
how to upload each game using an Arduino, and also, I will show you a short gameplay
for each game. Make sure you subscribe and activate the notification bell. A huge thank
you to all my PATREONS, so let’s get started.
What’s up my friends, welcome back. This here is the PCB for this project. As you can
see it has 3 push buttons, a buzzer, the OLED display with i2c communication and the ATtiny85
chip. In the center, we have a sliding switch in order to turn the game on and off. And
by the way, on the back of the PCB, this is powered from a 3V button cell battery like
this one. This voltage is enough for the low power ATTINY and for the display. We can see
on the PCB some pulldown resistors and also a small LED.
We don’t solder the ATTINY directly on the PCB, because we want to be able to change
the chips with different games. For that we use a socket like this one. In my case I had
some 28 pins sockets that I just cut in parts of 8 pins. The push buttons are SMD but the
circuit is so simple that we would have space for trough hole as well if you want. The buzzer
is a passive one so it needs a PWM signal in order to beep. Active buzzer would also
work. I wanted to use this new type of i2c OLED display which is twice as big. But unfortunately,
the power pins are backwards and it also requires more current so I’m not sure the small battery
could handle this. Anyway, this is the circuit for this PCB.
As you can see is quite simple. We have the battery, the buzzer, the OLED display, the
ATTINY, 3 push buttons with pulldown, a sliding switch and the LED.
Port B4 and B3 from the ATtiny85 are used as data and clock for the OLED display. The
push buttons are connected to ports B0, 2 and 5. This here are 6 pins for the ISP programming.
As you can see on the PCB these are the SPI pins with connections for MOSI, MISO, clock
and the reset connection. We will use Arduino as ISP in order to burn the bootloader and
the code to these small ATTINY chips. I pass the schematic to PCB and start placing
the components. I don’t want a big PCB. In this case, the board was of 70 by 40 mm
with round corners. You can select that option in EasyEDA by creating a corner radius.
Once I’ve decided more or less where to place the components, I route manually all
the tracks with a width of 0.4mm. I also add some 3mm vias in case I want to create a 3D
case and screw this inside with some 3mm screws. Once the PCB is ready, run the design rule
check. Then click this button here and generate GERBERs. From here, I can order directly at
JLCPCB. This will redirect me to JLCPCB.com and the GERBER fill will automatically upload.
Once uploaded, let’s select some settings. I select 5 PCB in order to take advantage
of the 2 dollars offer. The thickness will be 1.6 and I select the white solder-mask
color. Save to cart and make payment and that’s it. Order process from JLCPCB is very fast
and easy and for only 2 dollars plush shipping you can have the PCBs. I don’t know for
other countries, but for Spain shipping is only 6 more dollars so we could have 5professional
made PCBs for less than 8 dollars. In just 10 days I receive the PCBs to Spain.
JLCPCB did a very good job as always. Solder-mask is right on spot, good quality pads and there
are no visible errors with the PCB. Now that we have the boards, let’s solder
all the components. Gather the parts. The battery socket, 3 push buttons, one sliding
button, one buzzer like this one, one OLED display with i2c communication, a DIP socket
for the chip and one ATTiny85. We also need a few 1k resistors and an LED. You have the
GERBERs, the part list and each example code together with a step by step tutorial below,
on electronoobs.com, so check the description. I start with the 8-pin socket. For that I’ve
cut a part from a bigger socket because I don’t have an 8-pin socket.
Next, I solder the push buttons. Now I add the sliding switch.
Solder the buzzer with the pins facing the bottom side of the PCB so the sound will get
towards us while playing. I solder the LED here and the resto of the
SMD resistors. Remember we have a few resistors on the back
as well. Finally, I flip the board and solder the battery
socket. I will solder last the OLED screen. And there you have it, the gaming console
is ready. All is missing is an ATTINY85 with a working
code. For that, place an ATTINY chip inside the 8-pin socket. Be careful and make sure
which is the 1st pin and don’t place it backwards. Now I solder some male pins for
the ISP programming connection with wires and connected to an Arduino UNO. See the schematic
for this below, but the connections are very easy. Connect RESET, MOSI, MISO and CLOCK
to pins D10, 11, 12 and 13 of the Arduino. Place a 10uF capacitor between ground and
reset pin of the Arduino. Now plug the male pins into the PCB on the SPI port. I’ve
used different color wires so I don’t mess up which wire is MISO, which is MOSI and so
on.
Now we are ready to program the chip. For that open Arduino IDE. Connect the Arduino
UNO with the USB to your PC. Go to examples and open Arduino as ISP. Select the UNO board
and the com and upload this example to the Arduino. Now connect the ISP wires from the
Arduino to the PCB. For the next step, one option is to go below
and download ATtiny_master boards in a zip file and copy that to the Arduino directory
in program files in the hardware folder of the Arduino.
The other option is to copy and paste this JSON link into the Arduino preferences. Then
go to the Arduino IDE, to boards manager. Here search for ATTINY85. Select this board
and install it. Now if you go to bords you should be able to select the ATTINY type of
board. Select that, then select the ATTINY85 model. As for the clock select the internal
one of 8MHz. Go to programmer and select Arduino as ISP. This will sue the code on the Arduino
UNO to create the SPI communication and upload codes to the ATTINY. But first, click burn
bootloader. This will burn the internal 8MHz bootloader to the ATTINT85. When you get the
message bootloader burn complete, we are ready to upload any code.
Go below and download the games compatible with this PCB. We have these games here. Select
any that you want. Let’s start with frogger for example.
Open the Arduino code. Make sure you still have the ATTINY85 board selected, the internal
8MHz clock and Arduino as ISP as programmer. Make sure the Arduino is connected to the
PCB for the SIP and click upload. The buzzer will start beeping and when you get the message
upload complete, disconnect the SPI wires from the PCB. Add a 3V battery and flip the
switch. And there you go, let’s play some frogger. With the left and right buttons we
move the frog. Press both buttons at the same time and jump forward. The idea is to take
all the frogs across the street. If you press and hold the left button, we can toggle the
sound on and off. Press and hold the left button together with the right button you
can reset the score. Ok, next, in the same way I now upload another game, in this case
space attack. Ok, next game I upload is the UFO and stacker. This is a 2 in 1 game. When
you start the console, you get the stacker game. When the console starts, if you hold
the right button and press the left one, the game will start with UFO game, which is basically
a flappy bird game. Jump and avoid obstacles. We also have a tetris game, the only problem
is that the screen is flipped 90 degrees. If you have no problem playing like this,
well, it could be quite fun. Next we have the PONG game, or in this case is called BAT
BONAZA. Another game is the Wren Rollercoaster. Finally, we also have a Morse converter, which
is not an actually game, but it could eb fun. Type in the liens and dots, and it will print
the Morse character. This should be a neat way for you to learn Morse.
So, guys, these were all the games compatible with my PCB. Below you will find links to
other ATTINY games but with a different schematic with more buttons or a potentiometer. I also
recommend you this website with some very nice games and a different schematic as well.
Make your own PCB and try different games. A 3D printed case for this PCB should also
be a nice option. A better plan is to make separated PCBs for the ATTINY chip, each with
some male pins, so it would be easier to swap, just as old gaming conoles.
I hope that you like this video and learned something new. Feel free to leave a comment
and if this video thought you something new, give it a like. Consider supporting my work
on PATREON. Thanks again and see you later guys.