From d657c0a05507d1199d0ef2740fdb3f24f4026e16 Mon Sep 17 00:00:00 2001 From: Reijii Date: Thu, 30 Jan 2025 02:10:24 +0300 Subject: [PATCH] awd sync --- macros.cfg | 8 ++++++++ motor_sync.cfg | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ variables.cfg | 1 + 3 files changed, 57 insertions(+) create mode 100644 motor_sync.cfg diff --git a/macros.cfg b/macros.cfg index 0824a34..0a33c4e 100644 --- a/macros.cfg +++ b/macros.cfg @@ -409,6 +409,14 @@ gcode: _START_PRINT_HEAT_CHAMBER CHAMBER_TEMP={params.CHAMBER_TEMP} BED_TEMP={printer["gcode_macro RatOS"].start_print_heat_chamber_bed_temp} _USER_START_PRINT_HEAT_CHAMBER CHAMBER_TEMP={params.CHAMBER_TEMP} BED_TEMP={printer["gcode_macro RatOS"].start_print_heat_chamber_bed_temp} {% endif %} + {% if printer["gcode_macro RatOS"].awd_sync_enabled|lower == 'true' %} + M117 Motor sync... + RESPOND MSG="Motor sync..." + {% if not printer.motors_sync.applied %} + SYNC_MOTORS + {% endif %} + { endif %} + M117 Heating bed... RESPOND MSG="Heating bed..." # Wait for bed to heat up diff --git a/motor_sync.cfg b/motor_sync.cfg new file mode 100644 index 0000000..e023bd4 --- /dev/null +++ b/motor_sync.cfg @@ -0,0 +1,48 @@ +[motors_sync] +axes: x,y +# Оси на которых будет производиться калибровка. +accel_chip: adxl345 +# Aкселерометр для сбора вибраций: adxl345 / mpu9250 и т.п. +chip_filter: median +# Тип фильтра данных акселерометра: 'median' обычно хватает, но особо +# шумные принтеры (вентиляторов, и т.п.) могут потребовать более мощный +# фильтр - 'kalman'. Для lis2dw фильтры отключены. +median_size: 3 +# Размер окна медианного фильтра. +#kalman_coeffs: 1.1, 1., 1e-1, 1e-2, .5, 1. +# Простые коэффициенты, описывающие фильтр Калмана. +microsteps: 32 +# Максимальное дробление смещения ротора шагового двигателя. +sync_method: default +# Методы синхронизации двух осей во взаимосвязанной кинематике: +# 'alternately' - оси калибруются чередуясь, шаг за шагом. (default) +# 'synchronous' - оси калибруются в зависимости от своей магнитуды, +# стараясь поддерживать её на одном уровене. +# Методы синхронизации оси/осей в НЕвзаимосвязанной кинематике: +# 'sequential' - оси калибруются последовательно. (default) +model: linear +# Модель зависимости смещения микрошагов шагового двигателя от +# величины измеренных колебаний. Поддерживаемые модели: linear +# quadratic, power, root, hyperbolic, exponential. +model_coeffs: 5000, 0 +# Коэффициенты выше описанной модели, для рассчета микрошагов. +max_step_size: 6 +# Максимальное количество микрошагов на которые мотор может +# передвинуться за раз, для достижения планируемой магнитуды. +axes_steps_diff: 7 +# Разница позиций моторов в микрошагах между двумя осями, для +# актуализации магнитуды вторичной оси. Используется в методе +# synchronous, или в процессе выравнивания осей в методе alternately. +# Типичное значение - max_step_size + 1. +retry_tolerance: 1000 +# Принудительный порог, до которого пара шаговых двигателей на одном +# ремне, должна будет опустить величину колебаний. Рекомендуется к +# настройке, дабы фильтровать возможные ошибки измерений. После +# нескольких итераций запуска синхронизации вы найдете порог, до +# которого можно опустить значение этого параметра. +retries: 10 +# Максимальное количество повторений для достижения принудительного +# порога колебаний. +#head_fan: +# Вентилятор хотенда, который будет выключаться на время синхронизации +# для исключения его шумов. diff --git a/variables.cfg b/variables.cfg index 77a3685..e2ff6d9 100644 --- a/variables.cfg +++ b/variables.cfg @@ -53,6 +53,7 @@ variable_z_tilt_enabled: False variable_beep_enabled: False variable_filament_encoder_enabled: False variable_touch_cart_enabled: True +variable_awd_sync_enabled: True variable_tgbot_enabled: True variable_probe_for_priming_result: None variable_adaptive_prime_offset_threshold: -1.0