Двойной 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 # или указанное вами имя.
На этом все, что я хотел вам изложить. Предупреждаю сразу, дабы избежать глупых вопросов: у меня все работает, но я не владею достаточными знаниями, чтобы вам помочь или исправить ошибку. Если у кого-то есть, что добавить, исправить, поругать, то прошу в комментарии.
Еще больше интересных статей
Быстрая печать ажурных стенок в Ultimaker Cura
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
duet web control не регулируются обороты вентилятора обдува детали на BTT SKR V1.4
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
принтер у меня самодельно переделанный из ки...
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
много букв и нет ни одной карт...
Между тем пластик неплохо гаси...
Не слушайте никого... Если вы....
Доброго времени суток, столкну...
купил новый шаговый двигатель...
Разделение моделей это жуть, о...
Я получил доступ к принтеру и...