Custom Snapmaker U1 Firmware

Spoolman Integration

Automatic filament metadata sync and spool tracking via Spoolman.

What It Provides

Enabling

Enable via Fluidd/Mainsail settings under Snapmaker Components > Spoolman Integration, set the Spoolman host, and reboot. Set the same toggle to Disabled to turn it off.

Apps

Community apps that support SpoolLink, so scanning a tag resolves its spool automatically when the filament is loaded:

App Author Platform Reads SpoolLink support Legacy Spools Source Support the author
SpoolLink (Android) paxx12 Android (releases; or build from source) OpenSpool; any tag by UID (NTAG, Mifare Classic) Reference implementation — links tags to spools by UID, pre-fills from OpenSpool tags ✅ (see notes) GitHub (GPL-3.0)
SpoolLink (iOS) paxx12 iOS (releases IPA — sideload via AltStore or similar; building from source requires a paid Apple Developer account for the NFC entitlement) OpenSpool; any tag by UID (NTAG only — no Mifare Classic on iOS) Reference implementation — links tags to spools by UID, pre-fills from OpenSpool tags ✅ (see notes) GitHub (GPL-3.0)
SpoolPainter ni4223 Android (Google Play) OpenSpool; Bambu Lab, Snapmaker, QIDI, Anycubic, Elegoo, Creality (vendor decode + prefill; Bambu Lab and Creality need a per-brand key); any tag by UID for pairing Links tags to spools; create-and-pair spools, multi-tag binding, vendor tag pairing ✅ (see notes) GitHub (GPL-3.0) Snapmaker Store
SpoolKid Marco iOS (TestFlight beta; build from source) OpenSpool, OpenTag3D, ELEGOO, Anycubic ACE; any other tag by UID (including Mifare Classic) Links tag UIDs to spools, including UID-only linking for Mifare Classic and other tags it can’t otherwise read GitHub (MIT) Ko-fi
SpoolTagger NiftyBits Windows, Linux (desktop, ACR122U USB NFC reader; releases) OpenSpool (NTAG); Mifare Classic by UID only Links tags to spools (up to 2 tags per spool) ✅ (see notes) Codeberg (MIT) Buy Me A Coffee
3DMRP MKloberg Self-hosted (Windows; releases), phone via Chrome on Android Any tag by UID (Web NFC scan-to-select; no content parsing) Print-farm manager — links tags to spools, NFC scan-to-select; also AFC lane control and U1 touchscreen mirror – (see notes) GitHub (source) Buy Me A Coffee
Spool Studio GeorgHo Android OpenSpool; Bambu Lab (with user-provided key); legacy Spool Studio tags (for conversion); any tag by UID Links tags to spools via NFC card UID; writes Paxx12-compatible OpenSpool tags and shows the printer-reported toolhead status ✅ (see notes) GitHub (MIT)

Notes:

External Readers

Community hardware readers push detected tags to the same filament_detect/set webhook the printer’s built-in readers use. For a tag to resolve a Spoolman spool by UID, the reader must report the UID for every detected tag — even one it can’t otherwise read — the same way OpenRFID falls back to a UID-only report when a tag can’t be parsed:

Project Author SpoolLink support Source Support the author
External - wasikuss: snapmaker-u1-remote-rfid-reader wasikuss Partial — only reports a tag when its payload validates as OpenSpool JSON; unreadable, blank, or vendor-format tags are never reported, so those spools can’t be resolved by UID GitHub (MIT)
External - baze: snapmaker-u1-drybox-nfc-reader baze Full — reports the UID for every detected tag by default (“UID-only” mode); can optionally switch to a full-read mode that also sends OpenSpool metadata, but then skips tags that aren’t valid OpenSpool GitLab (CC BY-NC 4.0)

Hardware and setup details for both readers are in RFID Format & Reader Design.

GCode Commands

SET_SPOOL_ID

Assign a Spoolman spool to an AFC lane. Reads the lane’s RFID card UID, binds it to the spool (so a later scan resolves automatically), and applies the filament metadata to the channel:

SET_SPOOL_ID LANE=E0 SPOOL_ID=5
Parameter Default Description
LANE AFC lane name (e.g. E0)
SPOOL_ID 0 Spoolman spool ID; 0 clears the assignment

Known Conflicts

Limitations

For the wire format, custom fields, and component flow see the design notes. For AFC lane status that surfaces spool_id see AFC-Lite.