Sascha's Toolbox
3 min read
Project NFC W3C Serverless Hardware

AnySpool: Client-Side NFC Tag Provisioning

AnySpool: Client-Side NFC Tag Provisioning

AnySpool is a strictly client-side web utility designed to bridge standard W3C hardware APIs with closed hardware ecosystems. It provisions blank, commodity NTAG213 NFC stickers with the proprietary 96-byte payload required by Elegoo 3D printers (such as the Centauri Carbon 2 and Neptune 4 Pro) for automated material configuration.

The Problem Domain

Modern additive manufacturing hardware increasingly utilizes telemetry to reduce user friction. Elegoo accomplishes this by reading an NFC tag embedded in the filament spool, which instantly configures the printer’s hotend temperature, retraction parameters, and material profiles.

However, Elegoo implemented this feature using standard NTAG213 silicon while obscuring the payload structure. This creates an artificial walled garden, preventing users from refilling spools or using third-party materials while retaining the automated configuration features.

AnySpool maps the proprietary hex structure and provides a deployment mechanism to write this data to off-the-shelf €0.04 NFC stickers.

Architecture & Core Features

The project was built with a strict mandate for zero ongoing Total Cost of Ownership (TCO) and absolute data privacy. It demonstrates how to build resilient hardware-interfacing tools without backend liabilities.

  • Zero-State Client Architecture: The application runs entirely within the browser. There is no backend database, no user authentication, and no analytics. Payload generation happens entirely in local memory.
  • Native Web NFC Integration: On supported runtime engines (specifically Blink-based browsers on Android), AnySpool utilizes the W3C Web NFC API (NDEFReader). This allows direct, one-tap hardware provisioning from the browser to the silicon.
  • Deterministic Payload Generation: The core logic engine translates human-readable catalog selections (Material, Subtype, Family, Color) into the precise 36-page hex block required by the printer’s firmware.
  • Raw Hex Fallback Routing: To bypass administrative platform restrictions (such as iOS WebKit’s lack of Web NFC support), the application generates verifiable, raw A2 hex command arrays that can be passed through generic third-party applications like NFC Tools.

Technical Learnings & Systemic Friction

Building AnySpool exposed several realities about modern web-to-hardware integrations:

  1. The Browser Engine Tax: The W3C specification for hardware APIs is highly functional, but its utility is gated by platform monopolies. Because Apple enforces WebKit on iOS, native NFC provisioning via the web is administratively blocked. The iOS fallback mechanism in AnySpool is a functional but inelegant copy-paste workaround—a direct consequence of compliance theater surrounding the Digital Markets Act (DMA).
  2. API Sourcing Brittleness: Populating the material catalog required scraping Elegoo’s regional storefronts. This revealed undocumented discrepancies between regions; the .de API serves product variants in a fundamentally different structure than the .com API. Building reliable systems on top of fragmented, undocumented external endpoints requires aggressive sanitization and manual mapping.
  3. The Illusion of the Hardware Moat: Deploying proprietary formats on commodity silicon (like the NTAG213) provides no actual security, only temporary obscurity. The 96-byte payload was easily reversed, validating the principle that unencrypted supply chain hardware is always eventually commoditized by the end-user.

Source & Bug Reporting

AnySpool is maintained as an open-source utility. As Elegoo releases new hardware profiles or filament variants, the hex mapping tables will require updating.

If you encounter a filament profile that generates an incorrect temperature offset, or if you have mapped a new material subtype, please open an issue with the raw tag dump or submit a pull request modifying the payload generation logic. Provide factual, reproducible steps when logging payload errors.

← Back to all projects