The Easyflash3 is a very popular module for the Comoodore C64 and C128. It allows you to start a lot of programs or games directly from the flash, or to use another kernal without accessing the computer. If you have soldered such a module yourself, you have to initialize it before you can use it on the C64.
But there are also cases where a very old firmware is still on the cartridge, and this should be flashed to a current version. Especially since there is the possibility to flash the Final Cartridge III+ as a freezer to the Easyflash3 with the alternative version of Kim Jorg Jorgensen. Now there is a manual on the website of the developer “SKOE”, but it is spread over many pages and especially for less experienced hobbyists not always easy to follow.
Therefore, I would like to try to give a step by step guide. Starting with a fresh Windows 10 installation, on which there is no software or driver for the Easyflash3, I want to go into detail on the individual points.
All necessary tools are summarized at the end and are also available in the download area.
The Easyflash3 consists of 4 components:
- FTDI chip, for communication of the module via UDB with a PC
- CPLD chip, which takes care of the entire control system
- Flash chip, where not only the programs and games are stored, but also the cartridge menu
- RAM IC, which provides volatile memory for the module itself.
Except for the RAM chip, the other 3 components must first be initialized, i.e. programmed. And the order is the same as shown above, because the system is based on each other. To program the CPLD, the USB interface is needed first. The FTDI chip is responsible for this. And to fill the flash memory, the CPLD must be programmed. This results in exactly this order:
- FTDI Chip
- CPLD chip
- Flash Chip
For this tutorial I assume a Windows 10 in the 64Bit version.
Flash FTDI chip
Install FTDI driver
To enable Windows to recognize the module, the FTDI D2XX-Drivers for Windows is required first. Download and unpack it.
It is best to disconnect from the internet for a short time, otherwise Windows 10 will start to install its own driver.
If the Easyflash3 module is now connected to the PC via USB, a “USB Serial Port” device should be found in the Device Manager, which does not have a driver yet.
Right-click on this entry and select “Install Driver”.
In the new window that opens, select the item “Search for driver software on the computer”.
Now navigate to the unzipped directory and make sure that the item “Include subfolders” is checked. As usual with Windows, this step is also continued by clicking on “Next”.
The driver is now installed and Windows shows a “USB Serial Port (COM3)” in the Device Manager, where COM3 is the number of the port. This can vary from computer to computer. It can also be a completely different number on your computer, and it does not matter.
After closing the window, the Device Manager appears again with the now correctly recognized driver.
The driver installation is now complete and you can proceed to the next step. The Internet connection can now be re-established.
Install FTDI programming tool
Next, the FTprog tool from FTDI is needed. In order for the FTDI chip to know how to handle the communication between the CPLD chip and the USB port, it has to be configured. This can be downloaded from the FTDI page under FTDI FT_Prog. Then start the executable EXE file.
And as it is with Windows, you may now confirm the displayed pages a few times. It does not need to be set or configured here. Just keep clicking “Yes”, “Accept”, “Next” or “Install” until the installation is complete.
Done, now the tool is installed.
Programming the FTDP chip
Before the FTDI chip can be programmed, the appropriate template is needed. This can be found under EasyFlash 3 Template for FT245 (right click on this link, select “Save as”).
Then the previously installed FT_prog is started. In the menu bar there is an icon in the form of a magnifying glass, which is now clicked. The Easyflash3 module must of course be connected to the PC via USB.
Now the tool should have found the still unprogrammed Easyflash3.
Right click on the upper entry with the title “Device…”, then click on “Apply Template” and select “From Flie”.
Now select the previously downloaded template and click on “Open”.
The message that appears can be confirmed with “OK”.
Now the template has been loaded into the software. Now only the EPROM in the FTDI chip has to be programmed, just with the help of this template, which contains the corresponding configuration for the use as easyflash3.
Click on the flash symbol in the menu bar. A new window opens.
Now the actual programming process can be started Simply click on the “Program” button.
Not much will happen on the screen now, and it will be quite fast. If you look closely,. you can see the respective status in the lower left corner of this window.
The sequence is
- Flashing Device 0 [Loc OD 0x121]
- Finished Programming
This happens within 1 to 2 seconds. If it says Ready, the programming is finished and the window and afterwards the FT_prog tool can be closed.
Now the programming of the FTDI chip is finished and the USB cable can be disconnected from the Easyflash3 module.
In order for the Easyflash3 module to be recognized by Windows again, the appropriate drivers are still missing. You will need them later, if you want to add programs or games with the Windows Tools.
Install Easyflash3 driver
Temporarily disable Windows driver signature
Before the driver can be installed, the driver signature must be temporarily disabled in Windows 10. To achieve this, Windows must be restarted once. It is important that the “SHIFT” key is held down. Windows normally by clicking on the menu icon at the bottom left and then click on “Restart”. But first press the “SHIFT” key and keep it pressed!
Windows will now restart and should display the following menu. If Windows starts normally, either you forgot to press the “SHIFT” key or you released it early. Release the “SHIFT” key only when the blue screen is displayed. Then click or select the “Troubleshooting” item.
Select “Advanced Options” as the next item.
And finally go to “Startup Settings”.
Here you can’t set anything, just click on “Restart”, which will cause the computer to reboot again.
When Windows starts, the following screen appears, with various options. There, select the option “7) Disable driver signature forcing”. To do this, press the number key “7”. Mouse control does not work at this point.
Windows will now continue to boot normally. As long as the computer has not been restarted, drivers can be installed that have not been approved by Microsoft, such as the Easyflash3 driver. After installing the driver, Windows can be rebooted once again. After that, the driver signature query is enabled again, but since the driver is now already installed, it remains active.
Installing the driver
First, download the necessary drivers EasyFlash 3 drivers from SKOE’s site and unzip them. Then open the device manager. There you can see that the Easyflash3 is recognized by name, but the driver is missing.
As before with the FTDI driver, right click on the Easyflash3 entry and select “Update Driver”.
Next, select the item “Search for driver software on the computer”.
And again specify the directory in which the driver has been unpacked shortly before. Also make sure that the item “Include subfolders” is activated again.
Windows sees the approaching end of our civilization, and warns urgently that life will not be the same after this driver installation 🙂 This is simply ignored, and by choosing “Install this driver software anyway” Windows admits defeat, and installs the driver.
The files are now copied and the driver is installed.
This is how it should look like when Windows has successfully installed the driver.
Also in the device manager the note about the missing driver has disappeared and the Easyflash3 device now appears under the entry “libusb (WinUSB) devices”. Now both Windows and the Easyflash3 module are ready to start programming the CPLD.
Now the computer should be booted again normally, so that the driver signature detection is activated again.
Flashing the CPLD chip
After the first part has been completed successfully, the CPLD chip can now be programmed. For this you need the tool EASP, which is also available for download on SKOE’s website. This is just the programming tool, you will also need to download the actual file that will be flashed to the chip. The SVF FIle for the CPLD can be found at ef3-cpld-1.1.1.zip.
Download and unzip both files.
In order to flash the Xilinx CPLD at all, the jumpers have to be set to the “PROG” position, like on this picture here.
And the CPLD needs an extra supply voltage. It can’t get this from the USB port. The easiest way is to plug the module into the expansion port of the C64 and switch it on. Then the USB connection between the PC and the Easyflash3 module must be established.
Now a command prompt (often called a “DOS window”) is needed.
There change to the path where the EASP tool was unpacked. In my example this was the path in the user directory of Windows “Downloads\easp-2014-01-09\easp-2014-01-09\i686-w64-mingw32“. The EASP tool itself is in the unpacked package again in its own subdirectory, hence the “i686-w64-mingw32” at the end of the path.
The command to flash the CPLD is: “easp -p 0x8738 -v <SFV-File>“. For the placeholder “<SFV-File>” the path, incl. file name of the unpacked CPLD software must be specified. The easiest way is to copy the *.svf file to the same place where the easp.exe is located. Then the call would look like this: “easp -p 0x8738 -v ef3-cpld-1.1.1.svf“.
If this command is executed like this, the CPLD will be flashed.
If you get the error message “libftdi: device not found” instead, you probably forgot to connect the USB cable to the PC or to plug it into the Easyflash3 module.
The EASP tool will now start to flash the CPLD. This takes about 2 -3 minutes. You can see an output running bit by bit.
This still takes the longest time. When it has written everything, a verify is done. You can see this because the output looks a little different and the lines just race through. This takes only a few seconds.
In the end, the whole thing should look like this.
Very important is the last line of the output. It must say “<<< All TDO outputs matched to the expected values! >>>“
By the way, the C64 will probably crash during this process. This is perfectly normal and does not bother you.
However, if the message looks like this: “<<< 119872 TDO outputs did not match to the expected values… >>> “, probably either the C64 was not switched on or the jumpers were not set correctly. Because not one memory cell was written.
It becomes more problematic, if not “<<< 119872 TDO…” is written there, but a completely different number. Mostly something in the range of 70000 to 90000. Then generally the CPLD could be written, but some memory cells could not. This can have several causes.
If the CPLD was not purchased at one of the renowned electronic mail order companies, like Mousser, Digikey or other regional dealers, but at eBay and especially at AliExpress from China, then there could simply be a write protection on the chip. I had already written the article EasyFlash³ – Problems with the CPLD. This problem can be fixed quite easily, and is described in this article.
If the error occurs nevertheless, then it is in most cases because of a faulty soldering joint. However, this is not only to be looked for at the CPLD, but also at the Flash, as well as RAM component. In very rare cases it can also be caused by the FTDI chip or one of the solder joints.
Mostly you will find a short circuit between two contacts. The CPLD is extremely robust. That this is broken, has happened to me with a 3-digit number of pieces just 1 time, or this was delivered defective. Likewise the FTDI chip, of which I had received a defective one. The RAM and Flash devices I had not yet experienced that one of them was defective.
If everything has been checked, and the contacts and possible short circuits with plenty of good flux (please do not take the stuff from eBay or China, you do yourself no good) has been re-soldered, the process can simply be repeated.
Normally the CPLD can be flashed without problems at the second try.
Now you just have to set the jumpers to “DATA” again.
And with that this part is finished. Now only the flash module is left