In this project we are going to build a 8-bit portable retro game console using Arduino, this project was inspired by a project called Hackvision that was made by Nootropic Design, they do have a diy kit that you can buy but I wanted to use my own parts and design.
Step 1: Parts and Software
1. Arduino (I am using a uno clone)
2. One push button (Press for on release for off)
3. A 4-way joystick (or four pushbuttons)
4. two Composite output plugs (Yellow and red)
5. Two Resistor's 470 ohm
6. One Resistor 1k ohm
7. Lots of wires.
8. A case to house the project (I am using a old plastic container)
The code that we will be used is from the Hackavision project and is a bit old, The problem is that the new Arduino compiler breaks the program. So we will have to download Arduino 1.0.
I would also recommend to read abut the Arduino IDE HERE
Place these into your Arduino library folder, this is usually in you Documents folder
TVout library [Download]
Controllers library [Download]
Space Invaders [Download]
These are some more game's available and you can find them HERE
Step 2: Connecting Up Video and Audio
To connect the video we will need one 1k ohm Resistor and one 470 ohm Resistor, We will also need the yellow Composite plug.
Image taken from Here
So the pin sticking out of the bottom of the RCA connector will go to GND on the Arduino. Then get the 1k Resistor and connect it to D7 on the Arduino, Then after you do that get the 470 ohm Resistor and connect it to D9 then connect both of the Resistor's to the back of the RCA Connector. Also if you live where your tv stranded is PAL connect a wire from ground that is next to D13 and and then connect that wire to D12
Example here from fritzing
Close up of the video connector
To Connect the Audio all we need is that last 470 ohm resistor we will connect that to D11 and the other side to the back of the other RCA Connector, Then connect a wire from the ground of the video plug to the ground of the audio plug
Both the video and audio connected to the Arduino (Video on left, Audio on right)
Now that we have connected both the video and the audio we need to test them, first we will test the video by opening the Arduino IDE that we downloaded earlier, then go to File -> Examples -> TVout -> DemoPal (Or DemoNTSC) depending on where you live, after the demo files open goto Tools -> Board -> Arduino UNO (or if you are using a different board choose that in this menu. now before you plug in your Arduino goto tools -> Serial Port's you may see some options just remember then for now, Now click off the tools menu and plug in your Arduino, then wait 2 seconds and go back to the Serial port menu and look for any new options, if there are two new options that appear choose the one that contains tty in the name. Then after doing that press the upload button, once it has uploaded unplug the Arduino from your computer and connect the video cable to your tv. You should see a demo on your tv. if you don't check if your tv is set to the right input, also check if the Arduino is powered right, if you have checked these and there is still no picture then check if all the cables are wired in right
Even though there are demos for testing the video there are none for audio, So I had written a small test script
Please turn down you tv volume before powering the Arduino as It will play a high pitch sound
Sound Test [Download]
now you just need to click upload as the Arduino IDE will remember what settings you had from before.
Next we will connect the joystick
Step 3: Connecting the Joystick and Buttons
First lets connect the fire button, you can use any push button
First run a wire from GND to one pin on the button, Then connect the other pin to D10 on the Arduino
You can use eider a joystick like this
image taken from [Here]
or you can use four push button's
if you were using four push buttons just run a wire from GND on the Fire pushbutton to all the GND connector on the buttons then, connect the
Up button to D4
Down button to D5
Left button to D3
Right button to D2
and if you are using a joystick you will see three pins with every button, the pin on a Ange is the GND pin run a wire from the push button to each of the pins. then on the pin closest to it, is a on pin that is activated when the joystick is pressed. Also the buttons are opposite so if you push the joystick to the left it will press the right button.
Connect the joystick to the same pins on the Arduino
Up to D4
Down to D5
Left to D3
Right to D2
Testing the joystick
Now that we have wired up the joystick and fire button we need to test it. just like before I had made a program but this program will read any button presses and will show it on the screen
Step 4: Upload the Code
Now after we installed and tested all the hardware we need to upload the game's, you can download then from the first step and you would upload it just like before.
Also post images of you version and I will feature it here!!, As you can make your own arcade system with a CRT Tv or do as I did by making it a small portable console.
Rob Cai made it!