Мой переход с Lerdge на Marlin
Вместо предисловия
- Сама плата SKR 2 ревизии «B» от Bigtreetech;
- Пять драйверов TMC2209 от Bigtreetech;
- Экран TFT43 от Bigtreetech;
- Блок автоматического выключения от всё той же Bigtreetech;
- Удлинитель для micro SD-карты;
- Модуль Wi-Fi ESP-01S для экрана;
- Модуль Wi-Fi ESP-07S с внешней антенной для SKR 2;
- Mini UPS на 12 вольт;
- Датчик окончания филамента (шёл в нагрузку с одним из заказов).
– Вручить шашку Игорю Владимировичу, а? Любо?
– Простите, а Люба - это кто?
((с) к/ф «День выборов»)
Что понравилось при ознакомлении с ТТХ и беглом осмотре полученного комплекта:
- Поддержка платой управления не только micro SD-карт, но и USB-флешек.
- Наличие у драйверов достаточно большой не окрашенной металлизированной площадки для установки на неё радиатора.
- Возможность работы экрана в двух режимах, один из которых – режим эмуляции дисплея 12864.
- Автоматическое уменьшение яркости экрана при его простое. При этом уровень, до которого уменьшается яркость, также как и интервал, через который она будет уменьшена, настраивается достаточно гибко.
- Возможность непосредственно с экрана отправлять на плату управления команды в виде G-кода, и выводить ответ на них на всё тот же экран.
Ну, с Богом, Параска.
Т.к. раньше с Марлином я знаком не был, и даже не знал с какого бока к нему подступиться, я сделал некое подобие стенда.
На нём я и оттачивал настройку прошивки под свои нужды. Увы, легко и без проблем Марлин мне не дался. После Лерджа несколько сложновато давался алгоритм настройки. Не зря говорят, что переучиваться сложнее, чем учиться с нуля. Нужно привыкать и приспосабливаться к немного другой логике работы. Взять хотя бы, например, управляемые разъёмы вентиляторов на плате SKR 2 – Fan0, Fan1 и Fan2. Что за что отвечает? На плате присутствует поддержка двух экструдеров E0 и E1. Соответственно, в эти разъёмы должны подключаться вентиляторы обдува детали, и обдува радиаторов этих двух экструдеров. Если следовать некой логике, то Fan0 – это разъём для вентилятора обдува радиатора экструдера E0, Fan 1 – для вентилятора обдува радиатора экструдера E1, ну и оставшийся Fan2 – для обдува детали. Так думал я, а Марлин думал иначе. Для обдува детали в прошивке где-то глубоко в коде прописан Fan0, а вот для обдува радиаторов экструдеров вентиляторы не прописаны вообще. Вероятно, предполагается, что они подключаются к неуправляемым разъёмам для вентиляторов, которые на плате тоже есть (Fan3, Fan4). Поэтому, если вы хотите иметь управляемые вентиляторы обдува радиатора, то их нужно прописать вручную. Ещё момент – если у Лердж не имеет значения, какой датчик автоуровня подключён к плате (плёночный, BL-Touch, индукционный), и его можно поменять без перепрошивки, то в Марлине нужно чётко указать, какой тип датчика подключён к плате. И без изменения этой информации в прошивке (с последующей перекомпиляцией оной и перепрошивкой платы управления) его не поменять. Ну и волшебный Z-offcet. Если у Лердж он работает сразу и всегда – внесли в него изменения (как в соответствующем меню, так и при печати с помощью подстройки), и они применяются ко всем печатям, которые вы будете проводить после этих изменений, без лишних телодвижений, то у Марлина это не так. После того, как вы внесли изменения в Z-offcet и сохранили их в EEPROM, вам, при каждой печати после автоматической парковки по G28, надо вызывать их из памяти командой M420 S1, иначе значения Z-offcet не будут использоваться. Это же верно и для карты стола. Вот этот маленький нюанс знатно попил моей крови. Но, вроде как у Марлина датчик автоуровня BL-Touch работает стабильнее и адекватнее, чем у Лердж. Сам же я работу BL-Touch не проверял, не смотря на то, что его клон (3D-Touch) от Trianglelab у меня есть. Мне просто лень его ставить, т.к. я один раз снял карту стола плёночным датчиком и печатаю дальше без перекалибровки, вызывая карту всё той же командой M420 S1, упомянутой выше. Вместе с тем сама автокалибровка стола со снятием карты с помощью BL-Touch или любого иного датчика в Марлине проходит более предсказуемо, особенно если сравнивать с работой Lerdge с прошивкой версии 4.3.3 beta 1-3. Про финальную версию прошивки Lerdge 4.3.3 я ничего сказать не могу, т.к. подзабросил наблюдение за ней. Опытные марлиноводы и марлиноведы скажут, что упомянутые выше проблемы – это пустяки, и не стоит из-за них нервничать. Но как новичок отвечу – что для вас пустяк, для новичка проблема, и, к сожалению, её не всегда получается быстро решить. Однако продолжу рассказывать дальше.
Итак, используя сделанный стенд, я произвёл в марлине настройку основных параметров принтера, таких как габариты печатного поля, управление блоком автоматического выключения питания, настройку отключения вентиляторов обдува радиатора хотенда, при охлаждении его ниже 40 градусов и т.п. И при этой настройке я был очень рад, что экран может выступать как хост по отправке команд на плату и получать от неё ответы. Это знатно экономит время и позволяет не подключать плату к компьютеру только для того, чтобы, например, опросить состояние концевиков командой M119, или проверить, адекватно ли работает блок автоматического выключения питания, отправив команду M81 на плату. Но более подробно к некоторым настройкам Марлина я вернусь немного позже.
А сейчас коротко пробегусь по подключению электронной части принтера к новой плате. Тут проблем не возникло от слова совсем. У Bigtreetech, как и у Лердж, есть достаточно подробная инструкция о том, что, как и куда подключать, а также есть полная карта распиновки разъёмов. Ну и на обратной стороне платы также есть подписи ко всем пинам.
Единственное что пришлось сделать, так это удлинить некоторые провода, т.к. они были рассчитаны под расположение разъёмов на Lerdge-K. Также пришлось смоделировать и напечатать новый корпус для экрана TFT43. На этот корпус я, помимо родных разъёмов для USB-флешки и SD-карты, расположенных на плате экрана, вывел с помощью удлинителей разъёмы для подключения micro SD-карты и USB-флешки с самой платы SKR (у неё он есть, помимо разъёма USB-B для подключения к компьютеру).Дабы не сверлить в корпусе принтера новые отверстия, я смоделировал подложку для SKR 2 с учётом уже имевшихся отверстий для крепления подложки Лердж-K.В общем, плата заняла положенное ей место, и можно было приступать к более тонкой настройке прошивки с учётом особенностей механики принтера. Были настроены рывки, ускорения, скорости движения осей.Ещё на стенде я протестировал работу блока автоматического выключения питания от Bigtreetech и его алгоритм работы мне не понравился. Суть его в том, что он включает плату сразу, как только на него подаётся питание 220 вольт. Я понимаю, что это сделано для возобновления печати после внезапного отключения электричества. Но у этой медали есть и обратная сторона, которая меня не устраивает от слова «Совсем». Приведу пример. Вы, по завершению печати, автоматически или через меню, выключили принтер, и ушли из дома на работу. А за время вашего отсутствия, у вас дома кратковременно отключили и включили обратно электричество. И вот вы пришли домой после работы, а принтер у вас оказался включен. А всё потому, что после отключения электричества в вашем доме и его последующего включения, плата автоматического выключения, следуя своей логике работы, включила принтер. Вот именно поэтому я и решил оставить блок автоматического выключения питания от Лердж, подключив его к SKR 2.
При подключении блока от Лердж, я исходил как из его распиновки, так и из распиновки платы управления SKR 2.
Сигнальный провод и землю от блока автоматического выключения я подключал в разъём PS-ON на плате SKR 2, в соответствии с распиновкой оного, а провод «+5v» я подключил к пину «+5v» незадействованного у меня разъёма E1DET.
Книжка была очень скучной – в ней было много букв и совсем не было картинок.
А теперь немного о том, что я изменял в Марлине под себя для того, чтобы получить нужную мне функциональность:
- Температурная защита как хотенда, так и стола от перегрева в случае выхода из строя нагревательного элемента или термистора.
- Включение обдува радиатора хотенда при нагреве хотенда выше 40 градусов и отключение обдува при его остывании ниже 40 градусов.
- Включение обдува платы и драйверов при работе шаговых двигателей и выключение обдува при простое больше 1 минуты с неработающими шаговыми двигателями.
- Печать с USB-флешек, а не micro SD-карт.
- Управление LED подсветкой печатной зоны принтера.
- Возможность полуавтоматического выравнивания стола в параллель, относительно портала с печатающей головой принтера. В этом режиме печатающая голова циклически двигается по четырём заданным точкам, позволяя выровнять стол винтами, используя щуп известной толщины или обычную бумажку, которые размещаются между соплом и столом.
- Возможность снятия карты стола с помощью имеющегося у меня плёночного датчика, с последующим использованием её при печати.
- Возможность автоматического выключения питания после завершения печати.
- Игнорирование команд на выключение принтера как из G-кода, так и с экрана, если хотенд не остыл ниже 40 градусов.
Сразу предупреждаю – дальше будет много скучных букв.
=== configuration.h ===
Порты подключения, модель материнской платы и количество экструдеров
Для подключения принтера к компьютеру настроил последовательный порт и указал скорость передачи данных для него. #define SERIAL_PORT 1 #define BAUDRATE 115200Дабы прошивка правильно собралась для моей платы, указал её модель. #define MOTHERBOARD BOARD_BTT_SKR_V2_0_REV_B
Т.к. у меня одноэкструдерный принтер, без всяких смешивающих экструдеров, то указал количество экструдеров равное одному. #define EXTRUDERS 1
Работа с блоком автоматического выключения питания
Настройки типов термисторов, а также
минимальной и максимальной температур хотенда и стола
Настройки PID хотенда и стола
Температурная защита
Механика принтера, типы концевиков их расположение и алгоритм работы
Драйверы и способ их подключения
Настройки шагов, скоростей и ускорений
Настройка датчика снятия карты стола и параметров его работы
Работа моторов и направление их вращения
Настройка парковки печатающей головы и размеров области печати
Настройка процедуры снятия карты стола
Настройка скоростей парковки
Локализация меню принтера
Поддержка SD-карты
Экран принтера