Чтобы Вам могли помочь в решении проблем, которые возникли с Klipper'ом, необходимо предоставить log файлы:
Активист чата создал сайт klipper_logs, который позволяет удобнее анализировать логфайл клиппера.
Для автоматизированного размещения логов выполните следующую команду:
curl -L https://coderus.openrepos.net/klipper_logs/getlogs | bash -s
Результатом выполнения команды будет ссылка на проанализированный логфайл
Данный метод не рекомендуется новичкам, так как не дает загружать полезную отладочную информацию, воспользуйтесь скриптом автоматической загрузки выше
Вид формы для ручной загрузки логов:
После загрузки будет автоматически открыта страница с проанализированным логом:
В данном случае это:
https://coderus.openrepos.net/klipper_logs/2088555d4c260bca0264620e01bf53b1
В сводке анализатора указаны обобщенные данные:
В случае если у Вас работает Web клиенты, то получить log файлы в случае возникновения можно по кнопкам klippy.log
и moonraker.log
.
Если таковой возможности нет, то не беда - обычно log файлы расположены в папке printer_data
подпапка logs
- полный путь ~/printer_data/logs/
, для этого заходим в папку любым scp клиентом (например WinSCP или Tabby) и скачиваем их.
В данном случае показан путь для пользователя
khadas
.
В старых версиях Klipper
log файлы в ~/klipper_logs
.
В случае если возникает аппаратная ошибка, то для ее выявления используется dmesg
:
dmesg > ~/printer_data/logs/dmesg.txt
Данная команда создаст файл dmesg.txt
в домашней папке пользователя (по умолчанию считаем что это пользователь pi
) и тогда полный путь к файлу будет /home/pi/printer_data/logs/dmesg.txt
. Скачиваем данный файл любым удобным способом через вебстраничку или scp клиентом (например WinSCP или Tabby).
При неправильной работы сервисов, для определения причин используются следующие команды:
systemctl status klipper
Сообщает текущее состояние сервиса klipper
:
journalctl -u klipper
Возвращает ошибки связанные с сервисом klipper
Основные сервисы которые могут нас интерисовать: klipper
, moonraker
, klipperscreen
, moonraker-telegram-bot
.
Получаем статус сервиса и его ошибки и сохраняем в файл:
systemctl status klipper > ~/printer_data/logs/klipper_status.txt
journalctl -u klipper > ~/printer_data/logs/klipper_journal.txt
Скачиваем данные файлы любым scp клиентом (например WinSCP или Tabby).
Теперь у Вас есть полный комплект log файлов для обращения за помощью!
Прописная истина: "Работает - не трогай", но иной раз так хочется потрогать, поэтому специально для Вас, потрогавших...
Бывает, что обновился - неподумав, или за счет автоматического автообновления, что опять же было неподумав. Но теперь хочется вернуть все назад и указанный метод поможет Вам вернуть все обратно.
Описанные ниже команды работают как для Klipper
, так и для других размещенных на Git компонентах, например Moonraker
, Fluidd
и тп.
Данный набор команд позволит откатить текущее состояние Klipper на 3 версии (commit) назад:
sudo service klipper stop
cd ~/klipper
git reset --hard HEAD~3
sudo service klipper start
Где 3
в команде git reset --hard HEAD~3
это сколько версий назад нужно открутить.
Откатываться в git
можно не сколько-то шагов назад, а на конкретное состояние (commit), но для этого необходимо знать "имя состояния" (commit).
Если зайти на страницу с проектом, то можно увидеть текущий commit
В данном случае это edea528
Рядом есть общее количество commits
, нажав на который можно получить перечень последних изменений, и там перейти на необходимый вам.
Кроме того, можно получить список commits
прямо из командной строки:
cd ~/klipper && git log --pretty=format:"%h - %an, %ar : %s"
Вывод будет выглядеть следующим образом:
выписываем необходимый идентификатор commit
и выполняем команду, в ней будет использован выше указанный commit edea528
sudo service klipper stop
cd ~/klipper
git fetch
git checkout edea528
sudo service klipper start
Если во время печати, прогрева принтера, простоя вы регулярно получаете ошибку следующего плана:
Lost communication with MCU 'mcu'
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Printer is shutdown
Во время удержания ошибки в выводе команды
dmesg
В логах выходит сообщение
[ 222.188664] usb usb6-port1: disabled by hub (EMI?), re-enabling...
[ 222.188697] usb 6-1: USB disconnect, device number 2
[ 222.190453] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 222.190521] ch341 6-1:1.0: device disconnected
[ 222.520521] usb 6-1: new full-speed USB device number 3 using ohci-platform
[ 222.745122] usb 6-1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[ 222.745141] usb 6-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 222.745148] usb 6-1: Product: USB Serial
[ 222.747652] ch341 6-1:1.0: ch341-uart converter detected
[ 222.764329] usb 6-1: ch341-uart converter now attached to ttyUSB1
То это значит, что у вас рвётся USB-соединение между платой MCU и микрокомпьютером.
Если во время печати, прогрева принтера вы регулярно получаете ошибку следующего плана:
Error: GSTAT: 00000004 uv_cp=1 (undervoltage!)
Это значит, что драйвер не может "накачать" конденсаторы в его обвязке из-за недостатка мощности.
Данная проблема требует дополнительной диагностики и наличия ЗИП (запасные части, инструменты, приспособления)
Внимание! Данные проверки выполняется Вами на свой страх и риск! В случае повреждения принтера администрация ресурса не несёт ответственности за возможный или приченённый ущерб!!!
Попробуйте поменять местами драйвера шаговых двигателей. Если проблема "переехала" вместе с драйвером, это значит, что драйвер шагового двигателя неисправен.
Используя мультиметр в режиме измерения сопротивления и прозвонки проверьте кабельную трассу до неисправного двигателя в разных положениях и нагрузках проводки (изгиб с малым радиусом, натяг, скручивание). Если изменяется сопротивление или пропадает контакт, значит проводка неисправна.
Снимите и аккуратно разберите шаговый мотор. Осмотрите обмотки, они не должны быть грязно-коричневого цвета. Прозвоните обмотки в режиме измерения сопротивления. Сопротивление обмоток должно быть одинаковым. Если обмотки грязного цвета, а внутри мотора пахнет "палёной электроникой" или дымом, значит мотор неисправен. Если сопротивление обмоток значительно отличается, значит произошло межвитковое замыкание и мотор неисправен.
Запустите прогрев стола и экструдера на максимальной мощности до максимальной температуры (стол до 130-140, экструдер до 300 градусов), после прогрева запустите тестовую печать без пластика на максимальных скоростях и ускорениях. Во время этого теста возможно стабильное получение такой ошибки.
Замените драйвер на исправный
Замените и/или переобожмите провода. Используйте более гибкие провода с большим количеством жил.
Замените двигатель
Замените блок питания на качественный (производства Mean Well, серия RSP) или отремонтируйте блок питания заменив неисправные компоненты.
При попытке запустить тест резонансов появляется ошибка
!! Failed to import `numpy` module, make sure it was installed via `~/klippy-env/bin/pip install` (refer to docs/Measuring_Resonances.md for more details).
Выполнить в терминале команду
~/klippy-env/bin/pip install -v numpy
В любой момент времени во время физического контакта с принтером выпадает ошибка
TMC 'stepper_y' reports error: GSTAT: 00000001 reset=1(Reset)
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Printer is shutdown
Из-за статического разрда на корпус или на двигатели драйвер вылетает в ошибку
Используйте заземление принтера, снимайте с себя статику с помощью антистатического браслета.
В случае если при печати файлов с именами на Киррилице возникает ошибка:
Interanl error on command: "SDCARD_PRINT_FILE"
sudo service klipper stop
sudo service moonraker stop
mv ~/klippy-env ~/klippy-env-27
virtualenv -p python3 ~/klippy-env
~/klippy-env/bin/pip install -r ~/klipper/scripts/klippy-requirements.txt
sudo service klipper start
sudo service moonraker start