I've got a Fujitsu FM-7 with an external 5.25" floppy drive unit; it has a pair of 40-track, double-sided, double-density¹ drives. These use a fairly common low-level track format: the standard "IBM MFM" (as the HxC software calls it) encoding described in this answer, or in other words just like the IBM PC except with 256 byte instead of 512 byte sectors.
It would be handy if one of my modern Linux PCs could do read sector, write sector and track format operations on these disks.² (I am not concerned about anything beyond this; I am not looking for software that understands filesystem formats.) Ideally I'd have a choice of sector sizes (allowing me to use both the 256-bytes/sector formats used by the FM-7, the NEC PC-8001, and many other 8-bit machines, and the 512-bytes/sector formats used by the IBM PC and similar), but I'm open to solutions that use only one sector size of 128, 256 or 512 bytes.
The best approach I can think of off-hand is is to connect a floppy drive to a disk controller chip along the lines of a Fujitsu MB8877 or Western Digital WD1770 (which is actually exactly what my external drive unit does), and then program a microcontroller or Arduino board to handle the interface.³ It would exchange commands and sector data with the PC (probably just via a USB serial interface) and directly drive the low-level interaction (which is timing-dependent) with the disk controller chip.
Are there existing solutions out there that do this? What are my other options? An indication of approximate cost (for devices or major parts) would also be appreciated.
Most of my PCs are laptops, and I would prefer something that could work with those, but I do have both a Linux and a Windows desktop machine with PCI-X slots available, if necessary. Sadly, my main Linux desktop (using an ASUS P8H61MX motherboard), even though it's getting on more than ten years old, has no on-board floppy controller, but solutions using PC floppy controllers might be useful to others. (Or perhaps you can provide a pointer to a way to connect a floppy controller usable for this purpose to a modern PC.)
¹ Yes, I know that the drives and diskettes themselves are not double-density; it's the FM vs. MFM encoding that determines the density, but this phrasing seemed the easiest way to get across the information I'm trying to express.
² If a solution can't provide sector-level reads and writes to the disk itself, full-track reads and writes would also be acceptable, though not preferred. But that solution would also have to provide a way to get sectors out of the track, let me change or replace the data in them, and then write out the new track to the disk.
³ I'd also be happy to use a parallel port or GPIO interface on the PC itself for this, but I worry about timing problems even with a traditional parallel port, much less the USB versions I'd be using on my laptop.
/dev/fd0-style interface, rather than a streaming controller such as a KryoFlux or SCP or FluxEngine, is that correct?