In the last entry, I was left with a working ColecoVision-compatible board, albeit ane with a very stuttery controller that would only work when connected to what I thought was the second controller port. Let's fix that, and then enjoy the cheapo ColecoVision games that I spent all this try building this affair for in the offset place.

Whatever Port In A Storm

The biggest obvious problem is that I mixed up the controller ports. On the original ColecoVision, J5 is player two, while J6 is player one. I didn't catch this until I realized that the buffers the controllers are plugged into are correctly numbered. This explains why the "player one" controls worked when I was plugged into the rightmost port, which I idea was player ii.

Nonetheless, this doesn't actually impact functionality. It simply means that I put the port in the wrong place. An like shooting fish in a barrel thing to fix with a new board, but not worth information technology until I fix the bodily broken controller-reading role first. I made a mental annotation that the right port is "player one," and moved on with life. No bug hither!

Therapy For Mario's Stutter

ColecoVision controllers are read in two "modes:" one to get the signals from the joystick and one fire button, and the other to get the signals from the number pad. The games instruct the Coleco to switch between the ii modes then read each half of the controller country independently. This was Coleco's way of getting effectually the fact that the DE9 connector has fewer pins than the controller has buttons, without calculation something expensive to the controllers such every bit an NES-style shift register, microcontroller, or a serial encoder.

Where to start? Checking over my previous work. If the sprite trouble in the previous entry had been acquired by sloppy soldering, it stands to reason that'south likewise the case here, every bit the same incompetent associates person soldered that one besides.

I looked at U23, which is the 74HCT00 responsible for running the "mode alter" flip-flop, and noticed the solder on a few of the pins looked underfilled. If the pins are simply making intermittent contact, it could cause unpredictable results. Since the IC is on the bottom of the board, gravity is going to fight us besides, increasing the chances of the pins lifting off the pads. I practical some flux and fresh solder and fabricated sure that they were now affixed firmly.

A partial fix: now in Donkey Kong, Mario could run consistently and smoothly forever instead of the stuttery "drunk walk" he had earlier. I'm still not whatever adept at the game, but that doesn't matter. However, the keypad was broken at present: pushing keys on the number pad no longer picked difficulty levels at the startup screen, nor did they move Mario around as they did in the previous entry. And games which used the 2 triggers for separate purposes (i.e. Catholic Avenger) fired both at the same time when the left trigger was pulled.

And then, something about the style-changing country machine was still bad. Earlier sitting down to do whatsoever more than diagnosis, I noticed a couple of underfilled joints on the I/O multiplexer 74LS138 chip, U13, besides. I went ahead and touched those joints up too, flowing in a bit of fresh solder. This seemed to do the trick! Now I could start games with the numpad and play with the joystick, but like the designers had originally intended.

Because of all these bad joints, I've learned not to rush drag-soldering, and to double-check all of my work. I've also bought one of those el-cheapo LCD microscopes. The magnification on these is peachy, and it makes it very easy to run into bad joints right away.

A Ameliorate(?) Joystick

Back to the ColecoVision pad, so. Unfortunately, even afterward touching up the solder on U13 and U23, the upward and downwardly action on the joystick was still really rough. I felt like I had to push it much farther for the up and down directions to register than I did for left and correct.

Even though the console was working fine, this glitchy controller fabricated a lot of games finer unplayable, particularly if they involved diagonals, which are already tricky on a properly-maintained ColecoVision controller. Conspicuously, my restoration of the Quebecois joystick in the previous entry was a failure.

I also tried with a previously-untested Wico Boss joystick that I got every bit part of a VIC-twenty set – that project is coming shortly. Since it's Atari-standard pinout, information technology should work for the ColecoVision as well, as long as yous take a number pad plugged into the other port to control the skill menu, etc. Unfortunately, the new-to-me Boss was extremely bad at pushing up or right, which meant that information technology went on the repair pile. Judging from a few threads on AtariAge, it seems similar this model of joystick commonly needs a little bit of TLC.

A better-looking Coleco Adam joystick with cheap shipping popped upward on eBay, then I leapt at information technology. The "grip disc" was missing from the stick on this one, also, and something had been chewing on information technology, but it seemed (from the pictures) like a tighter, better-treated unit that wasn't missing chunks of plastic and a couple of its case screws. Besides, the greyness Adam sticks are just cooler.

The Coleco Adam stick, as shown on eBay.

Unfortunately, it turns out that this controller was besides bunk, and had clearly go rusted from sitting in some water. The "downwards" motility was great, merely unfortunately the "up" motility was now nonexistent instead of really spotty. I'm assuming that "upwardly" is the primary management in which these controllers fail, either because of the leverage of the giant stick reefing on the thin leaf switches, or considering of water ingress through the nearby cablevision hole.

After wasting a few minutes jigging upwards the connector in order to test the controller, I realized that the diode drop within the controller would make the continuity test of my meter not work. My only style forward would be to take the controller apart and fizz it out from inside.

The rotted trace on the flex cable for the number pad membrane.

When I took it apart, I noticed that the ribbon was looking a piddling ugly going to the number pad, but it all the same seemed to piece of work during my limited examination. In that location's not much I can exercise about that without pulling apart some stick-on parts, so I left it. After looking at it a little more, it seems similar this detail trace is actually on the backside of the membrane, which is why it looks weird compared to the other ones.

I used a continuity examination on the multimeter to test the foliage switches for the directionals, where I discovered the "upward" switch didn't register when I clicked the leafage. Additionally, all 4 leafs had very cold, very croaky solder joints with poor fill, a classic failure mode of these controllers. I sucked the solder out on all of those, and replaced it with fresh stuff.

On superlative of that, I assumed that the barely-plated leaf switches must have become oxidized, and tried to clean nether them with deoxit and some alcohol scrubbing using a toothbrush. This seems to have worked, and all four directional leafage switches were now more responsive on the continuity test.

To top it all off, a number of the "crimps" on the edge had broken, so I again soldered them in. I did a little bit of cleanup of the crush to remove all the years of accumulated hand gunk, and then closed it upward.

The initial examination mostly cured the joystick, merely neither of the fire or arm buttons worked. This made most games pretty unplayable, and I was getting tired of wondering if the problem was with the soldering on my board, the design of my board, some kind of board flexure issue from inserting cartridges, or the now nearly 40-year-old controllers of unknown provenance that I was jamming into it. I decided to get for the nuclear option.

When I first set out on this project, I considered building my own stick to go with the organization, every bit the circuit is very unproblematic, but the prices of Seimitsu and Sanwa joystick parts are a piddling steep, and by the fourth dimension the planning looked similar it would turn into a large project, I figured it would be better left for some other day. That day has arrived.

Spend Fifty Dollars

Amazon has a agglomeration of inexpensive joystick parts. I seem to remember these kits being a lot cheaper in the past, but with the current shipping crisis, I don't recollect I tin can actually complain that much. Especially since the joystick housing must have been a mislisting, at most half the cost I was seeing information technology sold for, even on AliExpress.

For what I paid for the housing, I think I got an okay bargain, with some caveats regarding the quality command. They were conspicuously trying to drill this with very worn-out drill bits, equally the holes in the instance are fairly crude. The suction cups on the lesser go into holes that are less round than oval, and so I had to apply some old keychain rings (which I had on hand for some reason) to proceed those suction cups from falling out of the bottom of the case. They besides shortchanged me at least one nut, although I could easily accept dropped that somewhere. Last, despite the cling-film protective wrapper, the shiny top is dinged up and scratched in a few places.

That last role is goose egg that plastic shine couldn't ready if I actually cared, but if I were paying the full $59 that they were request ordinarily for this case, I'd be a little peeved. Every bit for the buttons and stick themselves, they seemed fine except for the full general cheap feeling of the ball height and scratches on all of the blackness buttons. The joystick besides has a trivial bit of a long throw, which shouldn't really dissuade anyone used to the ColecoVision. Overall, they work, so I'm happy.

The top of the joystick is assembled - all of the buttons clicked into place and the joystick is screwed down.

The parts kit I ordered is the usual 1, containing a joystick, buttons, cables, and a "USB board" that has a potted microcontroller of some kind. I made a terrible protoboard out of a agglomeration of 0.i" headers – for each of the pre-crimped input cables – wired to a Sega Genesis extension cable that I had cut in half previously.

Board of Directionals

The trashy prototype board inside the joystick, in its first version that didn't work (sorry for the spoiler)

I had to practise a lilliputian chip of work for the number pad - I wanted "ane" and "*," then I had to figure out where those were on the original matrix and transplant them into the new board along with their corresponding anti-ghosting diodes.

As briefly covered upward to a higher place, the basic ColecoVision controller uses pin 5 on its connector as a footing pivot for reading the number pad and ane of the fire buttons, and pivot 8 as a ground pin for reading the joystick and the other burn push button. The number pad is sort of an abnormal interpretation of a keyboard matrix. Rather than "scanning" information technology similar a real keyboard, which would probable waste a lot of CPU cycles, the buttons pull multiple pins to basis at once in a sort of bitflag construction – for case, the "*" key pulls downwardly pins ii and 4 at the same fourth dimension, and "eight" pulls down pins ii, 3, and iv. That way, your game code can read the controller register in one shot, and index it into a simple bound tabular array in society to respond to that push button.

This was all washed in a real hurry, in the truthful RetroChallenge spirit. I failed to reserve enough room for the 9-pin connector, and concluded up kind of shoving it into the board wherever there was room, and running a jumper wire rather than desolder things to movement them to a improve place. Every bit a result, my board looks like someone threw a bunch of multicoloured spaghetti at a protoboard and then melted a bunch of wiring insulation with a soldering iron over top of it.

Naturally, my first version seemed to admittedly non piece of work, stalling on the "skill select" screen and not fifty-fifty allowing a regular controller plugged into port two to select that skill.

The joystick PCB, with a red arrow pointing to the inadvertent solder bridge between pins 5 and 8. Please don't look too closely at any of the rest of this, I am ashamed of my bodge-wire work.

Don't wire tired, because later on a good night's sleep I realized that I had accidentally bridged pin five (number pad select/ground) and pin 8 (directional select/basis) together.

Success

After cut that span out, the joystick worked neat. I was once over again able to beat 1940 in Time Pilot one!

There are lots of leftover buttons on this controller, and I hate to waste them, so I hope to eventually either brand this sort of a "multi-system" joystick (i.e. toggle between 6-button Sega and ColecoVision,) add together more of the number pad, or integrate the Super Action Controller buttons. As it stands, near of the buttons do nothing and are merely there to fill up a hole in the case.

The joystick PCB, stuck into the board with a piece of double-sided tape.

This could all get turned into a real PCB with more features. Maybe that will happen if there is interest down the line, but I strongly doubt there will be. Most people volition probably be happier with this first-class open-source Coleco-in-NES-controller board.

Overall, I'm really happy with how this joystick turned out. While the excursion board is an absolute mess, this will provide a reliable testbed for other Leako boards (and possibly other clone machines down the line.) I definitely had a lot of fun plugging together all the big mesomorphic joystick parts, too!

The assembled joystick, plugged into the working Leako. Please notice that the joystick is significantly larger than the Leako itself, which I believe is interpreted in some cultures as a sign of quality. Behind the joystick is a Power Computing Macintosh clone, which may well be a part of a future entry.

Next Steps

In the next entry, at that place will be more controller testing of the Leako. Coleco as well sold trackball controllers (the Roller Controller) and steering-cycle controllers (you would think this would be named the Steering Controller, but no – it'south the Expansion Module #two) and back up for them takes up a large section of the lath. Will they piece of work? Let's find out together.