9

I have a C64 that has recently stopped responding to two 'columns' of keys, namely '9,0' 'i,o' 'j,k' and 'n,m' - I've swapped the CIA chips (U1 and U2) to no effect, so I pulled a keyboard from a spare C64 and tried it and it worked perfectly. This leads me to conclude there is something wrong with the actual keyboard.

I found this document: Commodore 64 keyboard connector and keyboard matrix and it appears all the keys I am having difficulty with are related to (I think) Port A Bit 4, which is pin 16 on the keyboard header.

I'm uncertain what to do next. Does this sound like a simple broken wire inside the keyboard? Or is there any active electronics inside the keyboard? - To open the keyboard further would require me to de-soldier the Shift Lock key and I suspect the keyboard internals are nothing more than the typical flat membrane affair.

Note, While obviously highly related, I don't think this question is a duplicate of Commodore 64 with partly working keyboard because that question was answered by swapping the CIA chips and does not provide any troubleshooting guidance beyond a bad CIA and/or inspecting the keyboard header.

  • Most likely the solder at the connection between wire and keyboard is broken. Maybe also the copper eyelet on the keyboard printed circuit board. There aren't any electronics in the keyboard. – Janka Aug 27 at 21:21
7

There are no active electronics in the keyboard: it's just membrane switches. So yes, you should desolder the shift-lock key, take it apart, and start investigating with a continuity tester.

The key membrane switches themselves do become dirty and are worth cleaning with 99% isopropyl alcohol if you have the keyboard apart anyway, but given that specific columns are your issue, it's likely not the key contacts themselves.

Jan Beta has a video, Cleaning and fixing a C64C Keyboard, which you may find helpful to see how to take it apart. (The C64C keyboard is pretty much the same as the C64.) Also, bwack's video C64 Keyboard restoration. Revive key response shows a neat little jig that lets you easily test all the keys on a keyboard directly using a continuity tester, without it being plugged into the computer.

By the way, if you're looking for further information on the keyboard subsystem beyond what you've already found, you can find extracts from and links to the Commodore service manual and keyboard page of the C64 wiki in this answer.

4

"9", "0", "I", "O" "J", "K", "N" and "M" are all on the same row of the keyboard matrix, connected to PA4 of the CIA U1. When a whole row is missing, this is unlikely to be caused by a defect or dirty membrane, but rather other reasons:

  • Broken keyboard cable: Check whether PA4 of the CIA (U1, pin 6) is connected to the keyboard via the keyboard cable pin 16. A simple multi meter to check continuity would do the job. This is very likely the reason for your problem. (measure between the CIA pin and a PCB trace on the keyboard, very likely there is no connection, then move closer to the mainboard, along connector and cable to find the interruption)
  • Single port failure of the CIA - unlikely, as the problem doesn't go away in your case whenn you swap the chips. Just mentioned for completeness here.
  • good advice but I think I can rule out the CIA to Keyboard header trace as a second keyboard does indeed work fine. I did a continuity check on the faulty keyboard this morning (as suggested in Curt's reply) and confirmed it's somewhere in the keyboard. - Next step will be tearing it apart looking for the broken connection... – Geo... Aug 28 at 17:34
  • @Geo... I'm not talking about the header on the mainboard - "PCB trace on the keyboard"! Most likely the keyboard cable is broken somewhere or a solder joint on the keyboard is loose. – tofro Aug 28 at 18:33
4

I'm posting the result of troubleshooting and fixing my broken keyboard in the hope it might help others. However, I am accepting Curts answer as the solution because he responded first and his advice confirmed there were no active electronics to worry about in the keyboard itself, and his linked information helped me to understand how to interpret the keyboard matrix to properly ring out the keyboard PCB. I'd also like to thank Tofro for his answer which I also found helpful.

After disassembling the keyboard and visually examining the PCB, I was able to spot quite a bit of corrosion in all the traces coming from where the keyboard harness wires are soldiered to the PCB. I suspect a certain careless 15 year old probably left a nice thumbprint covered in pizza grease here sometime in the 1980's...

I knew from the keyboard matrix that the keys giving me problems were all related to Port A Bit 4, which is pin 16 on the header - so I started by testing continuity from the female keyboard connector to the soldier point labeled 'E' on the PCB. Indeed this rang out without any problem.

Next I tried tracing further into the PCB by checking for continuity between point 'E' and the first exposed keypad contact, which did NOT work. This seemed to indicate the problem existed in the trace just after point 'E', but before the keypad - which correlated with the noted corrosion.

Here is a picture of point 'E', the first keypad and the corrosion:

Keyboard PCB Before Fix

I decided the easiest way to fix this would be to tack a short wire between point 'E' and the 'Y' shaped part of the trace past the corroded area. To accomplish this I first drilled two small through-holes in the PCB beside point 'E' and the 'Y' junction. Next, I then removed the green coating on the 'Y' junction by gently scraping the area with a sharp Exacto knife to expose the bare copper. Finally, I routed a piece of copper wire through the hold I drilled and soldiered it as neatly as I could.

Here is the trace side of the PCB:

Keyboard PCB After Fix (Inside)

With the wire routed on the outside of the board:

Keyboard PCB After Fix (Outside)

I re-assembled the keyboard and connected it back to my C-64. A quick test revealed all keys are now functioning normally again. I'm a bit concerned about the corrosion in that area, as it may cause future problems with other traces. I guess time will tell.

  • Excellent work! Thanks for taking the time to describe what you found out and how you fixed it. – Curt J. Sampson Aug 30 at 17:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.