Commodore VIC-20 (2-Prong) Board Repairs

Alongside purchasing complete systems, over the past few years I’ve also accumulated a large quantity of incomplete circuit boards for “spares and repairs”, primarily from Commodore computers (VIC-20, VIC-20CR, C64, C64C, C16, Plus/4, C128, etc).

I got these for cheap in various job lots, with the intention of fixing up as many as possible and selling the working ones on for those who needed a fully-tested board (for swapping into a system, for use as a test board, etc). This meant I could focus on my favourite part of my work – the electronics restoration – without having to worry about case and keyboard cleaning, which is fun but can get quite tedious; also, a reliable supply of original spare parts from irreparable boards.

I recently finished my restoration of the salvageable boards, which has taken a VERY long time (bit by bit for the past year or so) because of both the quantity of the boards and the amount of work involved in testing, repairing, and cleaning each one.

This article focuses on a handful of early VIC-20 longboards I worked on. These use a “two-prong” 9Vac power supply, like the one that I refurbished here.

Commodore VIC-20 Board #1

The first board would display video but wouldn’t boot up correctly, showing only a white screen with a cyan border; there was no change with a cartridge installed.

Board #1 “border screen” fault.

In the VIC-20 or Commodore 64, this kind of “border screen” fault usually indicates a problem with the BASIC ROM or character ROM, as the Kernal can display a border but cannot access any of the data that is usually displayed on-screen. However, I knew that my test ROMs were working fine, so the problem must have been elsewhere.

On closer inspection, the BASIC ROM and character ROM sockets were poor-quality, worn, and corroded. Sockets are used to allow the quick installation or removal of ICs without requiring soldering; however, they can cause contact problems if damaged, corroded, or loose, and reduce the amount of heat that can be sunk away from an IC and onto the PCB. Commodore often cheaped-out on sockets by reducing the number that they used (prioritising only the most unreliable ICs) and by using very cheap, nasty sockets.

I removed the original BASIC ROM and character ROM sockets using my vacuum desoldering station (a Duratool D00672) and installed brand-new replacements. Care must be taken when removing these kind of poor quality sockets, as solder pools underneath the leaf contact and can cause via or trace damage if not completely removed.

I always use high-quality double-sided sockets, which are more reliable than cheap single-sided sockets as they contact the IC legs on both sides – a lot of people push the use of turned-pin sockets, but I don’t like using them as they make swapping ICs difficult, they are difficult to desolder, and they are visibly obviously non-standard.

Once the sockets were fitted, I reinstalled the ROMs and re-tested the board, which now seemed to boot correctly (with a flashing cursor and the correct amount of RAM showing).

Board #1 boots normally for the first time.

With a diagnostic cartridge and harness fitted, the board passed all diagnostic tests. I noticed that the screen brightness was a little low, so I adjusted it.

Fully tested with diagnostic harness; composite video output OK; audio output OK; cleaned ports and edge connectors.

Commodore VIC-20 Board #2

The second board was a blank screen fault, in that it wouldn’t display any video. In the VIC-20, a blank screen fault usually indicates a power problem, or an issue in the video circuit.

Board #2 blank screen fault.

The first thing to check with any repair is that power is being correctly received on the board, which may indicate a problem with the power socket, power switch, or fuse – I checked for 5Vdc and 9Vac on the user port, and both were OK.

I then noticed something interesting: if I applied force to the top of the video chip (VIC-I), the board would reliably display a “garbage screen”. The VIC-I and CPU socket were both of a poor quality, so I decided to replace them.

I removed both sockets using my desoldering station (a Duratool D00672) and installed replacements. Care must be taken when removing these kind of poor quality sockets, as solder pools underneath the leaf contact and can cause via or trace damage if not completely removed.

I always use high-quality double-sided sockets, which are more reliable than cheap single-sided sockets as they contact the IC legs on both sides – a lot of people push the use of turned-pin sockets, but I don’t like using them as they make swapping ICs difficult, they are difficult to desolder, and they are visibly obviously non-standard.

Once the sockets were fitted, I reinstalled the test ICs and re-tested the board – unfortunately, the board still would not boot, but it was now much more reliably displaying the same “garbage screen” that I’d seen earlier.

The video output still wasn’t working perfectly, and was dropping out when the board was flexed – I touched up all solder joints around the video circuit area and replaced the video port with a spare, and it seemed to output completely reliably from then on.

Board #2 garbage screen fault.

In the VIC-20, a garbage screen fault usually indicates a bad RAM IC, an addressing problem, or a bus conflict caused by a failed IC – most of the ICs on the board are connected to the data bus or involved in addressing, so there are a large number of potential problems that need to be worked through.

A missing reset can also cause a garbage screen – I checked the reset signal at the user port and it worked as expected, staying low (around 0Vdc) for about a second at power on, then going high (around 5Vdc).

I decided to pull out my IR thermometer to measure the temperature of all of the soldered ICs, to check for any outliers. IC failures often lead to gates shorting or pulling on inputs or outputs, which draws more current, which increases die and package temperature – this can range from a subtle difference to something that could quickly burn your finger (i.e. RAM ICs damaged by overvoltage).

The three bus transceivers, UD8, UE8, and UF8 (all MOS equivalents of the 74LS245, all dated 2581) seemed to be getting noticeably warm, at approximately 42C. The MOS equivalents of 74-series logic ICs are notoriously unreliable, so this was a potential warning sign. I removed, socketed, and tested all three using my MiniPro TL866II, and surprisingly all were working OK, so I reinstalled them.

I then decided to try out my newly-acquired Penultimate+ Cartridge from TFW8b (which I thoroughly recommend, by the way), which features a dead-test feature similar to the dead-test cartridge available for the Commodore 64, and can indicate whether bad RAM is preventing a system from booting up correctly. Sure enough, the board worked with the cartridge installed, and it indicated a fault with bits 0-3 of RAM bank 5, which is associated with the 2114 SRAM IC at UD4.

Board #2 dead-test cartridge results.

I removed, socketed, and replaced UD4 and re-tested the board, which now seemed to boot correctly (with a flashing cursor and the correct amount of RAM showing).

Board #2 boots correctly for the first time.

With a diagnostic cartridge and harness fitted, the board passed all diagnostic tests. I noticed that the screen brightness was a little low, so I adjusted it.

Fully tested with diagnostic harness; composite video output OK; audio output OK; cleaned ports and edge connectors.

Commodore VIC-20 Board #3

The third VIC-20 board worked perfectly first time. Boooo!

Published by themightymadman

A conscientious, intelligent and committed graduate engineer, with excellent interpersonal skills, an eye for detail and a keen interest in hardware design, mathematics, and software development.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: