floppymeter(1)

okay bestie, buckle up πŸ’– you're about to meet floppymeter(1) from the General Commands Manual, and she is niche but she is iconic.


🌸 NAME 🌸

floppymeter β€” measures the raw capacity and the exact rotation speed of a floppy drive. that's the whole job, and she does it with main character energy. πŸ‘‘


πŸŽ€ NOTE πŸŽ€

okay so real talk first, because this part matters πŸ™ˆ this manpage was automatically generated from fdutils's texinfo documentation. and the process? only approximative, bestie. some items get straight-up lost in translation:

  • cross-references? gone.
  • footnotes? gone.
  • indices? gone.

they literally have no appropriate representation in the manpage format, it's giving "we tried our best". 😭

also, only the items specific to each command got translated β€” the general information about fdutils got dropped in the manpage version. so the author strongly advises you to use the original texinfo doc instead. periodt.

here's how to make one:

  • want a printable copy from the texinfo doc? run:
./configure; make dvi; dvips fdutils.dvi
  • want an HTML copy? run:
./configure; make html

and a pre-made HTML can be found at http://www.tux.org/pub/knaff/fdutils 🫢

  • want an info copy (browsable using emacs' info mode)? run:
./configure; make info

ngl, the texinfo doc looks most pretty when printed or as HTML. in the info version, certain examples are difficult to read because of the quoting conventions used in info. iykyk πŸ’…


πŸ’œ DESCRIPTION πŸ’œ

floppymeter [-f] [-w warmup-delay] [-W window]
[-c cycles] [-h] drive

so what does she actually do? floppymeter measures the characteristic parameters of a floppy drive and floppy controller β€” the lil trio being:

  • the rotation speed of the drive πŸŒ€
  • the data transfer rate of the controller ⚑
  • and the resulting raw capacity of a disk track πŸ’Ύ

to use this program: insert a disposable floppy in the drive, and type floppymeter --density, where density describes the density of the disk used for the test. it should be one of dd, hd or ed.

⚠️ CAUTION: the data on the disk will be erased. not "might be", not "probably", not "we'll see". erased. 🫠

you'd reach for this when you want to verify whether the drive and controller are out of tolerance because you're experiencing problems with some high capacity formats. good news tho: it only needs to be run once per drive ✨ β€” even though a disk is needed to perform the measurements, the measured data only depend on the drive and the controller, and not on the disk.

how does the raw capacity get measured? the program formats the first track of the drive in a special way that allows it to read the raw data (gaps and headers) of the disk. which means all data previously stored on that disk is lost. bye bestie πŸ‘‹

the rotation speed is measured by timing the return time of a readid command. to gain more precision, the command is issued many times in a row. during this phase, it prints and continuously updates:

  • the number of rotations since the start of the test
  • the average time per rotation since the start
  • a sliding average of the times of the last 30 rotations

the data transfer rate is deduced from the two parameters above. math ate, honestly πŸ”₯

at the end of the program, all parameters get printed again β€” raw capacity, duration of one rotation, and data transfer rate β€” plus their relative deviation to the standard value. and finally, she suggests a capacity deviation description line which can be directly pasted into the drive definition file (See section Drive descriptions.). so thoughtful 🫢

now the tolerance tea β˜• usually:

  • the data transfer rate should not deviate more than 150 ppm from the expected value
  • the rotation speed of the drive should not deviate more than 3000 ppm from the expected value

if these deviations are bigger, you may get problems with certain high capacity formats 🫣

if the raw capacity of the drive is too small, some high capacity formats may become unformattable on this drive/controller combo.

if on the other hand the raw capacity of the drive is too big, you may get problems when writing to a disk formatted by this drive on another drive with a smaller raw capacity. to avoid this, increase superformats gap parameter (-G).

okay now the flags, one by one, no skips πŸ’…:

  • -h β€” prints a short help
  • --dd β€” tells the program that we use a Double Density disk
  • --hd β€” tells the program that we use a High Density disk
  • --ed β€” tells the program that we use an Extra Density disk
  • -f β€” runs the measurement non interactively. with this option, the program doesn't ask for confirmation, and doesn't display the continuously updated values during the rotation speed measurement
  • -W Window β€” this value describes how many rotations are used for the computation of the sliding average. default is 30
  • -c cycles β€” describes the number of rotations clocked during the rotations speed determination test. default is 1000

πŸ’€ BUGS πŸ’€

not me having to say this, but β€” this program is quite new, and may have bugs πŸ™ˆ here are a few suggested tests to check its sanity:

  • the deviation of the data transfer rate solely depends on the controller. it should not be different between two drives connected to the same controller. however, the drive rotation speed may be different for different drives.
  • all data transfer rates (for double, high and extra density) are derived from a same master frequency. thus the deviation of the data transfer rate should be independent of the density used.

🌈 SEE ALSO 🌈

Fdutils' texinfo doc 🫢


and that's the whole page, bestie β€” this one comes from fdutils-5.6, dated 27Jan21. go measure those rotations, you absolute legend βœ¨πŸ’–