Кремень КД Реклама
Кремень КМ Реклама

Актуальный на октябрь 2023 года гайд по установке Klipper с ADXL345 на Orange Pi Zero для немного продвинутых

benzin54
Идет загрузка
Загрузка
12.10.2023
18575
69
Техничка

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

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

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

24

Без предисловий.

Данная простынка разбита на 2 раздела.

В первом описывается простое подключение по usb, во втором подключение uart и spi1 и adxl345.

Раздел1.

Ставим образ Armbian CLI

включаем wifi и коннектимся к сети.

sudo nmtui

Теперь после перезагрузки opi будет автоматически коннектиться по wifi к выбранному подключению, но лучше конечно все настроить еще по lan.

Добавляем пользователя klipper и даем группы ему.

sudo adduser klipper

sudo usermod -a -G tty klipper

sudo usermod -a -G dialout klipper

sudo adduser klipper sudo

sudo reboot

Перезагружаем.

Редактируем sudoers, добавляем klipper все разрешения.

Этот этап очень важный и нельзя ошибиться.

При открытии может потребоваться закрыть 2 страницу, ctrl+x

sudo nano edit /etc/sudoers

#User privilege specification

root root ALL=(ALL:ALL) ALL

klipper ALL=(ALL:ALL) ALL - дописываем этот блок без сноски

Crtl+o сохраняем, подтверждаем, ctrl+x закрываем.

sudo reboot

Перезагружаем.

Обновляем список пакетов

sudo apt update

Устанавливаем или проверяем установку гит.

sudo apt-get install git -y

net tools

sudo apt-get install net-tools -y

cmake

sudo apt-get install cmake

sudo apt-get update

sudo apt-get upgrade - обновляем все пакеты.

Установка скрипта kiauh

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

./kiauh/kiauh.sh - запускаем KIAUH

Устанавливаем klipper для 1 машины*

Moonraker

Fluidd или Mainsail (веб окружение)

Выбираем питон 3.x

Создаем прошивку для платы.

сd klipper

make clean

make menuconfig

Там выбираем нужный мк, оффсет бутлоадера и ваш тип подключения к плате согласно pinout вашей платы, сохраняем выходя.

Я приведу примеры для creality 4.2.2 подключенной по USB и btt mini e3 v 3.0 подключенной по UART2.

Для creality Актуальный на октябрь 2023 года гайд по установке Klipper с ADXL345 на Orange Pi Zero для немного продвинутых

Для btt mini e3 3.0 Актуальный на октябрь 2023 года гайд по установке Klipper с ADXL345 на Orange Pi Zero для немного продвинутых

make

Прошивка компилируется в /home/klipper/klipper/out/firmware.bin

Оттуда ее вытащить можете по ftp используя любой ftp клиент. ip opi в вашей сети, имя-пароль klipper указанные вами, по 22 порту.

Заливаем ее в плату согласно правилам для прошивки вашей платы. (для cr 4.2.2 нужно переименовать в новое незнакомое имя egkdjh2w.bin, для btt нужно название firmware.bin)

В зависимости от вашего подключения коннект можно проверить:

ls /dev/serial/by-id/* - серийное

ls -al /dev/ttyAMA*

ls -al /dev/ttyS*

Пример блока mcu.

[mcu]

serial: /dev/serial/by-path/pci-0000:00:1d.1-usb-0:1:1.0-port0 # для серийного подключения

#serial: /dev/ttyS2 #для подключения по uart, ls -al /dev/ttyS* *=2 для uart2

restart_method: command

baud: 250000 - всегда 250000, тоже значение выбирается при компиляции прошивки для платы.

На этом этапе после указания в конфиге правильного адреса MCU плата уже должна подключиться.

Для доступа к веб морде и всем настройкам и конфигам нужно глянуть в роутере с каким ip подключилась opi. (для lan и wifi будут разные адреса).

Дальнейший шаманизм пойдет для подключения adxl345 по SPI1 к opi или для подключения по UART платы.

Если вы не хотите подключать adxl но хотите подключить плату по uart нужно выполнить Шаг1. из Раздел2.

Раздел2.

Увеличение swap на armbian.

https://diytimes.ru/post/147

После увеличения свопа систему нельзя перезагружать.

Компилируем и устанавливаем numpy версии 1.24.2 в окружение klipper

Данный шаг идет после увеличения файла подкачки и занимает большое количество времени.

~/klippy-env/bin/pip3 install -v numpy==1.24.2

sudo apt-get install python3-numpy python3-matplotlib libatlas-base-dev

Включаем Spi1 и uart в opi zero 512.

Шаг1. Для подключения акселерометра к opi или подключения платы управления по UART.

sudo nano /boot/armbianEnv.txt

overlays=w1-gpio uart uart1 uart2 i2c0 spi-spidev spi-spidev1

Добавляем ниже.

param_spidev_spi_bus=1

param_spidev_spi_cs=0

ctrl+o сохранить, ctrl+x выход.

sudo reboot

Теперь у нас включены на opi uart uart1 uart2 spi spi1, подключение платы по uart2, подключение акселерометра по spi1.

Помним что они не *идоры, tx подключается к rx, rx-tx.

UART2 находиться у btt 3.0 на разъеме tft. Актуальный на октябрь 2023 года гайд по установке Klipper с ADXL345 на Orange Pi Zero для немного продвинутых

Слева направо rst rx2 tx2 gnd +5v

Подключив rx2-uart2_tx tx2-uart2_rx gnd-gnd +5v ко 2 или 4 контакту мы запитаем и саму пишку от платы принтера, что очень удобно.

Ток потребления без веб камеры порядка 0.2A.

Далее подключение акселерометра подрубленного согласно схемы по spi1 к opi. Актуальный на октябрь 2023 года гайд по установке Klipper с ADXL345 на Orange Pi Zero для немного продвинутых

Пин ADXL – Пин Orange Pi

VCC(3v) – Out 3.3 V (1, 17 pin)

GND – GND (6 9 14 20 25 pin)

SDA – MOSI (19 pin)

SDO – MISO (21 pin)

SCL – CLK (23 pin)

CS – CS (24 pin)

Для коннекта подключенного adxl к opi нам нужно создать новый MCU.

cd ~/klipper/

sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/

sudo systemctl enable klipper-mcu.service

cd ~/klipper/

make menuconfig

Выбираем linux proocess, выходим сохраняем.

sudo service klipper stop

make flash

sudo service klipper start

Добавляем новый блок MCU в конфиг для работы акселерометра

[mcu opi]

serial: /tmp/klipper_host_mcu

Добавляем конфиг adxl.

[adxl345]

cs_pin: opi:None

spi_bus: spidev1.0 #указывается шина spi, должна быть 1.0

[resonance_tester]

accel_chip: adxl345

min_freq: 10 # для сокращения времени теста, минимальный порог

max_freq: 95 # для сокращения времени теста, максимальный порог

#accel_per_hz: 75

probe_points:

    117,117,20 # X100, Y100, Z20 an example

Проверка подключения по spi.

ls -l /dev/spi*

Если все прошло хорошо то введя в консоли fluidd ACCELEROMETER_QUERY

Вы увидите ответ с положениями.

Для запуска теста резонансов нужно ввести

TEST_RESONANCES AXIS=X

TEST_RESONANCES AXIS=Y

После можно построить графики по проделанным тестам (из консоли ssh)

~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png

~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png

Ответ будет тут же в консоли ssh, графики будут в /tmp, если вы не удалите старые графики то при построении новых скрипт будет учитывать и их результаты, выдавая среднее по больнице. Если по какой то неведомой причине у вас все сломалось и ничего не работает, прилагаю 2 готовых образа на 8 и 16гб где все настроено за вас.https://disk.yandex.ru/d/gA_rvOm2Z-ZFCAhttps://disk.yandex.ru/d/HSitzsA7AvMx3Q

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

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

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

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