Установка Klipper+Mainsail
Это руководство всё ещё в процессе доработки. Arduino + NeoPixels в текущем виде не совместимы с Klipper. Вместо этого Павел Дрыленко разработал скрипт, который выполняется на Pi. В руководстве отсутствуют схемы подключения и файлы настройки для NeoPixels, а также пользовательская тема Mainsail от Бена Леви. Руководство будет полностью завершено в ближайшие несколько дней.
Существует несколько способов установки Klipper. После ряда неудачных установок я пришёл к выводу, что этот метод самый стабильный и простой.
Можно использовать практически любую модель RPI, но рекомендуется Raspberry Pi 4. Вам потребуется как минимум карта SD Class-10 объёмом 8 ГБ. Если доступна карта UHS (Ultra High Speed), рекомендуется минимум UHS-1.
Для моей сборки я использую Raspberry Pi 4 8 ГБ и флеш-накопитель SanDisk 64 ГБ USB3.1.
Я использую Raspberry Pi4 8 ГБ, потому что у меня был запасной и я хотел иметь возможность подключаться к Wi‑Fi 5 ГГц.
Я также выбрал флеш-накопитель вместо SD-карты, потому что скорость передачи данных в 3–4 раза выше.
Я питаю RPI с помощью одобренного Raspberry Pi Foundation адаптера питания
Ссылка на проект
Шаг 1

Скачайте и распакуйте последнюю версию Mainsail с их GitHub
Откройте Raspberry Pi Imager
Выберите Operating System > Use custom > выберите скачанный образ Mainsail OS.
Выберите Storage > выберите вашу SD-карту.
Откройте меню расширенных настроек, нажав "Ctrl + Shift + X".
Здесь можно настроить Wi‑Fi, локаль, включить SSH и множество других опций.
Write > Yes для подтверждения
После завершения записи образа SD карта автоматически извлекается. Вставьте её в RPI и включите питание.
Шаг 2

Подключите Raspberry Pi к Duet 2 WiFi по USB, включите RPI и подключитесь к нему по SSH.
IP‑адрес Pi можно найти в списке подключённых клиентов в вашем роутере или открыв cmd.exe на ПК и выполнив
ping mainsailos.local -4
В веб-браузере введите http://mainsailos.local или IP‑адрес вашего принтера
Перейдите на вкладку Machine слева.
Выберите Upgrade для обновления образа RPI и Update для установки обновлений Klipper, Mainsail и Moonraker. После завершения обновлений перезагрузите RPI
Шаг 3

Изначально, когда я писал это руководство, многие источники говорили, что при конфигурации Duet 2 WiFi для Klipper впервые не требуется вручную стирать прошивку. Однако на практике это оказалось неверно в ряде случаев.
При выключенной плате установите перемычку на контакты стирания.
Подключите USB‑кабель от Duet 2 WiFi к источнику питания 5 В (USB‑порт вашего ПК).
Когда загорится индикатор diag, снимите перемычку
Любая сохранённая в Duet прошивка будет стёрта.
Шаг 4

Подключите Duet 2 WiFi к Pi через USB. Включите Pi и подключитесь к нему по SSH.
cd klipper
make clean
make menuconfig
Micro-Controller > SAM3/SAM4 (Due and Duet)
Processor > SAM4e8e (Duet WiFi/Eth)
Communication Interface > USB
Нажмите клавишу Escape и введите Y для сохранения конфигурации
Шаг 5

Введите make
Остановите сервис Klipper.
sudo service klipper stop
Получите серийный идентификатор Duet и запишите его.
ls /dev/serial/by-id/*
Введите "make flash FLASH_DEVICE=" и вставьте ваш серийный номер после =
Если прошивка не прошьётся, обычно плата перейдёт в режим загрузчика, как при первоначальной установке при замыкании контактов erase. В этом случае повторно выполните ls /dev/serial/by-id/* чтобы получить корректный серийный номер
Введите make "flash FLASH_DEVICE=" и вставьте ваш новый серийный номер после =
Шаг 6

Убедитесь, что вы в директории klipper:
cd ~/klipper/
Введите следующие команды:
sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
sudo systemctl enable klipper-mcu.service
make clean
make menuconfig
Шаг 7


Micro-Controller Architecture > Linux Process. Нажмите Esc затем Y
make
make flash
sudo service klipper start
Убедитесь, что klipper_host_mcu находится в каталоге tmp, выполнив ls /tmp/*
Добавьте пользователя pi в группу TTY
sudo usermod -a -G tty pi
sudo reboot -h now
Шаг 8

Далее откройте в веб‑браузере IP‑адрес Pi. Вы увидите ошибку «Unable to open config file /home/pi/klipper_config/printer.cfg»
Скачайте файл printer.cfg с GitHub и загрузите его в каталог config
Откройте вновь созданный "printer.cfg". Прокрутите до строки 169. Убедитесь, что вы обновили конфигурацию, указав серийный ID, полученный командой "ls /dev/serial/by-id/*"
Дважды проверьте, что серийный идентификатор mcu rpi в строке 181 соответствует выводу "ls /tmp/*"
Нажмите SAVE и перезапустите принтер
Шаг 9

Если вы используете отдельный 5 В блок питания для PS_ON, вам нужно добавить следующие строки
[output_pin psupower] pin: PD15
[gcode_macro M80] gcode: SET_PIN PIN=psupower VALUE=1
[gcode_macro M81] gcode: SET_PIN PIN=psupower VALUE=0
Шаг 10

PanelDue совместим с Klipper, но только с версией 1.24. Инструкции можно найти здесь
Подключите PanelDue к RPI.
5v > 5v
GND > GND
UART0 TX > DIN
UART0 RX > DOut
Шаг 11

Подключитесь к RPI по SSH.
sudo nano /boot/config.txt
В конце файла конфигурации введите:
dtoverlay=pi3-miniuart-bt
Нажмите Ctrl+X > Y для сохранения > Enter для подтверждения
Шаг 12

Нужно отключить последовательную консоль
sudo nano /boot/cmdline.txt
Удалите следующую строку
console=serial0,115200
Нажмите Ctrl+X > Y для сохранения > Enter для подтверждения
Шаг 13

Отключите последовательную консоль
sudo raspi-config
3 Interface Options > P6 Serial Port > No > Yes
Подтвердите перезагрузку RPI — Yes
Убедитесь, что вы изменили скорость передачи данных (baud rate) на панели на 115200
Также необходимо добавить несколько настроек в ваш moonraker.cfg. Подробности можно найти здесь.
Шаг 14


Скачайте файл и распакуйте.
В меню «machine» нажмите значок шестерёнки и установите флажок «показывать скрытые файлы».
Выберите «Create Directory».
В поле имени введите «.theme» и нажмите CREATE.
Имя должно совпадать с показанным на скриншоте.
Выберите вновь созданную папку «.theme». Загрузите все файлы из zip-архива в папку .theme.
Нажмите Ctrl+F5 и наслаждайтесь.
Заключение
За написание этих руководств мне не платили. Бен попросил меня сделать это в качестве одолжения. Учитывая всё, что он сделал для нашего сообщества, я посчитал, что это минимум, что я могу сделать. Честно говоря, хотя на создание и документирование ушло около двух месяцев, мне было очень приятно этим заниматься. Это заставило меня писать руководства так, чтобы они были понятны всем, и привести в порядок мой Github, чтобы я мог поделиться файлами, использованными в процессе, которые не входят в оригинальную загрузку. Вы не обязаны, но если хотите, можете сделать пожертвование.
Перевод руководства с ifixit.com