Пошаговая установка и настройка OctoPrint на ROCK Pi S (D4W).

Logind
Идет загрузка
Загрузка
23.01.2022
3452
21
Техничка

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

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

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

18

Источник.

Являясь владельцем 3D принтера, по достоинству оценил возможности управления устройством с помощью программы OctoPrint, позволяющей по сети загружать файлы для печати, управлять включением/отключением нагревателей, просматривать g-code и контролировать процесс печати через web-камеру. Все эти возможности я испытал с помощью сборки OctoPi, для установки которой рекомендуются Raspberry Pi 3B, 3B+, 4B или Zero 2. С появлением ещё одного 3D принтера (и отсутствием подходящей Raspberry Pi), я решил опробовать другой вариант. Имея опыт использования OctoPi, я подобрал одноплатный компьютер удовлетворяющий требованиям для работы всего комплекса программ - это ROCK Pi S модель D4W (4 ядра ARM64 с частотой работы до 1.3ГГц, ОЗУ 512Mb, сеть: 10/100 Мбит, Wi-Fi 2.4ГГц, USB 2.0, MicroSD).

Поставляется ROCK Pi S в пластиковом боксе с защитной наклейкой "radxa", в комплекте одноплатник и ничего. Стоимость 1849 руб. на декабрь 2021 г. Для запуска и нормальной работы необходимы:

  • MicroSD карта ёмкостью от 4Гб (установленная и настроенная система заняла 2Гб, а нужно ещё место для загружаемых файлов и видеофайлов Вашей печати, если включите);
  • Wi-Fi антенна в случае работы по беспроводной сети (изъята из древнего ноутбука с разборки);
  • USB Web-камера (можно и без неё);
  • Мысли, как запитать 5-ю вольтами ROCK Pi S;
  • Немного знаний и умений для работы в консоли Linux (я не буду описывать возможные ошибки, поэтому внимательно читайте то, что Вам выводится в консоль и принимайте решения).

Хочу отметить, что в моих 3D принтерах установлены управляющие платы "клоны" BIGTREETECH-SKR-V1.3, подключение к ним производится по UART (с помощью 3-х проводов).

Электропитание ROCK Pi S от отдельной зарядки для телефона со шнурком Type-C.

Пошаговая установка и настройка OctoPrint на ROCK Pi S (D4W).Установка операционной системы Debian Buster на ROCK Pi S.

Установка Debian на ROCK Pi S классическая: скачивание образа (на момент написания статьи, последний образ rockpis_debian_buster_server_arm64_20210924_0412-gpt.img из раздела загрузок), запись образа на MicroSD карту, вставляем карту, подаём питание, видим моргание синим светодиодом.Подключиться к ROCK Pi S можно несколькими способами, один из которых по SSH зная IP-адрес. Важно отметить, что подключиться к Wi-Fi (прописать сеть и пароль) не получается, пока не попадём в работающую операционную систему. Я подключил ROCK Pi S к роутеру с помощью Ethernet кабеля. На роутере "подглядываем" IP-адрес для устройства "rockpi". Вся процедура подробно описана на Wiki.

Подключение Web-самеры в Debian (установка нового ядра Debian).

При подключении USB Web-камеры выяснилось, что в предлагаемом ядре Debian напрочь отсутствует поддержка USB_GSPCA устройств.

После подключения камеры к Вашему ROCK Pi S, командой sudo ls /dev/video* Вы можете проверить поддержку камеры ядром. В случае если в выводе есть устройства video0 (или с другим номером), то в ядре есть поддержка, иначе меняйте ядро.

Важно: в представляемом ядре я выключил практически всё, что считал лишним. В том числе поддержку IPv6.

Если Вы можете скомпилировать ядро сами, то представляю Вам .config с поддержкой большинства USB web-камер, иначе, предлагаю готовые пакеты ядра:

Полагаем, что Ваш ROCK Pi S подключен к сети с выходом в Internet. Для начала установим программу wget. В консоль вводим команду:

sudo apt-get install wget

При использовании sudo Вы повышаете свой уровень в системе до root и Вам требуется ввод пароля "rock", если Вы не сменили пароль ранее.

Далее скачиваем необходимые пакеты в директорию kernel:

cd ~
mkdir kernel
cd kernel
wget http://san.net.ru/3d/kernel/linux-headers-4.4.143-67-rockchip-g01bbbc5d1312_4.4.143-67-rockchip_arm64.deb http://san.net.ru/3d/kernel/linux-image-4.4.143-67-rockchip-g01bbbc5d1312_4.4.143-67-rockchip_arm64.deb

Устанавливаем в систему скачанные пакеты командами:

sudo dpkg -i linux-headers-4.4.143-67-rockchip-g01bbbc5d1312_4.4.143-67-rockchip_arm64.deb
sudo dpkg -i linux-image-4.4.143-67-rockchip-g01bbbc5d1312_4.4.143-67-rockchip_arm64.deb

С целью проверки установки, введите:

cat /boot/uEnv.txt

Если в последних трёх выведенных строках будет:

kernelversion=4.4.143-67-rockchip-g01bbbc5d1312

initrdimg=initrd.img-4.4.143-67-rockchip-g01bbbc5d1312

kernelimg=vmlinuz-4.4.143-67-rockchip-g01bbbc5d1312

значит всё установлено и можно смело перезагружать систему с новым ядром. Для перезагрузки введите:

sudo reboot

Установка в Debian необходимых пакетов.

В нашу свежеустановленную систему необходимо установить инструментарий для скачивания и установки OctoPrint. Для этого необходимо подключиться по SSH к ROCK Pi S и выполнить команду:

sudo apt-get install python3-pip python3-dev python3-setuptools python3-venv libyaml-dev build-essential git

Для корректной работы программ (от имени пользователя rock), учётную запись необходимо включить в ряд групп с помощью команды:

sudo usermod -a -G tty rock
sudo usermod -a -G dialout rock

Готовим окружение для OctoPrint на python-е с помощью следующих команд:

cd ~ && mkdir OctoPrint && cd OctoPrint
python3 -m venv venv
source venv/bin/activate
pip install
pip --upgrade

Устанавливаем и запускаем OctoPrint.

Установка выполняется командой:

pip install octoprint

После завершения выполнения, в Вашей системе будет установлен работающий OctoPrint. Можно произвести тестовый запуск выполнив:

~/OctoPrint/venv/bin/octoprint serve

и перейдя браузером на страницу: http://aa.bb.cc.dd:5000/, где aa.bb.cc.dd - ip адрес Вашего Rock Pi S в Вашей локальной сети.

Обратите внимание на форму адреса http://aa.bb.cc.dd, в дальнейшем я буду неоднократно обращаться к этой форме, подразумевая, что Вы будете вводить ip адрес Вашего ROCK Pi S.

В случае успеха и открытия страницы первоначальной настроечной страницы OctoPrint, предлагаю прервать выполнение (в консоле Ctrl+C) и настроить автозапуск. Для этого необходимо скачать скрипт и включить его выполнение при запуске Debian:

sudo wget -o /etc/systemd/system http://san.net.ru/3d/services/octoprint.service
sudo systemctl enable octoprint

После перезагрузки системы (sudo reboot) и в случае безошибочного выполнения всех вышеописанных действий, Ваш Debian с установленным OctoPrint готов к использованию. Проверьте, после перезапуска (около минуты), в браузере перейдите по адресу: http://aa.bb.cc.dd:5000/. Если открывается страница настройки - ПОЗДРАВЛЯЮ, Вы можете настраивать OctoPrint, пытаться подключаться к принтеру через порт USB и печатать.

Сборка и установка mjpg-streamer.

Для удалённого наблюдения за печатью и сохранения роликов, помимо подключения Web-камеры, требуется установить и запустить программы mjpg-streamer и ffmpeg. Установка необходимого инструментария и программ производится следующими командами:

sudo apt-get install subversion libjpeg62-turbo-dev imagemagick ffmpeg libv4l-dev cmake
cd ~
git clone https://github.com/jacksonliam/mjpg-streamer.gitcd mjpg-streamer/mjpg-streamer-experimental
export LD_LIBRARY_PATH=.
make

Проверим работу собранного mjpg-streamer. Произведём запуск:

sudo ./mjpg_streamer -i "input_uvc.so -d /dev/video0 -fps 5" -o "output_http.so"

В браузере переход по адресу: http://aa.bb.cc.dd:8080/?action=stream

Если Вы в открывшейся странице браузера видете изображение с подключенной Web-камеры, значит все получилось и мы продолжаем установку.Возвращаемся в консоль, прерываем исполнение запущенного для теста mjpg_streamer (Ctrl+C) и выполняем установку в систему командой:

make install

После удачной компиляции, теста и установки, необходимо добавить и включить скрипт автозапуска:

sudo wget -o /etc/systemd/system http://san.net.ru/3d/services/mjpg_streamer.service
sudo systemctl enable mjpg_streamer

Настройка OctoPrint (команды запуска, остановки и управления Web-камерой).

В процессе работы с OctoPrint требуется иметь возможности выполнить ряд задач:

  • выключить систему;
  • перезапустить систему;
  • перезапустить OctoPrint;
  • остановить mjpg-streamer;
  • запустить mjpg-streamer.

Для выполнения перечисленных команд из OctoPrint, нам нужно сделать так, чтобы при выполнении управляющей команды через sudo не требовалось вводить пароль в консоле. Такое поведение системы можно прописать в конфигурационном файле /etc/sudoers. Для этого выполним:

sudo echo "rock ALL=(ALL) NOPASSWD: /usr/sbin/reboot, /usr/sbin/shutdown, /usr/sbin/service # for OctoPrint" >> /etc/sudoers

После первоначальной настройки OctoPrint Вы попадаете на основной экран. При нажатии на "гаечный ключ" открывается окно настроек. В нем необходимо перейти в пункт Server и в полях вставить текст команд:

полекоманда
Restart OctoPrintsudo service octoprint restart
Restart systemsudo reboot
Shutdown systemsudo shutdown -P now

Пошаговая установка и настройка OctoPrint на ROCK Pi S (D4W).В пункте Webcam & Timelapse в полях вставить текст команд:

полекоманда
Stream URLhttp://aa.bb.cc.dd:8080/?action=stream
Snapshot URLhttp://127.0.0.1:8080/?action=snapshot
Path to FFMPEG    /usr/bin/ffmpeg

Пошаговая установка и настройка OctoPrint на ROCK Pi S (D4W).Для получения меню по управлению mjpg-streamer, Вам необходимо выполнить следующие команды:

cd ~wget http://san.net.ru/3d/cfg.yamlcat cfg.yaml >> ~/.octoprint/config.yaml

После рестарта OctoPrint вы получите меню управления, как на скрине ниже.

Пошаговая установка и настройка OctoPrint на ROCK Pi S (D4W).Подключение 3D принтера по UART

В данный момент у Вас ROCK Pi S работающий под Debian с установленным OctoPrint и настроенной Web-камерой. Подключить 3D принтер можно USB шнурком (возможно через Хаб), но USB порт можно освободить при подключении к принтеру по UART. ROCK Pi S обладает 3 UART портами. Один из них (UART0) по умолчанию используется консолью (один из способов подключения и управления Rock Pi S). Я предлагаю использовать UART1 для подключения к 3D принтеру. UART1 необходимо включить изменением файла /boot/uEnv.txt. В нём необходимо изменить строку overlays=rk3308-uart0 на overlays=rk3308-uart0, rk3308-uart1 (через запятую дописать rk3308-uart1).

Для выполнения этой задачи необходимо воспользоваться текстовым редактором. Я предлагаю установить nano с помощью команды:

sudo apt-get install nano

Далее редактируем как описано выше файл /boot/uEnv.txt вызвав редактор:

sudo nano /boot/uEnv.txt

После перезагрузки системы (sudo reboot) Ваш OcpoPrint сможет работать с 3D принтером через устройство /dev/ttyS1. Осталось только физически подключить принтер через UART1. На странице Wiki (GPIO) ищем таблицу "26-pin Header 1" для Вашей аппаратной версии ROCK Pi S. Для версий 1.2 и 1.3 UART1 использует пин 23 для сигналов RX (приём) и пин 24 для сигналов TX (передача), также на пин 25 есть земля (GND) необходимая для коммутации.Пошаговая установка и настройка OctoPrint на ROCK Pi S (D4W).Для SKR V1.3 первый порт UART разведён на разъём TFT (SKR V1.3 Pin).

Пошаговая установка и настройка OctoPrint на ROCK Pi S (D4W).Подключение неоходимо выполнить соединяя следующие выводы на полностью обесточенном оборудовании:

Rock Pi SSKR V1.3
23 - RXTFT - TX0
24 - TXTFT - RX0
25 - GNDTFT - GND

Выполнив подключение 3D принтера по UART, мы освобождаем один порт USB, который можно использовать для электропитания ROCK Pi S (в моём случае) или для управления чем-то полезным. Я думаю, что запитать ROCK Pi S можно через выводы с номерами 4 и 6.

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

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

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

18
Комментарии к статье