Buying guide
PN532 vs RC522 vs PN5180 for filament tags
Three cheap NFC reader chips show up everywhere. All three can read most filament tags, but they differ in which tags, how they connect, and how far along my support for each is.
The short answer
- Buy a PN532 unless you have a reason not to. It's the one tested on hardware with all my projects.
- Add a PN5180 if you use Prusa's OpenPrintTag spools. It's the only one of the three that reads them.
- The RC522 is the cheapest and reads the common tags, but it has the shortest range.
Side by side
| PN532 | RC522 | PN5180 | |
|---|---|---|---|
| Connection | I2C, SPI or UART (HSU) | SPI only | SPI only |
| Power | 3.3 V or 5 V (board has a regulator) | 3.3 V only | 5 V and 3.3 V, both needed |
| NTAG / Ultralight (OpenSpool, Anycubic, Elegoo…) | Yes | Yes | Yes |
| MIFARE Classic (Bambu, Creality, Snapmaker, Qidi) | Yes | Yes | Yes |
| ISO 15693 (OpenPrintTag) | No | No | Yes |
| Range | Good | Short: hold the tag flat, within 2–3 cm | Good |
| Tested on hardware | Yes | Not yet | Not yet |
"Not yet" means the drivers are written (from NXP's datasheets) and pass their software tests, but haven't been run against a physical module. If you build one, I'd love to hear how it goes on GitHub.
PN532
The PN532 is the workhorse. The common red and blue "V3" boards have two small switches that pick the interface: I2C is switch 1 ON, switch 2 OFF, and UART (HSU) is both OFF. For an ESP32, I2C needs just four wires.
If you don't want to wire anything, get a standalone USB PN532 reader. It plugs straight into the printer, and zmod_nfc picks it up on its own.
PN5180
The PN5180 is the newest and most capable of the three. Besides the usual ISO 14443A tags, it reads ISO 15693 tags such as NXP's ICODE SLIX2, which is what OpenPrintTag uses. It alternates between looking for the two tag types, so a tag can take a moment longer to register. The common boards need both a 5 V supply (the RF transmitter) and 3.3 V (logic), and the BUSY pin must be wired.
RC522
The RC522 (MFRC522) is the blue board that comes in every Arduino kit. It's SPI only and strictly 3.3 V: 5 V will damage it. The antenna is small, so hold the tag flat on the board, and only one tag at a time. With two tags in the field it reads neither. It has no USB of its own, so to use it on the printer's USB port it goes through the ESP32 bridge.
Which projects use which
- Wi-Fi reader (zmod_esp32-nfc): all three. The PN5180 lets it read OpenPrintTag.
- USB reader (zmod_nfc + bridge): all three through the ESP32 bridge, which presents them all as a PN532. OpenPrintTag through the bridge isn't supported yet.