Front I/O

The earlier section, on Rear I/O, described how the C64 comes with an assortment of ports along the back. In C64 Luggable, however, most of those ports are not directly exposed. The display and audio system are entirely internal. The expansion port is available internally, and can be accessed easily via the hinged rear panel door. The serial bus is connected to internally mounted storage. Additionally, some ports are connected to adapters that provide more modern and more luggable-friendly connections, such as for input via PS/2 mouse and keyboard or networking by ethernet.

If the Rear I/O panel is an analog to the C64's own rear I/O ports, then the C64 Luggable's Front I/O is most analagous to the C64's right hand I/O, with some juicy improvements.

The C64's right hand side takes the power jack. But this has been migrated to an internal AT power supply, that powers everything, including the built-in display, via a single AT power cable that connects to the back. Next comes the C64's power switch. Since everything in C64 Luggable is powered by the AT Power Supply, the C64's own power switch will be left always in the ON position. But we want the AT power switch to be in a convenient location. It will be mounted right on the front of C64 Luggable.

Additionally, the C64's right hand side has two input controller ports. Two is better than the one that came on the VIC-20, but we've had for some time now a de facto standard 4 player adapter. It connects to the User Port and provides an additional two controller ports. All four of these controller ports will be mounted on the Front I/O board. This will allow easy access to plug in joysticks for multi-player party fun. Since I'm creating C64 Luggable for me to use as a portable machine that runs C64 OS, the mouse adapter is already internally wired up to via the Rear I/O port. The front controller ports, then, can remain empty, and have a clean look when using the machine with a mouse.

C64 Luggable has a built-in audio system. We'll get to the speakers soon in the next section, Front Panel: Speaker Mounting. But in this section we'll cover how those speakers are driven by a small front mounted stereo audio amplifier. The amplifier's volume knob will be made available on the Front I/O panel. And finally the Front I/O board will be mounted to the inside front of the chassis.

C64 Luggable, with display, front panel lain in front 1 C64 Luggable, with display, front panel lain in front 2 C64 Luggable, with display, Front I/O board placed for sizing
Note: some of the pictures are slightly out of chronological order. For example, shown above the Front Panel already has the holes for the speakers. Creating these holes is the subject of the next section.

Controller Ports

C64 Luggable has 4 joystick controller ports that are accessible directly from the front panel. This makes it a great party gaming machine. I can't wait to play some Shotgun or Frogs with three other people.

In order to get the 2 additional controller ports, I've used one of the 4 Player adapters sold by Protovision. It's in the Commodore 8-Bit Buyer's Guide, under the Section: Input, along with a variety of other cool input-related products.

The 4-Player adapter is a fairly simple device. The C64 has two CIAs, one is dedicated to reading the keyboard and the two standard controller ports. The other controls the IEC bus, but many of its lines are connected out to the User Port for add-on hardware, such as an original Commodore modem, or one of the newer WiFi modems. That CIA, via the User Port, can easily be adapted to read two more joysticks.

4 Player adapter, back 4 Player adapter, front 4 Player adapter, connected to the mainboard.

An earlier section, Internal Wiring: Controller Wiring, shows how the ribbon cables for the main two controllers are put together and fed down behind the display to be available at the front panel. Two more such cables, shorter, can be made to lead from the 4 Player adapter to the front panel.

Shown in the rightmost image above, the User Port is next to the bottom of the chassis, and faces into the middle of the machine, towards the AT Power Supply. With a short board, the board typically found in the C64c (as well as the C64 Reloaded), there is enough room for the 4 Player adapter to be connected to the User Port, and for two ribbon cables to be connected to it, and it still fits in beside the AT Power Supply. Just barely, but it fits. I'd love to take credit for having measured it perfectly ahead of time, but I can't. The width of the chassis was originally dictated by the width of the display. That this fits is just a happy coincidence.

Just as with the Rear I/O, I didn't want to permenantly mount the port configuration to the inside of the chassis. Instead, I've opted to put a small board in place that is mounted to the bottom chassis, and that has the other ports mounted to it.

The idea didn't work out as well for the Front I/O board as it did for the Rear I/O board, and we'll see shortly exactly why that is. The Rear I/O board can truly be unscrewed from the bottom of the chassis, its cables disconnected, and then it can be slid out the back. This will allow me to create a different configuration down the road. And to swap back and forth between the configurations depending on how I want it set up for a particular road trip, party or show. The Front I/O board will not be able to be removed nearly so easily. Again, we'll get to why at the end of this section.

Many DB9 connectors, such as those on the C64 itself, are designed to be soldered directly to a circuit board. The C64's connectors are the 90° angled kind, and the block connector is further bolted to the PCB to relieve stress on the solder joints. Another style of DB9 connector can be seen above on the 4 Player adapter. Those are designed to be connected to the edge of a PCB, such that some of the connectors are on the top of the board, some are below.

But what we really need are a kind that can easily be mounted down onto a wood surface. A quick search of Ebay finds these very cool DB9, RS232 breakout boards. They're very affordable, some of them are available for less than $2 each. So I bought four of the cheapest ones I could find that looked like what I was after.

Set of four RS232 Breakout Boards

They're male, just like the ones on the side of the C64. They've got a 9-pin screw-down terminal block at the back. And they've got matching side holes through the PCB large enough to pass some flat head screws to hold them securely to the Front I/O Mounting Board.

The idea is to put all four in a row, side-by-side, centered in the middle of the front panel. Just like with the Rear I/O devices, I cut out an underlay from anti-static plastic. I'm not sure if that's entirely necessary, but something about having electrical terminals pushing into organic wood just doesn't seem right. A thin piece of plastic cut out with a boxcutter will do the trick nicely.

Plastic underlay for the DB9 Breakout boards The 4 DB9 Breakout boards mounted in a row

Next we have to hook them up to our controller port ribbon wire. Now, looking at the front of C64 Luggable, you've got 4 ports, left to right. It makes most sense for Port 1 to be leftmost and Port 4 to be rightmost. Another bit of serendipity, totally unplanned, the ports and hence the cables from those ports are already lined up in that order. If you can visualize the C64's mainboard standing on its end inside the chassis. Looking from the front, through the display, you're looking at the bottom of the mainboard. That puts the power jack near the top, in the middle. That puts Port 1 closest to the left edge. Then Port 2 just to the right of that. And finally, Ports 3 and 4 are further right from that, as they come out of the User Port.

Very conveniently, nothing needs to cross over, and the ribbon cables themselves don't even need to be twisted.

Here's the only gotcha. When you connect one of those self-crimping DB9 connectors to a ribbon cable, as seen in Internal Wiring: Controller Wiring, the order of the pins on the ribbon wire is not 1, 2, 3, 4, 5, 6, 7, 8, 9. Inside the DB9 connector you have two rows of pins. 1, 2, 3, 4, 5 on the top row, then it loops back down to the bottom row, and between each of those pins you have pins 6, 7, 8 and 9. That means pin 6 falls between 1 and 2. And pin 7 falls between 2 and 3, and so on. Thus, the pins on the ribbon cable are in the following order: 1, 6, 2, 7, 3, 8, 4, 9, 5.

On the DB9 breakout boards, however, they've taken some pains to make the terminal header more sensibly laid out: 1, 2, 3, 4, 5, 6, 7, 8, 9. This requires the ribbon cable to have its lines carefully unwoven, until you get what's pictured below. After wiring up the first one, I continuity tested all the lines to make sure I'd done them correctly.

Diagram showing wiring requirements One breakout board wired up with ribbon cable

The screw-down terminal headers are wonderful to work with. You don't have to solder anything at all. And you can therefore replace the cables at anytime. It's great. After you've connected the other four ribbon cables you should end up with it looking like the images below.

I split the ribbon cables, in groups of 9 lines, from a wider cable, probably a 40 line cable. In order to not be a complete idiot, I used a marker to put a mark on line 1 so I wouldn't get confused and wire them up perfectly in reverse. Then continuity tested after each one, to confirm.

All 4 ribbon cables connected to the DB9 Breakout boards A few from a distance, showing the different lengths of cable

Now. You'd think that that part of the job is done. My 4 controller ports are mounted and we're ready to go on to the next phase! Wait, not so fast. I hit a little snag.

Remember how I said I initially purchased the cheapest RS232 Breakout boards that I could find? Well that turned out to be a mistake. These boards aren't just inexpensive, they are super cheaply built. They have at least two problems, one of which was annoying but dealable, the other was facepalm inducing.

These breakout boards, visible from the pictures, have a row of 9 through-holes which are designed to let you solder on a pin header. From the moment I saw that in the pictures, I thought I'd take advantage and add the pin headers. That way, again without permenantly soldering it, I could attach an additional ribbon cable to any port to do something else with it. Who knows, maybe I'd have an alternative Rear I/O board with controller ports on it. Or maybe I'd move the MicroMys mouse adapter to one of these cables. I just liked the idea of not being cornered in.

The annoying but dealable problem is that the mounting screw holes are so close to the pin header holes that they cannot both be used at the same time. As soon as you put screws through the mount holes, there is no room for the outermost pins on the pin header. Annoyed, I figured I'd just put up with it and abandon that idea.

Then, when it came time to figure out how to put the metal plate over the Front I/O board, I thought it would make a lot more sense to just not have those hexagonal nuts. They're usually used to hold an RS232 cable to the port, to prevent it from accidentally falling out. But, for a bunch of joysticks that don't have the securing screws, the nuts aren't necessary. Plus, it would be a pain to shape the front metal plate to accommodate them, so, I figured I'd just remove them.

And that's when I found out that the entire metal shield around the pins is only held onto the rest of the connector via those nuts. Good grief. Usually they're riveted together, and the nuts are purely optional. Not so with these cheapo boards. Remove the nuts, and the entire connector falls apart.

Back to Ebay, I found another kind that looked a bit more robust, and cost a bit more. It's hard to tell exactly what you're going to get from Ebay, and it takes a long time for parts to arrive in the mail, so that can be very annoying. Eventually, many weeks later, I got these replacements:

Comparison of the two RS232 Breakout boards, top side. Comparison of the two RS232 Breakout boards, bottom side.

On the backside, where the terminal block is, they are the same width, so their spacing ends up exactly the same. But, for some reason the original ones were narrower on the DB9 port side. The fact that the new ones are perfectly rectangular actually lets them mount more stably, side-by-side. The wider PCB means screw mount holes can be further apart, and they don't interfere with the pin header through-holes.

The hex-nuts are not required to hole these ones together. In fact, you can see the rivets in the images below. So I soldered on the pin headers, shown below, and replaced the original DB9 Breakouts with these.

Soldering the pin header to a new DB9 Breakout board. One of the new DB9 Breakout boards, angled view. One of the new DB9 Breakout boards, bottom view.

In the pictures following these, sometimes you see the new ones sometimes the old ones, depending on when I took the photos.

Power Switch

This one is pretty straight forward. I want the AT Power Switch to be mounted such that you can press it on the front panel to turn everything on. The switch is at the end of a short wire that gives you a nice amount of flexibility in where to route it. The switch has four wires, blue, brown, black and white that come out of one side, 90° from the direction of travel of the push button. The side, opposite the side where the wires connect, is conveniently flat.

First thing to do is take a picture or two of the switch with the wires still attached to it. You can refer back to these photos to remember how to hook them back up later.

Image of the AT Power Switch wiring, white side. Image of the AT Power Switch wiring, black side.

It seems obvious that the switch will be mounted against its flat side, with the wires coming up. It also needs to be positioned back somewhat from the front edge of the mounting board. What is not obvious is how best to mount it so that it'll stay rock solid through the years that I'll push the button over and over.

The switch is made of a black plastic molded case on three sides, with a metal plate on the flat, down side. The metal plate has legs bent up at 90°, that pass through holes in the plastic casing and then fold over to hold them together. One idea I had was to open the switch up and drill two holes through the bottom metal plate. The bottom metal plate can then be screwed to the mounting board, and the whole thing can be reassembled in place.

This plan didn't work. There is even less room inside the switch case than I'd imagined. Even for just the heads of two small screws, there wasn't enough room. It was impossible to reassemble the top case. Partly to blame is that the screws were in the middle of the metal plate, but on the inside of the plastic casing is a divider right in the middle that separates the two sides. Technically an AT Power Switch is two switches. It's a DPST (Double Pole, Single Throw) switch. You push one button, and it connects +5V to Load on one side, and it connects +12V to Load on the other side. The two sides are kept apart by a dividing plastic wall on the inside. You do not want to mess with removing even part of this wall, at the risk of accidentally bridging the two switches. That would not be good.

My second idea was to run a flat piece of metal, the kind used to hold heating ducts to the underside of floor boards, across the metal plate. This way the screws would be on either side of the metal plate and plastic case, rather than inside it. This didn't work either. Here's how it looked when I tested it out on a piece of spare wood.

Mounting the AT Power Switch, internal view. Mounting the AT Power Switch, case not fitting back on.

There is no way around it. That case needs to come back together and leaves only paper-width space for anything to pass through it. Both attempted solutions held the bottom metal plate to the mount board with sufficient strength and stability. But in neither way could the top case be put back on.

Now, you can see that the switch has two machined screw holes on either side of the push button. These are clearly designed for mounting the switch in a PC chassis. But, it's not entirely obvious how to make use of them. For screws to pass through them, mounting the switch from the side of the push button, the screws would have to pass through the thin metal front cover plate. This is not going to work. That metal cover plate is thin and decorative. It's not meant to have anything mounted directly to it.

Plus, I don't want the switch to be mounted flush with the front of the mounting board. I want the switch to sit back some, such that its spring assembly never protrudes through the front metal cover.

I happened to have several AT Power Supplies kickin' around, so I checked them all out to see if any of them had a different style of switch that I could use. What luck! One of the switches had a small, roughly square, metal plate attached to it. The square had a hole in the middle through which the push button passes, two holes lined up with the mount holes of the switch itself, plus two additional holes at the bottom of the plate.

What I did was bend that metal plate so the bottom two holes are at 90° from the front two. This allowed me to mount the plate to the mounting board, at whatever distance I wanted, and gives a beautiful mounting point for the switch. Check out the photos below.

AT Power Switch mount plate, front view. AT Power Switch mount plate, top view.
Testing out the mounted AT Power Switch. The final appearance of the mounted AT Power Switch.

That worked perfectly. The AT Switch case can be fully assembled. I got to keep using the original switch. It's mounted through the switch's official mounting holes, but it's still mounted to the bottom mounting board. And it's rock solid when the button is pushed. Nothing budges.

I'm really happy with how that turned out. The only problem is, I don't know if it's possible to source those little metal plates, I just happened by chance to have found the one I used.

Volume Control

If you're going to have a Luggable computer, you want everything to be built into the same case with a handle on top. The obvious thing to build in is the display, which is the most visually prominent part of C64 Luggable. But you also want to have built-in audio. Putting an audio jack on the back of the computer would be cool, and maybe I'll even get around to that, but having built-in audio is a must.

There are three main components to any audio system:

  • The source
  • The receiver/amplifier, and
  • The speakers

The source, obviously, is the C64 itself. And I should add a second SID chip to the C64 mainboard, but that's not the topic for this section. Like the display is to the whole, the speakers are the most visually noticeable part of the audio system. But they're the subject of the next section, Front Panel: Speaker Mounting. What is easy to forget is the middle piece. The receiver, or amplifier.

The source signal put out by a C64 is not strong enough to directly drive speakers. That signal has to be amplified, using a powered amplifier that can then drive the speakers with significant wattage. I admit, I didn't know how I was I going to solve this problem when I first set out.

PC Speakers, example 1 PC Speakers, example 2

Some speakers, like PC speakers, have built-in amplifiers. And I considered incorporating some sort of speakers like the ones shown above. But these also come in their own plastic cases, and often just plug directly into an AC wall outlet. They are hardly ideal. What would be better would be to have just a pair of standard speakers, and a separate amplifier. But then, I can't have a huge receiver with tons of knobs and inputs, all crammed into a space only a few inches by a few inches.

Ebay to the rescue again. A quick search revealed a variety of similar devices. The one I finally ordered is a DROK TDA7297 "DC Micro Digital Amplifier." And these things are cheap! This one only cost about 5$. I actually bought two of them, because I figured I could use the other one in another project.

Digital Micro Amplifier, top view Digital Micro Amplifier, angled view

This little amplifier is perfect. It consists of a PCB that is only about 2 3/4" square, with four convenient mounting holes. It has 3 blocks of 2 screw-down terminals: +/− for a left audio channel, +/- for a right audio channel, and +12VDC/GND for power. The fact that it's powered by 12 Volts DC is perfect, because the AT Power Supply puts out +12VDC. It has no on/off switch, it simply powers on when the AT Supply is turned on. It has a potentiometer with a plastic volume knob that juts out the front, opposite a tall heatsink fastened to the TDA7297 dual bridge amplifier.

It also has a 3.5mm stereo audio jack to connect the source. The only problem is that the input audio jack is also mounted on the front. But, clearly I don't want to have an audio cable coming out the front of the machine. The audio source is the C64's mainboard which is in behind the amplifier. It's an easy problem to solve though. I just desoldered the audio jack from the PCB, and reattached it to the PCB via three wires. This lets you direct the audio jack up and back. Here's what it looks like labeled:

Digital Micro Amplifier, Parts Labeled Digital Micro Amplifier, Dimensions Labeled

It is rated to output 15 watts of power per channel. With decent speakers, 15W is enough to put out around 100 decibels. You're not going to rock a concert hall with them, but as far as audio systems for your C64 Luggable are concerned, that should be quite loud. Besides reading some anecdotal reviews, though, there is no way to tell until you take the plunge and order one for yourself. Which is what I did.

Before actually going ahead and trying to embed this little guy into the whole, I wanted to test it out first. In order to hook it up I needed to:

  • Create a set of speakers wires
  • Connect it to the speakers
  • Hook it up to +12VDC power

The speakers, which we'll get into soon, are the kind you might find mounted in the doors of a car. They have standard, flat, connection terminals. The positive terminal is slightly wider than the negative terminal. A trip to Canadian Tire (an automotive, home and gardening retail chain in Canada) got me a spool of speaker wire and a pack of crimpable connectors. Of course, I'm a complete idiot, who has never seen these connectors in my life before. And I didn't own a crimping tool. So I tried to solder the wires into the connectors. It was messy and the solder got in the way of making the actual connections, and frankly the joint between the wire and the connector wasn't that strong. Once I realized that the damn things are designed to be crimped it all made a lot more sense. I bought a crimping tool, and sheepishly put together a second set of cables.

The connectors needed to be loosened just a tad to be able to push them onto the speaker terminals. Other than that, there's nothing to it.

The AT Power Supply comes with several molex connectors and a couple of floppy connectors. To do it right, I should have found a male floppy connector to wire to amplifier. But, as it turns out the female floppy connectors have quite small holes. It's easy enough to insert a piece of solid core wire into the connector. That worked quite well. My main goal was that I did not want to cut off the floppy connector, like an animal, and attach the wires directly to the amplifier.

On the AT Power Supply, yellow is +12VDC, black is ground, and red is +5VDC.

Speaker wires, with soldered connectors, not crimped. The amplifier connected to +12VDC via the Floppy Connector. Testing the amplifier, hooked to speakers and an iPhone.

I hooked it up to an iPhone, initially, just to test the volume and sound quality. And to see that it actually works at all. I'm pleased to announce that it works! And, the sound quality was remarkably good considering the low cost of the device. The volume was also quite acceptable. Turning it to maximum volume was much too loud for my liking. Around half volume is where I would probably use it most of the time. And that's good news, because it has a lot of headroom to make it louder for a larger room, or at an expo or other show.

There was one problem though. Something about it was flaky. Depending on how I moved the amplifier, the audio would crackle, and sometimes the entire amp would shut off. You can tell that because it has a bright blue LED to show when it's powered on. Initially, I was pretty bummed by this. I mean, it's the perfect size, it's powered by the AT Supply, it's certainly loud enough, the sound quality is good, but it's flaky! Why would that be? It's got no moving parts, except the volume knob, but it feels solid like a new pot should.

Eventually I figured out what had happened. This device is cheap, after all, so this shouldn't be a big surprise. The nut part of the screw-down terminals rotate slightly. And they are soldered through the PCB with a round pin through a round hole. When I was screwing down the terminals, three of the six solder joints had broken. This made the terminal block kind of loose, and the connection kind of flaky. Once I realized how simple the problem was, I just resoldered all six joints, and the problem went away completely.

Whew, that was a close one.

Audio jack moved up on three wires Amplifier mounted to the Front I/O board

Once I'd confirmed that it actually works, and sounds good, I moved the audio jack up and onto three extension wires. It's pretty straight forward, it's just three lines: left, right, and a common ground.

I then screwed the amplifier's PCB down onto the Front I/O board, on the far right side. And used a small cutout of plastic beneath it so the terminals are resting on plastic instead of the wood.

Mounting I/O Board

Just as I did with the Rear I/O board, I mounted the Front I/O board to the bottom of the chassis using 1 1/4" bolts that pass through a couple of wide flat washers, then through pre-drilled holes in the Front I/O board, and straight through pre-drilled holes in the bottom of the chassis. On the underside of the chassis I used the same threaded inserts. As you tighten the bolts, the four spikes on threaded inserts are pulled into bottom of the chassis. This way, when you remove the bolts, the threaded inserts stay securely in place.

Underside threaded metal inserts Topside mounting bolts

Ultimately, there is no wear being made on the wood with each insertion and removal of the bolts. All the tension is against the threaded metal insert, and the flat washers spreading the preasure out on the top surface of the I/O board.

The idea is to be able to remove those bolts and slide the Front I/O board out through the cutout in the front panel. The main front panel, like the main rear panel, is permenantly fixed to the chassis. Then a rectangular notch is cut out of the front panel, through which the Front I/O board and its components should be able to slide. Then a metal cover plate is attached to the front edge of the Front I/O board and has precision holes dremeled through it for the various parts to be accessible. A hole for the power switch, holes for the four joystick controller ports and for the volume knob.

The difficulty is that the front panel also has to house the speakers. And that means the notch can only go up so high. Any higher and it would intersect with the speaker holes, and the entire front panel would loose massive structural integrity. You'll see exactly how this looks in the next section. I needed to leave a bridge of wood between the speaker holes and the I/O notch. But, the volume knob of the amplifier, as well as the giant heatsink on the TDA7297 are taller than the opening of the notch.

This basically makes it impossible to slide out the I/O board ones the front panel is attached. But, I'm still glad I mounted the components to an inserted I/O board. It'll just be more difficult if I ever want to change it out. There is significantly less space in and around the Front I/O than there is around the Rear I/O. It's below the display, behind the C64 mainboard, behind the AT Supply, and crammed in below the back of the speakers. A couple of people who saw the size of the chassis early on commented on how large it is. It ends up that most of that space is taken up.

Here's what the final Front I/O board looks like, before the front panel is put in place.

Front I/O Board, Final 1. Front I/O Board, Final 2.

Next Section: Front Panel

Table of Contents

This is a document in progress.
Check back again soon.

Last modified: Sep 20, 2022