Ardu-pong! the Arduino based pong console

Picture of Ardu-pong! the Arduino based pong console
A while back the instructables robot made a post on Facebook about some guys who played pong on an Arduino (
but after looking around, i saw that everyone who did this was only worried about making it work. and often resulted as a very hard to use system with only potentiometers to use as controllers. so in my attempt at this, i decided that it needs to be much more polished if it is ever to be something of use. so heres how i did it:

UPDATE! ive managed to shink it down into an entire atari themed mint tin! check it out here 

Remove these adsRemove these ads by Signing Up

Step 1: Get the stuff.

so to do this, we are going to need a couple of things.
first off, we obviously need an Arduino, we are also going to need an atari joystick, a rs232 socket, a rca jack,  1Kohm resistor and a 330 ohm resistor, a switch for power, and something to cram all the guts into , i decided to use a busted digital tv receiver as my enclosure  

Step 3: Install the rca jack.

before we install the rca jack we need to freeform the following circuit off of the pins of the rca jack .
then we can drill a hole in the back of the enclosure for the rca jack to come through and then glue it in place.

Step 4: Wire the serial port

Picture of wire the serial port
now we have to wire the serial port to the pins on the arduino so we can get input from the joystick.
so using the following pinout, connect the following to the corresponding pins on the Arduino

pin1 up, to Arduino pin 7
pin2 dn, to Arduino pin 6
pin6 fire,to Arduino pin 2

1-40 of 93Next »
goldenshuttle5 months ago

kyle, this is a good post..many thanks...

kidos1007 months ago
Can you use buttons?
kyle brinkerhoff (author)  kidos1007 months ago
Could you point out in the code where to change it? I can't seem to find it.
kidos100 kidos1006 months ago
Also, why do you need the serial monitor?
kyle brinkerhoff (author)  kidos1006 months ago
honestly i did this 4 years ago, i dont remember much of the details associated with it
AtariSega8 months ago
Would I be able to use the Arduino to burn the game into the ATmega328 so I don't have to connect the whole thing to the computer each time I want to play the game?
kyle brinkerhoff (author)  AtariSega8 months ago
actually after the code is uploaded, its never really connected to the computer after that
donjuanzx91 year ago
This should have been implemented to use pots, everyone has potentiometers not everyone has the joysticks you use.I have got pong on my screen but cant move the paddles.
donjuanzx91 year ago
Can we use a pot instead?
zomfibame1 year ago
This is very cool; well done. I am diggin' this. ... it's been a very long time since I've played Pong so I might be mistakin' because I was about 7 and now I'm in my mid 40's... but if I do remember correctly, the original Pong game came with knobs that basically worked like potentiometers. they looked a lot like over-sized dimmer switches for regular home lighting but they were black if memory serves me right. ... so this might be why when a lot of other people do a home-made Pong they use potentiometers.
You could use a Commodore 64 controller if you don't have an Atari one but you do have a C64 one. A Sega MegaDrive/Genesis controller MIGHT work, but that would need to be a official SEGA one, and even then i'm not sure.
Sega and most joystick producers followed the layout that Atari used, you could plug a megadrive/genesis controller into an Atari2600 and it'd work fine, so there shouldnt be any issues here I'd think.
doglitbug2 years ago
Why a 330 ohm, the image on the tv_out page has a 470
is there anyway of making it single player?
I cant get my arduino to output a tv signal ive tried every sketch i could find tried diferant version of the library and every tv in my house but i dont get any signal i was close one it showed text then went white diamond to black then repeats so i almost had it just it was off
can you use a sega genies controller and a serial cable
yes, you can use a sega master system controller too
XDule 973 years ago
I have a question. Does the controller output a analog or digital signal. If it outputs a analog why put it on pin6 and pin7 for an input. If it is a digital then its ok. And one more thing, will this damage the arduino. Please answer this, i really want to build this. Thanks for the instructable its awesome. :)
the atari controller doesnt output a signal. it's basically just 6 momentary switches. No ics or anything of that sorts.
Nicky_G3 years ago
Hey, I was able to get my arduino to display imagines on my tv, but I'am unable to get the pong code compiled I get this error:

sketch_apr24b.cpp: In function 'void drawGameScreen()':
sketch_apr24b:100: error: 'class TVout' has no member named 'vert_res'
sketch_apr24b:101: error: 'class TVout' has no member named 'horz_res'
sketch_apr24b:107: error: 'class TVout' has no member named 'vert_res'
sketch_apr24b:114: error: 'class TVout' has no member named 'horz_res'
sketch_apr24b:115: error: 'class TVout' has no member named 'horz_res'
sketch_apr24b:118: error: 'class TVout' has no member named 'vert_res'
sketch_apr24b:119: error: 'class TVout' has no member named 'horz_res'
sketch_apr24b:119: error: 'class TVout' has no member named 'horz_res'
sketch_apr24b.cpp: In function 'void drawMenu()':
sketch_apr24b:145: error: '_8X8' was not declared in this scope
sketch_apr24b:146: error: 'class TVout' has no member named 'print_str'
sketch_apr24b:148: error: '_5X7' was not declared in this scope
sketch_apr24b:149: error: 'class TVout' has no member named 'print_str'
sketch_apr24b:150: error: 'class TVout' has no member named 'print_str'
sketch_apr24b:151: error: 'class TVout' has no member named 'print_str'
sketch_apr24b:152: error: 'class TVout' has no member named 'print_str'
sketch_apr24b:157: error: 'class TVout' has no member named 'horz_res'
sketch_apr24b:158: error: 'class TVout' has no member named 'vert_res'
sketch_apr24b.cpp: In function 'void setup()':
sketch_apr24b:186: error: 'class TVout' has no member named 'start_render'
sketch_apr24b:188: error: 'class TVout' has no member named 'horz_res'
sketch_apr24b:189: error: 'class TVout' has no member named 'vert_res'
sketch_apr24b.cpp: In function 'void loop()':
sketch_apr24b:203: error: 'class TVout' has no member named 'vert_res'
sketch_apr24b:208: error: 'class TVout' has no member named 'horz_res'
sketch_apr24b:220: error: 'class TVout' has no member named 'horz_res'
sketch_apr24b:230: error: '_8X8' was not declared in this scope
sketch_apr24b:231: error: 'class TVout' has no member named 'print_str'
sketch_apr24b:232: error: 'class TVout' has no member named 'print_str'
sketch_apr24b:237: error: '_5X7' was not declared in this scope

Any help would be appreciated, Thank you for sharing this with everyone!
I had that same error, this game requires a version of TVOut before beta 1, i copied my arduino ide folder to another location and put the older library in it, so i can choose witch one to use
Thanks I got it to work! Now I'm going to try to modify the new code for the Wayne and Layne Pong for the Atari controller.
I tried using the Atari paddles, but they never worked for me, mabey i didnt have the right pin-outs.
duboisvb3 years ago
I have just published an Instructable of my version of the Ardu Pong. Thanks. I hope I gave you the proper credit.
mcaliber.503 years ago
is arduino a game system? i have heard about a lot of hacks using it, and was very confused.
kyle brinkerhoff (author)  mcaliber.503 years ago
read all about it here :
its called a microcontroller, essentially its like a small computer on a chip that you can program the pins of that chip to do whatever you want them to do
kyle brinkerhoff (author) 3 years ago
on the old version, no problem, just tie in another db9 connector to the arduino and assign the other controller to the correct pin(you decide that part) .
duboisvb3 years ago
I am hoping you can help me. I have put this project together but I can not get it to work properly. I am new to Arduino and electronics in general but io am learning. It loads the screen but the joystick does not respond. Nor does thje button. I have tried a different Arduino but with no success. I bet it is something simple and I hope the pictures show what i have done wrong.

Thanks for any help
kyle brinkerhoff (author)  duboisvb3 years ago
hey this is great for a beginner, but i think i may know what your problem is, depending on the age of the controller itself some of the button pads on the internal circuit board could be failing, to check this , unscrew all the screws marked in the image, then check the circuit board to see if all the buttons are in place with thier contactors still in the correct position(see 2nd image) and also check that the wires are all correctly plugged into the board. also if you happen to have all the original atari gear, go get the pong paddles out for this and download pete lamonicas code here:

then connect the pin 9 on the serial port to anolog in 0, and then connect the serial ports pin 7 to the arduino's 5v pin, and then connect the serial ports pin 8 to the arduino's gnd pin. this will work alot better if you happen to have the actual pong paddles

i hope that helps out, but for your current problem, all you can do is just double check and check again for your wiring, but best of luck! let me know if you need any more help
Thanks for the help. I do have the paddles and will try them. I copied and pasted the code from your link and it will not verify. I wonder if it is all there as I do not see a loop function and it fails in the draw net function which seems very differenty than yours. But again I am new to this
kyle brinkerhoff (author)  duboisvb3 years ago
huh thats weird i guess when pete modded the code for a creative commons license, he fudged the code. ill see if i can hunt down a version that still works correctly,
k, talked to pete last night, he says that flickr has problems with formatting and he says that he's now included a link to a download site that works far better:
Thanks for your help. I am actually relieved to find that there was something amiss. Maybe I am starting to understand this a bit. :) Thanks again.
kyle brinkerhoff (author)  duboisvb3 years ago
no prob, good to know when mistakes get made, and then they get fixed:]
lloydrmc3 years ago
I do like your project. I'm glad you found paddles. Now, I presume you can make a two player game? Paddles were cool - you could put english on the ball by moving the paddle across the ball as you contacted it.
kyle brinkerhoff (author)  lloydrmc3 years ago
sorry say that again? i dont know what you mean by " put english on the ball by moving the paddle across the ball as you contacted it"
The term "to put english" just means to put some angle or spin on the ball if you hit it right with the paddles. which means that if you move the paddle sharply at the time the ball hits the paddle you can make the ball have some spin or fly away in a less obvious angle.
kyle brinkerhoff (author)  Klone383 years ago
ok, thanks for the clarification, ive never heard that term before, i live in utah so people use clear and concise words and rarely use anything like that but yea ive been thinking about that but ive never really bothered with it because it means you have to constantly calculate multiple velocitys and the original auther of the code wrote it so that anything that would have to deal withe the comparison of the previous position to the current position of the players paddle would be rather difficult
I'm from Maryland, and live in Colorado, and we use the King's English here. And the term "english" is both.
1-40 of 93Next »