Hi Tony,
I recently built the simplest "F1" version of Keir Fraser's
Greaseweazle, and it works fine with a 3.5" drive. I'm using Linux, so
my software recommendations may not be the same as you're after, but for
reference here's what I did...
Tony Duell via cctalk <cctalk(a)classiccmp.org> writes:
So what I am asking is for people to describe what to
do as in :
Buy this microcontroller board
A "blue pill" STM32F103C8T6 board. I bought a bag of 10 of these from an
eBay seller in 2016, but they are still available from many suppliers.
I've used a few of them for different projects -- they have a fast ARM
CPU and lots of IO pins, but not much RAM.
Be careful that there are also similar boards with "compatible" chips
that may or may not work. The Greaseweazle project includes a test
program that you can upload to the board (in the same way as the
firmware below) to check whether a board will work.
https://github.com/keirf/greaseweazle/wiki/STM32-Fakes
Buy this blank PCB and solder the components given in
the BOM to it.
The schematics for the various versions of the interface are here:
https://github.com/keirf/greaseweazle/wiki/Design-Files
The F1 circuit is so simple that I just built it on stripboard (using a
hacksaw to split the tracks for the floppy connector). It connects the
STM32's output pins directly to the floppy drive's inputs, which
apparently doesn't work reliably with 5.25" drives; I will probably
build a version with buffered outputs at some point.
Download this software and install it by doing this.
Precompiled binaries of the Greaseweazle firmware for the STM32 are
available here:
https://github.com/keirf/greaseweazle-firmware/releases/
I installed it by connecting a USB 3.3V serial adaptor to the STM32's
serial pins, moving the boot mode jumper on the STM32 board to the
programming position, pushing the reset button, and running:
stm32flash -b 115200 -w hex/greaseweazle-firmware-f1-1.3.hex /dev/ttyUSB0
That's this tool:
https://sourceforge.net/p/stm32flash/wiki/Home/
I then moved the jumper back to the normal position, disconnected the
serial cable, plugged the board's USB connector into my computer, and it
initialised happily as a USB device.
(I did try building the firmware from source as well, but the result
failed to complete USB initialisation -- I probably have a newer version
of GCC than the developers are using. The Greaseweazle docs describe how
to install the firmware a different way if you have a dedicated STM32
programming device.)
Connect a standard floppy drive to this connector
I used an ex-PC 3.5" drive and cable. The F1 circuit connects all the
drive select pins together so it only supports one drive, but both
twisted and non-twisted cables will work. The fancier versions of the
circuit feed the drive selects individually.
Run the software, specify the disk image file and sit
back.
The host software, written in Python, is available here:
https://github.com/keirf/greaseweazle/wiki/Download-Host-Tools
It detects the USB device automatically if it's attached -- you don't
have to configure anything.
You can read a disk into an image file, assuming the disk is in a format
that the tools know about, with a command like:
gw read --format ibm.1440 MyDisk.img
This will verify sector checksums as it goes and reread tracks if errors
are detected. You can also read the raw flux transitions by specifying
"raw" format, and process it later with disk-utilities.
You can write an image file to a disk with a similar command:
gw write --format amiga.amigados MyDisk.adf
It's also apparently possible to use David Given's FluxEngine program to
do the same kinds of thing -- I've not tried this yet but it looks
interesting:
http://cowlark.com/fluxengine/
Hope this helps,
--
Adam Sampson <ats(a)offog.org> <http://offog.org/>