UFDR - Universal Floppy Disk Reader

picture of UFDR hardware

The UFDR system consists of custom hardware and software that I developed to recover data from old floppy disks by capturing both the analog and raw digital signals, then using post-processing software to decode the data.

It optionally uses the PulseView software to display both the analog and the raw and decoded digital signals for individual tracks. This is especially useful if a track has decoding errors, as the graphical view can sometimes help determine what is causing the errors.

Although other devices and software for processing raw digital data from floppy disks were already available (see below), as far as I know, none also captured and displayed the matching analog waveforms, or allowed adding and deleting and moving pulses/edges to fix errors. So far I haven't needed to refer to the analog signal recording for clues to help with fixing read errors, but it has been interesting to see how the signal amplitude sometimes varies significantly, yet the drive is still able to successfully extract all the pulses.

The raw analog and digital data captured generates large files, approx. 435MB for one 40 track double-sided disk, and almost 1GB for one 80 track disk. Decoded data from each captured disk is stored in a special disk image format that contains configuration information (metadata) about the disk in addition to the decoded data. The decoded data can be exported to a standard DSK disk image file to be accessed by emulators, or by software that writes data back to a real floppy disk.

The UFDR software can also be used to explore the contents of either disk image format (currently only for FLEX and OS-9 disks). This includes the ability to display directory listings, and to view and extract individual files. Refer to the screen captures below. My software doesn't (yet) have a fancy graphical user interface like most of the other systems.

In February 2018 I exhibited my UFDR system at the Vintage Computer Festival Pacific Northwest (VCF-PNW-2018), held in Seattle at the Living Computers: museum + labs. The poster that was part of my display, and explains the various portions of the system, is available for download below. I plan to eventually document the UFDR hardware and software in more detail on this page -- but I need to first clean up the source code.

Why does the UFDR hardware contain so many separate circuit boards? Partly due to my desire/need to "design a little, build/test a little". Partly due to my use of the ExpressPCB Mini-Board manufacturing service that requires a board size of 3.8" x 2.5", and that some circuitry needed a 4-layer board, while the rest is fine with a less expensive 2-layer board. And that I could assemble the thru-hole boards myself, but needed to send the surface mount boards to someone else for assembly. The analog circuitry was designed by someone else who wasn't given the specifications until after I had already built parts of the system. And in my hurry to finish the project in time for the VCF-PNW-2018 show, I forgot to include some features in the original design, so had to add them with add-on boards. The system was ready for the show with only 3 days to spare!

How well has the UFDR system worked? As of 2018-Jun-29 I had successfully captured data from 130 5¼" floppy disks, some of which were almost 40 years old. Most of them captured with zero read errors on the first try! Of the rest, after cleaning the drive heads, re-reading the tracks that had errors, and tweaking the software digital PLL decoding coefficients used in the post-processing software, all remaining errors were eliminated! Not bad for disks that were 25-37 years old!

Although I have so far only captured data from 5¼" floppy disks, it should also be possible to use the UFDR system for 3½" or 8" floppy disks. The software currently only decodes FM and MFM signals at fixed rates of 125kbps to 500kbps, but it should be possible to modify the software for other encodings, and for variable data rates.

Other devices and software for processing raw digital data from floppy disks include:

Capturing raw disk data can also be done by using an inexpensive logic analyzer to sample these six digital signals on the floppy disk drive interface @ 16 MHz. (The last 5 signals make it possible to determine where an individual track begins and ends, and which cylinder and side it is on.):  ReadData, Trk00, Side, Step Dir, Step Pulse, Index

Some simple software could then be written to separate the data into individual tracks to be processed with PulseView and my FM/MFM decoder plug-in. But processing all the tracks one by one from a floppy disk would be much more time-consuming this way compared to using the UFDR hardware and software that quickly captures and decodes an entire disk at one go.

One person even used an oscilloscope to read signals from a floppy disk, one track at a time!

(Click on a picture for a larger version.)

icon to link to screen shot of UFDR startup menus icon to link to screen shot of UFDR Config menu icon to link to screen shot of UFDR OS-9 Explore session icon to link to screen shot of UFDR FLEX Explore session
Startup menus, Config menu, OS-9 Explore session, FLEX Explore session. (22KB-62KB .png)
icon to link to screen shot of UFDR Track List icon to link to screen shot of UFDR Track Graph
Track list, Track graph. (19KB-26KB .png)

icon to link to PDF file of poster describing entire UFDR system Poster describing the entire UFDR system.
(8.2MB .pdf)

"FLEX" was a trademark of Technical System Consultants (TSC).
"OS-9" is a registered trademark of Microware LP.

Use the Reload/Refresh button in your web browser (or Ctrl+F5 or Shift+Reload) to ensure you get the latest version of this page.
Last revised 2022-May-20 18:29 PDT.
Copyright 2018-2022 David C. Wiens.

Home   Contact   Site map