Прошивки для 3D принтера. 3D ликбез

По просьбе @ranoto выкладываю пост о прошивках (Firmware) для 3D принтеров. Данный пост разделен на две части. Первая часть посвящена новичкам и ее я решил оформить в качестве FAQ, надеюсь подобное изложение материала будет кратким, понятным и ответит на большинство вопросов. Во второй части - экзотика, прошивки, которые давно покрылись слоем пыли и совсем молодые или специализированные прошивки. Эта статья так же войдет в книгу "3D Ликбез".

Более подробно про настройку написано в этой статье.

Прошивки для 3D принтера. 3D ликбез Firmware, 3d ликбез, 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-команд.

А теперь давайте подробней рассмотрим каждую из прошивок. Разобьем их пожалуй по поддерживаемой электроники.

Прошивки для 3D принтера. 3D ликбез Firmware, 3d ликбез, 3D принтер, Прошивка, Длиннопост

Прошивки для 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. Эта прошивка была полностью переработана, основываясь на таких прошивках как: TeacupGrblMarlin. Стоит отметить, что в этой прошивке реализована более быстрая загрузка файлов с компьютера на внутреннюю флешку. В остальном имеет мало значительных отличий от Marlin, но попробовать стоит. Имеется удобный онлайн конфигуратор

5) Teacup - основная задача данной прошивки - высокая производительность и чистота кода. Написана на чистом СИ, без применения C++. Более подробно можно ознакомиться в этой статье.

6) Grbl - бескомпромиссная прошивка для ЧПУ фрезерного станка, на основе Arduino. Не поддерживает экструдеры, поэтому не может быть использована в качестве прошивки для 3D принтера. Самое главное достоинство - серьезно проработанный код, без лишних непонятных фич, как в marlin.

7) sjfw - Прошивка основана на Marlin, Sprinter и Teacup. Создатель судя по всему, забавный парень:

THIS COMES WITH NO WARRANTIES, GUARANTEES, PROMISES, OR CAKE. I do not recommend that you, or anyone, uses this firmware.
If you do, you do so at your own risk.
I appreciate any bug reports, patches, and amusing stories about how this firmware burned your house down. You can find
me on Freenode IRC, channel #reprap. Or email at scribblej@yahoo.com.

Дословно, это означает, что он не рекомендует использовать данную прошивку никому. Все, что вы делаете, делаете на свой страх и риск. , далее:

Я ценю любые отчеты об ошибках и забавные истории о том, как это программное обеспечение сожгло Ваш дом дотла. Вы можете найти меня на открытом 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

Лига 3D-принтеров

2.8K постов12.5K подписчиков

Правила сообщества

Запрещено хамство и оскорбления, уважайте чужой опыт и труд