Arduino Amiga Floppy Disk Reader/Writer

Open Source and Free! - by Robert Smith


Hardware Required

Wiring Diagram

Please note some of the pins have changed from the first version of this project.

For Arduino Pro Mini style boards:


For Arduino UNO style boards (currently read-only, unless you use the above FTDI/RS232/CH340 breakout boar for the serial interface):

Either way it doesnt matter as long as its running at 16Mhz, has three timers and has a USB->Serial converter that can reach 2M baud and for writing allows access to the RS232 CTS line.

Connections

Arduino PINFloppy Drive PINPIN NamePIN Code
28Index/INDEX
322Write Data/WDATA
430Read Data (1k pullup resistor required)/RDATA
512 & 16Drive Select B & Motor Enable B/DRVSB & /MOTEB
618Direction/DIR
720Step/STEP
826Track 0/TRK00
932Head Select/SIDE1
A024Floppy Write Enable (Write Gate)/WGATE
A128Write Protect/WPT
A2CTSCTS on RS232 Breakout BoardCTS

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 upside-down and it won't work if you don't spot this!

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