3
$\begingroup$

I'm trying to figure out how to get my BTT Smart Filament sensor to work with my printer.

I have looked at Getting BTT filament sensor to work and have tried almost everything they did.

Relevant Specs about my printer:

  • Ender 3 (not pro or v2)
  • BIGTREETECH SKR Mini E3 V3
  • BIGTREETECH TFT35 E3 V3.0.1
  • Sensor plugged into E0-Stop on the SKR Mini.
  • Running latest version of Marlin bugfix 2.1.x (last commit 12/5/2022 12:01:08 EST)
  • FYI I also do have OctoPrint running and connected to the USB port of the SKR (not sure this matters).

When I follow BIGTREETECH setup instructions and several youtube videos for setting up configuration.h and configuration_adv.h, build the firmware, flash it on the board. It always starts the print, then immediately stops and reports "Filament out". I've tried setting the following options:

configuration.h options:

#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
  #define FIL_RUNOUT_ENABLED_DEFAULT true // 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     HIGH        // Pin state indicating that filament is NOT present.
  #define FIL_RUNOUT_PULLUP               // Use internal pullup for filament runout pins.
  #define FILAMENT_RUNOUT_SCRIPT "M600"
  #define FILAMENT_RUNOUT_DISTANCE_MM 10
  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
    #define FILAMENT_MOTION_SENSOR
  #endif
#endif

I've tried flipping

#define FIL_RUNOUT_STATE     HIGH

to

#define FIL_RUNOUT_STATE     LOW

but it behaves the same.

Anybody have any ideas? Did I miss something?

$\endgroup$

1 Answer 1

2
$\begingroup$

Ok, it appears I have gotten it working. I guess I didn't flash the firmware after reading that the Smart Sensor requires a minimum of 7 mm of FILAMENT_RUNOUT_DISTANCE_MM. I rebuilt the firmware with the exact settings above and it is now working. I've tested this by starting a print (calibration cube), I waited for it to complete the first 2-3 layers, then I cut the filament and let it run out. It did detect the runout and allowed me to reload and continue the print

$\endgroup$

You must log in to answer this question.

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