Build your own Atari 2600 paddle controllers

Build your own Atari 2600 paddle controllers

Atari Paddle Controllers

Video games are starting to seep into my kids’ lives. Not the (mostly, kinda) educational games on the iPads; I’m talking the console games at their friends’ houses.  Mario Kart has started to seep into the 6 year old set, and while we don’t have a console system of our own, because if we did I fear I’d get even less sleep, I’m starting to feel the pressure to prepare the young ‘uns.

The thing of it is, they’re easily distracted and overstimulated, and a four player split screen racing game is a bit of a challenge to manage.  I was looking for something simpler, and… oh let’s face it, I just wanted to play some games from when I was a kid.

And that’s how the Atari Flashback made its way into our home. I actually wanted the Intellivision version, because Shark! Shark! but Bed Bath and Beyond didn’t go beyond enough to have that one in stock (somehow if I’d bought it online I feel like I would have paused on the “confirm order” button and I had some time to kill in a store while the youngest napped.)

The system works pretty well, but it only comes with joysticks and not paddle controllers.  The paddle-based games have been changed to work with the joysticks, but maybe it’s the conversion, or maybe it’s the fact that the joysticks are infrared and not direct-wired, but the experience is, shall we say, nigh-unplayable.  Pong works, but it’s a way more even match between me and the kids than it should be at this point in their development, with very little fine-grained control over the paddle position.

As it turns out, the paddle controller is a dirt-simple interface.  It’s basically a 1 megaohm potentiometer.  And a button, if you’re playing a game that needs it. So I set out to build a set, because I couldn’t find a set on eBay that wasn’t more than the price of the console, even before shipping.

Bill of Materials

2 x 1 MΩ potentiometer
2 x SPST button
2 x 4-conductor cables
2 x project boxes
2 x potentiometer knobs
1 x DB-9 female connector
Solder, tubing, etc

For the knobs, I found a replacement knob on Thingiverse that would at least get me that part of the original experience. I decided to use project boxes for the cases because, well, there weren’t any models for that part, I doubted I’d be able to quickly design anything close to the original, and I had a bunch of $2 boxes kicking around.  I’ve seen these online made out of tupperware containers, so I knew there was room to play.

The trick with the project boxes was getting the holes in the right places (and in the right shape!)  I’ve ruined a few drill bits from drilling acrylic, which then melted all over the bit, so I didn’t want to go through that again.  I had distant memories of doubling the capacity of 3.5″ disks by putting an extra hole in them with a soldering iron, so I thought I’d go that route and simply melt the boxes with an old corroded iron that I was keeping for pretty much that purpose.  DO NOT DO THIS INDOORS.  The fumes that came out were vile, and I’m sure they weren’t good for me.  And the fact that I did it in the boys’ room (there was an open desk!) didn’t win me any points…

In the end I used a Dremel grinding stone bit, which held up well and didn’t seem to heat up enough for melting to be a problem. The trade-off was that I was limited to round-ish holes, and the buttons I chose were square (I originally was going to use some cheap round buttons, but then decided to splurge on something a bit nicer.)  I used a different (green?) stone bit to “square up” the hole, which… mostly worked.  The buttons ended up on a bit of an angle, and there’re some gouges that sneak past the border, but I can live with that.  The green bit was about half its original size at the end but it did its job and I have spares.

In the end it worked out OK, thanks to the secret ingredient which is heat-shrink tubing, cover-er of many mistakes.

All praise heat shrink tubing
All praise heat shrink tubing

The connector to the console is a simple DB-9 plug, but I had some challenges with the casing around it. I needed the plug to be as flush as possible to the unit, which ruled out most of the covers I found that would have added some layers in between.  Plus soldering got a little… messy, and I needed a little extra room there. Also, one plug powers both controllers, so I needed to run two wires out of it.  Since I was using phone cables for the main wires, I had an idea of putting some RJ-11 jacks on the connector to make a more modular system (and avoid sacrificing my phone cables) but I couldn’t source any easy to use jacks and it was way more work than the project required.

In the end I printed up a simple “tray” for the connector from Thingiverse.  Which I then plugged in upside down.  But this had the advantage of hiding my terrible solder work while still allowing for a bit of stain relief. It’s still ugly, but it’ll do until I someday design/print a full enclosure and re-do all my terrible soldering.

IMG_8030
The half-cover which more than half-covers my terrible wiring job

Oh, and the actual wiring diagram, possibly taken from here (I think I just grabbed something off of Google Image Search for reference):

Atari paddle schematic

The only trick here was the two common wires (pins 7 and 8) – for one I jammed the two wires into the connector, and for the other due to a wire length issue I made a little bridge thing that I wouldn’t be proud of unless it worked (pro-tip: crimp all your wires ahead of time so if one of them gets cut short you can adjust before your start soldering things in place.)

And you know what? Aside from a false alarm when I started a test in 1-player mode and couldn’t use the 2nd controller, everything worked on the first try!  So that was cool, and now I’ve got a set of Atari 2600 paddle controllers for about $10 in parts and probably too much of my time.  But it was time I would have spent otherwise playing Pong, so I ask you, was it really ill-spent?

Now the kids can learn video gaming from first principles (while Pong wasn’t the first commercial arcade game, it’s pretty close) without high falutin’ distractions like actual graphics (though technically with the paddles and the ball it’s at least a 3 polygon game, so there’s room to downgrade.)

Putting a 5 year old through the Star Wars Hour of Code

Putting a 5 year old through the Star Wars Hour of Code

OK, here’s the setup:

  • Despite having never seen Star Wars, my kids love BB-8.
  • Star Wars partnered up with Code.org to make a cool tutorial.
  • My 5 year old can read.
  • It was very very cold outside and we needed something to do.

From there, the next steps were pretty obvious. But would it work?

We went for the blocks tutorial on an iPad. This is a simple environment that looks a lot like Scratch. I liked how they kicked each level off with a step or two filled in already, preventing (or at least reducing) blank page syndrome.

Level 1

 

The first six levels involve setting up simple driving instructions. You need to count squares and enter a series of left, right, up and down moves to get BB-8 to finish the mission (collecting scraps while avoiding obstacles and bad guys.) It took 2 or three of these for my guy to get in the groove (we laid some papers around the iPad with the directions so he’d keep his lefts and rights straight,) and some of the paths he chose were a little roundabout, but no issues overall.

One thing that was pretty cool here was that you could set up the first few steps and run the program, then reset and add some more steps, allowing for an incremental approach. This was a nice parallel to writing simple code of any kind in an iterative manner, and he took to it without any prompting from me. We didn’t get into editing what was already there, hence the roundabout results I mentioned, but I’ve seen some pretty unoptimized code from adults in my day, so he’s got time to pick that up.

The next missions were a bit trickier. They involve wiring up event handlers so the droid moves around when you click/tap them:

level 7

This presented a few challenges:

  • After spending half an hour counting blocks, he wanted to do the same here, so in the picture above, he’d want to put four “go ups” on the up arrow event, where the system’s apparently only set up to handle one, the idea being that you’re driving around (also, I know it says “hold down these buttons” in the instructions, but that’s easy to forget (er, for both of us,) so he tapped a lot at first.)
  • After level 9, the targets you’re trying to catch are moving around the screen, and he’s not used to that kind of game so there was a bit of frustration when he’d have it coded up correctly but would still run out of time. We ended up using a system where I’d be the “tester” and do the driving.
  • Also, I’m not sure he really “got” the concept of events, and it took a bit of prompting from me. Eventually he’d just do what he did in the previous level to wire the buttons up, but I don’t think he had a strong concept of why he was doing it. Again, I’ve seen that kind of behaviour from junior programmers lots of times, so I’m not too worried about it.

A small confession: in the later levels it’s possible to cheat a bit by increasing the number of points you get or otherwise moving yourself closer to the goal. I may have added a few of these during “code review” to keep the pace moving. This led to a level where I wasn’t sure if he misunderstood the instructions or was adding cheats of his own, but either way he was meeting my expectations 🙂

Once you get through all the levels, you’re left with an open environment where you can create your own games.  These games are pretty limited in scope (you can catch things and then make more things appear and/or get points) but constraints are probably a good thing.

We didn’t go too far in the game-building area for a few reasons:

  • We ran out of time/energy. Even splitting the hour (it took us about that long) into two half-hour chunks, fatigue set in after a while.
  • No BB-8! Despite being in the first few levels, you can’t make a game featuring BB-8, which took a lot of the excitement away (my kids haven’t seen Star Wars yet because I’m holding onto the pipe dream that it’ll be more meaningful when they’re older even though they know the story, including spoilers, from the schoolyard already.)
  • Young kids need a few more instructions. Your mileage may vary, but “you can make the computer do anything you want” is a little too vague for a five year old (or at least my five year old.) I know imagination’s a powerful and wonderful thing, but odds are “anything” will either fall into an area that the system won’t support (making droids fly and so on) or will just result in a blank stare. I found that my suggestions, no matter how inane, were met with enthusiasm.

So, the verdict? If your child can read, they shouldn’t have much trouble going through these levels with a little supervision (and honestly, you’re going to want to help out, because it’s super cool to see kids figure this stuff out for the first time.) I’m looking for some activities that we can follow this with, not necessarily from Code.org, so we can build on these early experiences with “this is like that time we…” connections.

Oh, and it turns out that they’ve got a course specifically for grades K-1, which we’ll have to try out on the next bad weather day. I’d still recommend Star Wars as a starter that’ll capture interest right away.