Установка 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