Update fans-control.cfg

Instead of adding fanX_min to the set fan value, use the larger of either the set value or the fan minimum value. This prevents unexpectedly high fan when setting the fan to a relatively low value in the slicer. No changes were directly made to the Qmode settings.
This commit is contained in:
reffu42 2024-07-04 11:01:04 -04:00 committed by GitHub
parent 50fbec9843
commit 0b8d675387
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -98,41 +98,43 @@ gcode:
{% if tmp > 0 %} {% if tmp > 0 %}
{% if fan == 0 %} {% if fan == 0 %}
{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}
{% set f0min = printer["gcode_macro PRINTER_PARAM"].fan0_min %}
{% if printer['gcode_macro Qmode'].flag | int == 1 %} {% if printer['gcode_macro Qmode'].flag | int == 1 %}
SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={([f0min,value]|max)}
{% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %}
{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %}
{% else %} {% else %}
{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %} {% set value = ([f0min, value]|max) %}
{% endif %} {% endif %}
{% else %} {% else %}
{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if fan == 1 %} {% if fan == 1 %}
{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %}
{% set f1min = printer["gcode_macro PRINTER_PARAM"].fan1_min %}
{% if printer['gcode_macro Qmode'].flag | int == 1 %} {% if printer['gcode_macro Qmode'].flag | int == 1 %}
SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={([f1min,value]|max)}
{% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %}
{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %}
{% else %} {% else %}
{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %} {% set value = ([f1min,value]|max) %}
{% endif %} {% endif %}
{% else %} {% else %}
{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %} {% set value = ([f1min,value]|max) %}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if fan == 2 %} {% if fan == 2 %}
{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %}
{% set f2min = printer["gcode_macro PRINTER_PARAM"].fan2_min %}
{% if printer['gcode_macro Qmode'].flag | int == 1 %} {% if printer['gcode_macro Qmode'].flag | int == 1 %}
SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={([f2min,value]|max)}
{% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %}
{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %}
{% else %} {% else %}
{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %} {% set value = ([f2min,value]|max) %}
{% endif %} {% endif %}
{% else %} {% else %}
{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %} {% set value = ([f2min,value]|max) %}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endif %} {% endif %}