The Snapmaker U1 can automatically detect filament properties (material type, color, temperatures) by reading RFID tags attached to filament spools.
The extended firmware adds support for NTAG tags with OpenSpool format, while maintaining compatibility with original Snapmaker tags.
| 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)
FILAMENT_DT_UPDATE CHANNEL=<n>FILAMENT_DT_CLEAR CHANNEL=<n>Requirements: Android phone with NFC + Chrome browser
Alternatively, use any NFC app that supports NDEF with JSON. Set MIME type to 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",
"brand": "Elegoo",
"min_temp": "230",
"max_temp": "260"
}
Supported OpenSpool Fields:
protocol (required) - Must be “openspool”version (required) - Specification version (e.g., “1.0”)type (required) - Material type (e.g., “PLA”, “PETG”, “ABS”)color_hex (required) - Color in hex format (e.g., “#FF0000”)brand (optional) - Manufacturer name (e.g., “Generic”, “Overture”, “PolyLite”)min_temp (optional) - Minimum nozzle temperature in °Cmax_temp (optional) - Maximum nozzle temperature in °Cbed_min_temp (optional) - Minimum bed temperature in °Cbed_max_temp (optional) - Maximum bed temperature in °CSupported non-standard OpenSpool Fields:
subtype (optional, default: “Basic”) - Material subtype (e.g. “Rapid”, “HF”)In order for Snapmaker Orca to recognize the filement, it must be named according to this naming scheme: <brand> <type> <subtype>, e.g. Generic PLA Basic and Elegoo PETG Rapid.
To check what’s on a tag before using it, use NFC Tools app (available on both iOS and Android):
What to look for:
application/json with OpenSpool payloadIf the tag shows ISO15693, it’s an OpenPrintTag and won’t work with Snapmaker U1.
# Check what tag detected
FILAMENT_DT_QUERY CHANNEL=0
# Force read tag
FILAMENT_DT_UPDATE CHANNEL=0
# Clear tag data
FILAMENT_DT_CLEAR CHANNEL=0
Tag not detected:
FILAMENT_DT_UPDATE CHANNEL=<n> and then FILAMENT_DT_QUERY CHANNEL=<n>klipper.log to see if tags were discoveredOpenPrintTag tags don’t work:
NTAG tags don’t work on original firmware: