Pimp My Pong

by osgeld in Living > Video Games

13975 Views, 11 Favorites, 0 Comments

Pimp My Pong

PmP.png
PDR_0029.JPG
PDR_0132.JPG
Monday, March 9th:

I get wind of this Think Geek hacks contest, a week late, franticly, I hit thinkgeek.com looking for a easy kill, budget and ideas both turn up empty.

What about that pong kit I bought from them ~2 years ago? ... hm when i first got it, I wanted it to be more game console like ... what would be killer tho, I mean like super sweet ... paddles!

Welcome to Pimp my Pong

Downloads

Start

PDR_0029.JPG
Tuesday, March 10th:

The pong kit contains a write once pic microcontroller, its software and hard ware is set up to only accept digital input, that is to say it has a up and a down button for each player, along with a reset button ... each button is either on or off depening if you want the paddle to go up or down.

After considering some "classic" based (potentiometer) controls, it soon proved to be a massive rats nest, and alot of resistors for only 8 notches between "full up" , and "full down" . What about a rotary encoder?

What is a rotary encoder?, your most familiar with it in your computer mouse, but those are optical, meaning they shine a lite past a shutter wheel to a "magic eye", the one I will be using is of the magnetic type, which is most common on stereo equipment (ie a volume control in a car)

This type lets you have a compact knob, that can spin any either direction forever, and somehow knows which way its going

Experimentation

PDR_0026.JPG
Wednesday march 4 to Friday March 27:

I cant really explain the workings of a rotary encoder properly, but check
http://www.piclist.com/images/www/hobby_elec/e_ckt10_3.htm
for a full explanation,

Before finding the above site I was trying to make up my own circuit out of transistors and some basic understanding of transistor logic,

I had some success, and learned a lot more than I made progress. It almost kinda sorta maybe could have worked, but when I looked at it, I had made even more of a rats nest than the first idea, doesn't matter anyway I cant get this in 2 days

A Deadline Extinction

PDR_0073.JPG
Sunday, May 29th:

I check on the contest to see a 1 week extension. Its time to get cracking

I hit google, and found the before mentioned webpage
http://www.piclist.com/images/www/hobby_elec/e_ckt10_3.htm

And there, three sections down was exactly what I, and the pong game needed too! It was a 74xx logic chip, the 7474 d type dual flip flop

A rotary encoder hooked up to ~3 volts and some leds, while turned very slowly shows whats happening

each "bump" of the coder is divided into 4 sections, 1/4 of a "bump" in a given direction will turn on one of the 2 output pins, usually marked A or B

Half way through the bump the other pin will turn on

Three quarters, and the first pin turns off

100% and your off of the bump, the second pin turns off, and the encoder rest's at off, which is like an open switch, nothing is passing

Depending on which pin turns on first dictates the direction, if A is on before B then its moving counter clockwise, if B is on before A its moving clockwise

there is a third pin, this is a common pin, it can be connected to ground, or (most commonly) +5V, the alps model I scavenged off of an old stereo handled +5V, so I have it hooked up to the +3V that the pong game requires

the 7474 acts as buffer, if A or B turn on first, the flip flop turns on one of 2 outputs (up or down) and ignores everything else until both A and B are turned off

Now there are different types of 7474's out there, depending on how they are made, since pong only required 3v, and I had a 3v power supply, I wanted something that could run @ 3v

I went with a 74HC74, and got them from jameco

http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&storeId=10001&catalogId=10001&productId=251097&

this series (HC) will run from 2 to 6 volts, which falls within pong's specs

OK, to work we go!

Parts & Tools

Single Controller (double parts for 2 controllers)

Rotary encoder, magnetic (allied electronics has some honeywells for ~5 bucks)
10K resistor *2
4.7K resistor *2
74HC74 D type flip flop
14 pin ic socket
6-7 foot phone cord, minimum 4 conductor, but 6 is fine
1N4148 diodes * 2
SPST momentary pushbutton switch
pactec PPL enclosure http://www.pactecenclosures.com/Plastic-Enclosures/PPL.html
4 conductor PCB mount RJ11 Female Jack
2x2 inch perfborad, and a ~1x 1.5 inch scrap piece (optional)
jumper wire
1.25 inch knob
double sided self stick foam pad

Console

1 Think Geek Classic Video Table Tennis Kit
http://www.thinkgeek.com/geektoys/science/8546/

1 pactec XPM enclosure http://www.pactecenclosures.com/Plastic-Enclosures/XPM.html

2, 2*2 inch perfboards
2 lengths of 2 conductor ribbon cable
1 length of 5 conductor ribbon cable
2 4 Conductor RJ11 female jacks
4 2222A NPN Transistors
1 Led
6 loose wires
1 wall wart, 3v (more like 4.2) 300ma, from a old style Game boy Advance (or better)
double sided self stick foam pad *2

Tools

Pliers
Tweezers
Wire cutters
Solder
Multimeter
Soldering iron
Damp yellow sponge
Lots of solder wick
Utility Knife
Xacto Knife
Xacto razor saw
Ruler
Band saw (optional)
Dremel (or in my case the crappy roto-matic)
Hand drill or drill press (i used a early 1970's black and decker, its mean)
Jewelers file (optional)
Inkjet Printer (HP)
super glue
epoxy of your choice
double sided foam tape
screwdriver (Phillips and flat)

Making Room

PDR_0030.JPG
PDR_0034.JPG
PDR_0036.JPG
PDR_0044.JPG
Thursday April 2nd:

I had the 74HC74's mailed to my dads house, which gave me a opportunity to use his band saw

see, the full pong board almost fits into the enclosure, but I need to add power, and controller ports, and relocate the buttons, + wires + interface, I NEED more room

So after examining the underside of the board , most of the guts of the thing is in the center, the rest is just filler going out to the control buttons

I just used the bandsaw because it would be quick

Salvage and Scrap

PDR_0037.JPG
PDR_0040.JPG
PDR_0043.JPG
PDR_0048.JPG
PDR_0049.JPG
If your pong is already assembled, nows the time to desolder the switches, be easy with them we need them for later

if you have the battery pack remove it, and replace its leads with a couple lengths of wire

Once I have saved what is needed, its to the band saw for some quick pcb reduction

Add Wires

PDR_0044.JPG
PDR_0077.JPG
PDR_0078.JPG
Use your Xacto knife or jewelers file to lightly scrape the coating off of the paths we need

Solder a 2 conductor ribbon cable to the up and down paths for both players

Solder a single wire to the reset and led paths

and if you havent already replace the power wires

Tips:
leave your wires long, you can always trim them later, making them longer is trickier

soldering wire to a pcb without a hole is pretty easy, tin the newly cleaned off pad, tin the wire, then melt the 2 together

Move Buttons

PDR_0079.JPG
PDR_0081.JPG
PDR_0082.JPG
PDR_0083.JPG
buttons.jpg
Friday, April 3rd:

We still need a way to select the 4 different modes of single player mode (and they still control the game if desired) so we need to move the buttons to a floating board, so that they are all in one place and able to reach the top of the consoles enclosure.

I used a strip of 2x2 inch perf board, and it was a little short for all four buttons, but it ended up working. By the time I was at this stage, I could not find my saw and it was like 1am, so i really badly did the ole score and snap with a utility knife (and its nasty looking).

The switches that come with the pong kit have 4 pins, if you position the switch where the leads are pointing up and down the 2 on the left are connected, the 2 on the right are connected, and only when the button is pushed are all four connected, so its just a simple SPST momentary switch, same is true of most tactile switches like this.

Insert your switches into the perfboard .

We need to connect 1 side of every switch to ground. To do this I "stitched" and looped some copper wire to all the Odd numbered pins on the left hand side of the board. Then soldered all the pins on that side.

on the right hand side I connected the 5 conductor ribbion cable, 4 go to the even numbered pins, and number 5 goes to any odd pin to connect the other side

Controller Interface and Power Distribution

PDR_0087.JPG
PDR_0090.JPG
PDR_0091.JPG
Saturday, Apr 4th:

The paddle controller I whipped up sends 3 volt pulses, pong sends 3 volts to a button, and its active when shorted out to ground, SO we need a way to use the paddle pulses to a switching action for pong

This is accomplished with 2 NPN transistors per player, when the center pin has voltage going to it, the 2 outer pins connect the correct pins on the pic chip to ground, and thus signaling a button push

We also need a way to attach a cord between the console and paddle, I settled on some 4 conductor RJ11 female telephone jacks

Since the controllers require 2 wires for up and down signal pulses, power and ground, the power distribution got shoved on this board too, along with the grounds of the reset switch and led

Along with everything else we need to connect the pong control wires we soldered to the chopped up main board AND the ribbon cable that goes to the 4 buttons

the final wiring of this ended up being quite complicated, and i will post a full schematic shortly

The first thing i did was pop the jacks in place, and did a test fit in the enclosure

Next I hooked up the wall wart to the edge of the board, leaving the stripped wire long so it could reach a bit and only soldered the 2 end points to form a bus, since there is going to be a LOT of stuff connected to ground

Then I probed the phone jacks with my multimeter and decided which pins would be ground, +V, up data, and down data, I ended up with U,V,D,G on mine. So I ran jumpers from the power supply to the appropriate pins on both phone jacks, plugged in the wart and probed again to make sure

Transistors

PDR_0096.JPG
PDR_0097.JPG
interface.jpg
PDR_01169.JPG
Next I need to install a transistor for each direction on each player, again when the paddle sends its signal its a 3 volt pulse, the buttons on pong need to connect to ground in order to register a push. this conversion is done with NPN transistors (type 2222)

Naturally lets start with player 1 up

If you hold the transistor where the flat part is facing you the right pin needs to connect to ground, the center pin needs to connect to the P1 phone jack (wherever you decided to put your incoming up signal) and the left pin needs to connect to the pong board with the wire we soldered on earlier, ALSO we need to connect the button board's ribbon cable so that the first button + wire goes tp the left pin of the transistor

Repeat 3 more times for P1 down and P2 up and down

While were at it, Im going to solder a pair of wires to power supply's ground, then to both the LED and the reset switch, then solder the positive wires we already ran to both

And lastly connect the pong boards power leads to the wall wart

Making the Paddle Controller

PDR_0060.JPG
PDR_0063.JPG
PDR_0067.JPG
PDR_0072.JPG
PDR_0099.JPG
PDR_01168.JPG
paddle.jpg
It would be wise to plug up and test the console now that we have all the wiring done, test each button and I used a bit of wire connected to the wall wart to test the up and down on the phone jacks, if everything works we can start making the paddle

NOTE: I only made one due to time and money

The website I had mentioned earlier (http://www.piclist.com/images/www/hobby_elec/e_ckt10_3.htm) gives a excellent description of whats really going on, but it only really shows the basics, there is abit more to the circuit than what is shown on that page

Also we need a way to push both directions at once to signal a ball launch

again construction is pretty standard, put your biggest stuff on first so you have room and hook it all up, the rotary encoder is connected via a 3 conductor ribbon cable and a strip of perfboard (to make it easier and, so we can later bolt it to the face of the enclosure) and the pushbutton fire switch is connected with a couple loose pieces

VERY IMPORTANT NOTE
I bought a 7 foot long 6 (we only need 4) conductor telephone cable at my local k-mart, and I soldered everything together, when I plugged up the circuit (without the 74HC74 plugged into the socket) and checked my voltages everything was backwards! Thats when I noticed the phone cable is wired backwards on one end

It was 1 am Saturday at that point, so I opted to just lop off the end of the phone cable and install a new male jack (cause I can), but if you dont / cant do that be sure to probe out your wire and make adjustments

in my case the console jacks were wired UVDG, so the paddle side really needed to be GDVU so the correct things ended up on the correct wires

Graphics

console.png
paddle.png
PDR_0118.JPG
Sunday, Apr 5th 12pm CST

I wanted some cool graphics, so I grabbed my usually lost, hot pink ruler and jotted down the measurements for the insert area of both enclosures

I then sat down with inkscape and set it to work in inches (which I think is default, but since I usually dont deal with print graphics I had to change it from pixels to inches)

I drew out a couple rectangles and using the Transform tool (found under objects) and made them to the sizes i measured out

I then did a rounded border and some text, and a graphical button and led, along with the numbers 1,2,3,4 depicting the single player difficulty modes, The paddle gets the games title, a icon of a paddle and an image of the ball bouncing off of it

lastly I made the original rectangles quite a bit larger for "bleed over" room. The console got a oak texture from google, the paddle was left black

I did a quick test print on the lowest quality setting on regular paper, cut it out and looked it over, and everything looks ok, did the same to the paddle. Back on the console I need to keep the image, so I can use it as a template to drill holes for the reset button, and power LED, also to mark out a rectangle to allow access for the button board

For the final images I ran a sheet of high quality inkjet photo paper from the back feed of my wifes little hp (usually this stuff is so thick it will get stuck in the rollers if you try and feed it from the front tray). The printer was set to do its highest quality and on photo paper, the results turned out flawless and rich in color

Assembly Start

PDR_0101.JPG
PDR_0102.JPG
PDR_0103.JPG
Sunday, Apr 5th 4pm CST

I start off by adding a peice of self stick foam to the pong's mainboard, leaving the paper on the underside so it will not stick to the case yet

I shoved everything in the case to see where things needed to sit, then I used a sharpie to mark the outside of the case where the video and audio RCA jacks need to protrude

Then I screwed both sides of the enclosure together and drilled a couple pilot holes, finally I drilled larger holes that were large enough for the RCA jacks to poke out and allow a male RCA cable to fit over too. A standard type (not like spade) bit with a half inch diameter is perfect, unfortunately my bit is really super dull and instead of drilling it more or less melted a half inch hole

Console's Face

PDR_0106.JPG
Using the quick print copy of the consoles graphics (already cut out) I use my half inch drill bit to cut a hole for the reset button, next I used a bit that was the same size of the LED, I also marked out a rectangular section for the 4 mode buttons

In hindsight I think it would be better to drill 4 half inch holes for each button, as its easier to mount, and if I do not hit the button dead on it sometimes pushes 2, the holes instead of a rectangle would prevent that

When drilling the face I left the enclosure screwed together, personally if the drill punches thru (and it will cause my bit is dull) Id rather leave a little divot in the inside of a plastic box Ill probably never open again over my worksurface

I had to do most of the drilling at once while it was still early enough since I live in a apartment, so you will see that I have a hole in the paddles enclosure too,

Console Controller Ports and Power Cord

PDR_0105.JPG
First open back up the enclosure

To cut out the controller ports I simply line up the interface board to the edge of the enclosure without the removable panel. I use my Xacto saw and line the blade up with the side of each jack and make a little mark cut.

Remove the board and cut a slot about 3/4 as the phone jacks are tall. Use a utility knife to make a score line between the two slots, and use a pair of pliers to snap off the section

Do the same to the top half, but instead of 3/4 of the jacks height, do it 1/4 of the jacks height

for the power cord just cut a little notch out where the 2 halves meet, or drill a small hole

Assemble Console

PDR_0131.JPG
Using the double sided foam attach the interface board and pongs main board to the bottom of the case

Place the power LED, later on I noticed the led was not shining thru the photo paper, so I punched the hole out and used a "panel mount" led which is contained in a lens that mounts flat against the face and is held in by a nut after I applied the graphics

Place the reset switch, using super glue around the edges secured it just fine, but dont go nuts, we don't want to super glue the button so it doesn't function

For the button board I used quick set epoxy putty, you probably could use super glue if you drilled holes instead of making a rectangle slot

Apply Console Graphics

PDR_0119.JPG
Sunday, Apr 5th 6pm CST:

Print out the graphics in the highest quality possible on photo paper

Using a straight edge and a Xacto knife cut out the images from the sheet ... course by now my hot pink ruler decided to go back to magic land and could not be found (ts crazy too, its the only thing in the place that is bright neon pink!) ... being short on time I grabbed a ddr dimm that happen to be laying near by

Once they are cut out, center the image, then slide it off to the side a bit so you can use your knife to mark your cuts, and trim out the image until perfect

To attach the image to the plastic enclosure I used lots of little dots of super glue, and that is a HUGE mistake, seems that super glue on abs plastic making contact with photo paper is a quicker bond than your fingers, its faster than instant. and none of my images lined up right so they dont look as hot as they should

So use some glue with work time, common ones that come to mind would be contact cement, or a plain ol glue stick, even plain white glue could be used but be prepared for a long drying time

Controller Holes

PDR_0106.JPG
PDR_0111.JPG
Sunday, Apr 5th 7pm CST

You need 2 or 3 holes drilled into your paddle enclosure case

1 single 5/8th inch hole for the fire button, I put mine in the center of the top, while the 2 halves of the enclosure were screwed together. I put it there because i am left handed, and right handed people might want to play, so thumb switches posed a problem.

The enclosure has a removable panel on one end I choose to use the end without a thin flexy panel for a button that is going to be mashed for the fire button to be bolted to

1 half inch hole in the face, midpoint from left to right, and about a quarter to a 3rd of the way down from the top (I eyeballed it if you cannot tell from that exact measurement)

the third one depends if your rotary encoder has a little post sticking out of the top, to keep it from twisting itself loose

On the end with the removable panel I place the controllers main board, with the phone jack up against the pannel, and trace its outline with a pencil and cut out the hole in the same manner as I did with the phone jacks on the console, but remember this panel is easily broken so use caution and a pair of pliers to keep the break straight

Apply Graphics

PDR_0120.JPG
PDR_0121.JPG
PDR_0122.JPG
PDR_0123.JPG
PDR_0124.JPG
PDR_0126.JPG
PDR_0127.JPG
This is the same as doing the console graphics, line it up, make little cut marks, trim and glue down

After the image is glued to the enclosure, flip the top over and cut out a hole in the paper where the rotary encoder is going to be positioned

Assemble Controller

PDR_0128.JPG
PDR_0129.JPG
Use the double sided sticky foam to attach the controller's board to the bottom of the enclosure with the phone jack lined up with the box we cut in the removable panel earlier

Use the washers and nuts that came with the rotary encoder to mount it to the front of the controller, attach your knob

Use the washers and nuts to attach the pushbutton switch to half of the enclosure

Screw the two halves together

Final Testing

PDR_0132.JPG
Sunday, Apr 5th 9pm CST

I have been testing this thing to each electronic change, and now that its boxed in its a good idea to test it one last time, the laws of the universe seem to totally change once you add screws

It still works, and its quite amusing to play with a paddle, even if it isn't "classic"

Time to snap some final photos, and the quick little video I posted at the start


Sunday, Apr 5th 10pm CST:
I write the first 4 sections of this instructable, crash at 1:40 am CST


Thank you for viewing my ultimate rush job and dont for get to vote!

Questions or comments are most welcome!

Also for all sorts of electronic questions or talk check out my buddies over at http://pcbpolice.com!

Downloads