SnapmakerU1-Extended-Firmware

RFID Filament Tag Support

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.

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 Read When:

Tag Data Clears When:

Programming Filament Tags

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

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:

Supported non-standard OpenSpool Fields:

Snapmaker Orca Filament Naming Scheme

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.

Reading Existing Tags

To check what’s on a tag before using it, use NFC Tools app (available on both iOS and Android):

  1. Download NFC Tools from App Store (iOS) or Google Play (Android)
  2. Open the app and tap “Read”
  3. Hold your tag to the phone’s NFC reader
  4. The app will show:
    • Tag type (NTAG213/215/216, Mifare Classic, ISO15693, etc.)
    • Memory size and available space
    • NDEF records (for OpenPrintTag/OpenSpool tags)
    • Raw data stored on the tag

What to look for:

If the tag shows ISO15693, it’s an OpenPrintTag and won’t work with Snapmaker U1.

Common G-code Commands

# 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

Troubleshooting

Tag not detected:

OpenPrintTag tags don’t work:

NTAG tags don’t work on original firmware: