Adafruit Is Adding Floppy Disk Support to CircuitPython!

Now it is okay to "Copy That Floppy!"

James Lewis
2 years ago β€’ Retro Tech

The interpreted language CircuitPython runs a variety of 32-bit microcontrollers. It already adds support for storage devices like SD cards. Adafruit plans to take a proverbial step back, to move that storage capability farther by adding floppy disk support into CircuitPython!

While we tend to think of data as bits and bytes, that is not how it gets encoded on a magnetic medium, like a floppy disk. Or at least, not directly. A drive controller encodes data into symbols to prevent situations like a byte that is all zeros or all ones. The write head records those symbols onto a spinning disk as magnetic flux transitions.

Lady Ada has been working to understand how floppy drives work to begin the development of CircuitPython drivers. The first step in this process is interfacing with the disk drive, followed by a few low-level tasks like moving the servo head and reading the track indicator. Next is reading those flux transitions and interpreting them.

This capability has been around for a while. For example, the open-source project Greaseweazle is an adapter board that fits onto the STM32 "Blue Pill" form factor. It acts as a USB-to-floppy disk drive adapter. It reads the flux transitions and then relies on PC-based software to decode those into bytes. Currently, the project supports formats for computers such as the Commodore 64, Atari ST, IBM PC, and more.

Projects like those are very application-specific. They intend to archive 5.25 inch and 3.5-inch floppies. Adafruit's work is a little bit different. Adafruit plans to add support directly into CircuitPython, which could mean directly reading and writing data to/from a 3.5-inch floppy drive in a microcontroller program!

One of the outcomes from their work is a "Flooper" PCB that adapter either standard 34-pin IDC or 26-pin FPC floppy drives. [Note: In several places, Adafruit refers to this as a "flippy-floppy" adapter. The use of "flippy" here is not related to "flippy disks," which were the nickname given to 5.25-inch single-sided disks that users flipped to utilize both sides of the media.]

Part 1 of ? Lady Ada's work to add floppy support to Circuit Python (πŸ“·: Adafruit)

Currently, this project is a work in progress. The conversion from Arduino prototype to CircuitPython has not happened yet. However, there is a lot of in-process learning happening. If you would like to understand how 3.5-inch floppy drives work, follow along with Lady Ada's progress on the Adafruit Blog or YouTube channel.

James Lewis
Fan of making things that blink, fly, or beep. Host on element14 Presents, baldengineer.com, AddOhms, and KN6FGY.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles