Filament runout sensor wiring inquiry

Greetings and how is everybody doing today?

Im trying to get a filament runout sensor working on my E3Pro SKR Mini E3V3, TFT35 E3V3, Raspberry Pi 4b and newest release of Octoprint. I started with the BTT Smart Runout Sensor in both the Touch screen and motherboard and nothing happened when triggered. Then i tried the the smart filament sensor plugin with the sensor setup on the Gpio. It just kept triggering every 2 minutes despite the settings i changed.(i have reason to beleive the sensor is bad) this would be the 4th one i was sent by the seller.

Now im attempting to try the this. But i cannot find which wire is which. I have a Ender 3 S1 Plus with this sensor and even though that machines firmware isn't great it does work flawlessly without anything needed. So i figured id try it on my E3Pro. I do plan on using the Filament runout reloaded plugin. But i just need to know what each wire is.

I added the first paragraph just in case somebody can help me there

Without Reddit i really didn't know where else togo. But i usually find all my Octoprint answers here. I greatly appreciate your time and hope somebody can help me out. I Thank you and i bid all a good day!

hello, hello
doing good - thanks :slight_smile:

The firmware you're running on the board probably doesn't support the sensor out of the box.
I checked the Big Tree Tech firmware source code and it isn't enabled in there.
If you want to connect it to your printer you either have to get a precompiled firmware from somewhere or compile it yourself.

I could compile their firmware source with the settings they provide for the sensor for you if you want - but no guarantees from my side.
I never used that sensor or their firmware configuration. So everything is on them ^^

If you feel like doing it yourself I can show you how to start :slight_smile:

I can't really help you with the sensor on a pi. Never did that. Does it work the way it should until it triggers a falls runout every 2 minutes?

I was under the impression that the sensor does not work through mainboard or TFT when using octoprint. Both plugins also stated to hook to a raspberry pi. I was using the sensor before i started using octoprint. So i do know what to modify. I quit using it (the BTT smart filament sendor) cause i had no where to run it after i modified the machine.
Just needed to know what wire was what on the sensor( the creality sensor) so i could hook it up to the raspberry pi without frying it. Thank you for responding!

In theory it should work fine with #define HOST_ACTION_COMMANDS it should just tell OctoPrint that the printer paused.

Is it this sensor?

Once you work out the trigger. I think this is true no matter how you trigger it but for sure if you do go with triggering it from within the Octorprint interface and use the Pi for the IO, you will likely want to setup a little bit more within OctoPrint to make the process of changing the filament out manageable.

You will want to setup Some actions for the printer to take. If you don't, it can be really hard to get things back to where it was when it paused.

I wrote this up for a different IO Solution/PlugIn but the part about how to setup the actions around Filament runout are relevant to any setup.

No but i was going to get one but maybe theres more to it than i realized.

Hi Valrog I have a Btt e3 v3 board and a BTT smart runout sensor and Octoprint connecte to my Ender3 V2. You will have to modify configuration.h file in Marlin before the smart sensor will be able to be used. Search the file for the following and set as below.
below is the setting required.

  #define FIL_RUNOUT_ENABLED_DEFAULT false // Enable the sensor on startup. Override with M412 followed by M500.
  #define NUM_RUNOUT_SENSORS   1          // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.

  #define FIL_RUNOUT_STATE     LOW        // Pin state indicating that filament is NOT present.
  #define FIL_RUNOUT_PULLUP               // Use internal pullup for filament runout pins.
  //#define FIL_RUNOUT_PULLDOWN           // Use internal pulldown for filament runout pins.
  //#define WATCH_ALL_RUNOUT_SENSORS      // Execute runout script on any triggering sensor, not only for the active extruder.
    // This is automatically enabled for MIXING_EXTRUDERs.

  // Override individually if the runout sensors vary
  //#define FIL_RUNOUT1_PULLUP

  //#define FIL_RUNOUT2_PULLUP

  //#define FIL_RUNOUT3_PULLUP

  //#define FIL_RUNOUT4_PULLUP

  //#define FIL_RUNOUT5_PULLUP

  //#define FIL_RUNOUT6_PULLUP

  //#define FIL_RUNOUT7_PULLUP

  //#define FIL_RUNOUT8_PULLUP

  // Commands to execute on filament runout.
  // With multiple runout sensors use the %c placeholder for the current tool in commands (e.g., "M600 T%c")
  // NOTE: After 'M412 H1' the host handles filament runout and this script does not apply.

  // After a runout is detected, continue printing this length of filament
  // before executing the runout script. Useful for a sensor at the end of
  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.

    // Enable this option to use an encoder disc that toggles the runout pin
    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
    // large enough to avoid false positives.)

There are a nuber of good ytube videos on how to modify marlin.

Connection for the BTT E3 V3 board

1 Like


One tiny request:

Please put your code between code braces:


So you can be sure that no important information gets lost.

Thank you

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.