Reading floppy disk data, part 3! itsa pulse party
OK so part 1 we got our wiring worked out and found an index pulse. Part 2 is we started getting MFM data coming out. Now we’re capturing pulses with gpio bitbanging, and storing all the pulse widths in a large memory array. each track has a 500Khz signal, and outputs data every 5 Hz, so we have a max of 100K samples worst case.
since we’re using a cortex arm with 192K~256K of RAM (the RP2040 has 264K!), its no biggie to store all the pulses in an array. here we are reading track 1 and binning the pulses: we’re seeing three pulse width bins stand out, about 40 count, 62 count and 85 count. but there’s also a couple ultra short pulses (25 count) and an ultra long pulse (~200 count).
each count is about 48ns-ish so that translates to 2us, 3us and 4us bins, with a few 1us and one or two 10us+. not exactly sure whats up with those outliers. do we ignore them? are they start-of-data markers? We also noticed that track 0 has way more unusually long or unbinned pulses, like almost 100 different values. its a little mysterious, we’ll have to investigate if there’s something special about track 0!
Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!
Python for Microcontrollers – Adafruit Daily — Python on Microcontrollers Newsletter: A New Arduino MicroPython Package Manager, How-Tos and Much More! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi
EYE on NPI – Adafruit Daily — EYE on NPI Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey
I will guess that the long gaps are sector gaps/markers. If so, they will be placed at uniform intervals, and probably aligned with the index pulse.
1.44 MB 3.5″ floppy for DOS is apparently 512Byte/sector x 18 sectors per track x 80 tracks x 2 sides. (Mac 400/800 kB drives have variable sector counts.).
I will guess that the long gaps are sector gaps/markers. If so, they will be placed at uniform intervals, and probably aligned with the index pulse.
1.44 MB 3.5″ floppy for DOS is apparently 512Byte/sector x 18 sectors per track x 80 tracks x 2 sides. (Mac 400/800 kB drives have variable sector counts.).
https://en.wikipedia.org/wiki/List_of_floppy_disk_formats