Project Goals

The goals for the project follow:

  • Learn electronics, digital logic, FPGAs, and microcontrollers
  • Everything open-source and available
  • Share what I learn by publishing results of my research
  • Create an external USB amiga floppy drive controller that can read amiga floppies using a standard PC floppy drive and create .ADF files for archiving and emulation
  • Have fun being an active participant in retro-computing

Download Page is here.


  • A very interesting project. You seem to be getting some great results. I have long been interested in a non-Catweasle approach to this problem. So what are your plans for this device. Hopefully you will commecialize it. I would surely buy one. Best regards, Mike

  • Thanks for the comments Mike.

    Right now, the current gen solution is pretty heavy in terms of hardware. I use a $150 eval board, but 90% of the hardware on that board is simply not used. I need to distill down the true requirements to make it viable for home DIY’ers to build it. I don’t think this would be hard but it depends on the availability of spartan-3e (or similar) prototype boards.

  • This seems like a fun project.

    I have read a lot on the matter, and to be honest I do not see how a PC floppy disk drive could be used without modification.
    For the Amiga disk writes complete tracks where the PC’s writes sectors.
    This difference in approch has left one with a linear velocity and the other with an angular velocity.(constant speed VS constant angle)
    If you do manage to pull it off without modification to the FDD drop me a line.

  • Marcel,

    Thanks for the post.

    A regular PC floppy disk drive without modification works fine. My project was successful, and can read amiga disks and create .ADFs perfectly.

    Here’s a video of it in action:

    In that case, I used a regular off the shelf drive made by Sony, and bought off newegg for $5. Some drives are better at reading low density disks than others, and some are better quality……but there’s nothing special (or proprietary/amiga-specific) about the disk drives.

    The FLOPPY CONTROLLER on a PC integrated into motherboards/chipsets have a problem reading the no sector gap amiga disks. There is a maximum size (5632 bytes? something like this) sector that the CONTROLLER supports, and the amiga tracks are seen as an oversized errored sector with gaps not in the right places. PCs can’t read Amiga disks without some tricks/modification. The controller just isn’t compatible for the reasons mentioned.

    AMIGA’s themselves have problems with UNMODIFIED PC drives because there are a couple signals that aren’t on the right pins — or have the right behavior. The READY signal is normally one of the problem signals.

    For my purposes, I only care about seeing flux transitions. The drive doesn’t know or care about sectors, or sector size, gaps, or otherwise. You step the head out to a particular track number(the drive doesn’t even know what track number it’s on, or in cases where it does, has no way to communicate that to you), and then the head starts spitting out pulses — the drive starts pulling the READ DATA pin low from the normal IDLE high +5v.

    How the original attached computer commanded the drive to put those pulses on there, the drive surely doesn’t know or care. The drive knows you enabled the write gate, and started putting pulses on the WRITE DATA pin…..Written one sector at a time, or a track a time, the drive doesn’t know/care.

    I have to update my overall project status page stating what I’ve achieved. The project sort of faded away when I reached most/all of my stated goals.

    I can always stand to optimize it further and further, but I’m pretty happy with what I was able to accomplish.

    That video is from about three years ago.

    Thanks again for the post

  • If you are at that point you could add a flag to read GCR encoding too.
    Commodore GCR is easier to decode then apple GCR adding this would exponentially increase the usefulness.

  • I managed to record the MFM waveforms off of floppy disks using a RTL-SDR software defined radio soldered to operate in Direct Sampling mode. I took an off-the shelf floppy drive and cut up a floppy cable and hooked the index line to the step line, and some light switches to hook 0 volts to the head select and direction lines, plus a momentary push button switch to step manually after you use another switch to disable the index auto-stepping. I made a VLF radio amplifier with two capacitors, two resistors and a 2N2222 transistor to amplify the signal coming off the read-data line. The floppy drive is powered off of 4 rechargeable NiMH AA batteries.

    I was also doing some C programming and made a pipe program that takes the PCM data from the RTL-SDR and creates a WAV64 file. I am having trouble figuring out how MFM signals work and how to distill it into an algorithm that makes a binary file with the characters off the floppy disk.

    • Pretty neat. I’ve got one of those rtl-sdrs.

      For amiga mfm, all you need to know is to measure the time between flux pulses from the read data line.

      If you see 4us between pulses, record a binary “10”, 6us “100”, 8us “1000”. Anything less or more is illegal or defective.

      After you have your binary raw mfm stream, decoding to amiga sector data is straight forward. You can check the french amiga disk FAQ or I can provide my java source. Which might even be already available in the download section. Stay in touch. You can email me at ((keith)) at the same domain name.