MFM can be read and written using nothing but a basic UART. Configure to 1 start bit, 6 data bits, 1 stop bit. It's exactly MFM, and will self-synchronize to clock pulses. 250k baud rate. Of course decoding the data requires some software, but a floppy controller is a bit of an overkill for most uses. I've been interfacing with floppy drives using UARTs for a long time. The read data needs a pulse stretcher to extend the pulses to 2us. Any microcontroller that can have its UART word width configured to 6 bits will work for that. Minimum UART clock is 4MHz or any multiple of it. The 16MHz clock used for Arduino UNO works well for that. If you want to be really fancy, the CPU clock can be slaved to the index pulse via a PLL, so that when the disc is rotating, there's an exact and fixed number of bits per revolution. ATmega 328P used in UNO has a uart that supports 6-bit data words. So the whole thing works out really well.
@PauloConstantino1673 ай бұрын
Thats an interesting idea. Would you help me to set this up for my homebrew computer?
@ecosta2 жыл бұрын
Oh my! This brings me so many memories from my childhood. I recall playing with old disks, and "protecting" new ones with a small sticker over the side notch. Those were the days! 😃
@GeorgeFoot2 жыл бұрын
And sometimes cutting a notch in commercial disks that didn't have one!
@edgeeffect Жыл бұрын
I rarely used the protection tabs on discs... they had a higher purpose: for write enabling cassettes.
@makeshift75303 Жыл бұрын
Aah, the time spent trying to dig an aluminium write-protect tab out of a floppy drive with a pencil, or a wooden ruler, because it had come off the floppy disc inside the drive. 😊
@thorpejsf Жыл бұрын
Those two little notches near the window are strain-reliefs 🙂 If the floppy is twisted, they prevent the window area from bending.
@LifewithDavid12 жыл бұрын
George, Glad to see you back on KZbin! Nicely done. I built my own floppy disk interface for my 6502 computer back in 1980 using the FD1791 disk controller. As floppy disk technology progressed, the data format went from data between clock pulses to transitions signifying a one or a zero to increase the data density. Early disks had 17 index holes, for hard sectoring. 16 equally spaced sector holes, and 1 track hole halfway between holes "16" and "1". I only used one box of those before I converted to soft sectoring like your disk. I wrote a very basic DOS that allowed me to transfer data between the computer and drive. It was a challenge since it was all hand written in machine language (EAs, 20s, and A9s still are burned into my brain). I had to load the DOS into the computer using a cassette and then I could use the disk. Things are much more more civilized (meaning cheaper) now. I could barely afford one computer, now we've got dozens just for playing around. The discussion was spot on. Keep up the good work.
@GeorgeFoot2 жыл бұрын
Thanks David! It's interesting with the hard sectoring - I read about the extra holes the other day but I assumed they were at a different radius on the disc, I didn't realise they were mixed together. I found an old datasheet for an early Shugart drive that was an interesting mixture of useful and too old compared to the hardware I have here! I read about MFM as well, maybe one day I can pack as much data in as I can! For now though my goals are a bit less ambitious.
@GodmanchesterGoblin2 жыл бұрын
@@GeorgeFoot Hard sectors were common early 8 inch floppies (late 70's). But I think they were on the way out by around 1980. I designed a couple of disk controller interfaces (complete with low-level with driver software) for proprietary computer systems in the mid 80's. Fun days!
@Dave52819682 жыл бұрын
@@GeorgeFoot You're smart to go with regular FM encoding initially since MFM encoding introduces some quirks in writing data to the disk. (Some bit sequences can generate bad reads/writes! I think it's because the signal frequency goes out of the allowable range for the read and/or write amplifiers.) I personally prefer the FM encoding since there are no special cases of data patterns to be handled, but MFM does nearly double the number of bits that will fit on a single track.
@GeorgeFoot2 жыл бұрын
@@Dave5281968 I read the WD1770 datasheet yesterday, including details of write compensation that might be what you're referring to? Also MFM vs MMFM which I guess were different ways to achieve the faster data rate.
@RogerBarraud Жыл бұрын
@@GeorgeFoot HD or bust! ;-)
@James1013 ай бұрын
The 2 notches are strain relief so the disk does not bend at the window
@avtuunainenАй бұрын
At 10:15 you wonder why the motor is like it is. It's not (just) so it can fit, but because maintaining constant angular velocity is critical for correct operation, and for that, increasing the moment of inertia is very useful, so anything that perturbs the speed of the disk has to do more work to achieve it. By spreading out the motor like that, it can use its own mass as a flywheel.
@Mik3yDatBoi2 жыл бұрын
I’m 22 and just fascinated by retired technology. More the fact my parents grew up in the era and of course my grandparents saw it all. Just fascinating to me. (I think floppy’s are still rarely used so maybe not fully retired)
@makeshift75303 Жыл бұрын
I believe the momentary motor rotation of the spindle is to help seat the floppy disc centrally as the spindle segments of the head clamp the floppy. If the spindle was stationary, there would be far more chance of crimping the floppy.
@sail4life2 жыл бұрын
The spindle motor is a brushless DC permanent magnet type. The controller uses either an index magnet and a hall sensor or back EMF from the coils to keep track of the speed. Perhaps some used the index hole but I'm not sure.
@GeorgeFoot2 жыл бұрын
I think you're right as far as the drive motor speed regulation is concerned. There's a "ready" signal from the drive though which uses index pulses to check that a disc is present, and I believe host-side systems like the 8271 FDC also used index pulses to check things were good before trying to write data.
@Chriva2 жыл бұрын
Those weirdo notches at the top is just to relieve stress. No idea how the mechanics of it work but that's their official designation. :)
@pepe6666 Жыл бұрын
man this was AWEESO_E!! sorry missed a bit
@SuburbanDon Жыл бұрын
Very interesting. My first computer was in 1982, an Apple 2+. Thanks for doing this.
@stupossibleify2 жыл бұрын
Really good video! More please!
@ianneill9188 Жыл бұрын
Excellent! Very interesting and just what I was looking for, as I am starting to study floppy disks as I return to some of my retro computers. The Arduino is also my go to tool when I want to dig deeper into data and logic, so the next episode in your series is already calling me 😊 Thank you for sharing.
@ratmadness48584 ай бұрын
James Sharman recommended this series.
@mheermance2 жыл бұрын
Atari eight bit systems also used serial floppy drives. Their drives weren't quite as sophisticated as the Commodore drives, but the interface was higher level than other floppy drives. The engineer who designed their SIO bus went on to work on USB which has some similarities. I used to notch the opposing side to let me double side the floppy.
@GeorgeFoot2 жыл бұрын
That's interesting, I'm not very familiar with the Atari systems. I too used to cut extra holes in my discs and flip them over. Not very neatly!
@colejohnson22302 жыл бұрын
This is exactly what I needed for my project!
@GeorgeFoot2 жыл бұрын
Great! What's the project?
@colejohnson22302 жыл бұрын
@@GeorgeFoot I'm working on building a pipelined CPU and wanted to expand memory with some old tech like floppy's. I had a floppy drive lying around but no idea how to interface to it
@GeorgeFoot2 жыл бұрын
Awesome. I think it should be fairly easy to get some crude data reading working, maybe DMA a track at a time into RAM, but my main debate has been whether to go straight for the standard, more complex format.
@forbiddenera2 жыл бұрын
One of the other holes is so the drive knows the disk is right side up or not as some systems/drives would let you flip a disk before double sided drives were the normal
@makeshift75303 Жыл бұрын
Brilliant presentation, thank you, The head never made contact, but used to float above the surface of the floppy on a cushion of air, but at a height that was far less than the diameter of a human hair. I'm sure you can find a diagram to illustrate the type of clearance involved, but it was an unbelievably small tolerance as far as I was concerned , back in 82. I wish I still had my caddy of Apple II 5 1/4" Verbatim floppies. I gave everything away in the 90s when I was in the Army. Have re-purchased an Apple II (Platinum) and most recently an Osborne OCC1, which I always lusted after as a teen, but could never afford in 82.
@Aruneh2 жыл бұрын
Very interesting! And good to see you back on KZbin, its been a while
@brettb.3452 жыл бұрын
Currently adding SD card support to my 6502 via a second 6522 VIA. I’m experimenting with an ATMEGA168 as the controller (got a bunch of those chips on the cheap). This was very informative on the possibility of interfacing a floppy drive. Thanks.
@GeorgeFoot2 жыл бұрын
Nice, the ATMEGAs are actually quite simple to hook up if you set the fuses right, and you can program them in-system from an Arduino fairly easily. My first PCB design was based on one.
@brettb.3452 жыл бұрын
@@GeorgeFoot I built my own “Arduino Uno” board for it with ZIF socket rather than prying the chips out of the socket of an actual Uno. I also just finished a new Uno shield to program ATTINY 85, 84, and 861 - I use them a lot, as they are great for adding interfaces, such as I2C to LCDs or for keyboards.
@captainboing4 ай бұрын
@41:50 maybe "soft sectors"? The Amiga used an encoding which resulted in a special byte pair (0x4489) that could not be generated by the encoding so if that ever occurs in the data stream you know it is a sector start. There are other combinations which got used in some disk protection systems. When it read a track, it didn't have to wait for the start of a sector, it just dropped the heads and read an entire track into a buffer. The cpu then looked for the soft index word and used the blitter to move the two halves of the buffer.
@francoisdastardly44052 жыл бұрын
Very interested video. Many thanks !
@Phoenix135tube Жыл бұрын
Hi George Brilliant video. I watched this a couple of weeks ago, then have come full circle in that my Osborne Executive Floppy Drive B is giving me a BDOS Error and when I took it out to look at, using the strobe wheel on the bottom of the drive motor, the motor is running flat out, and a mate thinks it might be the index hole optical sensor. I have no technical drive documentation or schematic for the Executive and was looking to build a test box to plug the drive into, but the breadboard makes it easy to use with the CRO, rather than messing with the drive. I might have missed it in the video but are you using 150 ohm resistors on the breadboard? kind regards, Cam
@GeorgeFoot Жыл бұрын
I'm glad if it's useful. I think I used higher resistor values, but I think it's meant to be 150 for a 5.25 inch drive, yes. I don't think the index hole is used for speed control by the drive in fact, the motors are meant to have that built in.
@pauldourish2 жыл бұрын
Great stuff -- fascinating!
@aydnsevincik12277 ай бұрын
"Hello, I want to do something like this. I have an old system that only has floppy drive and parallel port outputs. Data is read and written using floppy disks. I want to disable the floppy drive, connect Arduino to that port, and use the system as if writing to a floppy disk to save the data to an SD card. Do you think something like this is possible?"
@iamdarkyoshi6 ай бұрын
I feel like the c64's floppy drive solution was the exact opposite answer to "How can we build a cheap, fast, and simple to use floppy drive"
@tonyfremont6 ай бұрын
They were just ahead of their time. Everything is a serial interface now: USB, SATA or PCI express.
@edgeeffect2 жыл бұрын
I always thought FM was.... y'know Frequency Modulation.... interesting to see I'm wrong.
@GeorgeFoot2 жыл бұрын
I think in a way it is still a form of frequency modulation. A set bit is encoded as two cycles of 250kHz, while a clear bit is one cycle of 125kHz.
@RogerBarraud Жыл бұрын
@@GeorgeFoot Exactly right.
@vitobelflores65104 ай бұрын
Busco como conectar floppy drive 3" interno A externo vía puerto paralelo, like the backpack cdrom parallel port, No via usb!. I have Oldis Pc's only with Parallel port it doesnt have enought power for ISA cards with usb 1.1 ports or pci. The LS120 SuperDisk (ext) is an option but i 've a many 3"1/2 fdrives (int) to use like an externals. Idont want a zip's iomega, Help pls.
@tonyfremont Жыл бұрын
I think it spins as you're inserting it to help center the hub on the hole; thats what i heard back then.
@ms-ex8em7 ай бұрын
why did Acorn choose 640k, 800k and 1.6 mb for its floppy disc capacities ?? thanks....................
@noureddinebenakrim54582 жыл бұрын
Thank you so much
@ms-ex8em7 ай бұрын
i wonder why microsoft chose 1.44 mb and 1.2mb and 1.68 mb dmf for its floppy disc formats too? thanks.........
@shaunclarke9420 күн бұрын
What really surprises me is that the control signals are so basic and low level, and then the data is literally just a single pin in and out. So out of 36 conductors, only one carries your actual data. That's crazy.