Jess Ragan Posted January 24, 2013 Share Posted January 24, 2013 (edited) So on a whim, I decided to build my own Vectrex gamepad as a replacement for the two huge joysticks I had modified for the Vectrex a few years ago. I took a controller from a Radica Street Fighter II' TV Games unit that was on the fritz, opened it up, cut the traces to the chip in the middle, and got right to work. After a few hours, I run headfirst into a dilemma. The buttons on the right hand side of the joypad worked exactly the way I wanted them to, with each of the Vectrex's buttons assigned to two different buttons on the controller. However, it's the D-pad that's been giving me problems. As you can see from the image, I've got the pairs of resistors attached, but the Vectrex still won't recognize any input from the D-pad. What's weird is that I've been able to make Vectrex joysticks in the past, connecting one resistor to Normally Open (NO) and one resistor for ground on each of the four directions. What I did here was attach both resistors to the input side of each direction, on the impression that pressing the button down would connect input and ground together, completing the circuit. Should I have attached one resistor to input and the other to ground? http://www.playvectr.../controller.txt Also, this guide leaves me with a lot of questions. When connecting resistors to each of the D-pad buttons, do the positions of the resistors really matter that much? They're already being soldered together, so it seems like I should be able to put 3.3K on the left and 10K on the right of the bunch or the other way around without it making a difference. Any help you could provide would be hugely appreciated... this is driving me bananas! By the way, for those wondering, the line of wires at the top are as follows: BROWN, 1, BUTTON 1 RED, 3, BUTTON 3 ORANGE, 5, HORIZONTAL POT YELLOW, 6, VERTICAL POT GREEN, 4, BUTTON 4 BLACK, 1, BUTTON 1 (was supposed to be blue... I made a goof and had to swap wires) PURPLE, N/A, old Radica wire that wasn't necessary to connect GREY, 7, +5 VOLTS WHITE, 9, -5 VOLTS BLUE, 8, GROUND (was supposed to be black; I had to swap wires) Edited January 24, 2013 by Jess Ragan Quote Link to comment Share on other sites More sharing options...
Jess Ragan Posted January 25, 2013 Author Share Posted January 25, 2013 Anyone? Help! Quote Link to comment Share on other sites More sharing options...
BigO Posted January 25, 2013 Share Posted January 25, 2013 (edited) Quick response that may or may not make sense or be helpful: I don't think those resistors mean what you think they mean. What you're implementing isn't what's in the schematic at all. The operating principle is a voltage divider. As shown in the schematic, the voltage at the center point (input to the axis) will be around zero volts (half way between +5v and -5v) when neither button is pushed. When you push a button, the 3.3K resistor is now electrically in parallel with the 10K resistor. This has the effect of lowering the combined resistance (lower than the smallest resistor). So, that segment of the voltage divider drops less voltage than the segment with higher resistance. Therefore, the voltage at the center will be biased more toward the supply voltage on the low resistance side. Now the axis input sees something closer to +5v or -5v depending on which button is pressed. Note that there is no ground involved, let alone a common ground between switches. Without putting a lot of thought into this, I think it should be possible to do the controller with a common ground configuration like you want to. The way I'm seeing it, it would still take 4 resistors per axis: Build a network of 4 resistors in series. Connect one end to +5v and the other to -5v. Connect the center point to the axis input. Now there are two junctions with nothing connected to them. At one of these junctions, connect one terminal of a normally open switch. Connect the other terminal of that switch to ground. Do the same thing with the other junction using another N.O. switch. Now repeat for the other axis. More later if needed... [EDIT]: Chicken scratch schematic attached showing my concept. Not tested or thoroughly thought out so use caution, proceed at your own risk, etc., etc.. Edited January 25, 2013 by BigO Quote Link to comment Share on other sites More sharing options...
Jess Ragan Posted January 25, 2013 Author Share Posted January 25, 2013 Thanks, this does seem like it would be more useful than the spaghetti strand mess that I've created! I'll give this a shot in a couple of days and see if that does the trick. Quote Link to comment Share on other sites More sharing options...
Jess Ragan Posted January 25, 2013 Author Share Posted January 25, 2013 That didn't seem to do it. I'm not sure what's going on, but I'm exhausted with this damned Vectrex and I don't want to put up with the hassle of making a controller. Stupid thing can rot in the corner for all I care. Quote Link to comment Share on other sites More sharing options...
akator Posted January 26, 2013 Share Posted January 26, 2013 That didn't seem to do it. I'm not sure what's going on, but I'm exhausted with this damned Vectrex and I don't want to put up with the hassle of making a controller. Stupid thing can rot in the corner for all I care. I will be happy to provide it with a loving home if you are really that sick of it Quote Link to comment Share on other sites More sharing options...
Jess Ragan Posted January 26, 2013 Author Share Posted January 26, 2013 I'm sure you would. Quote Link to comment Share on other sites More sharing options...
BigO Posted January 26, 2013 Share Posted January 26, 2013 (edited) That didn't seem to do it. I'm not sure what's going on, but I'm exhausted with this damned Vectrex and I don't want to put up with the hassle of making a controller. Stupid thing can rot in the corner for all I care. Don't give up. You probably haven't even let the smoke out of anything yet. Do your original controllers still work? So, what *did* it do? I can imagine it not offering full range of motion due to non-optimal resistor values, but I expected it to do something. What pushbuttons are you using? If you're using that controller circuit board, you need to eliminate that variable for a while and use other buttons, or not even buttons - just good old fashioned wire to simulate buttons. Do you have a voltmeter? Measure the center point of the resistor network (where the control axis input should connect) with respect to ground. It should be somewhere close to 0 volts when none of the buttons are pressed. I haven't Intuitively, I expect that pressing the top button in my schematic should cause the voltage at that center point to go down. Pressing the lower button should make the voltage at the center point go up. After some quick math, here's what I'd expect to see at the center point with respect to ground: No buttons pressed=0v Top button pressed=about -1v Bottom button pressed=about 1v Pressing both buttons should bring you back close to 0v I would expect a 1 volt delta (out a possible maximum of 5) to give some reaction on the screen. What are your results? (I suddenly feel the urge to do this like one of those contrived school lab manuals: "Record your results here____________________" ) Edited January 26, 2013 by BigO Quote Link to comment Share on other sites More sharing options...
Jess Ragan Posted January 26, 2013 Author Share Posted January 26, 2013 There hasn't been any magic smoke from the Vectrex yet... although I did have an el cheapo soldering iron give up the ghost while working on the mod. It crackled for a few seconds and blasted out a plume of smoke as I was holding it... scared the hell outta me! Annnyway, I'll take another crack at this in due time. I really want a joypad, and I really don't want to BUY one. However, right now I'm frustrated and need to take a break, lest I put a fist through the Vectrex. (Nothing brings out the "Hulk SMASH!" in me like frustration.) You know, I never stopped to think that the voltage values might be too narrow for the Vectrex to properly read. I just fired up Minestorm, noticed the ship didn't react to the left and right buttons, and fumed. I suspect that with a real Vectrex joystick, you'd need to push the joystick at least halfway to the edges for the ship to react. If the voltage wasn't strong enough, the game would act as if nothing had happened. It makes me wish I had a diagnostic tool for the system, because that would help a lot. So you say I could use a multimeter to test the voltage that the left and right buttons are producing... how would I do that? Would I touch one of the probes to left (both the input and ground side of the button) and the other to horizontal pot? Or do I touch one side to ground and the other to horizontal pot? That sounds like what you're describing, anyway. I'll give that a shot and see what happens. Also, I did a little research and think I may have figured out why I've had more luck with joysticks than joypads. Evidently there are TWO ways to build a Vectrex joystick, but one of them works with separate grounds and the other works with a common ground. The joysticks use microswitches that have an input and a ground for each direction. The joypads, on the other hand, have the same ground for all inputs. http://playvectrex.com/vectech/da_converter.txt Now in the second tutorial (shown here), the author creates a voltage divider that looks very much like yours, with slightly higher values for the small resistors. However, it gets a lot more complicated from there, with two logic chips. The chips aren't expensive, but it makes things more complicated, and I certainly don't want that. Anyway... thanks again for the help. You'll pardon my frustration; it's certainly not directed toward you. Quote Link to comment Share on other sites More sharing options...
bust3dstr8 Posted January 26, 2013 Share Posted January 26, 2013 (edited) You may be able to find R1/R2 Resistor Arrays in 1:3 that will make things a lot tidier. Edited January 26, 2013 by bust3dstr8 Quote Link to comment Share on other sites More sharing options...
BigO Posted January 27, 2013 Share Posted January 27, 2013 You may be able to find R1/R2 Resistor Arrays in 1:3 that will make things a lot tidier. Some tweaking will almost certainly be required. I'm just surprised that he got no visible reaction at about 20% of the theoretical (and > 20% of the likely physical) limit. Jess, if you're not familiar with the use of a voltmeter, I can see why this process would be frustrating. It looks to me like may also be unfamiliar with the conceptual workings of series and parallel circuits (resistors). When I used the term "with respect to ground", that means to connect the black probe of your meter to ground (what is identified as ground in the vectrex circuitry). Leaving that probe connected there and connecting the red one to the +5v supply, you'll read somewhere around 5v. Probing the other points in that series resistor network as I described will give you different values. If you want to tinker with this stuff, you can avoid a lot of frustration by education. If you're not familiar with ohm's law that's a good place to start. 10K and 3.3K resistors aren't anything magical, they're just what I knew you had. Post again when you want to give it another try and we can probably figure out some more appropriate resistor values. By the way, the vectrex stock controller uses a potentiometer to set up a voltage divider between +5v and -5v. That's the baseline reference for messing with a Vectrex controller. (I've built one myself from an NES controller) Good luck. 1 Quote Link to comment Share on other sites More sharing options...
Jess Ragan Posted January 27, 2013 Author Share Posted January 27, 2013 I wish I could defend myself here, but I really can't. I have a vague familiarity with electronics theory, but I didn't do well in the class and I've forgotten most of what I learned ten years later. I seem to recall that resistors work a bit like a kink in a hose or plaque in arteries, reducing the current of electricity, but a lot of the other stuff just didn't take. I do seem to remember that there was a lot of scary math involved in building parallel circuits; the voltage has to been added together, then divided by some weird number, or something, and it all gets very daunting after you throw a few resistors in the mix. Anyway. I assume you've got to have the controller plugged into the Vectrex before you get the proper read-outs, right? It's probably an obvious question, but I nevertheless want to make sure. By the way, do you have pictures of your NES controller with the case off and the resistors exposed? That'd really help. BustedStraight: Please explain, I'm not following. Quote Link to comment Share on other sites More sharing options...
BigO Posted January 28, 2013 Share Posted January 28, 2013 No need to defend yourself. Was just offering some starting points if you're interested. Yeah, technically, what resistors resist is the flow of current. As an effect of that, they drop some voltage. E=I x R is the basic form of ohm's law. It says that voltage is equal to current times resistance. With that and a couple more bits of knowledge, you can do the analysis that I did to find the voltage across those resistors in the series network. The process of calculating current in parallel branch circuits can be a bit more intimidating than what we're talking about here, but until you get into AC analysis, there's nothing terribly scary about analyzing these things. Having said that, I realized today that I'm really rusty on this stuff. You don't have to have it plugged into the Vectrex to do the testing, but you need some sort of double-ended power supply (positive and negative voltages). But, since you probably don't have ready access to such a bench supply, using the power supplied from the Vectrex would be a fair choice. You'll need to identify +5V, -5V and Ground. You shouldn't need to connect up the input to the horizontal/vertical axis for this voltmeter testing. I'd really breadboard or prototype somehow before bringing that actual controller back into the mix. Quote Link to comment Share on other sites More sharing options...
Jess Ragan Posted January 28, 2013 Author Share Posted January 28, 2013 Okay, I'm back from testing. I connected the multimeter (set to voltage) to the points you suggested and came up with these results: * When +5V and ground are connected, the multimeter reads +4.99V. * When -5V and ground are connected, the multimeter reads -4.92V. * When +5V and -5V are bridged with the red probe, the Vectrex freaks out, locks up, and needs to be reset. (So, uh, I'd better not do that anymore.) These seem to be the proper values. (One site claims that the values are reduced to +3.4V and -3.4V on a standard Vectrex controller, but I don't believe a little spillover should matter that much.) The issue I'm having is that these values come up regardless of whether the left and right buttons are pressed. So I honestly don't know what's going on there. Quote Link to comment Share on other sites More sharing options...
BigO Posted January 28, 2013 Share Posted January 28, 2013 A voltmeter is, by design, very high impedance. I'm shocked that the Vectrex even knows it's there. It shouldn't be putting a noticeable load on the power supply. I'm not following completely. What do you have set up? Are you just probing the Vectrex or do you have resistors set up in between those +/- 5V supply connections? You shouldn't need that joypad even in the same room for the preliminary discovery and understanding process. Quote Link to comment Share on other sites More sharing options...
Jess Ragan Posted January 31, 2013 Author Share Posted January 31, 2013 Here's what I did. I took the controller, connected it to my Vectrex, and put the probes on +5V and ground, then -5V and ground. I'm fairly sure I know where the points are, because I looked up the Vectrex controller pinouts online. Anyway... I'm taking a break from the joypad. I seem to have more luck with microswitch joysticks, although heaven only knows if I could build one NOW. Luckily, I have an old Red Octane arcade stick that I rewired several years ago. I dug it out of the storage shed and it worked fine after I resoldered all the wires leading to the connector. For some reason the connector had been separated from the rest of the wire. My solution when I first built the stick was to bridge the wires with a small piece of breadboard. (That was not one of my better ideas.) Today, I cut off the breadboard, stripped the wires on either end of the cable, braided them together, soldered the braids, and covered them with electrical tape. It's not a pretty solution, but it does work! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.