Klipper на Ender 3 с SKR Mini E3 v3.0: безопасный план установки
Короткий ответ
На Ender 3 с заменённой родной платой Creality на BTT SKR Mini E3 v3.0 (BTT - англ. BigTreeTech, китайский производитель плат для 3D-принтеров) Klipper ставится за один спокойный вечер. Порядок такой: собираете на управляющем компьютере прошивку firmware.bin под чип STM32G0B1, заливаете её на плату через microSD, подключаете плату по USB к Raspberry Pi (англ. одноплатный мини-ПК на Linux) или дешёвому мини-ПК на x86, заливаете базовый printer.cfg из официального репозитория Klipper и проходите три калибровки - Z-offset (высота сопла над столом в нулевой точке), input shaping (гашение вибраций рамы) и pressure advance (компенсация давления расплава в сопле).
Одна важная оговорка сразу: SKR Mini E3 v3.0 поддерживается примером конфигурации Klipper, но файл с префиксом generic описывает плату, а не весь принтер. Ender 3 разных поколений отличаются датчиками, направлением моторов, экраном, механизмом оси Z и дополнительными устройствами. Поэтому чужой printer.cfg целиком копировать нельзя - ниже показано, что проверять на каждом шаге.
В статье - рабочий порядок действий, актуальные команды и типичные грабли (плата не определяется по USB, прошивка не заливается, Pi теряет связь с принтером посреди печати).
Что нужно готово до старта
Klipper на стоковой плате Creality 4.2.7 ставить можно, но это путь страданий: чип STM32F103 слабее, USB-загрузчика нет, прошивать нужно через SD-карту с переименованием файла. SKR Mini E3 v3.0 на чипе STM32G0B1 убирает эти проблемы.
Минимальный комплект:
- Принтер Ender 3 / Pro / V2 с уже установленной BTT SKR Mini E3 v3.0.
- Управляющий компьютер: Raspberry Pi 4 (4 ГБ) либо любой мини-ПК на x86 (Intel NUC, тонкий клиент HP/Dell). Вариант с мини-ПК на x86 часто стабильнее: меньше глюков с питанием, накопитель живёт дольше карты памяти.
- microSD класса A1 (буква A в маркировке - это карты, рассчитанные на постоянные мелкие операции чтения-записи, они выносливее обычных под нагрузкой Linux).
- Блок питания 5V 3A для Pi (на слабых «зарядках» 5V 2A Pi 4 виснет под нагрузкой).
- USB-A - USB-C кабель для связи Pi с платой: короткий, с ферритовым фильтром. Длинные кабели дают помехи и срыв печати.
- Акселерометр ADXL345 с интерфейсом SPI. Без него input shaping настроить «на глаз» нельзя, а это половина смысла Klipper.
- Отдельная microSD для разовой прошивки самой платы SKR (не путать с картой Pi).
Дозаказывать ADXL345 через неделю после установки Klipper - типичная ловушка: настройку резонансов придётся переделывать с нуля. Берите сразу.
Шаг 1. Готовим Raspberry Pi или мини-ПК
Идея простая: ставим Linux, сверху накатываем Klipper и браузерный веб-интерфейс Mainsail. На Pi это делается одним готовым образом MainsailOS, на x86 - руками за полчаса.
Если у Вас Raspberry Pi
Скачиваете официальный образ MainsailOS (актуальная сборка - на Debian 12 bookworm), пишете на microSD через утилиту Raspberry Pi Imager. В Imager обязательно укажите Wi-Fi-сеть, пароль и включите SSH - иначе Pi окажется «слепой коробкой». Пользователь по умолчанию - pi, пароль задаёте в Imager.
Вставляете карту, включаете питание. Через 2-3 минуты Pi появляется в локальной сети по адресу mainsail.local. Открываете в браузере - должен показаться интерфейс Mainsail с надписью «Klipper not connected». Это нормально.
Если у Вас мини-ПК на x86
Ставите Debian 12 минимальной установкой, создаёте пользователя pi. Через SSH:
sudo apt update && sudo apt install -y git python3-pip
git clone https://github.com/dw-0/kiauh.git
./kiauh/kiauh.sh
KIAUH (Klipper Installation And Update Helper - помощник установки Klipper) даёт текстовое меню. Выбираете Install -> Klipper -> Mainsail -> Moonraker. После установки открываете адрес мини-ПК в браузере и видите ту же Mainsail.
Шаг 2. Собираем firmware.bin под SKR Mini E3 v3.0
Klipper состоит из двух частей: «мозг» на Pi/мини-ПК и «исполнитель» на плате принтера. Прошивку для платы собираете прямо на управляющем компьютере - это занимает минуту.
Через SSH:
cd ~/klipper
make menuconfig
В синем меню выставляете параметры для SKR Mini E3 v3.0 (сверено с примером конфигурации платы в репозитории Klipper):
- Micro-controller Architecture: STMicroelectronics STM32
- Processor model: STM32G0B1
- Bootloader offset: 8KiB bootloader
- Clock Reference: 8 MHz crystal
- Communication interface: USB (on PA11/PA12)
Нажимаете Q, соглашаетесь сохранить, потом:
make clean
make
Через 30-60 секунд в папке ~/klipper/out/ появится файл klipper.bin. Это и есть прошивка для платы.
Заливка firmware на плату
Выключаете принтер. Вытаскиваете microSD из платы SKR (на v3.0 она с обратной стороны платы, не путать с картой Pi). Копируете на неё klipper.bin и переименовываете в firmware.bin - без этого загрузчик BTT файл не увидит. Вставляете карту обратно, включаете принтер.
Загрузчик находит firmware.bin, заливает его на чип STM32G0B1 и переименовывает файл в FIRMWARE.CUR - это маркер «уже применено». Процесс занимает несколько секунд, отдельной индикации обычно нет. Выключите принтер, вытащите карту и проверьте: если файл переименован в FIRMWARE.CUR - прошивка зашла.
Связь Pi с платой
Подключаете USB-кабель от Pi к плате SKR, включаете принтер. Через SSH:
ls /dev/serial/by-id/
Должна появиться запись вида usb-Klipper_stm32g0b1xx_XXXXXXXX-if00. Если пусто - плата либо не прошилась, либо кабель битый. Смотрите dmesg | tail -20: видите error -71 или USB disconnect - это плохой кабель или помеха. Меняете на короткий кабель с ферритом.
Шаг 3. printer.cfg - конфиг под свой Ender 3
Klipper не работает без printer.cfg - это описание Вашего принтера: длины осей, шаги моторов, пины концевиков, тип термистора. Для связки «Ender 3 + SKR Mini E3 v3.0» готовый пример лежит в репозитории Klipper под именем generic-bigtreetech-skr-mini-e3-v3.0.cfg.
В Mainsail слева панель «Machine» -> файл printer.cfg. Если его нет - создаёте новый и вставляете содержимое примера. Дальше меняете свои блоки.
Указываете адрес платы из шага выше:
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32g0b1xx_XXXXXXXX-if00
Кинематику и пределы:
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
Для стокового Ender 3 без апгрейдов ставьте max_accel заметно скромнее (например, 1500). Гнать 3000 на родных колёсах смысла нет - рама раскачается, грани поплывут.
И блок осей - длины X/Y/Z в миллиметрах. Для Ender 3/Pro/V2 это 235/235/250.
Здесь главное правило безопасности. Не переносите чужой printer.cfg целиком, не сверив железо. Ошибка в контакте нагревателя или в типе датчика температуры может отключить защиту или привести к неконтролируемому нагреву. Перед первым нагревом:
- Сверьте параметры сборки прошивки с комментариями в официальном файле платы.
- Заполните контакты датчиков, нагревателей и двигателей по схеме своей аппаратной сборки.
- До первого нагрева проверьте показания датчиков при комнатной температуре - они должны показывать примерно температуру в комнате, а не 0 или 300.
- Проверьте направление каждой оси коротким движением вдали от края.
- Только после этого пробуйте нагрев, держа руку у выключателя питания.
Когда всё сверено - жмёте «Save & Restart». Klipper перечитывает конфиг и подключается к плате. В правом верхнем углу Mainsail зелёная иконка «Klipper Ready» - базовая прошивка работает.
Шаг 4. Первая калибровка - Z-offset
Без правильного Z-offset (расстояния между соплом и столом в нулевой точке) первый слой не приклеится. Порядок:
- Греете стол до 60 °C (для PLA), сопло - до 200 °C. Считать на холодную бесполезно: металл при нагреве расширяется.
- В Mainsail вкладка «Tune» -> команда
G28(парковка всех осей по нулям). - Команда
PROBE_CALIBRATE, если стоит BLTouch / CR Touch (датчики автоуровня стола), иначеZ_ENDSTOP_CALIBRATEдля физического концевика. - Подкладываете под сопло лист офисной бумаги (плотность 80 г/м²). Кнопками
Z+/Z-(шаг 0.05 мм) опускаете сопло, пока бумага не начнёт тянуться с лёгким сопротивлением. - Команда
ACCEPTсохранит значение, потомSAVE_CONFIGдопишет вprinter.cfgблок[stepper_z] position_endstop.
Если первый слой плохо льнёт - подбираете в слайсере Z-offset на ±0.04 мм. Подробнее - в статье Первый слой не клеится: диагностика.
Шаг 5. Input shaping - главное, ради чего ставили Klipper
Input shaping - это гашение механических резонансов рамы. Когда принтер резко двигает голову, рама колеблется на своей частоте, и на гранях остаются «тени» - повторяющиеся отражения углов чуть дальше по плоскости. Klipper измеряет эти частоты акселерометром ADXL345 и встраивает в движение фильтр, который их подавляет. Ключевое: частоты у каждого принтера свои и их надо измерить, а не брать чужие числа - они зависят от рамы, узлов и апгрейдов.
Подключение ADXL345
Акселерометр подключается по интерфейсу SPI - четырьмя сигнальными проводами плюс питание и земля - либо к пинам Pi, либо к свободному разъёму SPI на самой плате SKR Mini E3 v3.0. Второй вариант обычно проще: короче провода, меньше помех. Точную распиновку берите из документации Klipper по замеру резонансов под своё подключение.
В printer.cfg добавляете блоки:
[adxl345]
cs_pin: rpi:None
[resonance_tester]
accel_chip: adxl345
probe_points:
117, 117, 20
Здесь 117, 117 - центр стола Ender 3 по XY; 20 - поднять Z на 2 см, чтобы голова не цеплялась за стол.
Замер резонансов
В консоли Mainsail по очереди:
TEST_RESONANCES AXIS=X
Принтер сделает несколько секунд резких движений по X с разной частотой. Потом то же по Y:
TEST_RESONANCES AXIS=Y
Файлы с замерами сохранятся в /tmp/. Дальше через SSH прогоняете скрипт обработки:
~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png
Получите PNG-график с рекомендацией вида «Recommended shaper is mzv @ 47.2 Hz». Это и есть Ваши настройки - у Ender 3 частоты обычно лежат в диапазоне нескольких десятков герц по каждой оси, но опираться нужно именно на свой замер. Добавляете в printer.cfg то, что порекомендовал скрипт:
[input_shaper]
shaper_freq_x: 47.2
shaper_type_x: mzv
shaper_freq_y: 38.8
shaper_type_y: mzv
Save & Restart. Прирост по качеству видно глазами на первом же тестовом кубе - грани становятся чище.
Подробнее про input shaping в OrcaSlicer - в статье Input Shaping в OrcaSlicer 2026.
Шаг 6. Pressure advance - чистые углы
Pressure advance (компенсация давления расплава в сопле) - вторая обязательная калибровка. Без неё на старте линии остаётся «шишка» лишнего пластика, на остановке - «провал». С ней углы резкие, верхний слой гладкий.
Команда запускает печать тестовой башни:
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=0.005
По высоте башни Klipper плавно поднимает значение pressure advance. Смотрите глазами, на какой высоте углы становятся чистыми, а на верхней плоскости пропадает щель между периметром и заполнением. Итоговое значение считаете по формуле START + высота × FACTOR. Например, при чистом участке на высоте 30 мм и множителе 0.005 получится 0.15.
Значение измеряется, а не запоминается, и зависит в первую очередь от типа подачи. Для прямой подачи (direct drive) ориентиры такие: PLA примерно 0.02-0.06, PETG примерно 0.04-0.08, ABS/ASA примерно 0.03-0.07. Стоковый Ender 3 с боуден-подачей (пруток идёт до сопла через длинную трубку) обычно требует заметно больших значений - из-за сжатия прутка в трубке. Поэтому не переносите число из чужого конфига, а снимите своё.
Найденное значение добавляете в блок [extruder], вписав вместо примера то, что измерили:
pressure_advance: 0.055
pressure_advance_smooth_time: 0.04
Save & Restart. Для каждого типа пластика pressure advance свой - можно задавать его в стартовом G-коде слайсера командой SET_PRESSURE_ADVANCE ADVANCE=... под конкретный пруток.
Что меняется по итогу
Klipper снимает софтовый потолок скорости и добавляет гашение вибраций и компенсацию давления. Что Вы реально получаете:
- Чистые углы и меньше «теней» на гранях после настройки input shaping и pressure advance.
- Ровнее верхний слой на больших плоскостях.
- Удобство: камера в Mainsail, очередь печати, история заданий, графики температур в браузере.
Про скорость честно: конкретную цифру обещать нельзя. Предел зависит от механики принтера, потока горячего узла, ускорения и модели детали. На стоковых колёсах и боуден-подаче гоните осторожно - рама раскачивается, грани плывут. Реальную рабочую скорость подбирайте сами тестовыми печатями, а не по чужим числам. Установка рельс вместо колёс и прямой подачи расширяет запас, но это отдельный апгрейд железа.
Типичные грабли
«MCU Klipper shutdown: Lost communication with MCU» (MCU - англ. microcontroller unit, микроконтроллер платы) - потеря связи Pi с платой по USB. Причины: длинный кабель, шумный блок питания принтера. Лечится коротким кабелем с ферритом и отдельным БП 5V 3A для Pi.
После каждой перезагрузки нужно делать G28 - это нормальное поведение Klipper, а не баг.
Печать останавливается на середине - частая причина умирающая microSD на Pi. Меняете на карту класса A1 или переносите систему на SSD по USB.
ADXL345 не определяется - проверьте, что в printer.cfg есть блок MCU для самого Pi и что микроконтроллер Klipper для Pi собран (linux-процесс klipper_mcu).
Прошивка не заливается - файл точно назван firmware.bin? Карта в формате FAT32? Размер файла больше нуля?
Чеклист установки
- Установлена BTT SKR Mini E3 v3.0
- Готов Raspberry Pi 4 или мини-ПК на x86 с Debian 12
- Есть microSD класса A1, БП 5V 3A, короткий USB-кабель с ферритом, ADXL345
- Mainsail установлен и доступен по адресу в сети
- Собран
firmware.binпод STM32G0B1 черезmake menuconfig - Прошивка залита через microSD, файл переименовался в
FIRMWARE.CUR - В
printer.cfgподставлен ID платы из/dev/serial/by-id/ - Размеры стола 235/235/250 прописаны,
max_accelвыставлен под своё железо - Контакты нагревателя и датчиков сверены, показания при комнатной температуре в норме
- Направление осей проверено коротким движением
- Z-offset откалиброван и сохранён через
SAVE_CONFIG - ADXL345 подключён, частоты резонансов измерены и внесены в
[input_shaper] - Pressure advance подобран через
TUNING_TOWERпод каждый пластик - Сделан backup
printer.cfg(копия на ПК)
Связанные статьи
- Klipper в 2026: кому реально стоит ставить вместо стоковой прошивки - честный разбор, нужен ли Вам Klipper вообще.
- Input Shaping в OrcaSlicer 2026 - как слайсер учитывает настройки Klipper.
- Первый слой не клеится: диагностика - точная настройка Z-offset после Klipper.
- Календарь обслуживания 3D-принтера на 2026 - что чистить и смазывать раз в месяц.
- Замена ремня по оси Y: пошагово - если после Klipper всплыли проблемы с ремнями.