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

Side by side

PN532RC522PN5180
ConnectionI2C, SPI or UART (HSU)SPI onlySPI only
Power3.3 V or 5 V (board has a regulator)3.3 V only5 V and 3.3 V, both needed
NTAG / Ultralight (OpenSpool, Anycubic, Elegoo…)YesYesYes
MIFARE Classic (Bambu, Creality, Snapmaker, Qidi)YesYesYes
ISO 15693 (OpenPrintTag)NoNoYes
RangeGoodShort: hold the tag flat, within 2–3 cmGood
Tested on hardwareYesNot yetNot 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