The sigrok project is a cross-platform, open source signal analysis software suite that supports various device types such as logic analyzers and oscilloscopes. PulseView is a Qt based GUI for sigrok. Protocol decoders for over 100 signal types are already available for PulseView, and custom decoders can easily be written using the Python language.
I wrote an FM/MFM decoder for PulseView to decode and display captured raw analog and digital data from floppy disks. The digital data could be captured by connecting a logic analyzer to the Read Data line of the floppy disk interface, or analog and digital data can be captured by my UFDR program and its matching custom hardware.
This was my first ever attempt at programming in Python.
One modification I plan to make to the decoder is to use the Python "pathlib" library to allow platform-independent specification of file pathlists, as it is currently hard-coded for MS Windows only. (This is only used if you select to write the decoded data to a file.)
Complete track, decoded details.
|FM/MFM decoder for PulseView, user instructions, sample files.