<p>If you have an empty spool of the same brand, you could weigh the empty spool and the one you're trying to &quot;measure&quot; to get an approximate weight of the remaining filament.  Divide by the (presumably available from manufacturer) weight per meter to get a rough length in meters, if that's more useful to you than weight.</p>

CC BY-SA 4.0
2022-02-28T19:14:27.587Z
Also weigh the spool before use, write the value on the flange (tare 304g) and measure, subtract. I've been using 1kg as the base and find that the manufacturer usually gives a few grams more, providing a safety net, a tiny safety net.
fred_dot_u
CC BY-SA 4.0
2022-02-28T23:45:58.750Z
Most slicers will give you the weight of the part, so if you know the weight of the filament left on the spool, that might be enough.
user10489
CC BY-SA 4.0
2022-03-01T12:02:47.487Z
@user10489 Hence "if that's more useful to you than weight."
Zeiss Ikon
CC BY-SA 4.0
2022-03-04T22:50:21.053Z
Here is a helpful table of length per roll of different generic materials. It has 1.75mm and 2.85mm diameters: https://amp.rigid.ink/blogs/news/how-many-meters-of-filament-on-a-spool
ChinchillaWafers
CC BY-SA 4.0
2022-02-28T18:44:05.203Z
2024-07-07T10:45:28.620Z
2024-07-07T10:45:28.620Z
Zeiss Ikon
<p>If you use klipper you can use <a href="https://github.com/zellneralex/klipper_config/blob/master/printtime.cfg" rel="nofollow noreferrer">this script</a> (by zellneralex) to calculate the filament length used since the last manual reset. Obviously it works with a single spool, if you switch spools it doesn't work.</p>
<p>If you want to know how much filament is left in the spool, the exact formula based on inner radius of the spool <span class="math-container">$r_{int}$</span> and outer radius of the spool when new <span class="math-container">$r_{ext}$</span> and based on the current outer radius of the remaining filament <span class="math-container">$x$</span> should be:</p>
<p><span class="math-container">$$ 100 \left( \frac{x-r_{int}}{r_{ext}-r_{int}} \right)^2 $$</span></p>
<p>You can see that you get 100% when <span class="math-container">$x=r_{ext}$</span> (spool is new) and 0% when <span class="math-container">$x=r_{int}$</span>.</p>
<p>It's a simple integration in <span class="math-container">$(x-x_0)\,dx$</span>.</p>
<p>For those using Klipper, there is also a module for Moonraker which keeps track automatically of multiple filaments: <a href="https://github.com/Donkie/Spoolman" rel="nofollow noreferrer">https://github.com/Donkie/Spoolman</a></p>

CC BY-SA 4.0
2022-03-01T09:30:13.680Z
2024-07-05T07:02:04.903Z
2024-07-05T07:02:04.903Z
FarO
<p>If you are down to one layer of filament, count the number of loops left on the spool, and multiply by the circumference of the spool to get the length. (<span class="math-container">$ \pi \times diameter \times loops $</span>)</p>
<p>This can work if you have more than one layer and know the core diameter and the outer diameter of the filament left, but there would be some integration and a lot of estimation.</p>

CC BY-SA 4.0
2022-03-01T00:49:33.437Z
How do you account for the increase in diameter as the filament winds around the initial hub?
agarza
CC BY-SA 4.0
2022-03-01T01:54:26.493Z
This might not work if a roll of filament isn't perfectly wound.
craftxbox
CC BY-SA 4.0
2022-03-01T02:01:54.487Z
increasing diameter: that's what the integration is for;  not perfectly wound: that's why estimation is required.  I didn't say it was easy.  :)
user10489
CC BY-SA 4.0
2022-03-01T09:03:52.617Z
I seriously doubt the wounding can appreciably impact the result.
FarO
CC BY-SA 4.0
2022-03-01T10:01:16.750Z
See my answer for the correct formula
FarO
CC BY-SA 4.0
2022-03-01T12:22:24.157Z
The winding will affect the result, but maybe not by a lot, that's why estimating works.
user10489
CC BY-SA 4.0
2022-02-28T23:48:07.453Z
2022-03-01T02:02:48.153Z
2022-03-01T02:02:48.153Z
user10489
<p>Some filament vendors put a window to see the remaining spooled filament with a decal showing graduations to match how much is left based on the diameter visible. You could do the same as a printed (in the paper sense) insert you slip along the <em>inside</em> of any spool between the filament and outer wall. You just need to compute the relationship between diameter and amount of filament based on the filament diameter and the number of turns per layer. Or you could just copy the design from a vendor who does this and figure it will be close enough.</p>

CC BY-SA 4.0
2022-03-01T15:27:24.850Z
I have seen a few on Thingiverse called "[Filament Spool Gauge](https://www.thingiverse.com/thing:3440605)". It seems that they need to be made specifically for a brand/spool.
agarza
CC BY-SA 4.0
2022-03-01T15:46:20.747Z
@agarza This is because vendors use different widths and core diameters of spools.  If they were standardized, it would work universally...
Zeiss Ikon
CC BY-SA 4.0
2022-03-01T02:02:13.933Z
2022-03-01T02:02:13.933Z
R.. GitHub STOP HELPING ICE
<p>Besides using the window on a spool that estimates the amount of filament left, I've used large calipers to measure the diameter of an empty spool and the diameter of the filament left on the spool.</p>

CC BY-SA 4.0
2022-03-01T15:33:26.807Z
2022-03-01T15:33:26.807Z
Perry Webb
<p>Why not use a database online with a filament consumption counter?
See this <a href="https://www.etsy.com/ca/listing/1216011789/fdb-22-3d-printers-filament-consumption?ga_order=most_relevant&amp;ga_search_type=all&amp;ga_view_type=gallery&amp;ga_search_query=FDB-22&amp;ref=sr_gallery-1-1&amp;organic_search_click=1" rel="nofollow noreferrer">link</a>.</p>
<p>You can create a database without buying counters. I have two printers an Ender and Mega Zero and 2 counters that automatically consume the selected filaments.</p>
<p>Very cool tool. I love it</p>

CC BY-SA 4.0
2022-04-29T03:55:24.693Z
This is comparatively pricey compared to a filament gauge that I can print rather inexpensively.
agarza
CC BY-SA 4.0
2022-04-30T19:50:42.407Z
I agree with you. This is for professional users only but remains the best way to track filament consumption. In any case, here you can see the link and use the manual database without buying counters
Ole Mak
CC BY-SA 4.0
2022-04-29T01:52:56.477Z
2022-04-29T03:53:11.967Z
2022-04-29T03:53:11.967Z
Ole Mak
<p>Other than unrolling it and measuring it, is there a method for telling how much filament is left on a spool, for example calculating a length bases on weight or number of turns left on the spook?</p>
<p>Is it possible to extract the amount of filament used from the printer's firmware?</p>

CC BY-SA 4.0
2022-03-01T00:48:37.240Z
Are you looking for exact or approximate measurements?
agarza
<print-material>
Is there a method for telling how much filament is left on a spool?
Aaargh Zombies
# Is there a method for telling how much filament is left on a spool?

(Asked by: username_0 on 2022-02-28)

Other than unrolling it and measuring it, is there a method for telling how much filament is left on a spool, for example calculating a length bases on weight or number of turns left on the spook?

Is it possible to extract the amount of filament used from the printer's firmware?

**Tags:** print-material
> **Comments:**
> **username_1**: Are you looking for exact or approximate measurements?  

---

## 6 answers

### Answer by username_2 on 2022-02-28. Score: 12

If you have an empty spool of the same brand, you could weigh the empty spool and the one you're trying to "measure" to get an approximate weight of the remaining filament. Divide by the (presumably available from manufacturer) weight per meter to get a rough length in meters, if that's more useful to you than weight.

> **Comments:**
> **username_3**: Also weigh the spool before use, write the value on the flange (tare 304g) and measure, subtract. I've been using 1kg as the base and find that the manufacturer usually gives a few grams more, providing a safety net, a tiny safety net.  
> **username_4**: Most slicers will give you the weight of the part, so if you know the weight of the filament left on the spool, that might be enough.  
> **username_2**: @user10489 Hence "if that's more useful to you than weight."  
> **username_5**: Here is a helpful table of length per roll of different generic materials. It has 1.75mm and 2.85mm diameters: https://amp.rigid.ink/blogs/news/how-many-meters-of-filament-on-a-spool  

---

### Answer by username_6 on 2022-03-01. Score: 5

If you use klipper you can use [this script](https://github.com/zellneralex/klipper_config/blob/master/printtime.cfg) (by zellneralex) to calculate the filament length used since the last manual reset. Obviously it works with a single spool, if you switch spools it doesn't work.

If you want to know how much filament is left in the spool, the exact formula based on inner radius of the spool $r\_{int}$ and outer radius of the spool when new $r\_{ext}$ and based on the current outer radius of the remaining filament $x$ should be:

$$ 100 \left( \frac{x-r\_{int}}{r\_{ext}-r\_{int}} \right)^2 $$

You can see that you get 100% when $x=r\_{ext}$ (spool is new) and 0% when $x=r\_{int}$.

It's a simple integration in $(x-x\_0)\,dx$.

For those using Klipper, there is also a module for Moonraker which keeps track automatically of multiple filaments: <https://github.com/Donkie/Spoolman>


---

### Answer by username_4 on 2022-02-28. Score: 2

If you are down to one layer of filament, count the number of loops left on the spool, and multiply by the circumference of the spool to get the length. ($ \pi \times diameter \times loops $)

This can work if you have more than one layer and know the core diameter and the outer diameter of the filament left, but there would be some integration and a lot of estimation.

> **Comments:**
> **username_1**: How do you account for the increase in diameter as the filament winds around the initial hub?  
> **username_7**: This might not work if a roll of filament isn't perfectly wound.  
> **username_4**: increasing diameter: that's what the integration is for;  not perfectly wound: that's why estimation is required.  I didn't say it was easy.  :)  
> **username_6**: I seriously doubt the wounding can appreciably impact the result.  
> **username_6**: See my answer for the correct formula  
> **username_4**: The winding will affect the result, but maybe not by a lot, that's why estimating works.  

---

### Answer by username_8 on 2022-03-01. Score: 2

Some filament vendors put a window to see the remaining spooled filament with a decal showing graduations to match how much is left based on the diameter visible. You could do the same as a printed (in the paper sense) insert you slip along the *inside* of any spool between the filament and outer wall. You just need to compute the relationship between diameter and amount of filament based on the filament diameter and the number of turns per layer. Or you could just copy the design from a vendor who does this and figure it will be close enough.

> **Comments:**
> **username_1**: I have seen a few on Thingiverse called "[Filament Spool Gauge](https://www.thingiverse.com/thing:3440605)". It seems that they need to be made specifically for a brand/spool.  
> **username_2**: @agarza This is because vendors use different widths and core diameters of spools.  If they were standardized, it would work universally...  

---

### Answer by username_9 on 2022-03-01. Score: 0

Besides using the window on a spool that estimates the amount of filament left, I've used large calipers to measure the diameter of an empty spool and the diameter of the filament left on the spool.


---

### Answer by username_10 on 2022-04-29. Score: 0

Why not use a database online with a filament consumption counter?
See this [link](https://www.etsy.com/ca/listing/1216011789/fdb-22-3d-printers-filament-consumption?ga_order=most_relevant&ga_search_type=all&ga_view_type=gallery&ga_search_query=FDB-22&ref=sr_gallery-1-1&organic_search_click=1).

You can create a database without buying counters. I have two printers an Ender and Mega Zero and 2 counters that automatically consume the selected filaments.

Very cool tool. I love it

> **Comments:**
> **username_1**: This is comparatively pricey compared to a filament gauge that I can print rather inexpensively.  
> **username_10**: I agree with you. This is for professional users only but remains the best way to track filament consumption. In any case, here you can see the link and use the manual database without buying counters  

---

