Install a Filament Runout Sensor on your 3D Printer and Klipper
Kapman's Basement Workshop Kapman's Basement Workshop
6.44K subscribers
29,296 views
0

 Published On Jul 25, 2022

Learn how to install a filament runout sensor and configure Klipper to make use of the Trianglelab filament runout sensor and never loose a 3d print again to runout.

Note, please don't risk blowing your electronics and don't plug devices into a powered circuit board like I did, by mistake, in this video!
This video should also be applicable for 3d printing beginners that are interested in upgrading their 1st 3d printer.

The run out sensor can be purchased at Amazon where I receive a commission that directly contributes to content creation on this site:
https://amzn.to/40IJTZX
The military green ABS and black ASA filament: https://www.paramount-3d.com/?ref=o45...

Important links:
Base script: file:///home/harry/Downloads/filament_runout_detection.cfg
STL file: https://github.com/VoronDesign/VoronU...
Fysetc Spider pinouts: https://wiki.fysetc.com/images/Spider...

My modified script used in the video:
[filament_switch_sensor RunoutSensor]
switch_pin: !PB13 # Pin ESTOP-Y for Spider mcu
pause_on_runout: false
runout_gcode: M600 # Move nozzle to a location thats easy for the user to access

#####################################################################
Filament change macro M600
#####################################################################

[gcode_macro M600]
variable_park_x: 175 # try half your bed size.
variable_park_y: 10
variable_z_lift: 50
variable_velocity: 60
variable_retract: 0.5
gcode:
SAVE_GCODE_STATE NAME=STATE_M600 # remembers the position

PAUSE_BASE
Fluidd redifines PAUSE to move the the back corner of the printer. We don't want that. This is what Fluidd renamed basic pause to.
Mainsail renames PAUSE to "BASE_PAUSE", so you should probably use that instead. If using other software, probably just use PAUSE.

safe park coords
{% set th = printer.toolhead %}
{% set park_x = [params.X|default(park_x)|int, th.axis_maximum.x-2]|min %}
{% set park_y = [params.Y|default(park_y)|int, th.axis_maximum.y-10]|min %}
{% set park_z = [th.position.z + params.Z_LIFT|default(z_lift)|int, th.axis_maximum.z]|min %}
{% set park_feedrate = params.VELOCITY|default(velocity)|int * 60 %}

retract at 50mm/sec
G91
G1 E-{retract} F3000

park toolhead
G90
G0 X{park_x} Y{park_y} Z{park_z} F{park_feedrate}

Tell user to reload filament
M117 Reload Filament

RESTORE_GCODE_STATE NAME=STATE_M600

End of gcode script

Thank you for watching!
Please subscribe today!
Instagram:   / kapmansbasementworkshop  

show more

Share/Embed