Raspberry Pi в роли принт-сервера — самый популярный апгрейд домашнего 3D-принтера. Klipper переносит расчёты траекторий на Pi и оставляет микроконтроллеру только шаги и температуры, поэтому печать идёт быстрее и точнее, а тюнинг вроде input shaping становится доступным. OctoPrint или Mainsail дают веб-интерфейс, камеру и очередь заданий. Разберём установку с нуля: от образа системы до первой калибровки.

Как устроен Klipper

Хост-часть на Raspberry Pi считает кинематику, разбивает модель на сегменты и отправляет плате компактные команды по USB или UART. Микроконтроллер выполняет шаги с точными таймингами и не отвлекается на планирование. Отсюда главный плюс: Pi можно менять и обновлять, не трогая прошивку платы, а конфигурация принтера остаётся текстовым файлом.

  • Плюсы: высокая скорость, input shaping, pressure advance, понятные макросы, единый конфиг.
  • Минусы: без Pi принтер не работает, нужен отдельный компьютер и стабильное питание.
  • Ограничение: конфиг привязан к конкретной плате и кинематике, копировать его вслепую нельзя.

Подготовка Raspberry Pi

Берите Pi 3B+, 4 или 5 с 2 ГБ и больше; для одной печати хватает и Zero 2 W, но камера и веб-интерфейс её заметно нагружают. Образ Raspberry Pi OS Lite 64-bit пишется через Raspberry Pi Imager: там же задаются пользователь, SSH и Wi-Fi.

sudo apt update && sudo apt full-upgrade -y
sudo apt install -y git python3-venv python3-pip build-essential libncurses-dev
sudo usermod -aG dialout $USER
hostnamectl set-hostname printer-pi

После смены группы перезайдите по SSH, иначе доступ к /dev/ttyUSB0 не появится. Кабель от платы принтера — короткий, с ферритовым кольцом: длинный USB рядом с блоками питания даёт сбои передачи и случайные остановки печати.

Установка Klipper

Проще всего поставить хост-часть через KIAUH: он создаст службу klipper, каталог ~/printer_data и при желании добавит Moonraker с Mainsail. Ручная сборка тоже возможна, но тогда systemd-юнит и каталоги придётся готовить самому.

git clone https://github.com/dw-0/kiauh.git ~/kiauh
~/kiauh/kiauh.sh
cd ~/klipper
make menuconfig
make -j4

В меню KIAUH выберите Klipper, затем при необходимости Moonraker и веб-интерфейс. После установки соберите прошивку: в menuconfig укажите архитектуру платы, чаще всего STM32, модель процессора, смещение загрузчика и способ связи. Для плат Creality со стоковым загрузчиком смещение 28 KiB, для BigTreeTech с Katapult — 8 KiB; точное значение всегда указано в sample-конфиге вашей платы. Результат сборки — out/klipper.bin.

ls /dev/serial/by-id/
dmesg | grep -i -E "ch341|cp210|acm"
cp out/klipper.bin /media/$USER/SDCARD/firmware.bin
make flash FLASH_DEVICE=/dev/serial/by-id/usb-Klipper_stm32g0b1_000000000000

Платы со стоковым загрузчиком Creality прошиваются через SD-карту: файл должен называться firmware.bin. Платы с Katapult прошиваются командой make flash, путь подставьте из первой команды. После прошивки плата перезагрузится и появится в /dev/serial/by-id с новым именем.

Конфигурация принтера

Klipper не угадывает пины. Возьмите готовый sample из каталога config и замените serial на свой. Ниже фрагмент, который всё равно придётся править под конкретную плату.

[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32g0b1_000000000000
restart_method: command

[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100

[stepper_x]
step_pin: PA0
dir_pin: PA1
enable_pin: !PA2
microsteps: 16
rotation_distance: 40
endstop_pin: ^PB0
position_endstop: 0
position_max: 235
homing_speed: 50

Пины в примере условные, копировать их вслепую нельзя. Возьмите файл printer-creality-ender3-2018.cfg или аналогичный из ~/klipper/config, скопируйте в ~/printer_data/config/printer.cfg и меняйте только то, что относится к вашей модификации. После правки конфиг проверяется перезапуском службы.

sudo systemctl restart klipper
tail -n 40 ~/printer_data/logs/klippy.log
journalctl -u klipper -n 30 --no-pager

Первая калибровка

Перед печатью нужно обнулить геометрию и нагреватели. Команды вводятся в веб-интерфейсе или через консоль; после успешной калибровки Klipper сам дописывает результат в конфиг по SAVE_CONFIG.

PID_CALIBRATE HEATER=extruder TARGET=210
PID_CALIBRATE HEATER=heater_bed TARGET=60
BED_MESH_CALIBRATE
SHAPER_CALIBRATE

SHAPER_CALIBRATE требует акселерометра, например ADXL345 на SPI. Без него используют тест ringing tower и задают input_shaper вручную. Перед BED_MESH_CALIBRATE прогрейте стол до рабочей температуры: геометрия при нагреве меняется, и карта, снятая на холодном столе, будет неточной.

OctoPrint рядом с Klipper

OctoPrint — зрелый принт-сервер с плагинами, камерой и уведомлениями. С Klipper он работает через плагин OctoKlipper, но печать файлами идёт через виртуальную SD-карту Klipper, а не через последовательный поток, как с Marlin. Для новых сборок чаще берут Mainsail или Fluidd: они легче и рассчитаны на Klipper из коробки. Если OctoPrint уже привычен, ставьте его в venv.

python3 -m venv ~/octoprint
~/octoprint/bin/pip install --upgrade pip
~/octoprint/bin/pip install octoprint
~/octoprint/bin/octoprint serve --host 0.0.0.0 --port 5000

Проще взять образ OctoPi и не собирать зависимости руками. В обоих случаях не открывайте порт 5000 в интернет: OctoPrint не рассчитан на публичный доступ без обратного прокси и дополнительной защиты.

Диагностика и обновления

ls -l /dev/serial/by-id/
sudo systemctl status klipper --no-pager
sudo systemctl status octoprint --no-pager
sudo journalctl -u klipper -f

Типичные проблемы: плата не видна (кабель, права dialout, сгоревший порт), Klipper падает с «Unable to open serial port» (неверный путь), принтер останавливается на середине (просадка питания или плохой USB). Обновление Klipper — это git pull в ~/klipper и повторная прошивка платы, если менялась версия MCU-кода; конфиг при этом сохраняется.

В слайсере выбирайте профиль для Klipper и не включайте стартовый G-code от Marlin: он конфликтует с макросом PRINT_START. Проверьте размеры стола и максимальную высоту, иначе Klipper остановит печать по концевику. Первый слой печатайте медленно, а после смены сопла или стола заново запускайте BED_MESH_CALIBRATE.

Безопасность и питание

  • Питайте Pi отдельным блоком, не от платы принтера.
  • Общий провод земли обязателен, если плата и Pi питаются от разных источников.
  • Закрепите Pi и провода стяжками, чтобы USB не выдернулся в середине печати.
  • Не оставляйте принтер без присмотра на долгих печатях, особенно с подогревом стола.
  • Обновляйте систему и не выставляйте веб-интерфейс в интернет.

Итог

Klipper на Raspberry Pi даёт точную кинематику, input shaping и понятный конфиг в текстовом файле. Начните с Raspberry Pi OS Lite, sample-конфига платы и калибровки PID, затем добавьте акселерометр и веб-интерфейс. OctoPrint подойдёт, если нужны его плагины; Mainsail и Fluidd проще для чистой связки с Klipper. Главное — не копировать пины из чужих конфигов и проверять лог после каждого изменения.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте