Найти в Дзене
Михаил Девятков

Настройка Klipper, Moonraker и FluiddPi. Файл конфигурации printer.cfg. Калибровка подачи филамента, ПИД экструдера и стола.

Оглавление
Настройка Klipper, Moonraker и FluiddPi
Настройка Klipper, Moonraker и FluiddPi

Я установил программное обеспечение, подробности тут. Теперь необходимо проверить и внести изменения в printer.cfg. Откалибровать ПИД экструдера и стола. Отрегулировать подачу пластика. Приступим.

Файл конфигурации printer.cfg

Идем в "MACHINE" - printer.cfg, и начинаем проверять

[stepper_x] step_pin: dir_pin: enable_pin: В этих параметрах указываются выводы микроконтроллера, к которым подключен драйвер шагового двигателя. Если Вы взяли шаблон конфигурации соответствующий Вашей управляющей плате, то они прописаны правильно. Если что-то пошло не так, проверить можно на соответствие со схемой платы. Для изменения направления вращения двигателя перед номером пина в параметре "dir_pin:" ставится "!". Например "dir_pin: !P2.11".

microsteps:
Этот параметр зависит от используемого драйвера шагового двигателя. A4988, TMC2208 - 16 микрошагов (устанавливается перемычками на плате), TMC2209 - 32 хватит. DRV8825 - 32 микрошага. LV8729 - 128 микрошагов. Если используется какой то другой драйвер, то смотрим в описание драйвера.

rotation_distance:
Расстояние (в мм), которое ось проходит за один полный оборот двигателя.
Можно вычислить по формулам:
rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm>
или
rotation_distance = <full_steps_per_rotation> * <microsteps> * <step_distance>
Где <full_steps_per_rotation> определяется типом шагового двигателя. Большинство шаговых двигателей имеют шаг 1,8 градуса и имеют 200 полных шагов за один оборот (360/1,8=200). Некоторые шаговые двигатели имеют шаг 0,9 градуса и имеют 400 полных шагов за один оборот.
<microsteps> определяется типом драйвера, как описывалось выше.
<step_distance> расстояние в мм которое проходит ось за один шаг двигателя. Если Вы использовали более раннюю версию Klipper, то там использовался этот параметр.
<steps_per_mm>
количество шагов двигателя требуемое для перемещения на 1 мм. Если Вы использовали прошивку не Klipper, а например Marlin, то там был этот параметр.

Можно рассчитать rotate_distance, зная кинематику принтера.
Если используется ремень GT2 с шагом 2 мм и шкивы с 20 зубьями, то rotation_distance=20*2=40.

Если используется четырехзаходный трапецеидальный винт T8 с шагом 2мм, то за один оборот ось проходит 8 мм. Двухзаходный - 4 мм. Однозаходный - 2мм. Обычно этот параметр указывается в китайских магазинах как Lead = 8мм (4мм, 2мм).

Для экструдеров rotation_distance можно получить измерив диаметр подающего ролика (шестерни на валу двигателя) и используя следующую формулу: rotation_distance = <diameter> * 3.14. Полученное значение округлить до целого числа, точное значение определяется при калибровке.

gear_ratio: 3:1
Передаточное число, если используется редуктор, обычно это встречается в экструдерах. Для BMG (и клонов) это значение 3:1.

endstop_pin:
Вывод микроконтроллера к которому подключен концевик. Если концевик нормально-разомкнут, то перед номером пина ставится "!" (например: !P1.28). Если управление происходит замыканием пина на землю, то ставится подтяжка к высокому уровню "^" (например: ^P1.28).
Если реализуется парковка без концевиков (sensorless), то вместо номера пина указывается
tmc2209_stepper_x:virtual_endstop. Не все драйвера реализуют эту функцию, tmc2209 - могут, tmc2208 - не могут. Для других нужно уточнять в технической документации.

position_endstop:
Позиция концевика, то есть в координата оси в которой срабатывает концевик, обычно 0 или максимальная координата по оси.

position_max:
Максимальная координата по оси, обычно соответствует размеру области печати по этой оси.

homing_speed:
Максимальная скорость парковки.

homing_retract_dist:
Если есть, то происходит парковка в два этапа, отъезд на указанное расстояние в мм.

homing_retract_speed:
Скорость отъезда для повторной парковки, если отличается от скорости парковки.

second_homing_speed:
Скорость повторной парковки, если отличается от скорости первой парковки.

[stepper_y], [stepper_z], [extruder] - те же самые параметры, но есть дополнительные.

printer.cfg
printer.cfg

nozzle_diameter:
Диаметр сопла.

filament_diameter:
Диаметр пластика.

heater_pin:
Вывод микроконтроллера который управляет нагревателем экструдера.

sensor_type:
Тип датчика температуры. Возможны варианты: EPCOS 100K B57560G104F, ATC Semitec 104GT-2, ATC Semitec 104NT-4-R025H42G, Generic 3950, Honeywell 100K 135-104LAG-J01, NTC 100K MGB18-104F39050L32, SliceEngineering 450, TDK NTCG104LH104JT1. Обычно используется Generic 3950 и ATC Semitec 104GT-2.

sensor_pin:
Вывод микроконтроллера к которому подключен датчик температуры.

control: pid
pid_Kp:
pid_Ki:
pid_Kd:

Параметры определяющие работу ПИД (пропорционально интегрально дифференцирующего) регулятора. Оставить как есть, правильные значения вставляются после тестирования. О настройке будет написано ниже.

min_temp:
Минимальная температура.

max_temp:
Максимальная температура.

printer.cfg
printer.cfg

[heater_bed] параметры похожие на [extruder]

[fan]
pin:
Вывод микроконтроллера который управляет вентилятором обдува модели.

[mcu]
serial:
Определяется во время первоначальной установки. Описано в этой публикации.

command:
Возможные варианты: arduino, cheetah, rpi_usb, command. Arduino - для плат на базе arduino и им подобные. Cheetah - необходим для некоторых плат Fysetc Cheetah. Rpi_usb - используется на платах с питанием от USB - кратковременно отключает питание всех портов USB. Command - отправка команды Klipper на микроконтроллер для сброса.

[mcu host] пока не нужен, рассмотрю в следующей публикации.

printer.cfg
printer.cfg

[printer]
kinematics:
Выбор кинематики принтера. Возможны: cartesian, delta, corexy, corexz, hybrid_corexy, hybrid_corexz, polar, rotary_delta, winch.

max_velocity:
Максимальная скорость осей X и Y.

max_accel:
Максимальное ускорение осей X и Y.

max_z_velocity:
Максимальная скорость оси Z.

max_z_accel:
Максимальное ускорение оси Z.

Если используются драйвера управляемые по UART, то смотрим дальше. Параметры не обязательные, без них драйвера работать тоже будут. Но не забываем про настройку тока двигателя подстроечным резистором на драйвере, касается драйверов и без управления по UART.

printer.cfg
printer.cfg

uart_pin:
Вывод микроконтроллера, подключенный к линии PDN_UART.

run_current:
Ток работы шагового двигателя при движении.

hold_current:
Ток работы шагового двигателя в удержании.

stealthchop_threshold:
Скорость (в мм/с), на которую устанавливается порог "stealthChop". Режим "stealthChop" будет включен, если скорость шагового двигателя ниже этого значения. Значение по умолчанию равно 0, что отключает "stealthChop". Разработчики советуют всегда использовать режим «spreadCycle» (не указывая stealthchop_threshold) или всегда использовать режим «stealthChop» (устанавливая stealthchop_threshold значение 999999). Я этот совет увидел не сразу и слышал стуки при печати, так что этому совету лучше придерживаться.

driver_SGTHRS:
Чувствительность парковки. Выше значение - больше чувствительность. Установите для начала 255, и попробуйте запарковаться. Если голова домой не поехала, уменьшите значение на 50, и еще попробуйте. Когда голова запаркуется, можно увеличивать значение с шагом 10. Так подобрать оптимальное, чтобы голова уверенно ехали и сильно не билась при парковке.

diag_pin:
Вывод микроконтроллера, подключенный к линии DIAG TMC2209. Перед номером обычно ставится знак "^", чтобы включить подтягивание. Обычно совпадает с пином к которому должен подключаться концевик физический. Установка этого параметра создает виртуальный "tmc2209_stepper_x:virtual_endstop" параметр, который может использоваться в качестве endstop_pin соответствующей оси. Установление его включает sensorless (парковку без концевиков). (Обязательно также установка в driver_SGTHRS значение чувствительности).

Калибровка ПИД экструдера и стола

Вводим в консоль интерфейса принтера команду:
PID_CALIBRATE HEATER=extruder TARGET=200
где 200 - это рабочая температура экструдера, та на которой собираемся чаще всего работать. Экструдер начинает нагреваться, ждем окончания процедуры (минут 5-10). Копируем результат в блокнот, для удобства.
Идем в "МАШИНА", "printer.cfg" и вносим правки. "сохранить и перезапустить".

Вводим в консоль интерфейса принтера команду: PID_CALIBRATE HEATER=heater_bed TARGET=80
где 80 - это рабочая температура стола, та на которой собираемся чаще всего работать. Стол начинает нагреваться, ждем окончания процедуры (минут 15-20). Идем в "МАШИНА", "printer.cfg" и вносим правки. "сохранить и перезапустить".

Регулировка подачи филамента

Включаем нагрев экструдера, ждем нагрева, выключаем и откручиваем сопло. Ждем пока экструдер остынет. Пока ждем идем в "printer.cfg" и выставляем min_extrude_temp: 0. Сохранить и перезапустить.
Когда экструдер остынет градусов до 80 можно начать калибровку.
Кнопками "EXTRUDE" и значением "Feed amount in", делаем так чтоб филамент вылез, ставим на нем отметку (например тонким маркером). Экструдируем на 100 мм (2 раза по 50мм) и измеряем линейкой. идем в "printer.cfg" и поправляем идем в "rotation_distance:"и увеличиваем или уменьшаем параметр. Далее повторяем экструдирование на 100 мм и измеряем линейкой. Так пока не станет ровно 100 мм.
Потом возвращаем "min_extrude_temp:", нагреваем экструдер и прикручиваем сопло.

Теперь можно печатать кубик. Но потом я рекомендую ознакомиться с публикацией о калибровке температуры, ретрактов и потока.

Спасибо, что дочитали до конца. Про установку Klipper, Moonraker и FluiddPi можно почитать тут. Про подключение к Raspberry по UART можно почитать тут. Про настройку Host MCU, установку акселерометра - тут. Подключение блока управления питанием тут. Подключение и прошивка BIGTREETECH EBB 36/42 тут. Подключение 3D touch (BL touch) тут. Это то что касается 3D принтера.

Также планирую сборку MPCNC, очень интересный проект. Почти все детали приобретены, осталось напечатать, приобрести трубы и болты. Подписывайтесь на мой канал.

Также что б ни чего не пропустить подписывайтесь на мое сообщество ВК и канал Telegram
https://vk.com/cncand3d
https://t.me/cncand3d