There are USB to FDD chips that support 5,25" (1,2M) FDDs according to their datasheet. For example the USB97CFDC-01. You could design a PCB around that. I thought about making that for a while now, but I didn't find the time for that. There are also ready made USB to floppy adapters available on ebay, so you don't have to take an external floppy apart. For example usb fdd@1306. But I am not sure if it supports 5,25", as they removed the Partnumber from the chip, but it might be a little bit more universal. To Linux it reports as an HDD and not as an fdd like other USB Floppies. The Problems you are seeing in windows are most likely the result of mismatching geometries. It can read part of the first track, where the bootsector and the root directory reside, but if you grow out of that you run into problems. The reason it works under DOS could be that DOS is reading the geometry from the bootsector. Windows ignores the geometry in the bootsector and uses the geometry reported by the driver, which probably gets the told the 1.4M geometry from the controller chip.
Yeah. Not even close to an expert, but.. this sound a lot like a driver issue - as in no one intended to support 5.25" over USB, so the ability to actually detect such a drive in Windows, and recognize how to talk to it, is just flat missing. Sort of like if you where missing drivers for a graphics card, and that cards was odd enough that it didn't "quite" work using standard VGA, so Windows was only a) seeing it as a VGA, but also, b) only let you use it in the lowest resolution (despite the standard allowing several others). An older version of Windows, like those that ran on top of DOS might have worked because you could format disks in all sorts of strange ways on them - even changing number of tracks, number of sectors per track, number of bytes per sector, etc. More modern versions of Windows will also not recognize some of them, and flat out cannot create them, even though the drives should technically allow it. The drivers just flat out don't, since these things are "outside expected ranges". It does make me wonder though.. what would a version of Linux do with one of these things, since its not quite so beholden to its drivers in the way Windows is, and is often more flexible in handling odd hardware (including stuff that Windows will just flat out refuse to talk to, do to there being no modern drivers for them).
@@patrickelliott2169 At this point I don't think there is any reason to belive, that this is a driver Issue. The Floppy controller has no way of detecting the type of floppy connected and consequently can't tell the driver the right geometry. Looking at the "USB Mass Storage Class - UFI Command Specification" Section 4.5.3 The floppy type is reported in Byte 2 "Medium Type Code" of the "Mode Parameter Header" in Response to the "Mode Sense" command. If @DOSPedion would run the Mode Sense command I am sure it will report 94h (1.44M). He could try to force it to 93h (1.25M) with the Mode Select command. With the right USB Controller chip, this could be configured on the side of the USB controller, so it would directly report the right type. Also there is the "Read Capacity Command" (chapter 4.9) It would be interesting what this reports.Maybe it calculates the capacity from the information in the bootblock or maybe it just reports a hardcoded value or it fails. Also notice that the READ commands use LBA and not CHS. So I don't think it is to important for Windows to know the correct geometry, but the controller needs to know the right media type, because it has to map the consecutive LBAs to CHS addresses. And thats probably where the Windows test breaks with to large files: As long as only LBAs are accessed that map to secotry existing on the 1.2M floppy it works (1.2M has the same geometry as 1.44M, except the number of sectors per track, 15 for 1.2M and 18 for 1.44M). But when he tries to access sector 16, it breaks because it can't be found on the disk. The explanation why it works in dos would be: DOS uses CHS, which the BIOS needs to map to LBA for the USB UFI Commands. The Controller and the BIOS both think it is a 1.44M disk, so the same CHS on the BIOS side map to the same CHS on the floppy controller. DOS reads the geometry from the bootsector, which causes it to only access secotors till 15, which will also map to valid sectors on the floppy side. So it skipps secotrs 16,17,18, which means it skipps also the LBAs which would map to them, so the controller dosn't try to read them. My theories can be verified: Use a hex editor on a working 1.4M disk, change geometry with a bootsector to 19 sectors. Windows should be still able to read it. DOS will report Read Errors or even "Sector not found errors". This proves that DOS is using the geometry from te Bootsector, but Windows dosen't. Then under Windows or Linux send a Mode Sense command to the contraption with the 5'25" Floppy. It will report the media type of the 1.4M if my theory is right. After sending a Mode Sense Command with tpe 93h the disk should read fine, at least for 1.2M. Maybe the OS will notice the change and adjust the capacity or it will report an read error. If the Mode Select is not possible for some reason, you can calculate the LBAs of the valid Sectors. Use a tool like dd to only access the LBAs mapping to valid Sectors, they should all read fine. Another way would be to try to read the wohle thing with "gddrescue". It will show a pattern of errors corresponding to the "invalid LBAs". The proper solution: use a USB Floppy controller that allows to set the Media type permanently in Hardware or Firmware.
@@janhofmeier9427 OK. Lot of stuff in there that I only vaguely understand, but.. what I get from it is that you think that the controller card that the drive plugs into is the culprit, in that "it" doesn't understand what its looking at? You may be right. USB negotiation would involve the controller checking to see what the drive is, then "telling" Windows, or anything else using the USB functionality, what kind of device it is, and what it thinks is connected to it. That said.. this implies that the BIOS, under DOS, not DOS itself would be doing some of this negotiation, and that "it" is deciding what the drive is, and how to talk to it, and a Windows driver is just going to talk to it based on what the USB interface itself "knows" about the device... in which case, it would still be the interface layer in Windows that is "getting it wrong" somehow. But, like I said, I don't really understand a lot of this, so this is just my guess. Why would the interface, after all, "forget" what it was accessing, and how to do so, just because Windows is talking to the USB hub on the motherboard, instead of DOS, via the BIOS? I would think Windows would have access to "more" information about what it was looking at that DOS does, as a result of this, or that it shouldn't work in either. Its not sitting directly on the system bus, or at least connected to a controller built into the mother board, like it normally would be, its sitting on a USB, "We need to talk this over, and have you tell me what you are.", interface. And it seems bloody odd that DOS somehow has no problem with this, but the controller flips out the second Windows is talking to it, and stops working with the same drives.
@@janhofmeier9427 OK. Lot of stuff in there that I only vaguely understand, but.. what I get from it is that you think that the controller card that the drive plugs into is the culprit, in that "it" doesn't understand what its looking at? You may be right. USB negotiation would involve the controller checking to see what the drive is, then "telling" Windows, or anything else using the USB functionality, what kind of device it is, and what it thinks is connected to it. That said.. this implies that the BIOS, under DOS, not DOS itself would be doing some of this negotiation, and that "it" is deciding what the drive is, and how to talk to it, and a Windows driver is just going to talk to it based on what the USB interface itself "knows" about the device... in which case, it would still be the interface layer in Windows that is "getting it wrong" somehow. But, like I said, I don't really understand a lot of this, so this is just my guess. Why would the interface, after all, "forget" what it was accessing, and how to do so, just because Windows is talking to the USB hub on the motherboard, instead of DOS, via the BIOS? I would think Windows would have access to "more" information about what it was looking at that DOS does, as a result of this, or that it shouldn't work in either. Its not sitting directly on the system bus, or at least connected to a controller built into the mother board, like it normally would be, its sitting on a USB, "We need to talk this over, and have you tell me what you are.", interface. And it seems bloody odd that DOS somehow has no problem with this, but the controller flips out the second Windows is talking to it, and stops working with the same drives.
@@patrickelliott2169 The floppy itself is dump, really dumb. It dosn't know anything about itself and it's geometry, so it has no way of telling the controller what it is. If you look at the floppy interface, its very lowlevel. The controller just tells the floppy to spin the motor, step the head, read or write. The floppy won't send "bits" to the controller, when it reads but the raw magnetitation, exactly, like it is on the media. It is on the controller to do the MFM decoding/encoding. For the Onboard Floppy controller you set the type in the BIOS, so the geometry is known. If you set the wrong type there, you will observe the same behaviour. The only thing, that can be really autodetected is if it is a Double Density (DD) or High Density (HD) media. On the 3,5" this happens through the second hole and a physical switch. On the USB Floppy the geometry isn't exposed to the OS. The USB Mass Storage Protocol, which is used here uses LBA (Logical Block Address). Every secotor has just a consecutive number. The USB Floppy controller maps this LBA to the corresponding cylinder, head and secotor (CHS). Because the Controller here thinks it is a 1.4M one it thinks it has 18 sectors per track , but the 1.2M just has 15 per track. So it tries to access an sector that doesn't exist if you request LBA 15,16,17,33,34,35 and so one. You will see this under any modern OS. Linux, Windows, OS X. Probably even Windows 9x (if it dosn't use the MS-DOS compatibility mode to access the BIOS device, instead of the WIndows Protected mode driver, but thats another story). MS-DOS doesn't know about LBA, it just knows the CHS format. So the BIOS has to emulate that. It maps the CHS to an LBA using the geometry of an 1.4M disk. It would run into the same Problem if the BIOS or DOS would for example request Cylinder 0 on Head 0 Secotor 15 (counting from 0). This maps to LBA 15, which then maps again to 0/0/15 in the floppy controller. But the BIOS just has to read Sektor 0 from the Floppy and then executes it. This is called the Volume Boot Record. This has then the code to load the next sectors for the boot programm and then find IO.SYS. So this is all MS-DOS Code. And the Bootsektor can always be read, even with wrong geometry. because even with the wrong geometry seotor 0 on head 0 on cylinder 0 is alwas the same. If you look at "Design of the FAT file system" on Wikipedia and Scroll to the Bootsector (VBR) you will find that it has a BIOS Parameter Block (PBP). At offset 0x15 in this Boot sector, there is something called "Media descriptor". This Media Descriptor tells DOS the type of floppy. If you scroll further down, you find on offset 0x18 "Physical sectors per track for disks with INT 13h CHS geometry". If you use the hexeditor of your choice to look at this offset, you will find an 18 there (or 12 in hex) for a normal 1.44M floppy. DOS Will use whatever you put there. If you change it to 19, you will find that DOS has trouble reading the disk, for me it just says there are no files (probably because it doesn't find the root directory anymore) but any modern OS, like Linux or Windows can still read the Floppy because the BPB is deprecated, so they just ignore it. The only clean solution is to have an USB Floppy controller, which can be set to the right geometry, either in hardware throgh some pins or by flashing a custom firmware. Ironcly this could potentially cause problems in DOS, depending on the quality of the BIOS. If the BIOS uses the geometry reported by the controller, it will work fine, but if it has the 1.4M geometry hardcoded, it will then still skip some LBAs...
So... FWIW, I think the reason it works (with high density disks) in DOS is a lucky combination of the real-mode USB floppy drive shim in your computer's BIOS being "well behaved" and the firmware of that USB floppy controller being "well designed", not because the controller itself explicitly "knows" anything about 1.2MB floppy drives. The semi-abridged version is if you read the API documentation for USB floppy drives you'll find that they really don't "emulate" a real floppy disk controller from the computer's point of view: the low-level floppy control functions are entirely run by a microcontroller embedded in the USB dingus and it presents a "block mode" interface roughly similar to a hard disk or USB flash drive. I think the reason it's working is when DOS makes the INT13h call to the BIOS handler for the USB drive it's sending an IDENTIFY command to the drive and the drive controller, instead of answering with a canned geometry, is checking the mounted disk to see if it's formatted and if so if it can reconstruct the geometry from what it actually reads. 1.2MB and 1.44MB floppy drives use the same data rate, so the controller is successfully seeing "bits", and it's apparently also successfully at reading those bits well enough to determine that the currently mounted disk has 15 512 byte sectors per track, which it's reporting back to DOS without trying to second guess it. As long as DOS also doesn't second guess anything and is willing to use the geometry as reported then, sure, it's going to work okay, at least on already formatted disks that are identified correctly. (A contributing factor to this working may be that there is actually a "standard" 1.2 MB format for 3.5" drives; some Japanese computers from the late 80's through the 1990's used 360RPM drives, and the format for that is one of the three "pre-baked" formats codes defined in the UFI API format. That format uses different size sectors, however, so it's not like the disk controller is "mistaking" the 1.2MB 5.25" floppy for one of those, exactly. But it may be that 360RPM support that's keeping it from throwing an error related to the timing of the index sensor?) I'm curious what happens if A: you try formatting a disk after booting DOS off the floppy drive, and B: if you boot from something else with the drive empty and then run "SI" to see what it thinks the floppy drive is, or if it sees it at all. My guess in the latter case either SI isn't going to see the drive at all or it'll simply report the drive size as whatever readable media is present. As to why modern Windows doesn't work, well, I guess you'd have to ask a Windows developer, because in the case of high-density disks it appears it *is* trying to second guess the reported geometry. If it just took the drive's word for the "shape" of the mounted media there shouldn't be a problem, it should work as well as DOS does. Maybe Windows' driver explicitly sets media types when it interacts with the drive, it looks like that's an option, manually probing to see if it's a supported type? As for it "kind of" working with low-density media in Windows, I think what you're seeing there where it looks like a tiny file can be successfully created is just an artifact of filesystem caching, I'm sure the drive doesn't know anything about how low-density media is supposed to be double-stepped. An interesting experiment if you have a "real" DOS computer around would be to put a custom 720k (80 tracks of 9 sectors) format onto a 5.25" floppy and see if that *does* work completely under Windows. (Google "2M" or "FDFORMAT", I think either of those will work to put the format on there.) The result should work just like a 720K 3.5" disk, and since it's clear from your experiment that the drive can figure out when a low density format is present you might be golden. But since that wasn't a standard BIOS-supported size back in the day it doesn't help you a lot.
@@SuperSmashDolls That was what I was thinking. Linux might have some entirely different ideas about what it sees. Doesn't mean it will work correctly either, but would be interesting to see.
I haven't ever looked up how USB floppy support works, so the LBA translation is news to me. But that makes sense. If I had to guess, I would bet that the IDENTIFY command actually returns a 1.4MB drive, but DOS may only use that when asked what kind of drive is present -- which is probably only relevant when in a handful of cases, notably when formatting a blank disk. DOS seems to obey whatever is in the media descriptor byte first and foremost, and resorts to hardware identification only if it cannot determine the disk format by the contents of CHS 0,0,1. I'm really curious what would happen if you try to format an empty disk...? (It would have to be unformatted, not just empty, so there's no existing media descriptor byte.) It would be interesting to see what happens when given format /u (with no capacity switches, and thus left to auto-detect via hardware), and also what it does when told explicitly to format at 1.2MB and 360K.
Hi there! I really like your experimentation of the 5.25 USB floppy drive. I feel there might be a reason why the 360kb drive might not work in the setup for reading double density disk... In the past, I had experimented with connecting the traditional floppy drives to the standard floppy disk controller. One experiment I did was that I told the BIOS that drive A contains a 360k 5.25 inch floppy but instead installed a 720kb 3.5 inch floppy drive in its place. The data transfer worked perfectly well since the drives technically had the same data transfer rate between the two drives... However, when I swapped the settings to a 720kb 3.5 inch floppy drive but connect a 360kb 5.25 inch floppy drive to the computer instead, the transfer no longer works. I discovered the reason why the setup did not work was due to the speed of the control signals being transferred. The first setup worked since the computer sent control signals slower than what the drive could handle, so the 720kb floppy drive could be used. However, doing the opposite setting does not work as the computer now sends the control signals faster than the drive could synchronise with. I'm not sure if the above information may help you with the research on developing a floppy drive controller using the USB method
It has nothing to do with Windows. On DOS, the USB Floppy emulation in the BIOS is doing the heavy lifting - that's why it works. You'll hear plenty of people parroting that 5.25" floppy/1.2MB floppy/floppy support in general was removed in Windows , but in reality, if your motherboard and BIOS supports 5.25" drives, they work perfectly even on Windows 11 24H2.
Thank you for your video, this is most helpful. It's also a shame that nobody bothers to make brand new 3.5/5.25 combo drives for archival purposes, finding NOS working ones is next to a joke and purchasing a reliable used one is right next than having winning the lottery...
As far as I know, FDs don't have an auto-recognition to tell the computer whether they are 5.25" or 3.5". You would always have to set this in the BIOS, and the OS would take this information from there. If your mainboard's FD-Controller and BIOS still support 5.25" drives, Windows 10 actually recognises the drive as a 5.25" drive and it works just fine. There are very few mainboards though that support both 5.25" FDs and Win10. I think those were late Pentium 4 boards. There are videos on RUclips of people running internal 5.25" drives with Win10. If you'd manage to reprogram the controller board, then theoretically that should work, although I'm not sure if any USB FD-driver supports 5.25" drives. I don't know if Windows uses different drivers for USB FDs and internal FDs
Works fine on Windows 11 24H2, too. It's just not well-known, since the minimum requirements for Windows 11 vastly post-date integrated floppy controllers.
I still have an old 5.25" drive myself. Back when I was a teenager, I installed it in my computer (but never used it ^^). Back then, under Windows XP, the 3.5" and 5.25" drives were still displayed correctly. Maybe try an installation of Windows XP. Test it in a VM where you can pass USB through. The other way round, you could look for a new - old mainboard that still has a disk controller incl. port and install Windows 10 there. If it doesn't work even with the native hardware, then it's certainly the driver :) Then something else - a few months ago I found someone here on RUclips who got an old 8" floppy drive to work with DOS, maybe you can exchange ideas with him.
Added 2 years later, but still worth to be mentioned: You can use the described device compilation at least to read and write 720KB 5.25" floppy diskettes, e.g. using a modified TEAC FD55GFV or a TEAC FD55FV. These 720KB formatted 5.25" QD or DD diskettes were not commonly used, but existed. To read/write them on an older PC (e.g. an Intel 486 PC), you have to use not only MSDOS, but additionally also a small utility (the diskette copier software VGACOPY contained the utility named "VGAREAD", but there were also an utility which came with FDFORMAT named "FDREAD" and another one which was named "800"). To format them, you can also use the FORMAT program with the command line parameter /T:80 /N:9 (not with Windows, but DOS).
It definitely is the conversion hardware you're using that's specifically-made to be recognized as a 3.5" drive. What you'll need to somehow do is change whatever signaling / ROM the hardware is using to tell the device it's plugged into what drive it is.
I've wanted something like this for years! I was actually considering learning FPGA development to make it happen but that's way above my pay grade. Judging by the fact that the bios/DOS handles it fine but Windows doesn't, it has to be a driver issue. Maybe someone who knows how to write drivers can help us out, or maybe the existing driver can be tweaked.
I just bought two different VST USB floppy drives, in the newer model you can see two distinct chips through the transparent shell. The older model has a date code of 1999 but I cant see the circuit board. I cheaped out and bought an adapter from ebay where the 34 pin is female, it's shipping from China so my experiments may have to wait a while. I'll keep you posted!
Nice :) There is the greaseweazle controller, but at the moment you can only read the whole disk - a driver that let you access the disks as block devices would be a good next stage.
You can handle 360K (DD) drives with this rig by using a 360K (48 tpi) floppy. The adapter will treat it as a 720K, which happens to use the same 300 RPM spindle speed and track layout (9 sectors of 512 bytes) at the same 250Kbps data rate. Where you run into trouble with a HD 5.25 (1.2M) drive is that the spindle speed is 360 RPM. You could, of course, re-jumper that Teac drive to use 300/360 RPM dual-speed, but it won't double-step for 360K disks. Hope that solves a bit.
The weird thing is, that under MSDOS and Freedos the 1.2M media work just fine. It only under the newer OSes that the drive only reads double density media and that only with partial success.
@@dospedition4207 That figures--the data rate of a 1.2M disk spinning at 360 RPM is exactly the same--500Kbps--as a 1.44M one spinning at 300 RPM. I take it that your board probably uses the SMSC USB-to-floppy chip. Datasheets are still available.
@@dospedition4207: Everything but the 1.44Mb format was depreciated from Windows XP on - I have a dual-boot XP/DOS system that can only reliably work with the 720Kb diskettes (meaning both read, writes, and formatting) under DOS, same physical drive.
I wonder if a quad density (720K) 5.25" disk would work. They weren't very common and I don't if all 1.2 MB drives support it or if you can format high density 1.2 MB disks to that geometry since people report using 1.2 MB disks as 360K is iffy.
@@IBM_Museum I think "deprecated" only in the sense that the user had to specify the format parameters. For example, on my XP system FORMAT A: /N:9 /T:80 works just fine on a 3.5" DD drive. There were some cost-reduced USB 3.5" floppies that supported *only* the 1.44M format, however. That wasn't XP's fault.
Out of curiosity, can you format a fresh floppy? I suspect it will format it as either 720 or 1.44. Won’t be readable by other 5.25 DOS machines but might be readable in windows.
Windows 10 has full support for 5.25" floppy drives when they are connected to a real floppy controller on the motherboard . The problem is that the firmware on the USB floppy controller reports a 3.5" 1.44MB floppy over the USB connection. It seems works in dos because the BIOS probably doesn't care about what the controller firmware tells it, but any windows OS follows the USB specifications fully and listens to what the firmware has to say about the type of floppy drive.
I read about the 5.25" support in Windows 10. When I revived my old Asrock mainboard with native floppy support it did not want to cooperate with a 5.25" drive. It always reported a 3.5" drive. And the weird thing is, that that very same motherboard used to work with my 5.25" drive when I used it with Windows 7 years back. Perhaps a BIOS upgrade somehow broke the support...
So: Someone needs to take a microcontroller that can speak USB and has enough I/O and properly implement the correct USB mass storage removable drive spec and bit-bang the floppy drive, and the Windows driver will probably work with it. Works for me! Break out the soldering irons and the rpi2040s!
The issue isn't the firmware. It's the USB spec for floppies only includes support for 3.5" discs due to the spec only supporting 3 combinations for the number of tracks, sectors, heads, etc.
The difference between the different "IBM" floppy types (IBM format 1.44M, 720K, 1.2M, 360K) is all about the timings. The fundamental operation of 3.5 and 5.25 drives is the same, and the command set is exactly the same (basically: activate motor, step to next track, and single data channels for reading/writing). The "data" the drive returns is just a pulse every time the magnetization ("flux") changes. Data is coded on the disk in MFM, meaning there is always at least one pulse for every "bit" stored. There are a number of tracks to step through (80 tracks for 1.2M and 1.44M, per side) and a track consists of 512byte sectors, each with a small header area, and between sectors is a sync zone filled with a standard synchronization pattern to allow the controller to match the data rate. (Hence why a 1.44M floppy is technically 2.0M "unformatted"; over 25% of the disk is taken up by the sync zones. The Microsoft DMF format reduces the length of the sync area to fit 1.68M on a disk). Switching between tracks is dead simple. Reading a track is where the timing problem lies. The amount of sectors, and the length of the sync zones, have "expected" "standard" values. Old controllers were more "dumb" and hence more tolerant of different timings. That's why MS was able to use 1.68MB floppies to distribute some of their software. All of this is to say: There is no reason why a controller for a 1.44M drive can't read a 1.2M 5.25 disk. The only problems come from "artificial" restrictions on the controller, driver, or OS. For example, the driver might panic when there aren't "enough" sectors on a track (1.2M has 15 sectors versus 1.44M has 18) and decides that the disk is "bad". Or it might be confused by a sync area that's too long or too short. Or it tries to match the data rate according to the sync, but the timing is too far "out of bounds" (that were artificially programmed anyway). My question: What happens if you try to format the 5.25 disk in Windows? Does it become usable from that point on? Does the format fail?
Isn't this also a matter of drive type? Specifically whether it support 80 tr/in, 96 tr/in, or both? (Am I wrong in guessing that that's why the Teac FD-55FGR is best/most flexible?)
@@lhpl Distance between tracks must be handled by the drive itself. The controller has no concept of the physical track distance. There are only two track-related signals issued by the controller: STEP (which is pulsed to advance to the next track) and DIRECTION (which is held high or low to select outward or inward track stepping).
@@softy8088 I see. I'm not sure if you are kindly correcting me, or just adding more information, but I think my comment clearly showed how little I know. I'm not even sure, but I think I was confused about number of tracks (40, 77, or 80?) and tracks per inch. I clearly have to read up on this matter.
@@softy8088 oh, another thing: when I had an external 5¼" drive for my CPC6128 (1986-1993 or so), it had a physical switch. I seem to remember that it switched between 40 trk mode and 80 trk mode, would that make sense?
@@lhpl Yes, that makes sense. Track switching is handled by drive hardware. I was just trying to answer your question in the context of the video: The USB controller has no sense of track spacing. The drive itself must know where the tracks are. I wrote a longer reply but it looks like youtube removed it, possibly because I included links to some documentation.
The problem is the USB controller. It does not support the proper control parameters to handle a 5.25" drive, and it tells Windows that the drive is 3.5", so Windows assumes all the wrong parameters. Electrically and from the command and control structure (read/write commands etc.), 3.5" and 5.25" FDDs are the same. The difference is only a different connector and different parameters (number of tracks, number of sectors per track, etc.). In the old days there were 720 KB (double sided, double density, 80 tracks) FDD in both 5.25" and 3.5" versions. You could actually exchange the 5.25" by the 3.5" version and vise versa and it worked fine. The 8-bit Z80 based computer I had at that time supported a number of different FDD formats, from 40 tracks single sided/single density (90 KB of storage) up to 80 tracks, double sides/double density (720 KB of storage). You just had to indicate which type of drive was connected. When you set it to 80 tracks, double sides/double density, you could use either a 5.25" or 3.5" FDD. I always wondered why no 5.25" USB drive was ever produced by the industry. It is just a question of using the same controller you use for 3.5", but just using different drive parameters. And of course having an external PSU (like the build in the video), as normal USB cannot power a 5.25" FDD. I have considered trying to create an USB 5.25" FDD using a Raspberry Pi to control the drive and just do everything in software, so basically emulating the floppy disk controller by a Raspberry Pi. On the Windows side, you could either try to have a 5.25" floppy drive (Windows may need a driver) or emulate a 1.2 MB USB stick to trick Windows. Final remark: many kudos for your effort!
The BIOS has to support it first, then Windows has to contain the diskette drivers for all four drive types. The driver has to support the appropriate driver for the diskette for the FAT for the directory. You need to find the source for the old Win Diskette drivers and recompile them for 64-bit, then install them into the modern Windows system.
bios support is not required because it's just a USB device. he already showed it booting from being off and just powering it on and it boots to dos just fine. This is a modern-Windows driver problem.
@@johnbos4637 I have yet to be able to wrap my head around the fact we cannot get the collective hobbyists to put together an actual working read/write 5.25 solution that reads/writes natively without images. I know the USB standard doesn't support it, but so what? There are plenty of proprietary USB devices with custom drivers etc, so what is holding back the development of an actual USB 5.25 floppy? Some say demand, but it is VERY evident (especially lately) that there is a huge demand for such a native solution. Ideally, an external shell with the pcb and power with connectors inside. USB and standard power plug on the outside. Or heck, even a brick 12v adapter would be suitable. I don't know enough to even begin, but it is obvious there are plenty of people who are.
@@johnbos4637Sorry dude, but nearly everything you said was wrong. It's maddening that posts like yours get so many upvotes. _bios support is not required because it's just a USB device_ Quite the contrary, under DOS, extensive emulation is done by the BIOS to make the USB device look like a floppy drive. It's why you have multiple options in your BIOS setup screens controlling how USB devices are presented to the system, because BIOSs don't have anything like the smarts you find in a real OS driver for identifying USB devices, or interrogating their capabilities. Further, there's no spec for emulating 5.25" drives over USB (there are 3 supported geometries, all of which were used on 3.5" media) - it's just that whoever wrote the BIOS was lax about the emulation code, so by pure accident, it works - a shortcut Windows (and any proper operating system) isn't taking. _This is a modern-Windows driver problem_ Again, completely wrong. Even Windows 11 24H2 supports 5.25" floppy drives connected to 82077AA-style controllers - I've seen it working perfectly myself. The issue here is that it's a USB device, which - as alluded to above - words cannot convey how _absolutely, completely and ridiculously_ differently it works to an old-school floppy controller. Quite simply, Windows has _never_ supported this configuration _at any point in history,_ though it may have worked on Windows 9x using MS-DOS Compatibility mode, because it would be falling back to the (USB spec-violating, reminder) emulation code in the BIOS. This however never worked under NT (which every version since Windows Me is), as it's not using the BIOS emulation, and trusts the device to report accurately what it is. TL;DR: this device is reporting itself as a 1.44MB floppy drive, there's no specification for it to report itself as a 1.2MB drive, and none of this has anything to do with Windows.
Funnily enough, the top recommended video from this one is an LGR video from 10 years ago about a USB floppy controller by Kryoflux. It seems to be intended for imaging floppies for archival purposes rather than used as a mass storage device, though.
Getting modern machines to read 3,5'' floppies is a trifle, 5,25'' though is really tricky. But there are motherboards that let you run Windows 10 while supporting 5,25'' floppies easily
Maybe the information in the USB Device Descriptor says that this is a 3,5 inch floppy. So it is maybe a problem of the firmware of the controller. I am not that deep into USB Programming, but i wouldn't wonder if there are any settings which can be made upon the media types the device is capable of, and it is possible that the designers of this particular usb floppy drive fixed this descriptor to 3,5". I don't know if this is fixable, but probably not, because its possibly in the firmware of the controller.
I’m sure someone else has posted this, however the chipset in the USB drive you took the PCB from very likely, if not definitely, does not support 360K drives/media. Some chips support a 1.2MB format, which was popular in Japan on 31/2 inch drives, however 360K has been a known showstopper with this method.
One thing about technology from that era. The jumpers on the control boards were very important. They enabled or disabled certain feature sets in the device and you have to make sure you know what the jumpers are what they mean and what features you need to turn on and off. It usually looks like two pins straight up with little plastic box between them sometimes two pins sometimes three pins sometimes four and they were usually labeled one through four or ABCD.
Years ago I came upon a broken USB floppy drive, the fault appearing to be mechanical, so it's been sitting in my junk box ever since, hoping to do something similar to this. Maybe time to get it out and have a look.
I did some research about the floppy drive controller chips used in the USB floppy drives. Some of these products used the USB97CFDC2-01 controller chip for interfacing the floppy drive to the USB port. According to that chip, it is possible for it to work with the special Japanese formatted floppy disks that somehow used 1.2mb floppy disks that were in 3.5 inch format. I'm not too sure if there is way to modify one of these chips to think it is reading these special formatted 1.2mb floppy disk formats. If it is possible, perhaps one can interface a high density 5.25 floppy to it and the system may work.
@@bushman3168 some of the Dell latitude series floppy drives uses these chips. Those with the mini USB ports on the side. Ive seen some with these chips and others with some proprietary Sony controller
@@bushman3168unfortunately I’m unsure of a website, but I do know how they physically look. If you look at the top of the floppy drive and the metal cover does cover the entire top part of the drive, it is the one you are looking for If there is parts where the cover does not cover, around the docking ejection mechanism, then it is not the drive you are looking for
This may work, as that format used the same geometry (80 tracks, 15 sectors) as 5.25" drives - though there's often more to a disk format than just track and sector counts. It wouldn't stop the USB device reporting itself as a 3.5" drive however, and wouldn't support 360KB floppies at all, which would irritate some people.
in theory, it should work fine on DOS and win xp .. w7 and later doesn't have a 5.25 device drivers built in (i think). also 5.25 (it draws a lot of current @12vdc) better use external PC PSU for it..
I suspect it's identity as a 3.5" drive is flashed into the firmware of the usb board. Accessing it via the bios to boot of it probably ignores that and uses some older, lower level way to determine that which Windows does not. It would be very interesting to see what it does under Linux. I built something similar myself using a Greaseweazle board (similar to Kryofkux, less expensive and open source) and an old SCSI enclosure and one of those 5.25/3.5" combo drives. Like you said, it's not a native experience, it only works through an app that reads and writes images. BUT it does have advantages too. I was able to rescue the data off an old 3.5" disc that was damaged and otherwise unreadable. Also it can read many non pc formats.
From what I remember, 5.25" drives came in a variety of standards. Is it possible to find a SCSI one and connect it into an external USB SCSI cage? There's also another option. I have an adapter you can buy off Amazon that connects to an internal 3.5" floppy connector and converts it into USB. Perhaps connecting that to a 5.25" drive would yield more successful results. That adapter is currently working for XP, 7, and 10 with no drivers needed.
This post needs more upvotes, since it's the most likely to work. Windows has an entirely separate driver for SCSI floppy drives (sfloppy.sys), which wouldn't be hemmed in by the limitations of the USB floppy emulation specification - depending on how smart the USBSCSI case is, you'd just send it native SCSI commands over UAS.
Have you looked closley at the board and chip of the usb->floppy adaptor? There may either be some kind of internal registers to tell the chip what to identify as, or data stored on an eeprom/flash that stores basic info about the drive to the PC that could be changed to show up as a different drive.
Try making a couple of 3.5" -type formatted disks on 5.25" disks. Basically, take a retro computer with a 5.25" 1.2M floppy drive, then set the bios to think it's actually a 1.4M 3.5" drive. When you boot the computer, format one 5.25" floppy at 1.4M size, and format another at 720KB size. Then go back to your USB floppy drive, see if Windows 10 recognizes those floppies you formatted. If it does, Windows 10 driver must be hard wired to read 720k and 1.4M diskettes even when a 5.25" floppy drive is hooked up.
Without any digging into it, I'd have to assume that the drive controller and windows do a usb handshake that initializes it as a 3.5 disk drive. If you can fake out the handshake to be a 5.25 inch drive somehow them it will likely work natively. Perhaps that is why booting to it works, since the drive controller might have a separate primitive control function when accessed via bios.
Not really - not across USB, anyway. While it's true Windows has always supported (and knowing Microsoft, always will) floppy drives connected to 82077AA-style controllers, the spec for USB floppy _emulation_ (and it _is_ emulation - it's built into the BIOS, hence why it works under DOS) only specifies 3 geometries - and all of them were used on 3.5" media. Short of violating the USB spec (which is what the BIOS emulation is doing), or going all in and presenting the drive as a USB Mass Storage Class device instead of a floppy drive (with all the extra lifting that entails), there isn't any "clean" way out of this.
One thing I'm curious on with your 'helloworld123!' file working is my theory is that the current driver is only able to access the first 'sector' of the drive. So you probably are able to access the first 4kb of space on the drive, but as soon as it hits this space it doesn't know how to read any of the other tracks. I'm curious if you changed the track size, or something if you'd be able to access more, and I'm curious as well if you ran something like a very very very very tiny game in that sector if you could run that program. That being said as others said if you try loading the driver or somehow were able to write your own driver it may work. You might be able to fudge it with a similar enough driver.
disk drives on a pc need to be configured for their actual size. you are pushing a 5.25" drive with the 3.5" floppy size..so it will work right up until you run out of space as 3.5" is 1.44mb and 5.25 is either 360k or 1.2mb .. the controller needs to be modified (the usb device) to tell it the actual drive type.
Try buying a Floppy Disk controller on E-Bay. I have seen ones with SATA and FD on cards. If you plug one in your computer you can run a Floppy cable to the drive and it will have the controller to handle the sectors and tracks. One drawback if you have newer motherboard with PCIe you will need to get a PCIE to PCI adapter because I have only seen them in ISA and PCI. Also note you may use it but may not boot off of it. I have an old ISA controller card to run an old Iomega ZIP drive on one of my computer. I got it to boot off of the ZIP drive but only if I format the drive with an older computer and using the Windows 3.1 software for the drive.
I'm wondering if its a firmware issue with the USB floppy controller. I would imagine that the firmware handles DOS differently than Windows, which may be why you can read/write floppies in DOS and not Windows.
Correct. The BIOS has extensive emulation routines to make a USB device look like a floppy drive/hard disk/CD-ROM, which is why there are so many options to control this in your BIOS setup screens: they don't have anything like the smarts of a real OS driver, which can properly identify and interrogate a USB device's capabilities. Windows, of course, doesn't use this BIOS emulation (which is violating the USB spec, by the way - multiple commenters explain this in more detail), and trusts that this device that's reporting itself as a 1.44MB, 3.5" floppy drive _is_ what it says it is - and therein lies the real issue.
Ja ...hatte auch schon ewig herum experimentiert. Kaum hofft man, endlich eine USB Lösung gebastelt zu haben, stellt sich heraus, dass die Chipsätze der USB Floppies eben keinen internen Floppy Controller ersetzen können. Viele Programme greifen auf "Hardware basis" auf die Controller zu und schon ist UBS raus. Fängt schon damit an, dass die meisten nicht mal 720kB auf 3,5" erkennen können. Warum noch niemand eine PCI/PCIe Floppy Controller Karte gebaut hat ... unverständlich. Die Nachfrage ist definitiv da. Muss sein eigenes Bios mitbringen, dass sich ans Board-Bios anknüpft bzw. einbindet. Wie IDE/Sata/Scsi Controller.
Would DOSbox allow you to connect to this drive? Might be a good way to bypass the Windows driver issue? This is an amazing idea you have here. As someone who uses a laptop, I have an external optical drive and 3.5 floppy drive to connect via USB whenever I need to, and a 5.25 option would be kind of amazing to have as well.
Although USB ZIP drives exist, get an ATAPI model and the old USB-to-IDE converters to have that work too (let me test it with a newer system first, before you try with that expensive Lenovo P1 Gen 4 - I would be so scared to travel around with that).
As far as I remember back in the day, the amiga 2000 came with a 5" floppy drive and you could format 5" 1.2mb disks and use them just as you could with 1.44mb 3" disks, might wanna try high density disks next.
it really depends on a lot of things like the controller board on the drive the controller board for the USB interface and the motherboard BIOS I'm pretty sure it can be done cause there are some industrial motherboards you can buy that still support 5.25.
Can you call the makers of your 3.5" USB Floppy Drive and suggest a 5.25" USB Floppy adapter version? You proved the principle; now it just need the right microcode.
Sorry bro, but I doubt NEC cares much about building converters for archaic formats the same way we do. You'd have a better success rate hoarding up drives in bulk, servicing them all, and building your own garage factory for the things - you know, after patching the controller. I believe windows is trying to read the disk at the wrong speed. 300rpm vs 360rpm.
The reason issues exists comes form differences by those two drives, 5.25 HD floppy spins at 360rpm and have less sectors per track that 3.5 floppy, 3.5" drive spins at 300rpm, the controller thinks you still have 3.5" drive connected and it kind of a stroke of luck that you could read any disks at all. You propably could have more success by fixing the speed at 300rpm and formatting it as 1.44MB disk.
Very interesting! I've thought about doing this for years but never tried it. I'm glad to see it works! Next time I get my hands on an old floppy drive I"ll have to give it a go. lol Have you tried it with other operating systems like Linux?
There used to be an XP mode for windows7 though not sure if it would work in Windows10 as it did not meet the security requirements of Windows7. Thinking the problem is the USB driver in the floppy controller chip myself but you should try using the original floppy controller for the 5/1/4" and make an adapter cable to convert the edge connector to a male ribbon connector to connect to the interface board and it might just work OK provided the software in the interface can support it.
The motherboard is a lga 775 motherboard which supports 64 bit oses! With one socket for either a 3.5 floppy or a 5.25 floppy but not both! But you can flick the switch to run either one! It also supports ide hard drives!! The motherboard is by made by gigabyte!!!
You have to check the bios to see if it can support both types of floppy 3.5 and 5.25 but on the board the connector can only support one at a time! My lga 775 can support both in the bios!
The blocks and sectors are incorrect. This is a driver problem from Windows that only knows 3.5 USB drives. The BIOS is more flexible there. It sees some floppy via the "USB" connection. And then it looks for the right settings, regardless of which connection the drive came from. The old floppy bus is the same at 3.5 and 5.25 and very simple. All companies have copied that.
No. Even Windows 11 24H2 works perfectly with 5.25" floppy drives (I've seen it myself). What's really happening is that there's no specification for 5.25" floppy drive emulation (and it _is_ emulation) over USB - and even if there was one, the USB cradle is hard-wired to report itself as a 3.5" floppy drive.
well, I would say that it is a driver thingy. You need to write a driver for the FAT12 15track/80 sectors and FAT 12 8+9tracks/40 sectors format for it to work under Windows. It seems that Windows ignores it. a 3" disk has 80 sectors in all possible formats and several sectors numbers that are not compatible with 5".
I still have several 5.25 flop drives, so this should be interesting to try. I don't want to mess with my current USB 3.5 flop drive, so I will have to find another one to rip open. I also have a combo 3.5-5.25 flop drive (that fits in one drive bay), but not sure if the USB controller can handle that type of drive.
That's actually _two_ types of drives. :-) The combo drives had a single interface to the cable, but that interface was split into two on the PCB -- one with a twist (for A:) and one without (for B:), and usually a jumper or two to select which drive was which. Despite the two connections being integrated into the PCB, instead of separate connectors on a cable, it is exactly identical to two independent floppy drives. So if connected to a USB controller that implements the Shugart interface, you would have access to whichever is jumpered to be drive A: and that's it. Just to clarify, most of the small laptop-sized USB floppy drives are fully USB all the way to the drive electronics. The controller is not a standard PC (Shugart) controller, which is why many of those little drives can run at 2x, which a standard PC controller cannot.
@@nickwallette6201 ... I will have to find it, it's a Teac, I believe, to see what the connectors look like. I have not looked at it in maybe a decade. But yeah that would be unfortunate if I can't get both of them seen on one USB, unless I use 2 separate USB controllers (to 2 USB ports), which basically would be the same as 2 separate flop drives.
Is the drive a 1.2M or a 360K one? A green LED on a half height 5.25" *usually* indicates it's 1.2M but I've seen some late 360K drives with green LED and some early 1.2M with red. Then there are the 5.25" 720K drives that are formatted identically to 3.5" 720K.
Full disclosure: I don't know anything about electronics, building interfaces or programming. Having said that... With the right combination of hardware and software, it should be possible to interface virtually any kind of drive to a modern computer. There exists a USB device to connect a Commodore 1541 floppy drive (5.25") to a modern system, and that's a completely different disc format and piece of hardware.
There is KyroFlux floppy drive controller - supports all types of drives and can read disks by sampling magnetic flux... add capacitor and who knows what is possible with this device. Too bad generic 3.5" USB controller doesn't work. Kyro is hard to get and would probably cost fortune. Idea to use enclosure for 5.25 inch drive - brilliant!
Have you tried reading the disk with winimage? I can't consistently read even 3.5 in disks in Win10 anymore, but Winimage is still able to read them just fine. Also, even XP has issues reading 5.25 in disks using an integrated floppy controller, so I'm surprised Win10 is able to get as far as it is.
I tried something similar a couple years ago on Mac OS X, but I ran into similar problems. I think the 5.25 drives need a custom USB adapter board, and not the standard one used for 3.5 inch disks. Hopefully, some hobbyist will make such an adapter some day!
I did this years ago but with a Linux machine and it works some what. I can read but I can't write to it. My guess is the Micro Controller only has the timing set for 720KB/1.44MB disks. The drive controller I used has a USB97CFDC-01 controller that the datasheet claims it can handle 5.25 drives. There is a pin on the controller called HDO and I tried forcing it high and low with no change. I also tried playing with a few other pins to control the RPM and Write Protect. I might give Kyroflux a try but I honestly don't need a 5.25 drive for anything now since I converted my retro machine to use Compact Flash.
I love this video. Others have suggested Linux, which I was thinking too. Instead, two questions. I had an Amstrad 6128 with the 'strange' 3" (flippable SD 180 KB/side) floppy. At one point I also had an external 5¼"floppy. I bought it in Flensburg, Germany, and it may have been a Vortex, but I'm not sure; but I believe it could write to DOS formatted floppies (DS/SD 360 KB or maybe DS or DD 720 KB?), which I was able to read on an AT with a 5¼" HD drive, in CP/M it's max was 80trk DS/DD, and 800 KB formatted. I have kept the Amstrad, but foolishly, I sold the drive. I am unsure which Teac drive it was using - any ideas, and would it be possible to read (just sector-wise, I can deal with the CP/M directory structure and file map from there) other formats using a USB-thingy like this? Also, what would be needed to read (and if possible, write) DEC RX50 formatted floppies, which I have a few of for my DEC Professional 350? (Although I don't know what condition the machine is in, as it hasn't been booted for 25+ years.) I guess this video will attract many very knowledgeable viewers, so I hope it's okay to ask this here.
Hi, I would try the greaseweazle controller. It's pretty cheap and reads the floppies at the flux level. You can connect any shugard based drive, which includes the Amstrad 3" drives, 360kb 5 1/4 drives and 1.2mb 5 1/4 drives (those last two are incompatible, as in 1.2mb drives the top and bottom of the drive aren't written aligned to each other).
please write to me and I send to You a software and all details how to read and write a DEC RX50 floppies to images dump on usual PC under Windows XP/7/10
1.2MB (5.25” with typically 35 tracks) 1.44MB (3.25” with typically 40 tracks) The USB floppy controller is NOT capable of properly reading/writing to a 5.25”
Sorry, thats not correct. 1.2 MB is 80 Tracks per side 15 Sectors per track and 2 sides 1.44 MB is 80 Tracks per side 18 Sectors per track and 2 sides As the boot test from Bios proves, the controller is capable...
Set up a reflective or white dot, if one does not exist, on the bottom of the drive spindle flywheel. Aim a cheap harbor freight strobe-type tachometer up to it. Run it in dos correctly, and again in windows. Note the speeds. I think what you are running into is the drive rpm speed, which is different for 3.5" drives, and between different 5.25" formats. I'll bet you windows is trying to run the drive at 360rpm instead of 300rpm or visa-versa. A 1.2mb drive in dos with the bios correctly configured does this switching automagically, but without being told to do so I bet windows is stuttering. Being able to read the fat on that one disk, but nothing else kinda also makes me think this - the phase shift from being the wrong speed is likely exaggerated as you move down the disk. The FAT exists in the first block, with a backup copy at the last block of the filesystem. Are you picking up what I'm throwing down?
seems like it's only able to read track 0 from windows. If it didnt work in dos mode I would say it's a drive issue. Teac have a big model range of drives among which are exclusively 40 tracks compatible, 80 tracks compatible/300rpm, 80. tracks compatible 360rpm, some of the modes might be configured with jumpers on the drive itself, also windows might expect "disk change" signal to be configured in a specific way on the drive (or left floating by isolating this contact from control board). Density mode might be set strictly on the drive (and is set in the incompatible mode), or might be set to be controlled by the controller pulling pin 2 on the drive high or low for different modes, this signal is sure enough absent on the usb control board.
Well,i got several diff USB 3.5 Floppy drives,Sony,China & DELL ones that were for Laptop internal but include a USB Mini connector on them.Just gotta get some of them Adapters to try them out...
Am building the exact same configuration with now with a 1.2 MB 5.25" TEC drive. Have you figured out a method to get this working as a 5.25" drive in Windows yet?
Might wanna try something like this drive with IMD under a 32 bit windows machine see it you can format it properly and test the disk with CheckIt to see if windows can read it.
There's probably a difference with the way the bios sees the device, probably some raw mode vs the way windows sees it. So probably raw access vs drivers in windows. Maybe you can trick windows in device manager by selecting a different driver. I don't think it'll let you do it in windows 10 but earlier windows will probably let you do that
I want a 5.25" usb floppy drive which I can use like my 3.5" usb floppy drive. But to copy X68000 images (they use 5.25" HD floppies) to via UBUNTU (running thru vm in windows) via, UFIFORMAT. Where can I buy one? Can you make me one of these? Could you please test your solution in Windows while running Virtual Box with Ubuntu and mount the USB drive to ubuntu and see how it works there?
IMO it should be a problem that the USB controller under Windows talks to the sectors of the disk. If you format a USB stick as a bigger size than it has (as a lot of resellers do), then you get also very strange errors.
Common myth. Even Windows 11 24H2 still supports 5.25" floppy drives connected to 82077AA-style controllers. The real issue here is that there's no spec for _USB floppy emulation_ of 5.25" drives: there's only support for three floppy geometries - which are only used on 3.5" media. The BIOS emulation - which DOS uses - was loose enough that it could translate 5.25" media geometry (imagine my shock at seeing BIOSs violating specs, hehe), but Windows correctly follows the USB spec.
@@davidinarkBecause it would have no effect. You're operating under the incorrect assumption that XP has some sort of floppy support that later versions of Windows don't. This is the "common myth" I spoke of.
@@throwaway6478I specifically asked if he had an XP machine, implying XP-era hardware that would recognize the drive. My apologies for not making that clearer.
I wonder if you could mount the 5.25" drive you constructed with DOSBOX since Windows at least seems to see the device. I was able to connect one of the commonly available 3.5" USB external drives to a modern Windows 10 PC running DOSBOX with the MOUNT A A:\ -t floppy command for accessing 3.5" 720K and 1.44MB diskettes and everything worked good directly to DOSBOX with that. If you could get DOSBOX working at least you could do some floppy archiving using a DOS utility to image the floppy.
Have you tried running windows 3.1 inside dosbox? I have a usb 3.5 floppy disk drive that I am able to read and write on using this method. I had to mount the A drive in msdos. I have purchased a 5.25 drive and a grease weasel adapter. I'm hoping to build something very similar to yours. Looks like fun to see if I can get it working
Somebody on stack overflow suggested overriding the default driver for it. Go to Device Manager, select the drive Select "Update driver" Select "Search Computer" Select "Choose from list" Select "Show all devices" (first option in list) Select "NEC Systems" Select "NEC floppy disk drive" (or similar) Install this driver
Wouldn't work. That driver is for floppy drives connected to 82077AA-style FDC controllers, not for drives connected via a USB interface. There are no words to describe how _absolutely and completely_ differently those two work, and a driver for one cannot be used for the other.
Best bet is probably a very old USB floppy drive like the Pentium 1 and Pentium II laptop era of mid-late 1990s for the controller and paired to an early 1990s IDE era 5 1/4 drive. I am sure Commodore still sold 5 1/4 units in 1992 (for use with their PC on a card emulator for use with Amiga 2000/3000 so businesses could copy over archived records into their new system I guess).
Point of fact sloppy drives were used on Windows machines up under early 2000s up until CDs on computers became a thing and you could still transfer files from one Windows computer to another with them even a newer computer with a USB plugin the USB plug-in drive was made for people who have files on an older Windows computer that's running to put on a newer one that doesn't have the drive in it lots of the same files that can be read by an older version of Windows can be read by newer versions of windows even Windows 10 that is the purpose for the creation of such a USB floppy drive that's the way to transfer stuff from a older Windows computer to a newer Windows computer without the ability to put a disk drive and a older computer that doesn't have the software for it and those USB drives are still available today because many people still have operating old Windows computers that they use for specific tasks and then need to copy data off of it to a modern computer you share that information
Saw this in the corner of my eye looking through my yt "feed" and thought... "omg yes" Been thinking the same thing about taking apart a usb floppy and using its controller After watching all the way through, definitely seems like a driver or firmware issue. I wonder if theres a way to update the firmware on the USB floppy controller
Very interesting to see. The beginning with the boot floppy contents makes me wonder whether you could run your PC in a DOS environment though with games and everything as the function is technically given with all x86 based systems.
I tried this once years ago and most of those DOS based games would run too fast to play. I remember years back getting a shareware program to fix that speed issue to be able to play my old games on my new computer. I remember needing to make .bat fi!as to call those PC-XT games up with configurations so that I wouldn't have to do it manually each time.
Does win10 has a 5 1/4 inch floppy icon??? Whatever i have Quake II RTX now :). But i don't have a ray tracing capable GPU! :(. Ef it, Quake II source port will do :\!
There are USB to FDD chips that support 5,25" (1,2M) FDDs according to their datasheet. For example the USB97CFDC-01. You could design a PCB around that. I thought about making that for a while now, but I didn't find the time for that.
There are also ready made USB to floppy adapters available on ebay, so you don't have to take an external floppy apart. For example usb fdd@1306. But I am not sure if it supports 5,25", as they removed the Partnumber from the chip, but it might be a little bit more universal. To Linux it reports as an HDD and not as an fdd like other USB Floppies.
The Problems you are seeing in windows are most likely the result of mismatching geometries. It can read part of the first track, where the bootsector and the root directory reside, but if you grow out of that you run into problems.
The reason it works under DOS could be that DOS is reading the geometry from the bootsector. Windows ignores the geometry in the bootsector and uses the geometry reported by the driver, which probably gets the told the 1.4M geometry from the controller chip.
Yeah. Not even close to an expert, but.. this sound a lot like a driver issue - as in no one intended to support 5.25" over USB, so the ability to actually detect such a drive in Windows, and recognize how to talk to it, is just flat missing. Sort of like if you where missing drivers for a graphics card, and that cards was odd enough that it didn't "quite" work using standard VGA, so Windows was only a) seeing it as a VGA, but also, b) only let you use it in the lowest resolution (despite the standard allowing several others).
An older version of Windows, like those that ran on top of DOS might have worked because you could format disks in all sorts of strange ways on them - even changing number of tracks, number of sectors per track, number of bytes per sector, etc. More modern versions of Windows will also not recognize some of them, and flat out cannot create them, even though the drives should technically allow it. The drivers just flat out don't, since these things are "outside expected ranges".
It does make me wonder though.. what would a version of Linux do with one of these things, since its not quite so beholden to its drivers in the way Windows is, and is often more flexible in handling odd hardware (including stuff that Windows will just flat out refuse to talk to, do to there being no modern drivers for them).
@@patrickelliott2169 At this point I don't think there is any reason to belive, that this is a driver Issue. The Floppy controller has no way of detecting the type of floppy connected and consequently can't tell the driver the right geometry.
Looking at the "USB Mass Storage Class - UFI Command Specification" Section 4.5.3 The floppy type is reported in Byte 2 "Medium Type Code" of the "Mode Parameter Header" in Response to the "Mode Sense" command. If @DOSPedion would run the Mode Sense command I am sure it will report 94h (1.44M). He could try to force it to 93h (1.25M) with the Mode Select command. With the right USB Controller chip, this could be configured on the side of the USB controller, so it would directly report the right type.
Also there is the "Read Capacity Command" (chapter 4.9) It would be interesting what this reports.Maybe it calculates the capacity from the information in the bootblock or maybe it just reports a hardcoded value or it fails.
Also notice that the READ commands use LBA and not CHS. So I don't think it is to important for Windows to know the correct geometry, but the controller needs to know the right media type, because it has to map the consecutive LBAs to CHS addresses. And thats probably where the Windows test breaks with to large files: As long as only LBAs are accessed that map to secotry existing on the 1.2M floppy it works (1.2M has the same geometry as 1.44M, except the number of sectors per track, 15 for 1.2M and 18 for 1.44M). But when he tries to access sector 16, it breaks because it can't be found on the disk.
The explanation why it works in dos would be: DOS uses CHS, which the BIOS needs to map to LBA for the USB UFI Commands. The Controller and the BIOS both think it is a 1.44M disk, so the same CHS on the BIOS side map to the same CHS on the floppy controller. DOS reads the geometry from the bootsector, which causes it to only access secotors till 15, which will also map to valid sectors on the floppy side. So it skipps secotrs 16,17,18, which means it skipps also the LBAs which would map to them, so the controller dosn't try to read them.
My theories can be verified:
Use a hex editor on a working 1.4M disk, change geometry with a bootsector to 19 sectors. Windows should be still able to read it. DOS will report Read Errors or even "Sector not found errors". This proves that DOS is using the geometry from te Bootsector, but Windows dosen't.
Then under Windows or Linux send a Mode Sense command to the contraption with the 5'25" Floppy. It will report the media type of the 1.4M if my theory is right. After sending a Mode Sense Command with tpe 93h the disk should read fine, at least for 1.2M. Maybe the OS will notice the change and adjust the capacity or it will report an read error.
If the Mode Select is not possible for some reason, you can calculate the LBAs of the valid Sectors. Use a tool like dd to only access the LBAs mapping to valid Sectors, they should all read fine.
Another way would be to try to read the wohle thing with "gddrescue". It will show a pattern of errors corresponding to the "invalid LBAs".
The proper solution:
use a USB Floppy controller that allows to set the Media type permanently in Hardware or Firmware.
@@janhofmeier9427 OK. Lot of stuff in there that I only vaguely understand, but.. what I get from it is that you think that the controller card that the drive plugs into is the culprit, in that "it" doesn't understand what its looking at? You may be right. USB negotiation would involve the controller checking to see what the drive is, then "telling" Windows, or anything else using the USB functionality, what kind of device it is, and what it thinks is connected to it.
That said.. this implies that the BIOS, under DOS, not DOS itself would be doing some of this negotiation, and that "it" is deciding what the drive is, and how to talk to it, and a Windows driver is just going to talk to it based on what the USB interface itself "knows" about the device... in which case, it would still be the interface layer in Windows that is "getting it wrong" somehow.
But, like I said, I don't really understand a lot of this, so this is just my guess. Why would the interface, after all, "forget" what it was accessing, and how to do so, just because Windows is talking to the USB hub on the motherboard, instead of DOS, via the BIOS? I would think Windows would have access to "more" information about what it was looking at that DOS does, as a result of this, or that it shouldn't work in either. Its not sitting directly on the system bus, or at least connected to a controller built into the mother board, like it normally would be, its sitting on a USB, "We need to talk this over, and have you tell me what you are.", interface. And it seems bloody odd that DOS somehow has no problem with this, but the controller flips out the second Windows is talking to it, and stops working with the same drives.
@@janhofmeier9427 OK. Lot of stuff in there that I only vaguely understand, but.. what I get from it is that you think that the controller card that the drive plugs into is the culprit, in that "it" doesn't understand what its looking at? You may be right. USB negotiation would involve the controller checking to see what the drive is, then "telling" Windows, or anything else using the USB functionality, what kind of device it is, and what it thinks is connected to it.
That said.. this implies that the BIOS, under DOS, not DOS itself would be doing some of this negotiation, and that "it" is deciding what the drive is, and how to talk to it, and a Windows driver is just going to talk to it based on what the USB interface itself "knows" about the device... in which case, it would still be the interface layer in Windows that is "getting it wrong" somehow.
But, like I said, I don't really understand a lot of this, so this is just my guess. Why would the interface, after all, "forget" what it was accessing, and how to do so, just because Windows is talking to the USB hub on the motherboard, instead of DOS, via the BIOS? I would think Windows would have access to "more" information about what it was looking at that DOS does, as a result of this, or that it shouldn't work in either. Its not sitting directly on the system bus, or at least connected to a controller built into the mother board, like it normally would be, its sitting on a USB, "We need to talk this over, and have you tell me what you are.", interface. And it seems bloody odd that DOS somehow has no problem with this, but the controller flips out the second Windows is talking to it, and stops working with the same drives.
@@patrickelliott2169 The floppy itself is dump, really dumb. It dosn't know anything about itself and it's geometry, so it has no way of telling the controller what it is. If you look at the floppy interface, its very lowlevel. The controller just tells the floppy to spin the motor, step the head, read or write. The floppy won't send "bits" to the controller, when it reads but the raw magnetitation, exactly, like it is on the media. It is on the controller to do the MFM decoding/encoding.
For the Onboard Floppy controller you set the type in the BIOS, so the geometry is known. If you set the wrong type there, you will observe the same behaviour. The only thing, that can be really autodetected is if it is a Double Density (DD) or High Density (HD) media. On the 3,5" this happens through the second hole and a physical switch.
On the USB Floppy the geometry isn't exposed to the OS. The USB Mass Storage Protocol, which is used here uses LBA (Logical Block Address). Every secotor has just a consecutive number. The USB Floppy controller maps this LBA to the corresponding cylinder, head and secotor (CHS). Because the Controller here thinks it is a 1.4M one it thinks it has 18 sectors per track , but the 1.2M just has 15 per track. So it tries to access an sector that doesn't exist if you request LBA 15,16,17,33,34,35 and so one. You will see this under any modern OS. Linux, Windows, OS X. Probably even Windows 9x (if it dosn't use the MS-DOS compatibility mode to access the BIOS device, instead of the WIndows Protected mode driver, but thats another story).
MS-DOS doesn't know about LBA, it just knows the CHS format. So the BIOS has to emulate that. It maps the CHS to an LBA using the geometry of an 1.4M disk. It would run into the same Problem if the BIOS or DOS would for example request Cylinder 0 on Head 0 Secotor 15 (counting from 0). This maps to LBA 15, which then maps again to 0/0/15 in the floppy controller. But the BIOS just has to read Sektor 0 from the Floppy and then executes it. This is called the Volume Boot Record. This has then the code to load the next sectors for the boot programm and then find IO.SYS. So this is all MS-DOS Code. And the Bootsektor can always be read, even with wrong geometry. because even with the wrong geometry seotor 0 on head 0 on cylinder 0 is alwas the same. If you look at "Design of the FAT file system" on Wikipedia and Scroll to the Bootsector (VBR) you will find that it has a BIOS Parameter Block (PBP). At offset 0x15 in this Boot sector, there is something called "Media descriptor". This Media Descriptor tells DOS the type of floppy. If you scroll further down, you find on offset 0x18 "Physical sectors per track for disks with INT 13h CHS geometry". If you use the hexeditor of your choice to look at this offset, you will find an 18 there (or 12 in hex) for a normal 1.44M floppy. DOS Will use whatever you put there. If you change it to 19, you will find that DOS has trouble reading the disk, for me it just says there are no files (probably because it doesn't find the root directory anymore) but any modern OS, like Linux or Windows can still read the Floppy because the BPB is deprecated, so they just ignore it.
The only clean solution is to have an USB Floppy controller, which can be set to the right geometry, either in hardware throgh some pins or by flashing a custom firmware.
Ironcly this could potentially cause problems in DOS, depending on the quality of the BIOS. If the BIOS uses the geometry reported by the controller, it will work fine, but if it has the 1.4M geometry hardcoded, it will then still skip some LBAs...
So... FWIW, I think the reason it works (with high density disks) in DOS is a lucky combination of the real-mode USB floppy drive shim in your computer's BIOS being "well behaved" and the firmware of that USB floppy controller being "well designed", not because the controller itself explicitly "knows" anything about 1.2MB floppy drives. The semi-abridged version is if you read the API documentation for USB floppy drives you'll find that they really don't "emulate" a real floppy disk controller from the computer's point of view: the low-level floppy control functions are entirely run by a microcontroller embedded in the USB dingus and it presents a "block mode" interface roughly similar to a hard disk or USB flash drive. I think the reason it's working is when DOS makes the INT13h call to the BIOS handler for the USB drive it's sending an IDENTIFY command to the drive and the drive controller, instead of answering with a canned geometry, is checking the mounted disk to see if it's formatted and if so if it can reconstruct the geometry from what it actually reads. 1.2MB and 1.44MB floppy drives use the same data rate, so the controller is successfully seeing "bits", and it's apparently also successfully at reading those bits well enough to determine that the currently mounted disk has 15 512 byte sectors per track, which it's reporting back to DOS without trying to second guess it. As long as DOS also doesn't second guess anything and is willing to use the geometry as reported then, sure, it's going to work okay, at least on already formatted disks that are identified correctly.
(A contributing factor to this working may be that there is actually a "standard" 1.2 MB format for 3.5" drives; some Japanese computers from the late 80's through the 1990's used 360RPM drives, and the format for that is one of the three "pre-baked" formats codes defined in the UFI API format. That format uses different size sectors, however, so it's not like the disk controller is "mistaking" the 1.2MB 5.25" floppy for one of those, exactly. But it may be that 360RPM support that's keeping it from throwing an error related to the timing of the index sensor?)
I'm curious what happens if A: you try formatting a disk after booting DOS off the floppy drive, and B: if you boot from something else with the drive empty and then run "SI" to see what it thinks the floppy drive is, or if it sees it at all. My guess in the latter case either SI isn't going to see the drive at all or it'll simply report the drive size as whatever readable media is present.
As to why modern Windows doesn't work, well, I guess you'd have to ask a Windows developer, because in the case of high-density disks it appears it *is* trying to second guess the reported geometry. If it just took the drive's word for the "shape" of the mounted media there shouldn't be a problem, it should work as well as DOS does. Maybe Windows' driver explicitly sets media types when it interacts with the drive, it looks like that's an option, manually probing to see if it's a supported type?
As for it "kind of" working with low-density media in Windows, I think what you're seeing there where it looks like a tiny file can be successfully created is just an artifact of filesystem caching, I'm sure the drive doesn't know anything about how low-density media is supposed to be double-stepped. An interesting experiment if you have a "real" DOS computer around would be to put a custom 720k (80 tracks of 9 sectors) format onto a 5.25" floppy and see if that *does* work completely under Windows. (Google "2M" or "FDFORMAT", I think either of those will work to put the format on there.) The result should work just like a 720K 3.5" disk, and since it's clear from your experiment that the drive can figure out when a low density format is present you might be golden. But since that wasn't a standard BIOS-supported size back in the day it doesn't help you a lot.
Professor! Good to see you, my friend.
I’d also be curious as to what ImageDisk from David Dunfield says about the drive while under DOS.
I'd also like to see modern Linux kernels try to interface with this thing; you could probably see what size block device the USB dingus is exposing.
@@SuperSmashDolls That was what I was thinking. Linux might have some entirely different ideas about what it sees. Doesn't mean it will work correctly either, but would be interesting to see.
I haven't ever looked up how USB floppy support works, so the LBA translation is news to me. But that makes sense. If I had to guess, I would bet that the IDENTIFY command actually returns a 1.4MB drive, but DOS may only use that when asked what kind of drive is present -- which is probably only relevant when in a handful of cases, notably when formatting a blank disk. DOS seems to obey whatever is in the media descriptor byte first and foremost, and resorts to hardware identification only if it cannot determine the disk format by the contents of CHS 0,0,1.
I'm really curious what would happen if you try to format an empty disk...? (It would have to be unformatted, not just empty, so there's no existing media descriptor byte.) It would be interesting to see what happens when given format /u (with no capacity switches, and thus left to auto-detect via hardware), and also what it does when told explicitly to format at 1.2MB and 360K.
Found my way here through twitter. Subbed, this is so cool!
Followed this guy in here. Subbed as well.
@@outsideguide legend
Also via Twitter. :-)
Hi there! I really like your experimentation of the 5.25 USB floppy drive.
I feel there might be a reason why the 360kb drive might not work in the setup for reading double density disk...
In the past, I had experimented with connecting the traditional floppy drives to the standard floppy disk controller. One experiment I did was that I told the BIOS that drive A contains a 360k 5.25 inch floppy but instead installed a 720kb 3.5 inch floppy drive in its place. The data transfer worked perfectly well since the drives technically had the same data transfer rate between the two drives...
However, when I swapped the settings to a 720kb 3.5 inch floppy drive but connect a 360kb 5.25 inch floppy drive to the computer instead, the transfer no longer works. I discovered the reason why the setup did not work was due to the speed of the control signals being transferred. The first setup worked since the computer sent control signals slower than what the drive could handle, so the 720kb floppy drive could be used. However, doing the opposite setting does not work as the computer now sends the control signals faster than the drive could synchronise with.
I'm not sure if the above information may help you with the research on developing a floppy drive controller using the USB method
Ask Dave from the channel „Dave’s Garage“. He is a retired MS Software Engineer.
It has nothing to do with Windows. On DOS, the USB Floppy emulation in the BIOS is doing the heavy lifting - that's why it works. You'll hear plenty of people parroting that 5.25" floppy/1.2MB floppy/floppy support in general was removed in Windows , but in reality, if your motherboard and BIOS supports 5.25" drives, they work perfectly even on Windows 11 24H2.
OMG! I've forgotten just how noisey those drives used to be... at least it works! Great Experiment.
Thank you for your video, this is most helpful.
It's also a shame that nobody bothers to make brand new 3.5/5.25 combo drives for archival purposes, finding NOS working ones is next to a joke and purchasing a reliable used one is right next than having winning the lottery...
As far as I know, FDs don't have an auto-recognition to tell the computer whether they are 5.25" or 3.5". You would always have to set this in the BIOS, and the OS would take this information from there.
If your mainboard's FD-Controller and BIOS still support 5.25" drives, Windows 10 actually recognises the drive as a 5.25" drive and it works just fine.
There are very few mainboards though that support both 5.25" FDs and Win10.
I think those were late Pentium 4 boards.
There are videos on RUclips of people running internal 5.25" drives with Win10.
If you'd manage to reprogram the controller board, then theoretically that should work, although I'm not sure if any USB FD-driver supports 5.25" drives. I don't know if Windows uses different drivers for USB FDs and internal FDs
Works fine on Windows 11 24H2, too. It's just not well-known, since the minimum requirements for Windows 11 vastly post-date integrated floppy controllers.
I still have an old 5.25" drive myself. Back when I was a teenager, I installed it in my computer (but never used it ^^). Back then, under Windows XP, the 3.5" and 5.25" drives were still displayed correctly.
Maybe try an installation of Windows XP. Test it in a VM where you can pass USB through.
The other way round, you could look for a new - old mainboard that still has a disk controller incl. port and install Windows 10 there.
If it doesn't work even with the native hardware, then it's certainly the driver :)
Then something else - a few months ago I found someone here on RUclips who got an old 8" floppy drive to work with DOS, maybe you can exchange ideas with him.
You're referring to Adrian's Digital Basement, no?
@@alexdhall Yup, I just looked for the video again - it's the right channel :)
lol I just commented 90 percent what you just recommended be for I read your comment.
Added 2 years later, but still worth to be mentioned: You can use the described device compilation at least to read and write 720KB 5.25" floppy diskettes, e.g. using a modified TEAC FD55GFV or a TEAC FD55FV. These 720KB formatted 5.25" QD or DD diskettes were not commonly used, but existed. To read/write them on an older PC (e.g. an Intel 486 PC), you have to use not only MSDOS, but additionally also a small utility (the diskette copier software VGACOPY contained the utility named "VGAREAD", but there were also an utility which came with FDFORMAT named "FDREAD" and another one which was named "800"). To format them, you can also use the FORMAT program with the command line parameter /T:80 /N:9 (not with Windows, but DOS).
It definitely is the conversion hardware you're using that's specifically-made to be recognized as a 3.5" drive. What you'll need to somehow do is change whatever signaling / ROM the hardware is using to tell the device it's plugged into what drive it is.
Pretty nostalgic seeing one of those again. I have almost forgotten about how noisy those things used to be. Haha!
I've wanted something like this for years! I was actually considering learning FPGA development to make it happen but that's way above my pay grade. Judging by the fact that the bios/DOS handles it fine but Windows doesn't, it has to be a driver issue. Maybe someone who knows how to write drivers can help us out, or maybe the existing driver can be tweaked.
I just bought two different VST USB floppy drives, in the newer model you can see two distinct chips through the transparent shell. The older model has a date code of 1999 but I cant see the circuit board. I cheaped out and bought an adapter from ebay where the 34 pin is female, it's shipping from China so my experiments may have to wait a while. I'll keep you posted!
soon enought there's going to be a cheap solution (arduino based) that will interface fdd's to a modern pc by the means of dosbox
@@iminthatweirdpartofyoutube2687 how it’s going?
Nice :) There is the greaseweazle controller, but at the moment you can only read the whole disk - a driver that let you access the disks as block devices would be a good next stage.
@@iminthatweirdpartofyoutube2687So, did your experiment work?
You can handle 360K (DD) drives with this rig by using a 360K (48 tpi) floppy. The adapter will treat it as a 720K, which happens to use the same 300 RPM spindle speed and track layout (9 sectors of 512 bytes) at the same 250Kbps data rate.
Where you run into trouble with a HD 5.25 (1.2M) drive is that the spindle speed is 360 RPM. You could, of course, re-jumper that Teac drive to use 300/360 RPM dual-speed, but it won't double-step for 360K disks.
Hope that solves a bit.
The weird thing is, that under MSDOS and Freedos the 1.2M media work just fine. It only under the newer OSes that the drive only reads double density media and that only with partial success.
@@dospedition4207 That figures--the data rate of a 1.2M disk spinning at 360 RPM is exactly the same--500Kbps--as a 1.44M one spinning at 300 RPM. I take it that your board probably uses the SMSC USB-to-floppy chip. Datasheets are still available.
@@dospedition4207: Everything but the 1.44Mb format was depreciated from Windows XP on - I have a dual-boot XP/DOS system that can only reliably work with the 720Kb diskettes (meaning both read, writes, and formatting) under DOS, same physical drive.
I wonder if a quad density (720K) 5.25" disk would work. They weren't very common and I don't if all 1.2 MB drives support it or if you can format high density 1.2 MB disks to that geometry since people report using 1.2 MB disks as 360K is iffy.
@@IBM_Museum I think "deprecated" only in the sense that the user had to specify the format parameters. For example, on my XP system FORMAT A: /N:9 /T:80 works just fine on a 3.5" DD drive. There were some cost-reduced USB 3.5" floppies that supported *only* the 1.44M format, however. That wasn't XP's fault.
Out of curiosity, can you format a fresh floppy? I suspect it will format it as either 720 or 1.44. Won’t be readable by other 5.25 DOS machines but might be readable in windows.
Windows 10 has full support for 5.25" floppy drives when they are connected to a real floppy controller on the motherboard .
The problem is that the firmware on the USB floppy controller reports a 3.5" 1.44MB floppy over the USB connection.
It seems works in dos because the BIOS probably doesn't care about what the controller firmware tells it, but any windows OS follows the USB specifications fully and listens to what the firmware has to say about the type of floppy drive.
I read about the 5.25" support in Windows 10. When I revived my old Asrock mainboard with native floppy support it did not want to cooperate with a 5.25" drive. It always reported a 3.5" drive. And the weird thing is, that that very same motherboard used to work with my 5.25" drive when I used it with Windows 7 years back. Perhaps a BIOS upgrade somehow broke the support...
So: Someone needs to take a microcontroller that can speak USB and has enough I/O and properly implement the correct USB mass storage removable drive spec and bit-bang the floppy drive, and the Windows driver will probably work with it.
Works for me! Break out the soldering irons and the rpi2040s!
@@dospedition4207 just use windows 7 then.
@@knghtbrd Lady Ada has been playing with this over at Adafruit -- see ruclips.net/video/a6rZtZzKvGc/видео.html
The issue isn't the firmware. It's the USB spec for floppies only includes support for 3.5" discs due to the spec only supporting 3 combinations for the number of tracks, sectors, heads, etc.
Is it possible to buy a similar product anywhere? I am looking but I can't find it.
The difference between the different "IBM" floppy types (IBM format 1.44M, 720K, 1.2M, 360K) is all about the timings. The fundamental operation of 3.5 and 5.25 drives is the same, and the command set is exactly the same (basically: activate motor, step to next track, and single data channels for reading/writing). The "data" the drive returns is just a pulse every time the magnetization ("flux") changes. Data is coded on the disk in MFM, meaning there is always at least one pulse for every "bit" stored.
There are a number of tracks to step through (80 tracks for 1.2M and 1.44M, per side) and a track consists of 512byte sectors, each with a small header area, and between sectors is a sync zone filled with a standard synchronization pattern to allow the controller to match the data rate. (Hence why a 1.44M floppy is technically 2.0M "unformatted"; over 25% of the disk is taken up by the sync zones. The Microsoft DMF format reduces the length of the sync area to fit 1.68M on a disk).
Switching between tracks is dead simple. Reading a track is where the timing problem lies. The amount of sectors, and the length of the sync zones, have "expected" "standard" values. Old controllers were more "dumb" and hence more tolerant of different timings. That's why MS was able to use 1.68MB floppies to distribute some of their software.
All of this is to say: There is no reason why a controller for a 1.44M drive can't read a 1.2M 5.25 disk. The only problems come from "artificial" restrictions on the controller, driver, or OS. For example, the driver might panic when there aren't "enough" sectors on a track (1.2M has 15 sectors versus 1.44M has 18) and decides that the disk is "bad". Or it might be confused by a sync area that's too long or too short. Or it tries to match the data rate according to the sync, but the timing is too far "out of bounds" (that were artificially programmed anyway).
My question: What happens if you try to format the 5.25 disk in Windows? Does it become usable from that point on? Does the format fail?
Isn't this also a matter of drive type? Specifically whether it support 80 tr/in, 96 tr/in, or both? (Am I wrong in guessing that that's why the Teac FD-55FGR is best/most flexible?)
@@lhpl Distance between tracks must be handled by the drive itself. The controller has no concept of the physical track distance. There are only two track-related signals issued by the controller: STEP (which is pulsed to advance to the next track) and DIRECTION (which is held high or low to select outward or inward track stepping).
@@softy8088 I see. I'm not sure if you are kindly correcting me, or just adding more information, but I think my comment clearly showed how little I know. I'm not even sure, but I think I was confused about number of tracks (40, 77, or 80?) and tracks per inch. I clearly have to read up on this matter.
@@softy8088 oh, another thing: when I had an external 5¼" drive for my CPC6128 (1986-1993 or so), it had a physical switch. I seem to remember that it switched between 40 trk mode and 80 trk mode, would that make sense?
@@lhpl Yes, that makes sense. Track switching is handled by drive hardware. I was just trying to answer your question in the context of the video: The USB controller has no sense of track spacing. The drive itself must know where the tracks are. I wrote a longer reply but it looks like youtube removed it, possibly because I included links to some documentation.
The problem is the USB controller. It does not support the proper control parameters to handle a 5.25" drive, and it tells Windows that the drive is 3.5", so Windows assumes all the wrong parameters.
Electrically and from the command and control structure (read/write commands etc.), 3.5" and 5.25" FDDs are the same. The difference is only a different connector and different parameters (number of tracks, number of sectors per track, etc.).
In the old days there were 720 KB (double sided, double density, 80 tracks) FDD in both 5.25" and 3.5" versions. You could actually exchange the 5.25" by the 3.5" version and vise versa and it worked fine.
The 8-bit Z80 based computer I had at that time supported a number of different FDD formats, from 40 tracks single sided/single density (90 KB of storage) up to 80 tracks, double sides/double density (720 KB of storage). You just had to indicate which type of drive was connected. When you set it to 80 tracks, double sides/double density, you could use either a 5.25" or 3.5" FDD.
I always wondered why no 5.25" USB drive was ever produced by the industry. It is just a question of using the same controller you use for 3.5", but just using different drive parameters. And of course having an external PSU (like the build in the video), as normal USB cannot power a 5.25" FDD.
I have considered trying to create an USB 5.25" FDD using a Raspberry Pi to control the drive and just do everything in software, so basically emulating the floppy disk controller by a Raspberry Pi. On the Windows side, you could either try to have a 5.25" floppy drive (Windows may need a driver) or emulate a 1.2 MB USB stick to trick Windows.
Final remark: many kudos for your effort!
The BIOS has to support it first, then Windows has to contain the diskette drivers for all four drive types. The driver has to support the appropriate driver for the diskette for the FAT for the directory.
You need to find the source for the old Win Diskette drivers and recompile them for 64-bit, then install them into the modern Windows system.
bios support is not required because it's just a USB device. he already showed it booting from being off and just powering it on and it boots to dos just fine. This is a modern-Windows driver problem.
@@johnbos4637 I have yet to be able to wrap my head around the fact we cannot get the collective hobbyists to put together an actual working read/write 5.25 solution that reads/writes natively without images. I know the USB standard doesn't support it, but so what? There are plenty of proprietary USB devices with custom drivers etc, so what is holding back the development of an actual USB 5.25 floppy? Some say demand, but it is VERY evident (especially lately) that there is a huge demand for such a native solution. Ideally, an external shell with the pcb and power with connectors inside. USB and standard power plug on the outside. Or heck, even a brick 12v adapter would be suitable. I don't know enough to even begin, but it is obvious there are plenty of people who are.
@@johnbos4637Sorry dude, but nearly everything you said was wrong. It's maddening that posts like yours get so many upvotes.
_bios support is not required because it's just a USB device_
Quite the contrary, under DOS, extensive emulation is done by the BIOS to make the USB device look like a floppy drive. It's why you have multiple options in your BIOS setup screens controlling how USB devices are presented to the system, because BIOSs don't have anything like the smarts you find in a real OS driver for identifying USB devices, or interrogating their capabilities.
Further, there's no spec for emulating 5.25" drives over USB (there are 3 supported geometries, all of which were used on 3.5" media) - it's just that whoever wrote the BIOS was lax about the emulation code, so by pure accident, it works - a shortcut Windows (and any proper operating system) isn't taking.
_This is a modern-Windows driver problem_
Again, completely wrong. Even Windows 11 24H2 supports 5.25" floppy drives connected to 82077AA-style controllers - I've seen it working perfectly myself. The issue here is that it's a USB device, which - as alluded to above - words cannot convey how _absolutely, completely and ridiculously_ differently it works to an old-school floppy controller.
Quite simply, Windows has _never_ supported this configuration _at any point in history,_ though it may have worked on Windows 9x using MS-DOS Compatibility mode, because it would be falling back to the (USB spec-violating, reminder) emulation code in the BIOS. This however never worked under NT (which every version since Windows Me is), as it's not using the BIOS emulation, and trusts the device to report accurately what it is.
TL;DR: this device is reporting itself as a 1.44MB floppy drive, there's no specification for it to report itself as a 1.2MB drive, and none of this has anything to do with Windows.
Funnily enough, the top recommended video from this one is an LGR video from 10 years ago about a USB floppy controller by Kryoflux. It seems to be intended for imaging floppies for archival purposes rather than used as a mass storage device, though.
Getting modern machines to read 3,5'' floppies is a trifle, 5,25'' though is really tricky. But there are motherboards that let you run Windows 10 while supporting 5,25'' floppies easily
Maybe the information in the USB Device Descriptor says that this is a 3,5 inch floppy. So it is maybe a problem of the firmware of the controller. I am not that deep into USB Programming, but i wouldn't wonder if there are any settings which can be made upon the media types the device is capable of, and it is possible that the designers of this particular usb floppy drive fixed this descriptor to 3,5". I don't know if this is fixable, but probably not, because its possibly in the firmware of the controller.
I’m sure someone else has posted this, however the chipset in the USB drive you took the PCB from very likely, if not definitely, does not support 360K drives/media. Some chips support a 1.2MB format, which was popular in Japan on 31/2 inch drives, however 360K has been a known showstopper with this method.
One thing about technology from that era. The jumpers on the control boards were very important. They enabled or disabled certain feature sets in the device and you have to make sure you know what the jumpers are what they mean and what features you need to turn on and off. It usually looks like two pins straight up with little plastic box between them sometimes two pins sometimes three pins sometimes four and they were usually labeled one through four or ABCD.
Years ago I came upon a broken USB floppy drive, the fault appearing to be mechanical, so it's been sitting in my junk box ever since, hoping to do something similar to this. Maybe time to get it out and have a look.
I did some research about the floppy drive controller chips used in the USB floppy drives. Some of these products used the USB97CFDC2-01 controller chip for interfacing the floppy drive to the USB port. According to that chip, it is possible for it to work with the special Japanese formatted floppy disks that somehow used 1.2mb floppy disks that were in 3.5 inch format. I'm not too sure if there is way to modify one of these chips to think it is reading these special formatted 1.2mb floppy disk formats. If it is possible, perhaps one can interface a high density 5.25 floppy to it and the system may work.
Do you know of a specific product name?
@@bushman3168 some of the Dell latitude series floppy drives uses these chips. Those with the mini USB ports on the side. Ive seen some with these chips and others with some proprietary Sony controller
@@orcatype225 do you know if theres a site where I can check their schematics and see what chips they use?
@@bushman3168unfortunately I’m unsure of a website, but I do know how they physically look.
If you look at the top of the floppy drive and the metal cover does cover the entire top part of the drive, it is the one you are looking for
If there is parts where the cover does not cover, around the docking ejection mechanism, then it is not the drive you are looking for
This may work, as that format used the same geometry (80 tracks, 15 sectors) as 5.25" drives - though there's often more to a disk format than just track and sector counts. It wouldn't stop the USB device reporting itself as a 3.5" drive however, and wouldn't support 360KB floppies at all, which would irritate some people.
Do you have a link to buy the enclosure or a model number and manufacturer?
in theory, it should work fine on DOS and win xp .. w7 and later doesn't have a 5.25 device drivers built in (i think). also 5.25 (it draws a lot of current @12vdc) better use external PC PSU for it..
I suspect it's identity as a 3.5" drive is flashed into the firmware of the usb board. Accessing it via the bios to boot of it probably ignores that and uses some older, lower level way to determine that which Windows does not.
It would be very interesting to see what it does under Linux.
I built something similar myself using a Greaseweazle board (similar to Kryofkux, less expensive and open source) and an old SCSI enclosure and one of those 5.25/3.5" combo drives.
Like you said, it's not a native experience, it only works through an app that reads and writes images. BUT it does have advantages too. I was able to rescue the data off an old 3.5" disc that was damaged and otherwise unreadable. Also it can read many non pc formats.
From what I remember, 5.25" drives came in a variety of standards. Is it possible to find a SCSI one and connect it into an external USB SCSI cage?
There's also another option. I have an adapter you can buy off Amazon that connects to an internal 3.5" floppy connector and converts it into USB. Perhaps connecting that to a 5.25" drive would yield more successful results. That adapter is currently working for XP, 7, and 10 with no drivers needed.
IIRC there were SCSI floppy drives in some Sun workstations.
This post needs more upvotes, since it's the most likely to work. Windows has an entirely separate driver for SCSI floppy drives (sfloppy.sys), which wouldn't be hemmed in by the limitations of the USB floppy emulation specification - depending on how smart the USBSCSI case is, you'd just send it native SCSI commands over UAS.
Have you looked closley at the board and chip of the usb->floppy adaptor? There may either be some kind of internal registers to tell the chip what to identify as, or data stored on an eeprom/flash that stores basic info about the drive to the PC that could be changed to show up as a different drive.
Try making a couple of 3.5" -type formatted disks on 5.25" disks. Basically, take a retro computer with a 5.25" 1.2M floppy drive, then set the bios to think it's actually a 1.4M 3.5" drive. When you boot the computer, format one 5.25" floppy at 1.4M size, and format another at 720KB size. Then go back to your USB floppy drive, see if Windows 10 recognizes those floppies you formatted. If it does, Windows 10 driver must be hard wired to read 720k and 1.4M diskettes even when a 5.25" floppy drive is hooked up.
Without any digging into it, I'd have to assume that the drive controller and windows do a usb handshake that initializes it as a 3.5 disk drive. If you can fake out the handshake to be a 5.25 inch drive somehow them it will likely work natively. Perhaps that is why booting to it works, since the drive controller might have a separate primitive control function when accessed via bios.
For backwards compatibility reasons, surprisingly windows 10 still supports 5.25 inch drives natively. So theoretically it'd work if faked out.
Not really - not across USB, anyway. While it's true Windows has always supported (and knowing Microsoft, always will) floppy drives connected to 82077AA-style controllers, the spec for USB floppy _emulation_ (and it _is_ emulation - it's built into the BIOS, hence why it works under DOS) only specifies 3 geometries - and all of them were used on 3.5" media.
Short of violating the USB spec (which is what the BIOS emulation is doing), or going all in and presenting the drive as a USB Mass Storage Class device instead of a floppy drive (with all the extra lifting that entails), there isn't any "clean" way out of this.
@DOSpedition
Could you tell me which program you use, the one on the same floppy disk as VGAspeed.
I can't see if it's SI.EXE or SL.EXE
Thanks
One thing I'm curious on with your 'helloworld123!' file working is my theory is that the current driver is only able to access the first 'sector' of the drive. So you probably are able to access the first 4kb of space on the drive, but as soon as it hits this space it doesn't know how to read any of the other tracks. I'm curious if you changed the track size, or something if you'd be able to access more, and I'm curious as well if you ran something like a very very very very tiny game in that sector if you could run that program.
That being said as others said if you try loading the driver or somehow were able to write your own driver it may work. You might be able to fudge it with a similar enough driver.
Have you tride formatting a 5.25 from the pc ? What's the results ? But from what I remember is the format for a 5.25 is MFM !
disk drives on a pc need to be configured for their actual size. you are pushing a 5.25" drive with the 3.5" floppy size..so it will work right up until you run out of space as 3.5" is 1.44mb and 5.25 is either 360k or 1.2mb .. the controller needs to be modified (the usb device) to tell it the actual drive type.
I can read/write floppy disks on my phone because of USB and I think that's pretty fantastic.
Also, did you try it on Linux?
The same problem may exist with attaching In a drive that is not reporting correctly.
Try buying a Floppy Disk controller on E-Bay. I have seen ones with SATA and FD on cards. If you plug one in your computer you can run a Floppy cable to the drive and it will have the controller to handle the sectors and tracks. One drawback if you have newer motherboard with PCIe you will need to get a PCIE to PCI adapter because I have only seen them in ISA and PCI. Also note you may use it but may not boot off of it. I have an old ISA controller card to run an old Iomega ZIP drive on one of my computer. I got it to boot off of the ZIP drive but only if I format the drive with an older computer and using the Windows 3.1 software for the drive.
I'm wondering if its a firmware issue with the USB floppy controller. I would imagine that the firmware handles DOS differently than Windows, which may be why you can read/write floppies in DOS and not Windows.
Correct. The BIOS has extensive emulation routines to make a USB device look like a floppy drive/hard disk/CD-ROM, which is why there are so many options to control this in your BIOS setup screens: they don't have anything like the smarts of a real OS driver, which can properly identify and interrogate a USB device's capabilities.
Windows, of course, doesn't use this BIOS emulation (which is violating the USB spec, by the way - multiple commenters explain this in more detail), and trusts that this device that's reporting itself as a 1.44MB, 3.5" floppy drive _is_ what it says it is - and therein lies the real issue.
From 4:17 to 4:32 you load a DOS program on which I'am interested. Whats the exact name of this program? Many thnaks.
Hardware id is causing windows to use the wrong io driver? Perhaps alter the dev id?
Ja ...hatte auch schon ewig herum experimentiert. Kaum hofft man, endlich eine USB Lösung gebastelt zu haben, stellt sich heraus, dass die Chipsätze der USB Floppies eben keinen internen Floppy Controller ersetzen können.
Viele Programme greifen auf "Hardware basis" auf die Controller zu und schon ist UBS raus.
Fängt schon damit an, dass die meisten nicht mal 720kB auf 3,5" erkennen können.
Warum noch niemand eine PCI/PCIe Floppy Controller Karte gebaut hat ... unverständlich.
Die Nachfrage ist definitiv da. Muss sein eigenes Bios mitbringen, dass sich ans Board-Bios anknüpft bzw. einbindet. Wie IDE/Sata/Scsi Controller.
Would DOSbox allow you to connect to this drive? Might be a good way to bypass the Windows driver issue?
This is an amazing idea you have here. As someone who uses a laptop, I have an external optical drive and 3.5 floppy drive to connect via USB whenever I need to, and a 5.25 option would be kind of amazing to have as well.
Although USB ZIP drives exist, get an ATAPI model and the old USB-to-IDE converters to have that work too (let me test it with a newer system first, before you try with that expensive Lenovo P1 Gen 4 - I would be so scared to travel around with that).
As far as I remember back in the day, the amiga 2000 came with a 5" floppy drive and you could format 5" 1.2mb disks and use them just as you could with 1.44mb 3" disks, might wanna try high density disks next.
Great Job! Well done!
May you share more about the build process?
it really depends on a lot of things like the controller board on the drive the controller board for the USB interface and the motherboard BIOS I'm pretty sure it can be done cause there are some industrial motherboards you can buy that still support 5.25.
Can you call the makers of your 3.5" USB Floppy Drive and suggest a 5.25" USB Floppy adapter version? You proved the principle; now it just need the right microcode.
Sorry bro, but I doubt NEC cares much about building converters for archaic formats the same way we do. You'd have a better success rate hoarding up drives in bulk, servicing them all, and building your own garage factory for the things - you know, after patching the controller. I believe windows is trying to read the disk at the wrong speed. 300rpm vs 360rpm.
The reason issues exists comes form differences by those two drives, 5.25 HD floppy spins at 360rpm and have less sectors per track that 3.5 floppy, 3.5" drive spins at 300rpm, the controller thinks you still have 3.5" drive connected and it kind of a stroke of luck that you could read any disks at all. You propably could have more success by fixing the speed at 300rpm and formatting it as 1.44MB disk.
Very interesting! I've thought about doing this for years but never tried it. I'm glad to see it works! Next time I get my hands on an old floppy drive I"ll have to give it a go. lol Have you tried it with other operating systems like Linux?
Same for me, glad to see someone did it properly :3
@@W4ReLL Yeah, I've also thought about taking a couple of Apple II 5.25 and somehow adapting them to USB.
There used to be an XP mode for windows7 though not sure if it would work in Windows10 as it did not meet the security requirements of Windows7. Thinking the problem is the USB driver in the floppy controller chip myself but you should try using the original floppy controller for the 5/1/4" and make an adapter cable to convert the edge connector to a male ribbon connector to connect to the interface board and it might just work OK provided the software in the interface can support it.
there is always VirtualBox, I use this on my Windows 10 to use a Windows XP environment. Even have USB redirection for an Ethernet adapter.
Is the drive powered by usb or dose it have an external power supply?
I have a 5.25 floppy connected to one of the last motherboards that support 3.5 and 5.25 floppy drives! Which runs my retro system!
It runs winblows 10!
What are the specs on that PC? Do you have a model number or anything to help me track down a similar?
The motherboard is a lga 775 motherboard which supports 64 bit oses! With one socket for either a 3.5 floppy or a 5.25 floppy but not both! But you can flick the switch to run either one! It also supports ide hard drives!! The motherboard is by made by gigabyte!!!
@@lorderectus1849 Thank you. I recently bought a LGA775 system with a floppy connector but it only wants to support 3.5". I will keep looking!
You have to check the bios to see if it can support both types of floppy 3.5 and 5.25 but on the board the connector can only support one at a time! My lga 775 can support both in the bios!
The blocks and sectors are incorrect. This is a driver problem from Windows that only knows 3.5 USB drives.
The BIOS is more flexible there. It sees some floppy via the "USB" connection.
And then it looks for the right settings, regardless of which connection the drive came from.
The old floppy bus is the same at 3.5 and 5.25 and very simple. All companies have copied that.
No. Even Windows 11 24H2 works perfectly with 5.25" floppy drives (I've seen it myself). What's really happening is that there's no specification for 5.25" floppy drive emulation (and it _is_ emulation) over USB - and even if there was one, the USB cradle is hard-wired to report itself as a 3.5" floppy drive.
well, I would say that it is a driver thingy. You need to write a driver for the FAT12 15track/80 sectors and FAT 12 8+9tracks/40 sectors format for it to work under Windows. It seems that Windows ignores it. a 3" disk has 80 sectors in all possible formats and several sectors numbers that are not compatible with 5".
I still have several 5.25 flop drives, so this should be interesting to try. I don't want to mess with my current USB 3.5 flop drive, so I will have to find another one to rip open. I also have a combo 3.5-5.25 flop drive (that fits in one drive bay), but not sure if the USB controller can handle that type of drive.
That's actually _two_ types of drives. :-)
The combo drives had a single interface to the cable, but that interface was split into two on the PCB -- one with a twist (for A:) and one without (for B:), and usually a jumper or two to select which drive was which. Despite the two connections being integrated into the PCB, instead of separate connectors on a cable, it is exactly identical to two independent floppy drives.
So if connected to a USB controller that implements the Shugart interface, you would have access to whichever is jumpered to be drive A: and that's it.
Just to clarify, most of the small laptop-sized USB floppy drives are fully USB all the way to the drive electronics. The controller is not a standard PC (Shugart) controller, which is why many of those little drives can run at 2x, which a standard PC controller cannot.
@@nickwallette6201 ... I will have to find it, it's a Teac, I believe, to see what the connectors look like. I have not looked at it in maybe a decade. But yeah that would be unfortunate if I can't get both of them seen on one USB, unless I use 2 separate USB controllers (to 2 USB ports), which basically would be the same as 2 separate flop drives.
Is the drive a 1.2M or a 360K one? A green LED on a half height 5.25" *usually* indicates it's 1.2M but I've seen some late 360K drives with green LED and some early 1.2M with red. Then there are the 5.25" 720K drives that are formatted identically to 3.5" 720K.
try it with a 5.25 3.5 combo floppy drive see if you can access both drives
Full disclosure: I don't know anything about electronics, building interfaces or programming. Having said that...
With the right combination of hardware and software, it should be possible to interface virtually any kind of drive to a modern computer. There exists a USB device to connect a Commodore 1541 floppy drive (5.25") to a modern system, and that's a completely different disc format and piece of hardware.
There is KyroFlux floppy drive controller - supports all types of drives and can read disks by sampling magnetic flux... add capacitor and who knows what is possible with this device. Too bad generic 3.5" USB controller doesn't work. Kyro is hard to get and would probably cost fortune. Idea to use enclosure for 5.25 inch drive - brilliant!
Have you tried reading the disk with winimage? I can't consistently read even 3.5 in disks in Win10 anymore, but Winimage is still able to read them just fine.
Also, even XP has issues reading 5.25 in disks using an integrated floppy controller, so I'm surprised Win10 is able to get as far as it is.
I tried something similar a couple years ago on Mac OS X, but I ran into similar problems. I think the 5.25 drives need a custom USB adapter board, and not the standard one used for 3.5 inch disks. Hopefully, some hobbyist will make such an adapter some day!
I did this years ago but with a Linux machine and it works some what. I can read but I can't write to it. My guess is the Micro Controller only has the timing set for 720KB/1.44MB disks. The drive controller I used has a USB97CFDC-01 controller that the datasheet claims it can handle 5.25 drives. There is a pin on the controller called HDO and I tried forcing it high and low with no change. I also tried playing with a few other pins to control the RPM and Write Protect.
I might give Kyroflux a try but I honestly don't need a 5.25 drive for anything now since I converted my retro machine to use Compact Flash.
Perhaps you should try this drive in Windows XP (VirtualBox)
I love this video. Others have suggested Linux, which I was thinking too.
Instead, two questions.
I had an Amstrad 6128 with the 'strange' 3" (flippable SD 180 KB/side) floppy. At one point I also had an external 5¼"floppy. I bought it in Flensburg, Germany, and it may have been a Vortex, but I'm not sure; but I believe it could write to DOS formatted floppies (DS/SD 360 KB or maybe DS or DD 720 KB?), which I was able to read on an AT with a 5¼" HD drive, in CP/M it's max was 80trk DS/DD, and 800 KB formatted. I have kept the Amstrad, but foolishly, I sold the drive. I am unsure which Teac drive it was using - any ideas, and would it be possible to read (just sector-wise, I can deal with the CP/M directory structure and file map from there) other formats using a USB-thingy like this?
Also, what would be needed to read (and if possible, write) DEC RX50 formatted floppies, which I have a few of for my DEC Professional 350? (Although I don't know what condition the machine is in, as it hasn't been booted for 25+ years.)
I guess this video will attract many very knowledgeable viewers, so I hope it's okay to ask this here.
Hi, I would try the greaseweazle controller. It's pretty cheap and reads the floppies at the flux level. You can connect any shugard based drive, which includes the Amstrad 3" drives, 360kb 5 1/4 drives and 1.2mb 5 1/4 drives (those last two are incompatible, as in 1.2mb drives the top and bottom of the drive aren't written aligned to each other).
please write to me and I send to You a software and all details how to read and write a DEC RX50 floppies to images dump on usual PC under Windows XP/7/10
@@lodedome unfortunately I don't have an HD 5¼" drive yet; and I also have no Windows machines, I only use Linux/BSD/Unix.
10:50 I wouldn't be so sure about that - Windows may not have different icons for each disk size 🤔
1.2MB (5.25” with typically 35 tracks)
1.44MB (3.25” with typically 40 tracks)
The USB floppy controller is NOT capable of properly reading/writing to a 5.25”
Sorry, thats not correct.
1.2 MB is 80 Tracks per side 15 Sectors per track and 2 sides
1.44 MB is 80 Tracks per side 18 Sectors per track and 2 sides
As the boot test from Bios proves, the controller is capable...
Does the 5.25” USB floppy drive work with Commodore 64 5.25” floppy disks? Does it work with the C64 Mini and C64 Maxi?
Set up a reflective or white dot, if one does not exist, on the bottom of the drive spindle flywheel. Aim a cheap harbor freight strobe-type tachometer up to it. Run it in dos correctly, and again in windows. Note the speeds. I think what you are running into is the drive rpm speed, which is different for 3.5" drives, and between different 5.25" formats. I'll bet you windows is trying to run the drive at 360rpm instead of 300rpm or visa-versa. A 1.2mb drive in dos with the bios correctly configured does this switching automagically, but without being told to do so I bet windows is stuttering. Being able to read the fat on that one disk, but nothing else kinda also makes me think this - the phase shift from being the wrong speed is likely exaggerated as you move down the disk. The FAT exists in the first block, with a backup copy at the last block of the filesystem. Are you picking up what I'm throwing down?
seems like it's only able to read track 0 from windows. If it didnt work in dos mode I would say it's a drive issue. Teac have a big model range of drives among which are exclusively 40 tracks compatible, 80 tracks compatible/300rpm, 80. tracks compatible 360rpm, some of the modes might be configured with jumpers on the drive itself, also windows might expect "disk change" signal to be configured in a specific way on the drive (or left floating by isolating this contact from control board). Density mode might be set strictly on the drive (and is set in the incompatible mode), or might be set to be controlled by the controller pulling pin 2 on the drive high or low for different modes, this signal is sure enough absent on the usb control board.
So what's the drive you used
Excellent ! I ask you, did you try to connect the two floppy drives of 5.25 and 1.44 at the same time with the same board? it works ?
Well,i got several diff USB 3.5 Floppy drives,Sony,China & DELL ones that were for Laptop internal but include a USB Mini connector on them.Just gotta get some of them Adapters to try them out...
Am building the exact same configuration with now with a 1.2 MB 5.25" TEC drive. Have you figured out a method to get this working as a 5.25" drive in Windows yet?
Might wanna try something like this drive with IMD under a 32 bit windows machine see it you can format it properly and test the disk with CheckIt to see if windows can read it.
There's probably a difference with the way the bios sees the device, probably some raw mode vs the way windows sees it. So probably raw access vs drivers in windows. Maybe you can trick windows in device manager by selecting a different driver. I don't think it'll let you do it in windows 10 but earlier windows will probably let you do that
get a kryoflux adapter, it supports a wide variety of floppy drives, 5.25", 3.5" and I think even 8"?
I want a 5.25" usb floppy drive which I can use like my 3.5" usb floppy drive. But to copy X68000 images (they use 5.25" HD floppies) to via UBUNTU (running thru vm in windows) via, UFIFORMAT.
Where can I buy one? Can you make me one of these?
Could you please test your solution in Windows while running Virtual Box with Ubuntu and mount the USB drive to ubuntu and see how it works there?
what antiques are you working with that would even require you to do this?
I want to add one to my pc because friends are saying I seem old for still having a DVD drive on my pc
Did you fix the problems with the floppy drive
IMO it should be a problem that the USB controller under Windows talks to the sectors of the disk.
If you format a USB stick as a bigger size than it has (as a lot of resellers do), then you get also very strange errors.
Does your solution allows for writing 5.25" drives?
My question: do you have an xp machine you could attach it to and try that instead? My thinking is that xp still supported 5.25 inch floppy drives.
Common myth. Even Windows 11 24H2 still supports 5.25" floppy drives connected to 82077AA-style controllers. The real issue here is that there's no spec for _USB floppy emulation_ of 5.25" drives: there's only support for three floppy geometries - which are only used on 3.5" media.
The BIOS emulation - which DOS uses - was loose enough that it could translate 5.25" media geometry (imagine my shock at seeing BIOSs violating specs, hehe), but Windows correctly follows the USB spec.
@@throwaway6478 Not sure what Windows 11 has to do with my suggestion of using XP.
@@davidinarkBecause it would have no effect. You're operating under the incorrect assumption that XP has some sort of floppy support that later versions of Windows don't. This is the "common myth" I spoke of.
@@throwaway6478I specifically asked if he had an XP machine, implying XP-era hardware that would recognize the drive. My apologies for not making that clearer.
Hi. I have old 5.25 floppy drive I'm tring to use on linux over usb. I'll let you know my results.
I wonder if you could mount the 5.25" drive you constructed with DOSBOX since Windows at least seems to see the device. I was able to connect one of the commonly available 3.5" USB external drives to a modern Windows 10 PC running DOSBOX with the MOUNT A A:\ -t floppy command for accessing 3.5" 720K and 1.44MB diskettes and everything worked good directly to DOSBOX with that. If you could get DOSBOX working at least you could do some floppy archiving using a DOS utility to image the floppy.
DOSBox uses ordinary Windows file access APIs to access drives connected to it. If Windows sees a drive "wrong", so will DOSBox.
Have you tried running windows 3.1 inside dosbox? I have a usb 3.5 floppy disk drive that I am able to read and write on using this method. I had to mount the A drive in msdos. I have purchased a 5.25 drive and a grease weasel adapter. I'm hoping to build something very similar to yours. Looks like fun to see if I can get it working
Am building something similar at the moment with NEC UF0001 and NEC FD1157C floppy drive
Hast du es schon mit einer älteren version von Windows versucht ?
try passing the drive to a windows xp virtual machine and then file share the floppy drive back to the host system.
Somebody on stack overflow suggested overriding the default driver for it.
Go to Device Manager, select the drive
Select "Update driver"
Select "Search Computer"
Select "Choose from list"
Select "Show all devices" (first option in list)
Select "NEC Systems"
Select "NEC floppy disk drive" (or similar)
Install this driver
Wouldn't work. That driver is for floppy drives connected to 82077AA-style FDC controllers, not for drives connected via a USB interface. There are no words to describe how _absolutely and completely_ differently those two work, and a driver for one cannot be used for the other.
Best bet is probably a very old USB floppy drive like the Pentium 1 and Pentium II laptop era of mid-late 1990s for the controller and paired to an early 1990s IDE era 5 1/4 drive. I am sure Commodore still sold 5 1/4 units in 1992 (for use with their PC on a card emulator for use with Amiga 2000/3000 so businesses could copy over archived records into their new system I guess).
Perhaps the drive is write caching because it’s a removal disk.
correct me if im wrong but isnt floppy drives something that can be bit banged using an sufficiently powerful enough Arduino?
Point of fact sloppy drives were used on Windows machines up under early 2000s up until CDs on computers became a thing and you could still transfer files from one Windows computer to another with them even a newer computer with a USB plugin the USB plug-in drive was made for people who have files on an older Windows computer that's running to put on a newer one that doesn't have the drive in it lots of the same files that can be read by an older version of Windows can be read by newer versions of windows even Windows 10 that is the purpose for the creation of such a USB floppy drive that's the way to transfer stuff from a older Windows computer to a newer Windows computer without the ability to put a disk drive and a older computer that doesn't have the software for it and those USB drives are still available today because many people still have operating old Windows computers that they use for specific tasks and then need to copy data off of it to a modern computer you share that information
When usb floppies first came on the scene a bunch of us did the 5.25 hack, i am surprised this is considered new
Saw this in the corner of my eye looking through my yt "feed" and thought... "omg yes"
Been thinking the same thing about taking apart a usb floppy and using its controller
After watching all the way through, definitely seems like a driver or firmware issue. I wonder if theres a way to update the firmware on the USB floppy controller
Nice idea. It is a little bit disappointment that it didn't work on windows.
Very interesting to see.
The beginning with the boot floppy contents makes me wonder whether you could run your PC in a DOS environment though with games and everything as the function is technically given with all x86 based systems.
I tried this once years ago and most of those DOS based games would run too fast to play. I remember years back getting a shareware program to fix that speed issue to be able to play my old games on my new computer. I remember needing to make .bat fi!as to call those PC-XT games up with configurations so that I wouldn't have to do it manually each time.
Does win10 has a 5 1/4 inch floppy icon??? Whatever i have Quake II RTX now :). But i don't have a ray tracing capable GPU! :(. Ef it, Quake II source port will do :\!