Write OpenSpool / NFC spool tags for the open-firmware Snapmaker U1, so your printer auto-recognizes the filament loaded in your PolyDryer + PolyBox or AMS-style feeders.
SpoolScribe is a small, cross-platform desktop app (Windows / macOS / Linux) that lets you look up a filament by its SKU, see its color, temperatures and density, and generate the OpenSpool JSON payload used to program an RFID/NFC tag. Pair it with the paxx12 Snapmaker U1 firmware fork that exposes the machine's RFID reader, and the U1 can identify each spool automatically.
Made by @ArN-LaB — a for-fun, free-time hobby project, developed when time allows. No roadmap pressure, no commercial intent.
Important
SpoolScribe is an unofficial hobby project. It is not affiliated with Polymaker, Prusa Research, ROSA3D or Snapmaker. See docs/TRADEMARKS.md.
- Instant search across hundreds of Polymaker SKUs, plus curated Prusament (PLA, PETG, ASA, PC Blend — spools and refills) and ROSA3D (PLA Starter/Silk/Pastel/HS, PETG, PCTG, ASA, ABS+, recycled R-PLA/R-PET-G) sets.
- Real color swatches + the brand logo rendered from SVG.
- Filament details: type/subtype, nozzle & bed temps, density (with live override from official OrcaSlicer presets when available).
- One-click OpenSpool / NFC JSON export.
- JSON inspector before you write a tag.
- Optional, consent-gated data updates from open databases.
The Snapmaker U1's firmware was opened up (via the paxx12 fork), exposing the onboard RFID reader. That means spools sitting in PolyDryer + PolyBox dryers or AMS-style multi-material feeders can be identified automatically — if each spool carries a tag describing it. SpoolScribe produces those tags in the open OpenSpool format. Just for fun.
SpoolScribe generates the data; you write it onto the physical tag. For NTAG216 (888-byte / commonly "216") NFC tags, the excellent web tool SpoolFlux works great to flash the payload — it's my go-to for writing 216 NFC tags. (SpoolFlux is a separate third-party project, not affiliated with SpoolScribe.)
python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS / Linux: source .venv/bin/activate
pip install -r requirements.txt
python app_gui.py # graphical app
python convert_profile.py # terminal appThe same PyInstaller spec works on all three OSes (run it on the target OS):
pyinstaller spoolscribe.spec --noconfirmOutput lands in dist/ as a single self-contained file (SpoolScribe.exe
on Windows, SpoolScribe.app on macOS, a SpoolScribe binary on Linux) — no
_internal folder, nothing to install. CI in
.github/workflows/build.yml builds all three
OSes automatically and attaches them (with SHA256 checksums) to a GitHub
Release when you push a v* tag.
SpoolScribe is free, open-source software and the binaries are not code-signed (a signing certificate costs money this hobby project doesn't spend). So Windows SmartScreen may show a blue "Windows protected your PC" prompt the first time you run it.
This is expected for any unsigned app — it is not a virus warning. To run it:
-
Click More info → Run anyway.
-
Or verify the download first: compare the SHA256 of the
.zipagainst the.sha256file published with the release:Get-FileHash .\SpoolScribe-windows.zip -Algorithm SHA256
The executable embeds version metadata, so its Properties → Details and the prompt itself show SpoolScribe by ArN-LaB rather than a blank publisher. Prefer not to trust a binary? Run from source (see above) — the code is all here.
- Offline by default. Nothing leaves your machine unless you opt in.
- Updates are consent-gated and fully disclosed — see docs/PRIVACY.md.
- Data sources and their licenses are documented in docs/DATA_SOURCES.md.
Today SpoolScribe covers Polymaker, Prusament (PLA, PETG, ASA, PC, TPU — spools and refills) and ROSA3D (PLA Silk/Pastel/HS, PETG, PCTG, ASA, ABS+, recycled R-PLA/R-PET-G) with authoritative color codes pulled from open databases. Extending it to more brands is on the roadmap — if and when free time allows.
| Path | Role |
|---|---|
core.py |
Pure business logic (no terminal I/O). Shared by CLI & GUI. |
app_gui.py |
PySide6 (Qt) desktop app. |
convert_profile.py |
Command-line interface. |
scripts/ |
Data-update scrapers + make_icons.py (standard library only). |
data/ |
Bundled database, brand logos and app icons. |
orca_profiles/ |
Official OrcaSlicer presets (temperature overrides). |
- docs/PRIVACY.md — network transparency & consent
- docs/DATA_SOURCES.md — sources & licenses
- docs/TRADEMARKS.md — trademarks & non-affiliation
- docs/ROADMAP.md — ideas for future versions
- .github/CONTRIBUTING.md — how to help
- .github/SECURITY.md — reporting issues
- CHANGELOG.md — version history
- Wiki — starter pages in
docs/wiki/(copy into the GitHub Wiki)
- SpoolmanDB (MIT)
- Open Filament Database (MIT)
- Polymaker-Preset (MIT)
- TheFilamentDB (CC-BY 4.0)
- OpenSpool format
- SpoolFlux — web tool I use to write 216 NFC tags
- The paxx12 Snapmaker U1 firmware fork that makes the RFID reader usable
Source code: MIT — see LICENSE. Datasets and brand assets keep their own licenses (see docs/DATA_SOURCES.md and docs/TRADEMARKS.md).