#BTT SFS v2 Motion Doesn't work

23 messages · Page 1 of 1 (latest)

gentle trail
#

I have setup the BTT smart filament sensor (v2) a few different ways, the RUNOUT sensor works, the MOTION sensor doesn't work no matter what I do. At this point I'm just trying to figure out how I can manually check that the sensor works, so I don't have to go through the entire printing process for each check.

The sensor has a 4-pin branched cable going from the sensor, one branch to PG15 and +5V (GND empty), and the motion cable going to PG11 and GND (+5V empty). I assume that the empty slots don't matter, it just needs one +5V between the two, and one GND, and then 1 signal for each. I have tried with and without ^ and !, and nothing seems to work. My config is based on this: https://wiki.circuitlaunch.com/circuitlaunch/BTT-V2-SFS-Smart-Filament-Sensor-on-Ratrig-6d153a7734e14531a74e5e2cc28e1c38

[filament_switch_sensor FILAMENT_RUNOUT] 
switch_pin: ^PG15
pause_on_runout: True
event_delay: 3.0
pause_delay: 0.5
runout_gcode:
  M117 Filament not detected, pausing...
  PAUSE # [pause_resume] is required in printer.cfg
  SET_IDLE_TIMEOUT TIMEOUT=18000
insert_gcode:
  M117 Filament detected, check hotend temp and resume


[filament_motion_sensor FILAMENT_MOTION]
switch_pin: ^PG11
detection_length: 8 # accuracy of motion sensor 2.88mm 
extruder: extruder
pause_on_runout: True
event_delay: 3.0
pause_delay: 0.5
runout_gcode:
  M117 Filament jam detected, pausing...
  PAUSE # [pause_resume] is required in printer.cfg
  SET_IDLE_TIMEOUT TIMEOUT=18000
insert_gcode:
  M117 Jam cleared.  Check hotend temp and resume

Any ideas what to try next, or how I can manually verify this thing isn't defective

Circuit Launch on Notion

Getting this to work was more than a bit Tricky for me. Hopefully my settings will help. In the Manual (PDF) linked in the references it shows what the best place to plug it in for your MCU. I have the Octopus Pro V1.01

wooden boneBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

gentle trail
#

I forgot to mention that it pause immediately on starting the print, then when I resume, it will continue printing to the end with no issue. However, it does not detect the "jam" if I manually stop it from feeding.

Also, in the Mainsail UI, it will show either "empty" or "detected" for that particular sensor, but doesn't change when the filament moves. I was under the impression it should switch every 2.88mm

languid zinc
#

With a multimeter between GND and one of the sensor pins, play with filament and verify the voltage changes

gentle trail
#

Seems kinda obvious in hindsight.

RUNOUT wires goes from 0V (empty) to 3.77V (filament present) ✅
MOTION wires, oscillates between 2.4V and 2.9V as filament moves ❌

#

Is the 2.9V switching enough for the microcontroller to detect? I guess not since the Octopus Pro board is not detecting the change

languid zinc
#

Dunno what it is supposed to do, but now you can compare what you got with what the documentation says

gentle trail
#

I'm fairly certain it's supposed to switch voltage ever 2.88mm of filament movement. But maybe this is defective, because that's not enough

upbeat totem
#

Maybe it is suppose to have a pull up or pull down resistor

gentle trail
#

Isn't that what the ^ is for in ^PG11?

#

My original picture was in the little sheet that came with the sensor. But their manual has this specific board:

#

I have plugged it into different ports, but made sure PG11 was correct

languid zinc
#

Is there a console command to query the motion switch?

#

Also, try the multimeter thing while it's plugged in

gentle trail
#

When everything is connected properly, the voltage between GND and SIGNAL oscillates between 2.68V and 3.18V as the filament moves. I guess still not enough to switch the state of signal pin on the Octopus board

languid zinc
#

Is that what the SFS is supposed to do?

hoary nimbus
#

I have it wired as shown and I have this in my printer.cfg file. I upped the detection length from 2.88 to 6.0 as was getting some false triggers

[filament_switch_sensor switch_sensor]
switch_pin: PG14
pause_on_runout: False
runout_gcode:
_ON_BOWDEN_FILAMENT_SENSOR_RUNOUT TOOLHEAD=0
M118 Filament runout
insert_gcode:

[filament_motion_sensor encoder_sensor]
switch_pin: PG15
detection_length: 6.0
extruder: extruder
pause_on_runout: False
runout_gcode:
_ON_BOWDEN_FILAMENT_SENSOR_CLOG TOOLHEAD=0
M118 Filament clog
insert_gcode:

gentle trail
# languid zinc Is that what the SFS is supposed to do?

Yes, it an encoder wheel with holes and IR tx/rx around it, which changes the signal every 2.88mm of filament. If you set detection length to 6(mm), then RatOS expects to see at least one signal flip/pulse every 6mm of filament it thinks it's feeding which accommodates some slack in the bowden tubes, etc (but either way will see zero pulses if it's jammed because the wheel isn't spinning). It's surprisingly simple at the end of the day.

gentle trail
hoary nimbus
#

There are two status words on the dashboard. One that say "detected" when everything is normal; and then "empty" when there is a problem. I can trigger this by extruding filament while I hold the filament and do no allow it to get pulled by the extruder. The console will say "Filament clog" because of my M118 command. While watching the BTT sensor the blue light will also stop flashing when it should be pulsing.

gentle trail
# safe idol try a pull down `~PG10`

I ended up ordering a new BTT SFS v2 and it works. I double checked the voltages on the new one and it was as I expected: as I move the filament, it switches between 0V and 4.4V every few mm. There must've been something wrong with the electronics of the old one. I have processed an Amazon return for it.

I tested both filament runout and filament jam capability of the new one, and it works fine with the following in my printer.cfg:

[filament_switch_sensor FILAMENT_RUNOUT] 
switch_pin: ^PG15
pause_on_runout: False
event_delay: 3.0
pause_delay: 0.5
runout_gcode:
  M117 Filament not detected, pausing...
  PAUSE # [pause_resume] is required in printer.cfg
  SET_IDLE_TIMEOUT TIMEOUT=18000
insert_gcode:
  M117 Filament detected, check hotend temp and resume


[filament_motion_sensor FILAMENT_MOTION]
switch_pin: ^PG10
detection_length: 6 # accuracy of motion sensor 2.88mm 
extruder: extruder
pause_on_runout: False
event_delay: 3.0
pause_delay: 0.5
runout_gcode:
  M117 Filament jam detected, pausing...
  PAUSE # [pause_resume] is required in printer.cfg
  SET_IDLE_TIMEOUT TIMEOUT=18000
insert_gcode:
  M117 Jam cleared.  Check hotend temp and resume

[delayed_gcode DISABLEFILAMENTSENSOR] ; This will disable the SFS 1 second after klipper starts
initial_duration: 1
gcode:
  SET_FILAMENT_SENSOR SENSOR=FILAMENT_RUNOUT ENABLE=0
  SET_FILAMENT_SENSOR SENSOR=FILAMENT_MOTION ENABLE=0

[gcode_macro _USER_START_PRINT_AFTER_HEATING_EXTRUDER]
gcode:
    M117 ENABLING the Smart Filament Sensor
    SET_FILAMENT_SENSOR SENSOR=FILAMENT_MOTION ENABLE=1
    SET_FILAMENT_SENSOR SENSOR=FILAMENT_RUNOUT ENABLE=1
    SKEW_PROFILE LOAD=CaliFlower

[gcode_macro _USER_END_PRINT_AFTER_HEATERS_OFF]
gcode:
  M117 DISABLING the Smart Filament Sensor
  SET_FILAMENT_SENSOR SENSOR=FILAMENT_MOTION ENABLE=0
  SET_FILAMENT_SENSOR SENSOR=FILAMENT_RUNOUT ENABLE=0
  SET_SKEW CLEAR=1
languid zinc
#

That's great news! Grats on solving it 🎉