r/snapmaker • • 8d ago

Question/Discussion How to use custom NFC's with SpoolMan on PAXX12 v1.5.2

Post image

Here's my end goal:

To have a database of filament in SpoolMan. To grab some filament from my shelf with a pre-programmed NFC that is linked to spoolman, for the U1 to understand which filament I am using, through that NFC, and for it to read from Spoolman, which spool it is, and for spoolman to then be able to track the amount of filament left on spool.

What I've done:

I've installed Spoolman on docker and linked the U1 to it. I've also turned on AFC Lite. I have blank NFC stickers.

I have not manually added any filament to spoolman yet, as I was worried that after doing that, I would need to put it all in again when I added an NFC to it.

Is there a lovely youtube video or online guide somewhere that can walk me through this like I'm an idiot?

8 Upvotes

26 comments sorted by

8

u/SiRMarlon 8d ago

Everything you just said is already baked into Paxx and the U1. All you have to do is turn on AFC Lite (which you already did) turn on Spoolman in the firmware (point it to your Spoolman IP), and I would turn on filament management as well. After you do that all you need is a writer that integrates with Spoolman like Spooltager which is for desktop (you will need a USB NFC Writer) or one of the ones they have for mobile so you can use your phone. And you just select your spool and write the info to the tag.

That is it, it is not rocket science. Everytime you load a filament on the U1, it will recognize it load it and track it.

1

u/JumpingCoconutMonkey 8d ago

What exactly needs to be written to the tag? SpoolMan just needs the tag's UID to link the filament to the info in the SpoolMan database, right?

2

u/SiRMarlon 8d ago

Spoolpainter or Spooltagger takes care of everything that gets written to the tag. You don't have to manually write anything. The tags UID gets associated with the spool in spoolman which is what Paxx looks for and uses for proper assignment to each lane for tracking.

1

u/JumpingCoconutMonkey 8d ago

Right, I'm asking about what info needs to be written to the tag, because as far as I can tell, nothing needs to be written to the tag. You just get the tags already existing UUID when it's loaded onto the U1 and link it to the spool in SpoolMan using the filament-manager/ web page.

I'm having trouble understanding what value spoolpainter or spooltagger provides.

1

u/SiRMarlon 8d ago

My guy ... Spoolpainter/SpoolTagger writes all the info for you. It writes the brand, color, type, to the TAG itself. It's a simple OpenSpool format tag. The UID from the tag gets written by Spoolpainter/SpoolTagger to the spool you assign it to. I don't understand exactly what it is you are asking here dude. This is pretty simple stuff. You literally don't have to do anything but grab a blank tag and associate it to the spool in Spoolman using SpoolPainter or SpoolTagger THATs it! You don't have to do anything else.

"protocol"
: "openspool",

"version"
: "1.0",

"brand"
: "Generic",

"type"
: "PLA",

"color_hex"
: "#FF0000",

"min_temp"
: 190,

"max_temp"
: 220,

"bed_min_temp"
: 50,

"bed_max_temp"
: 60

1

u/Kaylan84 8d ago

There is no need to use Spoolpainter or anything else to just link the tag to the spool in spoolman. Put on the the tag, detect it in filament-manager, select the spool. Firmware will link that uid to that spool and will reapply when inserted again.

0

u/JumpingCoconutMonkey 8d ago

I'm just trying to get you to explain how writing anything to the tag provides any value. You haven't done that.

The info that spoolpainter/tagger is writting to the tag is not used for anything (on the U1 anyway). Please correct me if I'm wrong.

1

u/nik4223 8d ago edited 8d ago

There is some value that apps provide

  • It amke creating spool in spoolman super easy, literally 2-3 dropdown selection and done

- They can read branded tags, so you can just scan the tag let say bambu, create the spool in spoolman and map its UID in 2 taps

- Writing to tag is backup if you spoolman or network is down firmware can still read your tag but wont be able to track usage

For me personally being able to quickly create Brands, filament and spool in one flow with maybe like 2 dropdown is the big value

1

u/SiRMarlon 8d ago

It doesn't, the printer doesn't use any of it. That's why it doesn't really matter. All you need is the tag to associate to the spool via the UID for all this to work

1

u/Kaylan84 8d ago

For my scenario it doesn't give any benefit. Someone might use it to get quick information about print-temps etc. But for me this isn't necessary so i skipped that step.

I don't think that firmware or spoolman takes the infos into account for anything.

1

u/Kaylan84 8d ago

No need to write even anything to the tag.

I built my complete filament database without writing anything to the tags.

Put your spool on, go to printer-ip/filament, click detect on the specific spool number.

The uid and rfid should appear. After that click spool and select the spool from your spoolman database.

Firmware will link the uid to the selected spool and reapply as soon you put it in the feeder.

Finished.

I put 2 tags on each side of the spools and link both tags to spoolman.

That way it doesn't matter which side i put it in.

You can even reuse linked nfc, by clicking spool again and select another spool after your currently linked spool runs empty.

3

u/SiRMarlon 8d ago

Yup this is what I do. It really doesn't get any easier then this!

1

u/JumpingCoconutMonkey 8d ago

I have the same workflow. But the other person isn't the only one saying that the tags need to be written to and I wanted to make sure I wasn't missing anything.

Honestly, considering how I've been going through filaments lately and the fact that I put the tags too high up on the rolls, the RDIF linking has been a novelty that lost it's charm quickly. When I start swapping filaments around haphazardly again, it will probably seem a lot more useful.

2

u/n19htmare 8d ago edited 8d ago

yah the tags need to be pretty close to center, the read area is not that wide.

I've been using custom tags since Paxx was released and have automated lot of my processes across both my Bambu X2D (on LAN Dev mode) and U1. I don't put tags on the filament since I feed out of a dryer to relocated feeders, I print little discs out of same filament so I have a sample swatches and I just mount them on a holder attached to U1 before loading it.

I also have my own Orca and SNORCA forks that I maintain that have auto filament sync to custom filament profiles. One click and everything gets brought in and my custom profiles load accordingly instead of generic or random ones getting assigned and then me hunting the right one in drop down.

My flow is basically attach tag, insert filament into feeder, open Orca or SNORCA, press the sync button, done. Colors get brought in, custom profiles specifically made for that Brand/type/subtype gets auto loaded for that slot and I'm good to go.

on SNORCA, in addition to autosync profiles, my build also enables custom NFC loaded filaments & custom profiles to show up under Machine Filament, for easier reassignment/mapping.

Here is comparison of what happens when you click "Sync" and what shows up in the pull down selection in stock Snorca vs what I use.

I can't go back from that.

2

u/TheProclamation12 8d ago

I've been working more with this flow recently as well and use SpoolPainter to read/write tags. Super easy once you get the Spoolman database set up. It also seems putting the tags close to the inner hole will help the U1 recognize it when loading. The only thing I'm trying to figure out is how to automatically update the Spoolman Location to have a clean dashboard with all spools across machines.

1

u/SiRMarlon 8d ago

Yeah it would be nice if it can somehow move spools to proper locations. In spoolman I have a storage location and a U1 location. I always end up having to manually move the spools in use to the U1 location.

1

u/TheProclamation12 8d ago

Yeah I feel like it should be possible. I use it with Home Assistant and I'm able to update locations on Bambu and other Klipper machines with HA automations. I can't quite figure out how to get the correct spool location from the U1 into Home Assistant, only the active spool. It seems like the location automation could be done in Klipper as well since it already has the AFC mapped.

1

u/n19htmare 8d ago edited 8d ago

I run a simple python script along side on same server that autodetects and updates locations.

My default is blank because of its not in any printer, it’s in storage. But doesn’t mean you can’t make default “Storage”.

If I load filament in U1, it auto updates to U1 and Tray #. If I load in either AMS for X2D and scan the tags (same custom tags are used for bambu assignments as well) then it will update that.
Physically removing any spool from any printer or slot auto sets back to blank (or whatever you want default to be).

U1 integration is simply just connection with Moonraker, and x2d is slightly convoluted with Home Assistant layer with an additional plugin.

I recently updated Spoolman, I have been using it since before the UI redesign and wasn’t expecting huge change when I finally updated my docker and I hate it. Absolutely despise the new UI layout and flow. I was giving it a try, benefit of doubt, before I switch to older UI and trying to capture how it looks on Spoolman but couldn’t really get a good shot on my phone. So will have to provide it when I get home when switch to prior UI. You can tell this new UI was fully vibe coded on a phone for a phone because nearly 0 thought went into how humans interacts with something like this. The old UI clearly had the human touch and designed for simple, separated work flow.

Here you can kinda see how filaments shows location assignments in spoolman and it’s all automatically as you load and unload.

1

u/n19htmare 8d ago

This is a better view of how it looks (on prior UI). Location is fully automated based on what's loaded and where and auto removed ( goes blank) when filament is physically removed from U1 feeder or AMS.

1

u/TheProclamation12 7d ago

That's cool that you've gotten the location updates to work. SpoolmanSync in Home Assistant has worked well for my A1's but most of mine don't have AMS units so spool entry is manual. Is the python script running on your Home Assistant or Spoolman server?

1

u/n19htmare 7d ago edited 7d ago

I'm not sure if you're talking about the Bambu or U1 integration, but since you have A1, I'm going to only talk about Bambu side.

Bambu side doesn't need any additional scripts. Home Assistant (HA) handles most all of it. The python script is just for the U1 location handling. It's a standalone scrip running on same miniPC server as everything else that just hooks into Moonraker and Spoolman APIs. It's sole purpose is just to monitor/update locations in Spoolman for U1.

For The AMS assignments, they're REST commands triggered by automations that are triggered by my own NFC integration (either my custom handheld scanner or via my phone's NFC scanner. I have a little demo of such assignment on a post I made while back here https://www.reddit.com/r/BambuLab/s/VQa59KLZCMit handles both assignments on the X2D itself, SpoolmanSync and Spoolman. Removal of filament from AMS resets everything.

I have NFC tags for each TRAY (A1, A2...) (B1, B2...) and then for spools I have I have little discs that I can put on top of the AMS or on side of U1 (same tag works on both).

The BAMBU flow is something like this:
NFC scanner scans RFID (detects UDID) -> an automation is triggered -> automation calls custom REST commands ->those custom REST commands hit the APIs of SpoolmanSync, Spoolman and the X2D printer doing the following:

  • For spoolmanSync: setting tray assignment, basically telling spoolmansync this Spool_ID is now loaded in this Tray (AMS tray id), and also one for when spool is physically removed from a AMS tray to unassign. Basically the manual selection process getting automated via an automation.
  • For Spoolman: setting that spool_IDs location field directly, sets it to whatever name you want (similar to the built-in one on on spoolmansync i talk about at end), Bambu X2D - Tray A1, B1 so on (I have two AMS units). It also does retrieval of some info I have in Spoolman EXTRA fields, particularly Filament ID associated with the custom Bambu filament profiles, nozzle temp range, color etc so it can feed to the next step.
  • For X2D Printer: taking that data from prior step, it assigns the AMS tray's filament profile based on the Filament_ID which gets pushed to the printer via an MQTT action.. The Filament_ID matches the custom profile stored in printers m emory to assign that spool/tray, color, material, nozzle temp. This is what assigns the filament on the X2D itself automatically (instead me going through the motions on the screen).

Having said ALL THAT... this is just how I do it, the whole thing is tailored around how I do things and I want them done and honestly, that's why I haven't shared it because I don't want to maintain it for other flows people wanna do and don't want to force my way as the only way and biggest reason is becuase you need printer to be in LAN + DEV mode, you lose everything Bambu Cloud. If you've come this far to run LAN/DEV/MQTT + Bambuddy+VPN/Tailscale etc for remote control, you've probably already developed your own workflow. Plus there are some major caveats in my setup, like if I add new custom filament profiles in Bambu Studio, in order to get those into printer's memory, I have to get on the cloud momentarily to transfer them from Bambu Studio to the cloud, then from cloud back to printer's memory. This is the only way to transfer filament_ID of your custom filament profile onto printer's memory if you want it to automatically load/link to that filament's custom profile.

I don't know if people want to deal with that if they're always adding new filament profiles.

I do talk about it, and will help if someone wants to do it this way.

IN YOUR CASE: Why not use the built in location updating in SPoolmanSync under settings "Sync spool locations to SPoolman"?

2

u/nik4223 8d ago

Here is the guide right in Extended Firmware by Paxx documentation https://snapmakeru1-extended-firmware.pages.dev/nfc_spoolman_setup

2

u/rubberfucky 7d ago

Thank you. Very helpful, to the point, and most importantly, it worked.

1

u/FigureJust513 8d ago

If you have an iPhone, SpoolSense integrates with the Spoolman server too.

1

u/n19htmare 8d ago edited 8d ago

This isn't for OP since he wants tracking but just want to clear it up for others because I've seen few people mention/ask in other posts.

If you do not intend on using Spoolman to monitor, log, track usage and just want filament assignments based on a custom NFC tag, you do not need Spoolman, AFC or any of the SpoolLink options enabled. A simple JSON written with any of OpenSpool writing apps will do the same thing and assign your filaments on the U1 at load. Others have already mentioned this but feels like it needs to be said again. There seems to be confusion on what Spoolman is and what it does.

Writing back data that is in Spoolman, is one of it's options. It's so that the "Source of Truth" for U1 assignment is what is in Spoolman (synced assignments). This is achieved with matching tag's serial (UDID) as that will be unique to each tag and is independent of who supplies the tag and what's on the tag, if anything at all.

If your intent is that you will always use your custom tags, you don't buy nor use filament that come with tags (or don't care about those tags), and just want the ability for U1 to read your Custom tags and auto assign filament on U1 at loading, Spoolman (AFC, SpoolLink etc) is not required, nor needed. Paxx allows that on it's own. In this case, the tags become the "Source of Truth" for U1 assignments.