dhansel / ArduinoFDC

Library for using an Arduino as a floppy disk controller
GNU General Public License v3.0
272 stars 41 forks source link

Constantly getting Error #1: Low-level disk error #9

Closed ACrazyTown closed 1 year ago

ACrazyTown commented 1 year ago

I'm trying to read a 3.5 HD floppy disk, however I constantly get low-level disk errors in ArduDOS while trying to run dir.

I'm pretty sure I connected everything correctly as it can detect if a drive is inserted or not, but I don't know why I keep getting the low-level disk errors. I don't know what could be the problem, it could be the floppy drive, maybe even the disk. Does anyone know of some troubleshooting steps I could try to pinpoint where the issue is?

dhansel commented 1 year ago

On the ArduDOS command line, type "monitor" which will get you into the low-level disk monitor. The disk drive motor should automatically turn on at that point. Check if it's running. If not, type "s 1" to select drive B (maybe you have the drive wired as drive B). Does the motor run now? If not then check your wiring. Make sure the drive has power.

If the motor runs then type "r 0,0,0" which should read the first sector on the disk. What error do you get? Check the corresponding entry in the "Troubleshooting" table on the ArduinoFDC GitHub page.

ACrazyTown commented 1 year ago

On the ArduDOS command line, type "monitor" which will get you into the low-level disk monitor. The disk drive motor should automatically turn on at that point. Check if it's running. If not, type "s 1" to select drive B (maybe you have the drive wired as drive B). Does the motor run now? If not then check your wiring. Make sure the drive has power.

If the motor runs then type "r 0,0,0" which should read the first sector on the disk. What error do you get? Check the corresponding entry in the "Troubleshooting" table on the ArduinoFDC GitHub page.

Yup, the motor spins. I couldn't get the command you said working (said something about invalid sector specification) but typing just "r" gave me an error "Error: No sync marks found!". I'm going to try playing around with the GND pins and also a few other floppies. Thanks for your help!

ACrazyTown commented 1 year ago

Just tried with a different floppy. dir gave me 2 filenames before spitting out a low-level disk error. Monitor kept reporting no sync marks found. Could my drive be damaged?

dhansel commented 1 year ago

Sorry, the read command should have been "r 0,1,0" (sector numbers start at 1).

It's certainly possible that the drive is bad or needs a head cleaning. It's also possible that the disks are old and losing data. You could try and format a disk and then use the "r" command (no parameters) to try and read all sectors. If that works then the drive is likely ok and it's just the disks that are getting old.

If the data on the disks is important to you then you could use GreaseWeasle/FluxEngine to read them. Those use special hardware and a PC to decode and recover old/damaged disks.