Hand tools and fabrication machines
Smart phone & iPad gaming is great and all love Candy Crush & Angry Birds, but nothing can touch the charm of making a game console by own and play with it. I made a game console using Arduino environment and you can easily make it by following the steps I explained. I uploaded most favorite "Snake Game" of Nokia phone as demo. You can develop your own game and upload it to the console. So, let's start to make it.
Step 1: Introduction
Arduino Uno is used to program ATmega328P. ATmega328P is the main microcontroller of Arduino Uno board and I used it alone for my project. For knowing how to use standalone ATmega328P you can follow "From Arduino to a Microcontroller on a Breadboard".
MAX7219CNG is used to drive dot-matrix display. The MAX7219CNG is a compact, serial input/output common-cathode display driver that can interface microprocessors to 7-segment numeric LED displays of up to 8 digits, bar-graph displays, or 64 individual LEDs. Included on-chip are a BCD code-B decoder, multiplex scan circuitry, segment and digit drivers, and an 8x8 static RAM that stores each digit. Communication with the MAX7219 is achieved through a convenient 4-wire serial interface (supports SPI). Individual digits may be addressed and updated without rewriting the entire display. Only one external resistor is required to set the segment current for all LEDs. The IC also includes a 150μA low-power shutdown mode, analog and digital brightness control, a scan limit register that allows the user to display from 1 to 8 digits, and a test mode that forces all LEDs on. Details are available in the datasheet.
If you are new in soldering you can follow the instructable: How to solder - the secrets of good soldering
Sparkfun.com guide: How to Solder - Through-hole Soldering
MAX7219CNG Datasheet:Step 2: Circuit Design
The circuit was designed using Eagle Layout Editor and schematic file is attached. Four tactile switch S2-S5 was used to control UP, DOWN, LEFT & RIGHT control. Switch S6 & S7 is used for option menu and game selector. S1 is used here as reset switch of microcontroller. Resistors R4 - R9 is used as pull up resistor any value may be 10K - 100K. Five LED (LED1 -LED5) is used for indicating the level for a game and the value of series resistors connected to LEDs should be 220ohm - 330ohm. As I used bi-color dot matrix display for that I used two MAX7219CNG drivers IC. You can use RGB matrix and that time three drivers IC will be required. Two resistors R1 & R2 is connected to the ICs for controlling the brightness of the matrix display.
Circuit diagram Eagle source:
Circuit diagram PDF:Step 3: PCB Design
PCB was designed using Eagle and board layout is attached. You can design your own PCB or may use it. I designed it for making my PCB using toner transfer method and for that I used 24mil trace size. For the top layer I used jumper wires because making two sided PCB using toner transfer method is not so easy but you may try it yourself. I tried to keep the board size comfortable for me but everyone has his own choice.
Board layout PDF:
Step 4: Programming of the Console
To work the Arduino Sketch properly you need LedControl library attached in this step. I upload the complete Arduino Sketch for Snake Game of Nokia phone. You can develop your own game. To upload the sketch first add the library to your Arduino environment, just upload the sketch to your Arduino, remove the microcontroller from the board and put it to your game console. I will upload more game for the console in future.
Program in ZIP folder:
Step 5: Assemble all the entire things
Complete the PCB and assemble all the entire thing together. It is good practice to use IC base for prototyping board without soldering the IC directly to the PCB board. It remove the risk to burn the IC during soldering and create a way to remove IC any time without de-soldering.Step 6: Completed Game Console
Image of my completed game console is uploaded. I apologize for the quality of the image. All images are taken by my smart phone.Step 7: Specification