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
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:
|Arduino||PC IDC||Slimline 26-pin FFC||PIN||PIN|
|PIN||34-Pin||Variant A||Variant B||Name||Code|
|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 GND||Enables DiskChange|
Support for WinUAE
|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|
|A4 ||2 ||8 ||19 ||Optional RFU|
|5V** || ||1,3,5 ||22,24,26 ||5V|
|GND ||odd |
|15,17,23,25 ||2,4,6,8, |
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