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@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 <a...@offog.org> <http://offog.org/>