Commodore 64 diagnostic Cartridge rev 586220


I made a reproduction of the Commodore 586220 test cartridge. This cartridge was actually used by Commodore themselves to test every unit that came from the assembly line. They called it the “Commodore 64 Final Test Diagnostic Cartridge Rev 586220” and to fully test every single port and function of the C64, a special cable harness is required to terminate all the external ports for a loop test. But this cartridge is still useful without the harness, and it is a great addition to my collection.


The PCB itself is a standard 8K Cartridge that uses a 2764 eprom in address $8000-$9FFF which means there are many games you could burn into the rom, and make a cartridge out of your favourite 8k game to avoid the boring loading process.

You can download the official instruction manual here 

This project with PCB and parts can be purchased on ebay:
or from

Commodore 64 9600 baud WiFi Adapter

If you are a Commodore 64 user from back in the 80’s you probably remember the term Bulletin Board System or BBS.

It was basically a computer connected to several phone lines, and other computers could connect to it via a phone number. The computer used a modem to do the calling.

You could use it to talk to your friends, play online games, and to download files. It was all text based, but they usually managed to make the welcome screen and menus appealing with colors and ascii art, maybe something like this?

__________        __                 
\______   \ _____/  |________  ____  
 |       _// __ \   __\_  __ \/  _ \ 
 |    |   \  ___/|  |  |  | \(  <_> )
 |____|_  /\___  >__|  |__|   \____/ 
        \/     \/
Today we dont really have the old telephones anymore, and modems are a thing of the past. But many of the old BBS sites still exist, and if you want to access these old sites via your Commodore 64 it is still possible, but with a bit more modern approach.
Thats where this Commodore 64 WiFi adapter comes into play. It lets you use your WiFi router to “dial” any BBS in the world for free using telnet.
This device turns your C64 user port into a WIFI-modem capable of dialing into BBS sites just like the old days
All you have to do is to connect it to your Commodore 64/128/PET user port and perform a few simple configuration steps to connect to your WiFi and you are up an running in minutes. My guide is based on the free program CCGMS 2017. You can easily download it from your PC, put it on a SD card, and load it into your Commodore via the Pi1541 that I make. The first time you need to setup your WiFi adapter. It needs to be done only once unless you later change your WiFi settings. This is how easy it is:
  • Plug the WiFi adapter into your Commodore User Port with the chip facing up.
  • Load latest version of CCGMS 2017
  • Press F7 to access the settings after the program has loaded.
  • Select modem type as User Port by pressing M several times.
  • Select 300 baud by pressing B several times
  • Press RETURN to go back to the terminal.
  • You can press return once more to get your modem info if you want. Its a nice way to verify your modem is working.
  • Go to Ascii mode by pressing F8 (SHIFT + F7)
  • Now we will connect to the WiFi. Enter your ssid like this: at$ssid=ssid
  • Enter your password like this: at$pass=password
  • After the = you obviously will write your local WiFi ssid and password.
  • Now press F8 to go back.
  • Type atc1 to connect. You may have to do this a few times if it wont connect.
  • Type the command at&p0 and press ENTER
  • Type the command at&k1 and press ENTER
  • Change the baud rate by typing at$sb=9600
  • Press F7 and select modem type as Up9600 Baud and then 9600 Baud
  • Press Return and type at&w to save the settings to the modem
  • Visit your favourite BBS. Try this command:
  • Enjoy!

Warning! Do NOT connect the USB connector when the device is connected to the C64. It will destroy the device. It is only there for firmware upgrades via your PC.


The latest modems being sold now, feature a way to be able to use USB as powersupply to power the modem.
I added a jumper footprint at the edge of the PCB. It is by default set to use the internal power, but if you want, you can
cut the connection between the jumper pins. This will disconnect the modem power from the C64. Now you can use USB to
power the modem. Optional: You can solder in 2 jumper pins and use a jumper to enable/disable external power.

Common issues people ask about:
You can’t write anything.. no text appear on the screen, or text is only garble.
-It is usually because the user did not follow all steps in the setup above.
-Check your settings by pressing F7.
-Make sure you are on ASCII or ANSII mode while setting up the modem. (F8)
-Disconnect any cartridges and other devices connected to see if that helps.
-If your CIA chips are socketed, try to re-seat them. CIA chips can go bad.
-Make sure that your C64 is working properly. Try to clean the userport.
-If possible, try another computer or try a different power supply.

The device wont connect to your router.
-You might have to change your SSID or password if they contain unknown letters or signs.
Try to set it up with something simple, like all lowercase SSID and a simple password like 123456
-Sometimes a key on your keyboard is not working or needs to be pushed hard to register.
You could try to write the password and SSID in your startupscreen several times to make sure that
every keystroke is registering. Also make sure that all the F keys are actually registering the keystroke.

If you encounter problems or the firmware needs to be updated, here is how you do it.

  • Download the files from here
  • Disconnect the wifi adapter from the C64
  • Connect the card to a PC via the USB port on the adapter
  • Unzip the files and start the program ESP8266Flasher32.exe
  • Select the available serial port
  • If the wifi card serial port is not found, install the drivers from the zip file.
  • Go to the config tier in the flasher and select the flash file by clicking on the button that looks like a sprocket.
  • Go to operation and hit the flash button.
  • If your computer cant find the modem serial port, google and look for drivers for ESP8266 adapters.
  • Note that the tool might have problems on a Windows 10 computer. The problem is usually that it cant find the serial port.

This project with PCB and parts can be purchased on ebay:
or from

The Amiga 500 Rev.5 Kickstart upgrade.

A friend came over with his beloved Amiga 500 and wanted me to help him get Kickstart v 3.1 installed. It turned out to be a rev.5 motherboard.

The kickstart is basically a part of the Amigas OS, and the software is stored on ROM chips. The Amiga 500 has only one ROM, but other models might have two. You replace it by taking out the original and replace it with a new one. I just programmed a 27c400 EPROM for this.  (See my other post about my Kickstart adapter and how to use it.) A legal license can be bought at Hyperion. After programming the EPROM, its usually only a matter of swapping chips, but not on the older A500s.
The rev5 and older motherboards has a small signal routing bug in it, that the user usually never get any problems with unless they want to upgrade the Kickstart. If you look at the schematics from Commodore, you will notice they actually put “oops” in there, and thats why we used to call it “the oops bug”

You can rectify this bug by bending up pin 31 on the new ROM and connect a wire from pin 1 and pin 31 on the ROM. It is important that the pin 31 does not touch the socket. Next you have to solder yet another wire to keep the EPROM in 16-bit mode. This time its from pin 21 (VCC) to pin 31. As usual, I hate to hack OTHER peoples hardware like this, so I decided it was time to finally make a PCB for this bug. (my own A500 had to endure me just hacking up a socket for this bugfix. Shame on me.)


This time I wanted to try using RED PCBs. Not bad at all. As you might have noticed there are more on this adapter board than only a socket. The old rev5 PCBs also has had a history of throwing out some random “guru meditation” errors and even some times they even refused to boot after upgrading the ROM. This was also true on mine. But what exactly was going on?

I decided to compare the schematics on a rev6 with the schematics on a rev5. I found that Commodore had added resistor nets on the data lines between the ROM socket and the CPU on the later revisions. So I decided to REALLY destroy the old socket solution on my own machine and added some pullups to the datalines. All the problems suddenly was gone. So I decided to put the “missing” pullups on the socket. After hours of testing  my friends and my own Amigas, both ran very stable.


These are the parts needed. The correct resistor nets was really hard and expensive to source. I made a star on the PCB to match the “dot” printed on the resistor net so I wont forget the orientation.  The dot and star indicates the VCC pin, by the way. I printed SOCKET and Chip to remember where to put the “turned” pins (socket) and where to put the ROM (chip). In hindsight it would probably be better if I used the words Pins and Socket instead…

This project with PCB and parts can be purchased on ebay:
or from

The Final Cartridge III+


The Final Cartridge III Plus is a remake of the original Final Cartridge III, but it has several awesome new upgrades. The best one is that it can also speed up modern SD-Card solutions like SD2IEC and Pi1541. This cartridge is fun to assemble, and many people think that the fact that there is no SMD parts, its way easier to solder.
Visit this link for an extensive user guide:

Part Value

C1    1nF Capacitor
C2    1µF Capacitor
C3    10µF Capacitor
D1    1N4148 DIODE
D2    1N4148 DIODE
D3    1N4148 DIODE
D4    1N4148 DIODE
D5    1N4148 DIODE
D6    LED 3mm
FREEZE 6x6x8mm switch
IC1    74LS273 DIL20
IC2    74LS163 DIL16
IC3    74LS133 DIL16
IC4    74LS04 DIL14
IC5    74LS09 DIL14
JP1    020/512 jumper not included since PCB is hardwired for 020
R1    1K2 Resistor
R2    18k Resistor
R3    4k7 Resistor
R4    4k7 Resistor
R5    4k7 Resistor
RESET 6x6x8mm switch
U$1 27C020 DIL32 EEPROM

I like to start by soldering all the resistors first. Then I do the diodes. The diodes needs to be put the correct orientation. Follow the markings on the PCB. You can also use the pictures here to verify if you want. Next, I do all the IC chips. I double check the orientation and placement before I solder them. Feel free to add sockets to the chips (not included) but beware that doing so makes it impossible to fit the cartridge inside a standard size case. For the LED, the long (Anode) leg is supposed to be towards left, when seen from the component side. You can easily verify where the ground wire is (cathode) by following the top trace on the solder side. It goes all the way on the top. That trace is also connected to the negative side of the capacitors on top in case you need that information. I finalize the assembly by soldering the caps and the 2 switches. Now to plug that bad boy into the C64 for some lightning fast loading and cool features!

This project with PCB and parts can be purchased on ebay:
or from


The Pi1541.



Latest news! My version now also can be used with Raspberry Pi1, Pi2, Pi3 and Zero!

Use the pre made SD card setups down below. It will run on Raspberry Pi 1, Zero, Pi2 and Pi3. If you want to overclock those older Pi models, Use the config.txt to set the values. The sign # is used to make the Pi ignore the text. Remove it to enable the settings.

All my versions now works with the Pi1, Pi2, Pi3 and Zero.

Note: currently the Pi’s HDMI screen is not suppported on the Pi Zero, 1 or 2.
Note: currently the USB keyboard and drives are not suppported on the Pi Zero, 1 or 2.
Note: currently the emulated drive sounds are not suppported on the Pi Zero, 1 or 2.
These will be supported later, and the hardware is already set up for it when it is supported.

Notice how I made a IEC output for cable in the middle there. I did it because the 6PIN DIN cables are hard to find, and expensive too. With this, soldering your own would be easy. I put the IEC connectors on the same side as all the other Pi connectors, freeing up the other side for the screen, and keeping the Display Flex Slot available too. The activity LED is useful if you find yourself wondering if the thing is actually loading, or if the computer froze up, leaving you to wait untill spring before you realize it has stopped loading. I included a small piezo speaker that can make drive sounds. I also made sure it has a jumper so it can be easily disabled. 😉


3D printed case!


So what is this Pi1541? The Pi1541 is a real time, cycle exact 1541 emulator by Steve White. It basically connects to a Raspberry Pi to emulate a Commodore 1541 floppy drive. Why do we need this when there is the SD2IEC? Its because a lot of games and demos utilize the chips inside the 1541 floppy drive, so without them, the program or game will not work. Here, the Pi is emulating those chips, so that the games will work.

No more games that wont load due to incompatibility. There is a potential issue with the 7406 chip, so I always test them one by one by loading the Game Ghosts ‘n Goblins to see if it works. I have never found a chip with issues so far. 

The Pi1541 has all the buttons, LEDs, connectors and stuff that ports the Pi to your old computer. It can be used with your Commodore 64 or 128, VIC20, C16 or even the Plus/4.

All you have to do is to copy the files over to the root of the Pi memory card, and copy your games and program into the same SD-card and insert it into the Raspberry Pi. You should check out the authors website for the latest version of the software. Link is below.

There are several ways to use this, but I decided to use it the same way I used to use the SD2IEC. I just start the File Browser and use the C64 keyboard to select my game. When everything is connected and turned on, I just use it as if it was a normal 1541 floppy. The latest news it that now, it also can emulate the Commodore 1581 floppy drive, and it now also supports USB thumbdrives too!


The file browser will now start, and all you have to do is to use the arrow buttons to select the content of the memory card, and enter to select. Dont you just love the fact that you get to use the same commands as you did way back? Personally, I just ignore all the fancy buttons and features, and just use it from the C64 itself.

There is also a great feature in the options.txt file. If you want, you can let the machine boot straight into File Browser. No typing needed. I just fell in love with that option, and with the Final Cartridge III installed, the load time is boosted to a mean 10X original speed, so browsing games and Demo’s are now so much more fun since the wait is gone. As if that is not all, the Final Cartridge III also has a reset button, so now you wont have to wear out that on/off button. I’ve replaced or refurbished tons of those over the years.

The software is in constant development, but already it support a lot more games than the old SD2IEC did. Sooner or later, it will probably be more or less 100% compatible, and have many new features, which is awesome!

The hardware was made from the authors schematics, but several features was added, such as extra LED for activity, OLED screen and reset button etc.


1. Format an SD card to Fat32.

2. Download the Raspberry Pi Firmware from the Raspberry Pi Foundation. (Or use all the files from my setup)

3. Copy the files bootcode.bin, fixup.dat and start.elf (found in firmware-master\boot)) into the root folder of your SD card.

4. Copy over a file that contains a 1541 ROM image into the root folder of the SD card. The ROM must be called dos1541 or d1541.rom or d1541II or Jiffy.bin.

5. (OPTIONAL) Copy over a file that contains a CBM font ROM (eg vice-3.1\C64\chargen) into the root folder of the SD card. The ROM must be called chargen. This will enable Commodore character set on the OLED.

6. Copy your disk images and folders into the 1541 folder now found on the SD card.

Or, simply download the below pre made setup and extract it to a SD card. You can start with that to be up and running right away!

This is the root contents on my SD card when using a Pi3. Use it as it is, or edit if you want.

This is the root contents on my SD card when using a Pi2. Use it as it is, or edit if you want.

This is the root contents on my SD card when using a Pi Zero. Use it as it is, or edit if you want.

This is the root contents on my SD card when using a Pi 1. Use it as it is, or edit if you want.

I did not include a ROM file here, so copy over a file that contains a 1541 ROM image (eg vice-3.1\DRIVES\dos1541) into the root folder of the SD card. The ROM must be called dos1541 or d1541.rom or d1541II or Jiffy.bin


  • PCB
  • R1                   220 Ohm
  • R2                   220 Ohm
  • R3                     1k Ohm
  • R4                     1k Ohm
  • SN7406N or 74LS06 Hex inverter/buffer
  • ACT LED 3MM Green
  • PWR LED 3MM Red
  • C1 100nF capacitor
  • 4 channel Level Shifter with pin headers
  • 6mm RESET tactile switch
  • SW1 tactile switch 6x6x6
  • SW2 tactile switch 6x6x6
  • SW3 tactile switch 6x6x6
  • SW4 tactile switch 6x6x6
  • SW5 tactile switch 6x6x6
  • 2×20 pin female connector
  • SPKR Enable jumper + pins
  • IEC1 din6
  • IEC2 din6
  • Optional: OLED screen
    (0.96″ IIC Serial OLED Display Module 128X64 I2C SSD1306)


The assembly is very straight forward. Just follow the markings on the PCB and look at the images of the already soldered Pi1541 boards here. I like to start with the shortest parts first. The R1 and R2 resistors are for the red and green LEDS. If you think that the red LED is too bright, you can replace R2 with a different value resistor. Anything between 220 Ohm and 680 Ohm looks good. Dont forget to solder the R3 and R4 pullups too. Resistors are not polarized, so put them in any direction you want.

The 7406 hex inverter is easy. The orientation is marked on the PCB. Look for the small notch on the chip and align it with the one drawn on the PCB. You can add a socket for this chip if you want, but it’s not included in the KIT.

Next part is the 2×20 pin female connector. Make sure you solder it on the correct side. Look at the pictures to make sure.

Next in line is the 2 LEDs. Green is for activity, and red is for power. You can swap them if you want. Maybe you got a fancy color LED you want to substitute? There is a trick I use to find the orientation of LEDS, just look at the pin holes. One of them is connected to the ground plane, and that is the cathode, (shorter pin) You can see how the ground plane pin has connections to all sides in a cross pattern. Look at both and you will soon see which is the correct one. If you are still unsure, you can also use a multimeter to verify which one is ground. The LED itself also has a tell. If you look inside, you will see a small pin, and a bigger “chunk” of metal. The big one is cathode (GND)

Next in line is all the tactile switches, including the one marked reset. Just pop them carefully in and remember to solder all 4 legs. Note that the reset button only works on C64 revisions that support reset via the serial port. It will do no damage to unsupported machines, it will simply not work.

The C1 100nF capacitor are not polarized, so just pop it in. Same with the 2 pin jumper. The jumper is there to enable the buzzer.

Next put in the buzzer. It has a + sign on the component and on the PCB, so align those. The buzzer is there to simulate the stepper motor drive sounds.

The large DIN connectors are next. Notice that the legs have a flat side. It can be smart to put the soldering iron on the flat side to transfer enough heat for a good solder joint. Make sure to solder all pins. Sometimes the buzzer gets too close to the DIN connector. If that happens, snip off some of the plastic on the DIN connector with a side cutter or knife. You can even solder the buzzer on the underside of the PCB to avoid it getting in the way of the DIN connector.

Now for the level shifter. Turn the pcb over, because this is going on the under side of the PCB. The easiest way to mount it, is to first put the 2 pin headers in the 6 holes short end of the pins facing down, and then the level shifter pcb on top, while making sure that the letters and numbers on the level shifter match the text on the PCB. Make sure that the level shifter is as close to the PCB as possible, so it wont come in contact with anything on the Raspberry Pi later. Confirm that the pins are long enough on both sides of the PCB. If they are short on one side, you must turn the pin headers over. Start by soldering the pins on top of the level shifter, and then afterwards you flip the PCB over and solder the ones on the top side. Keep the soldering iron on the outside of the level shifter so that you wont accidentally disturb or heat the SMD parts in the middle.

If you plan to buy a OLED, make sure it has the correct pinout. Look at the images for pinout.

What to do if it wont work? The usual suspects when this device does not work, is the PSU, the SD card and the contents of your memorycard. Many people try to use a phone charger or a cheap chinese power supply. Im not saying all of these are crap, but these are known to have issues with the Pi, so getting a genuine Pi power supply will save you from a lot of hassle. Second, the Pi are known for not accepting all SD cards. Even some good quality ones. So try several cards just to be sure. The contents of your card is also essential. Please try my sample file if you get into trouble. For legal reasons the ROMS are not included in the setup. This device fully support the cheaper Raspberry Pi 3A, but make sure you use the latest files from Pi foundation.

Note that these instructions are only for the Bruktmoped designs.

This project with PCB and parts can be purchased on ebay:
or from




I decided to make a fresh batch of my old Retro4fun PCBs. This time in RED color. Its basically just an adaptor that plugs into the Parallel Printer port of any Amiga and gives you 2 extra joystick ports, for a total of 4 joystick ports.


Some of the Amiga games compatible with 4 player:

Air Taxi
Ballistic Diplomacy
Base Jumpers
Blast Squad
Blitz Bombers
Blitz Tennis
Blob 1.1
BOMB 1.21
Bruce Lee
Bug Bomber
Burn Out
Carnage (Zeppelin Games)
Blooded Murder
Crossfire II
Dogfight Simulator 1.5
Dynamite Warriors 2.0
Flyin’ High
Gauntlet 2
Great Courts 2
Hired Guns
Hot Rod
International Soccer (MicroDeal)
James Bond
Kick Off 2
KnockOut 2
Laser Bikes
Manchester United Europe
Master Blaster
Max Rally
Monsters of Terror
Moochies, The
Over The Net
Rally Cross Challenge
Smash T.V.
Space Power
Space Taxi 3
Speed (Demo)
Street Racer
Super Gem’z
Super Skidmarks
Super Tennis Champs
Tank Attack
Tank Wars
The Race
Tie Break
Tip Off
Turbo Hockey 2
TV Sports Basketball
Ultimate Super Skidmarks
Wheelchair Gladiators
Worm Wars
Wormsigns (Preview)
Xtreme Racing

This Adapter is compatible with the PPjoy freeware program. PPjoy let you use compatible adapters on a regular PC so you can get joystick ports to use with your favourite Amiga, C64 and other emulators like Sega etc. It let you set up your printer port as joystick ports.

The list is taken from a list posted on Aminet.

This project with PCB and parts can be purchased on ebay:
or from

Minipro TL866 27c400/800/160 Adapter

I really love my MiniPRO TL866 programmer. It has so many supported chips. I save a lot of money not having to buy several programmers for my hobby.


But unfortunately it does not support 27c400/800/160 eeproms. When restoring Arcade games, I some times come across those ROMS. A common fault for old ROMS is that the programming some times become corrupt. Then you need to re-program them using a programmer like this. But since my programmer wont support these chips, I decided to manufacture a solution of my own.


The main reason some of the chips wont ever be supported by the TL866, is that the programmer has only a 40 pin programming socket. So the adapter needs to work around this. In this design, this is done by selecting the AMD 27C4096 in the programmers software, deselect “Check ID” and program the chip in several runs of 512kB , so you have to split the file into sections of 512kB to match the size of a 27C4096. The jumpers A18 and A19 on the top is used to select each bank to program. It works like this:

  • To program the 27c400, no jumpers required, since it is already 512kB. So no need to split the file.
  • To program the 27c800 which is 1024k, start with both jumpers at zero (lower 2 pins) for the first 512kB, then set J18 (top 2 pins) for the second round of 512kB .

To program the 27c160 which is 2048k. This file has to be split into 4 sections of 512kB. The first part with both jumpers set to zero, the second with J18 set, the third with only J19 set, and the last with both J18 and J19 set.

  • DSCF9360.JPG

Picture shows me getting ready to program Kickstart 3.1 for my Amiga 500. If you are going to program 27c400 kickstart chips for the Amiga, leave both jumpers at zero.

How to program a 27c400 120ns eprom with the TL866 to make a Kickstart chip:

Im gonna use Diagrom as an example.

  • In MiniPRO software, select AM27C4096 DIP-40 under device.
  • Uncheck “check ID” in the lower part of the screen.
  • Verify that the EPROM is blank. Select Device – Blank Check.
  • No jumpers should be set at J18 and J19
  • If you havent already done so, download newest version here:
  • Select File and Open and browse to the location where you downloaded Diagrom
  • File is already byteswapped, so select Device and program. Wait til its finished.
  • If you run into problems, try adjusting the VPP Voltage between 12.5 and 13.5.
  • Some models need 2 ROMS (32bit) on those models you need to program each chip with their correct file, like 32bitHI.bin and 32bitLO.bin.

You should supplement your programmer with a UV eraser. The cheap ebay ones work for me.

This project with PCB and parts can be purchased on ebay:
or from

Diagrom is a great tool for diagnosing you Amiga computer.

You can buy legal Kickstart files at

You can download Diagrom for free at

DIY Amiga 500 memorycard

Its always fun to make your own things. This time I decided to make some memorycards for me and a couple of friends. I now have 2 A500 without trapdoor memorycards, because they had battery damage. So instead of buying another old more or less battery acid damaged unstable card, why not make brand new PCBs and solder them for yourself?


For a regular 512k trapdoor memorycard, all you need is:

  • 1x 100nF decoupling capasitor
  • 1x SOJ42 ram chip.
  • 1x 2.54mm 80 pin connector.
  • 1x PCB

This particular PCB has been designed to be quite versatile. Besides of being used as a replacement for a simple 512k trapdoor memorycard, for A500 and A500 +, it also can be extended by simply adding one extra capacitor and one extra SOJ42 ram chip, to become a memorycard also for the Amiga 500+, giving the 500+ a total of 2MB chip ram. A few jumpers needs to be connected to hook up the RAS + CAS signals to the other memory bank and to the motherboard connector for this, since the PCB is set as default for being a 512k ram card.

But it does not stop there. The card also can be fitted with a few more parts to also have a working RTC, or real time clock with a modern battery.

On newer revision A500 you can also add a Gary Adapter for upgrading a regular A500 to a total of 2 MB RAM! This however, require some hacking on the Amiga mainboard. When ordering the PCBs I ordered the Gary adapters, but I dont think I will ever use any of them, but they had to be made, right?


The Amiga 500 + Has its own RTC. (real Time Clock) on the mainboard. This is to remember time and date. However, the regular A500 usually had this embedded on the memory expansion board. All the pads for this is embedded in the PCB, but it is totally optional to add the components. This is what you would need to add this feature.

  • Parts list for RTC:
  • U5 or U6: RTC62421/RTC72421/RTC62423/RTC72423
  • R7: 47K-100K 0805 resistor
  • C12: 100nF 0805 capacitor
  • C13 or C19: >=2.2μF >=10V 0805 or 1206 tantalum
  • R1, R2, R3: 10K 0805 resistor
  • R4, R5: 220-470 0805 resistor
  • D1: BAT721C or BAT54C diode
  • Battery Holder

The memorycard with RTC:


I put a sticker on it after it was tested to remind myself that it’s tested and working.

This is what I do when I build one of these:

I start with soldering the ram chip to U1 using solder paste and a heat gun. I use my multimeter afterwards to verify that all the pins are connected and not shorted. Then I solder the 100nF decoupling capasitor to C1 using solder paste and heat gun. If I want to add the RTC feature, I do those parts before the connector, since there are plastic parts on it. The connector needs to be cut. It is important to use something sharp. I use my sharpest sidecutter for this. I cut on top of the first pin not in use. This is because the connector tend to break into small parts at the cutting point when cutting this way. If I cut between the last pin and the next, It tends to damage the plastic holding the last pins. Cutting on top the next pins avoids this. I will be discarding the rest of the connector anyways. Im sure using a professional saw or Dremel would cut this much nicer, but I dont have one of those handy.

BOM and instructions:

For 512K:
For 512K:* 1 x 1Mx16bit SOJ42 DRAM
* 1 x 56pin (2×28) 2.54mm double row right-angle header (or 2x40pin and cut it)

For A500+ 1MB:
* one more DRAM

For Gary Adapter:
* more DRAMs (any number you want)
* 1 x 74F139 or 74HCT139 (surface mount)
* 3 x 74F00 (surface mount)
* 1 x 74F74 (surface mount)
* 3 x 3-pin jumper headers
* 3 x jumpers
* 2 x 24-pin DIP sockets
* 2 x round pin strips
* Wires and some 2 and 3-pin 2.54mm connectors of your choice

Jumper changes from default 512k:
1MB Chip (A500+):
XRAM: Open
RASU2 to RAS0 closed


512k Chip + 1.0/1.5 Slow with GARY adapter:
XCAS: all open.

This project with PCB and parts can be purchased on ebay:
or from


Amiga External Floppy controller

This project was initially made for the purpose of using an internal Amiga floppy as a secondary drive for copying disks. But later, I added jumpers so that PC floppies can be used too, since these are easy to find. I later also found it useful to have a jumper selector for selecting DF1:, DF2: and DF3:


It turns out that the DB-23 connector that goes in one end of this adapter has gone out of production several years ago. There are still connectors available, but at a price that is not realistic and it smells like speculation. After experimenting a bit, I found that using a regular DB-25 connector work just as good. These are still in production, and to my surprise they work great. Better than great. All you have to do is to snip off the extra pins with a sidecutter.

I was afraid they would be awkward to fit, and easy to put in wrong, but instead they slip right on without any issue everytime. At this point Im convinced its a real waste of money to buy DB-23s when the DB-25 work so great. I have actually made a couple of these to people insisting to have the correct connector, but I had to up the price considerably to recoup the extra cost.


The PCB was made in a way that you can eighter solder in a floppy connector, or just use pin headers like in the first picture. The Floppy connector would ensure that it is not possible to put the cable the wrong way around. Look at the image for default setting when used with a Amiga floppy drive or a Gotek with hacked firmware.

Jumper settings:


Old version.

This is the latest version PCB I made. I added a Ready jumper so that PC floppies without ready (rdy) jumper can be used too.

DS0/DS1 jumper.
The jumper to the left in the picture is drive select. I made this because many PC floppies has no jumper for drive select. (DS0 or DS1) on a PC, floppies was usually hardwire as DS1, and then they used a twist in the end of the IDC cable to swap the pins back to DS0 for the computer to read it as A: if you connected a second floppy drive to the IDC cable, there was no twist on the connector and the computer would read it with the hardwired setting DS1, and assign it as B: You can safely try both.

Amiga/PC jumper
The Amiga/PC jumper is to tell the adapter if you connected a PC compatible floppy, or a Amiga floppy. Its what forces a PC floppy to be compatible with your Amiga. Default would be Amiga. Set to PC for PC floppy.

Ready jumper (New on later revisions)
The Ready jumper is to tell the adapter if you connected a PC compatible floppy, or a Amiga floppy. Its what forces a PC floppy to be compatible with your Amiga by forcing the ready setting to match the Amiga requirement. Default would be Amiga. Set to PC for PC floppy.

DF1 to DF3 jumper
The last one, is the jumper set that has 6 pins. It selects between DF1:, DF2: and DF3:. Default would be DF1. I made this because sometimes you have already 2 floppies connected. My Amiga 2000 had 2 floppies inside, so to use this external adapter on that machine, I had to be able to wire this as DF2: to avoid problems. DF3: is when you have 3 connected drives and this is number 4.

Fortunately, this adapter works great with the Gotek, which is one of the most popular addon in Amigas these days, due to its availability, and that it is so easy to use.

The old floppydisks are getting harder to find, and the drives are getting old and worn out. My personal preference is to have both. I still like to have original disks, but having the .adf files on a SD-card is so convenient and tidy.


C1 100nF Decoupling Capacitor
C2 100nF Decoupling Capacitor
DB-25 Connector to be modified to DB-23
IDC FDD Connector
4X Jumpers
R1 2.2k resistor
R2 2.2k resistor
R3 2.2k resistor
U1 74LS74N DIL14
U2 74LS38N DIL14
Power Cable with connector to Floppy drive


This project with PCB and parts can be purchased on ebay:
or from

PS/2 to Amiga/Atari adapter

I really wanted a PS/2 to Amiga adapter, so I ended up making this PCB in Eagle CAD based on information freely available on the Internet. I ended up making one that can use both USB and PS/2 connector, and the option to change between Amiga and Atari ST mode with jumpers. It also works on Commodore 64 in certain applications.


This thing work on a lot of USB mouses, but not all. It requires the mouse have the PS/2 protocol to work. A lot of mouses with PS/2 plug also included a PS/2 to USB adapter. Thats a good indicator to see if it works.


This is plug and play. No need to install drivers.



It does fit the Atari too. I had to make it super slim, because of the way they designed the case.

This is how I assemble these.


From the left, you can see I start with the Microchip. Then I move on to solder the DB-9 connector. Third, I do the capacitor, then the jumper pins. Lastly, I decide wether to install a USB or PS/2 socket. I do it like this because it is easier to install the smallest components first, moving over to the bigger last.

The modes:


This image shows the two different modes. To the Left its set to Amiga mode, and to the right its set to Atari mode.

This project with PCB and parts can be purchased on ebay:
or from

CDTV Joyport Adapter

After finally getting hold of a Commodore CDTV, first thing I noticed was that it did not have the usual DB-9 connectors that the other Commodore models have. The machine did have a mouse port, but it turns out it is not a standard one, and I did not get one with the machine, so I had to find another solution for using mouse and joystick, because the remote controller was a weak subtitute for a real joystick and mouse in my opinion. I also wanted to use a modern optical mouse together with my already made PS/2 to Amiga adapter.

Looking at the CDTV service manual, at page 17 there is a chip marked 252609-02 at location U75. Turns out it has all the pins for both the joystick port and mouse port. My first plan was to solder wires directly from the chip and onto 9-pin connectors with solder cups. But then I decided to draw a PCB in Eagle CAD instead.


I opened my CDTV and it turns out there are a few components blocking a big PCB, plus that the distance between the mainboard and the lid is quite narrow. So I had to make the size and placement of the connector as shown above. The idea was to use the same principle they use when they make adapters for EEPROM programmers. There is a socket for the original chip, and then there is legs on the underside to insert into the socket on the motherboard. Now we can just route some traces from the pins on the chip that has the needed signals for left, right, up, down, fire and ground without soldering on the chip itself.

I found out that on Ebay they still had IDC DB9 connectors that was perfect for his project. Turns out 20 pins IDC sockets were much cheaper than 18 pin, so I decided to design the board for a 20 pin connector, but to only connect 18 pins (2pcs 9pin connectors) So the board consist of these parts:

1PCB, 1pcs 20pin IDC, 2pcs IDC d-sub 9 pin male, Turned pin header for inserting into the U75 socket, 1pc 40pin DIP socket for the 252609-02 chip, Double 2.54mm header for the 20pin IDC, 45-50cm IDC cable.

It turned out that the distance between the lid and the PCB was so narrow, that I had to use angled pin headers for the 20pin IDC connector. Below, in the picture to the right, you can see that the connector take a lot of room, so I had to desolder the pin header and replace it with one with angled pins as shown on the left picture.


Because the CDTV remote uses the pins from Joystick port 1, there might be a problem using both at the same time with a mouse or joystick. The solution is to try and press RIGHT on the CDTV remote once the CDTV is switched on with your program or game loaded. If this wont work, you can disable the CDTV remote like this: remove U75, bend up pins 6, 7, 8, and 9, and replace it back in the adaptor’s socket. I might make a jumper or DIP switch solution on my next revision of the PCB, so that those pins can be disabled without disturbing the chip. They will fit perfectly on the side of the 20 pin IDC connector. If you look closely on the picture, you will se that the pins are bent to the side. I dont recommend anyone to bend them several times. A different approach to solve this would be to cut the traces on the adapter instead, to avoid bending the pins. The traces to cut would be the ones leading from the socket on top of the adapter that lead out from the 4 pins I bent in the picture.


This project with PCB and parts can be purchased on ebay:
or from

Home made Amiga Boot Selector

Have you ever wanted to use a Gotek on your Amiga without having to make changes to the Amiga itself? I think too many Amigas are being “mutilated” to fit a Gotek these days. Instead you could use the internals of an external floppy, and change out the floppy with the Gotek. problem is, many games require to boot from DF0: This is where this selector is being handy. Models with SMD CIA, like A600 and A1200 can not use this device. Since they have internal HDD interface, they can just use WHDload games instead.

Background: The CIA chip (Complex Interface Adapter) inside the Amiga is used for communication like the Serial Port and the Parallel Port. But thats not all it does.

The Amiga Computer uses the CIA chip to determine the floppy drive ID (DF0: or DF1:) This is done by pulling select lines low. There are several select lines, D0, D1, D2, D3. If you for instance swap pin 13 and pin 14 on the chip marked Even CIA (U8) on the Amiga 500, you will make DF1: to be DF0: and vice versa. Normally, the internal drive is DF0: and any external drives is DF1:, DF2: and so on. But what if we want the external drive to be DF0:? That can be done by simply swapping pin 13 and pin 14 on the CIA chip. This is where this switcher comes in. I browsed the net for ready made solutions, but the ones  I found, was mostly 2 sockets soldered together and a switch and usually sold out,  so I decided to make my own switcher, but with a PCB. The design I chose uses a flip flop logic chip instead of just a normal switch to swap the pins. I would hate to damage my CIA with just a manual switch. With this selector, the CIA is a lot safer.

DSCF9072.JPGDSCF9067I decided to make one with normal dual wipe socket and normal pins, (right) and one with “turned pins” (round pins) The idea is to remove the CIA from its socket, and put this there instead of the chip, and then put the CIA in this socket.  You can use this by simply leaving a jumper in or out. One can easily use a switch where the jumper resides to change the setting without opening the computer. Personally, I wont be changing the switch often, so Ill go with a jumper, since I dont want to make a hole for the switch. These days I mostly start my games from a Gotek, so I dont need the internal drive for other than copying disks. Since many games require boot from DF0:, its good to be able to boot from an external Gotek and make it DF0: Now I can leave my Amiga intact instead of hacking it up to install a Gotek internally. With this, the internal disk is now DF1: and the Gotek is DF0:

You can use this image to identify where to put the parts. The cap is hidden under the socket in the left, and the 330 resistor (marked 331) goes to the left, and the 10k resistor (marked 103) goes to the right in this image.


I sent my gerber files to a PCB factory, original design by Jussi Kilpelainen.

This project with PCB and parts can be purchased on ebay:
or from

C64 PSU 5v mod.

There are many ways to prevent the original PSU on the Commodore 64 from destroying your beloved computer. Its a well documented fact that the design of the PSU is somewhat flawed. The most dreaded issue is when the regulator used to regulate the 5vdc fails in a way that will harm your circuits. Here is one of the cheapest way I know to fix the 5v issue on a PSU of this type. You can eighter use the well known and reliable but power consuming LM7805, or you can use a less power hungry modern switch mode solution like the UBEC. I found that this particular model works fine on the C64 psu. This is what I use for this project. On the left there is a LM7805 kit which works great, but this time I will be using the UBEC. The tool on the left I use to carefully pry open the bottom lid.DSCF9057.JPG

This is how it looks on the inside of the PSU. The red square shows where the problematic regulator is. I usually just snip the legs of it and desolder the legs from the PCB. Make sure to unplug the unit from the mains! 🙂


Normally one would also swap out the capacitor, but this one seems to be in good shape, so I will leave it alone. I can always go back and exchange it later. This cap shows normal ESR and are within 5% of the rated capacitance, so I see no point in putting in a new one. I used the very reliable Peak Atlas ESR 70+ to measure the cap.


The deed is done. I used the legs of the capacitor for the input, and I used the traces that leads to the original 5v output wires for the UBEC output. I also used some hot glue to seat the wires, even if its not necessary. Below you can see the legs from the original Sanken SI-3052 regulator. (the original schematics from Commodore falsely claim its a transistor.)

My Commodore 64 PSU project.


Ive been asked to explain how I made my first C64 “saver” back in the 1990’s I sold the thing many years ago, so I have no pictures of the original thing, so I’m going to explain how to make one today, with the tools and equipment that are available now.

I did not want a solution that is more expensive than a full computer setup with games and accessories. After all, its just a PSU. Second, I want to avoid any legal or insurance problems by making a homemade PSU that connects directly to the mains. The rules here are strict, its not enough to use components that are certified, the assembly itself must also be certified. That would cost more than a house. So how do we work around this? Simple. We use already made and certified off the shelf solutions! Background: A well known and well documented fact about the C64 PSU is that it has a tendency to fail in a bad way. Sometimes the 5v output regulator fails intermittently and delivers a too high voltage to the C64. The RAM and TTL circuitry usually wont tolerate more than 5.5v before it craps out. Especially the RAM is vulnerable to small fluctuations to the 5v rail.  Part of the problem is that the powersupply seem to work great for a while and when cold, but after a while it suddenly fails. My solution is designed to attack this specific 5v problem without destroying the original PSU. I also made a solution for machines with no PSU at all. Now, what is so special with this C64 psu anyway? Well, its not THAT special. It uses a standard 7pin DIN plug, where only 4 pins are used. Next it has 2 different outputs. One is 5VDC, and one is 9VAC. Not at all complicated. These are the components I use to make my C64 PSU solutions.


This is all you need for a full replacement of the original PSU. You can easily make small adjustments to change the setup. If you plan to use the 9vac for the original PSU, you can swap out the red plug with a 7 pin DIN female connector to “steal” the 9vac from the original PSU. A 9vac PSU are not the easiest to get hold of these days, so using the original PSU for this is a great solution. Its perfectly safe too, because the 9vac from the original PSU are pure unregulated power straight from the transformer. It eighter dont work or it works as it should. Other things you can save money on is to not use the LCD voltmeter display, its only there to keep an eye on the 5v and is not needed. You can also skip the PCB shown at the lower left side. The reason why I put that in, is to be able to use any power supply I might have handy, and no matter what I connect, his puppy regulates it down to a clean 5vdc. I can now use anything from 9vdc to 30vdc as long as the plus (+) is in the center pin. Like a good quality psu from a laptop, which is usually anything from 12vdc to 20vdc, well inside the capabilities of the converter. The PCB also has over voltage and polarity protection. If you skip the pcb, then I would recommend putting a fuse and a diode on the dc input.

The red connector I use to connect the external 9vac from a wall adaptor. The small black is for the dc input. If you dont use the pcb, you must use a 5vdc adaptor in that plug. I found a D-link psu for an old router. Its perfect for this project. Maybe you can find one at home or at a fleemarket. The original psu are rated 1A for the 9vac, and 1.5A for the 5vdc. For the 5vdc, I would recommend 2A (2000mA) or more.

Make sure you dont use too long cable from the box and into the C64, because you can easily get a voltage drop big enough to make the machine behave weird. You can compensate by using thicker cables if you need longer cable, or by measuring the voltage inside the machine, and compensate for the loss by lightly increasing the voltage on the pcb. (if you use one)

Its worth to mention that using the 9vac from the original psu is better, because then there is no chance of you connecting 9vac to the 5vdc plug or vive-versa. The reason why I went with red plug for the 9vac is to avoid plugging it in the wrong hole. You can of course use different connectors for the ac and dc inputs to avoid problems. Using a Micro USB for the 5vdc would be perfect, since those always provide 5v.

Your end result might look something like this.



This version have a 7pin DIN input at the top of the picture to “steal” the perfectly safe 9vac from the original Commodore PSU. I usually make a version depending on which machine it’s supposed to be used on. I have even used the plug and wire from a dead Amiga PSU to make a PSU for the C128. They are extremely hard to get hold of, so never throw away a dead PSU from any Commodore product. Someone definitely have use for it! 😀

The Atari SF314 Floppy

Today I decided to look at the external floppy drive that I got from a bundle of so called working retro stuff.

The floppy had this problem, it would just keep spinning whenever I put a floppy disk inside it. So I decided to have a go at it, so I opened it up, gave it a full cleanup and decided to just change the capacitors on it, since this is usually the fix on retro floppy drives like these. It turned out that this drive did not have any SMD electrolytics. Instead it had 3pcs 22uF @ 16v, and 1pcs 1uF @ 50v shown below


I decided to pop them out, Insert new ones, and presto! The disk drive worked again. I made sure to clean the stepper motor mechanism while in there and added a small amount of oil on all moving parts.

Usually these kind of caps dont need to be changed, but in this case one of them did. Because I often repair old stuff, I decided to buy a quality instrument to diagnose caps. My choice was the PEAK atlas ESR+ model ESR70 and it is just a dream to work with, but its kinda expensive for the hobbyist like me. But the Atlas did its job and found the culprit. Since one of the caps had way too high ESR, I figured I found the one causing problems.

Of course, when you buy used stuff that dont work, it has often previously been opened by someone. This was also true when it comes to this device. It was aparent by the 3 lacking screws in the bottom, but fortunately, I have a nice stock of replacement screws, so now it is both clean inside and out, and it has all the screws again. …and new caps. I tried it on my Atari 520 ST. It works great, and is also surprisingly quiet. Now to play some Atari games!