If your drive is in an enclosure, take it out. Disconnect any power and data cables and lay it on a work surface upside down, so that the side with the spindle motor (a large aluminum disk) is facing up.

Take black "electrical" tape and wind it around the spinning motor assembly, leaving a gap of about 1/4 inch (6mm) or so in the circle. If needed, trim excess tape away and make sure the spindle still spins freely.

It may help to first transfer your tape from a large roll to a smaller diameter tool such as the shaft of a screwdriver as shown in the image, so that it can be positioned right next to the drum and unrolled. No matter which tape you use, it is most important to cover the side of the drum all the way to the bottom (PCB side), because of how the sensor will sit. Leave any gaps at the top of the drum.

The author found that 1/2 inch (12mm) tape was a bit wide, but that after winding the part that stuck above the drum could be trimmed back with a utility knife. 1/4 inch (6mm) tape is a bit narrow and care has to be taken to position it vertically for the sensor to function properly. The perfect tape width might be 3/8 inch (9mm), but the author didn't receive any in time for testing.

Next, it's time to do some soldering. Solder the 470 ohm resistor between the two center legs of the sensor, then solder wires for GND, +5V, and the signal switch.

Use generous lengths of wire at each point, because the wire must route around the inside of the floppy drive and to the front panel. Check out the photos below to get an idea of how much wire you'll need and where to route it.

On the Adafruit sensor, model H048W, the sensor side is indicated with a transistor symbol on the left in this photo and corresponds to the side marked "S" above. The emitter side on the right is marked with a diode symbol and corresponds to the side marked "E" above.

Using an M2.5x10 screw and nut, affix the sensor to the drive in the location shown. Leave a 1mm gap between the motor and the sensor. By moving it gently with your fingertips, make sure the drive motor can still rotate freely 360 degrees. If not, you may need to adjust the sensor position in its slot, or re-apply the black tape.

If you do need to re-apply the tape, it's recommended to use fresh tape each time.

Solder the VCC, GND, and switch signals to the main PCB as shown:

  • Red VCC to J5-4
  • Black GND to J5-2
hacks_Screenshot_2022-02-24_11-21-42.png
credit: David Given / fluxengine
  • Blue switch output to TP-1
hacks_Screenshot_2022-02-24_11-22-05.png
credit: David Given / fluxengine

Carefully route your wires so that they cannot interfere with the floppy spindle motor. You can route them under the PCB on the side with the ribbon cable, or use the retaining clip for the stepper motor's ribbon cable.

Perform a Quick Test

Plug everything in and perform a little test using fluxengine.

Call the switch position on the un-soldered side the NORMAL position and the other position the FLIPPY position.

Put the switch in the NORMAL position, insert a floppy right side up, and run fluxengine rpm. Your drive's rotational speed, usually around 360rpm, should be printed. If you get a lower number, make sure the tape and sensor are not interfering with the rotation. If you get a "no index pulse" error, your wiring is incorrect.

Pull the floppy out, turn it over, and reinsert it. Put the switch in the FLIPPY position and run fluxengine rpm again. Your drive's rotational speed, again around 360RPM, should again be printed. If you get a "no index pulse" error, your wiring is incorrect or incomplete. If you get a wildly higher rotational speed, your black tape or sensor positioning is not good.

Hopefully everything was just fine and you're ready to 3D print a fresh bezel for your drive.

# Good result
$ ./fluxengine rpm
Rotational period is 167.475 ms (358.262 rpm)

# Bad result -- too slow. Check if motor spins freely
$ ./fluxengine rpm
Rotational period is 442.19 ms (135.688 rpm)

# Bad result - too fast (too many pulses). Check wiring & switch
$ ./fluxengine rpm
Rotational period is 143.998 ms (416.673 rpm)

# Bad result - no pulses. Check wiring & switch
$ ./fluxengine rpm
Error: GreaseWeazle error: No index

This guide was first published on Feb 25, 2022. It was last updated on 2022-02-25 16:31:16 -0500.

This page (Modify Your Drive) was last updated on Mar 30, 2022.

Text editor powered by tinymce.