Tap a spool on the box. The filament lands in the right printer slot.
A 2.0" touchscreen, a PN532 reader, and no typing.
What it is · Print the case · Before you start · Quick start · Build one
TigerSpool RFID is open-source firmware for a small box that sits next to your 3D printer. Hold a spool carrying a TigerTag NFC chip against it, pick a slot on the touchscreen, and the box writes the filament into that slot on the printer — material, brand, colour and temperatures. No app, no keyboard, no retyping what the tag already knows.
MIT licensed. Built with PlatformIO for the ESP32-S3.
Your printer already has a slot list. Your filament already carries its own identity. TigerSpool is the thirty centimetres between them.
1. Tap a slot · 2. Hold the spool against the box · 3. Sent - load it where the box says.
- Tap a slot, present the spool, done. There is nothing to confirm: the assignment leaves for the printer as soon as the tag is read, over the printer's own protocol, and the box tells you which slot to load.
- Scan mode: what is this spool? Put one on the reader and the box shows what the chip holds - colour, material, brand, the two temperature windows, the drying instruction, what is left on it, and whether the tag is certified. No printer involved.
- Your printers come from your account. They are configured once, in Tiger Studio Manager, and every TigerSpool you own reads the same list.
- It speaks nine languages - English, French, German, Spanish, Italian, Polish, both Portuguese and Chinese - and asks which one before anything else.
- It updates itself. Over the air, verified, from this repository's releases.
The desktop stand is TigerSpool. It stands beside any printer, holds the spool against the reader while you tap, and is the one to print if you are not sure. It comes in two mirrored versions, the spool on the left of the screen or on the right. No screws, no inserts: it is 100 % printed, and it prints without supports.
| Spool on the left | Spool on the right |
|---|---|
![]() |
![]() |
| Print it from MakerWorld · files | Print it from MakerWorld · files |
The printer integrations are the same TigerSpool - same board, same reader, same firmware - in a shell that clips onto a printer's own screen, so the box lives where the spools are loaded.
| Printer | Print it | |
|---|---|---|
| Creality K2 Creality K2 Pro |
![]() |
MakerWorld · files |
| FlashForge Creator 5 FlashForge Creator 5 Pro |
![]() |
MakerWorld · files Firmware "FlashForge × TigerTag" LAN + Cloud Recommended |
| Bambu Lab A1 Bambu Lab A2L |
![]() |
files - not on MakerWorld yet |
| Anycubic Kobra 3 Anycubic Kobra 3 V2 Anycubic Kobra 3 Max Anycubic Kobra 3 Max V2 |
![]() |
files - not on MakerWorld yet |
Every model, its print settings and how to add one: Model3D/.
This is the part that catches people out, so it is first.
A TigerSpool has no keyboard and no way to type a printer's address, and that is deliberate — it reads your printers from your TigerTag account instead. Which means two things have to exist before the box is useful:
Tiger Studio Manager is the desktop application for the ecosystem. Install it and create an account there. That account is what the TigerSpool signs in to — by e-mail, or with Google through a QR code, so you never type a password on a 2" screen.
Without an account, the box gets through Wi-Fi setup and then has nothing to sign in to.
The TigerTag system: one account, shared by Tiger Studio Manager, the TigerTag app and every device - TigerSpool included.
Adding a printer means Tiger Studio finds it on your network, or you enter its address and access code, and stores it against your account.
If you have not done this, the printer list on the box will be empty. That is not a fault and there is nothing to fix on the device — it is showing you exactly what your account contains. Add the printer in Tiger Studio, and it appears on the box at the next sync.
The same is true for the details: the access code, the IP address, the brand and model all come from there. TigerSpool reads that list; it does not build it.
Tiger Studio Manager. Your filaments and your printers live here — the box reads this list, it does not build it.
In short: Tiger Studio Manager → create an account → add your printers → then set up the box.
Plug the board into your computer → click Install → wait a minute. Use the button at the top of this page. It writes the bootloader, the partition table, the boot selector and the firmware.
Chrome, Edge or Opera, on a desktop or laptop. Safari and Firefox do not implement WebSerial and no mobile browser does — the page says so rather than failing quietly.
- Pick your language. Nine of them, before anything else.
- Join Wi-Fi. The box shows a QR code. Scan it with your phone, and a page opens listing the networks it can see. Pick yours, type the password on your phone, and the box joins — no reboot, nothing typed on the small screen.
- Sign in. E-mail and password, or Google through a second QR code.
- Your printers arrive. From your account, as configured in Tiger Studio.
The box's address on your network (
http://tigerspool-xxxx.local/) shows who is signed in, lists those printers with a switch for each, syncs them again, and signs out - all from a phone.
Then tap the slot you want and hold a tagged spool against the box. It is sent to the printer as soon as it is read - there is nothing to confirm - and the box then tells you where to put it.
That last part is the one people miss: it tells the printer what the spool is, it does not load it. Putting the spool in that slot - the CFS, the AMS, the ACE unit, whatever your printer calls its tray - is still yours to do.
From then on it updates itself over the air.
git clone https://github.com/TigerTag-Project/TigerSpool-RFID.git
cd TigerSpool-RFID
bash scripts/flash.sh --monitorThat builds the firmware, flashes it over USB and opens the serial console. Requires PlatformIO Core.
An ordinary flash keeps your Wi-Fi credentials, your account session and your
printers — nothing it writes touches the NVS partition. --erase wipes the
chip and is how you get a genuine first-boot again.
One board, one reader, four wires. The electronics are identical for every printer brand — only the 3D-printed shell changes.
| Qty | Component | Link |
|---|---|---|
| 1 | Waveshare ESP32-S3-Touch-LCD-2 — 240×320 IPS touch, ESP32-S3R8, 16 MB flash, 8 MB octal PSRAM. Screen, touch and MCU on one board | buy |
| 1 | PN532 V3 NFC module — DIP switches, set to HSU (UART): both switches 0 / OFF, not I²C, not SPI |
buy |
| 1 | USB-C to USB-A cable that carries data — a charge-only cable makes a working board look dead: no serial port ever appears | buy |
| — | Four jumper wires — 3V3, GND, TX, RX | ships with the PN532 |
| 1 | 3D-printed case — the desktop stand, or the integration made for your printer (above) | MakerWorld · Model3D/ |
| opt. | Magnetic USB connector — the port is the one part handled every day; the cable lets go instead of the socket | buy |
| opt. | 3.7 V 1000 mAh LiPo cell, PH1.25 — charged over USB, and the box runs from it with the cable out. Optional: declare it in Settings › Battery, since the board cannot detect it. Check the polarity | buy |
About 40 € in total, plus filament.
Some of the links above are Amazon affiliate links: buying through them pays the project a small commission at no cost to you. Nothing on this list is chosen because it is affiliated — any equivalent module works.
Full parts list: hardware/BOM.md · Wiring: docs/WIRING.md and hardware/pinout.md
Interactive schematic in Cirkit Designer
The reader goes on GPIO43/44. Not GPIO6/7 — that pair is an I²C bus with pull-ups on this board. A PN532 wired there powers up, answers, and returns random UIDs with failing reads. It looks like a bad tag or a bad antenna. It is neither, and it costs a day. Follow docs/WIRING.md exactly.
Every printer Tiger Studio Manager can add works with TigerSpool - the models below are that list. The current state of every brand is in docs/PRINTER-COMPATIBILITY.md, which grades each on three levels — ✅ automatic, ⚙️ one setup step, 🧪 experimental. Read it before buying parts for a specific printer.
| Brand | Firmware support | Transport |
|---|---|---|
| Creality | ✅ implemented, proven on hardware | WebSocket |
| FlashForge | ✅ implemented, proven on hardware | HTTP |
| Bambu Lab | ✅ implemented, proven on hardware - LAN and cloud mode | MQTT over TLS |
| Snapmaker | ✅ implemented, proven on hardware | Moonraker over WebSocket |
| Elegoo | ✅ implemented, reading proven on hardware | MQTT |
| Anycubic | ✅ implemented, proven on hardware - LAN and cloud mode | MQTT over TLS |
How TigerSpool reaches each printer, and what to switch on first. A Combo is the same printer with its AMS, CFS, ACE or CANVAS attached, and works the same way.
| Printer | Mode | What to do on the printer |
|---|---|---|
| Bambu Lab Bambu Lab A1 mini Bambu Lab A1 Bambu Lab A2L Bambu Lab P1P Bambu Lab P1S Bambu Lab P2S Bambu Lab X1C Bambu Lab X1E Bambu Lab X2D Bambu Lab H2D Bambu Lab H2D Pro Bambu Lab H2S Bambu Lab H2C |
LAN Cloud, read only |
LAN: turn on LAN mode and Developer mode on the printer. Cloud: nothing on the printer - the spools are shown, but a tag cannot be written to the slot. |
| Creality Creality K1 Creality K1C Creality K1 SE Creality K1 Max Creality K2 Creality K2 SE Creality K2 Pro Creality K2 Plus Creality Hi Creality Ender-3 V4 Creality SparkX i7 |
LAN | Nothing: the printer accepts local requests while it stays on Creality Cloud. |
| FlashForge FlashForge Creator 5 FlashForge Creator 5 Pro |
LAN | Either turn LAN mode on - which disconnects FlashForge Cloud - or install the FlashForge × TigerTag firmware, which keeps LAN and Cloud on together. |
| FlashForge FlashForge AD5X FlashForge Adventurer 5M FlashForge Adventurer 5M Pro FlashForge A5 |
LAN | Turn LAN mode on. It disconnects FlashForge Cloud. |
| Anycubic Anycubic Kobra 3 Anycubic Kobra 3 V2 Anycubic Kobra 3 Max Anycubic Kobra 3 Max V2 Anycubic Kobra S1 Anycubic Kobra X |
LAN Cloud |
Your choice. LAN mode: pair the printer once in AnycubicSlicerNext - its credentials come from there, through Tiger Studio. Anycubic Cloud: add it to Tiger Studio in cloud mode; TigerSpool connects beside Tiger Studio without taking its place. |
| Elegoo Elegoo Centauri 2 Elegoo Centauri 2 Combo Elegoo Centauri Carbon 2 Elegoo Centauri Carbon 2 Combo |
LAN | Nothing: the access code comes from your account. |
| Snapmaker Snapmaker U1 |
LAN | Nothing. |
A Bambu Lab printer in cloud mode is read-only: its spools are shown, but a tag cannot be written to it - Bambu's cloud does not accept the command. Switch the printer to LAN mode to write.
Slot names match the ones the printer and Tiger Studio use — Ext. plus
1A–1D on Creality and FlashForge, A1–A4 then B1–B4 on Bambu,
E1–E4 on Snapmaker, S1–S4 on Elegoo, A1–A4 per ACE unit on
Anycubic. An Elegoo Combo has the CANVAS unit and its four colours,
S1–S4; a Centauri without it has the single Ext. slot. The table and its two traps are in the compatibility document.
The limit is not a number of printers - it is how much memory their connections take. One TigerSpool has a fixed budget of 160 load slots, where one load slot is one kilobyte of the chip's internal RAM, and each printer takes what its connection costs:
| Printer | Load slots |
|---|---|
| First Bambu Lab in cloud mode | 50 |
| Each further Bambu Lab in cloud mode | 4 - they share one connection |
| Bambu Lab in LAN mode | 50 |
| Anycubic in LAN mode | 41 |
| First Anycubic in cloud mode | 50 |
| Each further Anycubic in cloud mode | 4 - they share one connection |
| Creality | 6 |
| Snapmaker | 5 |
| Elegoo | 3 |
| FlashForge | 2 |
The difference is encryption: a Bambu or an Anycubic talks over TLS, which is what memory goes on; the others do not. So ten Elegoos fit where three LAN Bambus do not.
Settings > Printers shows how full the budget is as a percentage. A printer that would not fit is refused when you switch it on, with the reason on the screen, rather than connecting and failing later. The measurements, the reasons for 160, and what the budget does not account for are in docs/CONNECTION-BUDGET.md.
| ARCHITECTURE.md | Layering, the state machine, why a backend knows nothing about the screen |
| ONBOARDING.md | The first-boot journey, screen by screen |
| WIFI-PROVISIONING.md | The QR code and the captive portal |
| ACCOUNT-PAIRING.md | E-mail and Google sign-in, and why RFC 8628 was rejected |
| ACCOUNT-DATA.md | The shape a printer arrives in |
| OTA.md | Partitions, the manifest, and what is settled before the first release |
| PRINTER-COMPATIBILITY.md | Per-brand status and slot naming |
| CONNECTION-BUDGET.md | How many printers at once: load slots, every measurement behind them, why 160 |
| PRESENCE.md | How a box declares itself to the account, so Tiger Studio can list it |
| WIRING.md | The four wires |
| ROADMAP.md | What is deliberately not done yet, and what has to be decided first |
Contributors and agents start at AGENTS.md and CODEMAP.md.
Written down rather than discovered.
- The firmware is not signed. Its update connection is verified against the root certificate store, so the box knows who it is talking to — but not who produced the image. The reasoning and the condition for changing that are in docs/OTA.md.
- At most three printers that use TLS at once - Bambu Lab in LAN mode and Anycubic, with every cloud Bambu on an account counting as one and every cloud Anycubic as one more. It is the chip's internal RAM, and the load budget enforces it; see docs/CONNECTION-BUDGET.md. The two ways past it are in docs/ROADMAP.md.
- A battery has to be declared, in Settings. The board has no way to tell whether a cell is on its connector - no sense line, and the two indirect signals were each measured wrong on real hardware - so it asks instead of guessing. Until someone answers, it reports no battery.
- A printer is identified by its position in your account's list. Reordering it in Tiger Studio can move a per-printer setting to the wrong machine. Tracked in docs/reviews/.
TigerTag is an open NFC identification standard for 3D-printing materials. A spool carries its own identity, and every device in the system reads the same one.
- Tiger Studio Manager — desktop printer and filament manager. Start here: it is where an account is created and printers are declared.
- TigerTag-RFID-Guide — the protocol specification and public registry
- TigerSystem-Docs — ecosystem source of truth
- Tiger-Scale-V3 — the connected filament scale
- TigerPOD — open desktop NFC reader/writer
- SDKs — Python · JavaScript
Issues and pull requests are welcome. CONTRIBUTING.md has the
conventions; the short version is that bash scripts/verify.sh passes before
anything is reported as done, and everything committed is in English.
Security reports: SECURITY.md.
MIT — build it, sell it, fork it.
Third-party components keep their own licenses; see THIRD_PARTY_LICENSES.md. "TigerTag" and "TigerSpool" are project names, not a license to imply endorsement — the terms for using them on a product you sell are in TRADEMARK.md.















