Arduino Amiga Floppy Disk Reader/Writer

Open Source and Free! - by Robert Smith


<< Back |

Build one in a Slimline Drive!

So you accept the challenge of building the Arduino Reader/Writer and fitting it into one of these nice slimline floppy drives? Its not difficult, but does require a fair amount of work and some soldering skills.

New: Join the Waiting List for purchase of a ready-built, ready to use slimline drive!. This has a custom PCB, not a 'hacked nano' like below.

I am working on providing a ready-built board you can just clip in, but with the global chip shortage I can't even test my design!

You need: A slimline Drive (More Information), an Arduino Nano (or FTDI clone), a 1K resistor, Kapton tape, insulating tape, a soldering iron & solder, sandpaper, and some patience


They're quite neat these slimline floppy drives


You open them up by unscrewing the single screw in the back, and carefully unclipping the sides. Then the top will come off. Inside you will find the drive, and a tiny PCB at the back. We don't want this. You can disconnect it from the drive and remove it, but keep the USB cable as we will want that later.

Now, take your Arduino Nano (must be an FTDI one), and (if soldered) remove the pins down the sides.


A basic Arduino Nano


First we need to make this fit inside the enclosure. To do this we're going to sand down the board. Start by sanding down the sides until just under half the width of the holes are visible as follows:


Sides sanded down


Now we will test to see if the board actually fits


It fits!


Flip the board over. We are going to remove an un-needed part. A voltage regulator. You can either cut this off or de-solder it:


Remove the voltage regulator


The next component that needs removing is a diode. This is used to prevent an external 5V source causing problems with the USB. As we aren't doing that we need to remove it as it causes a voltage drop that will prevent the drive working:


Remove the voltage regulator


Without the diode the board will receive no power, so you need to solder a join here instead:


Solder a bypass in place of the diode


Now, flip the board over, and carefully remove the USB connector. I cut it out and then tidied up the connections. Be careful not to damage the 5 little connections coming out of the back.


Remove the USB port


The USB port has now been removed! It takes up too much room anyway.


We don't need the actual connector


The next task is to sand down the left side of the board (it has 6 holes for the ICSP header). Sand it down until half of the last three pins are visible. Then flip the board over and apply Kapton tape over the FTDI chip as shown leaving Pin 11 visible (This is the CTS pin):


Sanded and taped up


Now apply a little fresh solder to the exposed pin to 'tin' it. Then get a small piece of wire, strip the end and tin it too. Now with a little blob of solder on the iron, put the wire on the pin and press the soldering iron there for a second or two. Release, and let it cool. The other end of the wire should be connected to pin A2.


FTDI CTS Pin to A2 connection


Now, using the same technique on the other side, cover the surrounding connections where the USB socket used to be as follows:


Kapton tape over these too


Then solder the wire on just like the CTS wire on the reverse.


One wire soldered on.


Now move the tape along to the next connection:


Now cover the next connection


And repeat the process with another wire. You may at this point wish to apply some glue (eg: superglue) to hold these two and the CTS wire in place to prevent you accidentally removing it.


Both wires attached. These are the USB Data signals


Now, taking a look at the slimline floppy drive. As we don't have a way to use this connector we need to remove it. If you struggle to de-solder something like this you could cut the connector up into small pieces and de-solder each pin.


This connector needs removing


The connector has been removed!


Connector has been removed


Now, back to the Arduino board. Attach two wires to one of the GND connections, and attach two wires to one end of a 1K resistor, and solder them to the 5V connection:


5V, GND and a 1K resistor


Now attach another wire to the other end of the resistor, and solder these to Pin 4. You can cover some of the resistor leg with a piece of wire covering if needed.


1K resistor in place


Now, connect a wire to Pin 12:


Pin 12 connection


And solder the other end to one of the GND pads where the USB connector used to be connected.


Connect Pin 12 to GND


Now add wires to Pin 2, 3, 5, 6, 7, 8, 9, 10 & 11 as follows:


Add more wires


Turn the board round, and add aires to Pin A0, A1, A3 & A4


Add the remaining wires


Now we're going to connect these to the drive.
Start by connecting one of the 5V and GND wires to the drive.
It's most likely to be Variant A:

ArduinoPC IDCSlimline 26-pin FFCPINPIN
PIN34-PinVariant AVariant BNameCode
0 already connected
1 already connected
2 8 2 25 Index/INDEX
3 22 16 11 Write Data/WDATA
4 30 24 3 Read Data */RDATA
5 16 10 17 Motor Enable B/MOTEB
6 18 12 15 Direction/DIR
7 20 14 13 Step/STEP
8 26 20 7 Track 0/TRK00
9 32 26 1 Head Select/SIDE1
10 34 6 21 Disk Change/DSKCHG
11 12 4 23 Drive Select B/DRVSB
12 Connect to GNDEnables DiskChange
Support for WinUAE
Using ISP?
A0 24 18 9 Write Gate/WGATE
A1 28 22 5 Write Protect/WPT
A2 CTS on FTDI on reverse (see above)
A3 2 9 18 Optional RFU
HD Density
/REDWC
A4 2 8 19 Optional RFU
Ready
/RDY
5V** 1,3,5 22,24,26 5V
GND odd
numbered
pins
15,17,23,25 2,4,6,8,
10,12,14,20
GND

Variant B is probably where someone has either put the connector
on backwards or didn't read the pin order correctly.



Connect the 5V and GND rails (Variant A)


Before going any further, add some insulating tape to the back of the drive as shown:


Insulate the back of the drive


Now connect the remainder of the wires as per the table above:


Add some insulating tape and connect all wires


Now, the USB cable we saved at the start:


The USB cable we started with


Cut the plug off, strip the wires and tin them. Then join them to the 5V, GND and two USB signal wires where the USB socket was:


Connect up the USB


Before going any further, connect the USB to the computer. You should hear it connect and the COM port should appear. If it doesn't, or you get a message saying that the device has malfunctioned then swap the two USB data connections round and try again.

Once it's working and you have a COM port, insulate the connections in what ever means you have available:


I used heat-shrink to cover the joins


Before going any further we should upload/flash the real Arduino firmware onto the drive and then run a full diagnostics from the application. download the software and run diagnostics, correcting any errors you discover. Once everything passes you can place the board inside the case and use a small amount of hot glue to hold it in place:


Arduino fitted, glued and wires placed neatly


Now replace the cover, and we're done.


Looks like a bought one


All done... enjoy