Greasweazle: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
== | <!-- Side-by-side infoboxes --> | ||
<div style="float:right; display:flex; flex-direction:row; gap:10px; align-items:flex-start; margin:0 0 10px 10px;"> | |||
<div> | |||
{{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 (Unlicense for host tools) | |||
| website = [https://github.com/keirf/greaseweazle GitHub repository] | |||
}} | |||
</div> | |||
<div> | |||
{{Infobox software | |||
| name = Greaseweazle Host Tools | |||
| developer = Keir Fraser | |||
| latest_release_version = 1.6 | |||
| latest_release_date = 28 September 2024 | |||
| operating_system = Windows, macOS, Linux | |||
| platform = Cross-platform (via Python) | |||
| license = Unlicense | |||
| website = [https://github.com/keirf/greaseweazle GitHub repository] | |||
}} | |||
</div> | |||
</div> | |||
'''Greaseweazle''' is an open-source hardware and software system for imaging and writing floppy disks at the magnetic flux level. Developed by [[Keir Fraser]], it supports a wide range of disk formats and is widely used in data recovery, retro-computing preservation, and digital archiving.<ref name="gw-main">{{cite web|url=https://github.com/keirf/greaseweazle|title=Greaseweazle Main Repository|publisher=GitHub|access-date=2025-08-11}}</ref> | |||
Greaseweazle | The project’s openness, affordability, and broad compatibility have made it a key alternative to proprietary solutions such as KryoFlux.<ref name="decromancer">{{cite web|url=https://decromancer.ca/greaseweazle/|title=Greaseweazle Overview|publisher=Decromancer|access-date=2025-08-11}}</ref> | ||
=== | == Background == | ||
* ** | Greaseweazle originated in 2018 as a personal project by Keir Fraser, known in retro-computing circles for his work on open hardware and firmware for disk imaging. Early iterations were based on inexpensive STM32F103 "Blue Pill" boards before evolving into dedicated PCBs with enhanced electrical protection, higher performance MCUs, and USB-C connectivity.<ref name="gw-wiki">{{cite web|url=https://github.com/keirf/greaseweazle/wiki|title=Greaseweazle Documentation|publisher=GitHub Wiki|access-date=2025-08-11}}</ref> | ||
* **Shugart | The project has since built a community of contributors and users, including preservationists, hobbyists, and software historians. | ||
== Specifications == | |||
=== Hardware Models === | |||
* '''F1 (Blue Pill)''': STM32F103 MCU; low-cost entry model. | |||
* '''F7''': STM32F730 MCU; adds 12 V support and faster USB transfer. | |||
* '''V4 / V4.1''': AT32F4xx MCU; USB-C, input protection, multiple drive support, jumperless firmware updates.<ref name="gw-wiki" /> | |||
=== Host Software === | |||
* Command-line utility <code>gw</code> written in Python 3. | |||
* Works on Windows, macOS, Linux, and Raspberry Pi. | |||
* Distributed under the Unlicense.<ref name="gw-main" /> | |||
=== Disk Interface Support === | |||
* Works with standard Shugart- and IBM-interface drives: | |||
** 3.5-inch and 5.25-inch (34-pin) | |||
** 3-inch Amstrad (26-pin, via adapter) | |||
** 8-inch (50-pin, via adapter) | |||
* Reads/writes MFM, FM, and GCR encoded formats (with drive compatibility caveats).<ref name="yann">{{cite web|url=https://github.com/keirf/greaseweazle/wiki/Yann-Serra-Tutorial|title=Yann Serra Tutorial|publisher=GitHub Wiki|access-date=2025-08-11}}</ref> | |||
== Usage == | |||
A widely referenced [[Yann Serra Tutorial]] (contributed April 2023) provides a structured guide to operation.<ref name="yann" /> Key points include: | |||
=== Access Levels === | === Access Levels === | ||
# **Sector-level**: User-visible data in block-mode images (.img, .adf, .st, etc.). | |||
# **Track-level**: Preserves formatting, sector layout, and copy-protection metadata (.imd, .edsk). | |||
# **Flux-level**: Captures raw magnetic transitions (.scp, .hfe) for exact reproduction. | |||
=== Basic Commands === | === Basic Commands === | ||
Reading an AmigaDOS disk: | |||
<pre> | <pre> | ||
gw read --format=amiga.amigados | gw read --format=amiga.amigados MyDisk.adf --drive=A | ||
</pre> | </pre> | ||
Writing back: | |||
<pre> | <pre> | ||
gw write --format=amiga.amigados | gw write --format=amiga.amigados MyDisk.adf --drive=A | ||
</pre> | </pre> | ||
Defaults can be inferred from file extension and cable position. | |||
=== Supported | === Supported Profiles === | ||
The <code>gw</code> tool includes predefined profiles for dozens of systems: Acorn, Amiga, Atari ST, Commodore, IBM PC, Macintosh, MSX, NEC PC-98, ZX Spectrum, and more. | |||
Each profile specifies geometry, encoding, and recommended image suffix. | |||
=== Troubleshooting | === Troubleshooting === | ||
* **No Index** – Incorrect drive ID | * **No Index** – Incorrect drive ID or power issue. | ||
* **Track 0 Not Found** – Insufficient drive power or | * **Track 0 Not Found** – Insufficient drive power or wrong drive selection. | ||
* **Flux Overflow/Underflow** – USB | * **Flux Overflow/Underflow** – USB interference; change port or cable. | ||
* **Verify Failure** – | * **Verify Failure** – Disk surface damage; clean disk and heads. | ||
=== Advanced Use | === Advanced Use === | ||
* **Meta-profiles** (<code>ibm.scan</code>, <code>raw. | * **Meta-profiles** (<code>ibm.scan</code>, <code>raw.250</code>, etc.) capture arbitrary sector geometries. | ||
* Reading 48-TPI disks with 96-TPI drives | * Reading 48-TPI disks with 96-TPI drives via <code>--tracks=…:step=2</code>. | ||
* Flux-level archiving | * **Flux-level** archiving with <code>--adjust-speed</code> and <code>--raw</code> for copy-protected media. | ||
* | * Support for certain “flippy” 5.25-inch disks using <code>--fake-index</code> on compatible drives. | ||
=== | === Third-Party Tools === | ||
* **Disk Utilities** – .scp ↔ .ipf conversion. | |||
* **Disk Utilities** – | * **HxC Floppy Emulator** – Exotic format conversions to/from .hfe/.scp. | ||
* **HxC Floppy Emulator** – | * **SamDisk** – Additional meta-image conversions. | ||
* **SamDisk** – | * **a8rawconv** – Atari 8-bit conversions. | ||
* **a8rawconv** – | * **Fluxengine** – Alternative imaging command. | ||
* **Fluxengine** – Alternative imaging | |||
=== Custom Profiles === | === Custom Profiles === | ||
Profiles are stored in <code>diskdefs.cfg</code> and can be extended by the user via <code>--diskdefs</code>. | |||
< | |||
== Importance in Preservation == | |||
</ | Greaseweazle has become a staple in retro-computing preservation workflows due to: | ||
* **Openness** – Both hardware and software are under permissive licenses. | |||
* **Low cost** – Uses commodity microcontrollers and standard cables. | |||
* **Broad compatibility** – Supports dozens of legacy formats across multiple computing platforms. | |||
* **Community knowledge base** – Extensive guides, including the Yann Serra tutorial, help non-experts recover and preserve data.<ref name="hn">{{cite web|url=https://news.ycombinator.com/item?id=39961245|title=Discussion on Greaseweazle and retrocomputing|publisher=Hacker News|access-date=2025-08-11}}</ref> | |||
== Key People == | |||
* **Keir Fraser** – Project founder and lead developer. | |||
* **Yann Serra** – Contributor of the widely cited usage tutorial. | |||
* Community contributors via GitHub issues, pull requests, and Wiki edits. | |||
== Appendix: Supported Disk Profiles == | |||
{{Collapse top|title=Click to show/hide full disk profile table from Yann Serra Tutorial}} | |||
The following is adapted from the [[Yann Serra Tutorial]] and lists supported disk profiles, geometry, encoding, and preferred image suffixes. | |||
<!-- Example condensed table format; full list would follow this pattern --> | |||
{| class="wikitable sortable" | |||
! System !! Profile !! Sides !! Cyls !! RPM !! kbit/s !! Sect/trk !! Bytes/sect !! Encoding !! Size (KB) !! Suffix | |||
|- | |||
| Acorn BBC || acorn.adfs.320 || 1 || 80 || 300 || 250 || 16 || 256 || MFM || 320 || .adm | |||
|- | |||
| Amiga || amiga.amigados || 2 || 80 || 300 || 250 || 11 || 512 || AMFM || 880 || .adf | |||
|- | |||
| Atari ST || atarist.720 || 2 || 80 || 300 || 250 || 9 || 512 || MFM || 720 || .st, .msa | |||
|- | |||
| IBM PC || ibm.1440 || 2 || 80 || 300 || 500 || 18 || 512 || MFM-HD || 1440 || .img, .dsk | |||
|- | |||
| Macintosh 68K || mac.800 || 2 || 80 || VAR || 375 || 12-8 || 512 || GCR || 800 || .dsk | |||
|- | |||
| ZX Spectrum || zx.trdos.640 || 2 || 80 || 300 || 250 || 16 || 256 || MFM || 640 || .mgt, .dsk | |||
|- | |||
| NEC PC-98 || pc98.2hs || 2 || 81 || 300 || 500 || 9 || 1024 || MFM-HD || 1458 || .hdm, .xdf | |||
|} | |||
''(Full extended tables, including 3.5", 5.25", 8", and 3" formats, are documented in the official tutorial.)'' | |||
{{Collapse bottom}} | |||
== References == | |||
<references /> |
Revision as of 21:59, 11 August 2025
Greaseweazle | |
---|---|
File:Greaseweazle V4.1.jpg | |
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 | GitHub repository |
Greaseweazle is an open-source hardware and software system for imaging and writing floppy disks at the magnetic flux level. Developed by Keir Fraser, it supports a wide range of disk formats and is widely used in data recovery, retro-computing preservation, and digital archiving.[1] The project’s openness, affordability, and broad compatibility have made it a key alternative to proprietary solutions such as KryoFlux.[2]
Background
Greaseweazle originated in 2018 as a personal project by Keir Fraser, known in retro-computing circles for his work on open hardware and firmware for disk imaging. Early iterations were based on inexpensive STM32F103 "Blue Pill" boards before evolving into dedicated PCBs with enhanced electrical protection, higher performance MCUs, and USB-C connectivity.[3] The project has since built a community of contributors and users, including preservationists, hobbyists, and software historians.
Specifications
Hardware Models
- F1 (Blue Pill): STM32F103 MCU; low-cost entry model.
- F7: STM32F730 MCU; adds 12 V support and faster USB transfer.
- V4 / V4.1: AT32F4xx MCU; USB-C, input protection, multiple drive support, jumperless firmware updates.[3]
Host Software
- Command-line utility
gw
written in Python 3. - Works on Windows, macOS, Linux, and Raspberry Pi.
- Distributed under the Unlicense.[1]
Disk Interface Support
- Works with standard Shugart- and IBM-interface drives:
- 3.5-inch and 5.25-inch (34-pin)
- 3-inch Amstrad (26-pin, via adapter)
- 8-inch (50-pin, via adapter)
- Reads/writes MFM, FM, and GCR encoded formats (with drive compatibility caveats).[4]
Usage
A widely referenced Yann Serra Tutorial (contributed April 2023) provides a structured guide to operation.[4] Key points include:
Access Levels
- **Sector-level**: User-visible data in block-mode images (.img, .adf, .st, etc.).
- **Track-level**: Preserves formatting, sector layout, and copy-protection metadata (.imd, .edsk).
- **Flux-level**: Captures raw magnetic transitions (.scp, .hfe) for exact reproduction.
Basic Commands
Reading an AmigaDOS disk:
gw read --format=amiga.amigados MyDisk.adf --drive=A
Writing back:
gw write --format=amiga.amigados MyDisk.adf --drive=A
Defaults can be inferred from file extension and cable position.
Supported Profiles
The gw
tool includes predefined profiles for dozens of systems: Acorn, Amiga, Atari ST, Commodore, IBM PC, Macintosh, MSX, NEC PC-98, ZX Spectrum, and more.
Each profile specifies geometry, encoding, and recommended image suffix.
Troubleshooting
- **No Index** – Incorrect drive ID or power issue.
- **Track 0 Not Found** – Insufficient drive power or wrong drive selection.
- **Flux Overflow/Underflow** – USB interference; change port or cable.
- **Verify Failure** – Disk surface damage; clean disk and heads.
Advanced Use
- **Meta-profiles** (
ibm.scan
,raw.250
, etc.) capture arbitrary sector geometries. - Reading 48-TPI disks with 96-TPI drives via
--tracks=…:step=2
. - **Flux-level** archiving with
--adjust-speed
and--raw
for copy-protected media. - Support for certain “flippy” 5.25-inch disks using
--fake-index
on compatible drives.
Third-Party Tools
- **Disk Utilities** – .scp ↔ .ipf conversion.
- **HxC Floppy Emulator** – Exotic format conversions to/from .hfe/.scp.
- **SamDisk** – Additional meta-image conversions.
- **a8rawconv** – Atari 8-bit conversions.
- **Fluxengine** – Alternative imaging command.
Custom Profiles
Profiles are stored in diskdefs.cfg
and can be extended by the user via --diskdefs
.
Importance in Preservation
Greaseweazle has become a staple in retro-computing preservation workflows due to:
- **Openness** – Both hardware and software are under permissive licenses.
- **Low cost** – Uses commodity microcontrollers and standard cables.
- **Broad compatibility** – Supports dozens of legacy formats across multiple computing platforms.
- **Community knowledge base** – Extensive guides, including the Yann Serra tutorial, help non-experts recover and preserve data.[5]
Key People
- **Keir Fraser** – Project founder and lead developer.
- **Yann Serra** – Contributor of the widely cited usage tutorial.
- Community contributors via GitHub issues, pull requests, and Wiki edits.
Appendix: Supported Disk Profiles
Greaseweazle Host Tools | |
---|---|
Developer | Keir Fraser |
Latest release |
1.6(28 September 2024) |
Operating system |
Click to show/hide full disk profile table from Yann Serra Tutorial
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
The following is adapted from the Yann Serra Tutorial and lists supported disk profiles, geometry, encoding, and preferred image suffixes.
(Full extended tables, including 3.5", 5.25", 8", and 3" formats, are documented in the official tutorial.) |
References
- ↑ 1.0 1.1 "Greaseweazle Main Repository". GitHub. Retrieved 2025-08-11.
- ↑ "Greaseweazle Overview". Decromancer. Retrieved 2025-08-11.
- ↑ 3.0 3.1 "Greaseweazle Documentation". GitHub Wiki. Retrieved 2025-08-11.
- ↑ 4.0 4.1 "Yann Serra Tutorial". GitHub Wiki. Retrieved 2025-08-11.
- ↑ "Discussion on Greaseweazle and retrocomputing". Hacker News. Retrieved 2025-08-11.