From 69a5cbc45c4e5fc98242570829fa5a24fe60c0f1 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 12 Mar 2023 01:32:40 -0500 Subject: [PATCH] Merging filament sensor related code. --- cfgs/misc-macros.cfg | 36 ++++++++++++++++++++++++++---------- printer.cfg | 9 +++++++++ 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 643707d..9fa3d76 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -14,10 +14,28 @@ path: /home/pi/printer_data/gcodes [pause_resume] [display_status] +[delayed_gcode DISABLEFILAMENTSENSOR] +initial_duration: 1 +gcode: + SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 + [gcode_macro _globals] variable_pre_purge_prime_length: 1.4 +variable_filament_sensor_enabled: 0 # NOTE Enable(1) or disable(0) the filament sensor, if one is connected gcode: SET_GCODE_VARIABLE MACRO=_globals VARIABLE=pre_purge_prime_length VALUE={ variable_pre_purge_prime_length } + SET_GCODE_VARIABLE MACRO=_globals VARIABLE=filament_sensor_enabled VALUE={ variable_filament_sensor_enabled } + +[gcode_macro ADJUST_FILAMENT_SENSOR_STATUS] +gcode: + # Parameters + {% set NEWSTATUS = params.ENABLE|default(-1)|int %} + + {% set FILAMENT_SENSOR_ENABLED=printer["gcode_macro _globals"].filament_sensor_enabled|default(-1)|int %} + + {% if FILAMENT_SENSOR_ENABLED == 1 and NEWSTATUS != -1 %} + SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=NEWSTATUS + {% endif %} [gcode_macro CHECK_PRE_PURGE_PRIME_LENGTH] gcode: @@ -72,16 +90,14 @@ gcode: BASE_CANCEL_PRINT [gcode_macro PRINT_START] -# Use PRINT_START for the slicer starting script - please customize for your slicer of choice -#gcode: -# G28 ; home all axes -# G1 Z20 F3000 ; move nozzle away from bed -gcode: +gcode: # Parameters {% set bedtemp = params.BED|int %} {% set hotendtemp = params.HOTEND|int %} {% set chambertemp = params.CHAMBER|default(0)|int %} + ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 + G28 X Y # M140 S{bedtemp} ; set & don't wait for bed temp @@ -97,9 +113,9 @@ gcode: G1 Z20 F3000 ; move nozzle away from bed [gcode_macro PRINT_END] -# Use PRINT_END for the slicer ending script - please customize for your slicer of choice gcode: - BEEP I=2 DUR=30 FREQ=8500 ; NOTE Comment out this line to stop the beeps at the end of a print + ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 + BEEP I=2 DUR=30 FREQ=8500 ; NOTE Comment out this line to stop the beeps at the end of a print {% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length|default(1.40)|float %} M400 ; wait for buffer to clear G92 E0 ; zero the extruder @@ -166,7 +182,7 @@ gcode: SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} ; set z hop variable for reference in resume macro SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} ; set hotend temp variable for reference in resume macro - # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 ; disable filament sensor + ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE ; save current print position for resume BASE_PAUSE ; pause print {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} ; check that zhop doesn't exceed z max @@ -192,8 +208,8 @@ gcode: {% set e = params.E|default(2.5)|int %} ; hotend prime amount (in mm) {% if printer['pause_resume'].is_paused|int == 1 %} - # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 ; enable filament sensor - #INITIAL_RGB ; reset LCD color + ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 + SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value {% if etemp > 0 %} M109 S{etemp|int} ; wait for hotend to heat back up diff --git a/printer.cfg b/printer.cfg index fc3ecfe..976e116 100644 --- a/printer.cfg +++ b/printer.cfg @@ -220,6 +220,15 @@ shutdown_value: 0 pwm: True cycle_time: 0.0005 ; Default beeper tone in kHz. 1 / 0.0005 = 2000Hz (2kHz) +[filament_switch_sensor filament_sensor] +switch_pin: !PA4 # "Pulled-high" +pause_on_runout: True +insert_gcode: + M117 Insert Detected +runout_gcode: + M117 Runout Detected + BEEP i=3 dur=300 freq=400 + #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*#