Металл2024 Реклама
Метобр2024 Реклама

Двойной klipper

shadrincev
Идет загрузка
Загрузка
28.02.2019
10033
23
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

13
Статья относится к принтерам:
Flying Bear P905
Двойной klipper
Доброго времени суток всем! Конечно, речь пойдёт не о гонках, как можно подумать из названия, а всего лишь об использовании klipper на 2-х машинах и одном orange pi pc. А картинка, так, улыбнуться.

Хочу сказать отдельное спасибо товарищу 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 # или указанное вами имя.

На этом все, что я хотел вам изложить. Предупреждаю сразу, дабы избежать глупых вопросов: у меня все работает, но я не владею достаточными знаниями, чтобы вам помочь или исправить ошибку. Если у кого-то есть, что добавить, исправить, поругать, то прошу в комментарии.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

13
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама