Jump to content
Mef

My DYI Driving Controller for $2.

Recommended Posts

I've wanted to check whether I can simply use off-the-shelf rotary encoder to make a substitute for Driving Controller, and started with schematic from the Atari 2600 VCS Domestic Field Service Manual (page 133 in the pdf). Since I already had a cable with standard joy plug from some ruined old joystick, and a potentiometer knob from an old radio, it was all down to buying the encoder, a switch and a small project case, then wiring it all together.



I payed about $1 for the encoder, half of that for the switch and since the local electronics store was all out of small cases, I stole one of my wife's tiny food boxes (only 6.5x6.5x4cm). The only shit part is that I can't seem to find encoders with 16 pulses (4 cycles) per revolution, like the original C010802 part. They only seem to sell 20, 24 and 30 pulses ones everywhere. But, since I already own a pair of regular Driving Controllers, I picked up a 30-pulses one, to have almost twice the resolution for playing Reflex. Doesn't work so good for Indy 500 as it's very sensitive and rotating the knob by 1/4 will make the car turn around... but works like a charm for Reflex, plays so sweet it feels almost like cheating!


:-D



All in all, it only took about 45 minutes of work, most of it spent cutting holes in the plastic box and trimming off the tabs on the outside, which would otherwise make it painful to hold. Minimum soldering, only to connect the joy cable to 4 points and 1 extra piece of wire to connect GND from the switch to the encoder. I must admit that using a long shaft and slim knob makes it perfect for holding with 3 (thumb, index and middle) fingers, giving a great level of controll.



If you're on a budget, or like me - live in a country where Driving Controllers are nowhere to be found, or just like to mess around with DYI stuff, I heartily recommed you to try this out. Mine was more of a "proof of concept" contraption, but turned out to work very well, so if you have time to spare and appropriate tools, you could make a really great controller with nice wooden/plexi/metal case.



Pics attached.



post-32895-0-41766000-1419332170_thumb.jpgpost-32895-0-96925200-1419332174_thumb.jpgpost-32895-0-20952700-1419332183_thumb.jpg


Edited by Mef
  • Like 10

Share this post


Link to post
Share on other sites

That's sweet dude.

 

Nothing fancy about the driving controller like all the others. Nearly everything can be strait wired, save for a couple resistors in the keypad and 7800 controllers. I'd probably use a 24-point rotary encoder if I made one. IMO driving controllers are a bit sluggish; paddles are too sensitive. I used 470K pots in my homebrew joystick since the vast majority of games only use a tiny portion of travel.

 

At one point I considered adding a third wheel to the front of my Ultimate Atari Joystick as a driver with an additional switch for disconnect, but decided against it as it was already cluttered enough with two paddles, a 4-way / 8-way switchable joystick, and ambidextrous fire buttons. Also I couldn't find a long shaft encoder plus not man games support it and I wouldn't be able to store it standing on edge anymore...

 

9367189135_782fd77102_z_d.jpg

Edited by stardust4ever
  • Like 2

Share this post


Link to post
Share on other sites

Nothing fancy about the driving controller like all the others.

 

So true... and yet barely anyone tackles homemade Driving Controllers.

I've seen people building their own optical encoder discs from scratch, or buying expensive vintage Arcade Spinners for that, instead of simply using off-the-shelf mechanical rotary encoders, crazy!

 

Anyway, that's a sweet setup you got there. I was thinking about building all-in-one controllers at some point too, but I've decided to make a "controller switch-box" instead, some day. This way I could keep all the original controllers hooked up at all times, and simply select which are being used. Haven't gotten around to build one yet, but I'll sure post it here once I get the time to put it all together. I envy you US guys easy access to arcade parts (let alone VCS stuff, but that's another story) - we've got a Suzo-Happ factory in Poland, but it only focuses on casino machines.

:mad:

Edited by Mef

Share this post


Link to post
Share on other sites

 

So true... and yet barely anyone tackles homemade Driving Controllers.

I've seen people building their own optical encoder discs from scratch, or buying expensive vintage Arcade Spinners for that, instead of simply using off-the-shelf mechanical rotary encoders, crazy!

 

Anyway, that's a sweet setup you got there. I was thinking about building all-in-one controllers at some point too, but I've decided to make a "controller switch-box" instead, some day. This way I could keep all the original controllers hooked up at all times, and simply select which are being used. Haven't gotten around to build one yet, but I'll sure post it here once I get the time to put it all together. I envy you US guys easy access to arcade parts (let alone VCS stuff, but that's another story) - we've got a Suzo-Happ factory in Poland, but it only focuses on casino machines.

:mad:

If you want to build an all-in-one Atari controller, it is easy to wire up. Paddle lines are disconnected on the 2600 joystick. You can have a two pole, multi throw switch to select between 2600 one-button, 7800 two-button, paddle, and keypad operation. The operations of the two auxillary pins 5 & 9 are used differently with each controll scheme. Pressing a joystick direction, paddle fire button, or various keypad combos can interfere with the controls in other modes because they share data lines, but there's zero change for shorting and as long as you only tough the buttons for the controller you're using, it won't glitch. The Driving controller doesn't utilize the paddle pins so it can share the 2600 joystick inputs, but you will need a single pole double throw switch to disconnect the rotary encoder used for the driving controls so that it doesn't interfere with up and down on the joystick.

 

Radio Shack sells a two pole, six throw rotary switch which can be easily modified into a two pole, four throw rotary switch if you don't need all positions. I used such a switch as a speed selector on my NES controller's digital turbo circuit.

Share this post


Link to post
Share on other sites

Very nice! I built a controller for playing Thrust last year using a driving controller. This gives me some ideals on how to make a smaller one.

 

Forrest

  • Like 1

Share this post


Link to post
Share on other sites

The Driving controller doesn't utilize the paddle pins so it can share the 2600 joystick inputs, but you will need a double pole single throw switch to disconnect the rotary encoder used for the driving controls so that it doesn't interfere with up and down on the joystick.

Correction: You need a Double Pole, Single Throw switch to disconnect the data lines on the rotary encoder, not a SPDT. :P

Share this post


Link to post
Share on other sites

Correction: You need a Double Pole, Single Throw switch to disconnect the data lines on the rotary encoder, not a SPDT. :P

To be honest, for my future multi-controller switchbox, it'd be enough to make GND line selectable via multi-position switch and connect everything else directly for each socket.

Share this post


Link to post
Share on other sites

To be honest, for my future multi-controller switchbox, it'd be enough to make GND line selectable via multi-position switch and connect everything else directly for each socket.

Not necessarily. For examply, if the rotary encoder is in the both A + B are active mode, and you disconnect the ground, then up+down will still be connected and everytime you hit up or down on the joystick, it will activate both inputs. :P

Share this post


Link to post
Share on other sites

Shite, if it connects A and B both to ground, it'll also connect A and B together via the GND leg on the encoder itself. So in this particular case there might be trouble. Good catch!

Edited by Mef

Share this post


Link to post
Share on other sites

There will be no A/B signal to be detected, as the circuit will not be closed!

:P

I only need to break the connection to GND on a controller port to completely cut it off.

Wrong.

 

If the driving encoder is resting in a position that grounds both A and B, breaking the ground connection by itself will not break the connection between A and B on the encoder. There is a 25% chance of the encoder resting in this position. By bridging Up and Down, both inputs will be actuated simultaneously whenever the joystick is pointing up or down. This will most assuredly cause games that expect 4-way or 8-way joystick behavior to glitch up. You could solve this by installing diodes inline with the A/B outputs on the encoder, but this will raise the low logic level to .6V. I have no idea how compliant the Atari is but IMO inserting diodes needlessly into the schematic could result in potential digital logic issues.

 

Other controller types, for instance 7800, paddles, and keyboard, have resistances connected between pins 5 and 9 and VCC or GND. If you only use GND and VCC as a selection tool, your various controllers schematics will have these resistance values still connected across pins 5 to 9. keyboard uses a 4.7k resistor to pins 5 and 9 to VCC. Disconnecting VCC will still leave 9.4k of resistance between pins 5 and 9. This will completely botch the operation of paddle controllers for instance. 7800 controllers have a low value resistor (520-620 ohms) connected between pins 5 and 9 to GND. Paddle controllers have values to VCC ranging from zero (closed) to 1M ohm.

 

Even if you just plan on incorporating 2600 joystick + paddles, it is wise to have a disconnect because a small percentage of 2600 games (especially homebrew) that auto-detect paddles or Genesis controllers will run into problems if the paddles are live (high input on pins 5 and 9). Also 7800 games expecting two button controllers will glitch out with paddles or Genesis connected (both fire buttons will be full on the entire time).

 

None of the various controller types have any signal on the UDLR pins when not actuated. In fact all four connections are floating. Hence it is better to use a two pole multiple throw rotary switch to selectively activate pins 5 and 9 on the specialty controller types. Each input for pin 5 and each input for pin 9 will be isolated. Paddles won't interfere with keypad, which won't interfere with 7800, etc... You could also add an extra option for SMS/Genny control for homebrew 2600 games that use them. You'll need to add an axillary third button in addition to the 7800 dual fire.

 

I need to draw a schematic for a completely universal Atari controller. I've got the blueprints in my head but it seems like it should work. Mine uses a rotary switch that switches pins 5 and 9. Things also get really ugly when you need greater than two poles in your switching apparatus. Ganging DPDT switches is a PITA.

Edited by stardust4ever

Share this post


Link to post
Share on other sites

Aww, I was sure I managed to edit it before your reply...

Didn't need to go into so much detail, but maybe someone will make use of it.

;)

Share this post


Link to post
Share on other sites

Aww, I was sure I managed to edit it before your reply...

Didn't need to go into so much detail, but maybe someone will make use of it.

;)

It's okay. I probably spent way too long pounding out that response. I need to draw an "ultimate" schematic anyway.

 

I might make a Robotron style controller out of these joystics sometime, and cram an array of 24 mini-buttons in the middle to serve as keypads:

http://groovygamegear.com/webstore/index.php?main_page=product_info&cPath=65&products_id=399

Edited by stardust4ever

Share this post


Link to post
Share on other sites

I doubt the pulse rate will have a negative effect, just make it more sensitive. Only Indy 500 (and a few homebrews) use it.

 

Sounds cool though.

Share this post


Link to post
Share on other sites

Care to share what encoder you ended up using for this?

also, the link to that doc doesn't work... so what pins of the connector go to which pins on the encoder?

 

Physical encoder should have three terminals. Common goes to ground (pin 8 ), A/B goes to up/down (pins 1,2). Fire connects between Fire (pin 6) and ground. Crimping prefered as it's very easy to wire backwards. If the race car rotates backwards, you have the A/B terminals (pins 1,2) swapped.

 

Optical encoders are a bit more work as they need ground, vcc, and a logic buffer, and typically have flywheels with much higher resolution than driving controllers.

Share this post


Link to post
Share on other sites

hi

regard for evryboddy.

i found in mouser the encoder.

its grey 2 bit 16 detents 4 cycle per revolution about 3.48$.

its exaclly what the describe in doucomments.

the part no. is 288t232r161a2.

there is another encoder but little expenssive 12$ and higher.

like 510 serias by honywell.

abiable in stock.

Edited by Azaria

Share this post


Link to post
Share on other sites

You probably don't want detents for this project. That indicates how many 'soft stops,' or clicks you get when rotating the encoder.

Share this post


Link to post
Share on other sites

You probably don't want detents for this project. That indicates how many 'soft stops,' or clicks you get when rotating the encoder.

Yeah steering wheels in the real life don't do like that! They also don't infinitely rotate, either.

 

Bonus points if he whittles a real wooden steering wheel to the controller. I think Tinker Toys will mate to any 1/4" shaft. Use that as a base.

 

Or go all out. Drill hole in a piece of plywood, crudely cut a circle with a bandsaw. mount it on a drill and run it on some sandpaper until the wheel is smooth. Cut the inside of the wheel three chunks out to form the voids. Glue tinker toy joint underneath and secure to the shaft.

 

Use this for inspiration: :grin: :thumbsup:

118124212388.jpg

  • Like 1

Share this post


Link to post
Share on other sites

oh I am so tempted to go into my experience with making optical encoders out of ttl Logic and printer paper

 

but I dont think the fourm has enough storage for my long winded explanations

 

but it involves a ir LED, an ir detector and this website (even though its not mine, it saves me from explaining some 1993 delphi code and doing maf)

 

http://www.bushytails.net/~randyg/encoder/encoderwheel.html

Edited by Osgeld

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...