u/dj_splice

▲ 28 r/snapmaker+1 crossposts

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.12 for T3).
  • In your printer.cfg look 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!

  1. You see the spool is running out! Fine, Let the tail go through the feeder
  2. Print keeps going using filament remaining in PTFE tube (doesn't trigger air print because it's off)
  3. 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
  4. Cancel on-screen Filament Anomaly error
  5. The Replenish workflow:
    1. Feeder empty → no spare in alternate toolhead → wait for insert (or proceed to pre-load if already inserted)
  6. Put the new roll in the feeder → it should preload, pushing filament to toolhead
  7. 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).

  1. Downstream stub is still at the toolhead, print keeps going using that piece.
  2. That stub clears the toolhead path sensor → triggers a runout pause.
  3. Feeder IR still detected (roll is still in the slot) → firmware says snap → T3 → T3 → FEED_AUTO LOAD=1 by itself.
  4. Feeder pushes the same roll through the gap until the path sensor sees filament again.
  5. 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!

  1. IR goes empty → tangle detection disarms → no 38 error
  2. Print continues on the PTFE
  3. Pause when the toolhead path sensor trips
  4. Cancel on-screen Filament Anomaly error
  5. Replenish workflow: IR empty → no spare in alternate toolhead → wait for insert
  6. Put a new roll in the same feeder → it should preload, pushing filament to toolhead
  7. 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.

  1. Print pauses: filament has tangled! Cancel the error on the printer, Do not press Resume (it will error 38 again).
  2. Leave the roll in the feeder.
  3. Check the path sensor: QUERY_FILAMENT_SENSOR SENSOR=e3_filament
  4. 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).
    1. To purge - you will have to ensure the nozzle is at print temp and then press the extrude button
    2. 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!
  5. Run: FEED_RUNOUT_EVENT_HANDLE MODULE=right CHANNEL=1 to transition from a load_finish state to a preload_finish state - essentially treating this a as a standard filament runout case
  6. Then: FEED_AUTO MODULE=right CHANNEL=1 LOAD=1You should see the motor run and wait for a manual resume.
  7. Press Resume. It purges and continues.
reddit.com
u/dj_splice — 2 days ago

U1 Adaptive PA without 12 calibration prints (built-in sensor + macro automation, ~25 min)

So I got curious about how Pressure Advance auto-calibration worked on the U1 and ended up going down a pretty deep rabbit hole...

Not quite at the bottom yet, but I ended up building a workflow that makes Adaptive Pressure Advance config for Orca faster and easier. If you've ever spent hours configuring, printing, and judging 12+ PA calibration prints just to fill an Adaptive PA table, you know the nightmare. Probably why not many people use the feature!

The Adaptive Pressure Advance macros run 5 automated test cycles and you get a usable Adaptive PA config in about 25 minutes without printing PA towers. It's built on the native U1 inductance coil and Snapmaker provided FLOW_MEASURE_K / flow calibrator Klipper extension, so no additional custom firmware needed.

Macros + methodology:

https://github.com/djsplice/u1-adaptive-pa-autocal/

YouTube walkthrough:

https://www.youtube.com/watch?v=TzlhBpQkZEI

Extended blog post:

https://garagenotes.lmnt.co/Snapmaker-U1-Adaptive-Pressure-Advance-auto-calibration.html

Happy to answer U1-specific questions. Feedback welcome.

u/dj_splice — 26 days ago