The Diagnostic Rev. 586220 is a widely accepted test tool for the Commodore C64. It tests the RAM, ROMs and the peripheral chips (VIC, SID, CIA). To test all interfaces, a feedback is required. This is provided by this harness.
Find more information about the cable making involved on my website
This repository contains all eagle files, gerber files, BOM, descriptions and cable drawings. The main documentation is contained in the User Port section.
Depending on where the parts and pcbs are purchased, the price for the complete harness is less than 20€ (2019).
Now, a 3D printed case for the user port and the cassette donge is designed and the stl files etc. are available here.
Revision 1 is released now. It fixes the "False OK" of the Control Port test, while the keyboard dongle is inserted. This is a phenomenon, that applies to all sorts of harnesses for Diagnostic Rev. 586220. Please refer to my website
A fix for existing harnesses is the extended Keyboard Dongle. It can be combined with Rev. 0 of this harness and all other Harnesses. It only requires a connection to the Cassette Port Dongle. It is not required with Rev. 1 of the harness or later.
Some people want to test the C64 mainboard while being mounted. The keyboard cable connector is conflicting here. Some leave out the strain relief. This is not a great solution. A 90° boc pin header can be used insted of the vertical one. This swapps the pins, due to a different orientation. Since the symmetrical pinning of the header and the non-directional properties of the analog switches, this does not matter and is working fine. I only build this kind of KB dongle now.
This version has no functional updates compared to Rev. 2 of the UP PCB and Rev. 1 of the Cassette SMD. Some prefer building SMD assemblies (me included). It is now fully tested.
- For the case, I have used 2.9mm x 9.5mm (self taping) screws for sheet metal (C 2,9x9,5H, DIN 7981).
- For mounting the optional slide switch: DIN 7985, M2x6
- For mounting the optional voltmeter: 2.2mm x 4.5mm (self taping) screws for sheet metal (C 2,2x4,5H, DIN 7981).
They keyboard PCB for the C128 is released now and included in this repository.
A cartridge with the Diagnostic Rev. 785260 software is required. I recommend using the Versa64cart for this purpose. Other 8k generic cartridges might also be working. /EXROM and /GAME have to be HIGH/open.
The C128D and C128D-CR require a longer cable (1m) between the user port PCB and the Cassette port dongle. Both work with the C128D Diagnostic Rev. 785260. The keyboard ribbon cable should be 90cm for the C128D.
The cassette port ribbon cable requires to be 25cm long for the C128 and 70cm long for the C128D/DCR.
The C128D-CR does not provide +5V at the keyboard D-Sub jack. The keyboard dongle does not work here. A solution needs to be developed.
I have noticed, that not all female D-Sub connectors provide a proper contact with the pin header on the C128 mainboard. Please keep this in mind. The recommended type is Amphenol/FCI DB25S064TLF (Digikey 609-1519-ND, more sources in the BOM v1.1 or later).
You might want to check out the 3D printed dongle case from retrorewind.ca.
Diagnosing an SX/64 requires disconnecting the internal disk drive. A cassette port dongle cannot be used, so the analog switches for testing the control ports need to be switched manually. This is an option with teh User Port PCB Rev. 2.
Also the Keyboard can be tested with the C128 KB dongle and a gender changer.
The Diagnostic Rev. 586220++ is capable of detecting the SX-64 Kernal and then skip testing the cassette port.
you might want to check Jeff Birt's case for the harness, too.
Find additional info about the harness on my website.
Jeff Birt provided the information of the cable lengths for C128 diagnostics. This is part of the documentation now.
The user Port PCB Rev. 2 fits into the User Port Case Rev. 1. It adds an option for the SX-64: Since the SX-64 has no Cassette Port, the Feedbacks for the CVontrol Port are not switched automatically by the software. Rev. 2 allows to switch on the feedbacks manually. A User Port Case for thei option has been made. It incorporates a cut out for a slide switch (standard 19mm hole pitch). This switch can be connected top JP1. For this option the cutpad has to be cut open.
The User Port Rev. 3 Dongle (THT and SMD versions in this repository) is providing two LED for voltage intocations (+5V and 9VAC). Further, there are pin headers for measuring those voltages at the user port. The +5V pin header allows connecting a 4 digit "precision" panel meter. I have some trust issues with those panel meters, but they are a nice light show.
Nov. 2024: There is a new version of the case (the STLs are ending on "_noVM_SX.stl"). This version allows to measure the voltages at the pin headers with your multimeter and configure the SX64 or C64 option via jumper. That jumper should be the type with a "handle".
The solder bridge JP1 near the pin header J6 (which has to be placed) needs to be open!
Therefore, it has to be cut along the gap with a scalpel or exacto knife. It is best to check the success with an ohmmeter/multimeter.
The cable for measuring the voltage (+5VDC and 9VAC) at the pin pin headers consists of two AWG24 wires, preferable in different colors, on one end is a two way Dupont connector, on the other end 4mm lab connectors. Holding them together with cable ties is maybe not such a bad idea.
To prevent short circuit, you should plug the lab connectors in the multimeter first, there are some security multimeter connectors, too.
Originally, the analog switches are 4066. The 74HC4066 was also tested and works perfectly.
The BOM values are calculated in May 2020. The calculation is based on the item prices from reichelt.de. They might differ from distributor to distributor. The edge connector prices are based on ebay shoppings. The calculated prices do not include any shipping fees.
- User Port PCB plus cables and IEC dongle: 13.38€
- Cassette Port Dongle: 4.99€
- Keyboard Dongle: 1.85€
- C128 Keyboard Dongle: 3.23€
The 3D printed cases and the labels are not included in the price calculation.