(This is a pretty much duplicate post from one I put over on the Reddit, but it hasn't received a lot of traction over there so I figured I'd post):

Like many posts I've seen on the internet, I'm having trouble getting my BTT smart filament sensor to work.

Relevant Specs about my printer:

  • Ender 3 Pro
  • BTT E3 RRF Mainboard with IDEX module
  • Marlin Firmware I've edited in ways I mention below

What is going wrong:

It triggers way too easily. Right as a print starts, it'll trigger and say I ran out of filament. And/or it'll make it maybe half a layer and then trigger.

Steps I've taken:

  • I started by following the Teaching Tech YouTube video to get started and install it. Tried to match literally every change of his in the firmware I saw. Things like runout distance set to 7 and runout state set to low instead of high.
    • Quick note on those. In several places (like this) comments suggest changing the distance to more than 7 mm to make it less 'picky'. But in several comments (like here, and here), people suggest the official recommendation from BTT is 7 mm and there's a reason to set it at that. I've tried all sorts of distances and none seem to work.
    • In at least one place (like here) people suggest that even if you set it to 7 mm in the firmware, it doesn't always take effect and you have to go to the configuration menu in your printer and set it, then store the settings. I've done that as well.
    • I've set the runout state to either low or high, seems to still falsely trigger either way.
  • The only solution I haven't tried yet (will try tonight when I get home) (did that , still no luck) is in this comment it suggests adding M75 to my code to 'start the print job timer' so it won't trip 'after the initial 7 mm runout'. Could someone explain that one to me? Also, I feel like that's not it because even when I let it go through its paces and unload and then load, it'll trip again soon after.

The problem:

I just feel like it's still way too sensitive. And sure, in an ideal world I want it to detect all the things it's 'supposed' to detect like jams, tangles, etc... but I really just care the most about it noticing I ran out of filament. Are there any settings in the firmware or anywhere else I should take a look at?

My latest thought is that maybe I have the sensor mounted in a different direction than it should be? Every video or picture I see online looks like the filament is going the opposite direction compared to what I have, but I've also seen comments where it says that doesn't matter.

I also have seen comments like here where the author recommends a HUGE runout distance (50) as that could be a problem. I'm willing to try that.


1 Answer 1


I would comment but I don’t have enough reputation yet -

Are you using the Creality firmware, Marlin, RepRap, or the Stock BIGTREE firmware? Also, have you modified it at all?

If you’re still using the firmware that came on the printer or Marlin firmware this thread could offer some insight. Read down through all of the comments because several people had really good tips, and the OP actually posted an update with how he solved it:

It seems that the settings stored in the printer overwrides the FILAMENT_RUNOUT_DISTANCE_MM in the firmware. So I just went the the printer configuration -> advance configuration -> filament and then I changed the runout distance and stored the settings. Source

  • $\begingroup$ I have marlin. I mentioned that "that even if you set it to 7 mm in the firmware, it doesn't always take effect and you have to go to the configuration menu in your printer and set it, then store the settings. I've done that as well" $\endgroup$ Nov 11, 2021 at 14:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .