Без предисловий.
Данная простынка разбита на 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.
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.
Слева направо rst rx2 tx2 gnd +5v
Подключив rx2-uart2_tx tx2-uart2_rx gnd-gnd +5v ко 2 или 4 контакту мы запитаем и саму пишку от платы принтера, что очень удобно.
Ток потребления без веб камеры порядка 0.2A.
Далее подключение акселерометра подрубленного согласно схемы по spi1 к opi.
Пин 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