The Adafruit Floppy Featherwing is intended for use with the Feather RP2040 or Feather M4. Note that most of the views below show the bottom side of the FeatherWing. A bunch of pins are required, but note that  the standard I2C and SPI pins are left free so you'll be able to incorporate displays or sensors into your project if needed!

To keep easy access to the RP2040's BOOT button consider putting this FeatherWing side by side with the Feather RP2040 on a Feather Doubler, Tripler, or Quadrupler.

Connecting ribbon cable to floppy drive

The Adafruit 34-pin rainbow ribbon connector is polarized, so insert it noting the location of the "key" and aligning it with the notch on the Floppy FeatherWing. The brown wire is pin 1, and the other pins can be "counted off" according to the standard resistor code: red is 2, orange is 3, and so on; black is 10, and then the next brown is 11. This makes last wire yellow, because there are 34 wires in all.

Then, do the same at the drive. However, note that some drives lack a keying notch; and others have a notch but it does not match modern convention! (the author's own Sony MFP520-1 with 9411 date code is such a drive) In the case that the drive's polarization notch is missing or incorrectly positioned, you may have to carefully use a tool to shave off the polarizing tab from the cable, or find an alternate non-polarized cable.

Therefore, it's important to check whether the cable is installed correctly before applying any power. Use a multimeter in continuity mode to check that GND on the floppy drive is connected to GND on the FeatherWing.

Author's drive with non-standard connector polarization

Only once everything else is connected should you provide power to the floppy drive on its dedicated +5/+12V power connector. Remember that floppies were not designed for hot-plugging of their power or data connections.

Inputs (to microcontroller)

All inputs include pull-up resistors & a level shifter to 3.3V.

CH: Media change. When HIGH, the drive indicates a media change operation is in progress. When LOW a media change operation is not in progress. This is connected to D5 on the common Feather pinout, and pin 34 of the IDC connector. This pin is also known as "media ready". Based on some floppy drives your author tested, this signal is not particularly useful but is included for the sake of completeness.

RD: Read Data. Alternates between HIGH and LOW according to the flux stored on the floppy disk. The specific interpretation of the pulses depends on the floppy disk format. This is connected to D9 on the common Feather pinout.

Trk: Track 0 (home) sense. Pulled LOW when the disk head is moved to the "track zero", or home position. HIGH when not at the home position. This is connected to D10 on the common Feather pinout, and pin 26 on the IDC connector.

Pr: Write Protect Sense. Pulled LOW when the disk is write protected (e.g., by the sliding tab on a 3.5" floppy disk). HIGH when the disk is not write protected. This is connected to D11 on the common Feather pinout, and pin 28 on the IDC connector.

Idx: Gives a LOW pulse once per revolution of the floppy (or, for the unusual "hard sectored" floppy, once for each sector mark). Connected to A5 (aka D25) on the common Feather pinout, and pin 8 on the IDC connector.

Outputs (to floppy drive)

All outputs include a pull-up resistor and 5V level shifter. They may be driven as open collector pins or as push-pull pins.

Sel: Select signal. When LOW, "selects" (activates) the floppy disk. Connected to A0 on the common Feather pinout and pin 12 ("Select1") on the IDC connector.

En: Enable signal. When LOW enables the selected floppy drive spindle motor. Connected to pin A2 on the common Feather pinout and pin 16 on the IDC connector.

Pulling these two pins LOW together selects a drive connected with a straight-through cable, or to the un-twisted portion of a multi-drive connector.

There is no connection for the Select0/2/3 pins of the IDC connector. Consequently, it's only possible to select a drive on the un-twisted part of the cable. So if you have an old floppy drive cable, make sure you plug the floppy drive into the correct position.

Dir: Direction. Selects whether a step pulse moves inward to a smaller track number (LOW) or outward to a higher track number (HIGH). Connected to pin A3 on the standard Feather pinout and pin 20 on the IDC connector.

Stp: Step. Each LOW going pulse moves one step. Depending on the drive & format, more than one step may be required in order to move by one full track.

Sid: Side select. HIGH to select "Side 0" of the floppy, LOW to select "Side 1". Connected to D6 on the common Feather pinout and pin 32 of the IDC connector.

Den: Density selection. Some drives use this pin to select whether to write at "high density" (pin pulled LOW) or "double density" (pin pulled HIGH). Connected to A1 on the common Feather pinout and pin 2 of the IDC connector.

Write Enable: Depending on its position, this switch either isolates (NoWr) or connects (WrOK) the WG signal from the microcontroller to the floppy drive.

WG: Write Gate. When pulled LOW, puts the drive in writing mode. If the Write Enable switch is in the position labeled NoWr then this is physically disconnected from the microcontroller and it is not possible to write to a floppy (or, with buggy code, to accidentally erase a floppy!) Connected to D12 on the common Feather pinout and pin 24 on the IDC connector.

WD: Write Data. When WG is pulled low (and the Write Enable switch is in the WrOK position and the inserted disk is not write protected), data on this pin is written to the disk. The specific encoding of the data on this pin depends on the floppy format being written. Connected to D13 on the common feather pinout and pin 22 on the IDC connector.

Optional 5V Connection

The screw terminal is connected to the Feather's USB5V line and to GND. Depending on the USB power supply to the Feather, this can be used to power some low-power laptop floppy disk drives, but should not be used to power desktop floppy drives.

This guide was first published on Feb 28, 2023. It was last updated on May 28, 2024.

This page (Pinouts) was last updated on Mar 08, 2024.

Text editor powered by tinymce.