The idea is to interface an old 5,25" Shugart compatible Floppy disk drive to GPIOs of a PocketBeagle and write a primitive Linux block device driver to read (potentially write) sectors.

The ARM Cortex A8 inside the AM3358 of PocketBeagle should be fast enough - provided we can switch off the interrupts for a moment.

We also could try to make use of the PRU subsystem of the AM3358 chip so that it runs real-time an independently of the Linux main system. But that may be a second step.

The first step is to:

  • find out the correct connector pin assignment
  • check if the floppy drive still works (12 V spins up motor, applying 5 V gives index impulse, read data visible with Oscilloscope etc.)
  • choose which PRU capable GPIOs are to be used
  • design a simple interface board (probably we need level shifters)
  • use the "sbull" demo driver (O'Reilly) and write a simple


similar projects

sbull block device demo driver


  • LC8:
  • git repository:
  • floppy disk formats: https://en.wikipedia.org/wiki/List_of_floppy_disk_formats
  • MFM: https://en.wikipedia.org/wiki/Modified_Frequency_Modulation
  • about Floppy Disk Drives: http://www.pcguide.com/ref/fdd/index.htm
  • pin layout: http://pinouts.ru/HD/InternalDisk_pinout.shtml

Development Team
Nikolaus Schaller

Powered by InDefero,
a CĂ©ondo Ltd initiative.