Skip to content

Commit d4d385e

Browse files
committed
Added contribution guide and updated readme
1 parent ddeb9c7 commit d4d385e

File tree

3 files changed

+123
-27
lines changed

3 files changed

+123
-27
lines changed

CONTRIBUTING.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
Guide to contributing to the Arduino Floppy Disk Controller
2+
===========================================================
3+
4+
The Arduino firmware is already very useful und can read everything.
5+
The track is always read at-once, because the sector-wise reading depends
6+
on the format (AMIGA, PC, ATARI, COMMODORE etc..). Letting the format be
7+
detected by PC software is part of the concept, and sufficiently smart,
8+
so this need not be changed. To read a single sector, the PC software can
9+
instruct the Arduino formware to read the whole track, and then it can
10+
decode only a single sector. There are options to wait or not wait for the
11+
index pulse when reading, so that even a fast reading should be possible.
12+
13+
Improvements can be done with writing to the disk. Here contributions are
14+
welcome.
15+
16+
However writing is olnly supported for DD track-at once currently. Since the
17+
Arduino cannot buffer the data for a whole track, the writing need do be
18+
in sync with data arriving via the serial interface. This is a bit tricky
19+
and does not always work. Writing a track at once is the normal way to either
20+
* format the disk (ATARI ST, PC) or
21+
* write data to it (AMIGA).
22+
Writing individual Sectors should maybe made possible in furture (and a single
23+
sector data can well be buffered by the firmware). But sector detection is
24+
format dependant. Luckily for the ATARI ST and PC disks the sector marks
25+
are the same. COMMODORE disks will maybe later be supported.
26+
27+
28+
Other ideas:
29+
* How about a block device driver for linux (interfacinge the Arduino firmware)?
30+
31+
## License and attribution
32+
33+
All contributions must be properly licensed and attributed. If you are contributing your own original work, then you are offering it under a CC-BY license (Creative Commons Attribution). If it is code, you are offering it under the GPL-v2. You are responsible for adding your own name or pseudonym in the Acknowledgments file, as attribution for your contribution.
34+
35+
If you are sourcing a contribution from somewhere else, it must carry a compatible license. The project was initially released under the GNU public licence GPL-v2 which means that contributions must be licensed under open licenses such as MIT, CC0, CC-BY, etc. You need to indicate the original source and original license, by including a comment above your contribution.
36+
37+
## Contributing with a Pull Request
38+
39+
The best way to contribute to this project is by making a pull request:
40+
41+
1. Login with your Github account or create one now
42+
2. [Fork](https://github.com/kollokollo/ArduinoFloppyDiskReader#fork-destination-box) the ArduinoFloppyDiskReader repository. Work on your fork.
43+
3. Create a new branch on which to make your change, e.g.
44+
`git checkout -b my_code_contribution`, or make the change on the `new` branch.
45+
4. Edit the file where you want to make a change or create a new file in the `contrib` directory if you're not sure where your contribution might fit.
46+
5. Edit `ACKNOWLEGEMENTS` and add your own name to the list of contributors under the section with the current year. Use your name, or a github ID, or a pseudonym.
47+
6. Commit your change. Include a commit message describing the correction.
48+
7. Submit a pull request against the ArduinoFloppyDiskReader repository.
49+
50+
51+
## Contributing with an Issue
52+
53+
If you find a mistake and you're not sure how to fix it, or you don't know how to do a pull request, then you can file an Issue. Filing an Issue will help us see the problem and fix it.
54+
55+
Create a [new Issue](https://github.com/kollokollo/ArduinoFloppyDiskReader/issues/new) now!
56+
57+
58+
## Thanks
59+
60+
We are very grateful for your support. With your help, this implementation will be a great project.

README.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Arduino Powered Floppy Disk Reader and Writer
2+
Created by Robert Smith @RobSmithDev
3+
with interfaces for Amiga, ATARI ST and DOS/PC Disk formats.
4+
5+
# What is it?
6+
This project uses an Arduino to interface with a floppy disk drive and
7+
communicate with a PC in order to recover the data from any formatted
8+
disks. The drive can be either a 8", 5 1/4" or 3 1/2" standard floppy drive.
9+
It was tested on a 3 1/2" standard PC floppy drive. Others (like the
10+
5 1/4" standard PC floppy drive) my also work without modifications.
11+
12+
This configration can read SD, DD and HD floppy disk formats
13+
(AMIGA, ATARI ST, PC DOS, COMMODORE C64)
14+
and maybe more.
15+
16+
The Arduino firmware allows to read the raw data from each track of the
17+
floppy. Decoding of the sector data is done on the PC. Usually a floppy image
18+
file is created (ADF for AMIGA, .img for ATARI ST and PC/DOS).
19+
20+
It also allows you to write a backed up ADF file back onto a floppy disk!
21+
22+
# ArduinoFloppyReader
23+
This Visual Studio 2017 project contains two applications, a command line,
24+
and a Windows dialog based application
25+
26+
# Scripts for linux
27+
The ATARI ST and DOS/PC floppy formats can be decoded whith these scripts.
28+
9,10,11 or 18 Sectors per track. Up to 82 tracks, DD (ca. 800 kBytes) or
29+
HD (1.4 MBytes). The images usually contain a FAT12 file system which can be
30+
directly mounted by linuy without any additional driver.
31+
Sorry, no interface to WINDOWS yet.
32+
33+
# FloppyDriverController.sketch
34+
This is the Ardunio source code/sketch for all Floppy formats.
35+
* Detect disk density (SD/DD or HD)
36+
* Motor ON/OFF
37+
* Seek to Track 0
38+
* Seek to any track (up to 82)
39+
* read write protection status
40+
* Read index pulse
41+
* read raw track data (FM, MFM; SD, DD or HD)
42+
* write track data (unbuffered, only DD yet)
43+
44+
# AVR Firmware
45+
If you want to use the AVR directly instead of within the Arduino environment,
46+
then jump to [https://github.com/jtsiomb/usbamigafloppy] where John Tsiombikas
47+
has ported the code.
48+
49+
# Help and Instructions
50+
For further details including how to wire this up please visit
51+
[http://amiga.robsmithdev.co.uk]
52+
53+
# Whats changed?
54+
V2.2 Fixed 99% of checksum errors when writing by erasing the track first
55+
V2.1 Diagnostics and potential write bug fixed
56+
V2.0 Disk reading has been vastly improved and you can now also write disks!
57+
V1.0 Initial release, can read disks fairly well
58+
59+
# Licence
60+
61+
This entire project is available under the GNU General Public License v3
62+
licence. See licence.txt for more details.
63+

readme.md

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)