Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions config/machine.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,6 @@ resolution: 0.1
[include ../macros/miscs/debugging.cfg]
[include ../macros/miscs/startup.cfg]

[include ../macros/hardware_functions/knomi.cfg]

[include ../scripts/*.cfg]
5 changes: 5 additions & 0 deletions macros/base/homing/homing_override.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ gcode:
{% set z_drop_speed = printer["gcode_macro _USER_VARIABLES"].z_drop_speed * 60 %}
{% set status_leds_enabled = printer["gcode_macro _USER_VARIABLES"].status_leds_enabled %}
{% set bed_mesh_enabled = printer["gcode_macro _USER_VARIABLES"].bed_mesh_enabled %}


{% set homing_first = printer["gcode_macro _USER_VARIABLES"].homing_first|string|upper %}
{% set x_homing_backoff, y_homing_backoff = printer["gcode_macro _USER_VARIABLES"].homing_backoff_distance_xy|map('float') %}
Expand All @@ -37,6 +38,8 @@ gcode:
STATUS_LEDS COLOR="HOMING"
{% endif %}

SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=homing VALUE=True

# which axes have been requested for homing
{% if not 'X' in params
and not 'Y' in params
Expand Down Expand Up @@ -349,6 +352,8 @@ gcode:
{% if status_leds_enabled %}
STATUS_LEDS COLOR="READY"
{% endif %}

SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=homing VALUE=False


[gcode_macro _GOTO_Z_PROBE]
Expand Down
5 changes: 5 additions & 0 deletions macros/base/probing/overides/bed_mesh_calibrate.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ gcode:
{% endif %}
_CG28

SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=probing VALUE=True

ACTIVATE_PROBE

{% if probe_type_enabled == "dockable" %}
Expand All @@ -28,3 +30,6 @@ gcode:
{% endif %}

DEACTIVATE_PROBE

SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=probing VALUE=False

5 changes: 5 additions & 0 deletions macros/base/probing/overides/qgl.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ gcode:
{% endif %}
_CG28

SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=qgling VALUE=True

ACTIVATE_PROBE

# Set the tilting acceleration prior to any movement
Expand All @@ -28,3 +30,6 @@ gcode:
SET_VELOCITY_LIMIT ACCEL={saved_accel} ACCEL_TO_DECEL={saved_decel}

DEACTIVATE_PROBE

SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=qgling VALUE=False

62 changes: 62 additions & 0 deletions macros/hardware_functions/knomi.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
[gcode_macro _KNOMI_STATUS]
variable_homing: False
variable_probing: False
variable_qgling: False
variable_heating_nozzle: False
variable_heating_bed: False
variable_heaters_delayed_workaround: False
gcode:



[gcode_macro SET_HEATER_TEMPERATURE]
rename_existing: SET_HEATER_TEMPERATURE_BASE
gcode:
{% set HEATER = params.HEATER|string %}
{% set TARGET = params.TARGET|int %}

{% if HEATER == 'extruder' %}
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=heating_nozzle VALUE={False if TARGET == 0 else True}
{% endif %}
{% if HEATER == 'heater_bed' %}
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=heating_bed VALUE={False if TARGET == 0 else True}
{% endif %}

{% if printer["gcode_macro _KNOMI_STATUS"].heaters_delayed_workaround == False or TARGET == 0 %}
{% set delay = printer["gcode_macro _USER_VARIABLES"].knomi_heaters_wait_delay|default(30) %}
UPDATE_DELAYED_GCODE ID=_KNOMI_HEATERS_AUTO_OFF DURATION={0 if TARGET == 0 else delay}
{% endif %}

SET_HEATER_TEMPERATURE_BASE {rawparams}


[delayed_gcode _KNOMI_HEATERS_AUTO_OFF]
initial_duration: 0
gcode:
{% set mustWait = False %}

{% set temp = printer.heater_bed.temperature %}
{% set target = printer.heater_bed.target %}

{% if printer["gcode_macro _KNOMI_STATUS"].heating_bed and temp < target %}
{% set mustWait = True %}
{% else %}
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=heating_bed VALUE=False
{% endif %}

{% set temp = printer.extruder.temperature %}
{% set target = printer.extruder.target %}

{% if printer["gcode_macro _KNOMI_STATUS"].heating_nozzle and temp < target %}
{% set mustWait = True %}
{% else %}
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=heating_nozzle VALUE=False
{% endif %}

{% if mustWait %}
{% set delay = printer["gcode_macro _USER_VARIABLES"].knomi_heaters_wait_delay|default(30) %}
UPDATE_DELAYED_GCODE ID=_KNOMI_HEATERS_AUTO_OFF DURATION={delay}
{% else %}
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=heaters_delayed_workaround VALUE=False
{% endif %}

4 changes: 4 additions & 0 deletions macros/helpers/bed_heater_ctrl.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ gcode:

{% set fix_heaters_temperature_settle = printer["gcode_macro _USER_VARIABLES"].fix_heaters_temperature_settle %}

SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=heating_bed VALUE=True

{% if fix_heaters_temperature_settle %}
M140 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}
{% if S != 0 %}
Expand All @@ -22,3 +24,5 @@ gcode:
{% else %}
M190.1 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}
{% endif %}

SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=heating_bed VALUE=False
6 changes: 5 additions & 1 deletion macros/helpers/hotend_heater_ctrl.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ gcode:

{% set fix_heaters_temperature_settle = printer["gcode_macro _USER_VARIABLES"].fix_heaters_temperature_settle %}

SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=heating_nozzle VALUE=True

{% if fix_heaters_temperature_settle %}
M104 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}
{% if S != 0 %}
Expand All @@ -22,4 +24,6 @@ gcode:
{% endif %}
{% else %}
M109.1 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}
{% endif %}
{% endif %}

SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=heating_nozzle VALUE=False