Проблема тайм-аута при хоминге в Klipper
Описание проблемы
Во время хоминга возникает ошибка тайм-аута связи:
Error during homing z: Communication timeout during homing
В основном возникает при хоминге оси Z с несколькими MCU, Klipper требует получения ответа в течение 0,025 секунды.
- Настройка тайм-аута
- Управление KlipperScreen
Метод 1: Настройка тайм-аута
Изменение конфигурации тайм-аута
sed -i 's/TRSYNC_TIMEOUT = [0-9.]*$/TRSYNC_TIMEOUT = 0.05/' ~/klipper/klippy/mcu.py
Перезапуск службы для применения изменений
sudo systemctl restart klipper
Соответствующие команды
# Просмотр текущих настроек
grep "TRSYNC_TIMEOUT =" ~/klipper/klippy/mcu.py
# Восстановление настроек по умолчанию
sed -i 's/TRSYNC_TIMEOUT = [0-9.]*$/TRSYNC_TIMEOUT = 0.025/' ~/klipper/klippy/mcu.py
Метод 2: Управление KlipperScreen
Временное отключение KlipperScreen для освобождения системных ресурсов и решения проблемы тайм-аута связи во время хоминга.
1. Загрузка необходимых файлов
Стандартная система:
git clone https://cnb.cool/3dmellow/public/klipper-klipperscreen-manager
curl -# -L --retry 3 --retry-delay 2 -o ~/klipper/klippy/extras/gcode_shell_command.py https://raw.githubusercontent.com/dw-0/kiauh/master/kiauh/extensions/gcode_shell_cmd/assets/gcode_shell_command.py
Система Fast:
cd /data
git clone https://cnb.cool/3dmellow/public/klipper-klipperscreen-manager
curl -# -L --retry 3 --retry-delay 2 -o /data/klipper/klippy/extras/gcode_shell_command.py https://raw.githubusercontent.com/dw-0/kiauh/master/kiauh/extensions/gcode_shell_cmd/assets/gcode_shell_command.py
2. Установка прав на скрипты
Стандартная система:
cd ~/klipper-klipperscreen-manager
chmod +x ~/klipper-klipperscreen-manager/scripts/*.sh
Система Fast:
cd /data/klipper-klipperscreen-manager
chmod +x /data/klipper-klipperscreen-manager/scripts/*.sh
3. Создание файла конфигурации
- Создайте файл
klipper_macros.cfgв каталоге конфигурации Klipper - Добавьте в начало файла
printer.cfg:[include klipper_macros.cfg]
4. Настройка макросов
- Добавьте следующее содержимое в
klipper_macros.cfg: - Обратите внимание, что
/data/klipper-klipperscreen-manager/scripts/необходимо изменить на фактический путь
# ===== Макросы управления KlipperScreen =====
# Автор: MELLOW-张伟
# Описание: Для управления отключением и автоматическим восстановлением KlipperScreen
[gcode_shell_command disable_klipperscreen]
command: sh /data/klipper-klipperscreen-manager/scripts/disable_klipperscreen.sh
timeout: 5.0
verbose: True
[gcode_shell_command enable_klipperscreen]
command: sh /data/klipper-klipperscreen-manager/scripts/enable_klipperscreen.sh
timeout: 5.0
verbose: True
[gcode_macro RESTART_KlipperScreen]
variable_time: 60 # Время ожидания по умолчанию (секунды)
gcode:
{% set wait_time = params.TIME|default(printer["gcode_macro RESTART_KlipperScreen"].time)|int %}
{action_respond_info("Время ожидания: %s секунд" % wait_time)}
RUN_SHELL_COMMAND CMD=disable_klipperscreen PARAMS={wait_time}
[gcode_macro ENABLE_KlipperScreen]
gcode:
{action_respond_info("Немедленный запуск KlipperScreen")}
RUN_SHELL_COMMAND CMD=enable_klipperscreen
5. Использование
Временное отключение KlipperScreen:
# Использование времени ожидания по умолчанию 60 секунд
RESTART_KlipperScreen
# Использование пользовательского времени ожидания (120 секунд)
RESTART_KlipperScreen TIME=120
Ручной немедленный перезапуск KlipperScreen:
ENABLE_KlipperScreen
Принцип работы
Этот метод временно отключает интерфейс KlipperScreen для освобождения системных ресурсов, снижая нагрузку на процессор, что позволяет избежать проблем с тайм-аутом связи во время хоминга.
Предварительная проверка
- Убедитесь, что Klipper установлен
- Текущий пользователь является пользователем, установившим Klipper
- Пути к файлам указаны правильно
Loading...