One type of project that's really enjoyable is modifying a system with uncomfortable controllers (like the 5200, 7800, or intv) to use genesis ones. However there didn't seem to be one on the web for colecovision controllers even though people complain about them. I checked out Deathskull Labs Archive then looked at the signals on an oscilloscope. It turns out that CV controller signals are nasty, very nasty!
Firstly, there are no 5v or ground signals brought up to the controller jack, only two pulsing pins that swing between 4v and -0.7v. That's right, negative voltages on the connector port. Looks as though the purpose is to produce 0v on another pin after it's connected to it through a diode (like when pushing south on the joystick). Another issue is that both fire buttons time-share the same connector pin, this is possible because those two pulsing signals go low at different times and each button uses one.
My first plan was to use standard logic gates, but the negative voltages squashed that. Then thought of using comparators, but the problem with that is the pulsing signal traverses both sides of the nominal pin voltages (2.5v when not pushing joystick). Finally used CMOS transmission gates at a last resort, they do a good job of isolating control signals from the output and the output pins are bidirectional.
Should you spend a few hours building this? Well, most games will work with a 2600 joystick and a dsub9 Y-cable. Click here for a list of two button games which make up about one sixth of the CV library.
ASSEMBLY NOTES 1. Materials needed: (3) 4016 or 4066 cmos transmission gates (2) 7404 inverter gates (12) silicon diodes (12) pullup resistors (1k to 10k fine) (2) dsub9 male connectors (1) 100uf decoupling cap between 5v and ground (1) project board 2. 4016s and 4066s are compatible quad analog switches, you can use either one. 3. The original CV controllers are still plugged in for keypad use 4. This circuit requires you mount 2 dsub9 connectors on your CV unit in parallel with the regular controllers. You can hack up a Y-cable instead, but will need two extra wires for 5v and gnd. 5. If you also want to plug in atari joysticks to this circuit, all the genesis signals below need pullup resistors to 5v 6. As with all the similar mods, genesis pins 5 and 7 go to 5v, pin 8 to ground 7. All controller pinouts are at Deathskull Labs Archive and you can wire according to these or just do what I do, turn power on, find genesis signal that changes when you push controller north, find cv wire that changes when you push cv joystick north, turn off power, solder up, check, repeat. +---+--+---+ cv_north__>|_____1X |1 +--+ 14| VCC__________5v cv_p8_____1Y |2 13| 1EN_________/gen_north cv_p8_____2Y |3 12| 4EN_________/gen_west cv_south__>|_____2X |4 4016 11| 4X___|<_____cv_west /gen_south___2EN |5 4066 10| 4Y____cv_p8 /gen_east____3EN |6 9| 3Y____cv_p8 gnd________GND |7 8| 3X___|<_____cv_east +----------+ IC1 IC2 is a repeat of IC1 but for the other controller +---+--+---+ cv_p8__|<__1X |1 +--+ 14| VCC__________5v cv_player1_p6_____1Y |2 13| 1EN_________/gen_player1_B cv_player1_p6_____2Y |3 12| 4EN_________/gen_player2_C cv_p5____|<__2X |4 4016 11| 4X___>|_____cv__p5 /gen_player1_C____2EN |5 4066 10| 4Y____cv_player2_p6 /gen_player2_B____3EN |6 9| 3Y____cv_player2_p6 gnd________GND |7 8| 3X___>|_____cv_p8 +----------+ IC3 How it works: The player pushes north on the genesis controller, this makes the genesis north signal go from 5v to 0v, this makes the inverted signal go from 0v to 5v, the transmission gate changes from open to shorted, the cv_p8 low pulse at -0.7v is connected to the cv_north diode, the other side of the diode changes from 2.5v to about 0v, the colecovision reads 0v as someone pushing the joystick north