По просьбе выкладываю пост о прошивках (Firmware) для 3D принтеров. Данный пост разделен на две части. Первая часть посвящена новичкам и ее я решил оформить в качестве FAQ, надеюсь подобное изложение материала будет кратким, понятным и ответит на большинство вопросов. Во второй части — экзотика, прошивки, которые давно покрылись слоем пыли и совсем молодые или специализированные прошивки. Эта статья так же войдет в книгу «3D Ликбез».
Более подробно про настройку написано в этой статье.
В. Что такое прошивка для принтера?
О. Прошивка для 3D принтера — это написанный программный код, основной задачей которого является считывать и воспроизводить G-code (Специально разработанный код для ЧПУ станков). Это основная задача прошивки. Дополнительный функции, такие как вывод информации о процессе печати, печать с SD карты памяти, управление принтером через интерфейсы — это все дополнительные функции, и в разных прошивках набор этих дополнительных модулей разнообразен, как и сама идея каждой отдельной прошивки.
В. Что можно настроить в прошивке?
О. Практически все, что душе угодно. Начиная от банальной настройки вашего принтера «что бы двигалось», вплоть до переназначением пинов на плате, добавления новых функций, изменения пунктов меню.
В. Какую прошивку выбрать для новичка?
О. Если вы собираете принтер самостоятельно, то для начала стоит освоить прошивку под названием Marlin. В подавляющем большинстве случаев используется именно эта прошивка, даже заводских принтерах.
В. В чем принципиальная разница между прошивками?
О. Прошивки можно разделить по типу поддерживаемого «железа» (микроконтроллера) и на разные ветви одной базовой прошивки, причем последние могут идти как параллельная версия, так и полностью переработанная. Подробнее о прошивках в конце статьи.
В. Я купил/собрал 3D принтер, что дальше, куда заливать прошивку?
О. Для начала включите принтер. Если вы приобрели принтер у производителя, скорее всего прошивка в него уже залита, и лезть в первый же час работы не стоит. Я понимаю, что очень хочется, но если возникнут проблемы сперва обратитесь к производителю.
А вот если принтер был куплен как кит набор или вы его собрали самостоятельно, вероятнее всего электроника «голая» без прошивки, и тогда ее нужно загрузить в ваш комплект электроники. Ну и третий вариант, если вы чувствуете себя уверенным пользователем и готовы на эксперименты, смотрите вторую часть статьи.
В. Как залить прошивку в электронику?
О. В 90% случаев у вас на руках имеется Arduino mega 2560 + Ramps 1.4. Или любая другая плата на основе Arduino mega 2560. (В противном случае, читайте вторую часть статьи). Если это так, то вам потребуются программы: Arduino IDE(для работы с файлами прошивки), Pronterface (для настройки и управлением принтера), и сама Marlin.
Первым делом устанавливаем Arduino IDE, и пытаемся подключить Arduino Mega к компьютеру. Если это удалось, и нашлись и установились все драйверы, то радуйтесь, можно двигаться дальше, в противном случае у вас либо Mega основанная на usb чипе ch340g, либо мертвая плата. Платы на ch340g дешевле, но к ним нужно искать специальный драйвер, на всякий случай оставлю его здесь.
И перед тем, как начать настраивать прошивку, просто залейте ее в arduino, дабы убедиться, что электроника жива, а не ломать себе голову тем, что я конфигурирую-конфигурирую да не выконфигурирую.
Напомню, что пошаговая инструкция хорошо описана в этой статье.
В. Я прошил принтер, но двигатели едут не туда/температура неправильно показывается, не загорается дисплей.
О. Самое время настроить прошивку, для этого открываем в Arduino IDE файл configuration.h и начинаем читать комментарии. Опять же, в статье, упомянутой выше есть полный перечень настроек, но почитать на русском языке о всех возможностях прошивки будет не лишним.
В. Нужно каждый раз менять конфигурацию прошивки и прошивать электронику, или можно как то быстрее менять настройки?
О. Сам ни раз натыкался на это, а реальная проблема была, когда первый раз начал калибровать delta принтер, каждый раз вносить изменения, перепрошивая принтер это смерти подобно. На такие случаи придумали записывать настройки в энергонезависимую память, т.н. EEPROM. Данная функция включается в конфигурации и позволяет в том же pronterface записывать изменения в принтер из консоли при помощи M-команд.
А теперь давайте подробней рассмотрим каждую из прошивок. Разобьем их пожалуй по поддерживаемой электроники.
Прошивки для Arduino (Atmel):
1) Marlin — это пожалуй самая популярная и распространенная прошивка. Поддерживает множество кинематик, реализован автоуровень стола. Поддерживает целый ряд дисплеев, и целую пачку различной электроники. В целом прошивка достаточно раздута и некоторые функции сделаны либо коряво, либо не полностью. Но это проблема всей децентрализованой разработки.
2)Marlin Kimbra — Итальянское ответвление от основной ветки. Основные фишки это:
-Поддержка всех возможных кинематик в одной прошивке с удобными настройками.
-Поддержка многоцветных экструдеров, мультиэкструдеров, смесителей В и т.п. (Multyextruder NPr2, 4/6 цветный экструдер только с двумя моторами, двойной экструдер «DONDOLO«, MKr4 система для 4-ех экструдеров но используя два драйвера и 8 реле)
-Поддержка авто корректировки уровня стола. данная функция доступна только для декартовых принтеров.
-Поддержка лазера.
-Имеет поддержку авто калибровки дельта принтеров. (Лично мне не удалось толком ее настроить, т.к. постоянно срабатывало прерывание калибровки из за превышения количества итераций.)
-Так же имеет онлайн конфигуратор, позволяя выбрать конструкцию принтера, что будет удобно для новичков.
3)Marlin RichCattell— практически единственная прошивка для Arduino, в которой реализована полная авто калибровка Дельта принтеров. Проект не обновлялся с 11 июня 2015 года. RIP
4) Repetier-Firmware— «Быстрая и дружественная прошивка» — так написано в описании на GitHub. Эта прошивка была полностью переработана, основываясь на таких прошивках как: Teacup;В Grbl;В Marlin. Стоит отметить, что в этой прошивке реализована более быстрая загрузка файлов с компьютера на внутреннюю флешку. В остальном имеет мало значительных отличий от Marlin, но попробовать стоит. Имеется удобный онлайн конфигуратор
5) Teacup — основная задача данной прошивки — высокая производительность и чистота кода. Написана на чистом СИ, без применения C++. Более подробно можно ознакомиться в этой статье.
6) Grbl— бескомпромиссная прошивка для ЧПУ фрезерного станка, на основе Arduino. Не поддерживает экструдеры, поэтому не может быть использована в качестве прошивки для 3D принтера. Самое главное достоинство — серьезно проработанный код, без лишних непонятных фич, как в marlin.
7) sjfw — Прошивка основана на Marlin, Sprinter и Teacup. Создатель судя по всему, забавный парень:
Дословно, это означает, что он не рекомендует использовать данную прошивку никому. Все, что вы делаете, делаете на свой страх и риск. , далее:
Я ценю любые отчеты об ошибках и забавные истории о том, как это программное обеспечение сожгло Ваш дом дотла. Вы можете найти меня на открытом IRC канале #reprap. Или связаться по электронная почте scribblej@yahoo.com.
Последнее обновление 2012 год.RIP
8) Aprinter — Малоизвестная прошивка, имеет по сути все те же Имеется онлайн конфигуратоор, но не поддерживает Ramps 1.4, хотя в описании поддержка присутствует.
9) Sprinter — Последнее обновление в 2013 году. Поддерживает старую электронику, такую как: Ramps 1.3, Sanguinololu, Gen 3, Gen6. RIP
Прошивки для Arduino Due
1)Marlin4Due — Прошивка, созданная для Arduino Due, на основе Marlin, но она так же заброшена и не поддерживается на данный момент. RIP
2) Marlin Kimbra v4.2.x-получило поддержку Arduino due. В остальном нет принципиальных отличий
3)Repetier-Firmware — так же поддерживает Arduino due.
4)RepRap Firmware — хотя данная прошивка и поддерживает Arduino mega 2560, но все же основной упор сделан все же на DUE. Главная особенность — конфигурирование прошивки ведется путем записи файла на флешку, и большая часть интерфейса и команд реализована при помощи отдельных кусков g-кода. Так же проработана система управления через веб интерфейс. Исходники здесь.
Прошивки для плат на основе 32-битных процессоров ARM.
1) Smoothie Project — Проект, который набирает большую популярность. (по большей части благодаря китайцам) Ребята спроектировали жутко навороченную плату с поддержкой интернета, возможностью гибко конфигурировать как саму прошивку, так и внешние выводы платы (в оригинальной Smoothieboard). Тем самым вы легко можете получить как 3д принтер, так и чпу станок, так и гравер, просто закидывая разные конфиг файлы на флешку.
От себя скажу, что работал с оригинальной плате, и она жутко замороченная и не реально дорогая. Но братья китайцы всегда сопрут спасут. Выпустив платы «MKS S-base» и В «MKS SMini», которые без плясок с бубном работают на той же прошивке.
2) Redeem — Прошивка написанная специально для платформы BigleBon. Это не единственная прошивка для бигла, можно хоть напрямую влить дистрибутив GNU Linux, но возникают серьезные проблемы с самим ПО, так как оно заточено под ЧПУ станки (Linux cnc, он же EMC). Если бы кто то смог адаптировать наконец это или подобное решение под Rasbery PI (или многочисленные аналоги), то мы бы могли перейти на принципиально новый уровень, но пока увы это очень сложно
Прошивки для других процессоров и платформ:
1) Sailfish — Прошивка для старых Makerbots. Интерес составляет пожалуй чисто исторический. RIP
2)ImpPro3D — одна из первых прошивок. была создана семерыми учащимися центральной школы Лилии. (Франция) Прошивка использовалась совместо с электроникой на основе все той же Arduino, но полностью переразвели плату, для работы с драйверами L298. На сколько я понял, за основу была взята прошивка Sprinter. На данный момент проект заброшен, но ознакомиться со всем проектом можно на официальном сайте.
Меня радует то, что люди начинают задумываться о производительности и чистоте кода, это говорит о том, что в среду 3D принтеров приходят специалисты.
З.Ы. Не забываем добавляться в «Лигу 3D принтеров», задавать вопросы, делиться опытом, а так же в новостное сообщество «3D печатники».
Любые вопросы, вы можете задать мне лично в VK: http://vk.com/tigeer
Всем удачи и спасибо за внимание, ваш ласковый и нежный Tigeer
106
2 года занимаюсь разработкой 3D принтеров. На сегодняшний день имеются в наличии два действующих принтера собственной разработки. За 2 года были неоднократные модернизации, переделки обоих принтеров. Как результат собраны две наиболее удачные конструкции, доведенные почти до идеала. На первом принтере установлена 32 битная материнская плата MKS sBase v1.3 с MKS TFT32 с контроллером LPC1768, на втором принтере установлена 8 битная материнская плата MKS Gen L v1.0 с контроллером мега 2560.
В определенный момент, устав от недостатков прошивки Smoothie, решил поменять на MKS sBase v1.3 прошивку на Marlin 2.0, скомпилированную под процессор LPC1768. На форуме пользователь под ником Lenivo выкладывал видео о сборке прошивки, впрочем это видео не секрет, вот ссылка на него https://www.youtube.com/watch?v=gMPdsBumWCQ.
Сразу предупреждаю, все что здесь описано, вы делаете на свой страх и риск. Хотя вероятность повреждения платы или загрузчика крайне мала, но она есть. При загрузке прошивки в плату ни в коем случае не отключайте питание, не вынимайте карту из слота…
В принципе по видео все понятно как скомпилировать, но не затронуты некоторые моменты, касающиеся среды компиляции и некоторых нюансов при настройке прошивки и особенно установки USB драйвера для платы. В этой статье пройдемся как раз по этим моментам.
Первое что нужно сделать это установить среду разработки platformio. Проходим по ссылке https://platformio.org/ и жмем кнопку
За ней следующую
Особых премудростей здесь нет, обычный инсталлятор для windows. После установки открываем Visual Studio Code, он может попросить обновить некоторые модули, надо согласиться. В моем случае это был С/С++. Далее
Жмем кнопку 1, в строке поиска 2 вводим platformio, в результатах поиска 3 выбираем Platformio IDE и жмем кнопку install в области 4. Т.к. у меня она уже установлена, кнопки нет.
Все, теперь можно переходить к настройке компиляции и прошивки.
Перед тем, как начинать настраивать, необходимо скачать исходники прошивки, для этого переходим по ссылке http://marlinfw.org/meta/download/ и скачиваем архив
Распаковываем архив, желательно чтобы в пути до распакованной папки не было кириллицы. Теперь в проводнике windows идем сюда
Marlin-bugfix-2.0.xconfigexamplesMksSbase
и копируем файлы Configuration.h и Configuration_adv.h с заменой сюда
Marlin-bugfix-2.0.xMarlin
(либо другим удобным способом копируем эти файлы с заменой).
Теперь добавляем всю папку в среду разработки. Для этого открываем (если Visual Studio Code не запущена, то запускаем) через меню File->Open folder появится окно, как на скриншоте, выбираем только что распакованную папку, там, где выделено красным должно быть название открываемой папки… и жмем «Выбор папки»
И должны получить это
Здесь уже открыта папка с исходниками, теперь кликаем на файл platformio.ini, он откроется в окне справа и там ищем и правим строку…
Все, здесь больше ничего не трогаем. Сохраняем через File->Save и можно закрыть файл. Далее кликаем на configuration.h и проверяем, правильно ли установлена материнская плата
Также, если вам необходимо задействовать последовательный порт, выведенный на разъем AUX-1, например для подключения дисплея MKS TFT, то здесь же снимаем комментарий со строки
#define SERIAL_PORT_2 0
если этого не сделать, MKS TFT не заработает. Если у вас другой экран, то эту строку комментируем, а настраиваем дисплей как обычно.
Осталось только настроить токи для драйверов, делается это здесь
Токи по дефолту настроены на 1.2 ампера. Если устраивает, то можно не трогать.
Теперь основные настройки, касающиеся именно платы MKS sBase, рассмотрены, остальные настройки вполне стандартные для marlin, к тому же для разных принтеров они будут различными, поэтому рассматривать я их не буду, настройка ничем не отличается от настройки для 8 битных плат в Arduino IDE. Да и рассмотрены они уже неоднократно, к тому же к теме данной статьи они не относятся.
Обращаю внимание, не стоит уже настроенные файлы конфигурации из более старых версий копировать сюда, работать они может быть и будут, не пробовал, но в marlin 2.0 появились новые настройки, которых вы можете лишиться скопировав файлы из 1.1.х.
Теперь, когда прошивка настроена под MKS sBase, а также под конкретный экземпляр принтера, ее нужно собрать, для этого жмем на кнопку
И ждем пока прошивка скомпилируется. Должны получить вот это
Если выделенные строки совпадают, значит, прошивка удачно скомпилировалась именно под LPC1768. На вкладку PROBLEMS в этом случае внимание можно не обращать, у меня там варнинги о том, что переменная определена, но не используется. В этом нет ничего страшного, и является прямым следствием того, что прошивка написана не конкретно под одну плату, а сразу под набор разных плат и процессоров, а возможно и ошибки программистов, которые просто забыли убрать ставшую ненужной переменную…
Осталось только залить саму прошивку в плату, прошивка после компиляции будет здесь
Marlin-bugfix-2.0.x.pioenvsLPC1768
Как обычно кидаем файл на флешку, вставляем на плату и перезагружаем. После прошивки можно подключить плату по USB к компьютеру. Кому то это нужно, кому то нет, но при подключении в диспетчере устройств определяется USB устройство Marlin USB Device, драйвера для данного устройства не устанавливаются автоматически. К сожалению я нигде не нашел, даже в официальной документации Marlin, где этот драйвер найти. Возникла проблема, но после поисков по исходникам драйвер нашелся, лежал у меня прямо под носом здесь
Marlin-bugfix-2.0.xMarlinsrcHALHAL_LPC1768win_usb_driver
В диспетчере устройств выбираем устройство, обновить драйверы, подкидываем папку по указанному пути, при установке windows ругнется на отсутствие подписи, отвечаем все равно установить. Теперь драйвер на месте и к плате можно подключиться по USB с компьютера как обычно.
В принципе все. По результатам тестовой печати я был сильно, очень сильно разочарован в прошивке Marlin. Если сравнить качество печати с родной прошивкой смузи, то не идет вообще ни в какое сравнение.
Нижний кубик был распечатан на прошивке Marlin, верхний на прошивке Смузи. Настройки прошивок одинаковые, принтер, пластик, кинематика, электроника, Г код, скорости и все остальное, одно и то же, разница только в прошивке. Качество печати нижнего кубика на порядок хуже верхнего. Верхний вообще идеален, только углы завалены из за того что предыдущий слой не успевал остывать до следующего прохода.
Я не говорю, что это истина в последней инстанции, возможно где то я ошибся. Пробуйте, делитесь впечатлениями. Возможно кто-то сможет добиться лучшего качества.
Надеюсь статья была полезной.
Метки: firmware, Marlin, MKS Sbase, прошивка   2019-04-17      Раздел: Настройка, Прошивка   Автор: dark184 Просмотров: 8 979   37 комментариев
Установка OctoPrint (OctoPi 0.15.1) на Raspberry Pi      Slic3r, отсекаем от STL модели лишнее или печать частямиИспользуемые источники:
- https://pikabu.ru/story/proshivki_dlya_3d_printera_3d_likbez_4321027
- https://3deshnik.ru/blogs/dark184/sobiraem-marlin-2-0-dlja-mks-sbase-v1-3