Прошивка Marlin
Marlin — это открытое программное обеспечение (прошивка) для управления 3D-принтерами, станками с числовым программным управлением (ЧПУ) и другими устройствами аддитивного производства. Разработана на языке C++ и предназначена для микроконтроллеров на базе архитектуры AVR (например, Arduino Mega) и ARM (например, STM32). Marlin является одной из самых популярных и распространённых прошивок в мире любительской и полупрофессиональной 3D-печати, обеспечивая управление движением, нагревом, экструзией и другими процессами.
История
Прошивка Marlin была создана в 2011 году разработчиком Эриком ван дер Занде (Erik van der Zande) как форк прошивки Sprinter. В 2012 году проект перешёл под управление сообщества, а его основным разработчиком стал Скотт ЛаХью (Scott LaHue). Первоначально Marlin поддерживала только 8-битные микроконтроллеры AVR, но с развитием технологий и появлением более мощных контроллеров была адаптирована под 32-битные платформы.
Ключевые версии:
- Marlin 1.0 (2012) — базовая стабильная версия.
- Marlin 1.1 (2016) — добавлена поддержка автоматического выравнивания стола, автономной SD-карты, улучшенная система управления нагревателями.
- Marlin 2.0 (2019) — переход на 32-битные контроллеры, новая архитектура управления движением (Linear Advance), поддержка лазерных гравёров и ЧПУ-станков.
- Marlin 2.1 (2022) — улучшенная система безопасности, поддержка гибридных приводов, расширенные возможности для многоэкструдерных систем.
По состоянию на 2024 год Marlin остаётся активным проектом с открытым исходным кодом, распространяемым под лицензией GPLv3.
Архитектура и принцип работы
Аппаратная платформа
Marlin работает на микроконтроллерах, которые управляют шаговыми двигателями, нагревателями, вентиляторами, концевыми выключателями и дисплеями. Наиболее распространённые платы:
- Arduino Mega 2560 + RAMPS 1.4 (8-битная)
- MKS Gen L, SKR 1.3/1.4 (32-битные)
- BTT Octopus, GTR (32-битные, многоосевые)
Система управления движением
Marlin использует алгоритм трапецеидального профилирования скорости (Trapezoidal Speed Profile) для плавного разгона и торможения осей. Для точного позиционирования применяется прямоугольная система координат (X, Y, Z) с возможностью компенсации наклона стола. В версии 2.0 внедрён Linear Advance — алгоритм, компенсирующий давление в сопле при изменении скорости печати.
Управление температурой
Marlin реализует PID-регулирование (пропорционально-интегрально-дифференциальное) для нагревательного стола и хотэнда. Поддерживает до 4 независимых нагревателей и 4 датчиков температуры (термисторы, термопары, PT100). Система безопасности включает автоматическое отключение при перегреве (thermal runaway protection).
Поддержка G-кода
Marlin интерпретирует стандартный набор команд G-кода (RS-274), включая:
- G0/G1 — линейное перемещение
- G28 — автоматическое позиционирование (home)
- G29 — автоматическое выравнивание стола
- M104/M140 — установка температуры хотэнда/стола
- M106 — управление вентилятором
Классификация и виды
По типу поддерживаемого оборудования
- Для 3D-принтеров (FDM/FFF): основная сфера применения. Поддерживает декартовы, дельта- и CoreXY-кинематики.
- Для лазерных гравёров: в версии 2.0 добавлена поддержка управления лазером с регулировкой мощности.
- Для ЧПУ-станков: ограниченная поддержка фрезерных станков (обычно 3 оси).
По версиям
- Marlin 1.x — для 8-битных контроллеров, ограниченная память (до 256 КБ).
- Marlin 2.x — для 32-битных контроллеров, поддержка до 6 осей, расширенные возможности.
Настройка и конфигурация
Файлы конфигурации
Marlin настраивается через два основных файла:
- Configuration.h — базовые параметры (размеры стола, тип датчиков, скорость перемещения).
- Configuration_adv.h — расширенные настройки (Linear Advance, PID-коэффициенты, автоматическое выравнивание).
Компиляция
Для установки прошивки необходимо скомпилировать исходный код с помощью PlatformIO или Arduino IDE. Пользователь выбирает целевую плату (например, BOARD_RAMPS_14_EFB) и загружает прошивку через USB или SD-карту.
Популярные модификации
- Marlin Bugfix — ветка с исправлениями ошибок.
- Marlin 2.1.x — стабильная версия.
- Marlin для конкретных принтеров (например, Ender 3, Prusa i3) — предварительно настроенные сборки.
Применение
В 3D-печати
Marlin является стандартом для большинства любительских и полупрофессиональных 3D-принтеров. Он используется в таких моделях, как Creality Ender 3, Anycubic i3 Mega, Prusa i3 (в ранних версиях), а также в самодельных принтерах. Прошивка обеспечивает:
- Управление экструзией (филамент)
- Автоматическое выравнивание стола (BLTouch, индуктивные датчики)
- Печать с SD-карты (автономный режим)
- Поддержка многоэкструдерных систем (до 4 экструдеров)
В промышленности
Marlin редко используется в промышленных принтерах из-за ограничений по скорости и точности, но применяется в прототипировании и мелкосерийном производстве.
В образовании
Благодаря открытому коду и низкой стоимости аппаратной платформы, Marlin широко используется в учебных заведениях для изучения основ аддитивных технологий и программирования микроконтроллеров.
Преимущества и недостатки
Преимущества
- Открытый исходный код — возможность модификации и адаптации под любые задачи.
- Широкая поддержка — совместимость с большинством популярных плат и датчиков.
- Активное сообщество — регулярные обновления, форумы, документация.
- Низкие требования к аппаратуре — работает на дешёвых 8-битных контроллерах.
Недостатки
- Сложность настройки — требует знаний в области программирования и электроники.
- Ограниченная производительность — на 8-битных контроллерах возможны задержки при сложных алгоритмах.
- Отсутствие графического интерфейса — настройка через текстовые файлы.
- Не подходит для высокоскоростной печати — уступает специализированным прошивкам (например, Klipper).
Интересные факты
- Marlin является одной из самых популярных прошивок в мире 3D-печати — по оценкам сообщества, её используют более 70% любительских принтеров.
- Название «Marlin» происходит от рыбы-марлин, символизирующей скорость и точность.
- Прошивка поддерживает до 6 осей, что позволяет управлять роботизированными манипуляторами.
- В 2020 году проект Marlin был включён в репозиторий GitHub с более чем 10 000 звёзд.
Источники
- Официальный репозиторий Marlin на GitHub (github.com/MarlinFirmware/Marlin)
- Документация Marlin (marlinfw.org)
- Статья «Marlin (firmware)» в Википедии
- Книга «3D-печать: практическое руководство» (автор: Брайан Эванс, 2019)
- Форум сообщества Marlin (community.marlinfw.org)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →