Klipper+H96max+skr1.3 =HYPERCUBE

Доп инфа

Установка Armbian linux:

Установка на данную приставку очень простая на самом деле. Для этого нам понадобится флешка microsd.

У данной приставки есть emmc на 64 Гб. И приоритет загрузки у приставки следующий:

Если вставлена microsd карта, то попытается приставка грузиться с нее. Если же там нет ничего загрузочного, то грузиться будет с emmc.

Собственно и мы сделаем загрузочную флешку Microsd с которой загрузимся и установим linux armbian в память emmc приставки.

Для начала нам нужно скачать Armbian образ и multitool образ. Я скачивал отсюда:https://users.armbian.com/jock/rk3318/

В общем скачиваем multitool.img.xz и Armbian_22.08.0-trunk_Rk3318-box_jammy_edge_5.18.14_kde-plasma_desktop.img.xz

 я использовал именно этот образ, про другие не знаю, пробовать надо, думаю заработает и с другими.

Еще есть сайт с китайскими armbian образами под данный tvbox, если хотите, то можно ознакомиться тут: https://mirrors.aliyun.com/armbian-releases/rk3318-box/archive/?spm=a2c6h.25603864.0.0.286466b9yYks61 или тут: https://imola.armbian.com/dl/rk3318-box/archive/

И еще скачиваем программу rufus:https://rufus.ie/ru/

Rufus нам понадобится для установки Multitool на флешку Microsd.

Запускаем программу rufus, в ней выбираем в поле “Устройство” флешку на которую будем записывать.

А в поле “Метод загрузки” выбираем образ multitool.img.xz И нажимаем кнопку “Старт“. После чего образ Multitool благополучно установится на microsd карту.

После установки образа на флешку, у нее не правильно распределены разделы будут. Это можно увидеть в Управлении компьютером ->Управлении дисками:

Для того, чтоб Multitool раздел расползся на все нераспределенное пространство, нужно просто вставить Microsd карту в приставку и включить ее. После чего она загрузится с образом Multitool и он автоматом все пространство себе заберет не распределенное. И получится вот так:

Но нужно еще будет этому разделу Multitool присвоить букву. Иначе он не будет виден в системе. А он нам нужен, так как на него будет закидывать образ Armbian.

В общем по разделу тыкаем правой кнопкой и выбираем пункт изменить букву диска. И присваиваем ему любую букву.

После этого в “Компьютер” появится логический диск Multitool с папками. Так вот там есть папка “images” в эту папку нам нужно закинуть образ

После того как закинули образ в папку images. Вытаскиваем microsd флешку и вставляем в приставку H96Max и подаем питание.

Загрузится Multitool и подключив клавиатуру стрелками можем сначала сделать Бэкап андроида который стоит тут предустановленным:

А после того как сделали резервную копию, можем установить armbian

После чего armbian установится. Так-же если захотите переустановить его, то всегда это можно сделать точно так-же. Вставим microsd флешку в приставку и загрузить образ с нее armbian. Как по мне, этот вариант еще проще чем с одноплатными компьютерами.


Настройка WI-fi.

С wi-fi тут отдельная тема. Говорят, что на таких приставках их 3 разных вида попадается. Мне не с чем сравнивать, по этому описываю решение конкретно моей приставки.

Чтоб заработал wi-fi, то нужно поменять драйвер. Как это сделать?

Сначала удаляем драйвер старый:

sudo rm -f /usr/lib/firmware/brcm/brcmfmac4334-sdio.rockchip,rk3318-box.txt

Следующей командой его создаем заново, чтоб он был пустым:

sudo nano /usr/lib/firmware/brcm/brcmfmac4334-sdio.rockchip,rk3318-box.txt

Теперь откройте этот небольшой текстовый файл  нажмите Ctrl-A, чтобы выделить в нем весь текст, затем Ctrl-C, чтобы скопировать его в буфер обмена; Так же на всякий случай файл оставлю у себя на диске, а то малоли, потеряется еще. https://disk.yandex.ru/d/-7MqtUEx-PEMhg

Переключитесь в окно SSH, щелкните правой кнопкой мыши, чтобы вставить скопированный текст в nano , затем нажмите Ctrl-S для сохранения и Ctrl-X для выхода;

Ну и далее перезапускаем armbian.

reboot

После перезагрузки, установим программу armbian-config.

apt update

apt install armbian-config

После установки, запускаем armbian-config

sudo armbian-config

Там переходим в Network->wifi->и выбираем сеть wi-fi к которой хотим подключиться и подключаемся. Ошибок больше не будет.


Отключение Debug на uart интерфейсе приставки H96max на RK3318.

Значит, смотрите. Тот UART интерфейс который выведен на приставке предназначен, для того, чтоб подключиться к консоли приставки, авторизироваться и производить настройки. Так-же видеть этапы загрузки и ошибки, если они появляются, до включения монитора.

Особенность UART интерфейса, такая, что к нему можно подключиться только одному устройству или программе. Так как этот интерфейс работает в режиме вывода консоли, то он у нас всегда в системе занят.

Наша задача его освободить. Делается это очень просто. Нужно просто ввести пару команд в операционной системе armbian.

В общем debug этот интерфейс имеет название /dev/ttyS2 . Вот его и будем высвобождать.

Итак, сначала вводим команду:

sudo lsof -n | grep /dev/ttyS2

Она выведет нам, занят ли чем-то интерфейс ttyS2 или нет. Если ничего не вывело, то он свободен, но в нашем случае он занят.

Из приведенного скрина выше видим, что порт ttyS2 действительно занят программой agetty. А вот порт для примера ttyS3 свободен и ничего не вывел.

В общем далее приступаем к отключению программы aggety от порта ttyS2.

Преходим в папку systemd:

cd /etc/systemd/system

В этой папке нам нужно отключить службу serial-getty@ttyS2.service

systemctl stop serial-getty@ttyS2.service

Командой выше мы останавливаем serial-getty и он больше не держит наш интерфейс ttyS2. Но после перезагрузки, он снова его схватит. По этому нужно еще выполнить следующую команду:

systemctl mask serial-getty@ttyS2.service

после ввода этой команды, перезагрузка уже не запустит serial-getty и порт ttyS2 будет всегда свободен.


Устанавливаем Klipper

Подключение по ssh и дальнейшая настройка.

Далее рекомендуется отключить запрос sudo пароля, делать необязательно, но в некоторых местах меньше придется вводить пароль суперпользователя.

редактируем файл командой:

sudo nano /etc/sudoers

откроется файл, в котором нужно найти строку

 # Allow members of group sudo to execute any command%sudo   ALL=(ALL:ALL) ALL

и привести её к виду:

# Allow members of group sudo to execute any command%sudo   ALL=NOPASSWD: ALL

После чего сохраняем изменения нажатием Ctrl+O и выходим Ctrl+X

Обновляем пакеты командами:

sudo apt-get update

sudo apt-get upgrade

А также устанавливаем недостающие пакеты (по идее скрипт должен подтянуть их автоматически, но пусть будет)

sudo apt-get install zlib1g-dev libjpeg-dev

sudo apt-get install git -y

После чего выполняем дальнейшую установку с помощью скрипта KIAUH (огромная благодарность th33xitus —  его разработчику : 

скачиваем сам скрипт с гитхаба:

git clone https://github.com/th33xitus/kiauh.git

переходим в скачанную папку

cd kiauh

делаем все скрипты исполняемыми

chmod +x kiauh.sh scripts/*

и запускаем сам скрипт

./kiauh.sh

Этап 4. Работа со скриптом автоматической установки KIAUH.

В целом в работе скрипта нет ничего сложного, но как всегда есть нюансы.

Для начала выбираем, что именно мы будем делать — вводим цифру 1 и нажимаем Enter.

В следующем окне поочередно выбираем и устанавливаем

1) [Klipper]  (при запроси версии питона выбираем 2) [Python 3.x]  (experimental))

количество инстансов — 1

Подключение по ssh и дальнейшая настройка.

Скачиваем putty, добавляем туда подключение ssh по ip адресу из этапа 2, используя заданный ранее пароль.

Далее рекомендуется отключить запрос sudo пароля, делать необязательно, но в некоторых местах меньше придется вводить пароль суперпользователя.

редактируем файл командой:

sudo nano /etc/sudoers

откроется файл, в котором нужно найти строку

 Allow members of group sudo to execute any command%sudo   ALL=(ALL:ALL) ALL

и привести её к виду:

# Allow members of group sudo to execute any command%sudo   ALL=NOPASSWD: ALL

После чего сохраняем изменения нажатием Ctrl+O и выходим Ctrl+X

Klipper на orangePi 3 LTS

Обновляем пакеты командами:

sudo apt-get update

sudo apt-get upgrade

А также устанавливаем недостающие пакеты (по идее скрипт должен подтянуть их автоматически, но пусть будет)

sudo apt-get install zlib1g-dev libjpeg-dev

После чего выполняем дальнейшую установку с помощью скрипта KIAUH (огромная благодарность th33xitus —  его разработчику : 

скачиваем сам скрипт с гитхаба:

git clone https://github.com/th33xitus/kiauh.git

переходим в скачанную папку

cd kiauh

делаем все скрипты исполняемыми

chmod +x kiauh.sh scripts/*

и запускаем сам скрипт

./kiauh.sh

Klipper на orangePi 3 LTS

Этап 4. Работа со скриптом автоматической установки KIAUH.

В целом в работе скрипта нет ничего сложного, но как всегда есть нюансы.

Для начала выбираем, что именно мы будем делать — вводим цифру 1 и нажимаем Enter.

В следующем окне поочередно выбираем и устанавливаем

1) [Klipper]  (при запроси версии питона выбираем 2) [Python 3.x]  (experimental))

количество инстансов — 1

Klipper на orangePi 3 LTS

2) [Moonraker]

Klipper на orangePi 3 LTS

после установки Moonraker уже можно проверить, все ли идет хорошо, так как в консоли высветится Ваш ип адрес и порт, можно перейти по нему в браузере и посмотреть все ли хорошо. Картина, как на скринах ниже.

Klipper на orangePi 3 LTS
Klipper на orangePi 3 LTS

3) [Mainsail]

При установке спросит про поддержку вебкамеры — у меня она будет, поэтому выбираю да.На вопрос о рекомендуемых макросах — тоже да (больше не меньше)

После установки появятся ссылки на стрим с камеры, но так как камеры у нас пока нет, то игнорируем их, а вот что стоит попробовать — так это перейти по адресу orange pi и проверить загружается ли интерфейс.

Все хорошо, двигаемся дальше.

4) [Fluidd]

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

Выбираем цифру 4, на что система скажет, что у нас уже есть веб интерфейс и предложит выбрать другой порт, выберем 81

После установки также проверяем открытие, добавив в адрес порт 81 через двоеточие.

Klipper на orangePi 3 LTS

Нажимаем B, чтобы вернуться на предыдущий экран и видим следующее.

Этап 5. Настройка веб камеры. (опционально)

Я использую, наверное, самую популярную и доступную камеру — Logitech C270. Её настройка максимально проста:

с отключенной камерой проверяем доступные видеоисточники

ls /dev/video*

у меня он один:

затем подключаем камеру к usb порту orangepi после чего проверяем снова.

При подключении камеры добавилось еще 2 источника, с другими камерами проблема может быть в отсутствии драйвера, поэтому нужно уточнять в каждом отдельном случае. Открываем на редактирование конфигурацию камеры:

nano ~/klipper_config/webcam.txt

правим строки:

camera=»usb»

camera_usb_options=»-d /dev/video1 -r 1280×720″

Должно получиться, как на скрине ниже

Klipper на orangePi 3 LTS

Ключ -r 1280×720 добавлен потому, что я знаю, что камера может снимать в таком разрешении, если что-то не работает, лучше попробовать без него. Также у камеры добавляется 2 порта: video1 и video2, работает только на одном, но тут тоже иногда приходится экспериментировать.

После чего сохраняем Ctrl+O, выходим Ctrl+X

Рестартим вебкам сервис

sudo systemctl status webcamd

Далее можно в браузере перейти по ссылке http://х.х.х.х:8080/ где х.х.х.х ip адрес orange pi и убедиться, что есть картинка.

теперь добавляем камеры в веб интерфейсы:

Mainsell

Fluidd

Klipper на orangePi 3 LTS

***********

Дальнейшие настройки проблематично сделать без принтера, поэтому здесь пока ничего нет, но думаю в будущем появится информация о том как собрать прошивку под flying bear ghost 6, подключить его к orande pi и т.д.

************

Подготовка прошивки

Подключаемся к системе через SSH. Открываем папку klipper/config, и ищем файл конфигурации подготовленный для вашего принтера, либо скачиваем на странице Klipper

В моем случае это Creality Ender 3v2 — printer-creality-ender3-v2-2020.cfg. Скачиваем данный файл и переименовываем его в printer.cfg, а в дальнейшем данный файл будет размещен в ~/printer_data/config (полный путь может быть /home/pi/printer_data/config если используется Raspberry Pi).
Открываем данный файл Notepad++, нас интересует следующий блок:

# This file contains pin mappings for the stock 2020 Creality Ender 3
# V2. To use this config, during "make menuconfig" select the
# STM32F103 with a "28KiB bootloader" and serial (on USART1 PA10/PA9)
# communication.

Copy

В нем говорится что используется процессор STM32F103, загрузчик — 28KiB, комунникация через Serial USART1 PA10/PA9

Переходим обратно в pytty и выполняем следующие команды (команды можно копировать, в putty они вставляются Правой кнопкой мыши):

cd ~/klipper
make clean
make menuconfig

creality_4.2.2_usb.png

Micro-Controller architecture — выбираем STM32

Processor model — выбираем STM32F103

Bootloader offset — 28KiB bootloader

Comunication Interface — Serial (on USART1 PA10/PA9)

Нажимаем Q, сохраняя внесенные изменения и компилируем прошивку:

make

Если все прошло успешно, putty в консоли сообщит:

Version: v0.9.1-142-g02ece242-20210113_003503-fluiddpi
  Preprocessing out/src/generic/armcm_link.ld
  Linking out/klipper.elf
  Creating hex file out/klipper.bin

Это означает что прошивка скомпилировалась и находится в папке ~/klipper/out/klipper.bin (полный путь к файлу: /home/pi/klipper/out/klipper.bin) Запускаем WinSCP, подключаемся к компьютеру, скачиваем данный файл. Копируем файл klipper.bin на sd-карту, переименовываем в firmware.bin, вставляем sd-карту в принтер и включаем его. Прошивка занимает около минуты.

Корректировка файла настроек

По завершению прошивки подключаем принтер USB проводом к компьютеру и переходим в putty и выполняем команду:

ls /dev/serial/by-id/*

Если в результате будет вывод типа

usb-1a86_USB_Serial-if00-port0
pi@fluiddpi:~/klipper $

То это означает, что принтер определился как /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0, запоминаем это и открываем файл printer.cfg.

В нем ищем секцию:

[mcu]
serial: /dev/serial/by-id/<your-mcu-id>
restart_method: command

и приводим ее к виду:

[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command

Если ты действительно внимательно читаешь эту статью, то не копируй блок описанный ниже, а переходи к следующему:

[homing_override]
gcode:
    G28
    M84

Если вы выполняли установку Fluidd или Mailsail, то также необходимо отредактировать файлы fluidd.cfg или mainsail.cfg и полностью удалить из них секцию [mcu] включая строчку с serial. Также проверьте что из printer.cfg не пропали строки с [include] cfg файлов mainsail или fluidd, при необходимости верните. Если веб интерфейс не устанавливался, то добавляем в файл printer.cfg следующий блок:

[virtual_sdcard]
path: ~/printer_data/gcodes

[pause_resume]

[display_status]

[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
    TURN_OFF_HEATERS
    CLEAR_PAUSE
    SDCARD_RESET_FILE
    BASE_CANCEL_PRINT

[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
    ##### set defaults #####
    {% set x = params.X|default(230) %}      #edit to your park position
    {% set y = params.Y|default(230) %}      #edit to your park position
    {% set z = params.Z|default(10)|float %} #edit to your park position
    {% set e = params.E|default(1) %}        #edit to your retract length
    ##### calculate save lift position #####
    {% set max_z = printer.toolhead.axis_maximum.z|float %}
    {% set act_z = printer.toolhead.position.z|float %}
    {% set lift_z = z|abs %}
    {% if act_z < (max_z - lift_z) %}
        {% set z_safe = lift_z %}
    {% else %}
        {% set z_safe = max_z - act_z %}
    {% endif %}
    ##### end of definitions #####
    SAVE_GCODE_STATE NAME=PAUSE_state
    BASE_PAUSE
    G91
    G1 E-{e} F2100
    G1 Z{z_safe}
    G90
    G1 X{x} Y{y} F6000


[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
    ##### set defaults #####
    {% set e = params.E|default(1) %} #edit to your retract length
    G91
    G1 E{e} F2100
    G90
    RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1
    BASE_RESUME

################################################################################

Copy

И размещаем его в ~/printer_data/config (полный путь к примеру /home/pi/printer_data/config).


Соединение платы принтера и Klipper через

serial: /dev/ttyS2

Впаиваем провод в H96Max


Установка веб камеры на Klipper.

Камера и V4L

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

sudo apt install build-essential libevent-dev libjpeg-dev libbsd-dev v4l-utils
sudo usermod -aG video $USER

Для определения камеры используется команда

lsusb

ls -al /dev/v4l/by-id

Смотреть здесь

cd ~
git clone https://github.com/mainsail-crew/crow…
cd ~/crowsnest
sudo make install

Reboot the mcu (if you didn’t have Crows Nest perform it for you) —

sudo reboot -f

crowsnest.conf file path variations for Klipper/moonraker (Edit file: ~/printer_data/systemd/crowsnest.env)-

Single instance/old moonraker-
~/klipper_config/crowsnest.conf

Multi instance/old moonraker-
~/klipper_config/printer1/crowsnest.conf

Multi instance/new moonraker-
~/printer_1_data/config/crowsnest.conf

crowsnest.conf log path variation(make edit to log path in crowsnest.conf)-

Old Klipper/moonraker(multi and single instance):
~/klipper_logs/crowsnest.log

Updated Klipper/moonraker(multi instance):
~/printer_1_data/logs/crowsnest.log

Find device id for camera (try this one first)-
ls -l /dev/v4l/by-id

Find device id for cameras returning the same address(ties address to USB port. If the camera changes port you will need to find the new address)-
ls -l /dev/v4l/by-path

Go to Top