Двойной klipper
Хочу сказать отдельное спасибо товарищу unisys за помощь и, конечно, товарищам с гитхаба klipper Часть материалов взята из статьи «НастройкаOctoPrint для работы с несколькими принтерами»Не буду долго занудствовать, перейду сразу к описанию.
Условия:
1. Наличие ПК под управлением armbian Stretch (Debian).
2. Наличие установленного и настроенного octoprint.
3. Наличие установленного и настроенного klipper.
4. 2 принтера, на которых хочется запустить klipper.
Первое что нам понадобится, это создать копию octoprint (более подробнее, по ссылке выше).
cp -R /home/pi/.octoprint /home/pi/.octoprint2
Копируем конфигурацию Octoprint
sudo cp /etc/default/octoprint /etc/default/octoprint2
Меняем настройки в файле конфигурации
sudo nano /etc/default/octoprint2
Необходимо поправить пару строк
HOST=0.0.0.0
PORT=5001
D AEMON_ARGS='--host=$HOST --port=$PORT --basedir /home/pi/.octoprint2/'
Выйти и сохранить Ctrl+X, затем Y, потом Enter (Эта последовательность повторяется во всех редактируемых файлах, я ее буду дальше пропускать, но стоит запомнить!)
Копируем скрипт запуска
sudo cp /etc/init.d/octoprint /etc/init.d/octoprint2
И правим его
sudo nano /etc/init.d/octoprint2
В верхней части этого файла вносим изменения! Измените каждое имя от «octoprint» до «octoprint2» и «OctoPrint» до «OctoPrint2», но оставьте строку «DAEMON=/usr/bin/octoprint» нетронутой! (Для тех у кого в /etc/init.d/octoprint2 есть такое # Author: Sami Olmari & Gina Hau? ge Надо вручную определить демона:
DAEMON=/usr/bin/octoprint
Примерно так:
#!/bin/sh
### BEGIN INIT INFO
# Provides: octoprint2
# Required-Start: $local_fs networking
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: OctoPrint2 daemon
# Description: Starts the OctoPrint2 daemon with the user specified in
# /etc/default/octoprint2.
### END INIT INFO
# Author: Sami Olmari
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC='OctoPrint2 Daemon'
NAME='OctoPrint2'
DAEMON=/usr/bin/octoprint
PIDFILE=/var/run/$NAME.pid
PKGNAME=octoprint2
SCRIPTNAME=/etc/init.d/$PKGNAME
Пере запускаем демона
sudo systemctl daemon- reload
Чтобы все автоматически запускалось обновляем rc.d
sudo update-rc.d octoprint2 defaults
Запускаем новый экземпляр Octoprint
sudo /etc/init.d/octoprint2 start
Проверяем был ли успешно добавлен сервис
systemctl status octoprint2.service
Все должно работать, как надо статус должен быть Active. (Для выхода жмем Ctrl+C). Копия octoprint будет доступна по вашему адресу и порт 5001.
Теперь к основному, ради чего это все делалось – клон klipper:
Первый способ:
Копируем автозапуск klipper
sudo cp /etc/init.d/klipper /etc/init.d/klipper2
Открываем для редактирования
sudo nano /etc/init.d/klipper2
и удаляем все, кроме
#!/bin/bash !
Добавляем строку
~/klippy-env/bin/python ~/klipper/klippy/klippy. py ~/printer2.cfg -l /tmp/klippy2.log -I /tmp/ printer2 &
Знак & - позволит запускаться процессу фоновым.
Делаем активным скриптом
sudo chmod +x /etc/init.d/klipper2
Перезапускаем демона
sudo systemctl daemon-reload
Чтобы все автоматически запускалось обновляем rc.d
sudo update-rc.d klipper2 defaults
Запускаем новый экземпляр
sudo /etc/init.d/klipper2 start
Сервис klipper запустился и работал, но что-то мне не понравилось (честно не помню), я пошел другим путём. Единственное в octoprint следует поменять значения с /tmp/printer на /tmp/printer2. То же самое в плагине octoklipper! А также printer. cfg на printer2. cfg.
Второй способ:
Копируем автозапуск клипера и параметры
sudo cp /etc/init.d/klipper /etc/init.d/klipper2
sudo cp /etc/default/klipper /etc/default/klipper2
sudo cp /var/run/klipper.pid /var/run/klipper2.pid
открываем конфигурацию
sudo nano /etc/default/klipper2
и меняем ARGS: изменить путь к конфигу и к логу и не забываем добавить в конце перед кавычками -I /tmp/printer2. Концовка выглядит примерно вот так:
printer2.cfg -l /tmp/klippy2.log -I /tmp/printer2'
Далее открываем автозапуск
sudo nano /etc/init.d/klipper2
и все значения klipper надо поменять на klipper2 (Во всех строках после klipper добавить цифру 2!)
После редактирования сохраняемся и продолжаем. Делаем активным скриптом
sudo chmod +x /etc/init.d/klipper2
Перезапускаем демона
sudo systemctl daemon-reload
Чтобы все автоматически запускалось обновляем rc.d
sudo update-rc.d klipper2 defaults
Запускаем новый экземпляр klipper
sudo /etc/init.d/klipper2 start
Проверяем, был ли успешно добавлен сервис
systemctl status klipper2.service
если есть зеленым activ то все хорошо (может понадобиться нажать CTRL+C для выхода)
Все. Сервис klipper2 запущен и можно подключаться ко второму принтеры, единственное в octoprint следует поменять значения с /tmp/printer на /tmp/printer2. То же самое в плагине octoklipper!
И напоследок. Если вы столкнулись с тем, что у вас две одинаковые китайские платы управления принтером, то у них совпадают вендор и продукт ид. Т.е. платы братья близнецы и вставляя в порт ПК, не всегда удается получить доступ к нужной плате. На форуме есть специалисты, которые лучше разбираются и объяснят это, поэтому перейду сразу к действиям, которые позволят это исправить:
Делаем привязку 2-х одинаковых плат к порту:
Подключаем устройства в порты и смотрим уникальность оборудования
udevadm info --name=/dev/ttyACMx --attribute-walk
Где x-число, соответствующее порту устройства от 0 до 9. В списке атрибутов необходимо найти уникальный для устройства атрибут (check idVendor и idProduct, или usb от 0 до 9, или, как в моем случае , USB с обозначением 6-1:1.0 – первая плата, 8-1:1.0 – вторая плата).
Дальше создаем фал правила и открываем его
sudo nano /etc/udev/rules.d/99-custom.rules
Если вы нашли уникальный атрибут устройства idVendor, то напишите следующую строку в файле правил:
ACTION=='add',SUBSYSTEM=='tty',ATTRS{idVendor}=='{VendorID}',ATTRS{idProduct}=='{ProductID}',SYMLINK+='{PrinterName}',GROUP='dialout'
Если нет ничего уникального в двух ваших платах, вы можете сделать статическое назначение на основе ядра USB (поэтому в основном любое устройство, которое вы подключаете к данному порту, создает символическую ссылку с тем же именем). Он хорошо работает даже с USB-концентраторами! Но не стоит путать эти устройства местами.
Мой пример:
ACTION=='add',SUBSYSTEM=='tty',KERNELS=='6-1:1.0',SYMLINK+='fribot',GROUP='dialout'
ACTION=='add',SUBSYSTEM=='tty',KERNELS=='8-1:1.0',SYMLINK+='p905',GROUP='dialout'
В данной группе меняете значения KERNELS 6-1:1.0 и 8-1:1.0 на свои, а так же fribot и p905. Сохраняемся и перезагружаем правила udevadm:
udevadm control -- reload
Теперь, если все прошло правильно, вы можете подключить устройство и ввести в своем терминале:
ls /dev/p905
чтобы увидеть, если вы успешно создали символическую ссылку. Поскольку это символическая ссылка, вы сможете получить доступ к /dev/p905 и /dev/ttyACM0, но они будут указывать на одно и то же устройство. Выскочит что-то типа такого: dev/p905 ……….. => dev/ttyACM0. Значит все хорошо и в настройках printer2. cfg можно прописать
[mcu]
serial: /dev/fribot # или указанное вами имя.
На этом все, что я хотел вам изложить. Предупреждаю сразу, дабы избежать глупых вопросов: у меня все работает, но я не владею достаточными знаниями, чтобы вам помочь или исправить ошибку. Если у кого-то есть, что добавить, исправить, поругать, то прошу в комментарии.
Еще больше интересных статей
Сушилка на 4 катушки своими руками
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Подсветка для Ender 3 и Sprite Extruder с обдувом K3D
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Попросили меня подробнее написать про подсветку на моем Ender 3....
Сопла и сопли
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сколько раз этот вопрос поднимался. Сколько тем...
Комментарии и вопросы
Красиво! Прозрачность дает инт...
Офигеть! Чего только не бывает...
Прикольно. Первый раз вижу как...
Спаситепомогите, это уже не эх...
Такое впечатление, что у прюша...
Вот такие «лесенки» появляются...
Отслайсил модель в Cura закину...