Custom Snapmaker U1 Firmware

RFID Filament Tag Support

The Snapmaker U1 automatically detects filament properties by reading RFID tags on spools.

Firmware Support:

Supported Formats

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)

How It Works

Tags are automatically read when filament is loaded into the feeder. Tag data clears when filament is removed.

Manual Commands:

Programming Filament Tags

Quick Setup:

  1. Get NTAG215 or NTAG216 tags
  2. Open Chrome on Android phone
  3. Visit printtag-web.pages.dev
  4. Enter filament information
  5. Tap tag to phone to write

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"
}

OpenSpool Field Reference

Required Fields:

Optional Standard Fields:

Optional Extended Fields (U1-specific):

Snapmaker Orca Naming Convention

Snapmaker Orca requires filaments to follow this naming pattern: <brand> <type> <subtype>

Examples: Generic PLA Basic, Elegoo PETG Rapid

Reading Existing Tags

Use the NFC Tools app (iOS/Android) to inspect tags:

  1. Download NFC Tools from App Store or Google Play
  2. Tap “Read” and hold tag to phone
  3. Check tag type and NDEF records

Compatible tag types: NTAG213/215/216, Mifare Classic 1K Note: ISO15693 tags (OpenPrintTag) are not supported

Alternative Detection Systems

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).

Supported Tags

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 / Creality Spool Configuration

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.

Troubleshooting

Tag not detected:

OpenPrintTag tags don’t work:

NTAG tags only work on extended firmware: