Greasweazle: Difference between revisions
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 |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Infobox hardware | <!-- Side-by-side infoboxes --> | ||
| name = Greaseweazle | <div style="float:right; display:flex; flex-direction:row; gap:10px; align-items:flex-start; margin:0 0 10px 10px;"> | ||
| image = Greaseweazle_V4.1.jpg | <div> | ||
| caption = Greaseweazle V4.1 unit | {{Infobox hardware | ||
| developer = Keir Fraser | | name = Greaseweazle | ||
| release_date = 2018 (initial), | | image = Greaseweazle_V4.1.jpg | ||
| type = Floppy disk flux-level interface | | caption = Greaseweazle V4.1 unit | ||
| cpu = STM32F103 / STM32F730 / AT32F4xx (varies by model) | | developer = Keir Fraser | ||
| connectors = USB-C or Micro-USB | | release_date = 2018 (initial), ongoing revisions | ||
| licensing = Open hardware & software (Unlicense for host tools) | | type = Floppy disk flux-level interface | ||
| website = [https://github.com/keirf/greaseweazle GitHub repository] | | cpu = STM32F103 / STM32F730 / AT32F4xx (varies by model) | ||
}} | | connectors = USB-C or Micro-USB; 34-pin floppy ribbon; 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 | '''Greaseweazle''' is an open-source hardware–software system designed for imaging and writing floppy disks at the magnetic flux level. Developed by [[Keir Fraser]], it supports a broad 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> | ||
Its openness, affordability, and compatibility have made it a recognised 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 == | == Background == | ||
Greaseweazle | Greaseweazle began in 2018 as a personal project by Keir Fraser, known in retro-computing circles for developing open hardware and firmware for disk imaging. Initial versions used low-cost STM32F103 “Blue Pill” boards before evolving into custom PCBs with improved electrical protection, faster microcontrollers, 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> | ||
The project has since fostered a community of contributors and users, including preservationists, hobbyists, and computing historians. | |||
== Specifications == | == Specifications == | ||
=== Hardware Models === | === Hardware Models === | ||
* '''F1 (Blue Pill)''': | * '''F1 (Blue Pill)''': STM32F103 MCU; entry-level design. | ||
* '''F7''': | * '''F7''': STM32F730 MCU; adds 12 V support and faster USB transfer rates. | ||
* '''V4 / V4.1''': | * '''V4 / V4.1''': AT32F4xx MCU; USB-C, input protection, multiple-drive support, jumperless firmware updates.<ref name="gw-wiki" /> | ||
=== Host Software === | |||
* Command-line tool <code>gw</code> implemented in Python 3. | |||
* Compatible with Windows, macOS, Linux, and Raspberry Pi. | |||
* Released under the Unlicense.<ref name="gw-main" /> | |||
=== | === Disk Interface Support === | ||
* | * 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 and writes MFM, FM, and GCR encoded formats, subject to drive compatibility.<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]] (April 2023) offers structured guidance on using the system.<ref name="yann" /> | |||
== | === Access Levels === | ||
Greaseweazle | # '''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: | |||
<pre> | |||
gw read --format=amiga.amigados MyDisk.adf --drive=A | |||
</pre> | |||
Writing an image back: | |||
<pre> | |||
gw write --format=amiga.amigados MyDisk.adf --drive=A | |||
</pre> | |||
Defaults are inferred from the file extension and cable position. | |||
=== Supported Profiles === | |||
The <code>gw</code> tool includes predefined profiles for dozens of systems, including Acorn, Amiga, Atari ST, Commodore, IBM PC, Macintosh, MSX, NEC PC-98, and ZX Spectrum. Each profile specifies geometry, encoding, and a recommended image suffix. | |||
=== Troubleshooting === | |||
* '''No Index''' – Incorrect drive ID or power issue. | |||
* '''Track 0 Not Found''' – Insufficient drive power or incorrect drive selection. | |||
* '''Flux Overflow/Underflow''' – USB interference; try another port or cable. | |||
* '''Verify Failure''' – Possible disk damage; clean the disk and drive heads. | |||
=== Advanced Use === | |||
* **Meta-profiles** (<code>ibm.scan</code>, <code>raw.250</code>, etc.) allow capturing arbitrary sector geometries. | |||
* Reading 48-TPI disks with 96-TPI drives via <code>--tracks=…:step=2</code>. | |||
* Flux-level archiving with <code>--adjust-speed</code> and <code>--raw</code> for copy-protected media. | |||
* Support for certain “flippy” 5.25-inch disks via <code>--fake-index</code> on compatible drives. | |||
=== Third-Party Tools === | |||
* **Disk Utilities** – .scp ↔ .ipf conversion. | |||
* **HxC Floppy Emulator** – Conversion of exotic formats to/from .hfe/.scp. | |||
* **SamDisk** – Meta-image format conversions. | |||
* **a8rawconv** – Atari 8-bit image conversions. | |||
* **Fluxengine** – Alternative imaging software. | |||
=== Custom Profiles === | |||
Profiles are stored in <code>diskdefs.cfg</code> and can be extended with <code>--diskdefs</code>. | |||
== Importance in Preservation == | |||
Greaseweazle is widely used in retro-computing preservation workflows due to: | |||
* '''Openness''' – Both hardware and software use permissive licences. | |||
* '''Affordability''' – Uses commodity microcontrollers and standard cables. | |||
* '''Compatibility''' – Supports many legacy formats across diverse computing platforms. | |||
* '''Community resources''' – Documentation, tutorials, and forums assist users in data recovery.<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 a widely used usage tutorial. | |||
* Community contributors via GitHub, wiki, and forums. | |||
== Appendix: Supported Disk Profiles == | |||
{{Collapse top|title=Click to show/hide full disk profile table from Yann Serra Tutorial}} | |||
Adapted from the [[Yann Serra Tutorial]], the following table lists selected supported disk profiles with geometry, encoding, and preferred suffixes. | |||
{| 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 for 3.5", 5.25", 8", and 3" formats are available in the official tutorial.'' | |||
{{Collapse bottom}} | |||
== References == | == References == | ||
<references /> | <references /> |
Latest revision as of 22:00, 11 August 2025
Greaseweazle | |
---|---|
File:Greaseweazle V4.1.jpg | |
Greaseweazle V4.1 unit | |
Developer | Keir Fraser |
Release date | 2018 (initial), ongoing revisions |
Type | Floppy disk flux-level interface |
CPU | STM32F103 / STM32F730 / AT32F4xx (varies by model) |
Connectors | USB-C or Micro-USB; 34-pin floppy ribbon; power connector |
Licensing | Open hardware & software (Unlicense for host tools) |
Website | GitHub repository |
Greaseweazle is an open-source hardware–software system designed for imaging and writing floppy disks at the magnetic flux level. Developed by Keir Fraser, it supports a broad range of disk formats and is widely used in data recovery, retro-computing preservation, and digital archiving.[1] Its openness, affordability, and compatibility have made it a recognised alternative to proprietary solutions such as KryoFlux.[2]
Background
Greaseweazle began in 2018 as a personal project by Keir Fraser, known in retro-computing circles for developing open hardware and firmware for disk imaging. Initial versions used low-cost STM32F103 “Blue Pill” boards before evolving into custom PCBs with improved electrical protection, faster microcontrollers, and USB-C connectivity.[3] The project has since fostered a community of contributors and users, including preservationists, hobbyists, and computing historians.
Specifications
Hardware Models
- F1 (Blue Pill): STM32F103 MCU; entry-level design.
- F7: STM32F730 MCU; adds 12 V support and faster USB transfer rates.
- V4 / V4.1: AT32F4xx MCU; USB-C, input protection, multiple-drive support, jumperless firmware updates.[3]
Host Software
- Command-line tool
gw
implemented in Python 3. - Compatible with Windows, macOS, Linux, and Raspberry Pi.
- Released under the Unlicense.[1]
Disk Interface Support
- 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 and writes MFM, FM, and GCR encoded formats, subject to drive compatibility.[4]
Usage
A widely referenced Yann Serra Tutorial (April 2023) offers structured guidance on using the system.[4]
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 an image back:
gw write --format=amiga.amigados MyDisk.adf --drive=A
Defaults are inferred from the file extension and cable position.
Supported Profiles
The gw
tool includes predefined profiles for dozens of systems, including Acorn, Amiga, Atari ST, Commodore, IBM PC, Macintosh, MSX, NEC PC-98, and ZX Spectrum. Each profile specifies geometry, encoding, and a recommended image suffix.
Troubleshooting
- No Index – Incorrect drive ID or power issue.
- Track 0 Not Found – Insufficient drive power or incorrect drive selection.
- Flux Overflow/Underflow – USB interference; try another port or cable.
- Verify Failure – Possible disk damage; clean the disk and drive heads.
Advanced Use
- **Meta-profiles** (
ibm.scan
,raw.250
, etc.) allow capturing 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 via
--fake-index
on compatible drives.
Third-Party Tools
- **Disk Utilities** – .scp ↔ .ipf conversion.
- **HxC Floppy Emulator** – Conversion of exotic formats to/from .hfe/.scp.
- **SamDisk** – Meta-image format conversions.
- **a8rawconv** – Atari 8-bit image conversions.
- **Fluxengine** – Alternative imaging software.
Custom Profiles
Profiles are stored in diskdefs.cfg
and can be extended with --diskdefs
.
Importance in Preservation
Greaseweazle is widely used in retro-computing preservation workflows due to:
- Openness – Both hardware and software use permissive licences.
- Affordability – Uses commodity microcontrollers and standard cables.
- Compatibility – Supports many legacy formats across diverse computing platforms.
- Community resources – Documentation, tutorials, and forums assist users in data recovery.[5]
Key People
- Keir Fraser – Project founder and lead developer.
- Yann Serra – Contributor of a widely used usage tutorial.
- Community contributors via GitHub, wiki, and forums.
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
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Adapted from the Yann Serra Tutorial, the following table lists selected supported disk profiles with geometry, encoding, and preferred suffixes.
Full extended tables for 3.5", 5.25", 8", and 3" formats are available 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.