skip to content
Архитектура в курилке

Manta M8P V2 + EBB SB2209 + Cartographer CAN V3 = CANBus

/ чтиво на 4 минуты

Содержание

Шта

Я один из тех людей, у кого достаточно много времени (ну было точно достаточно времени - на созвонах крутить гайки и впаивать латунные вставки было в радость, скажу честно), упорства и желания, чтобы собрать свой 3д-принтер.

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

Я наконец прошел все стадии принятия того, что надо все-таки все пересобрать и настроить. И этот гайд как раз об этом.

Обзор

В моем случае сетап следующий: сердце принтера - плата Manta M8P V2, мозги - Orange Pi CM4, глаза, если так можно выразиться, - Cartographer, а для общения с башкой принтера - CANBus и EBB SB2209.

И я просто заебался все это искать и заново все качать. Поэтому поехали по порядку.

Orange Pi Compute Module 4

Orange Pi CM4

На момент написания статьи есть уже более актуальная платка - Compute Module 5, но работаем с тем, что имеем.

Качаем дистриб. В моем случае Ubuntu Server Jammy1, но можно и повыбирать.

Потом пишем это все на флешку: через balenaEtcher или еще как - как удобнее.

etcher

Wi-Fi

У меня словарный запас не такой уж большой, поэтому:

Блять, почему нельзя просто сделать настройку Wi-Fi, как на Raspberry Pi? Почему рекомендованный метод - это подключиться через SSH по проводу или ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ и настроить через них Wi-Fi? Нет, метод рабочий, но, епт, а можно как-то еще более клиентоориентированно?

Terminal window
ssh root@xxx.xxx.xxx.xxx # пароль orangepi
nmcli dev wifi
nmcli dev wifi connect <ssid> password <pass>
ip a # Должен появиться новый IP для подключения по Wi-Fi

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

Первый запуск

Первым делом по классике обновим все, что у нас есть:

Terminal window
sudo apt update
sudo apt upgrade
sudo reboot now && exit

Дальше уже по вкусу: можно или сразу перейти к установке и настройке Klipper-а, или же настроить отдельного пользака, навести красоту в shell-е и так далее. Если нужна помощь со вторым (в целом крайне рекомендую), то можно подсмотреть в памятке.

Проблемы с apt

По дефолту указаны репы http://repo.huaweicloud.com/ubuntu-ports/.

Они то падают с рандомными ошибками, то просто висят Waiting for headers. Я так и не смог разобраться, то ли это какие-то блокировки, то ли он просто сам по себе лагает. Лучшим и самым быстрым решением на момент написания статьи стала замена на репозитории http://mirrors.huaweicloud.com/ubuntu-ports/ в /etc/apt/sources.list:

Terminal window
deb http://mirrors.huaweicloud.com/ubuntu-ports/ jammy main restricted universe multiverse
# deb http://repo.huaweicloud.com/ubuntu-ports/ jammy main restricted universe multiverse
#deb-src http://repo.huaweicloud.com/ubuntu-ports/ jammy main restricted universe multiverse
deb http://mirrors.huaweicloud.com/ubuntu-ports/ jammy-security main restricted universe multiverse
# deb http://repo.huaweicloud.com/ubuntu-ports/ jammy-security main restricted universe multiverse
#deb-src http://repo.huaweicloud.com/ubuntu-ports/ jammy-security main restricted universe multiverse
deb http://mirrors.huaweicloud.com/ubuntu-ports/ jammy-updates main restricted universe multiverse
# deb http://repo.huaweicloud.com/ubuntu-ports/ jammy-updates main restricted universe multiverse
#deb-src http://repo.huaweicloud.com/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb http://mirrors.huaweicloud.com/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb http://repo.huaweicloud.com/ubuntu-ports/ jammy-backports main restricted universe multiverse
#deb-src http://repo.huaweicloud.com/ubuntu-ports/ jammy-backports main restricted universe multiverse

BTT Manta M8P V2

GitHub. Там же можно найти и гайд, и распиновку, и даже 3д-модель.

KIAUH

Все предлагаю ставить с помощью KIAUH:

Terminal window
cd ~ && git clone https://github.com/dw-0/kiauh.git
./kiauh/kiauh.sh

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

moonraker

Или так ставится Fluidd:

fluidd

На самом деле это только выглядит страшно: требуется всего лишь вводить нужную цифру или же букву. Дальше все уже делает сам KIAUH.

В моем случае я ставлю:

  • Сам Klipper

  • Moonraker

  • Fluidd (с конфигом)

  • KlipperScreen

  • Crowsnest

После этого мы уже имеем в целом рабочую веб-морду, через которую можно настраивать наш Voron (или что там ты решил настраивать?).

klipper-backup

Дальше мне очень нравится проект klipper-backup. Удобная штука, чтобы поделиться с кем-то конфигурацией или, как в моем случае, починить поломанный Klipper.

Terminal window
curl -fsSL get.klipperbackup.xyz | bash
~/klipper-backup/install.sh

Чтобы не лазить по 10 раз в доку, при создании PAT (Personal Access Token) в GitHub надо задать ему такие права:

PAT permissions

Moonraker Telegram Bot

Абсолютно имбовая вещь. Я уже не вспомню, сколько раз я так удаленно запускал печать или останавливал её, потому что что-то в процессе пошло не так. Ставить можно через KIAUH, в разделе Extensions.

Cartographer 3D

Я уже давно перешел со стандартного датчика на Cartographer (аналог Beacon) банально из-за скорости построения mesh-а. Для настройки ставим необходимые зависимости:

Terminal window
curl -s -L https://raw.githubusercontent.com/Cartographer3D/cartographer3d-plugin/refs/heads/main/scripts/install.sh | bash -s -- --klipper ~/klipper --klippy-env ~/klippy-env
cd ~
git clone https://github.com/Cartographer3D/cartographer_firmware.git

CANBus

Это прекрасная штука до тех пор, пока тебе не надо ее настроить. Господи, сколько я уже ночей потратил на то, чтобы все это снова настроить, найти секретную комбинацию параметров, которые надо задействовать… И я снова здесь. Погнали!

Священное писание

Ставим katapult:

Terminal window
git clone https://github.com/Arksine/katapult

Дальше действуем по гайду esoterical:

Terminal window
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd
sudo systemctl disable systemd-networkd-wait-online.service
echo -e 'SUBSYSTEM=="net", ACTION=="change|add", KERNEL=="can*" ATTR{tx_queue_len}="128"' | sudo tee /etc/udev/rules.d/10-can.rules > /dev/null
echo -e "[Match]\nName=can*\n\n[CAN]\nBitRate=1M\n\n[Link]\nRequiredForOnline=no" | sudo tee /etc/systemd/network/25-can.network > /dev/null
sudo reboot now

Дальше делаем все по гайду: заливаем нужную прошивку, чтобы заработал CANBus.

А шо дальше

Пока я все это чинил, по глупости поспешил и решил не выключать питание - в итоге на моем SB2209 пошел «магический дымок». Поэтому на сегодня (да и в целом на неопределенное время) этот гайд останется в том виде, в каком он есть сейчас.

Берегите себя и своих близких!

Сноски

  1. Блять, почему все хранится на Google Drive? Почему не GitHub? Почему не просто какой-то рандомный хостинг? Не знаю, как будто это прям ну супернепрофессионально выглядит. ↩