The Snapmaker U1 automatically detects filament properties by reading RFID tags on spools.
Firmware Support:
| Feature | OpenSpool 🏆 | OpenPrintTag | OpenTag3D | Snapmaker |
|---|---|---|---|---|
| Tag Type | NTAG215 (540 bytes) / NTAG216 (888 bytes) | ISO15693/SLIX2 | NTAG215/216 or ISO15693/SLIX2 | Mifare Classic 1K |
| Encoding | JSON (NDEF) | CBOR (NDEF) | Binary | Proprietary + RSA signature |
| Data Format | Human-readable JSON | Compact CBOR binary | Binary | Encrypted proprietary |
| Specification | openspool.io | specs.openprinttag.org | OpenTag3D | Proprietary (closed) |
| GitHub Repository | spuder/OpenSpool | prusa3d/OpenPrintTag | queengooborg/OpenTag3D | N/A |
| Popularity | ⭐⭐⭐ (623 stars) | ⭐⭐ (213 stars) | ⭐ (17 stars) | N/A |
| Programming Tools | Any NDEF-capable NFC app | Prusa app only | opentag3d.info/make | Snapmaker official only |
| U1 Compatible | ✅ Yes (extended firmware) | ❌ No (ISO15693 not supported) | ⚠️ Not implemented yet | ✅ Yes (all firmware) |
| Ease of Programming | Easy (any NFC app) | Medium (requires Prusa app) | Medium (web-based tool) | Hard (official tags only) |
| Data Portability | High (simple JSON) | High (open CBOR spec) | Medium (binary format) | None (proprietary) |
🏆 = Recommended for U1 (NTAG215 is the sweet spot for capacity and compatibility)
Tags are automatically read when filament is loaded into the feeder. Tag data clears when filament is removed.
Manual Commands:
FILAMENT_DT_UPDATE CHANNEL=<n>FILAMENT_DT_CLEAR CHANNEL=<n>FILAMENT_DT_QUERY CHANNEL=<n>Quick Setup:
Alternative: Use any NFC app that supports NDEF with JSON (MIME type: application/json)
Example payload:
{
"protocol": "openspool",
"version": "1.0",
"brand": "Generic",
"type": "PLA",
"color_hex": "#FF0000",
"min_temp": 190,
"max_temp": 220,
"bed_min_temp": 50,
"bed_max_temp": 60
}
Using the non-standard OpenSpool subtype field it is possible to specify a material subtype:
{
"protocol": "openspool",
"version": "1.0",
"type": "PETG",
"subtype": "Rapid",
"color_hex": "AFAFAF",
"additional_color_hexes": ["EEFFEE","FF00FF"],
"alpha": "FF",
"brand": "Elegoo",
"min_temp": "230",
"max_temp": "260"
}
Required Fields:
protocol - Must be “openspool”version - Specification version (e.g., “1.0”)type - Material type (PLA, PETG, ABS, TPU, etc.)color_hex - Color in hex format (#RRGGBB)Optional Standard Fields:
brand - Manufacturer namemin_temp / max_temp - Nozzle temperature range in °COptional Extended Fields (U1-specific):
bed_min_temp / bed_max_temp - Bed temperature range in °Csubtype - Material variant (Basic, Rapid, HF, Silk, etc.)alpha - Color transparency (00-FF hex, default: FF)additional_color_hexes - Additional colors for multicolor spools (up to 4)weight - Spool weight in gramsdiameter - Filament diameter in mm (e.g., 1.75)Snapmaker Orca requires filaments to follow this naming pattern: <brand> <type> <subtype>
Examples: Generic PLA Basic, Elegoo PETG Rapid
Use the NFC Tools app (iOS/Android) to inspect tags:
Compatible tag types: NTAG213/215/216, Mifare Classic 1K Note: ISO15693 tags (OpenPrintTag) are not supported
The OpenRFID detection system is an alternative to Snapmaker’s built-in filament tag detection, based on the OpenRFID project. It adds support for tagged spools from multiple manufacturers.
To enable it, navigate to the firmware-config web interface, go to Snapmaker Components > RFID Detection System, and select OpenRFID or OpenRFID (force generic vendor).
| System | Enabled by default | Remarks |
|---|---|---|
| Bambu | No | Requires additional configuration (see below) |
| Creality | No | Requires additional configuration (see below) |
| Anycubic | Yes | - |
| Snapmaker | Yes | - |
| Elegoo | No | Elegoo spools tagged with RFID work unreliably |
| OpenSpool | Yes | - |
| TigerTag | Yes | Fully offline implementation |
Bambu and Creality tagged spools require authentication keys. Edit the user configuration file to enable them:
/oem/printer_data/config/extended/openrfid_user.cfg
For Bambu spools:
[bambu_lab_tag_processor]
key = <your 32 hex character key>
For Creality spools:
[creality_tag_processor]
key = <your 32 hex character key>
encryption_key = <your 32 hex character key>
After editing, restart the printer.
Tag not detected:
FILAMENT_DT_UPDATE CHANNEL=<n> then FILAMENT_DT_QUERY CHANNEL=<n>klippy.log for detection messagesOpenPrintTag tags don’t work:
NTAG tags only work on extended firmware: