I tested Filament Runout scenarios on the U1 so you don't have to.
I wanted to know how filament runout detection works on the U1 and couldn't find any comprehensive documentation, thought I'd share what I've learned. As it turns out it's a little more complicated than I expected and behaves slightly differently when you have Air Print detection OFF vs ON.
To complicate things, I found out (the hard way) that the feeder sensors weren't calibrated correctly on my printer.
Here's how to validate sensor settings, and expected happy path behavior below...
- Verify your Feeder Empty Threshold
[port_ch_x_threshold](Why Tuning is Required): - Stock cutoff threshold is 0.18. On my printer, loaded is ~0.018 and empty is ~0.15-0.16 (still below 0.18, so an empty slot falsely reads "loaded").
- Run the FEED_PORT command for each feeder, you will have to unload filament to get the empty value.
​
04:10:49 $ FEED_PORT MODULE=left CHANNEL=0
04:10:49 // port[0]: adc value = 0.022955, filament: detected
04:10:52 $ FEED_PORT MODULE=left CHANNEL=1
04:10:52 // port[1]: adc value = 0.023932, filament: detected
04:10:58 $ FEED_PORT MODULE=right CHANNEL=0
04:10:58 // port[0]: adc value = 0.017521, filament: detected
04:11:00 $ FEED_PORT MODULE=right CHANNEL=1
04:11:00 // port[1]: adc value = 0.017827, filament: detected
- If untuned, empty spools masquerade as filament break in PTFE tube or false tangle (Error 38).
- Set threshold between loaded and empty (for example:
port_ch_2_threshold: 0.12for T3). - In your
printer.cfglook for `port_ch_1_threshold` and update with your new value:
​
[filament_feed_right]
port_ch_1_threshold: 0.12
port_ch_2_threshold: 0.12
[filament_feed_lef]
port_ch_1_threshold: 0.12
port_ch_2_threshold: 0.12
Workaround if untuned: Insert filament, execute FEED_AUTO MODULE=right CHANNEL=1 LOAD=1, then press Resume.
Happy Paths - Expected behaviors
Filament runout - Same-tool refill - Air Print detection OFF
Your spool of filament runs dry!
- You see the spool is running out! Fine, Let the tail go through the feeder
- Print keeps going using filament remaining in PTFE tube (doesn't trigger air print because it's off)
- You can either wait until the toolhead runout sensor triggers and pauses the print, or mount a new spool of filament (same type/color/rfid match), and insert new filament into the feeder
- Cancel on-screen Filament Anomaly error
- The Replenish workflow:
- Feeder empty → no spare in alternate toolhead → wait for insert (or proceed to pre-load if already inserted)
- Put the new roll in the feeder → it should preload, pushing filament to toolhead
- Load finishes automatically, purge, and print continues
If you've got the auto-refill option enabled and another tool is already loaded with the same filament, you won't have to reload manually: wait for that same pause and it should auto-switch to the toolhead with the compatible filament.
Filament breaks in PTFE tube -Air Print detection OFF
A break in the filament (filament still in the feeder, break in the PTFE).
- Downstream stub is still at the toolhead, print keeps going using that piece.
- That stub clears the toolhead path sensor → triggers a runout pause.
- Feeder IR still detected (roll is still in the slot) → firmware says snap → T3 → T3 → FEED_AUTO LOAD=1 by itself.
- Feeder pushes the same roll through the gap until the path sensor sees filament again.
- Auto Purge, print continues. You don’t need to press Resume.
Filament runout - Same tool refill - Air Print detection ON
Your spool of filament runs dry!
- IR goes empty → tangle detection disarms → no 38 error
- Print continues on the PTFE
- Pause when the toolhead path sensor trips
- Cancel on-screen Filament Anomaly error
- Replenish workflow: IR empty → no spare in alternate toolhead → wait for insert
- Put a new roll in the same feeder → it should preload, pushing filament to toolhead
- Resume Print → Completes filament load/purge, and print continues
Filament breaks in PTFE - Air Print detection ON
A break in the filament (filament still in the feeder, break in the PTFE).
- If Air Print detection is ON, a filament break in the PTFE tube usually looks like a tangled spool to the printer:
- Feeder IR sensor shows filament loaded
- Feeder wheels not turning, E still moving → Error 38 at the feeder.
- No replenish cycle, no auto-push to toolhead
- Resume alone won’t join the break.
There is no fully automatic happy path here. The printer pauses at the feeder (error 523/38) and will not auto-push.
- Print pauses: filament has tangled! Cancel the error on the printer, Do not press Resume (it will error 38 again).
- Leave the roll in the feeder.
- Check the path sensor: QUERY_FILAMENT_SENSOR SENSOR=e3_filament
- If it still says detected, clear the downstream stub (purge, or pull the piece in the PTFE tube out by hand. A break right after the feeder can be almost a meter).
- To purge - you will have to ensure the nozzle is at print temp and then press the extrude button
- You may be better off heating the nozzle, and pulling the broken filament out manually, especially if there's a long piece in the PTFE tube. Heat to a minimum (180ish for PLA) so that you don't introduce a clog when you pull hot filament back through the heat break!
- Run:
FEED_RUNOUT_EVENT_HANDLE MODULE=right CHANNEL=1to transition from aload_finishstate to apreload_finishstate - essentially treating this a as a standard filament runout case - Then:
FEED_AUTO MODULE=right CHANNEL=1 LOAD=1You should see the motor run and wait for a manual resume. - Press Resume. It purges and continues.