GameBoy5110

3,484

22

4

Introduction: GameBoy5110

Hi! I'm Álvaro Rubio, I wanted to build my own classical console for the lovers of retro games and this the result: The GameBoy 5110.

It has a 3d printed case inspired in the GameBoy Classic. And...

¿WHY 5110?

To make it even more retro I decided to use the original Nokia 5110's lcd screen with a blue backlight.

-I'ts based on Arduino, you can use the model you want, in my case I chose the Arduino Nano for the limited space.

-You have 6 programmable buttons for upload the games you love! Here I will program the Snake game.

-I used the 4 buttons of the left for directions and the right upper button it's the reset, you can change the controls in the arduino file.

-It has a piezoelectric as buzzer for the sounds.

Supplies:

Materials:

Tools:

  • Soldering Iron
  • Tin and flux
  • Glue gun
  • screwdriver

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Code:

This project was for 'Creative Electronics', a Beng Electronics Engineering module at University of Málaga, School of Telecommunications (https://www.uma.es/etsi-de-telecomunicacion/).

Firstly, I've programmed the 'Snake' game using the library LCD5110_Graph.h.

You can download it and get the manual Here.

I won't go deep into programming but if you have any you can questions ask me in comments! :)

Click Here to download my arduino files from Github, It's shared using MIT License.

Step 2: 3D Design

The next step is make the 3D printed case. I recommend to print first the case and later do the hardware to adjust it easier to the case. I used Freecad to make this design(first time using 3D) and I'm sharing the files using CC License.

There's 4 files:

  1. Back
  2. Front
  3. 'Gameboy5110' Logo
  4. Base to elevate the hardware.

It's possible that your prototype board or your hardware is different than mine and you need to make some changes to this design or your hardware..


This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Step 3: Hardware - Mainboard

First of all I made the prototype board for the arduino nano and LCD, I solded two female header 15 pins to a prototype board with the distance of the arduino pins and another 8 female header for the LCD conection. Watch that I put the 8 female header in the position of pins D3,D4,D5,D6,D7 that I solder to the arduinos header pins. The next 3 pins are VCC BL and GND, you need to solder VCC and BL to any 5V pin and GND to any ground conection of your board, with this we finished the first of 3 prototype boards. Using the female headers we can take out the arduino and screen when you want or you can replace it if something is broken without desoldering. You can see the photo with the result, then you need to connect the LCD with the dupont cables as extensor.

Step 4: Hardware - Buttons 1

Now we are going to make the left buttons for directions in the game. The use of resistor is opcional, you can use the internal resistors of the arduino inputs using the line INPUT_PULLUP(PIN); but you need to add or change some lines of the code, in the next step I will make an example of this way of connect buttons.

You have the scheme conections in the left, you need to solder 4 buttons following the distances between them from the 3d file or modify the design to adjust it to your new hardware.

You can use Analog inputs as digital just defining them as inputs.

The green cables are the cables that you need to solder to the arduino inputs, I used:

  • UP -> pin 16(A2)
  • LEFT -> pin 17(A3)
  • DOWN -> pin 18(A4)
  • RIGHT -> pin 19(A5)

Also you need to solder VCC to 5V and GND to any ground of the main prototype board.

IMPORTANT: I suggest to solder long cables between prototype boards, then later you can move and adjust it better in the case without broke anything.

Step 5: Hardware - Buttons 2

Now we have to make the 2 buttons of the right. In this case I will show you how to use the INPUT_PULLUP if you want to use the internal resistor.

I will use the upper button as reset, then I will solder one side to pin RST of the mainboard and the other side solder to GND.

In this game I don't need the second button but I will solder it to use for other games in the future, then you just need to solder one side to A1 and the other side to GND. When you want to use it remenber to use INPUT_PULLUP(15); and use it with digitalRead.

Step 6: Hardware - Power and ON/OFF

I will use a 9v battery and a slider switch, then I bought a battery holder that you need to solder the black wire to GND and the red wire to VIN, but before you will add the switch soldering the red wire from the battery holder to the middle pin of the switch and one of the other pins solder to VIN. Then you are closing the circuit.

Step 7: Hardware - Buzzer

To produce sounds I will use a piezoelectric, you can use what you prefer, you need to solder one wire to GND and the other wire to the digital pin 2 with this code. You can change it if you prefer.

Then I fixed it to the back of the battery holder with the glue gun to make it sound louder as you can see.

Step 8: Inserting the Nuts

Now you have finished the hardware of the console, try it before insert in the case!!

Once you are sure the console is ready, with the point of the solder you can insert the nuts melting the plastic in the four colums.

Step 9: Fitment - LCD and Sliding Switch

Your console is almost ready!!

I started with the LCD, just put it in his place and fix it with the plastic gun.

Then you can insert the sliding switch and screw it, you can use a nut if it's necessary.

Step 10: Fitment - Buttons

This is the hardest part, you need to put the buttons in their respectives holes, and you need to fix it with the exact height because if you dont do this, your button will keep pressed. To do this I inserted some piece of soft plastic sticker as you can see in the photo at the top and botton of the board , you can use anything with a couple of centimeters to keep the height.

Once you get the correct position for the prototype boards just fix it with the plastic gun and keep the position untill it dries. Do it with both prototype boards.

Now try if you can press all buttons correctly, then you are ready for the next step.

Step 11: Fitment - Closing

Now you will fix the plastic piece that we printed and it is used to make it more solid and then the prototype boards dont go deeper when you are pressing with force.

Just adjust it in the middle of both boards and fix with the plastic gun, press untill it dries and then you can put the battery holder in the rest of the space.

Adjust all the cables and the main board in the top of the case, and then you can close it.

Your GameBoy5110 is almost ready to use ;)

Step 12: Add the GameBoy5110 Logo

Now you have to fix the logo for the screen, for this I prefer to use a little bit of Superglue and paint it with a permanent marker if you like it!

Step 13: Enjoy Your GameBoy5110

This is the result! If you have any question ask me in comments and I will help you as soon as possible!

Hope you enjoy the proccess of making your own GameBoy5110 and have fun playing! ;)

Be the First to Share

    Recommendations

    • Trash to Treasure Contest

      Trash to Treasure Contest
    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest

    4 Discussions

    0
    AlvRM
    AlvRM

    Answer 17 days ago

    Yes it's possible, but you will need to modify the 3d file to adapt it your new screen size and modify part of the arduino code because the 5110 LCD screen have 84x84 pixels and your new screen maybe have other number.
    I'm using the library for 5110, then you will need to change the library for the suggested one of the manufacturer or a general library. Then change my 5110 library functions as drawline or drawpixel for your new ones.
    Also change the limits of the edges to your pixels number of your screen, then the snake die in your new edges.
    If you have any question or need help ask me! :)

    0
    jessyratfink
    jessyratfink

    25 days ago

    I thought I recognized that screen! I really like the blocky design :D

    0
    AlvRM
    AlvRM

    Reply 25 days ago

    Thank you so much for your comment! Hope you liked, It's my first project :)