Klipper3d / klipper

Klipper is a 3d-printer firmware
GNU General Public License v3.0
9.24k stars 5.26k forks source link

Filament runout sensor? #537

Closed ghost closed 5 years ago

ghost commented 6 years ago

Is there no implementation of a filament runout feature in Klipper? I feel like it's a fairly simple and and necessary function to have

Hywelmartin commented 6 years ago

Then M600 (Filament change) as well

KevinOConnor commented 6 years ago

This looks like a duplicate of issue #249 .

mamoit commented 6 years ago

@MrMbss1 M600 is another issue, since it is not just handling the sensor, it is reacting to its state change, but I guess it can be later built on top of the filament sensor module.

mamoit commented 6 years ago

Efforts on #545, ideas and requests are welcome.

AxMod3DPrint commented 6 years ago

A note on M600, technically, if using octoprint, if the filament runs out, it could just call a @pause and the park movement can be done from within octoprint from the GCode Scripts tab like this:

After Pause

{% if pause_position.x is not none %}
; relative XYZE
G91
; retract filament of 0.8 mm up, move Z slightly upwards and 
G1 Z+5 E-0.8 F4500
; absolute XYZE
G90
; move to a safe rest position, adjust as necessary
G1 X0 Y0
{% endif %}

Before resume

{% if pause_position.x is not none %}
; relative extruder
G91
; prime nozzle
G1 F4500
G1 E-0.8 F4500
G1 E0.8 F4500
G1 E0.8 F4500
; absolute E
; absolute XYZ
G90
; reset E
G92 E{{ pause_position.e }}
; move back to pause position XYZ
G1 X{{ pause_position.x }} Y{{ pause_position.y }} Z{{ pause_position.z }} F4500
; reset to feed rate before pause if available
{% if pause_position.f is not none %}G1 F{{ pause_position.f }}{% endif %}
{% endif %}

A quick note on the G1 F4500 after the prime, this is a work around for a known bug where extruder only moves cause a problem with max_extrude_cross_section

KevinOConnor commented 5 years ago

Closing in favour of existing #249.