GithubHelp home page GithubHelp logo

Comments (13)

kollokollo avatar kollokollo commented on May 24, 2024 1

With the latest release the measurement function 'M' can now automatically detect HD disks.

from arduinofloppydiskreader.

hpingel avatar hpingel commented on May 24, 2024

Great! Please have a look here too: https://github.com/hpingel/pyAccess1581

Similar spin off of mine.

from arduinofloppydiskreader.

hpingel avatar hpingel commented on May 24, 2024

For reading disks you can get away without listening to CTS state. For writing disks the 16MHz hardware solution relies on CTS state changes. It is unclear to me if the Nano can do this in software as compared to separate FTDI dongle.

from arduinofloppydiskreader.

hpingel avatar hpingel commented on May 24, 2024

IMHO it could be potentially possible to read HD disks on the 16 MHz hardware but it would make much more sense to switch over to a faster microcontroller also with more RAM to possibly cache a track.

from arduinofloppydiskreader.

kollokollo avatar kollokollo commented on May 24, 2024

I have already modified the Arduino Firmware and can already read tracks from HD disks. However, the chance of CRC-Errors are quite high, so it takes forever to get a track where all 18 Sectors are OK. But maybe with a bit of tweeking with the timing parameters that could be improved.
See my fork of the repository, it is in the "new" branch. I think, the measurement function could automatically detect the disk type, but this is still a TODO....

from arduinofloppydiskreader.

kollokollo avatar kollokollo commented on May 24, 2024

I have not tried writing to disk with the Arduino Nano. Maybe later I give it a try.

from arduinofloppydiskreader.

hpingel avatar hpingel commented on May 24, 2024

Have you also tried Fluxengine? I recommend Fluxengine without saying it's the only approach one should take. I enjoy playing with both solutions.

I personally find the software of Fluxengine very clever. When developing for the 16Mhz Arduino with Robert's approach I can additionally do a cross-check / debugging with Fluxengine to rule out some problems.

http://cowlark.com/fluxengine/

from arduinofloppydiskreader.

hpingel avatar hpingel commented on May 24, 2024

I personally started to think it would be much easier to implement stuff on a faster micro controller that might even have the same price as an Arduino Mini Micro Nano. Robert's sketch might still be easy to port.

I don't like the dependency to the CTS pin.

Fluxengine uses this Cypress board with the same Cortex M3 CPU used on the "Bluepill". Then there would be Teensy 3.x (more expensive) options. I am also playing with a Teensy 4.0 from time to time.

from arduinofloppydiskreader.

hpingel avatar hpingel commented on May 24, 2024

I am not familiar with the Atari Sector markers and structure. If it is the same as with IBM/DOS disks A1/FE/FB then this is already implemented in my Python scripts in my repository. In that case it would be fairly simple to add Atari format to my tool if you are interested.

Please See: https://github.com/hpingel/pyAccess1581/blob/master/access1581/diskformats.py

from arduinofloppydiskreader.

kollokollo avatar kollokollo commented on May 24, 2024

The Track format is the same as for IBM/DOS. However, ATARI ST Floppy could be formatted with up to 82 Tracks and up to 11 Sectors per track. Also the boot sector was different by one byte, which caused PC/DOS not to be able to read them, but vice versa it worked (DOS formatted disks could be used by Atari).

Thank you for the link. I did not know about this tool. Now it is too late. i am all fine with my solution.

from arduinofloppydiskreader.

hpingel avatar hpingel commented on May 24, 2024

I am absolutely happy about any other person who is interested in tinkering and tweaking floppy disk readers like the great one that Robert has come up with. There are not that many people out there digging in old documents that describe the old track/sector secrets.

I am absolutely curious on your changes to the sketch and I will test your changes when I find time.
I also had a look at your Basic code - am I right that you have created the BASIC interpreter yourself for this Basic dialect? If you invented your own BASIC language flavour - of course you want to use it when coding tools!

I also have done some tweaks to the sketch which are yet unpublished. But they are more regarding making it run on an Arduino Pro Micro.

If I could interest you in testing my Python code I would be more than happy to create an experimental git branch where reading Atari disks would be enabled. I don't have any Atari hardware or disks so it's hard for me to test it myself.

Currently I am working on writing tracks to disk in Python but the written data on the disk is only "similar" to the original data... Not good enough yet and I don't know if I will get it to work with Python. Reading disks works quite well with Python.

My project is nearly as young as yours. I started in August and spent as much of my spare time as I could dedicate to understand floppy disks and disk drives - it took me months to grasp the basics.

from arduinofloppydiskreader.

kollokollo avatar kollokollo commented on May 24, 2024

I am not expecting anyone using my BASIC code. But thats what I am familiar with (GFA-BASIC / ATARI ST). Basically I am done with the project. I just wanted to read out old ATARi Disks I have recently found. That worked and so I can just publish my changes to the Arduino Firmware and my scripts.

For further improvements: Detecting SD Disks would be also easy. Decoding the Data as FM instead of MFM would also be easy in that case. But I do not have any such disks anymore. The firmware ist really fine and need only consmetic improvements. Wrtiing an operating system driver (e.g. for linux) would be straigt forward, but some effort. But I really liked this low level Hardware ansatz. Do everything in clever Software.

Another thing: To recover damaged Disks: Read the damaged track several times and analyze a statistics on the bit pattern, maybe most of the sectors could be repaired this way, so one can restore the Disk image.

from arduinofloppydiskreader.

hpingel avatar hpingel commented on May 24, 2024

The statistical recovery concept is already part of Robert's C++ code. I just think the methods are unused.

from arduinofloppydiskreader.

Related Issues (16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.