Arduino Amiga Floppy Disk Reader

Open Source and Free! - by Robert Smith


Hardware Required

Wiring Diagram

For Arduino Pro Mini style boards:


For Arduino UNO style boards:

Either way it doesnt matter as long as its running at 16Mhz, has three timers and has a USB->Serial converter that can reack 1M baud.

Connections

Arduino PINFloppy Drive PIN
2 & 430 (Read Data - 1k pullup resistor required)
512 & 16 (Drive Select B & Motor Enable B )
618 (Direction)
720 (Step)
826 (Track 0)
932 (Head Select)

Floppy Drive Cable

Assuming you have cut the cable and the piece you are using does not have the twist in it, then locate the wire with the red stripe. This is Pin 1, and they continue in sequence, every other wire being a GND. You usually dont need to connect up the GND wires as they are all connected together anyway.

If you are having trouble with the floppy drive cable then the following diagram might help (the red line is the red marking on the cable. Make sure you aren't using the part of the cable with a twist in it):

Software

Download the source code (or EXE files if required) from here or GitHub. Download and install the Arduino IDE.

If you have never used the Arduino or IDE before, there are several good examples showing you how to set it up and get started and several good YouTube tutorials as follows:

Please take the time to understand basic Arduino usage before continuing. I recommend at least getting the Basic/Blink sketch working first.

Once you have programmed the Arduino you can connect up the floppy disk drive as above, and then try out the software on the PC. The first demo program on GitHub is a command line application which will read a disk and save it into an ADF file.

Notes

Be careful with the IDE cable connected to the drive. Some manufacturers key the connector unside-down and it won't work if you don't spot this!

You MUST use the 1K pullup resistor. The internal pullups on the Arduino are 20K which is far too high for the data to be recovered from the drive correctly.