I am curious how close people are able to get their filament spools to 0kg/0mm. I constantly find myself with very used spools and I tend to assume its not enough left for whatever im trying to print. But in reality, it was probably enough but I just don’t have the courage to risk it.
This isn’t a huge deal for the common hobbyist I guess, because you’re most likely using 90-95% of the spool each time before you get scared off. But for someone who has a print farm or prints a lot, those left overs will really add up I assume.
Just a thought I had in my head that I wanted to type here…
Rather than wire in and configure a sensor a guy at our makerspace made one of those microswitch-based sensors and connected the NC contacts to a battery+buzzer. it is mounted far enough away from the extruder that he has plenty of time to come over and do a swap before it runs out.
I usually just measure how much a fully empty spool weighs then measure the partial, gives me a pretty solid estimate via the slicer if it is enough. I have ran it pretty dang close though lol. On my prusa I just go until the sensor trips if I am around the printer, still need to get that sucker programmed in on my other printer.
So soon i am going to make an arduino scale. Get an average on core spools and be able to know how much is left. That with the estimate cura uses i think i will beable to tell what i can print with a roll. I think it will help alot!
I do the same as Jeff. Sometimes I have to pick a ‘junk’ small model to use up the last little bit, but the length by number of winds on the last layer is pretty good at using the last bit.
I use a rotary encoder sensor, and do like others by trying to finish small amounts on a small model. I’m always tossing out about 20" of filament though, since my sensor is about that far from my nozzle (mounted on rear of the enclosure). I’m OK with that since it’s a small percentage of material, and I often acquire filaments for a few bucks a spool. I keep the scraps for stuff like filament hinge pins etc, which I try to work into my designs. The nylon scraps are very useful for maintenance too (cold pulls).
The scale idea would work well for some filaments that I buy in bulk and rewind on to normal spools, because I know the weight of the spool/container/dessicant ahead of time. Water gained in the desiccant could introduce error though, and most of the filament I use comes prerolled.
I use a filament runout sensor on my Tevo. Like the MPCNC endstops it is a simple micro switch, just in a case. I have mine right at the input of the extruder, so my waste is the length of the bowden tube between the extruder and the hot end. With Marlin set up for the runout sensor it basically just triggers the code for a filament change when tripped. It will reverse a set amount of filament out of the sensor, move the hotend to the rear left corner, shut down the hot end heater and prompt you for a filament change. Remove the filament remnant, load up a new spool and continue. It leaves the heated bed at temp so your print doesn’t come unstuck. On continue it brings the hotend back up to temp then runs in a set amount of filament to get things flowing again. Then prompts you to purge more or continue. Pull the purge filament off the hotend and continue - it moves the head back to where it was and continues the print.
I have filament runout sensors on all but one printer, and will be getting a sensor on that last printer ASAP. I have found them to be helpful. They usually work pretty well.
The only FDM printer I ever bought that did not come with one was an Ender3-v2, and the only reason I bought it was to get an Ender Extender 400XL kit and extend its print volume to 400x400x500. The 400XL project was further complicated by the fact that I also bought a BTT SKR 2 and BTT TFT35-E3 v3 to replace the Creality board and touchscreen, and between the 400XL completion and the new board and TFT completion, the project got set aside for many months, only just now being (mostly) completed, as mentioned here: https://www.reddit.com/r/ender3/comments/ujq0z2/ender_extender_400xl_new_btt_skr2_board_and/
I currently have 7 FDM printers, one of which is new and still in the box, not yet assembled. I also have one resin printer. On big projects it’s really helpful to spread the part printing out across multiple printers.
I have not tried it yet but this detects filament not moving, my second most common issue is the filament getting stuck in the spool so I hope this fixes that issue. https://amzn.to/3skToAb
I already had the sensor and bearings, and the commercially available sensors at the time I did this did not look very promising (metal/filament contact, somewhat low resolution, questionable build quality, etc). The designs on TV also fell short in my book. So I made one with all the features I thought would be good for a 100% reliable solution that is also easy to operate. It can stop if so much as 0.3mm fails to extrude… but I have it set for 2mm which is enough to save most smaller prints. The tpu tires won’t slip and give pliability to retain grip during random movements. The spring tension is adjustable to ensure creep doesn’t ruin it. There is a light pipe that makes it easy to see the state of the sensor (not just bling… can help with adjusting spring tension). I also got OCD over the filament path, to make it so no jams will ever happen when loading new filament.
So far I’ve gone through probably 10+ rolls with that thing and it hasn’t skipped a beat. With a decent extruder it isn’t really even needed over a switch. From my experience, cheap silk PLA and nylons are the most likely to clog, and this sensor has saved many such prints from failure. I’ve since upgraded to a dual gear extruder from my stock MK8, so the clogs are a lot less common. Still it’s good piece of mind to have one.
I wonder if I could get that to work outside of Marlin.
I am guessing the signal just goes high when the filament is moving, so I would need to see the start of a print (which is in HA already), and then wait until after the warm up and then watch for a full 30s without a pulse. Then disable the check when the print is done.
I’m sure you can, as they’re just rotary encoders (well not really an encoder… just on/off states). The way marlin handles it… looks for a change in signal level (0 or 5v) and marks current e position upon a change… the config file has max mm allowed without a change… mine is setup to pause/park if that happens (using advanced pause, e-parser, etc). So if you have an encoder that flops every 0.5mm of filament, you can set it to like 0.7mm and leave almost no empty lines behind on the print. 30sec is a long time… maybe a whole layer on smaller prints. So I think allowing marlin to do it is not a bad idea… not sure how else you’d get motion feedback.
You could make a circuit that raises a voltage if a certain time interval elapses with no encoder transitions, but then depending on the job you might falsely trigger. For instance if you were doing a time lapse and between layers it moved the printer to a fixed position for the photo, then it might go a while without the filament moving and it would trigger. Marlin is the most natural place to know whether filament movement is expected or not.