How to Make a Game Console

by Vicente Rodríguez Rapetti in Circuits > Microcontrollers

397 Views, 0 Favorites, 0 Comments

How to Make a Game Console

2a8b1294-c7be-44a9-a52d-4f20218c8b95.jpg
18422207_1221019001340217_5695156264073041833_o.jpg

Hello, my name is Vicente Rodríguez Rapetti, and I'm currently studying in 3rd year at the Escuela Técnica Roberto Rocca from Campana, Buenos Aires in Argentina. Our teachers gave us the assignment of developing a Smart Lamp (you may find my schoolmates' instructables by that name), but they saw I was working on a game console in the meantime, so they offered me to work on this instead of the lamp. The idea came from a YouTube video about a game console made using an Arduino.

Supplies

D_NQ_NP_819032-MLA41281145426_032020-O.jpg
D_NQ_NP_924881-MLA31115483520_062019-W.jpg
led-matrix-500x500.jpg
09190-03-L.jpg
D_NQ_NP_769045-MLA40366402490_012020-O.jpg
311bGhoaiPL._SX342_.jpg
D_NQ_NP_711039-MLA40421393342_012020-V.jpg
D_NQ_NP_855713-MLA44575185419_012021-O.jpg
31uXirTeIJL._SR600,315_PIWhiteStrip,BottomLeft,0,35_SCLZZZZZZZ_FMpng_BG255,255,255.png
D_NQ_NP_972432-MLA31982094545_082019-O.jpg
SkyWay Cable USB a Micro USB 2.4A 1.jpg
AD319-2.jpg
male-male-jumpers.jpg

Electronic components:

  • 1 - LCD 16x2 with I2C Module [Text screen]
  • 1 - TFT ILI9341 Display [Main screen]
  • 1 - 8x8 LED Matrix with MAX7219 Module [Secondary screen]
  • 4 - Push button [Buttons]
  • 1 - Analog Joystick (Arduino) [Control stick]
  • 5 - Resistance (1kΩ) [For pull-down push buttons and TFT connection]
  • 2 - Switch [ON/OFF and sound control]
  • 1 - ESP WROOM 32 Devkit [Microcontroller]
  • 1 - Power Bank (5V) [Battery]
  • 1 - PCB/Breadboard [Circuit connections]
  • 1 - Usb-MicroUsb wire [Connecting the battery to the microcontroller]
  • 1 - Passive buzzer [Sound effects]
  • About 40 - Jumper wires [Connections]

Case materials:

You may make the case however you want to (3D printed, for example) according to the materials and tools at your disposal, but for this tutorial I will list the materials I have actually used for the functional prototype.

  • Fibreboard (2 - 220x60x3mm / 2 - 220x160x3mm / 2 - 154x60x3mm)
  • 2 hinges
  • Foam double-sided tape
  • EVA foam
  • Glue
  • About 15 screws
  • 8 nuts

Tools:

  • Tin welder (and tin, of course)
  • Gimlet
  • Screwdriver
  • Drill
  • Jigsaw
  • Hand saw
  • Hot glue gun

Designing the Circuit

Esquema1.jpg
Esquema2.png

In this step, we are going to draw the circuit with the electronic components or design it digitally (you may try some programs like Tinkercad). You may take the drawing as a reference, but the digital scheme is the updated one.

Electronic Assembly

Montaje.png

In this step, we're going to make the electronic circuit first. If you are planning to use a PCB, it may be better to do this step with a breadboard so you can change how wires are arranged later. For the ON/OFF switch we are going to cut the USB wire and weld it to the switch.

Sketching

Sketch1.jpg
Sketch2.jpg

In this step, we are going to draw the shape of each piece of the case, including the space where electronic components will fit. It is also a good practice to draw the pieces together showing how they are connected. For sketches, we don't have to size the pieces, but both the proportions and the needed standard components are determined at this stage.

Croquis

Croquis1.png
Croquis2.png
Croquis3.png

Here, we are going to size the pieces of the case keeping the proportions we used in the sketches. The difference between croquis and sketches is that croquis are in 2D and their purpose is to show the measures, which are not included in sketches. Croquis have their own rules and we have to respect them. In this case, they are the IRAM rules (Argentina).

Rapid Prototypes

imagen_2022-11-17_001009885.png
Prototipo rápido 2.jpg
Prototipo rápido 3.jpg

In this step, we are going to make a prototype using the measures and proportions from the croquis we've made, in order to check whether they are right or we should make some changes. The prototype doesn't need to look good or be made of the material we are going to use. We should take note of anything to keep in mind for later stages.

3D Modelling

imagen_2022-11-17_001349683.png
imagen_2022-11-17_001411654.png
imagen_2022-11-17_001444169.png
imagen_2022-11-17_001501722.png

In this step, we are going to make a 3D model of the console's case, including any changes we decided in the previous step. In order to do this, I've used Onshape and I highly recommend it. You may take a look at my 3D models in case they are of any help. We will create a different part for each piece of the case, and then make an assembly including every piece, electronic component and standard component.

Manufacturing Plans

imagen_2022-11-17_002717750.png
imagen_2022-11-17_002752295.png
imagen_2022-11-17_002826927.png

At this point, we only have one step before building the case for the functional prototype, and it is making the manufacturing plans. On this purpose, we may do it in Onshape from the pieces we have already modeled (respecting their corresponding rules). These plans may be useful for building each piece for the final case.

Building the Case

Case 1.jpg
Case 2.png
Case 3.jpg

Now it is the moment of making the case where we will be able to play. First we are going to cut te space for the screens using the jig saw. After that, we stick the other 3 pieces with glue and let it dry. Then we are going to cut the space for the hinges, and screw both of them with the nuts. Finally, we have to do the hole for the buzzer to fit in using the drill, and the ones where the switches fit under pressure with the jig saw.

(optional) Making the PCB

PCB.jpg

This step is actually not necessary, but it is here for people who want to make a PCB instead of using the breadboard. We may either use an experimental board or print one. In my case, I printed my own PCB (I have used Kicad for the design).

Anchor Electronic Components

Anchors 1.jpg
Anchors 2.jpg
Anchors 3.jpg
3e6ac95d-3f03-409b-bb63-6f1cac1b01a1.jpg

After we have the case done, we have to fit the components in it. In order to do this, we are going to use the anchors we have from the previous steps. The screens and the joystick will be bolted. Here we use the gimlet to make the place for the screw. Before screwing the joystick, I had put an EVA foam slice below to protect it. For the ESP32, I have screwed it to EVA foam and a piece of wood that remained from before to avoid an overheat, and then stuck it to the case with foam double-sided tape. With this same tape I've stuck the power bank and the PCB, giving it some space for the pins from the wires. I anchored the buzzer using the hot glue gun and stuck the push buttons to the top with glue. Finally, I have made 2 holes for the wires from the joystick and the buttons.

Programming

Arduino_Logo_Registered.svg.png
imagen_2022-11-17_021105942.png

This step is the largest; we have to write the code of the videogames for the console to work. Luckily for you, I have already done this part, and I'll also share the code with you to use it and improve it adding more games or making the ones did better if you want to.

You must have Arduino IDE already installed with the ESP32 drivers. In this folder you will find the code and the libraries you will have to add to Arduino IDE for the program to work (move the folders directly into Arduino IDE's libraries folder). If you download the folders from Arduino IDE they may have a problem with the screen that I have already fixed.

After every library is installed, you may change the name of your console by opening the code file and changing the space where it says "NAME". We are ready to upload the code.

NOTE: The code is in spanish. If you want to translate something you may and it is not really hard, but I am thinking to do a translated version of the code in the future.

Decorate

9a8d7dae-9ec5-4107-aed3-a52ab0b07c74.jpg

We have a functional game console, with different games like Pong and Pacman. Now we only have to decorate it however we would like it to be.

In my case, I have stuck a piece of EVA foam on the parts where there are wires and painted the buttons like the PlayStation ones (I know I'm not really creative).

The End

We finally have our own functional game console. We may think about our next step if we want to improve it; for example, I will 3D print the case using the model.

Any updates will be notified in the same folder. If you have any comments or questions, please leave a comment or write me an email at vrodriguez@etrr.edu.ar

Thanks for reading and hope to see you soon in more Instructables.