Гайд по установке и настройке Marlin 2.1.2.1 на Creality Ender 5 Pro с платой Creality V4.2.2
Подробный практический гайд по установке и настройке Marlin 2.1.2.1 на Creality Ender 5 Pro с платой Creality V4.2.2. Гайд рассчитан на типовую конфигурацию: 32-битная плата 4.2.2, драйверы TMC2208 в standalone, заводской дисплей, без BLTouch. Если есть BLTouch/CR-Touch, direct drive, другой дисплей или термистор — это отмечено отдельно.
1. Что важно знать перед прошивкой
1.1. Плата Creality 4.2.2
Для Ender 5 Pro с платой 4.2.2 обычно:
- MCU: STM32F103RET6 или реже STM32F103RCT6.
- RET6 — 512 KB flash, предпочтительно.
- RCT6 — 256 KB flash, прошивка должна быть компактнее.
- Драйверы: обычно TMC2208 standalone, то есть без UART-управления из Marlin.
- Прошивка обычно ставится через SD-карту, файл
firmware.bin. - USB-порт может быть подключён через CH340 или аналогичный USB-UART мост.
Важно:
Если на плате стоит TMC2208 standalone, команды вида M122 и M906 в нормальной сборке работать не обязаны. Ток драйверов обычно задаётся аппаратно/Vref, а не из прошивки.
1.2. Сделайте резервную информацию
#### Перед любыми действиями желательно:
- Подключиться к принтеру по USB/serial.
- Выполнить:
M503
- Сохранить весь вывод в текстовый файл. Это текущие настройки.
4. Сфотографировать:
- разъёмы платы;
- концевики;
- дисплей;
- провода BLTouch, если есть;
- маркировку STM32.
Если принтер пока работает, полезно также записать:
M92
M203
M201
M205
M301
M304
M851 ; если есть датчик
2. Подготовка компьютера и инструментов
Вам понадобятся:
- VS Code.
- Расширение PlatformIO IDE.
- Архив или git-репозиторий Marlin 2.1.2.1.
4. SD-карта:
- лучше 4–16 ГБ;
- FAT32;
- желательно качественная, не повреждённая.
- USB-кабель с линиями данных, а не только зарядный.
- Драйвер CH340/CH341, если Windows не видит порт.
Установка PlatformIO:
- Откройте VS Code.
- Установите расширение PlatformIO IDE.
- После первого запуска дайте PlatformIO скачать свои пакеты.
3. Где взять Marlin 2.1.2.1
Вариант 1: релиз на GitHub
Скачайте релиз Marlin 2.1.2.1 с официального GitHub:
https://github.com/MarlinFirmware/Marlin/releases
Ищите тег/релиз:
2.1.2.1
Распакуйте архив в удобное место без кириллицы и пробелов, например:
C:\Marlin\Marlin-2.1.2.1
Вариант 2: git
git clone --branch 2.1.2.1 --depth 1 https://github.com/MarlinFirmware/Marlin.git
4. Использовать ли готовый пример конфигурации?
Это самый правильный путь.
В Marlin обычно есть примеры конфигураций:
Marlin/config/examples/
Ищите папку примерно такого вида:
config/examples/Creality/Ender-5 Pro/CrealityV422/
или:
config/examples/Creality/Ender-5 Pro/CrealityV4/
Если такая папка есть:
- Скопируйте из неё
Configuration.hиConfiguration_adv.hв корень папкиMarlin. - Откройте папку
Marlinв VS Code через PlatformIO. - Затем только проверьте и поправьте параметры под вашу ревизию.
Если папки именно под Ender 5 Pro / 4.2.2 нет, можно взять близкую базу:
config/examples/Creality/Ender-3 V2/CrealityV422/
Но тогда обязательно проверить:
- размер стола;
- высоту оси Z;
- концевики;
- направление осей;
- E-steps;
- тип дисплея;
- драйверы;
- термисторы.
5. Настройка platformio.ini
Откройте файл:
platformio.ini
В начале найдите секцию:
[platformio]
Для Creality 4.2.2 с STM32F103RET6 обычно нужно:
[platformio]
default_envs = STM32F103RET6_creality
Если у вас редкая версия с STM32F103RCT6, и в platformio.ini есть окружение STM32F103RCT6_creality, можно использовать его:
[platformio]
default_envs = STM32F103RCT6_creality
Если такого окружения нет, а чип RCT6, лучше уменьшить функциональность прошивки, иначе может не хватить flash.
Важно:
Не оставляйте несколько активных default_envs, если не понимаете, зачем это нужно.
Например, должно быть примерно так:
[platformio]
; default_envs = mega2560
; default_envs = STM32F103RE
default_envs = STM32F103RET6_creality
6. Основные настройки Configuration.h
Ниже — не полная замена файла, а список критичных параметров. Обычно правильнее взять готовый пример и проверить эти пункты.
6.1. Порт и скорость
Для Creality 4.2.2 чаще всего:
#define SERIAL_PORT 1
#define BAUDRATE 115200
Если порт в системе не появляется, но прошивка через SD работает, сначала проверьте:
- кабель USB;
- драйвер CH340;
- другой USB-порт;
- не занят ли порт другой программой.
На очень редких ревизиях может использоваться USB CDC, тогда может понадобиться:
#define SERIAL_PORT -1
Но для типовой Creality 4.2.2 обычно оставляют:
#define SERIAL_PORT 1
6.2. Плата
Для 4.2.2 используйте:
#define MOTHERBOARD BOARD_CREALITY_V422
Если в вашей версии Marlin 2.1.2.1 вдруг нет BOARD_CREALITY_V422, используйте:
#define MOTHERBOARD BOARD_CREALITY_V4
Но в нормальной версии 2.1.2.1 BOARD_CREALITY_V422 обычно есть.
Имя принтера:
#define DEFAULT_MACHINE_NAME "Ender 5 Pro"
или:
#define CUSTOM_MACHINE_NAME "Ender 5 Pro"
зависит от структуры файла.
6.3. Драйверы
Для заводской Creality 4.2.2 с TMC2208 без UART:
#define X_DRIVER_TYPE TMC2208_STANDALONE
#define Y_DRIVER_TYPE TMC2208_STANDALONE
#define Z_DRIVER_TYPE TMC2208_STANDALONE
#define E0_DRIVER_TYPE TMC2208_STANDALONE
Не ставьте просто TMC2208, если не настроен UART. Для 4.2.2 обычно нужен именно вариант TMC2208_STANDALONE.
Если вдруг у вас не тихая версия платы с A4988, тогда было бы:
#define X_DRIVER_TYPE A4988
#define Y_DRIVER_TYPE A4988
#define Z_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE A4988
но для Ender 5 Pro с 4.2.2 это редкость.
6.4. Размеры стола и оси Z
Для Ender 5 Pro:
#define X_BED_SIZE 220
#define Y_BED_SIZE 220
#define Z_MAX_POS 300
Минимальные и максимальные координаты обычно:
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
6.5. Концевики
Для типовой конфигурации:
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
Инверсия концевиков:
#define X_MIN_ENDSTOP_INVERTING false
#define Y_MIN_ENDSTOP_INVERTING false
#define Z_MIN_ENDSTOP_INVERTING false
Но это не догма. Проверка обязательна через M119.
Если после прошивки M119 показывает:
open, когда концевик не нажат;TRIGGERED, когда нажат; то инверсия правильная.
Если наоборот:
TRIGGEREDв отпущенном состоянии;openпри нажатии; меняйте соответствующий..._ENDSTOP_INVERTINGнаtrue.
Если концевик вообще не меняет состояние:
- проверьте разъём;
- проверьте провод;
- проверьте, не подключён ли концевик в другой порт;
- проверьте механику и сам микропереключатель.
6.6. Направление осей
Это один из самых опасных пунктов. Неправильное направление может привести к удару при homing.
Стартовая точка для Ender 5 Pro часто такая:
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
Но из-за ревизий плат, моторов и прошивок значения могут отличаться.
Порядок проверки:
- Не делайте сразу
G28. - Включите принтер.
3. Через меню Move Axis или через команду G91 сделайте маленькое движение:
G91
G1 X10 F600
- Посмотрите, куда поехала ось.
5. Если направление не совпадает с ожидаемым, инвертируйте соответствующий параметр:
#define INVERT_X_DIR true
6. Повторно соберите и прошейте.
То же самое для Y, Z и E. Особенно осторожно с Z: на Ender 5 Pro стол двигается по вертикалии, и неправильное направление может привести к врезанию сопла в стол или к попытке уехать за пределы.
6.7. Направление homing
Если используются MIN-концевики:
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
Если ось при homing едет не к концевику, а от него:
- немедленно выключите питание;
- проверьте направление оси;
- проверьте, какой концевик используется;
- при необходимости измените
HOME_DIRили физическое подключение.
Для некоторых ревизий Ender 5 может быть особенность, что фактически концевик расположен со стороны max, но в прошивке используется логика min. Поэтому проверка M119 и аккуратный первый homing обязательны.
6.8. Шаги на мм
Стартовые значения для Ender 5 Pro часто такие:
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 93 }
Где:
- X: 80 шагов/мм;
- Y: 80 шагов/мм;
- Z: 400 шагов/мм;
- E: 93 шагов/мм.
Но E-steps обязательно калибровать:
- Если у вас direct drive с редуктором, E-steps могут быть гораздо выше, например 130, 415 или другое значение, в зависимости от механики.
- Если Z-винт другой, например single-start T8 с шагом 2 мм, Z-steps могут быть не 400, а 1600. Поэтому калибровка обязательна.
6.9. Скорости и ускорения
Для начала лучше поставить консервативно:
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }
#define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 500 }
#define DEFAULT_ACCELERATION 500
#define DEFAULT_RETRACT_ACCELERATION 500
#define DEFAULT_TRAVEL_ACCELERATION 500
Если используете классический jerk:
#define CLASSIC_JERK
#define DEFAULT_XJERK 8.0
#define DEFAULT_YJERK 8.0
#define DEFAULT_ZJERK 0.4
После стабилизации механики можно постепенно повышать, но для Ender 5 Pro не стоит сразу ставить 500 мм/с и ускорения 3000 мм/с².
6.10. Термисторы и температуры
Для заводского Ender 5 Pro обычно:
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_BED 1
Термистор типа 1 — это обычно 100K NTC.
Ограничения температур:
#define HEATER_0_MAXTEMP 260
#define BED_MAXTEMP 110
Если стоит нестандартный hotend, термистор или all-metal, значения можно менять, но только понимая, что делаете.
Не отключайте термозащиту:
#define THERMAL_PROTECTION_HOTENDS
#define THERMAL_PROTECTION_BED
Эти пункты должны быть включены.
6.11. PID
Включите PID и меню настройки:
#define PIDTEMP
#define PID_EDIT_MENU
#define PID_AUTOTUNE_MENU
Для hotend и bed потом нужно сделать автоподстройку.
Пример команд:
Hotend:
M303 E0 S200 C8
Bed:
M303 E-1 S60 C8
Полученные значения можно применить:
Hotend:
M301 P... I... D...
Bed:
M304 P... I... D...
Затем сохранить:
M500
Стартовые значения можно оставить как есть, но для стабильной температуры лучше выполнить M303.
6.12. EEPROM
Обязательно включите сохранение настроек:
#define EEPROM_SETTINGS
При первой прошивке новой версии полезно временно включить:
#define EEPROM_AUTO_INIT
Это может сбросить старый EEPROM при несовместимости версий. После успешной работы можно оставить или закомментировать.
6.13. Дисплей
Для заводского дисплея Ender 5 Pro чаще всего подходит:
#define CR10_STOCKDISPLAY
Если дисплей с ним не запускается, попробуйте альтернативу:
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
Если у вас вдруг дисплей типа DWIN, как на части Ender-3 V2, может понадобиться:
#define DWIN_CREALITY_LCD
Но для Ender 5 Pro это не типично.
Дополнительно можно включить:
#define SPEAKER
#define INDIVIDUAL_AXIS_HOMING_MENU
6.14. SD-карта
#define SDSUPPORT
Обычно для Creality 4.2.2 этого достаточно, остальное подтянется из pins-файла платы.
6.15. Ручная сетка стола для стока
Если нет BLTouch/CR-Touch, удобно использовать ручную mesh-левелинг:
#define MESH_BED_LEVELING
#define LCD_BED_LEVELING
#define RESTORE_LEVELING_AFTER_G28
#define MESH_INSET 10
#define MESH_NUM_X_POINTS 3
#define MESH_NUM_Y_POINTS 3
Это позволит строить сетку через меню или команды и компенсировать кривизну стола.
7. Настройка Configuration_adv.h
7.1. Микрошаг
Для заводской конфигурации обычно 1/16 микрошага:
#define X_MICROSTEPS 16
#define Y_MICROSTEPS 16
#define Z_MICROSTEPS 16
#define E0_MICROSTEPS 16
Если меняете микрошаг аппаратно или используете внешние драйверы, обязательно пересчитывайте M92.
7.2. Диагностика TMC
Для TMC2208 standalone не нужно включать:
//#define MONITOR_DRIVER_STATUS
//#define TMC_DEBUG
Их можно оставить выключенными. Если вы видите, что M906 или M122 работают как для UART-драйверов, но плата 4.2.2, скорее всего неправильно выбран тип драйвера.
7.3. Фильтр концевиков
Можно добавить защиту от дребезга:
#define ENDSTOP_NOISE_THRESHOLD 2
Этот пункт может быть и в Configuration.h.
7.4. Вентиляторы
Если вентилятор не стартует на низких значениях S, можно добавить:
#define FAN_KICKSTART_TIME 100
#define FAN_MIN_PWM 50
Значения подбираются под конкретный вентилятор. Если вентилятор hotend подключён к управляемому разъёму и останавливается при низком S, лучше либо перевести его на постоянное питание 24 В, либо настроить авто-вентилятор hotend.
7.5. Linear Advance
Для Bowden-стока можно включить, но стартовое значение K поставить безопасное:
#define LIN_ADVANCE
#define LIN_ADVANCE_K 0.0
Потом калибруете K и задаёте его через:
M900 K0.xx
M500
- Для Bowden часто значения лежат примерно в диапазоне 0.2–0.6, но зависит от экструдера, трубки, филамента и ретрактов.
- Для direct drive значения обычно ниже, часто около 0.05–0.25.
7.6. Input Shaping
Опционально, после механики и калибровки:
//#define INPUT_SHAPING_X
//#define INPUT_SHAPING_Y
- Если включаете, нужно задать частоты и демпфирование. Без понимания процесса лучше не включать сразу. Для STM32F103 это работает, но нагружает прерывания.
- Если после включения появляются пропуски или странное поведение, отключите и проверьте механику.
7.7. Буферы serial
Для более стабильной работы по USB можно увеличить буфер:
#define RX_BUFFER_SIZE 1024
Для STM32F103RET6 по RAM обычно нормально.
7.8. Соритровка файлов на SD
Опционально:
#define SDCARD_SORT_ALPHA
#define SDSORT_LIMIT 40
#define SDSORT_USES_RAM
#define SDSORT_CACHE_NAMES
Удобно, но увеличивает потребление RAM/flash. Если не хватает памяти, отключите.
7.9. Print counter
Если нужно сэкономить flash, можно отключить:
//#define PRINTCOUNTER
Если flash достаточно, можно оставить.
8. Пример минимального набора параметров для стока
Это не полный Configuration.h, а ориентир.
#define SERIAL_PORT 1
#define BAUDRATE 115200
#define MOTHERBOARD BOARD_CREALITY_V422
#define DEFAULT_MACHINE_NAME "Ender 5 Pro"
#define X_DRIVER_TYPE TMC2208_STANDALONE
#define Y_DRIVER_TYPE TMC2208_STANDALONE
#define Z_DRIVER_TYPE TMC2208_STANDALONE
#define E0_DRIVER_TYPE TMC2208_STANDALONE
#define X_BED_SIZE 220
#define Y_BED_SIZE 220
#define Z_MAX_POS 300
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
#define X_MIN_ENDSTOP_INVERTING false
#define Y_MIN_ENDSTOP_INVERTING false
#define Z_MIN_ENDSTOP_INVERTING false
// Проверить направление осей до первого G28!
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 93 }
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }
#define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 500 }
#define DEFAULT_ACCELERATION 500
#define DEFAULT_RETRACT_ACCELERATION 500
#define DEFAULT_TRAVEL_ACCELERATION 500
#define CLASSIC_JERK
#define DEFAULT_XJERK 8.0
#define DEFAULT_YJERK 8.0
#define DEFAULT_ZJERK 0.4
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_BED 1
#define HEATER_0_MAXTEMP 260
#define BED_MAXTEMP 110
#define PIDTEMP
#define PID_EDIT_MENU
#define PID_AUTOTUNE_MENU
#define THERMAL_PROTECTION_HOTENDS
#define THERMAL_PROTECTION_BED
#define EEPROM_SETTINGS
//#define EEPROM_AUTO_INIT
#define MESH_BED_LEVELING
#define LCD_BED_LEVELING
#define RESTORE_LEVELING_AFTER_G28
#define MESH_INSET 10
#define MESH_NUM_X_POINTS 3
#define MESH_NUM_Y_POINTS 3
#define CR10_STOCKDISPLAY
#define SDSUPPORT
#define SPEAKER
#define INDIVIDUAL_AXIS_HOMING_MENU
9. Сборка прошивки
Откройте папку Marlin в VS Code.
Внизу слева в PlatformIO нажмите иконку Build или выполните команду:
PlatformIO: Build
Либо в терминале:
pio run
После успешной сборки файл прошивки будет обычно здесь:
.pio/build/STM32F103RET6_creality/firmware.bin
Если окружение другое, путь будет соответствующий.
10. Прошивка через SD-карту
Для Creality 4.2.2 стандартный путь — SD-карта.
10.1. Подготовка карты
- Отформатируйте SD-карту в FAT32.
- Желательно использовать карту не более 16–32 ГБ.
3. Скопируйте в корень:
firmware.bin
Имя важно. Не переименовывайте в marlin.bin, firmware1.bin и т.п., если не проверяете специально.
10.2. Установка
- Выключите принтер.
- Вставьте SD-карту.
- Включите принтер.
- Загрузчик должен подхватить
firmware.binи прошить плату. - После успешной прошивки файл может быть переименован в
firmware.cur.
Если файл остался firmware.bin и принтер каждый раз пытается его прошить:
- выключите принтер;
- удалите или переименуйте
firmware.bin; - включите принтер.
10.3. Если не шьётся
Проверьте:
- SD-карту.
- Формат FAT32.
- Имя файла.
- Другой кардридер.
- Другую SD-карту.
- Правильность окружения сборки.
- Маркировку STM32: RET6 или RCT6.
- Не повреждён ли загрузчик. Для проверки можно попробовать заводской
.binот Creality, если найдёте подходящий для вашей ревизии.
11. Первый запуск после прошивки
11.1. Сброс EEPROM
После первой прошивки желательно:
M502
M500
Это загрузит настройки из прошивки и сохранит их в EEPROM. Если включён EEPROM_AUTO_INIT, это может произойти автоматически.
11.2. Проверка версии
M115
Должно быть видно имя прошивки, например Marlin 2.1.2.1.
11.3. Проверка текущих настроек
M503
Проверьте:
- размер стола;
- шаги;
- температуры;
- концевики;
- ускорения.
11.4. Проверка концевиков
M119
В нормальном состоянии для механических концевиков обычно:
x_min: open
y_min: open
z_min: open
При нажатии должно становиться:
TRIGGERED
Если наоборот — меняйте инверсию в Configuration.h.
11.5. Проверка направлений без homing
Не выполняйте сразу G28.
Пример:
G91
G1 X10 F600
G1 Y10 F600
G1 Z1 F60
Проверьте направление.
Если ось едет не туда, измените:
#define INVERT_X_DIR true
или соответствующую ось, пересоберите и прошейте заново.
Для экструдера:
M83
G1 E10 F100
Если филамент должен подаваться в hotend, а он тянется обратно, измените:
#define INVERT_E0_DIR true
12. Первый homing
Делайте аккуратно, рука рядом с выключателем. Если в меню есть homing по одной оси, лучше начать с X или Y.
Последовательность:
- Проверить
M119. - Убедиться, что каретка находится не вплотную к концевику.
- Выполнить homing одной оси.
- Если ось едет не к концевику — сразу выключить питание.
- Если всё нормально, повторить для других осей.
После полного homing:
G1 X110 Y110 F6000
G1 Z20 F300
Проверьте, что координаты адекватные.
13. Калибровка E-steps
Очень важно, особенно если стоит нестандартный экструдер.
Пример:
M83
G92 E0
G1 E100 F100
Измерьте, сколько фактически прошло филамента. Допустим, прошло 95 мм.
Формула:
новые E-steps = старые E-steps * запрошено / фактически
Если старые были 93:
93 * 100 / 95 = 97.89
Установить:
M92 E97.89
M500
После этого проверить снова.
14. Калибровка XY и Z
14.1. XY
Можно напечатать калибровочный кубик 20×20×20 мм.
Если вместо 20 мм получилось, например, 20.2 мм:
новые X-steps = старые X-steps * 20 / фактический размер
Пример:
M92 X79.21 Y79.21
M500
14.2. Z
Проверьте перемещение Z.
Например:
G28
G90
G1 Z10 F300
G1 Z20 F300
Измерьте реальное перемещение между 10 и 20 мм.
Если вместо 10 мм ось прошла 10.2 мм:
новые Z-steps = старые Z-steps * 10 / 10.2
15. PID hotend и стола
15.1. Hotend
Например, для PLA:
M303 E0 S200 C8
После завершения Marlin выдаст строку вроде:
Kp: xx.xx
Ki: xx.xx
Kd: xx.xx
Применить:
M301 Pxx.xx Ixx.xx Dxx.xx
M500
15.2. Bed
M303 E-1 S60 C8
Применить:
M304 Pxx.xx Ixx.xx Dxx.xx
M500
16. Ручная сетка стола без BLTouch
Если включён MESH_BED_LEVELING, удобнее всего делать через меню:
Prepare
Bed leveling
Level bed
Марлин будет двигать сопло по точкам, а вы будете выставлять зазор листом бумаги или щупом.
После построения сетки:
M500
В стартовом G-code можно использовать:
G28
M420 S1
M420 S1 включает сохранённую mesh-компенсацию. Если сетки нет, M420 S1 выдаст ошибку. Это нормально: сначала постройте и сохраните mesh.
17. Z-offset для стока
Если нет BLTouch/CR-Touch, для заводского Z-концевика основной способ — физическая регулировка самого Z-концевика.
Порядок:
- Выполнить
G28. - Подложить лист бумаги между соплом и столом.
- Отрегулировать винт Z-концевика так, чтобы был лёгкий контакт.
- Проверить первый слой.
- При необходимости немного подрегулировать.
Если включён babystepping, можно временно подстраивать:
M290 Z0.05
M290 Z-0.05
Но для стока без датчика постоянный offset чаще всего удобнее держать именно механикой Z-концевика.
18. Настройка BLTouch / CR-Touch, если есть
Если установлен BLTouch, базовые изменения будут такими.
18.1. В Configuration.h
Отключите ручную mesh, если используете автолевелинг:
//#define MESH_BED_LEVELING
//#define LCD_BED_LEVELING
Включите автолевелинг:
#define AUTO_BED_LEVELING_BILINEAR
Для BLTouch:
#define BLTOUCH
Используйте Z-min как порт датчика:
#define USE_ZMIN_PLUG
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#define USE_PROBE_FOR_Z_HOMING
Инверсия для BLTouch обычно:
#define Z_MIN_PROBE_ENDSTOP_INVERTING true
Для механического концевика обычно false, для BLTouch часто true, но проверка через M119 обязательна.
Офсет датчика:
#define NOZZLE_TO_PROBE_OFFSET { -42, -8, 0 }
Это пример. Реальный офсет нужно измерить для вашего крепления.
Запас по Z:
#define Z_CLEARANCE_DEPLOY_PROBE 10
#define Z_CLEARANCE_BETWEEN_PROBES 5
#define Z_AFTER_PROBING 5
#define Z_HOMING_HEIGHT 4
Безопасный homing по центру:
#define Z_SAFE_HOMING
#define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)
#define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)
Сетка:
#define GRID_MAX_POINTS_X 5
#define GRID_MAX_POINTS_Y 5
#define PROBING_MARGIN 10
#define MULTIPLE_PROBING 2
#define RESTORE_LEVELING_AFTER_G28
18.2. Пины
Обычно в файле платы для Creality 4.2.2 уже есть нужные определения. Не переопределяйте пины без необходимости.
В Marlin для Creality 4.x часто используются:
SERVO0_PIN
Z_MIN_PROBE_PIN
Конкретные номера лучше смотреть в файле:
Marlin/src/pins/stm32f1/pins_CREALITY_V4.h
или аналогичном для вашей версии платы.
Для части Creality 4.2.x встречаются варианты:
#define SERVO0_PIN PB0
и Z-probe на одном из пинов Z-концевика, но это зависит от ревизии и платы.
18.3. Проверка BLTouch
После прошивки:
- Проверьте
M119. - Проверьте деплой/ретракт через меню или
G29. - Проверьте, что датчик реально касается стола.
4. Проверьте офсет:
G28
G1 Z10 F300
Далее опускайте сопло по бумажке и настройте offset:
M851 Z-1.85
M500
Значение -1.85 только для примера.
Потом:
G28
G29
M420 S1
M500
19. Стартовый G-code
Ниже пример для Cura. В PrusaSlicer/SuperSlicer placeholder-ы другие, но логика та же.
19.1. Для ручной mesh без BLTouch
M140 S{material_bed_temperature_layer_0}
M104 S{material_print_temperature_layer_0}
M190 S{material_bed_temperature_layer_0}
M109 S{material_print_temperature_layer_0}
G28
M420 S1
G92 E0
G1 Z2.0 F3000
G1 X0.1 Y20 Z0.3 F5000.0
G1 X0.1 Y200.0 Z0.3 F1500.0 E15
G1 X0.4 Y200.0 Z0.3 F5000.0
G92 E0
G1 Z2.0 F3000
Если mesh не сохранена, M420 S1 будет ошибаться. Тогда сначала постройте и сохраните mesh, либо замените на процесс построения вручную.
19.2. Для BLTouch
Если хотите зондировать каждый раз:
M140 S{material_bed_temperature_layer_0}
M104 S{material_print_temperature_layer_0}
M190 S{material_bed_temperature_layer_0}
M109 S{material_print_temperature_layer_0}
G28
G29
G92 E0
G1 Z2.0 F3000
G1 X0.1 Y20 Z0.3 F5000.0
G1 X0.1 Y200.0 Z0.3 F1500.0 E15
G1 X0.4 Y200.0 Z0.3 F5000.0
G92 E0
G1 Z2.0 F3000
Если используете сохранённую сетку:
G28
M420 S1
вместо G29.
19.3. Финишный G-code
G91
G1 E-3 F300
G1 Z10 F600
G90
G1 X0 Y220 F6000
M104 S0
M140 S0
M84
Если ось Y после homing уезжает в 220 слишком резко, можно уменьшить F или поставить Y210.
20. Рекомендуемый порядок калибровки после прошивки
1. Механика:
- ремни;
- эксцентрики;
- винты;
- протяжка;
- перпендикулярность;
- смазка Z.
2. Проверка осей:
- направления;
- концевики;
- homing.
- E-steps.
- PID hotend и bed.
- Z-offset или регулировка Z-концевика.
- Mesh/ABL.
- Flow.
- Retraction.
- Linear Advance.
- Input Shaping, если нужно и если механика уже хорошая.
21. Типовые проблемы и решения
21.1. Принтер не видит USB-порт
Проверьте:
- кабель с данными;
- другой USB-порт;
- драйвер CH340;
- скорость 115200;
- не занят ли порт OctoPrint/Pronterface/Cura.
Если SD-прошивка работает, а USB нет, можно временно работать через SD. На редких ревизиях может потребоваться изменить SERIAL_PORT.
21.2. firmware.bin не прошивается
Причины:
- SD не FAT32;
- плохая карта;
- неправильное имя файла;
- неправильное окружение сборки;
- чип RCT6, а прошивка слишком большая;
- повреждён загрузчик.
21.3. После прошивки старые настройки мешают
Выполнить:
M502
M500
или включить:
#define EEPROM_AUTO_INIT
21.4. Моторы шумят, но не крутятся
Проверьте:
- тип драйвера: должен быть
TMC2208_STANDALONE; - разъёмы моторов;
- направление;
- enable-логику;
- не слишком ли высокий ток/перегрев драйверов.
21.5. Концевик всегда TRIGGERED
Возможно:
- нужна инверсия;
- провод подключён неправильно;
- концевик NC вместо NO;
- повреждён провод;
- наводки.
Проверка через M119 обязательна.
21.6. При homing ось едет не туда
Немедленно выключить питание.
Проверить:
INVERT_X_DIR,INVERT_Y_DIR,INVERT_Z_DIR;X_HOME_DIR,Y_HOME_DIR,Z_HOME_DIR;- физическое расположение концевиков;
USE_XMIN_PLUG/USE_XMAX_PLUG.
21.7. M906 или M122 работают, а плата 4.2.2
Скорее всего неверно указан драйвер. Для 4.2.2 обычно:
#define X_DRIVER_TYPE TMC2208_STANDALONE
а не:
#define X_DRIVER_TYPE TMC2208
21.8. Сетку не сохраняет
Проверьте:
#define EEPROM_SETTINGS
После G29 выполнить:
M500
Проверить:
M503
M420 S1
21.9. Первый слой слишком высоко/низко
Для стока без датчика:
- регулировать Z-концевик;
- проверить mesh;
- проверить первый слой визуально;
- очистить стол;
- проверить температуру стола.
Для BLTouch:
- проверить
M851; - проверить
NOZZLE_TO_PROBE_OFFSET; - проверить Z clearance;
- выполнить
G28,G29.
21.10. Прошивка не помещается в память
Для RCT6 или при включении тяжёлых функций отключите:
//#define PRINTCOUNTER
//#define SDCARD_SORT_ALPHA
//#define LONG_FILENAME_HOST_SUPPORT
//#define INPUT_SHAPING_X
//#define INPUT_SHAPING_Y
//#define LIN_ADVANCE
//#define S_CURVE_ACCELERATION
Также можно убрать русский язык интерфейса, если он включён:
#define LCD_LANGUAGE en
22. Безопасный минимум для первой печати
После прошивки не пытайтесь сразу печатать на максимальной скорости.
Разумные стартовые значения:
#define DEFAULT_ACCELERATION 500
#define DEFAULT_RETRACT_ACCELERATION 500
#define DEFAULT_TRAVEL_ACCELERATION 500
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }
#define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 500 }
#define DEFAULT_XJERK 8.0
#define DEFAULT_YJERK 8.0
#define DEFAULT_ZJERK 0.4
После успешной тестовой печати можно постепенно повышать.
23. Итоговый чек-лист
Пер сборкой проверьте:
- [ ]
default_envs = STM32F103RET6_creality; - [ ]
MOTHERBOARD BOARD_CREALITY_V422; - [ ] драйверы
TMC2208_STANDALONE; - [ ]
SERIAL_PORT 1; - [ ] стол 220×220, Z 300;
- [ ] термисторы 1 и 1;
- [ ] включён
EEPROM_SETTINGS; - [ ] включён
SDSUPPORT; - [ ] выбран правильный дисплей;
- [ ] для стока включён
MESH_BED_LEVELING; - [ ] для BLTouch настроен
AUTO_BED_LEVELING_BILINEAR,BLTOUCH, offsets; - [ ] размеры прошивки подходят для вашего STM32.
После сборки:
- [ ] сборка прошла без ошибок;
- [ ]
firmware.binскопирован в корень FAT32 SD; - [ ] плата прошилась;
- [ ]
firmware.binудалён/переименован после прошивки; - [ ] выполнен
M502иM500; - [ ]
M119показывает концевики правильно; - [ ] направления осей проверены без
G28; - [ ] homing работает безопасно;
- [ ] E-steps откалиброваны;
- [ ] PID выполнен;
- [ ] Z-offset или Z-концевик настроены;
- [ ] mesh построена и сохранена;
- [ ] тестовая печать прошла нормально.
24. Короткая рекомендация по стабильной конфигурации
Для Ender 5 Pro на Creality 4.2.2 и Marlin 2.1.2.1 я бы рекомендовал такую логику:
- Взять официальный пример конфигурации, если есть.
- Использовать
BOARD_CREALITY_V422. - Использовать
STM32F103RET6_creality. - TMC2208 задать как
TMC2208_STANDALONE.
5. Не включать сразу много функций:
- без Input Shaping;
- без тяжёлого SD-сортирования;
- без print counter, если не нужен;
- без русского языка, если flash впритык.
- Сначала добиться стабильного homing, движения осей, температур и первого слоя.
- Только потом добавить Linear Advance, Input Shaping, расширенные меню и сетку 5×5.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.