Greasweazle: Difference between revisions

From RetroWikipedia
Jump to navigation Jump to search
Created page with "{{Infobox hardware | name = Greaseweazle | image = Greaseweazle_V4.1.jpg | caption = Greaseweazle V4.1 unit | developer = Keir Fraser | release_date = 2018 (initial), latest hardware revisions ongoing | type = Floppy disk flux-level interface | cpu = STM32F103 / STM32F730 / AT32F4xx (varies by model) | connectors = USB-C or Micro-USB, 34-pin floppy ribbon connector, power connector | licensing = Open hardware & software (Unlic..."
 
No edit summary
Line 1: Line 1:
{{Infobox hardware
== Usage Overview (Yann Serra Tutorial) ==
| name        = Greaseweazle
The following condensed guide is based on a tutorial by Yann Serra, contributed to the Greaseweazle project documentation in April 2023.<ref name="yann">{{cite web|url=https://github.com/keirf/greaseweazle/wiki/Yann-Serra-Tutorial|title=Yann Serra Tutorial|publisher=GitHub|date=2023-04-13|access-date=2025-08-11}}</ref>
| image        = Greaseweazle_V4.1.jpg
| caption      = Greaseweazle V4.1 unit
| developer    = Keir Fraser
| release_date = 2018 (initial), latest hardware revisions ongoing
| type        = Floppy disk flux-level interface
| cpu          = STM32F103 / STM32F730 / AT32F4xx (varies by model)
| connectors  = USB-C or Micro-USB, 34-pin floppy ribbon connector, power connector
| licensing    = Open hardware & software (Unlicense for host tools)
| website      = [https://github.com/keirf/greaseweazle GitHub repository]
}}


'''Greaseweazle''' is an open-source USB hardware device, firmware, and host tool suite for reading and writing magnetic flux-level data from floppy disk drives. Designed to support a wide variety of formats, from PC and Amiga to specialist and industrial systems, it provides archival-quality disk imaging capabilities.<ref name="github-main">{{cite web|url=https://github.com/keirf/greaseweazle|title=Greaseweazle main repository|last=Fraser|first=Keir|publisher=GitHub|access-date=2025-08-11}}</ref>
=== Hardware Compatibility ===
Greaseweazle supports standard Shugart and IBM floppy drives:
* **3.5-inch** and **5.25-inch** drives with a 34-pin connector
* **3-inch Amstrad** drives (26-pin, via adapter)
* **8-inch** drives (50-pin, via adapter) 
Commodore (non-Amiga) and Apple Macintosh drives are not directly supported, but their media can often be read/written using a compatible standard-interface drive.
Certain GCR formats (Apple II/Mac, Commodore 64) may require trial-and-error to find a drive with correct bitcell timing.


== Background ==
=== Drive Cabling ===
Greaseweazle was developed by Keir Fraser as a low-cost, open alternative to proprietary flux-level readers such as KryoFlux. The project enables the capture of raw magnetic flux transitions from floppy disks, allowing accurate reproduction and analysis without depending on the original system hardware.<ref name="atariforum">{{cite web|url=https://forums.atariage.com/topic/307756-greaseweazle-new-diy-open-source-alternative-to-kryoflux-and-scp/|title=Greaseweazle discussion thread|publisher=AtariAge Forums|access-date=2025-08-11}}</ref> 
* **IBM standard**: Two drives per cable with a twist; end = drive A, middle = drive B.
Companion software tools allow conversion between raw flux formats (e.g., SCP) and standard disk image formats for use in emulators or preservation archives.<ref name="decromancer">{{cite web|url=https://decromancer.ca/greaseweazle/|title=Greaseweazle Overview|publisher=Decromancer.ca|access-date=2025-08-11}}</ref>
* **Shugart standard**: Flat cable; drive ID set via jumpers (DS0/DS1/DS2). Supports up to three drives.


== Specifications ==
=== Access Levels ===
1. **Sector-level** – Block-mode images (.img, .adf, .st) containing user-accessible data.
2. **Track-level** – Includes format metadata (.imd, .edsk) preserving sector layout, gaps, and copy-protection markers.
3. **Flux-level** – Captures raw magnetic transition data (.scp, .hfe) for exact reproduction.


=== Hardware Models ===
=== Basic Commands ===
* '''F1 (Blue Pill)''': Based on STM32F103 MCU; low-cost, minimal PCB requirements.<ref name="models">{{cite web|url=https://github.com/keirf/greaseweazle/wiki/Greaseweazle-Models|title=Greaseweazle Models|publisher=GitHub Wiki|access-date=2025-08-11}}</ref>
Read disk to image:
* '''F7''': Uses STM32F730 MCU; supports 12 V power and faster transfer rates.
<pre>
* '''V4 / V4.1''': Custom AT32F4xx PCB with USB-C, input protection, jumperless firmware updates, buffered outputs, and multiple drive support.
gw read --format=amiga.amigados MyAmigaDisk.adf --drive=A
</pre>
Write image to disk:
<pre>
gw write --format=amiga.amigados MyAmigaDisk.adf --drive=A
</pre>
Omitting <code>--format</code> and <code>--drive</code> uses defaults based on file extension and drive A.


{{Infobox software
=== Supported Disk Profiles ===
| name        = Greaseweazle Host Tools
Greaseweazle includes predefined format profiles covering dozens of platforms (Acorn, Amiga, Atari ST, Commodore, IBM PC, Macintosh, MSX, NEC PC-98, ZX Spectrum, and others). Each profile defines:
| developer    = Keir Fraser
* Physical geometry (cylinders, heads, RPM)
| latest_release_version = 1.6
* Encoding type (FM, MFM, GCR)
| latest_release_date    = 28 September 2024
* Sector size and count
| operating_system      = Windows, macOS, Linux
Preferred image suffixes depend on the format (e.g., <code>.adf</code> for AmigaDOS, <code>.st</code> for Atari ST, <code>.img</code> for IBM PC)
| platform              = Cross-platform (via Python)
For the full list, see the [https://github.com/keirf/greaseweazle/wiki/Yann-Serra-Tutorial tutorial source].
| license                = Unlicense
| website                = [https://github.com/keirf/greaseweazle GitHub repository]
}}


=== Software and Firmware ===
=== Troubleshooting Common Errors ===
* '''Host tools''': Command-line utilities (`gw`) for imaging and writing disks. Distributed under the Unlicense; installable via `pipx` or available as binaries for Windows.<ref name="software">{{cite web|url=https://github.com/keirf/greaseweazle/wiki/Software-Installation|title=Software Installation|publisher=GitHub Wiki|access-date=2025-08-11}}</ref>
* **No Index** – Incorrect drive ID, no power, or cable inserted incorrectly.
* '''Firmware''': Separate repository; supports all models with latest version 1.6 released on 2024-09-28.<ref name="firmware">{{cite web|url=https://github.com/keirf/greaseweazle-firmware|title=Greaseweazle Firmware|publisher=GitHub|access-date=2025-08-11}}</ref>
* **Track 0 Not Found** – Insufficient drive power or incorrect drive selection.
* **Flux Overflow/Underflow** – USB connection interference; try a different port/cable.
* **Verify Failure** – Possible disk surface damage; clean disk and drive heads.


=== Setup ===
=== Advanced Use Cases ===
For V4.1:
* **Meta-profiles** (<code>ibm.scan</code>, <code>raw.125</code>, etc.) and **meta-images** (.edsk, .imd) for arbitrary sector geometries.
# Connect the floppy drive to Greaseweazle via a standard 34-pin ribbon cable.
* Reading 48-TPI disks with 96-TPI drives using <code>--tracks=:step=2</code>.
# Attach Greaseweazle to the host computer using USB-C.
* Flux-level archiving for copy-protected or unknown formats with <code>--adjust-speed</code> and <code>--raw</code>.
# Apply drive power after USB connection (order is important to prevent damage).<ref name="v41setup">{{cite web|url=https://github.com/keirf/greaseweazle/wiki/V4.1-Setup|title=V4.1 Setup|publisher=GitHub Wiki|access-date=2025-08-11}}</ref>
* Handling “flippy” 5.25-inch disks with drives supporting <code>--fake-index</code>.
# On Windows 8.1, install drivers using Zadig; Windows 10/11 installs automatically.<ref name="software" />


== Impact and Legacy ==
=== External Tools ===
Greaseweazle has become a widely adopted preservation tool within retro-computing communities, valued for its affordability and versatility. Documented cases include successful imaging of thousands of disks, such as over 1,900 Amiga 880 KB floppies without read errors under optimal conditions.<ref name="hn">{{cite web|url=https://news.ycombinator.com/item?id=38701830|title=Greaseweazle discussion|publisher=Hacker News|access-date=2025-08-11}}</ref> 
Greaseweazle flux/image files can be processed with third-party utilities such as:
Its open-source nature has led to adaptations for unusual formats, including Japanese 3-inch disks and 8-inch archival media.<ref name="nfg">{{cite web|url=https://nfggames.com/forum2/index.php?topic=7025.0|title=Greaseweazle for rare disk formats|publisher=NFG Games Forum|access-date=2025-08-11}}</ref>
* **Disk Utilities** – Converts between .scp/.dfi and .ipf.
* **HxC Floppy Emulator** – Converts many exotic formats to/from .hfe/.scp.
* **SamDisk** – Works with additional meta-image formats (.sad, .sbt, .mbd, etc.).
* **a8rawconv** – Converts Atari 8-bit formats.
* **Fluxengine** – Alternative imaging tool supporting additional formats.


== References ==
=== Custom Profiles ===
<references />
Format profiles are stored in <code>diskdefs.cfg</code>. Users can define new profiles in a custom configuration file and load them with:
<pre>
gw read --diskdefs=MyFormats.cfg --format=my.disk.format MyDisk.img
</pre>

Revision as of 21:55, 11 August 2025

Usage Overview (Yann Serra Tutorial)

The following condensed guide is based on a tutorial by Yann Serra, contributed to the Greaseweazle project documentation in April 2023.[1]

Hardware Compatibility

Greaseweazle supports standard Shugart and IBM floppy drives:

  • **3.5-inch** and **5.25-inch** drives with a 34-pin connector
  • **3-inch Amstrad** drives (26-pin, via adapter)
  • **8-inch** drives (50-pin, via adapter)

Commodore (non-Amiga) and Apple Macintosh drives are not directly supported, but their media can often be read/written using a compatible standard-interface drive. Certain GCR formats (Apple II/Mac, Commodore 64) may require trial-and-error to find a drive with correct bitcell timing.

Drive Cabling

  • **IBM standard**: Two drives per cable with a twist; end = drive A, middle = drive B.
  • **Shugart standard**: Flat cable; drive ID set via jumpers (DS0/DS1/DS2). Supports up to three drives.

Access Levels

1. **Sector-level** – Block-mode images (.img, .adf, .st) containing user-accessible data. 2. **Track-level** – Includes format metadata (.imd, .edsk) preserving sector layout, gaps, and copy-protection markers. 3. **Flux-level** – Captures raw magnetic transition data (.scp, .hfe) for exact reproduction.

Basic Commands

Read disk to image:

gw read --format=amiga.amigados MyAmigaDisk.adf --drive=A

Write image to disk:

gw write --format=amiga.amigados MyAmigaDisk.adf --drive=A

Omitting --format and --drive uses defaults based on file extension and drive A.

Supported Disk Profiles

Greaseweazle includes predefined format profiles covering dozens of platforms (Acorn, Amiga, Atari ST, Commodore, IBM PC, Macintosh, MSX, NEC PC-98, ZX Spectrum, and others). Each profile defines:

  • Physical geometry (cylinders, heads, RPM)
  • Encoding type (FM, MFM, GCR)
  • Sector size and count

Preferred image suffixes depend on the format (e.g., .adf for AmigaDOS, .st for Atari ST, .img for IBM PC). For the full list, see the tutorial source.

Troubleshooting Common Errors

  • **No Index** – Incorrect drive ID, no power, or cable inserted incorrectly.
  • **Track 0 Not Found** – Insufficient drive power or incorrect drive selection.
  • **Flux Overflow/Underflow** – USB connection interference; try a different port/cable.
  • **Verify Failure** – Possible disk surface damage; clean disk and drive heads.

Advanced Use Cases

  • **Meta-profiles** (ibm.scan, raw.125, etc.) and **meta-images** (.edsk, .imd) for arbitrary sector geometries.
  • Reading 48-TPI disks with 96-TPI drives using --tracks=…:step=2.
  • Flux-level archiving for copy-protected or unknown formats with --adjust-speed and --raw.
  • Handling “flippy” 5.25-inch disks with drives supporting --fake-index.

External Tools

Greaseweazle flux/image files can be processed with third-party utilities such as:

  • **Disk Utilities** – Converts between .scp/.dfi and .ipf.
  • **HxC Floppy Emulator** – Converts many exotic formats to/from .hfe/.scp.
  • **SamDisk** – Works with additional meta-image formats (.sad, .sbt, .mbd, etc.).
  • **a8rawconv** – Converts Atari 8-bit formats.
  • **Fluxengine** – Alternative imaging tool supporting additional formats.

Custom Profiles

Format profiles are stored in diskdefs.cfg. Users can define new profiles in a custom configuration file and load them with:

gw read --diskdefs=MyFormats.cfg --format=my.disk.format MyDisk.img
  1. "Yann Serra Tutorial". GitHub. 2023-04-13. Retrieved 2025-08-11.