Finished up last night with the last of the soldering on the leads on the floppy drives and on the terminals on the prototyping shield on the Arduino.
In total there are 6 connectors on each floppy drive that need to be taken care of to get them to work as required. Firstly a 5v and ground connection, These are taken care of through the right and right center pins on the power connector on the drives (Red and Blue cables in the below pics) Next there are the motor enable and drive select pins, These both need to be tied to ground to get the drive to work and the easiest way seem to just jumper them to the ground pins below them (The data connector on a floppy disk has 34 pins, the even-numbered pins perform various functions whilst the odd-numbered pins are all ground. This means that generally the bottom row of pins on the connector are all ground). The last two are the direction and step pins that control the movement of the stepper motor that drives the head back and forward. These were broken out using the orange and white cables .
Fortunately someone has already written an Arduino sketch and Java host program for exactly this type of project https://github.com/SammyIAm/Moppy/tree/moppy-advanced and so all that is required to get a something like this running is to wire up the floppy drives as above and connect the step and direction pins to the corresponding pins on your Arduino. In order to keep things tidy and modular I picked up one of the breadboard shields from Jaycar and attached header pins to connect the data lines to the floppies and to connect the power to the floppies to the 5v input I was taking from my computer PSU via a standard Molex connector.
In order to control 8 floppies (the max if using the software with no editing) you require 16 pins, 4 of which are analog pins that were able to be addressed as digital pins on the Arduino that I was using (an Uno clone). In all the wiring was all pretty simple and took the best part of two nights to get it all tidy and heat shrinked etc.
The only issue that I was worried about was when it came to powering it all up. I had connected the ground on the shield (which is then connected to the ground on the Arduino and all the power regulation stuff on there) to the ground that heads off to power the drives and at the same time heads to the computer Moxlex plug. I didn’t want to connect the 5v line that goes to the floppy drives to the 5v connector on the shield (which also drops down to the Arduino and its on board regulator) in case someone ever connected the USB cable to the Arduino but didn’t connect the 5v connection from the power supply that runs the floppies.When all 8 drives are sitting there spinning the disks (but not moving the heads) they draw together about 2.23A, a number that is way above what the on board regulator (@1A on the official board) and or the USB connection are able to supply. I know that the official Uno has a 500ma Polyfuse on the USB port and whilst I wasn’t really sure whether the clone board had a similar setup I couldn’t really be bothered poking around to find out.
I got a bit of a surprise then when I connected the data lines and the power from the floppy to the shield, the shield to the Arduino and the power (only from the Molex) to the power input on the shield (remember all that the 5v input from the Molex is connected to is the 5v terminals on the floppy disks). All that I was expecting was that the drives would spin up and so when the status and power LEDs on the Arduino also came on (although weakly) it was considered to be “interesting”. It looks like the step and direction input pins on the floppy disk don’t sit low normally and so there was enough leaking back from there to power up the Arduino enough (but not completely). When the USB connector was hooked up then the Arduino powered up properly. I’m thinking that the solution to fix this may be to just put a diode between the 5v line going to the floppies and the 5v rail on the Arduino. Then the Arduino can then be powered from the computer PSU (which it really is anyway) but the floppies cannot be powered from the power coming from the USB port, thus preventing overloads.
All that I need to do now is put a proper power connector on the back and sort a long-term power supply and stick a couple of those rubber feet to the bottom so all the screws don’t scratch up whatever it ends up sitting on .