Closed powerlot closed 1 day ago
I'm not sure about this. Apple 2 drive support was implemented by a device made by Adafruit which identifies as Greaseweazle but isn't a bona fide Greaseweazle.
I wasn't aware of that --- I thought it was an official Greaseweazle thing!
I'm not even sure who asked for this support originally. I don't think it was LadyAda. It's the only thing which uses the FluxEngine microstepping support so it's likely to be very fragile. Hardware-wise, it would only really make sense if the Greaseweazle or clone you're using supports multiphase drive control, which I'm guessing the official ones don't.
Microstepping would be a great feature to have but it's not supported currently and nor is any other sort of direct phase control. Iirc this was requested/implemented in FluxEngine on request of someone working with Adafruit, and the only patch in Greaseweazle "proper" is to reserve a floppy bus id (alongside ibmpc and shugart). Does anyone actually use this feature I wonder, given it needs non standard hardware of some kind.
EDIT: I also wonder whether it's really all that interesting to use these old direct-control drives except perhaps to access quarter tracks.
Thanks for your inputs. I gather the Adafruit flux reader supports this with the FluxEngine software, but it's currently not possible with a Greaseweazle?
I believe any sort of additional control over a drive would be beneficial for a flux reader, but also understand it's kind of an edge case.
@jepler according to these videos
https://www.youtube.com/watch?v=YU6eMyiT2TM&list=PLjF7R1fz_OOWexf2WmY8cgM65ltPaAvyT&index=3
an image is written using PC 5.25" drive, is this modded or how does it handle flippy disks? In the video after above linked one, the Apple Disk II is directly accessed by the Adafruit floppy reader. Are there any connection diagrams available or is it still experimental?
In that video you directly linked, I was using a standard IBM PC drive to write the top side (only) of a 5.25 DS DD floppy. The software running on the computer was fluxengine, and the Adafruit hardware was running our greaseweazle-compatible firmware, which lives inside the open source Adafruit Floppy library for Arduino
The hardware used is the Adafruit Feather RP2040 and the Adafruit Floppy Featherwing
Doing the second side of flippy disks (either to read or write) requires a modification to bring out a fake index signal for fluxengine. I detailed how to do this in reversible fashion for a particular PC drive in a guide published on the Adafruit Learn System.
The other video I think you meant is this one. This hardware is not published (it was a hand-wired 20-pin header on a feather doubler used as a prototyping area), and it requires a reversible modification to the Disk ][ drive as well, to create a once-per-revolution output. I'd check out the documentation of Applesauce for more info about the revolution sensor modification, I think they're who I followed.
The software side is also in the Adafruit Floppy library for Arduino, it's mostly just a different pinout. You also need +5, +12 and -12V supplies on the ribbon cable, and of course hooking it up wrong will damage the ICs in the drive immediately.
Adafruit is still working on a dedicated floppy archiving board, called Floppsy. This is ongoing, @ladyada has shown it on some recent streams, and the current version includes a -12V power supply, 20-pin header, and a connector for a revolution sensor with the hope that this'll work with Disk ][. However, this hardware is not yet available for sale or as an open hardware design and has no ETA.
And writing the second side also requires bypassing a PC floppy's write protect sensor; I didn't ever do this yet.
It's starting to make sense now. I guess this is the pinout, in addition to the power supply?
https://github.com/adafruit/Adafruit_Floppy/blob/main/examples/apple2_test/apple2_test.ino#L12-L20
And this is the mentioned sync sensor?
https://applesaucefdc.com/hardware/all-about-sync-sensors/
I'll try to go from here, if I have further questions I'll open an issue in the Adafruit floppy repo.
Thanks for your inputs everyone
Let me know if you get it working and I'll update the FluxEngine docs.
This block in greaseweazle.ino is the pinout I used. Contrary to what the docs say I don't think this mode can work with a genuine greaseweazle.
#if defined (ARDUINO_ADAFRUIT_FEATHER_RP2040)
// jepler's prototype board, subject to change
#define APPLE2_PHASE1_PIN (A2) // IDC 2
#define APPLE2_PHASE2_PIN (13) // IDC 4
#define APPLE2_PHASE3_PIN (12) // IDC 6
#define APPLE2_PHASE4_PIN (11) // IDC 8
#define APPLE2_WRGATE_PIN (10) // IDC 10
#define APPLE2_ENABLE_PIN (8) // D6 // IDC 14
#define APPLE2_RDDATA_PIN (7) // D5 // IDC 16
#define APPLE2_WRDATA_PIN (3) // SCL // IDC 18
#define APPLE2_PROTECT_PIN (2) // SDA // IDC 20
#define APPLE2_INDEX_PIN (A3)
#endif
We haven't tested the functionality yet, but the current revision of Floppsy is mapping side, step, direction & motor pins to the motor phase pins:
Hi greaseweazle devs and @davidgiven
Apparently it's possible to use fluxengine with Apple II drives and GW hardware, but a connector is needed. I can't find any diagram for this and would like to try it.
https://github.com/davidgiven/fluxengine/blob/master/doc/disk-apple2_drive.md
Thanks for any hints