How does the printer know how much filament is left on the spool?

I figured it did something with the rfid tag. However, I just printed out a respooler and had the idea to respool some of my old cores with the same type/color of filament and figured it’d just show it being out all the time. However, after respooling my first core (from a full spool of 3rd party filament) I stuck it in the AMS and it shows it as a full spool. So it must weigh it or something. Does anyone know for sure how it determines the filament level?

1 Like

Thinking about this, I doubt it’s weight. I also use the desiccant spool inserts which add a bit a weight and those spools show levels accurately.

1 Like

It does not weigh the spool. The only thing it can do is read the RFID tag.

1 Like

Afaict, it measures the ratio of how the spool rotates vs how much the filament retracts. There’s no way to do this through the RFID chip.

In more detail, it winds up the filament until it’s sitting firm (the energy consumption of the motors will spike when there’s resistance which can be measured). Then it pushes back a bit of filament without rotating the spool, and then it winds it up again. The less filament on the spool, the more it needs to rotate because the diameter of spool decreases.

The only thing it uses the RFID chip for is to make sure that it’s a Bambu spool, and with that knows the diameter of the spool.


From the description the Bambu hardware uses (odometer), I’d assume it’s simply counting the meters each RFID chipped roll dispenses.

But I’ve noticed that it seems to get out of sync if you use more than one computer, which seems odd for a cloud based system.


See, this is along the lines of what I thought it did too. But now that it shows a full spool for one that was once empty, I’m thinking it’s more along the lines of what @michael_zanetti said.

1 Like

This might be what I was talking about when I mentioned the separate PCs. I noticed on one PC I’ve not done any printing with my #4 filament, but I have on another PC. One PC shows it as half full, the other shows it pretty much full.

I don’t think it will try to match the odometer level across all devices. But I could be wrong. If Michael was correct, mine shouldn’t have different readings.


Could be, but I’ve only ever printed from a single machine and I’m only looking at the levels on the printer screen not in the software on a computer.


I’m going to do an experiment and spool this back to the original spool, then spool a spool that’s maybe 1/4 left on to this core and see what it registers.

1 Like

Gotcha, I’ll step to the side because I’m on a P1P, and I can’t speak from the standpoint of the printer’s odometer.

I just spooled some old hatchbox filament I had that was less than 100g and it’s now registering as nearly empty.

Honestly, this is great for what I was hoping to do. But now I’m really curious how it knows!!!

1 Like

If it is working like michael_zanetti explained, why is it not showing the filament level for non Bambulab spools? This would be very useful!

1 Like

Because it can’t know the diameter and width of the spool and with that it can’t calculate stuff.

Ok, but then Bambulab should allow to enter two values: inner and outer diameter of the spool. Then the feature would as well be available for non Bambulab spools.


I’d rather go with “could” instead of “should” because it would need to know:

  • inner diameter of the spool
  • outer diameter of the spool
  • inner width of the spool

Which I doubt I’d ever enter tbh, because the added value of the feature is not exactly huge and there’s a lot that can go wrong and it’s anything else but precise as we can see from the first posts in this thread. But yeah, technically it would be possible given those parameters.

If you could choose the brand and the values are set automatically, it would be great.

If you could do presets, it could work as well. But entering 3 values everytime you change the spool is not what you want, I agree.


Spools are sold by weight not length. Although the weight is similar, I suspect that there’s a weight difference by material, and so on. I have an ABS spool here which has more filament wound onto it than a fresh PLA spool, because apparently ABS is lighter than PLA.

What you need to know is the weight per meter of filament. That gives you the number of meters on a 1kg spool. It would be something you could enter as part of the filament settings. Grams per metre. Job done.

1 Like

What Bl needs is to be more open to 3rd party and stop forcing us into their spools. This was a strategic decision that as zero chalenge to implement. Just add brand or spool with. I use two brands of filament not 100. Most people is 3 or 4….easy fix…i would say…


I don’t feel like they are forcing people on to their own filament. What makes you feel that way?

Not forcing…but if you want that functionality you only get it with their spools…its bad…