RobSmithDev / ArduinoFloppyDiskReader

DrawBridge aka Arduino Amiga Floppy Disk Reader/Writer - Hardware and software interface for accessing Amiga disks (read/write ADF and SCP) on non-Amiga hardware
https://amiga.robsmithdev.co.uk
GNU General Public License v3.0
227 stars 53 forks source link
adf amiberry amiga arduino c emulation firmware floppy floppy-formats floppydisk formatted-disks hd-disks scp winuae

DrawBridge aka Arduino Powered Floppy Disk Reader and Writer

...with 3rd party interfaces for Amiga, ATARI ST and DOS/PC Disk formats and designed to work with WinUAE and Amiberry!

Created by Robert Smith @RobSmithDev https://amiga.robsmithdev.co.uk

What is it?

This project uses an Arduino to interface with a floppy disk drive and communicate with a PC in order to recover the data from any formatted disks. This includes Windows software to copy from and to ADF files.

This project is what is behind getting real floppy disks loading in real time into emulators like WinUAE and Amiberry

Formats

The Arduino firmware allows to read the raw MFM data from each track of the floppy. Decoding of the sector data is done on the PC. Usually a floppy image file is created (ADF for AMIGA, .img for ATARI ST and PC/DOS).

The 'firmware' can read MFM data from SD, DD and HD disks, although HD is untested. This would therefore be able to read data from AMIGA, ATARI ST, PC DOS, COMMODORE C64 etc.

ArduinoFloppyReader

This Visual Studio 2019 and Linux project contains two applications, a command line, and a Windows dialog based application allow reading and writing of Amiga formatted DD floppy disks. Using the supplied makefile you should be able to compile this on Linux. It has been tested with Raspberry Pi OS (Raspbian - Debian-based)

FloppyDriverController.sketch

This is the Arduino source code/sketch for all Floppy formats.

Help and Instructions

For further details including how to wire this up please visit [https://amiga.robsmithdev.co.uk] or join the discussion on discord at [https://discord.gg/HctVgSFEXu]

Whats changed?

Scripts for linux

The above application apparently works under WINE, however, Github user "kollokollo" made some scripts for reading other formats on Linux too as follows: The ATARI ST and DOS/PC floppy formats can be decoded whit these scripts. 9,10,11 or 18 Sectors per track. Up to 82 tracks, DD (ca. 800 kBytes) or HD (1.4 MBytes). The images usually contain a FAT12 file system which can be directly mounted by linux without any additional driver.
For more information see https://github.com/kollokollo/ArduinoFloppyDiskReader/tree/master/for_linux They need the X11-Basic interpreter from http://x11-basic.sourceforge.net/

Commodore 1581 Disks

To read commodore 1581 disks, check out the project at: 
    https://github.com/hpingel/pyAccess1581

AVR Firmware

If you want to use the AVR directly instead of within the Arduino environment, then jump to [https://github.com/jtsiomb/usbamigafloppy] where John Tsiombikas has ported the code.

Licence

This entire project is available multi-licensed under the terms of the Mozilla Public License Version 2.0 as published by Mozilla Corporation and the GNU General Public License, version 2 or later, as published by the Free Software Foundation