Бэкап конфигурации перед обновлением компонентов
- hbb.cfg отключён - idle_timeout 1800 -> 600, добавлен _SET_IDLE_MODE - probe z_offset -0.835 -> -0.830 - вентиляторы SoC разделены на SoC_Left (PD13) и SoC_Right (PD12) - обновления в macros/main.cfg
This commit is contained in:
+201
-2
@@ -25,7 +25,8 @@ gcode:
|
|||||||
initial_duration: 1
|
initial_duration: 1
|
||||||
gcode:
|
gcode:
|
||||||
STATUS_READY
|
STATUS_READY
|
||||||
SET_FAN_SPEED FAN=SoC SPEED=0.3
|
_Set_SoC_FAN_Speed Mode=Idle
|
||||||
|
#SET_FAN_SPEED FAN=SoC SPEED=0.3
|
||||||
|
|
||||||
[delayed_gcode _INIT_TIMELAPSE_CHECK_TIME]
|
[delayed_gcode _INIT_TIMELAPSE_CHECK_TIME]
|
||||||
initial_duration: 1
|
initial_duration: 1
|
||||||
@@ -43,6 +44,12 @@ gcode:
|
|||||||
{action_respond_info('action:poweroff')}
|
{action_respond_info('action:poweroff')}
|
||||||
{action_call_remote_method("shutdown_machine")}
|
{action_call_remote_method("shutdown_machine")}
|
||||||
|
|
||||||
|
[gcode_macro _SET_IDLE_MODE]
|
||||||
|
gcode:
|
||||||
|
_CHAMBER_LED_OFF
|
||||||
|
_Set_SoC_FAN_Speed Mode=Idle
|
||||||
|
M84
|
||||||
|
|
||||||
|
|
||||||
[gcode_macro _CHAMBER_LED_OFF]
|
[gcode_macro _CHAMBER_LED_OFF]
|
||||||
gcode:
|
gcode:
|
||||||
@@ -52,6 +59,19 @@ gcode:
|
|||||||
gcode:
|
gcode:
|
||||||
SET_LED LED="chamber_leds" RED=1 GREEN=1 BLUE=1 SYNC=0 TRANSMIT=1
|
SET_LED LED="chamber_leds" RED=1 GREEN=1 BLUE=1 SYNC=0 TRANSMIT=1
|
||||||
|
|
||||||
|
[gcode_macro _Set_SoC_FAN_Speed]
|
||||||
|
description: Установка режима работы вентиляторов обдува блока электроники
|
||||||
|
variable_fan_mode_speeds: { 'Idle': [0,0], 'Printing': [0.3,0.6] }
|
||||||
|
variable_exist_fans: [ 'SoC_Left', 'SoC_Right']
|
||||||
|
gcode:
|
||||||
|
{% set mode = params.MODE|default("Idle") %}
|
||||||
|
{% set fan_speeds = fan_mode_speeds[mode] %}
|
||||||
|
{ action_respond_info("set soc fans %s" % (fan_speeds)) }
|
||||||
|
{% for fan in exist_fans %}
|
||||||
|
SET_FAN_SPEED FAN={fan} SPEED={fan_speeds[loop.index0]}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
[gcode_macro _LED_SWITCH]
|
[gcode_macro _LED_SWITCH]
|
||||||
gcode:
|
gcode:
|
||||||
{% set color_data = printer["neopixel chamber_leds"].color_data %}
|
{% set color_data = printer["neopixel chamber_leds"].color_data %}
|
||||||
@@ -88,6 +108,8 @@ gcode:
|
|||||||
[gcode_macro QUAD_GANTRY_LEVEL]
|
[gcode_macro QUAD_GANTRY_LEVEL]
|
||||||
rename_existing: QUAD_GANTRY_LEVEL_BASE
|
rename_existing: QUAD_GANTRY_LEVEL_BASE
|
||||||
gcode:
|
gcode:
|
||||||
|
_Set_SoC_FAN_Speed Mode=Printing
|
||||||
|
_CHAMBER_LED_ON
|
||||||
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=qgling VALUE=True
|
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=qgling VALUE=True
|
||||||
STATUS_LEVELING
|
STATUS_LEVELING
|
||||||
QUAD_GANTRY_LEVEL_BASE
|
QUAD_GANTRY_LEVEL_BASE
|
||||||
@@ -109,7 +131,6 @@ gcode:
|
|||||||
|
|
||||||
[gcode_macro PRINT_START]
|
[gcode_macro PRINT_START]
|
||||||
gcode:
|
gcode:
|
||||||
_CHAMBER_LED_ON
|
|
||||||
#PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}
|
#PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}
|
||||||
{% set BED_TEMP = params.BED|default(60)|float %}
|
{% set BED_TEMP = params.BED|default(60)|float %}
|
||||||
{% set EXTRUDER_TEMP = params.EXTRUDER|default(210)|float %}
|
{% set EXTRUDER_TEMP = params.EXTRUDER|default(210)|float %}
|
||||||
@@ -387,6 +408,184 @@ gcode:
|
|||||||
G1 E-{unload_distance} F{max_velocity} # fast-unload
|
G1 E-{unload_distance} F{max_velocity} # fast-unload
|
||||||
RESTORE_GCODE_STATE NAME=unload_state
|
RESTORE_GCODE_STATE NAME=unload_state
|
||||||
|
|
||||||
|
[gcode_macro PURGE_AFTER_FILAMENT_CHANGE]
|
||||||
|
description: Безопасная очистка сопла после замены филамента с опциональным автоматическим хомингом
|
||||||
|
gcode:
|
||||||
|
# === ПРОВЕРКА СОСТОЯНИЯ ПРИНТЕРА ===
|
||||||
|
{% if printer.idle_timeout.state == "Printing" %}
|
||||||
|
{action_respond_info("⚠️ ПРИНТЕР ЗАНЯТ ПЕЧАТЬЮ!")}
|
||||||
|
{action_respond_info("🛑 Очистка невозможна во время печати!")}
|
||||||
|
{action_raise_error("ОШИБКА: Принтер занят печатью!")}
|
||||||
|
{% elif printer['toolhead'].is_printing == true %}
|
||||||
|
{action_respond_info("⚠️ ДЕТЕКТИРОВАНА АКТИВНАЯ ПЕЧАТЬ!")}
|
||||||
|
{action_raise_error("ОШИБКА: Активная печать обнаружена!")}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# === ПРОВЕРКА НЕОБХОДИМОСТИ ХОМИНГА ===
|
||||||
|
{% set homed_axes = printer.toolhead.homed_axes %}
|
||||||
|
{% set need_homing = false %}
|
||||||
|
|
||||||
|
{% if 'x' not in homed_axes or 'y' not in homed_axes or 'z' not in homed_axes %}
|
||||||
|
{% set need_homing = true %}
|
||||||
|
{action_respond_info("🔍 Обнаружены непрохоменные оси: %s" % (['x','y','z']|reject('in', homed_axes)|join(', ')))}
|
||||||
|
|
||||||
|
# Проверяем параметр AUTO_HOME
|
||||||
|
{% if params.AUTO_HOME|default(1)|int == 1 %}
|
||||||
|
{action_respond_info("✅ АВТОМАТИЧЕСКИЙ ХОМИНГ ВКЛЮЧЕН (AUTO_HOME=1)")}
|
||||||
|
{action_respond_info("🔄 Выполняем G28 для всех осей...")}
|
||||||
|
G28
|
||||||
|
{% set need_homing = false %} # После хоминга оси прохомены
|
||||||
|
{% else %}
|
||||||
|
{action_respond_info("❓ Для автоматического хоминга используйте: PURGE_AFTER_FILAMENT_CHANGE AUTO_HOME=1")}
|
||||||
|
{action_respond_info("🛑 ИЛИ выполните хоминг вручную (кнопка 'Home All' в интерфейсе)")}
|
||||||
|
{action_raise_error("ТРЕБУЕТСЯ ХОМИНГ ОСЕЙ ПЕРЕД ОЧИСТКОЙ")}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# === НАСТРОЙКА ПОД МАТЕРИАЛ ===
|
||||||
|
{% set material = params.MATERIAL|default('PLA')|lower %}
|
||||||
|
|
||||||
|
{% if material == 'pla' %}
|
||||||
|
{% set default_temp = 210 %}
|
||||||
|
{% set fan_speed_final = 255 %}
|
||||||
|
{% elif material == 'petg' %}
|
||||||
|
{% set default_temp = 230 %}
|
||||||
|
{% set fan_speed_final = 180 %}
|
||||||
|
{% elif material == 'abs' %}
|
||||||
|
{% set default_temp = 240 %}
|
||||||
|
{% set fan_speed_final = 0 %}
|
||||||
|
{% elif material == 'tpu' %}
|
||||||
|
{% set default_temp = 220 %}
|
||||||
|
{% set fan_speed_final = 100 %}
|
||||||
|
{% else %}
|
||||||
|
{% set default_temp = 220 %}
|
||||||
|
{% set fan_speed_final = 255 %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% set target_temp = params.TEMP|default(default_temp)|int %}
|
||||||
|
|
||||||
|
# === СТАНДАРТНЫЕ ПАРАМЕТРЫ ===
|
||||||
|
{% set retract_length = 18 %}
|
||||||
|
{% set retract_speed = 60 %}
|
||||||
|
{% set min_extrude = 50 %}
|
||||||
|
{% set max_extrude = 150 %}
|
||||||
|
|
||||||
|
# === РАСЧЕТ ДЛИНЫ ВЫДАВЛИВАНИЯ ===
|
||||||
|
{% set nozzle_diameter = params.NOZZLE|default(0.4)|float %}
|
||||||
|
{% set filament_diameter = params.FILAMENT_DIAM|default(1.75)|float %}
|
||||||
|
|
||||||
|
{% set base_length = 80 %}
|
||||||
|
{% set diameter_factor = nozzle_diameter / 0.4 %}
|
||||||
|
{% set calculated_length = base_length * diameter_factor %}
|
||||||
|
|
||||||
|
{% set total_length = params.LENGTH|default(calculated_length|round(0))|float %}
|
||||||
|
|
||||||
|
{% if total_length < min_extrude %}
|
||||||
|
{action_respond_info("⚠️ Установлена минимальная длина очистки: %dмм" % min_extrude)}
|
||||||
|
{% set total_length = min_extrude %}
|
||||||
|
{% elif total_length > max_extrude %}
|
||||||
|
{action_respond_info("⚠️ ПРЕДУПРЕЖДЕНИЕ: Запрашиваемая длина %.1fмм превышает безопасный лимит %dмм" % (total_length, max_extrude))}
|
||||||
|
{% set total_length = max_extrude %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% set extrude_speed = params.SPEED|default(20)|int %}
|
||||||
|
|
||||||
|
# === БЕЗОПАСНОЕ ПЕРЕМЕЩЕНИЕ В БЕЗОПАСНУЮ ПОЗИЦИЮ ===
|
||||||
|
M118 СТАРТ: Перемещение в безопасную позицию
|
||||||
|
|
||||||
|
# Проверяем текущие позиции и границы
|
||||||
|
{% set x_max = printer.configfile.settings['stepper_x']['position_max']|float %}
|
||||||
|
{% set y_max = printer.configfile.settings['stepper_y']['position_max']|float %}
|
||||||
|
|
||||||
|
# Вычисляем безопасные координаты (90% от максимума)
|
||||||
|
{% set safe_x = x_max * 0.9 %}
|
||||||
|
{% set safe_y = y_max * 0.9 %}
|
||||||
|
|
||||||
|
# Проверяем текущую Z позицию
|
||||||
|
{% set current_z = printer.toolhead.position.z %}
|
||||||
|
{% set safe_z = 50 if current_z < 50 else current_z %}
|
||||||
|
|
||||||
|
# Проверяем, что координаты в допустимых пределах
|
||||||
|
{% if safe_x > x_max %}
|
||||||
|
{% set safe_x = x_max * 0.8 %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if safe_y > y_max %}
|
||||||
|
{% set safe_y = y_max * 0.8 %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# Относительное перемещение по Z сначала (если нужно поднять)
|
||||||
|
{% if current_z < 50 %}
|
||||||
|
M118 ПОЗИЦИЯ: Подъем по оси Z до 50мм
|
||||||
|
G91
|
||||||
|
G1 Z{50 - current_z} F300
|
||||||
|
G90
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# Перемещение в XY безопасную позицию
|
||||||
|
M118 ПОЗИЦИЯ: Перемещение в XY позицию (%.1f, %.1f) % (safe_x, safe_y)
|
||||||
|
G1 X{safe_x} Y{safe_y} F6000
|
||||||
|
|
||||||
|
# НАГРЕВ СОПЛА
|
||||||
|
M118 ПРОГРЕСС: Нагрев сопла до {target_temp|int}C для {material|upper}
|
||||||
|
M104 S{target_temp}
|
||||||
|
M109 S{target_temp}
|
||||||
|
|
||||||
|
# ЦИКЛЫ ОЧИСТКИ
|
||||||
|
M118 ПРОГРЕСС: Предварительная очистка (3 цикла)
|
||||||
|
|
||||||
|
{% for i in range(3) %}
|
||||||
|
G92 E0
|
||||||
|
G1 E10 F{extrude_speed|float*60}
|
||||||
|
G1 E-5 F{retract_speed|float*60}
|
||||||
|
G4 P300
|
||||||
|
M118 ПРОГРЕСС: Цикл {i+1}/3 завершен
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# ОСНОВНОЕ ВЫДАВЛИВАНИЕ
|
||||||
|
G92 E0
|
||||||
|
|
||||||
|
{% set first_part = total_length * 0.8 %}
|
||||||
|
M118 ПРОГРЕСС: Основное выдавливание: {first_part|round(1)}мм
|
||||||
|
G1 E{first_part} F{extrude_speed|float*60}
|
||||||
|
|
||||||
|
{% set second_part = total_length * 0.2 %}
|
||||||
|
M118 ПРОГРЕСС: Финальное выдавливание: {second_part|round(1)}мм
|
||||||
|
M106 S{fan_speed_final}
|
||||||
|
G1 E{total_length} F{extrude_speed|float*60}
|
||||||
|
|
||||||
|
G4 P1000
|
||||||
|
|
||||||
|
# РЕТРАКТ
|
||||||
|
M118 ПРОГРЕСС: Ретракт на {retract_length}мм
|
||||||
|
G91
|
||||||
|
G1 E-{retract_length} F{retract_speed|float*60}
|
||||||
|
G90
|
||||||
|
|
||||||
|
# ЗАДЕРЖКА И ОХЛАЖДЕНИЕ
|
||||||
|
M118 ПРОГРЕСС: Задержка 2с для охлаждения
|
||||||
|
G4 P2000
|
||||||
|
|
||||||
|
M118 ПРОГРЕСС: Отключение обдува
|
||||||
|
M107
|
||||||
|
|
||||||
|
M118 ПРОГРЕСС: Охлаждение сопла
|
||||||
|
M104 S150
|
||||||
|
G4 P3000
|
||||||
|
M104 S0
|
||||||
|
|
||||||
|
# ФИНАЛЬНАЯ СТАТИСТИКА
|
||||||
|
{% set total_extruded = total_length - retract_length %}
|
||||||
|
{% set filament_area = 3.14159 * (filament_diameter/2)**2 %}
|
||||||
|
{% set volume_flow = filament_area * extrude_speed %}
|
||||||
|
{% set total_time = (total_length / extrude_speed) + 10 %}
|
||||||
|
|
||||||
|
M118 СТАТИСТИКА: Материал: {material|upper}
|
||||||
|
M118 СТАТИСТИКА: Сопло: {nozzle_diameter|round(1)}мм
|
||||||
|
M118 СТАТИСТИКА: Выдавлено: {total_length|round(1)}мм (всего)
|
||||||
|
M118 СТАТИСТИКА: Чистый материал: {total_extruded|round(1)}мм
|
||||||
|
M118 СТАТИСТИКА: Объемный расход: {volume_flow|round(1)}мм3/сек
|
||||||
|
M118 ГОТОВО: Очистка завершена! ✅
|
||||||
|
|
||||||
[gcode_macro test_speed_fast]
|
[gcode_macro test_speed_fast]
|
||||||
gcode:
|
gcode:
|
||||||
|
|||||||
+12
-4
@@ -204,12 +204,20 @@ pin: PD14
|
|||||||
cycle_time: 0.01
|
cycle_time: 0.01
|
||||||
hardware_pwm: false
|
hardware_pwm: false
|
||||||
|
|
||||||
[multi_pin soc_pin]
|
#[multi_pin soc_pin]
|
||||||
pins: PD12, PD13
|
#pins: PD12, PD13
|
||||||
|
|
||||||
|
|
||||||
[fan_generic SoC]
|
#[fan_generic SoC]
|
||||||
pin: multi_pin: soc_pin
|
#pin: multi_pin: soc_pin
|
||||||
|
#max_power: 1
|
||||||
|
|
||||||
|
[fan_generic SoC_Left]
|
||||||
|
pin: PD13
|
||||||
|
max_power: 1
|
||||||
|
|
||||||
|
[fan_generic SoC_Right]
|
||||||
|
pin: PD12
|
||||||
max_power: 1
|
max_power: 1
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+7
-6
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
[include mainsail.cfg]
|
[include mainsail.cfg]
|
||||||
[include timelapse.cfg]
|
[include timelapse.cfg]
|
||||||
[include hbb.cfg]
|
#[include hbb.cfg]
|
||||||
|
|
||||||
# Happy Hare
|
# Happy Hare
|
||||||
#[include mmu/base/*.cfg]
|
#[include mmu/base/*.cfg]
|
||||||
@@ -165,8 +165,9 @@ activate_gcode:
|
|||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
||||||
[idle_timeout]
|
[idle_timeout]
|
||||||
timeout: 1800
|
timeout: 600
|
||||||
gcode:
|
gcode:
|
||||||
|
_SET_IDLE_MODE
|
||||||
#_CHAMBER_LED_OFF
|
#_CHAMBER_LED_OFF
|
||||||
|
|
||||||
[quad_gantry_level]
|
[quad_gantry_level]
|
||||||
@@ -216,9 +217,9 @@ adaptive_margin: 5
|
|||||||
#*# [bed_mesh default]
|
#*# [bed_mesh default]
|
||||||
#*# version = 1
|
#*# version = 1
|
||||||
#*# points =
|
#*# points =
|
||||||
#*# 0.047812, 0.011875, 0.018437, 0.068750
|
#*# 0.047812, 0.011875, 0.018437, 0.068750
|
||||||
#*# 0.045312, 0.025312, 0.030625, 0.085937
|
#*# 0.045312, 0.025312, 0.030625, 0.085937
|
||||||
#*# 0.057500, 0.017812, 0.029375, 0.089062
|
#*# 0.057500, 0.017812, 0.029375, 0.089062
|
||||||
#*# x_count = 4
|
#*# x_count = 4
|
||||||
#*# y_count = 3
|
#*# y_count = 3
|
||||||
#*# mesh_x_pps = 2
|
#*# mesh_x_pps = 2
|
||||||
@@ -231,4 +232,4 @@ adaptive_margin: 5
|
|||||||
#*# max_y = 283.447
|
#*# max_y = 283.447
|
||||||
#*#
|
#*#
|
||||||
#*# [probe]
|
#*# [probe]
|
||||||
#*# z_offset = -0.835
|
#*# z_offset = -0.830
|
||||||
|
|||||||
Reference in New Issue
Block a user