David Hansel's ArduinoFDC Converts an Arduino Into a USB Floppy Drive Controller
Requiring no additional hardware beyond an Arduino Uno, Nano, Pro Micro, Mega, or compatible, ArduinoFDC is surprisingly powerful.
Developer David Hansel has published a tool that aims to make it easy to integrate classic floppy drives with a modern computer: ArduinoFDC, turning an Arduino Uno, Nano, Pro Mini, or Mega into a functional USB floppy controller.
"ArduinoFDC consists of three parts," Hansel explains of his Arduino Sketch. "A library providing low-level functions to allow reading and writing disks at the sector level as well as low-level formatting disks. Integration of ChaN's brilliant FatFS library to provide file-level functions for reading and writing files and directories in a FAT (MS-DOS) file system and a high-level format function to initialize a FAT file system."
"An example sketch implementing ArduDOS, a (very) small DOS environment for browsing a FAT file system as well as a low-level disk monitor to access sector data on the disk, including the ability to transfer whole disks or single files via the XModem protocol."
A major feature of ArduinoFDC is its flexibility: The tool works on a wide range of Arduino and Arduino-compatible microcontrollers without additional hardware, beyond jumper wires to bridge the floppy drive's pins to the Arduino's pins, and supports 5.25" and 3.5" disks from 360kB to 1.44MB in capacity across both double- and high-density (DD and HD) formats.
ArduDOS, meanwhile, brings in a range of functions including the ability to view disk contents, type out or dump file contents in text or hexadecimal formats respectively, write to files, delete files, format disks, load a low-level disk monitor, and send and receive files using the XModem protocol in conjunction with a compatible serial terminal.
Hansel isn't the only person interested in retrieving data from floppy disks, either: Last month Dr. Scott M. Baker released a floppy disk controller in the form of a Raspberry Pi Hardware Attached on Top (HAT) add-on β simplifying the wiring compared to Hansel's Arduino-based equivalent, but requiring custom hardware rather than a microcontroller you've likely already got sat in a parts drawer.
ArduinoFDC is available on Hansel's GitHub repository under the reciprocal GNU General Public License 3.0.