+grips03 Posted May 9, 2013 Share Posted May 9, 2013 Have you been able to test on Intv hardware? Quote Link to comment Share on other sites More sharing options...
Uzumaki Posted May 17, 2013 Author Share Posted May 17, 2013 I got the boards in today. It took a bit over 2 weeks total from when I sent the gerber until I got it so pretty decent speed for oversea service. USA has lax custom so that probably helped a lot I did find 3 mistakes. © is missing, I think it's font issue so I'd have to use © instead. A few text were cut off at the edge of the board so I'd need to reposition the text a bit. And I'm missing one ground via, my fault. I also forgot a capacitor for the chip, I soldered one on the socket pin on the bottom. I'd need to add a proper spot in the revision. My camera's battery died so I used crappy cell cam for pictures. Partial completed: The cable that plugs into Intellivision controller. I found colored ribbon cable that has the same color order as original, convenient. But a pain in the butt to solder those. Anyone know of a 1x9 connector with 0.1" (2.54mm) spacing that uses press wire to assemble? Like the original controller plug? Completed save for power wires for the board. And I'm going to bed. My guild pulled a rare all nighter raid and I was about to sleep when the mail came. I've been up since about 7 AM May 16th... Quote Link to comment Share on other sites More sharing options...
Uzumaki Posted May 17, 2013 Author Share Posted May 17, 2013 Just finished with Eagle revision. One thing I never thought of: what to call this? Jaguar controller to Intellivision adapter seems long. Quote Link to comment Share on other sites More sharing options...
Uzumaki Posted May 18, 2013 Author Share Posted May 18, 2013 Hooked it to Inty, it works. The controller passthrough is working fine. The Jag adapter isn't getting the right behavior so I think I got a crossed wire or missed solder spot somewhere but it does work in some way. I picked up eBay Auction -- Item Number: 261103138671 so I could see how the controller respond more accurately, then I can figure out which wire is faulty or if it's the code that needs to be adjusted. And still have room for second one for the other controller. The chip wasn't installed when I took the picture, I wanted to make sure the wiring for original controller worked first. Quote Link to comment Share on other sites More sharing options...
+grips03 Posted May 18, 2013 Share Posted May 18, 2013 that auction is for a box, not a cart Do you have oscilloscope, channel 1 make input, channel 2 make output wire to Intv. Quote Link to comment Share on other sites More sharing options...
Uzumaki Posted May 18, 2013 Author Share Posted May 18, 2013 that auction is for a box, not a cart BAH I blame sneaky picture showing cart. Any idea where I could get one without CC3? I don't have CPLD programmer and building one out of discrete logic chips is a lot of work and would be large. Maybe someone here who does reproduction cart or homebrewn cart can make a MTE-201 cart at reasonable cost? A search of the forum suggested using baseball cart. I don't have that one so what other common cart uses all button and can be easy to use as controller tester? AD&D Cloudy Mountain doesn't use button 5 at all. Do you have oscilloscope, channel 1 make input, channel 2 make output wire to Intv. Mine doesn't have output option. It's an older budget model with dual trace and variety of setting but nothing for output. I played with the controller some more and wrote down what was expected and what I got instead. Then I looked at the table for Jag controller and Inty controller and I was able to match up all of the error to 3 lines on Jag side. I just need to switch around 3 wires and it should work. Quote Link to comment Share on other sites More sharing options...
+grips03 Posted May 18, 2013 Share Posted May 18, 2013 (edited) BAH I blame sneaky picture showing cart. Any idea where I could get one without CC3? I don't have CPLD programmer and building one out of discrete logic chips is a lot of work and would be large. Maybe someone here who does reproduction cart or homebrewn cart can make a MTE-201 cart at reasonable cost? A search of the forum suggested using baseball cart. I don't have that one so what other common cart uses all button and can be easy to use as controller tester? AD&D Cloudy Mountain doesn't use button 5 at all. Mine doesn't have output option. It's an older budget model with dual trace and variety of setting but nothing for output. I played with the controller some more and wrote down what was expected and what I got instead. Then I looked at the table for Jag controller and Inty controller and I was able to match up all of the error to 3 lines on Jag side. I just need to switch around 3 wires and it should work. I first built using 74xx IC chips (besides keyboard) - way to much to vero / breadboard . I then tried the Arduino and had mixed results, most likely due to my poor programming. I then implemented in Altera Max V CPLD dev kit and got 100% perfect results. Issue with Max V is the EQPF-64 package. Price point of ~1 USD is great, but you need to add AP1120SB and some 100uf caps to power it (1.8v and 3.3v). I'm also checking to see if the bottom thermal is really needed or not. Max 7000S is PLCC-44 and has a nice cheap socket, but cost is like ~9 USD, but it works with 5v natively, however its missing internal pull up resistor option on the inputs, hence external resistor array is needed. This is cheap to add. Both chips have tri state output buffer and this interfaces well to Intv. I'm now trying to get Quartus II to program Max 7000S and I'm having some issues with the cheapo USB Blaster I bought. I'm going to try to figure it out this weekend. If you do get MLB cart, put your controller into port 2, this will allow all keypad buttons to be tested. I use Tron DD for direction testing. For buttons 1-3 I use Astrosmash. I wish I just had a test cart for this. Edited May 18, 2013 by grips03 Quote Link to comment Share on other sites More sharing options...
Uzumaki Posted May 19, 2013 Author Share Posted May 19, 2013 Fixed the wires, put together a second one for second controller, mounted the port on the system shell. Plugged the system back together and turned it on. SNOW. Checked and rechecked, power plug in, cable connected to power supply pcb, cable from mobo to power supply pcb. Still snow. I think I broke something :/ I'd have to check with my meter after some sleep. It could be loose wire from transformer, switch, or mobo power cable. It could be bad switch. It could be blown diode or something. No smoke and no funny smell I don't think I shorted something. Quote Link to comment Share on other sites More sharing options...
Uzumaki Posted May 20, 2013 Author Share Posted May 20, 2013 Bad resistor, I replaced it and it's working once again. It seems to work 100% with 2 adapter boards in for both controller ports. I've gone ahead and sent the revised board design for another run of 10 boards. The 2 prototypes will probably remain permanently in my Intellivision 3 and I'm putting together 2 more, without the external clock to see if it works fine and installing it in my other Intellivision. I can do a video of it later if I get my area cleaned up. Quote Link to comment Share on other sites More sharing options...
Uzumaki Posted June 4, 2013 Author Share Posted June 4, 2013 Still trying to clean up the mess to take video of Jag pad working but I got new boards in today. Error from the first version were fixed. I forgot to remove the vegistial resistor to pin 1. I originally included them so if I crashed the chip trying to test it on Intellivision, I could just short pin 1 to ground to reset it. Since it seems running, no need to manually reset it and can be permanently tied to +5v. A jumper wire is all it needs in place of resistor R1 Populated and ready but without Jaguar controller port wired in yet. Back side with a decoupling cap for the chip. 2 controller cables ready to be soldered on the board. I found it'd be easier to cut hole in Intellivision, install it with the tabs on the outside, run the wire in then solder it. If it is soldered on before it goes in the hole, it might not fit through and you'd have to make a bigger, uglier hole. Unless you're very good at cutting plastic and making it look very neat for inside mounting. The fixes include extra +5v and ground via for hooking up to Inty power supply, and for connecting second board to the first one. The second board can use the extra pad to run wire to a power LED. If I can find a supply of VGA style port that is pre-wired (saving me about 30 minutes of cutting, trimming, soldering, and checking per port) then it'd be wonderful. I could revise the board if needed for easier connection if the VGA cable has 0.1" plug at the end. Attached zip files contains code for Arduino and Eagle schematic/board if you want to make your own adapter. What to call this? Jaguar_final.zip Quote Link to comment Share on other sites More sharing options...
+grips03 Posted June 4, 2013 Share Posted June 4, 2013 TE, 3M make IDC to db9 connectors. This way you just need an IDC crimp tool. and don't need to solder. Quote Link to comment Share on other sites More sharing options...
Uzumaki Posted June 5, 2013 Author Share Posted June 5, 2013 DB9 won't fit Jaguar controller though. VGA style which is DE-15 is what I need. Since it has 3 rows, ribbon crimped version probably won't work. useless trivial: DB-9 is technically incorrect term that was never corrected for decades. D refers to D shell. Second letter A-E is the physical size. DB-25 is correct for large connector with 25 pins but 9 pins should have been DE-9 as the shell was E sized. The number refers to total pins, and may have P or S to indicate plug (male) or socket (female). DE-15 is high density 15 pins in a small E sized shell. Quote Link to comment Share on other sites More sharing options...
wileyc Posted October 31, 2013 Share Posted October 31, 2013 Could you post the .hex for the m328p? I've got the board built, but I'm having a devil of a time getting the firmware built (avr-gcc complains about various missing macros, the Atmel IDE doesn't want to install on Windows 7, etc) ... Quote Link to comment Share on other sites More sharing options...
rhcocker Posted March 15, 2014 Share Posted March 15, 2014 Is this project dead? Quote Link to comment Share on other sites More sharing options...
rhcocker Posted March 15, 2014 Share Posted March 15, 2014 DB9 won't fit Jaguar controller though. VGA style which is DE-15 is what I need. Since it has 3 rows, ribbon crimped version probably won't work. useless trivial: DB-9 is technically incorrect term that was never corrected for decades. D refers to D shell. Second letter A-E is the physical size. DB-25 is correct for large connector with 25 pins but 9 pins should have been DE-9 as the shell was E sized. The number refers to total pins, and may have P or S to indicate plug (male) or socket (female). DE-15 is high density 15 pins in a small E sized shell. Is this project dead? Quote Link to comment Share on other sites More sharing options...
jmetal88 Posted March 16, 2014 Share Posted March 16, 2014 I was actually thinking of doing something similar to this on my own. Probably still will, as I've been learning a lot about assembly language recently. I was thinking of using a PIC chip, though. Quote Link to comment Share on other sites More sharing options...
DeputyMoniker Posted December 16, 2014 Share Posted December 16, 2014 (edited) Is this project dead? Anybody interested in picking up where Uzumaki left off? Jag controller pinout: https://web.archive.org/web/20030421222414/http://users.erols.com/tiltonj/games/tech/jagcont.html INTV controller pinout: https://web.archive.org/web/20030421222613/http://users.erols.com/tiltonj/games/tech/intvcont.html INTV stick adapter: https://web.archive.org/web/20030421223502/http://users.erols.com/tiltonj/games/tech/intvsticky.html EDIT: I just dug up an old thread of mine that appears to contain all the info we need for this. http://forum.digitpress.com/forum/showthread.php?60817-Anybody-modded-an-INTV-to-use-a-Jaguar-controller&highlight=jaguar Edited December 16, 2014 by DeputyMoniker Quote Link to comment Share on other sites More sharing options...
7800fan Posted January 27, 2016 Share Posted January 27, 2016 Time to cast Reanimation on this project. I am still busy with a couple of current projects involving my Duo and TurboExpress but this seems easy enough. I copied the code into my Arduino and checked it, it passes so nothing critical had changed with Arduino IDE that could break old code. To answer someone's request there's the exported HEX file: https://www.dropbox.com/s/la8cwmwded8py2q/Jaguar.ino.standard.zip?dl=0 I haven't tried hex upload so I don't know if either works or not. It does expect to be used on ATMega328. I also copied the PCB layout since the original didn't provide any file I could use, and I'll have it mailed off. Some cleaning up. 1 Quote Link to comment Share on other sites More sharing options...
SiLic0ne t0aD Posted January 27, 2016 Share Posted January 27, 2016 Cool, I've been wanting to use a Jag controller on the ColecoVision and/or Intellivision. Color me interested! Quote Link to comment Share on other sites More sharing options...
7800fan Posted January 28, 2016 Share Posted January 28, 2016 Colecovision is a bit trickier than Intellivision. 2 pins control the controller's mode. When pin 5 goes high and 8 goes low, 7 lines are scanned for the 4 direction joystick, left fire (or yellow on SAC), and 2 rotary encoder (rollerball). When pin 5 goes low and 8 goes high, the same 7 lines are checked for keypad and right fire button (or other 3 SAC buttons). Trying to cram 2 fire buttons, 12 button keypad, and 4 directions over 9 wires using weird encoding matrix and a shitload of diodes (28 if I counted right) is crazy. Intellivision did it with 8 lines plus common ground and didn't need diodes. I would have to think about how to code this one, my best guess would be to watch pin 5 and 8 of CV controller port and set output for direction and 1 fire button in one mode, and the keypad and other buttons in other mode. Jaguar controller has option button and 3 fire buttons, I could probably have left fire (yellow) to C, right fire (red) to A, and map blue and purple to B and option. I do need to question why Coleco didn't use 15-pin connector like Atari did for the 5200 to simplify the design. A 15 pin connector would probably cost less than 28 diodes per controller. Unfortunately I have no way to test CV controller adapter. I don't have a CV system, they are oddly rare around here even though games, controllers, and huge power bricks turned up a few times. Checking eBay, a tested working system seems to be rather expensive. 1 Quote Link to comment Share on other sites More sharing options...
7800fan Posted January 29, 2016 Share Posted January 29, 2016 (edited) Tamed the Colecvision controller scheme with a thorned whip and came up with a viable solution: /* Jaguar controller pinout pin 1 = Col (option, 3, 6, 9, #) pin 2 = Col (C, 2, 5, 8, 0) pin 3 = Col (B, 1, 4, 7, *) pin 4 = Col (Pause, A, N, S, E, W) pin 6 = Row (pause) There seems to be room for 3 more buttons, maybe Pro controller uses it on this row? pin 7 = +5VDC Source (typical VGA video extension cable has this pin missing, BEWARE!!) pin 9 = GND pin 10 = Row (A, B, C, Option) pin 11 = Row (E, 1, 2, 3) pin 12 = Row (W, 4, 5, 6) pin 13 = Row (S, 7, 8, 9) pin 14 = Row (N, *, 0, #) Pin 5, 8, and 15 are not used See http://emu-docs.org/Jaguar/Controllers/jagcont.html for pinout info and details I have seen a couple diagram that has pin 6 and 9 flipped but a test run of this code confirms the above seems correct. Jaguar controller has negative logic. The row line goes low when a button is pressed. */ /* Colecovision pins Colecovision used funky weird encoding scheme to get all stuff over 5 lines. Pin 5 and 8 sets the controller "mode" (for lack of better word). When pin 5 is low, direction and one fire button is used and it is exactly same as Atari 2600 joystick (delibrate so CV controller can work on 2600 modules) when pin 5 is high and 8 is low, the other fire buttons and keypad matrix are scanned, and Coleco used assload of diodes to encode 15 buttons over 5 wires. */ int CVUp = LOW; // up button int CVDo = LOW; // down burron int CVLe = LOW; // left, obviously int CVRi = LOW; // right int CV0 = LOW; // button 0, et al. int CV1 = LOW; int CV2 = LOW; int CV3 = LOW; int CV4 = LOW; int CV5 = LOW; int CV6 = LOW; int CV7 = LOW; int CV8 = LOW; int CV9 = LOW; // button 9 int CVCl = LOW; // clear button from Jaguar * button int CVEn = LOW; // enter button from Jaguar # button int CVS1 = LOW; // SAC purple button, Jaguar B button int CVS2 = LOW; // left side button or yellow SAC, Jaguar C button int CVS3 = LOW; // right side button or red SAC button, Jaguar A button int CVS4 = LOW; // SAC blue button from Jaguar Option int CVOut1 = 12; int CVOut2 = 13; int CVOut3 = A0; int CVOut4 = A1; int CVOut6 = A3; int CVIN5 = A2; int CVIN8 = A4; int CVMode5; int CVMode8; // pin 0, 1, and A5 are not used. Maybe CV rotary encoder but this is not on stock Jaguar pad. void setup() { for (int i = 2; i <= 5; i++) { pinMode(i, OUTPUT); // set some pins output for column digitalWrite(i, HIGH); // sets the 4 column high for the moment. } for (int i = 6; i <= 11; i++) { pinMode(i, INPUT); // set some pins input for rows digitalWrite(i, HIGH); // enable pullup resistor internally } pinMode(CVOut1, INPUT); // CV controller pin 1, sets Colecovison to no button "down" atm. pinMode(CVOut2, INPUT); pinMode(CVOut3, INPUT); pinMode(CVOut4, INPUT); // CV controller pin 4 pinMode(CVOut6, INPUT); // CV controller pin 6 pinMode(CVIN5, INPUT); pinMode(CVIN8, INPUT); digitalWrite(CVOut1, LOW); // digitalWrite(CVOut2, LOW); digitalWrite(CVOut3, LOW); digitalWrite(CVOut4, LOW); digitalWrite(CVOut6, LOW); } void loop() { digitalWrite(2, LOW); // enable column 1 CVS4 = digitalRead(7); // option for SAC button CV3 = digitalRead(; // 3 button CV6 = digitalRead(9); // 6 button CV9 = digitalRead(10); // 9 button CVEn = digitalRead(11); // # button digitalWrite(2, HIGH); // turn off column 1 digitalWrite(3, LOW); // enable column 2 CVS2 = digitalRead(7); // C button CV2 = digitalRead(; // 2 button CV5 = digitalRead(9); // 5 button CV8 = digitalRead(10); // 8 button CV0 = digitalRead(11); // 0 button digitalWrite(3, HIGH); // turn off column 2 digitalWrite(4, LOW); // enable column 3 CVS1 = digitalRead(7); // B button CV1 = digitalRead(; // 1 button CV4 = digitalRead(9); // 4 button CV7 = digitalRead(10); // 7 button CVCl = digitalRead(11); // * button digitalWrite(4, HIGH); // turn off column 4 digitalWrite(5, LOW); // enable column 4 // pause button on pin 6, not used in CV mode CVS3 = digitalRead(7); // A button CVRi = digitalRead(; // East button CVLe = digitalRead(9); // West button CVDo = digitalRead(10); // South button CVUp = digitalRead(11); // North button digitalWrite(5, HIGH); // turn off column 4 /* I am using input and output vs writing high and low. Arduino retains the low state even when the pin mode is changed. Making the pin input has the added benefit of making that line high impedence, that is no signal from the chip. This should allow users to use original controller along with Jaguar controller at the same time. */ CVMode5 = digitalRead(CVIN5); CVMode8 = digitalRead(CVIN8); // checks both pins to determine what mode CV console is reading at if (CVMode5 = LOW) { CVfive(); } else if (CVMode8 = LOW) { CVeight(); } // both was high. cable not plugged in? If not plugged in, no power so this isn't possible anyway } void CVfive() { // we are in joystick mode if (CVUp) { // if all variables are high, assume no button was pressed pinMode(CVOut1, INPUT); // high-Z mode for no button } else { pinMode(CVOut1, OUTPUT); // else one button was pressed, make a low signal } if (CVDo) { // if all variables are high, assume no button was pressed pinMode(CVOut2, INPUT); // high-Z mode for no button } else { pinMode(CVOut2, OUTPUT); // else one button was pressed, make a low signal } if (CVLe) { // if all variables are high, assume no button was pressed pinMode(CVOut3, INPUT); // high-Z mode for no button } else { pinMode(CVOut3, OUTPUT); // else one button was pressed, make a low signal } if (CVRi) { // if all variables are high, assume no button was pressed pinMode(CVOut4, INPUT); // high-Z mode for no button } else { pinMode(CVOut4, OUTPUT); // else one button was pressed, make a low signal } if (CVS2) { // if all variables are high, assume no button was pressed pinMode(CVOut6, INPUT); // high-Z mode for no button } else { pinMode(CVOut6, OUTPUT); // else one button was pressed, make a low signal } } void CVeight() { //We are in keypad mode if (CV1 && CV3 && CV7 && CV8 && CVCl && CVS1 && CVS4) { // if all variables are high, assume no button was pressed pinMode(CVOut1, INPUT); // high-Z mode for no button } else { pinMode(CVOut1, OUTPUT); // else one button was pressed, make a low signal } if (CV2 && CV4 && CV5 && CV7 && CV8 && CVEn && CVS4) { // if all variables are high, assume no button was pressed pinMode(CVOut2, INPUT); // high-Z mode for no button } else { pinMode(CVOut2, OUTPUT); // else one button was pressed, make a low signal } if (CV4 && CV5 && CV8 && CV9 && CVCl && CV0 && CVS3) { // if all variables are high, assume no button was pressed pinMode(CVOut3, INPUT); // high-Z mode for no button } else { pinMode(CVOut3, OUTPUT); // else one button was pressed, make a low signal } if (CV3 && CV4 && CV6 && CV0 && CVEn && CVS1 && CVS4) { // if all variables are high, assume no button was pressed pinMode(CVOut4, INPUT); // high-Z mode for no button } else { pinMode(CVOut4, OUTPUT); // else one button was pressed, make a low signal } if (CVS3) { // if all variables are high, assume no button was pressed pinMode(CVOut6, INPUT); // high-Z mode for no button } else { pinMode(CVOut6, OUTPUT); // else one button was pressed, make a low signal } } I don't have CV system to test this but I can try the LED test to see if the output matches truth table. Rotary encoder isn't included since it's not present on stock Jaguar pad. If it looks good, I'd need to find a cheap CV console. I also looked at 5200 but I can't do it on the tiny ATMega328. I can do all the buttons but there will be no pin left to handle the 2 analog controller position. I would need 4 more pins to simulate analog output. I'd have to pick up the next size: ATMega 1284 which has 39 IO pins which I don't have on hand so I'd need to pick it up eventually. For another day as I also don't have working 5200 console for final testing, Jaguar A and C button works for Right and Left respectively. Also A is red on Super Action Controller, B is purple, C is Yellow, and Option is blue. I can't change red and yellow without making left and right backward. But I can switch blue and purple. Edited January 29, 2016 by 7800fan Quote Link to comment Share on other sites More sharing options...
SiLic0ne t0aD Posted January 29, 2016 Share Posted January 29, 2016 If I had an extra CV to let you borrow for testing, I would.. but I don't at the moment. Coleco's controller setup with the diodes are a pain, 28 to 34 of them I think depending on regular controller or super action controller..yikes Quote Link to comment Share on other sites More sharing options...
7800fan Posted February 26, 2016 Share Posted February 26, 2016 Have a CV system in the mail, got it cheap off eBay. Seller said it worked but had trouble with some game, and I suspect it needs a new cart slot. I already grabbed a new one of digi-key. The Intellivision adapter works fine but a few picky games like Vectron doesn't do well with 8-direction control pad so I'm looking for analog stick hack. I have the basics of CV code done and ready, waiting for the system to come in so I can test em. 1 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.