Прошивка Marlin 2.1: Зачем обновлять и как это сделать самостоятельно

В этой статье подробно расскажем, зачем обновлять прошивку Marlin до версии 2.1 и как сделать это самостоятельно. Пошаговое руководство охватит проверку совместимости плат, резервное копирование настроек, правку Configuration.h, сборку в VSCode с PlatformIO, прошивку разными методами и последующую калибровку. В конце — FAQ и практические советы для безопасного апгрейда домашнего 3D‑принтера.

Что такое Marlin 2.1 и почему это важно

Если 3D‑принтер — это тело, то прошивка — его мозг и нервная система. Это программное обеспечение, которое живёт на маленьком чипе материнской платы и управляет абсолютно всем. Когда ваш слайсер создаёт G‑code файл, он просто пишет набор инструкций. Прошивка читает эти инструкции и преобразует их в электрические сигналы. Именно она говорит шаговым моторам, на какой угол повернуться, нагревателю — до какой температуры разогреться, а вентилятору — когда включиться. Без прошивки ваш 3D‑принтер — это просто набор железа и проводов.

Marlin — это самая популярная прошивка с открытым исходным кодом для FDM 3D‑принтеров. Она стала стандартом для большинства домашних и полупрофессиональных устройств. Её главная задача — точно и согласованно управлять всеми компонентами. Прошивка контролирует движение по осям X, Y и Z, подачу пластика, поддерживает температуру сопла и стола с точностью до градуса, а также считывает показания с концевых выключателей, чтобы принтер знал свои границы. Важнейшая её часть — планировщик движений. Он просчитывает ускорения и замедления, чтобы печатающая головка двигалась плавно, без рывков, что напрямую влияет на качество печати.

Релиз Marlin 2.1 стал важной вехой, закрепив переход индустрии на 32‑битные контроллеры. Если раньше 8‑битные платы были нормой, то сегодня почти все новые принтеры оснащаются более мощными процессорами. Marlin 2.1 полностью раскрывает их потенциал, обеспечивая более быструю обработку команд, плавные движения и возможность использовать сложные функции без замедлений. Для домашних пользователей это означает, что даже недорогой современный принтер может работать стабильнее и точнее, чем флагманы прошлых лет.

Конечно, существует и альтернатива, например, Klipper. Основное отличие для домашнего мастера заключается в архитектуре. Marlin выполняет все вычисления на плате самого принтера. Это просто и надёжно. Klipper же переносит основную вычислительную нагрузку на отдельное устройство, обычно одноплатный компьютер вроде Raspberry Pi, оставляя плате принтера лишь исполнение низкоуровневых команд. Это позволяет достичь очень высоких скоростей печати и использовать продвинутые алгоритмы, такие как Input Shaping для компенсации вибраций. Но Klipper требует более сложной настройки и дополнительного оборудования. Для большинства пользователей мощности Marlin 2.1 на 32‑битной плате более чем достаточно для получения отличных результатов без лишних сложностей.

Прежде чем что‑то менять, всегда стоит обращаться к первоисточнику. Всю официальную информацию, списки изменений (release notes) и данные о совместимости лучше всего проверять напрямую в официальном репозитории Marlin на GitHub. Там вы найдёте самые свежие версии и исчерпывающую документацию от разработчиков.

Обновление прошивки — это как обновление операционной системы на компьютере. Оно несёт как преимущества, так и риски. Главное преимущество — поддержка нового оборудования. Представьте, вы решили заменить шумные драйверы шаговых моторов на тихие TMC2209 или установили новую материнскую плату SKR. Старая прошивка просто не будет знать, как с ними работать. Обновление до Marlin 2.1 добавит необходимую поддержку. Другой важный аспект — исправления ошибок и улучшение стабильности. Если у вас случаются необъяснимые сбои или принтер ведёт себя странно, вполне возможно, что в новой версии прошивки эта проблема уже решена. Улучшения в алгоритмах безопасности, например, в защите от перегрева (Thermal Runaway Protection), делают принтер надёжнее и снижают риск возгорания.

Однако риски тоже существуют. Неправильно выполненный процесс прошивки может превратить материнскую плату в бесполезный «кирпич». Ошибки в конфигурации могут привести к неадекватному поведению принтера, например, он может попытаться выехать за пределы своих осей. Иногда в новых версиях появляются регрессии, когда исправленная ранее ошибка возвращается или ломается то, что работало стабильно. Именно поэтому важно подходить к обновлению подготовленным, делать резервные копии и тщательно тестировать работу принтера после прошивки, начиная с базовых движений «на холодную».

Преимущества обновления до Marlin 2.1

Многих пользователей устраивает их принтер “из коробки”. Если он печатает, то зачем что‑то менять? Этот подход имеет право на жизнь, но обновление прошивки до Marlin 2.1 можно сравнить с переходом со старого кнопочного телефона на современный смартфон. Звонить можно было и раньше, но новые возможности кардинально меняют опыт использования. Переход на свежую версию Marlin даёт конкретные, ощутимые преимущества в качестве печати, надёжности и совместимости с новым оборудованием.

Основная причина для обновления, с которой сталкиваются многие, это поддержка нового “железа”. Мир 3D‑печати не стоит на месте. Появляются новые, более производительные 32‑битные платы управления (например, от BigTreeTech или MKS) и “умные” драйверы шаговых моторов, такие как популярные TMC2209. Старые версии прошивки просто не умеют работать с этим оборудованием. Установив Marlin 2.1, вы получаете:

  • Совместимость с 32‑битными процессорами. Это не просто цифры. Мощный процессор обрабатывает команды быстрее, что позволяет печатать на более высоких скоростях без потери качества, особенно на моделях со сложной геометрией. Движения становятся более плавными, а риск “заиканий” принтера на кривых линиях сводится к нулю.
  • Полная поддержка драйверов TMC. С новой прошивкой вы сможете использовать все прелести этих драйверов. Режим StealthChop сделает ваш принтер практически бесшумным, а StallGuard позволит настроить парковку по осям без физических концевиков. Это не только тишина в доме, но и повышение точности позиционирования.

Следующий важный аспект — качество печати и оптимизация движения. Marlin 2.1 включает в себя усовершенствованные алгоритмы планирования движений. Вместо устаревшей системы “jerk” (рывок) теперь по умолчанию используется Junction Deviation, которая обеспечивает более плавное прохождение углов. На практике это означает уменьшение вибраций и, как следствие, снижение эффекта “эха” или “звона” (ghosting) на стенках моделей. Но настоящим прорывом для многих становится функция Linear Advance. Она интеллектуально управляет давлением пластика в сопле, предотвращая появление “капель” в начале линий и истончения в конце. Результат — идеально ровные углы и равномерная ширина линий даже при изменении скорости печати.

Надёжность и безопасность — это то, о чём не думаешь, пока не столкнёшься с проблемой. В Marlin 2.1 этим аспектам уделили особое внимание. Улучшены алгоритмы управления нагревом и защиты от нештатных ситуаций. Например, функция Thermal Runaway Protection стала ещё более чувствительной. Если термистор хотэнда или стола выйдет из строя, прошивка мгновенно отключит нагреватели, предотвращая перегрев и потенциальное возгорание. Для тех, кто оставляет принтер печатать на ночь, это критически важная функция. Кроме того, улучшенный алгоритм PID‑калибровки позволяет поддерживать температуру с минимальными колебаниями. Это напрямую влияет на спекаемость слоёв и прочность детали, особенно при длительных многочасовых печатях.

Наконец, Marlin 2.1 предлагает гораздо более гибкую настройку калибровки стола. Поддержка датчиков автоуровня, таких как BLTouch или индуктивных зондов, была значительно улучшена. Процесс калибровки стал стабильнее и точнее. Появились продвинутые режимы, например Unified Bed Leveling (UBL). Он позволяет создать подробную сетку высот стола, сохранить её и использовать для компенсации любых неровностей. На практике это означает, что вы тратите меньше времени на настройку перед печатью и получаете идеальный первый слой раз за разом.

Однако важно понимать, что обновление не всегда проходит гладко. Иногда в новых версиях появляются так называемые регрессии — ошибки, которых не было в предыдущих релизах. Какая‑то привычная функция может начать работать иначе или вовсе перестать функционировать на вашей конкретной конфигурации. Именно поэтому ключевым этапом после прошивки является тщательное тестирование. Не стоит сразу запускать 20‑часовую печать. Проверьте базовые вещи: корректность парковки, движение по всем осям, работу нагревателей и экструдера. Напечатайте несколько тестовых моделей, чтобы убедиться, что все системы работают как надо. Только после этого можно считать обновление успешным.

Совместимость плат и предварительная проверка перед обновлением

Прежде чем бросаться в бой с компилятором, давайте проведём полную ревизию нашего принтера. Обновление прошивки это как операция на открытом сердце. Вы же не хотите обнаружить, что у пациента проблемы с давлением прямо на операционном столе? Правильная подготовка это 90% успеха. Наша задача убедиться, что железо полностью исправно и мы точно знаем, с чем имеем дело.

Аппаратный чек‑лист: что у нас под капотом?

Первым делом нужно познакомиться с «мозгом» вашего принтера, то есть с его материнской платой. От её типа зависит весь дальнейший процесс.

  • Определяем тип платы и процессора. Откройте корпус, где спрятана электроника. На самой плате обычно есть маркировка, например, Creality V4.2.2 или SKR MINI E3 V3.0. Самое важное это процессор. Большие квадратные чипы с множеством ножек это, скорее всего, 32‑битные ARM‑процессоры (STM32, LPC). Длинные прямоугольные, как на старых платах Anet A8 или Ender 3, это 8‑битные AVR (например, ATmega1284P). Marlin 2.1 работает на обоих типах, но процесс компиляции и доступные функции будут отличаться. 32‑битные платы мощнее и позволяют использовать больше современных «фишек» без тормозов.
  • Проверяем наличие загрузчика (bootloader). Загрузчик это крошечная программа, которая позволяет прошивать плату через обычный USB‑кабель. Почти все современные 32‑битные платы и многие 8‑битные (например, от Creality) поставляются с ним. Проверить просто. Подключите принтер к компьютеру. Если в системе появился новый COM‑порт, значит, загрузчик на месте. Если нет, особенно на старых 8‑битных платах, его придётся прошивать отдельно с помощью программатора.
  • Выясняем способ прошивки. Он напрямую зависит от платы.
    • USB‑кабель. Самый частый способ для плат с загрузчиком.
    • SD‑карта. Многие 32‑битные платы (например, вся линейка SKR) обновляются так. Вы просто копируете файл firmware.bin на карту памяти, вставляете в принтер и включаете его.
    • DFU или ST‑Link. Это специальные режимы для прошивки STM32‑процессоров, которые могут понадобиться для восстановления платы после неудачного обновления. Требуют дополнительного оборудования, например, программатора ST‑Link.
  • Изучаем драйверы и питание. Посмотрите, какие драйверы шаговых моторов установлены на плате. Это могут быть тихие и умные TMC2208/2209 или более простые A4988. Новая прошивка позволит тонко настроить драйверы TMC, но для этого нужно точно знать их модель. Также убедитесь, что ваш блок питания стабилен. Мультиметром проверьте напряжение на его выходе. Оно должно быть стабильным (обычно 12В или 24В) и не проседать под нагрузкой.

Программный аудит: сохраняем всё ценное

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

Подключите принтер к компьютеру и откройте любую терминальную программу, которая умеет работать с COM‑портами. Подойдут Pronterface, Repetier‑Host или встроенный терминал в OctoPrint.

Отправьте команду `M503`. Принтер в ответ выдаст длинный список всех своих текущих настроек. Это самое ценное, что у вас есть. Здесь хранятся:

  • Шаги на миллиметр (e‑steps). Значения для осей X, Y, Z и, что особенно важно, для экструдера.
  • Настройки PID. Коэффициенты для точного поддержания температуры хотэнда и стола.
  • Ускорения и рывки (jerk/junction deviation). Параметры, влияющие на скорость и качество печати.
  • Данные калибровки стола. Если вы используете автоуровень (ABL/UBL), здесь будет сохранена карта высот вашего стола.

Скопируйте весь вывод команды `M503` и сохраните его в текстовый файл с понятным названием, например, `ender3_backup_settings_2025-10-30.txt`. Этот файл станет вашей шпаргалкой при настройке новой прошивки. Команды `M500` (сохранить в память) и `M501` (загрузить из памяти) пригодятся уже после обновления, а сейчас наша главная задача сохранить всё в надёжном месте за пределами принтера.

Физический осмотр: устраняем скрытые угрозы

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

Перед обновлением обязательно проверьте физическое состояние принтера. Это вопрос не только качества печати, но и вашей безопасности.

  1. Разъёмы. Пошевелите все коннекторы на плате, особенно силовые от блока питания, нагревателей стола и хотэнда. Они должны сидеть плотно. Обугленный или потемневший разъём это сигнал к немедленной замене.
  2. Провода. Осмотрите провода, идущие к термисторам и нагревателям. Они постоянно двигаются, и со временем изоляция может перетереться. Повреждённый провод термистора может привести к ошибке `THERMAL RUNAWAY` и пожару.
  3. Механика. Убедитесь, что ремни натянуты, ролики не болтаются, а все оси движутся плавно без заеданий.

Для этих проверок вам пригодятся простые инструменты. Мультиметр поможет проверить напряжение и целостность проводов. Набор отвёрток и шестигранников нужен для доступа к электронике и механике. Для сложных случаев, вроде прошивки загрузчика, может понадобиться USB‑TTL адаптер или программатор ST‑Link, но для большинства современных принтеров они не требуются.

Подготовка программного окружения и резервных копий

После того как мы убедились в совместимости платы и сохранили все важные параметры, наступает самый ответственный этап. Это подготовка программной среды и создание надёжных резервных копий. Пропуск этого шага может превратить увлекательный процесс обновления в настоящую головную боль с неработающим принтером. Давайте разложим всё по полочкам, чтобы обновление прошло гладко и безопасно.

Получаем исходный код Marlin

Первым делом нам нужен сам код прошивки. Marlin — проект с открытым исходным кодом, и все его версии хранятся на GitHub. Для работы с ним нам понадобится система контроля версий Git. Если у вас её нет, установите с официального сайта. Процесс стандартный для вашей операционной системы.

Теперь откройте терминал или командную строку и создайте папку для проекта, например, 3D_Firmware. Перейдите в неё и выполните команду для клонирования репозитория:

git clone https://github.com/MarlinFirmware/Marlin.git

Эта команда скачает последнюю, самую свежую, но потенциально нестабильную версию прошивки. Для домашнего использования лучше выбрать последний официальный релиз. Перейдите в скачанную папку Marlin и выполните команду, чтобы посмотреть все доступные версии (теги): git tag. Выберите последнюю стабильную версию, например 2.1.2.2, и переключитесь на неё:

git checkout 2.1.2.2

Теперь у вас есть чистая копия исходного кода стабильной версии Marlin 2.1.

Настройка среды для компиляции

Современный стандарт для работы с Marlin — это редактор кода Visual Studio Code с расширением PlatformIO IDE. Этот дуэт берёт на себя всю рутину по установке нужных компиляторов и библиотек для вашей платы. Это намного удобнее, чем старый способ с Arduino IDE.

Пошаговая настройка выглядит так:

  1. Установите Visual Studio Code (VSCode) с официального сайта.
  2. Запустите VSCode, перейдите в раздел расширений (значок с кубиками на панели слева).
  3. В поиске введите PlatformIO IDE и нажмите «Установить». Установка может занять несколько минут.
  4. После установки перезапустите VSCode. У вас появится иконка PlatformIO (голова инопланетянина) на боковой панели.
  5. Откройте папку с исходниками Marlin через меню File > Open Folder… и выберите вашу папку Marlin. PlatformIO автоматически распознает проект.

Для владельцев старых 8-битных плат на базе AVR (например, Arduino Mega 2560) всё ещё можно использовать Arduino IDE. Но этот путь сложнее, так как придётся вручную искать и устанавливать все необходимые библиотеки (например, U8glib для дисплеев). PlatformIO делает это автоматически, поэтому я настоятельно рекомендую его даже для 8-битных плат.

Создание полной резервной копии

Прежде чем мы изменим хотя бы одну строчку кода, нужно создать полный бэкап. Это ваша страховка на случай, если что-то пойдёт не так.

  • Настройки EEPROM. В предыдущей главе мы получили их командой M503. Теперь сохраните этот вывод в текстовый файл, например, eeprom_backup.txt. Это ваш справочник по всем калибровкам.
  • Оригинальная прошивка. Если у вас есть файл заводской прошивки (часто лежит на SD-карте, которая шла с принтером, под именем firmware.bin), обязательно сохраните его в надёжном месте. Если его нет, к сожалению, вернуться к заводскому состоянию будет невозможно.
  • Конфигурационные файлы. Скопируйте два самых важных файла из папки Marlin — Configuration.h и Configuration_adv.h — в отдельную папку для бэкапа. Это основа вашей будущей настройки.
  • Отслеживание изменений через Git. Это продвинутый, но очень удобный способ. После того как вы скопировали исходники, создайте свою ветку для изменений. Это позволит вам легко отслеживать все правки и при необходимости откатываться.
    git checkout -b my_printer_config

    Теперь все ваши изменения будут в отдельной ветке, не затрагивая оригинальный код.

Подготовка к настройке

Теперь, когда среда готова и бэкапы сделаны, можно приступать к настройке. Откройте файл platformio.ini в корне проекта. Найдите строку default_envs и укажите в ней код вашей платы. Например, для SKR MINI E3 V3.0 это будет STM32G0B1RE_btt. Этот код говорит PlatformIO, для какого именно микроконтроллера собирать прошивку. Найти нужный код можно в файле boards.h или в документации к вашей плате.

Основные изменения вы будете вносить в файлы Marlin/Configuration.h и Marlin/Configuration_adv.h. Первый содержит базовые параметры (тип платы, размеры стола, термисторы), второй — продвинутые (настройки драйверов, Linear Advance, тонкости калибровки). А где искать файлы с распиновкой (pins)? Они лежат в папке Marlin/src/pins/, сгруппированные по архитектуре процессора. Например, для плат на STM32 путь будет Marlin/src/pins/stm32g0/. Обычно вам не нужно их редактировать, достаточно правильно указать плату в Configuration.h.

Теперь можно попробовать скомпилировать прошивку с настройками по умолчанию, чтобы проверить, что среда работает корректно. Для этого в терминале VSCode выполните команду, подставив свой env:

pio run -e STM32G0B1RE_btt

Если в конце вы увидите зелёную надпись SUCCESS, значит, всё готово к детальной настройке и последующей прошивке, о которой мы поговорим в следующей главе.

Пошаговая прошивка и проверка работоспособности после обновления

Итак, программное обеспечение настроено, резервные копии созданы, а конфигурационные файлы ждут своего часа. Настало время самого ответственного этапа – сборки и загрузки прошивки в плату вашего 3D-принтера. Этот процесс требует внимательности, но если следовать инструкции, всё пройдёт гладко.

Подготовка конфигурации и компиляция

Первым делом убедимся, что среда сборки знает, для какой именно платы мы готовим прошивку. Откройте файл platformio.ini в корне проекта. Найдите строку default_envs и укажите в ней название вашей среды. Например, для платы SKR MINI E3 V3.0 это будет STM32G0B1RE_btt.

Теперь вернёмся к файлам Configuration.h и Configuration_adv.h. Проверим самые важные параметры перед сборкой:

  • Тип термисторов. Убедитесь, что значения для TEMP_SENSOR_0 (хотэнд) и TEMP_SENSOR_BED (стол) соответствуют вашему оборудованию. Неправильный тип термистора – одна из главных причин ошибок MINTEMP/MAXTEMP.
  • Драйверы шаговых двигателей. Задайте типы драйверов для каждой оси (X_DRIVER_TYPE, Y_DRIVER_TYPE и так далее). Для популярных TMC2209 это будет выглядеть так: #define X_DRIVER_TYPE TMC2209.
  • Размеры стола и положение концевиков. Проверьте параметры X_BED_SIZE, Y_BED_SIZE и убедитесь, что направления парковки (X_HOME_DIR, Y_HOME_DIR, Z_HOME_DIR) установлены верно (-1 для минимума, +1 для максимума).

Когда всё готово, запускаем компиляцию. В Visual Studio Code с плагином PlatformIO достаточно нажать на значок галочки (Build) на синей панели внизу. Процесс займёт от нескольких секунд до пары минут. Успешная сборка завершится зелёной надписью SUCCESS в окне терминала. Если возникла ошибка, терминал подсветит её красным и укажет на проблемную строку в коде. Чаще всего это синтаксические ошибки (забыли точку с запятой) или несовместимые параметры.

Загрузка прошивки в плату

Способ загрузки зависит от типа вашей платы.

  1. USB-загрузка (для плат AVR, как Arduino Mega). Это самый простой способ. После успешной сборки нажмите на значок стрелки (Upload) на панели PlatformIO. Прошивка будет загружена автоматически.
  2. Через SD-карту (для большинства 32-битных плат, например, SKR). После компиляции в папке проекта появится директория .pio/build/НАЗВАНИЕ_ВАШЕЙ_СРЕДЫ/. Внутри неё найдите файл firmware.bin. Скопируйте его на пустую SD-карту, вставьте в выключенный принтер и включите питание. Плата сама обнаружит файл и прошьётся, после чего переименует его в FIRMWARE.CUR.
  3. DFU или ST-Link (для STM32). Это более сложные методы, которые обычно нужны для восстановления «окирпиченной» платы. Они требуют перевода платы в специальный режим (часто с помощью перемычки) и использования утилит вроде dfu-util или программатора ST-Link.

Первый запуск и проверка

Вот и настал волнующий момент. Включаем принтер. Первое, что вы должны увидеть, – это заставка Marlin 2.1 на экране. Если экран не работает или показывает артефакты, скорее всего, в конфигурации выбран неверный тип дисплея.

Подключитесь к принтеру через терминал (Pronterface, OctoPrint). Отправьте команду M503. Она выведет все текущие настройки, которые «зашиты» в прошивку. Важно: это ещё не настройки из памяти EEPROM. Чтобы очистить старые значения и применить новые, выполните последовательность команд:

  • M502 – сбрасывает активные настройки до значений по умолчанию из прошивки.
  • M500 – сохраняет текущие (уже сброшенные) настройки в EEPROM.
  • M501 – загружает настройки из EEPROM, чтобы убедиться, что всё сохранилось.

Теперь можно приступать к первичной калибровке. Обязательно выполните PID-калибровку нагревателей командой M303 E0 S210 C8 U1 для хотэнда и M303 E-1 S60 C8 U1 для стола, не забывая сохранять результат через M500. Проверьте направления движения моторов, работу концевиков (команда M119) и откалибруйте шаги экструдера (e-steps).

Диагностика частых проблем

Если что-то пошло не так, не паникуйте. Вот самые частые проблемы после прошивки:

  • Ошибка MINTEMP или MAXTEMP. Принтер пищит и останавливается. Причина: неверно указан тип термистора или обрыв в его цепи. Решение: проверьте подключение датчика и значение TEMP_SENSOR в Configuration.h.
  • Ошибка THERMAL RUNAWAY. Нагрев остановлен из соображений безопасности. Причина: система не может достичь или удержать заданную температуру. Решение: проверьте надёжность крепления термистора и нагревателя, выполните PID-калибровку.
  • Моторы движутся не в ту сторону или гудят. Причина: неверно задано направление движения или перепутаны пины. Решение: инвертируйте направление для нужной оси в Configuration.h (например, INVERT_X_DIR true) или проверьте, правильно ли выбрана плата (параметр MOTHERBOARD).

Аккуратная пошаговая проверка поможет быстро выявить и устранить большинство проблем, связанных с обновлением прошивки.

Часто задаваемые вопросы

Нужно ли обновляться, если всё и так работает?

Это, пожалуй, самый главный вопрос. Если ваш принтер печатает идеально и полностью вас устраивает, то срочной необходимости в обновлении нет. Правило «работает — не трогай» здесь вполне уместно. Однако, обновление до Marlin 2.1 может быть полезным в нескольких случаях.

  • Безопасность. Новые версии содержат важные исправления, например, в алгоритмах защиты от перегрева (Thermal Runaway Protection). Это делает принтер безопаснее, особенно при долгой печати без присмотра.
  • Новые функции. Вы хотите использовать новые возможности, такие как Linear Advance для более ровных углов или Input Shaping для уменьшения эха на моделях. Многие из этих функций лучше реализованы именно в свежих версиях.
  • Поддержка нового оборудования. Если вы планируете установить новую плату управления, тихие драйверы TMC, датчик автоуровня (BLTouch) или другой апгрейд, вам почти наверняка понадобится свежая прошивка с поддержкой этих компонентов.
  • Исправление ошибок. Возможно, в вашей старой прошивке есть мелкие баги, которые вы даже не замечали, но они влияли на качество печати. В новых релизах их исправляют.

Краткий итог: обновляйтесь, если вам нужна новая функциональность, повышенная безопасность или поддержка нового железа. В остальных случаях можно оставаться на стабильной старой версии.

Как избежать «кирпича» и как откатиться?

Превратить плату в «кирпич» при прошивке Marlin довольно сложно, но неприятности случаются. Обычно это не фатально и всё можно исправить. Главное — подготовка.

Чтобы избежать проблем:

  1. Сделайте резервные копии. Перед любыми действиями сохраните вашу текущую, рабочую конфигурацию (файлы Configuration.h и Configuration_adv.h) и скомпилированный бинарник (файл firmware.bin), если он у вас есть.
  2. Сохраните настройки EEPROM. Подключитесь к принтеру через терминал и выполните команду M503. Скопируйте весь вывод в текстовый файл. Эти значения помогут вам быстро восстановить калибровки.
  3. Проверьте правильность платы. Убедитесь, что в файле platformio.ini в строке default_envs указана именно ваша плата. Ошибка здесь — самая частая причина неудачной прошивки.

Если что-то пошло не так (откат):

Если после прошивки принтер не включается, экран пустой или он ведёт себя неадекватно, не паникуйте. «Откатиться» назад просто. Вам нужно прошить старую, рабочую версию прошивки. Если вы сохранили бинарный файл firmware.bin, просто загрузите его на SD-карту (для плат STM32) или прошейте через USB с помощью PlatformIO или Avrdude, как делали это раньше. После этого можно будет восстановить настройки EEPROM из сохранённого файла.

Как найти правильную плату и `env`?

Правильное определение платы (board) и среды компиляции (environment, или `env`) — ключ к успеху. Вот как это сделать:

  • Осмотрите плату. На самой плате обычно написана её модель, например, BIGTREETECH SKR mini E3 V3.0.
  • Загляните в документацию Marlin. В исходном коде Marlin есть файл Marlin/src/pins/pins.h. В нём можно найти список поддерживаемых плат и соответствующие им идентификаторы.
  • Используйте поиск. Откройте файл platformio.ini в корне проекта Marlin и используйте поиск (Ctrl+F), чтобы найти название своей платы. Рядом с ним будет указано имя `env`, например, [env:BIGTREE_SKR_MINI_E3_V3_0]. Именно это имя нужно вписать в default_envs.
  • Обратитесь к производителю. Если сомневаетесь, зайдите на GitHub-страницу или форум производителя вашей платы. Там часто выкладывают готовые конфигурации и указывают правильное `env` для Marlin.

Какие команды использовать для сохранения и восстановления настроек EEPROM?

EEPROM — это энергонезависимая память в микроконтроллере, где хранятся ваши калибровки (PID, шаги/мм, и т.д.). Управлять ими можно с помощью G-code команд.

  • M503 — Показать текущие настройки, сохранённые в оперативной памяти. Используйте её, чтобы сделать бэкап перед прошивкой.
  • M502 — Сбросить все настройки до значений, прописанных в прошивке (в файлах конфигурации). Полезна после первого запуска новой прошивки, чтобы очистить память от старых «хвостов».
  • M500 — Сохранить текущие настройки из оперативной памяти в EEPROM. Эту команду нужно выполнить после M502 или после калибровки (например, PID-тюнинга).
  • M501 — Загрузить настройки из EEPROM в оперативную память. Принтер делает это автоматически при включении.

Типичный сценарий после прошивки: сначала M502 для сброса, затем M500 для сохранения чистых настроек по умолчанию.

Что делать при ошибке компиляции?

Красные строчки в терминале VSCode — не повод для паники. В 99% случаев ошибка легко исправляется. Внимательно прочитайте сообщение об ошибке в самом конце лога компиляции. Чаще всего проблемы бывают такими:

  • Опечатка в конфигурации. Вы случайно удалили скобку, точку с запятой или поставили лишний символ в Configuration.h.
  • Несовместимые параметры. Вы включили две взаимоисключающие функции. Например, два разных типа датчиков автоуровня. В тексте ошибки обычно указывается, какие именно опции конфликтуют.
  • Неправильно выбрана среда (`env`). Компилятор не может найти нужные файлы для вашей платы. Перепроверьте значение default_envs в platformio.ini.

Если не можете разобраться сами, скопируйте полный текст ошибки и поищите его в интернете. Скорее всего, кто-то уже сталкивался с подобной проблемой. Хороший ресурс для поиска решений — официальный репозиторий Marlin на GitHub в разделе «Issues».

Как прошить SKR/STM32/AVR по шагам?

Процесс немного отличается в зависимости от архитектуры платы. Вот краткая памятка.

  • Платы на STM32 (например, серия SKR):
    1. Скомпилируйте прошивку в PlatformIO.
    2. Найдите файл firmware.bin в папке проекта .pio/build/<ваша_env>/.
    3. Скопируйте его на SD-карту.
    4. Вставьте карту в выключенный принтер и включите его. Прошивка займёт несколько секунд. Файл на карте будет переименован в firmware.CUR.
  • Платы на AVR (например, Arduino Mega 2560 в Creality Ender 3):
    1. Подключите принтер к компьютеру по USB.
    2. Убедитесь, что в platformio.ini правильно указан `upload_port` (если требуется).
    3. Выполните в терминале PlatformIO команду:
      pio run -e <ваша_env> -t upload
    4. Дождитесь завершения процесса.

Для более сложных случаев, например, восстановления платы через DFU режим, могут понадобиться утилиты `dfu-util` или программатор ST-Link, но в стандартных ситуациях они не требуются.

Нужно ли повторно калибровать PID и e-steps?

Да, обязательно. После обновления прошивки и сброса настроек командой M502 все ваши старые калибровки будут стёрты. Их нужно провести заново.

  • Калибровка PID. Для хотэнда выполните команду M303 E0 S210 C8 (где S210 — ваша типичная температура печати). После завершения введите полученные значения Kp, Ki, Kd командой M301 и сохраните через M500. Аналогично для стола, если у вас есть PID-управление им (M303 E-1 S60 C8).
  • Калибровка шагов экструдера (e-steps). Процедура не меняется. Отмерьте 100 мм филамента, дайте команду на экструзию 100 мм, измерьте реальную длину и скорректируйте значение шагов через меню принтера или командой M92 E<новое_значение>, после чего сохраните результат через M500.

Эти две калибровки критически важны для качества печати и стабильной работы принтера, не пренебрегайте ими.

Выводы и практические рекомендации

Мы прошли большой путь от решения обновиться до финальной калибровки принтера. Теперь давайте соберём всё воедино, чтобы процесс прошивки стал для вас понятным и безопасным ритуалом, а не источником стресса. Главное правило здесь, как у врачей, – не навреди. А для этого нужна система и аккуратность.

Ключевые шаги и правила безопасности

Если свести весь процесс к нескольким заповедям, то они будут звучать так:

  1. Резервируйте всё. Всегда создавайте резервные копии старой прошивки, конфигурационных файлов и настроек EEPROM. Это ваша единственная надёжная страховка.
  2. Действуйте поэтапно. Не пытайтесь обновить всё и сразу. Новая плата, новые драйверы и новая прошивка вместе – это рецепт катастрофы, в которой будет невозможно найти виновного. Одно крупное изменение за раз.
  3. Тестируйте на холодную. Первые проверки после прошивки всегда проводите без нагрева стола и хотэнда. Убедитесь, что оси движутся правильно, а концевики срабатывают. Это убережёт механику принтера от повреждений.
  4. Ведите учёт изменений. Сохраняйте рабочие конфигурации. Использование системы контроля версий, например Git, для ваших файлов Configuration.h и Configuration_adv.h – это высший пилотаж, который сэкономит вам часы поиска ошибок.

Понятный чек-лист для обновления

Чтобы ничего не упустить, следуйте этому простому плану на каждом этапе.

Перед прошивкой

  • Сохраните текущие настройки из EEPROM. Подключитесь к принтеру и выполните команду
    M503

    , а результат скопируйте в текстовый файл.

  • Сделайте полную резервную копию папки с вашей старой, рабочей прошивкой. Если у вас есть скомпилированный файл .bin, сохраните и его.
  • Скачайте свежую версию Marlin с официального репозитория.
  • Подготовьте новую конфигурацию, аккуратно перенося настройки из старых файлов Configuration.h и Configuration_adv.h в новые.
  • Дважды проверьте в platformio.ini, что параметр default_envs соответствует вашей плате управления.

Во время прошивки

  • Обеспечьте стабильное питание для компьютера и 3D-принтера. Любое прерывание может привести к сбою.
  • Не используйте длинные или некачественные USB-кабели.
  • Внимательно следите за сообщениями в консоли PlatformIO. Успешная компиляция и загрузка должны завершиться сообщением SUCCESS.
  • Не паникуйте, если процесс занимает несколько минут. Это нормально.

После прошивки

  • Сразу после первого запуска сбросьте настройки EEPROM командой
    M502

    , а затем сохраните их командой

    M500

    . Это очистит память от остатков старой конфигурации.

  • Проверьте базовую работоспособность. Убедитесь, что принтер откликается на команды, а на экране отображается правильная версия прошивки.
  • Проведите «холодные» тесты. Проверьте движение по всем осям, работу концевиков и функцию парковки (Home).
  • Выполните калибровку PID нагревателей стола и хотэнда.
  • Откалибруйте шаги экструдера (E-steps) и проверьте точность подачи пластика.
  • Запустите тестовую печать на небольшой модели, внимательно наблюдая за поведением принтера.

Когда лучше не обновляться?

Иногда лучшее действие – это бездействие. Если ваш принтер стабильно работает, выполняет все поставленные задачи и не требует новых функций (например, поддержки нового датчика), то гнаться за последней версией прошивки не всегда оправданно. Особенно это касается случаев, когда принтер используется для работы, и любой простой критичен. Принцип «работает – не трогай» ещё никого не подводил.

План отката и дальнейшие шаги

Если что-то пошло не так, не отчаивайтесь. У вас есть план. Ваш главный инструмент – это резервные копии. Просто прошейте старый, сохранённый бинарник (файл .bin) обратно на плату через SD-карту или USB. После этого восстановите настройки EEPROM из сохранённого текстового файла, вводя их вручную через терминал. Принтер вернётся в исходное рабочее состояние.

Мир 3D-печати постоянно развивается. Чтобы оставаться в курсе, регулярно заглядывайте в раздел релизов на официальном репозитории Marlin на GitHub. Там разработчики подробно описывают все изменения. Если столкнулись с проблемой, которую не удаётся решить самостоятельно, не стесняйтесь обращаться к сообществу. Тематические форумы и группы, посвящённые вашей модели принтера или платы, – это кладезь знаний. При обращении за помощью будьте готовы предоставить свои файлы конфигурации и подробно описать проблему. Так вам смогут помочь гораздо быстрее.

Источники