Проблема тайм-ута 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, чтобы освободить системные ресурсы, снизить нагрузку на CPU и избежать проблем с тайм-аутом связи во время калибровки.
Предварительная проверка
- Убедитесь, что Klipper установлен
- Текущий пользователь — это пользователь, установивший Klipper
- Пути к файлам указаны правильно
Loading...