Stop the press. After going down the avenue of replacing the internal floppy drive for a few days (found a couple on eBay but who’s to say these aren’t going to fail in the near future after all these things are over 20 years old) it dawned on me there must be a more up to date solution.
I know some of the later Amiga models the 600 and 1200 featured a 44 pin ATA connector allowing for a 2.5″ internal hard drive to be fitted. And with a suitable connector this hard drive may swapped out for a compact flash (CF) card or I believe even an SD card with the correct hardware upgrade. Unfortunately this is not an option on the old Amiga 500.
The only option appears to be a floppy drive emulator something like Lotharek’s Floppy Drive Emulator. Which allows you to load Amiga Disk Files (ADF) from an SD card or USB mass storage device. Again these are pricey with Lothareks emulator retailing at around 70 euros!!!
So I was toying with the idea of purchasing a second hand drive from eBay when I stumbled upon a floppy emulator a guy (Maurizio Ramondo) had designed for his Amiga 500 using a Raspberry Pi. Like a lot of people I bought a Raspberry Pi when it was first launched. Up until now all its been doing is running Xbox Media Center under my TV.
The Amiga RPI Drive connects GPIO lines from the Raspberry Pi to the Amiga floppy connector via an interface board which takes care of all of the level shifting. The floppy drive I/O being 5V and the Raspberry Pi GPIO being 3.3V. I redrew Maurizios original schematic just for my own benefit. I wanted to have a 26 pin socket so I could connect a ribbon cable from the Raspberry Pi directly to the interface.
The circuit is fairly simple. Each input line is pulled high and then passes through a voltage divider to bring the level down to a more reasonable 3.3V for the Pi. The outputs from the Pi go through a 74LS06 open collector output inverting buffer allowing the signals from the Pi to be pulled up to 5V by the Amiga. The 5V supply voltage is supplied from the floppy drive power connector on the Amiga motherboard. The RDY line is managed directly by the interface and is used to help protect the bus when there are external drives disabling the CHNG line and the DKRD line. The remaining lines are all under software control. The interface only supports two drives since only the SEL0 and SEL1 lines are brought out on the floppy connector. The second line, SEL1 can be disabled via a switch allowing a real external floppy drive to be connected. Maurizio recommends that a Raspberry Pi Model A is used since the Amiga is only able to supply approxitaely 550 mA whereas the Model B he claims draws around 700 mA under certain conditions.
Because of the strict timing required to emulate Modified Frequency Modulation (MFM) used by the Amiga floppy drive Maurizio does not use the Linux kernel. Everything was written from scratch. I wont go into any more detail if you want to know more then I suggest you visit his website. Maurizio even provides an SD card containing the kernel and all the files required to boot the Raspery Pi. The SD card even includes a copy Xcopy III allowing you to rip your own disks as well.
The more observant are probably thinking there seems to be a distinct lack of connections. The remaining interconnections are all made underneath the board so the rats nest of wires is hidden from view.
Using the emulator is fairly straight forward too. On power up the emulators front end is loaded. This allows you to queue any number of ADF files into a specific drive. The user then selects the play button and the first disk in drive 0 is loaded. The interface has two switches “change” and “write”. The change switch swaps to the next the disk in the drive. The “write” switch writes any modified disk contents back to the the ADF file on the SD card.
After removing the internal floppy drive I was originally going to extend the internal floppy drive and power cable out of the side of the Amiga where the floppy disk slot is. Hence the reason for all of the switches being fitted to the strip board. But after removing the drive it seem to make more sense (space permitting) to mount both the interface board and the Raspberry Pi in place of the original floppy drive. To my surprise it all fitted. I did have to remove the shielding over the motherboard so I am hoping I don’t have and EMI issues. I then mounted two more push buttons for the “Change” and “Write” functions and a toggle switch for disabling the second drive and fed the connections back to the interface board.
With the interface board completed, the kernel copied to an SD card and everything fitted into the Amiga case I powered everything up. The Pi appeared to power up fine however now all I get on the display is a green screen. Well its too late now so this is going to have to wait for another day. No one said working with these retro machines was going to be easy.