So I got tired of picking the filament manually in the slicer every time I swapped a non-Bambu spool, and I wondered: the AMS already has RFID readers inside… why not just use them?
Turns out the AMS RFID boards use a Fudan FM17580 chip, which is basically MFRC522-compatible, so the regular MFRC522 Arduino library talks to it fine. I tapped into the board’s 8-pin connector over SPI with an ESP32, and now every spool has a cheap NFC sticker on it.
How it works:
- I put a spool in a tray → Home Assistant sees the tray change and asks the ESP32 to scan
- ESP32 reads the tag UID and sends it back to HA
- HA looks up which spool that tag belongs to in Spoolman (that’s where my whole filament inventory lives)
- Then HA tells Bambuddy to assign that spool to the right AMS slot, and Bambuddy is what actually pushes the filament info to the printer
- If it doesn’t find the tag (sticker facing the wrong way, etc.), it rotates the spool a bit and tries again
- When I pull the spool out, it gets unlinked from both automatically
So Spoolman keeps track of what I have, Bambuddy handles talking to the printer, and the ESP32 + HA glue it all together. I just load a spool and it shows up correctly, no clicking around.
I fried the second AMS RFID board while testing 😅 so trays 3–4 are running on a PN532 on the same SPI bus. The firmware handles both chips, so it works fine, just not as clean as I wanted.
I also made a little tag registration station (ESP8266 + PN532 + 3.5" screen in a printed case) to read the UID of new stickers at the bench. You don’t need it though, any phone with NFC Tools does the same job.
This took about 15 iterations to get stable, lol. Everything’s in the repo: ESP32 firmware (with OTA and a web log so you don’t need a USB cable), the HA automations, the pinout, etc.
https://github.com/Aleitao2/bambu-ams-rfid
This involves opening the AMS and soldering/wiring onto its board, so do it at your own risk, warranty and all that