S1500 Posted January 17, 2014 Share Posted January 17, 2014 Tell it like it is to me like a 5 year old. I"m looking at the pinouts for the CV controller. The joystick + buttons make sense easily. Simple switches. But how the heck does the numeric keypad pinouts work? I'm not familiar with "hi" and "lo" in relation to this. The 4-bit encoding for pins makes sense, but um... Quote Link to comment Share on other sites More sharing options...
Rybags Posted January 17, 2014 Share Posted January 17, 2014 It's a seemingly complicated system, large reason being to remain compatible with 2600 controller so it can be used with that addon module. Hi/lo is important to know, just think of it as the console outputting 1 or 0, generally +5 Volts or GND on a particular pin. Depending on what a couple of pins have outputted will change what parts of the controller can be read. From what I can gather, software has to "scan" the buttons by writing out the relevant values to the port then reading one of the button registers. It's an "efficient" way of doing it in sorts but the CV keypads will get "ghosting" ie - if 2 or more buttons are held it can give false registration of another button actually being pressed. http://arcarc.xmission.com/Web%20Archives/Deathskull%20%28May-2006%29/games/tech/cvcont.html Probably way better explanations around but that summarizes it. Note normal Atari 2600 controllers are slightly different. Pin 8 always GND. Pin 7 at the console supplies +5V (used mainly by paddles). Pins 5 & 7 are paddle inputs. It's normal for newer systems that use Atari type plugs that one or more of those assignments can change to provide extra functions. e.g. Amiga CD32, Sega, Coleco. Quote Link to comment Share on other sites More sharing options...
S1500 Posted January 17, 2014 Author Share Posted January 17, 2014 Okay. Read the web page. Would it be possible to read this "hi/low" thing with Audrino? Sounds like an IPAC wouldn't let you go beyond the D-pad & buttons. And I haven't gotten to the paddle part on the controller yet. heh. Quote Link to comment Share on other sites More sharing options...
Rybags Posted January 17, 2014 Share Posted January 17, 2014 (edited) All you'd need is ability to change the output on those pins that can be hi/lo and to read the inputs. So anything modern day that deals in 0/5V logic levels and has sufficient IO should be able to handle it. Something that operates on lower voltage might work also - depends if any ICs are used in the controller in question and what voltages they can operate on. Did Coleco support paddles given that those pins have different assignments to the 2600? Paddles simply use potentiometers to return the +5 Volts supplied on pin 7 on the 2600 to the relevant input pins as a reduced voltage which you could route to an A->D convertor. Edited January 17, 2014 by Rybags Quote Link to comment Share on other sites More sharing options...
Geoff Oltmans Posted January 17, 2014 Share Posted January 17, 2014 The normal buttons on a Coleco Vision controller are wired up exactly like an Atari 2600 controller. That gets you Up, Down, Left, Right, and Fire (and I think also the quadrature encoded signals for the spinner as well, two of those). The Aim and keypad matrix are scanned separately and have to be done so at different intervals from the normal buttons. As mentioned, there are two connections on the controller pinout that are important here: one is the normal ground that you have on the Atari 2600, and then a second ground used for scanning the keypad and aim buttons. So, when you want to scan the normal direction stuff, you output a low signal on the "ground" connection for the 2600 stuff, and high on the other connection for the keypad matrix. When you want to scan the keypad matrix, you swap these low/high. The roller controller plugs into both ports so effectively you use the spinner encoder outputs on one controller for the X-axis and the other for the Y-axis. I forget how the additional 2 "action" buttons on the super action controller are decoded. 1 Quote Link to comment Share on other sites More sharing options...
Geoff Oltmans Posted January 17, 2014 Share Posted January 17, 2014 (edited) Did Coleco support paddles given that those pins have different assignments to the 2600? No, Coleco didn't have any DACs or "paddle" inputs on the joystick ports, but I think if you wanted to do this on the CV you could wire a circuit up externally in the controller itself to do this. On both the IBM PC and the Atari 2600, they didn't actually use DACs. Instead, they would either discharge or precharge a capacitor, and then measure the time delay it took to register a digital 0 or 1 when charging or discharging the cap (based on the input of the potentiometer in the paddle controller this would decrease or increase the time delay). But as it was, Coleco didn't do anything like this on their official controllers... all of the spinny controllers were quadrature encoded. Edited January 17, 2014 by Geoff Oltmans Quote Link to comment Share on other sites More sharing options...
omf Posted March 20, 2014 Share Posted March 20, 2014 (edited) i have just seen this, i am about 90% there with creating an Arduino sketch that when running will read all of the buttons of the Colecovision controller and display there representing value back to the serial window, this is for a much larger project i have in mind which is to create a device to be able to just plug in a Atari Jaguar joypad and it converts it to a Colecovision pin out for you saving any kind of wiring needed is this the kind of thing that is being discussed here? it sounds as if it could be if this is of use i could post the program here after i finish the coleco joypad reading code? Edited March 20, 2014 by omf 1 Quote Link to comment Share on other sites More sharing options...
S1500 Posted March 20, 2014 Author Share Posted March 20, 2014 That's the one thing that tripped me up a bit. If I'm reading this right, you have to alternate back and forth between reading the d-pad and the keypad. I haven't touched my Arduino setup in a while. 99% of my time has been spent getting a DB-9 connector plug properly wired up to the Arduino without flakey connections. I haven't even touched the programming aspect yet. But I shall, when I'm not playing Dead island. Goal: to be able to read in a Colecovision controller(all the buttons) with an Arduino. Quote Link to comment Share on other sites More sharing options...
omf Posted March 21, 2014 Share Posted March 21, 2014 i have finished the program that reads all of the colecovision buttons UDLR1234567890*# F for left fire f for right fire these can be changed however within the code by specifying new ascii values to return see attached arduino sketch remove .txt from the end Colecovision_Joypad_Reader.ino.txt 1 Quote Link to comment Share on other sites More sharing options...
S1500 Posted March 21, 2014 Author Share Posted March 21, 2014 Thanks. I'll give it a whirl tonight. That's exactly what I was looking for. Hopefully I have things wired up right. Quote Link to comment Share on other sites More sharing options...
omf Posted March 22, 2014 Share Posted March 22, 2014 Some enhancements need to be made however, it will only read one button at a time, I need to add extra code that outputs values for ul ur dl dr on the joystick, as the way the joypad set out it can handle this also the buttons on each mode are independant so up right and fire can be pressed together for example, the number pad cannot read more than one press at a time if you do press more than one button it will return a different number than what your pressing, this is a problem with how the keypad works This will be my next task, probably going to be the ASCII average value to return we will see 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.