• Механическая обработка и изготовление деталей из металла
  • Комплектация производства промышленным оборудованием
  • Комплексная поставка микроэлектронных компонентов
+7(342)203-78-58
Тех.отд: +7-922-308-78-81

Плата для ender 3: Ender 3 Pro оживляем плату V4.2.7

Опубликовано: 18.10.2021 в 12:45

Автор:

Категории: Популярное

Содержание

Ender 3 Pro оживляем плату V4.2.7

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

    Итак, имеется плата версии 4.2.7 с тихими драйверами TMC2225 и сгоревшим выходом термистора сопла. Здесь установлен 32-х битный контроллер STM32F103RET6 в исполнении LQFP64, то есть на 64 ноги. Плата имеет заводскую прошивку Марлин 1.0.1, а так же посадочное место под гребёнку для программатора. Прошивается плата через протокол SWD (4 контактный).

Есть три варианта решения данной проблемы:

    1. Заказать новую плату

    2. Переназначить входы контроллера

    3. Заменить контроллер

    Первый вариант дорог (от 2000р за плату) и слишком прост 😊 — пропускаем.

    Второй вариант — переназначение входов контроллера. Метод самый дешёвый, однако не самый верный. Есть один минус – вам придётся самостоятельно создавать прошивки для принтера.

    Это возможно, если контроллер жив. Мой был жив и, как и указано в прошивке, находился в защите от перегрева. Узнал я об этом, когда прошил его через флешку прошивкой для высокотемпературного хотенда – принтер загрузился, а на экране горделиво красовалась температура сопла в 300 градусов. Все остальные функции плата выполняла.

    Для ремонта понадобятся паяльник с тонким жалом, микроскоп (желательно), качественный флюс, припой компьютер и прямые руки. Для начала рассмотрим теоретическую часть.

Красным выделен сгоревший выход термистора сопла. Зелёным – свободные выходы. Нас интересует выходы PC0 и PC1. То есть нужно лишь физически отключить сигнал от PC5 и подключить его к PC0 либо PC1, а затем в прошивке изменить выход термистора. Но быстро сказка сказывается, да не быстро дело делается. Вот как это выглядит на плате.

Размеры мягко говоря небольшие – для этого и нужен микроскоп.

Я использовал вывод PC0. Поднял 25 ножку микросхемы и соединил проводом с 8. Провод взял от обмотки статора какого-то маломощного двигателя. Получилось вот так.

Для надёжности закрепил провод уф-лаком:

    Теперь можно выдохнуть, ибо самая сложная часть закончилась. Берём чаш.. КРУЖКУ кофе и садимся за комп программировать. Очень советую посмотреть видео Дмитрия Соркина о программировании платы в среде VSCode. А так же этого зарубежного коллегу (у Дмитрия все настройки уже сделаны, а вот какие и где рассказывает американский товарищ)

    Качаем VSCode и Marlin с официального сайта. Так же необходимо скачать конфигурационные файлы для марлина (они поставляются отдельно). Запускаем оболочку VSCode, в ней в поисковике ищем Platformio и устанавливаем. Перезагружаем комп. Далее распаковываем марлин и конфигурационные файлы в разные папки. Ищем папку с нужным принтером и копируем все файлы в папку с марлином с заменой. Теперь запускаем VSCode и в нём открываем нашу папку с марлином и настраиваем как американский товарищ. Здесь очень важно в самой Platformio.ini указать правильно плату – иначе не соберётся прошивка. В моём случае это STM32F103RET6_creality. Теперь меняем выходы контроллера. Для этого переходим в каталоге марлина: marlin/src/pins/stm32f1 (нужный контроллер). За распиновку отвечают два файла:

pins_CREALITY_V4.h

pins_CREALITY_V427.h

во втором файле описаны двигатели, а в первом наш термистор. В нём-то и меняем наш PC5 на PC0. Всё, собираем прошивку. Щёлкаем на значке инопланетянина, выбираем STM32F103RET6_creality_maple и щёлкаем Build. Если всё нормально прошивка появится в папке марлина в

\Marlin-2.0.x\.pio\build\STM32F103RET6_creality_maple/

Копируем bin файл на флешку, вставляем в плату и включаем принтер. Принтер запустится с новой прошивкой и работающим термистором.

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

    С самого начала я выбрал именно третий путь, но до конца не довёл за ненадобностью – решил переназначением выводов – но, как вы наверное заметили – контроллер я всё же снимал. Большая часть материала ниже — практическая, но в работе не проверял, ибо до окончательного результата я не добрался (пока снимал новый контроллер и ставил старый мелькнула мысль реализованная во втором способе).

    Для ремонта в данном случае нам понадобятся помимо паяльника и микроскопа ещё и паяльная станция, сплав Розе, а так же программатор ST-Link mini V2 и программа STM32Cube (бесплатная, скачивается после регистрации).

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

    Основная загвоздка заключается в том, что платы имеют свой собственный загрузчик (bootloader), который стартует первым, ищет обновление прошивки на флешке и блокирует контроллер от программирования. При подаче питания плата инициализируется, загорается синий светодиод, а также на короткое время моргает небольшой светодиод возле микросхемы Ch440. Это моргание и есть запуск загрузчика. Если подключить такую плату к компу — программа выдаст следующее:

Более подробно работа памяти в контроллере описана здесь и здесь (нужно включить русские субтитры). А так же очень хорошо работу самого контроллера описал Владислав в своей статье.

В общем нам нужно получить этот самый загрузчик. На официальном сайте он есть для версии платы 1.1.6 (в разделе исходного кода).

Система загрузки на данном контроллера определяется уровнем сигнала на ножках 60 (Boot 0) и 28 (PB2/Boot 1).

При замыкании Boot 0 на землю работает встроенный загрузчик и изменить его невозможно. На плате как раз такой вариант. Ножка 60 через резистор R68 номиналом 10 Ком замкнута на землю:

Что бы перевести контроллер в нужный нам режим необходимо сдвинуть (что б не потерялся) резистор влево (по фото) и замкнуть освободившийся контакт с контактом рядом стоящего конденсатора C67 (он связан с 64 ножкой контроллера VDD_3 и входом VCC программатора – то есть с питанием 3,3 В) Примерно вот так:

Таким образом мы подаём сигнал высокого уровня на контроллер и вводим его в нужный нам режим. Он сразу определяется в программе и уже можно извлечь загрузчик. У меня получился на 1 Кб. Скачать можно с гугл диска. Вернув резистор на место мы снова получаем работоспособную плату с рабочим загрузчиком. Здесь я и остановился? так как мне было лень уже в третий раз снимать контроллер, да и второй вариант появился.

Собственно, на этом практическая часть работы заканчивается и начинается чисто теоретическая.

Думаю, что новый контроллер нужно прошить таким же способом – перевести в режим загрузки, прошить загрузчик, а затем, собрав принтер, обновить с флешки на официальную прошивку. Третий способ на мой взгляд самый правильный – у вас полностью рабочий контроллер, на который можно без всяких сложностей менять прошивки. То есть принтер в заводском исполнении. По цене сам контроллер обошёлся в 500р а программатор в 340. Таким образом ремонт совсем не дорогой выходит, при наличии нужного оборудования. Но подобные принтеры относятся к классу DIY – Сделай Сам. Да и пользуются им грамотные люди. Надеюсь эта статья поможет в решении проблем с программной частью.

Бюджетный 3D принтер как конструктор. Заменяем материнскую плату и прошивку / Хабр

К нам приехал принтер Creality Ender 3 v2 с процессором GD (GigaDevice) вместо ожидаемого STM (STMicroelectronics). Принтер в базовой комплектации еще как-то работает (хотя прошивка очень урезана), но часть периферии принтера не работает вовсе (датчик филамента), а остальное работает не корректно (сенсор автокалибровки CR Touch) или перегревается (двигатели). Открытую прошивку Marlin для процессора STM можно скомпилировать и установить на матплату GD (хотя официально процессор не поддерживается), вот только эта прошивка не распознает сенсор автокалибровки. Получается, что нужна или замена материнской платы, или сенсора, или того и другого вместе. Логично начать с материнской платы и прошивки — как минимум, в открытой прошивке есть функции тестирования сенсора автокалибровки, так что уже можно будет выяснить, в порядке ли он.

После замены матплаты и установки открытой прошивки пользоваться принтером намного удобнее и качество печати улучшилось благодаря опциям калибровки всего оборудования принтера. В статье мы рассмотрим новые возможности подробнее. И, конечно же, разберемся детально с сенсором автокалибровки уровня CR Touch.

Описание проблемы штатной комплектации

Мы выбрали принтер Creality Ender 3 v2 за его популярность и комьюнити на форумах и ютубе и отличную поддержку в опенсорс проектах. Материнская плата устройства оснащена известным процессором STM от STMicroelectronics, полностью поддерживаемым в нескольких открытых проектах, предоставляющих прошивки для 3D принтеров. Но в реальности к нам приехал принтер с совершенно китайским процессором GD (GigaDevice). К этому не очень скромному гигадевайсу нет SDK, а код прошивки на основе открытого проекта Marlin производитель принтера не публикует (хотя и должен). Стабильность работы со штатной прошивкой тоже вызывает сомнения — настройки порой самопроизвольно сбрасываются (например, E-step). И все же принтер поставляется с прошивкой и работает, так что не очень понятно, можно ли что-то сделать в такой ситуации. Как оказалось, можно, потому что существуют две модификации материнской платы с одинаковым обозначением и совершенно разными процессорами и производитель и продавцы намеренно выдают одну за другую.

На сайте производителя принтера на странице скачивания прошивок для принтера Ender 3 v2 мы наблюдаем следующую картину:

Первые две строчки это прошивки для принтера… «GD-Ender 3 v2»! Оказывается, производитель называет у себя этот принтер вовсе не «Ender 3 v2». Следующие три прошивки именованы вразнобой, хотя все они для принтера «Ender 3 v2» и сделаны основе открытого проекта Marlin — очевидно, потому, что раньше вариации «GD-Ender 3 v2» не существовало и не было необходимости указывать «Ender 3 v2» в названии на странице принтера «Ender 3 v2». Итак, по информации от производителя, существуют два разных принтера и «GD-Ender 3 v2» не поддерживает датчик филамента вообще, в то время как для «Ender 3 v2» доступна прошивка «… filament detection». Поддержка CR Touch заявлена, хотя и не ясно, работает ли — то ли продавец нам прислал подделку или бракованный сенсор, то ли проблема в прошивке «GD-Ender-3 V2-Marlin2.0.8.2-HW-V4.2.2-SW-V1.0.7_E_N_BLTouch» (первая в списке).

В первую очередь, мы спросили у продавца прошивку для обоих датчиков — CR Touch и датчика филамента (который уже был нами куплен и давно приехал, пока мы полтора месяца ждали принтер — тут уже с продавцом было что-то неладно, когда он на вопросы присылал раз за разом нерабочие трек-номера). Это обращение было проигнорировано. На просьбу заменить матплату для решения проблемы с недоступностью прошивки и возможного решения проблемы с CR Touch реакции также не последовало.

Итак, по CR Touch становится ясно, что использовать его невозможно, будь то проблема устройства или принтера (и то и другое куплено у одного продавца, так что без разницы). Обращение к продавцу с этим вопросом привело лишь к тому, что он в ответ 4 раза присылал одно и то же — мы неправильно используем сенсор, надо делать не как написано в инструкции, а просто включить автокалибровку уровня сопла один раз, потом настроить уровень рабочего стола руками и больше никогда не запускать автокалибровку. Получается, продавец предлагает вообще не пользоваться сенсором, надеясь на то, что покупатель слабо разбирается в технике и поверит такому объяснению. В итоге, мы потребовали возврат стоимости сенсора — и получили его после рассмотрения жалобы поддержкой алиэкспресс. В качестве подтверждающего видео показали поочередно все рекомендованные шаги установки и настройки из прилагаемого мануала и наши действия согласно им, плюс процесс тестовой печати на всей площади стола (level test), где в левой части рабочего стола филамент прилип намертво (позиционирование сопла правильное или ниже нужного уровня), посередине еле держался и полностью отвалился на оставшейся площади.

Теперь что касается матплаты. В описании принтера указано наличие «Silent mainboard» и у Creality есть такой продукт «Creality Ender-3 V2 32-bit Silent Motherboard Kit», смотрим его описание на сайте https://creality3d.shop/collections/mainboard/products/creality-ender-3-v2-32-bit-silent-motherboard-kit, где прямо назван процессор STM как одно из преимуществ продукта:

Итак, принтер «Ender 3 v2» действительно должен поставляться с процессором STM и это явно указано на странице описания материнской платы к принтеру. Нам прислали другую модификацию принтера, которая на странице поддержки производителя именована как «GD-Ender 3 v2».

Решение проблемы

Остается лишь купить «правильную» материнскую плату из двух доступных от Creality — 4.2.2 или 4.2.7, разницы по функциям и цене между ними нет (судя по описаниям), так что можно просто взять более новую плату 4.2.7. Есть совместимые матплаты и от других производителей, но пока что мы хотим привести наш принтер в ожидаемое состояние. Поскольку на всех фото и в описании матплат указан процессор STM, тут мы не ожидаем непредвиденных замен процессора, отличаются только драйверы шаговых моторов. В то же время, новая плата может оказаться не совместимой с установленным дисплеем. Удивительно, но маркировки на дисплее и внутри никакой нет, по которой его модель можно было бы опознать. Энтузиасты уже составили список примет для опознания дисплея по отверстиям на его управляющей плате, но за точность не ручаются, так что просто заказываем матплату, держа в уме возможную необходимость замены и дисплея.

Уточнив все это, мы обратились за частичным возмещением для покупки комплекта из материнской платы с дисплеем на замену «CREALITY 4.2.7 Silent Mainboard Kit For Ender-3 V2» и получили его после рассмотрения запроса поддержкой алиэкспресс. Стоит отметить, что все вопросы от нас про материнскую плату продавец игнорировал даже после нашего обращения напрямую в поддержку алиэкспресс. Притом, до покупки принтера я видел у этого же продавца лот, где принтер можно купить в комплекте с матплатой версии 4.2.7 с доплатой около 10$, но не было сказано ни слова о не поддерживаемой штатной матплате, так что идея сразу же покупать аналогичную матплату на замену показалась странной. Стоило в описании принтера предупреждать о проблеме — и мы бы сразу взяли комплектом принтер вместе с матплатой на процессоре STM на замену, а вот когда это выявляется только постфактум, то приходится терять время на все эти перипетии и покупать матплату отдельно примерно за 30$.

Установка матплаты 4.2.7

Старая (4. 2.2 GD) и новая (4.2.7 STM) платы идентичны по разъемам, так что нужно на старой плате обрезать клей на всех коннекторах, вытащить их и подключить к новой плате. Заодно мы обрезали облуженные кончики силовых проводов для зажимных контактов. Производители для своего удобства зажимают именно облуженные провода и это порой приводит к плохому контакту, перегреву и даже выскальзыванию проводов из разъемов (с коротким замыканием).

Штатная плата щедро залита клеем, который надо аккуратно удалить перед отключением всех коннекторов:

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

Изображение и описание от производителя Creality3D Upgrade Silent 4.2.7 Mainboard For Ender 3

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

Установка прошивки

Из существующих открытых прошивок для принтера Creality Ender 3 V2, мы выбрали mriscoc форк проекта Marlin, оптимизированный под принтеры Creality Ender 3 серии. Эта же прошивка на штатной матплате с процессором GD устанавливается, но не распознает CR Touch сенсор. А прошивка от производителя распознает, но автовыравнивание все равно не работает, так что разницы, по сути, и нет. После установки новой матплаты с STM процессором сенсор CR Touch работает и показывает отличную точность (подробнее ниже).

Мы попробовали две прошивки, базовую и с добавленной опцией Linear Advance:

  • Ender3V2-427-BLTUBL-MPC-20221222.bin на странице Ender3 V2/S1 Professional Firmware 20221222,
  • Experimental-Ender3V2-427-BLTUBL-LA-MPC-20221222.bin на странице Linear Advance (LA).

Установка заключается в копировании нужного .bin. файла на флэшку и при включении принтер автоматически загрузит новую прошивку (если она не совпадает с уже установленной). После установки нам доступно множество новых функций, посмотрим на самые важные для нас. Настройки мы добавляем в стартовый G-code слайсера, чтобы при обновлении прошивки не нужно было заново указывать все это на принтере.

Ретракты в прошивке (Firmware Retract)

Для лучшей переносимости G-кода можно настроить параметры ректакта на принтере, а в слайсере убрать их настройки и оставить только соответствующие коды для прошивки. Не самое лучшее решение для нас, потому что принтер у нас только один, а настройки ректакта в прошивке имеют меньше опций, чем в слайсере. Чтобы проверить, не использует ли слайсер эту опцию, достаточно в файле G-кода поискать команды G10 и G11 — если их нет, ретракты в прошивке не используются.

Мастер выравнивания рабочего стола (Bed Tramming)

Соответствующий пункт меню позволяет настраивать уровень рабочего стола интерактивно, см. Bed tramming menu:

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

Модель температуры сопла (MPC)

Для более точного управления температурой теперь можно провести замеры во всем диапазоне рабочих температур и при работе пользоваться измеренной зависимостью температуры от времени нагрева и мощности нагревательного элемента, см. Model Predictive Temperature Control support (MPC):

Запускаем автокалибровку (построение модели), немного ждем и все готово — параметры вычислены.

Модель температуры рабочего стола (Hotend-Bed PID)

Аналогично модели нагрева сопла оцениваются и параметры нагрева рабочего стола.

Мастер настройки сенсора автокалибровки (Z Probe Wizard)

Для использования сенсора нужно энкодером на контрольной панели принтера выбрать значение высоты Probe Z Offset срабатывания сенсора, см. 3D BLTouch:

Настройка положения сенсора уровня

В связи с очень неровной поверхностью рабочего стола важно точно определить расположение сенсора уровня относительно сопла — но в штатной прошивке эти параметры недоступны. В новой прошивке параметры задаются через соответствующее меню:

Автоматическое выравнивание (UBL)

Unified Bed Leveling (UBL) это метод измерения высот поверхности рабочего стола для узлов регулярной сетки размером от 3х3 до 9х9, ручного или интерполированного заполнения пропусков (если в каких-то точках сенсор не может выполнить измерения) и, опционально, сохранения готовой сетки в EEPROM. Поскольку измерения для больших сеток требуют немало времени, запускать построение сетки для каждой печати не обязательно (хотя и возможно), достаточно делать это при замене поверхности рабочего стола или механических изменений или настроек конструкции принтера.

Прежде чем заниматься настройкой автоматического выравнивания следует проверить работу сенсора автовыравнивания. Для этого в меню установленной прошивки доступен «M48 Probe Test» для оценки точности серии измерений в одной точке. Также это можно сделать с помощью консольных команд (в штатной прошивке не поддерживаются и оценить работу сенсора невозможно):

G28
M48 v4

Для нашего сенсора значение Standard Deviation получилось равным 0. 001 при допустимых значениях до 0.01. Значит, сенсор работает точно и можно переходить к настройке автовыравнивания.

Сама настройка сложностей не представляет — из меню запускается измерение значений высоты для регулярной сетки координат на рабочем столе, далее построенную сетку нужно сохранить (по умолчанию в слот 0 EEPROM). В прошивке есть опция загрузки меша, так что не обязательно указывать слот загрузки, а можно использовать активный (уже загруженный) меш. Только UBL меши сохраняются в EEPROM, так что все команды сохранения и загрузки из слотов EEPROM не могут быть использованы с другими методами автовыравнивания — это помогает отличить информацию по другим методам выравнивания, когда использованный метод не указан. Наш штатный стеклянный рабочий стол на сетке 9х9 имеет следующие вариации высоты:

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

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

Как результат значительных вариаций уровня, при использовании сетки 9х9 на штатном стекле адгезия оказывается хуже, чем для более грубой сетки 5х5. При желании, это можно компенсировать ручным редактированием значений, измерив уровни вокруг проблемных узлов и посчитав среднее значение или просто оценивая результаты печати. Указанные сложности связаны с гладкой поверхностью штатного стеклянного стола, при использовании более шероховатых поверхностей автовыравнивание «просто работает».

Подключаясь к принтеру через терминал, с помощью команды M420 T1 V1 легко получить измеренные значения сетки в формате CSV. Ниже приведены наши значения для сетки 9х9 (максимальный размер) и 5х5 (размер по умолчанию):

>>> M420 T1 V1
SENDING:M420 T1 V1
Bed Topography Report for CSV:
-0. 14   -0.14   -0.15   -0.13   -0.15   -0.14   -0.14   -0.15   -0.21
-0.14   -0.15   -0.15   -0.00   0.00    0.00    0.02    -0.18   -0.22
-0.15   -0.17   -0.02   -0.01   -0.00   0.00    0.01    0.03    -0.22
-0.18   -0.04   -0.04   -0.03   -0.03   -0.02   -0.00   0.00    -0.03
-0.19   -0.05   -0.06   -0.07   -0.07   -0.06   -0.04   -0.03   -0.08
-0.17   -0.05   -0.05   -0.05   -0.04   -0.03   -0.02   -0.01   -0.06
-0.18   -0.19   -0.04   -0.03   -0.03   -0.02   -0.00   0.01    -0.22
-0.18   -0.18   -0.19   -0.03   -0.02   -0.02   0.00    -0.17   -0.21
-0.18   -0.17   -0.16   -0.16   -0.15   -0.15   -0.14   -0.14   -0.20
Mesh is valid
>>> M420 T1 V1
SENDING:M420 T1 V1
Bed Topography Report for CSV:
0.01    0.01    0.03    0.03    -0.04
-0.01   -0.01   -0.01   0.00    -0.05
-0.06   -0.06   -0.07   -0.06   -0.11
-0.04   -0.05   -0.03   -0.01   -0.06
-0.04   -0.02   -0.01   0.01    -0.04
Mesh is valid

Максимальная вариация на расстоянии одной ячейки составляет 0.19 мм (от -0. 22 до -0.03) для шага 2.5 см и 0.06 мм (от -0.05 до -0.11) для шага 5 см соответственно у правой границы области измерений выше центра. Конечно, даже для слоя 0.2 мм подобная вариация поверхности приводит к невозможности выровнять первый слой. При печати с автовыравниванием на сетке 5х5 такой проблемы нет — просто потому, что узлы сетки оказались расположены более удачно и не попали в точки с большими отклонениями.

В слайсере к стартовому G-коду следует добавить команды (G28 уже есть, после нее дописать две следующие строки), см. 3D BLTouch:

G28 ; Home all axes
G29 L0 ; Load a valid mesh from slot 0
G29 A  ; Activate the UBL system

Есть и еще один код M420, который частично пересекается по функционалу с G29, в документации есть сравнительная табличка: Unified Bed Leveling. Команда ниже активирует авто-выравнивание, загрузит ранее сохраненный меш из EEPROM слота 0 и установит высоту компенсации 10 мм (компенсация линейно убывает до нуля и на указанной высоте слои будут печататься строго горизонтально):

M420 L0 S1 Z10

Допустимо также выполнять измерения при каждом запуске на печать, см. Unified Bed Leveling:

G28             ; Home XYZ
G29 P1          ; Do automated probing of the bed
G29 A           ; Activate the UBL System

Выравнивание давления филамента (Linear Advance)

Поскольку движение мотора экструдера не мгновенно приводит к изменению давления пластика в сопле, при печати возникают некоторые артефакты, связанные с недостатком или избытком пластика в нужный момент. Для частичного решения этой проблемы можно использовать в слайсере опции Coasting для уменьшения количества подаваемого пластика, и опцию Wipe для увеличения путем добавления небольшого холостого пробега для ожидания поступления нужного количества пластика в сопло. Опции эти полезны, но они оперируют разными параметрами и довольно сложны в использовании. Linear Advance обещает решить эти проблемы разом, отказавшись от (странной) идеи, что перемещения экструдера не отличаются от перемещения по пространственным осям и используя некоторую модель для предсказания потока пластика в сопле.

Для использования опции необходимо установить версию прошивки с поддержкой Linear Advance и потребуется определить значение единственного параметра K-factor. Существует стандартный тест Marlin K-factor Calibration Pattern, но у нас он напечатал только одну линию с набором клякс по краю рабочего стола, так что мы снова обратились к стандартному набору тестов Calibration-Shapes в Cura. Нужный нам тест требует нескольких трюков, которые описаны на его официальной страничке Linear Pressure Advance Tower, а еще вместо указанного «Marlin Linear Advance» следует в настройках постобработки искать «Marlin Linear»:

Мы провели тест для трех разных скоростей печати при толщине слоя 0.2 мм, получив следующие результаты (Value Increment 0.01 соответствует делению на 100):

  • разницы нет для скорости 20 мм/с Outer Wall Speed/Inner Wall Speed,

  • 19.2 мм/0.2 мм/100 = 0.96 — для скорости 40 мм/с Outer Wall Speed/Inner Wall Speed,

  • 13. 2мм/0.2 мм/100 = 0.66 — для скорости 80 мм/с Outer Wall Speed/Inner Wall Speed.

Поскольку по умолчанию скорость печати стен (Wall Speed) равна половине общей скорости печати, то K-factor 0.96 подходит для скоростей печати до 80 мм/с (притом, что для использованного пластика производитель рекомендует скорость печати до 60 мм/с).

Добавим к стартовому G-коду слайсера команду установки выбранного значения K-factor:

M900 K0.960 ; K-factor

После настройки Linear Advance тест для определения дистанции ретракшена показывает уже значение 1.5 мм вместо прежних 3 мм.

Подавление резонанса (Input Shaping)

Этой опции в опробованных нами прошивках нет, но она доступна в сборке Input Shaping (IS) Возможность пока в статусе экспериментальной для проекта Marlin (и всех его форков), а детальное описание доступно в документации проекта Klipper: Resonance Compensation Кроме того, в Klipper возможна автоматическая оценка параметров, используя акселерометры, к примеру, актуальное руководство доступно по ссылке Klipper Input Shaping for Ender 3 — All You Need to Know Для высокой скорости печати компенсация резонанса необходима, вопрос лишь, как ее выполнять. Дело в том, что в первую очередь следует бороться с резонансом настройкой принтера, а уж потом переходить к программной компенсации — иначе частоты резонанса окажутся плавающими и настройка будет требоваться постоянно (об этом есть упоминания в документации по ссылкам выше). Так что мы начнем с установки уголков на фрейм, второй вертикальной оси, CNC уголков и гибких муфт с гасящей вибрации вставкой на моторы вертикальных осей, а потом можно будет оценить, нужна ли нам программная компенсация вибраций. Сама по себе задача интересная и важная, так что рассмотреть эту тему стоит — но начинать с настройки «железа».

Отображение превью (G-code Preview)

Установленная прошивка умеет показывать превью для G-code файлов, как описано на странице How to generate a gcode preview Мы установили и настроили расширение к Cura согласно описанию, но на нашем принтере отображается пустое место вместо превью:

Как сказано по ссылке выше, в новых Ender 3 v2 установлен экран DACAI, который не поддерживает отображение картинки. Итак, теперь-то мы знаем, какой у нас установлен экран — и нам еще повезло, потому что другие пользователи сообщают, что у них Ender 3 v2 зависает при попытке отобразить превью. А вот первые выпущенные принтеры этой модели не имеют проблем с отображением превью. Притом, приобрести совместимый экран на замену практически невозможно, так как тип экрана продавцами не указывается.

Результаты

Удобство использования принтера дело вкуса, а вот возможности получить точную информацию о качестве измерений сенсора уровня (дисперсию), значения высот по всей поверхности рабочего стола (через терминал можно замерять с произвольным шагом) и, наконец-то, использовать автовыравнивание — это действительно значительные изменения в работе с устройством. Отметим, что для штатного стеклянного покрытия рабочего стола автовыравнивание оказывается делом затейливым — значения высот поверхности настолько варьируются, что измерения в одной точке не представительны для вычисления смещения ячейки сетки измерений.

Посмотрим, как изменилось основание модели 3DBenchy при ручном выравнивании для стоковой прошивки (слева) и автовыравнивании для открытой прошивки (справа):

Здесь автовыравнивание обеспечило значительное улучшение четкости текста на нижней поверхности модели.

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

Разница не очень большая, но на правой модели более гладкая поверхность трубы сверху и еще чуть поменьше артефактов. Притом, правая модель напечатана за 1 час 40 минут вместо 2 часов 20 минут за счет увеличения толщины слоя с 0. 12 до 0.2 мм, и результат получился даже лучше прежнего.

Еще некоторые улучшения может обеспечить функция Linear Advance, рассмотренная выше. Согласно нашим тестам, разница ожидается при скорости печати от 80 мм/с. Поскольку штатный вентилятор не справится с нависающими элементами при такой скорости печати, мы включим опцию слайсера «Enable Bridge Settings» для замедленной печати перекрытий, чтобы они успевали остывать. На фото ниже показаны результаты печати при скорости 40 мм/с (слева) и 80 мм/с (справа):

При скорости 40 мм/с разницы между включенным и выключенным Linear Advance нет, как и ожидалось по результатам тестов выше. При удвоении скорости печати разницы тоже почти нет — в то время как на стоковой прошивке без этой функции результаты печати кардинально ухудшались при превышении рекомендованной производителем скорости 60 мм/с. Таким образом, Linear Advance позволяет печатать заметно быстрее при сохранении примерно того же качества результата.

Заключение

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

Компания Creality, ранее рекламировавшая свой принтер Ender 3 v2 как открытый продукт, на самом деле идет в обратном направлении — процессор, исподтишка замененный на не поддерживаемый даже производителем принтера, приводит к невозможности использования официально совместимой периферии (датчик филамента, сенсор CR Touch) и открытых прошивок. Судя по нашим результатам, проблема с CR Touch в официальной прошивке заключается в том, что она не справляется с автовыравниванием на столь кривой поверхности рабочего стола, используя один из простых алгоритмов с жестко заданными параметрами — притом, что официально заявлена совместимость сенсора CR Touch с принтером Ender 3 v2.

В качестве конструктора принтер оказался тем еще приключением, и мы продолжим этот путь — впереди много интересного.

Также смотрите

  • Мои статьи на Хабре

  • Работа с ГИС и ГЕО данными на LinkedIn

  • Геологические модели и код на GitHub

  • YouTube канал с геологическими моделями

  • Геологические модели в виртуальной/дополненной реальности (VR/AR)

  • PyGMTSAR InSAR Docker образы на DockerHub

5 обновлений материнской платы Best Ender 3 (Pro/V2/S1) в 2023 году