Вот вы знаете, что такое настоящий вселенский факап? Недавно я полностью ощутил это на своей шкуре. Надеюсь, текст будет полезен начинающим 3D печатникам, так как проблема не единичная, но найти решение было непросто и даже я, старый атеист, чуть не поверил в чудеса. Простите за изложение, так как я не писатель и не блогер, а простой инженер — фирмварщик.

Кроме того, текст рассчитан на людей, имеющих минимальный опыт с 3D печатью.

Исключительно по причине не раздувать статью и не объяснять назначение разных деталей и сленговых словечек. Начну с предыстории. Чуть меньше года назад купил себе недорогой 3D принтер. Один из самых популярных (не на правах рекламы, а что бы было понятно о чем речь) — Ender 3. Сборка была несложная, в Сети есть много рекомендаций. Конечно, собирая его по инструкции — получил бы нерабочий агрегат, но предварительно «покурив мануалы», удалось выполнить первую пробную печать на 5 с плюсом для такой простой машинки! Все было хорошо до определенного момента. Но дальше началось…

image

Если интересно что, добро пожаловать.

Для тех, кому лень читать:
Сломался рычаг прижимного ролика экструдера.

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

Где то часть слоя выпадет, где то пластик подгорит. Калибровал стол «по бумажке», грешил на пластик и сопло, менял настройки в слайсере, пластики и сопла — проблемы исчезали. Пока…
В один «прекрасный» момент столкнулся с «неразрешимой» проблемой. Конец марта, плавный перевод на удаленку (я удачно переехал из Подмосковья в Минск 2 годами раньше), решил собрать отдельный компьютер для работы из того, что было. В загашниках лежала неплохая материнская плата, процессор, пару мониторов и 2 корпуса. Один — огромный полноценный ATX, другой — barebone. Решил собрать в маленьком, чтоб места меньше занимал. Корпус нестандартный. С кредлом на 1 CD привод и 3.5 дюймовый винчестер. У меня же нашлось 3x 2.5 SATA SSD небольшого объема, под систему и одного хватит «более чем» и 1x на 1Tb 2.5 HDD.

Вся эта «живность» размещалась в большом корпусе на самодельном переходнике из старых банковских карт. Но, раз уже появился принтер, неплохо бы им воспользоваться. Создал модельку держателя, поставил на печать и пошел заниматься своими делами. Когда посмотрел, как печатает — увидел только лапшу… С этого момента пошел путь ремонта, длинною в 2 месяца. Постараюсь расписать по полочкам, что помогало, а что нет и в чем была первопричина.

Шаг 1. Настройка роликов {профилактика — всегда полезно}


В очередной раз настроил стол «по бумажке», запустил — пластик не липнет. Менял настройки, пластики — без результата. Вместо того, чтоб клеиться к столу, загибается на сопло. Когда перепроверял настройки зазора сопла, обнаружил, что разболтались ролики и стол люфтит почти на 5мм по краям. Странно, как он вообще до этого печатал… Казалось, причина найдена. Отрегулировал. Но лучше почти не стало. С горем пополам напечатал деталь, но качество оставляло желать лучшего:

image

Видны явные пропуски в печати.

image

А вот и расслоения…

Шаг 2. Песнь о Зе[ль]де {неплохо, когда все идет, как по маслу}


Первое, что пришло в голову — проблема в приводе оси Z. И все советы на форумах по проблеме, похожую на мою, указывали на это. Разобрал, проверил плавность хода. Гайка немного закусывала резьбу и нашел «баг» в паре роликов. При перемещении без винта привода, рельса «X» немного залипала на 1 оборот ролика. Заказал приводную гайку, ролики (запчасти — всегда хорошо, но дело было не в этом). Методом комбинаторики и какой то матери распределил ролики оси по нагрузкам так, чтобы на бракованные приходилось минимальное усилие. «Закусывание» пропало. Очистил и смазал винт привода. Отрегулировал положение его двигателя. В результате — легкого прикосновения пальца хватает, чтобы опустить каретку вниз. Результат — отрицательный.

Шаг 3. Слайсер {тюнинг, но не решение проблемы}


Обновил слайсер. Тем более, что в новом релизе как раз было улучшение, связанное именно с качеством печати для моего принтера. Поигрался с потоком и скоростью, толщиной слоев и т. д. Даже успешно напечатал несколько простых небольших корпусов и деталей. Но настройки были откровенно дикие: поток — +10%, скорость — -5%. Учитывая, что после сборки получалась отличная печать на настройках «по умолчанию». Проблема печати сложных деталей не исчезла…

image

По мотивам этой статьи: https://habr.com/ru/post/494058/ сделал для дочки таймер чистки зубов. По нему готовлю отдельное описание. Спойлер: восьминогий контроллер, прошивка — 119 ассемблерных команд.

Шаг 3. Экструдер {а счастье было так близко…}


Логика подсказывает, раз по геометрии и приводам осей проблем нет, должно быть что то с подачей. Снял шестерню подачи филамента, почистил. Видимого износа не наблюдается. Вернул на место, немного сместив по вылету, для выравнивания износа. Результат — 0. Эх, посмотри я тогда чуть правее, сэкономил бы месяц нервов и 200$.

Шаг 4. Проверка драйверов ШД {без комментариев}


Отличная геометрия, нет проблем с механикой. На момент первой сборки все было гораздо хуже. Куча изученных материалов, доработок и настроек, а результат — нулевой. Я в чудеса не верю, осталась электроника. Тем более форумчане часто жалуются на сгоревшие драйверы. Понятно, что полностью выгоревшее плече моста можно обнаружить «на глаз» сразу, подумал про «плавающую» неисправность. Ведь пластик ложиться нормально, потом — пропуски, нить утончается, волосы и остальные прелести. Заказал улучшенную плату управления на ARMе, но, чтоб не терять время, решил проверить имеющуюся. Снял плату, двигатель оси Z в качестве индуктивной нагрузки, собрал стенд на столе, резистором установил температуру хотэнда, чтобы и экструдер можно было покрутить. Посмотрел осциллограммы на катушках ШД. Все отлично. Грел драйвер феном (дефект кристалла или разварки иногда проявляется), механически воздействовал на ИС драйвера, охлаждал пропан бутаном (газ для зажигалок). Примечание. Вполне себе неплохо охлаждает до -20, не обязательно для этого дорогой фризер покупать. Все отлично. Сбоев не видно!

Шаг 5. Обновление «прошивки» {а я почти поверил в чудо и теорию заговора}


Нет, я точно уверен, что чудес не бывает. Бывают баги, глюки, фокусы, недостаток информации, субъективное восприятие реальности, в конце концов. Но не чудеса! Но как объяснить, что при исправной механике и электронике печать ведет себя крайне странно? Китайцы сделали закладку в FW чтобы платами дополнительно барыжить? Делается элементарно, но, думаю, уже давно бы обнаружили и торговой марке пришла бы белая пушистая лисица. Баг в прошивке? Все может быть, только как то странно он проявился.

Сбились настройки в EEPROM или «подглючивает» FLASH*? Наиболее вероятно. Ладно, раз плата на столе, ничего не мешает ее перепрошить. Обновился до «ванильного» Марлина 1.1.9, собрал все обратно. Результат — чуда не произошло.

*Чисто теоретическое обоснование возможности связи проблемы с FLASH памятью:
Допустим, у нас есть следующий фрагмент кода:

const uint8_t step = 0x18;

position += step;

На каждой итерации к текущей позиции прибавляется уставка «step». Так так как программа выполняется на микроконтроллере (МК), код и константы размещены в ПЗУ и изменяться могут только при внешней процедуре программирования (опустим возможности перепрограммирования FLASH памяти внутренними средствами МК). Процедура эта выполняется 1 раз изготовителем. Теперь 2 важных момента: процессор контроллера каждый раз читает команды и константы из ПЗУ, забудем про кэши, у Атмеги их нет. То есть, если цикл прошел 1000000 итераций, то и константа была прочитана тот же миллион раз. При каждом чтении FLASH немного деградирует. Не знаю, каков критический порог чтений для NOR, думаю, десятки миллиардов, но TLC NAND уже неплохо так деградирует после 10-20К чтений… Второй момент — не факт, что наши узкоглазые друзья не использовали отбракованные контроллеры. Мне реально один раз пришли такие. PICи. Не паяные, но на корпусе — странные пометки. FLASH оказалась не стертой, при 3.6В ни стереться ни прошиваться не хотели. Пришлось до 5В поднимать, после чего запись / верификация стали проходить. Допустим, наша константа была записана в бракованную ячейку. Пока устройство новое — 0x18 стабильно читалось. Но от времени (а для Атмег гарантированное время сохранения данных не самое большое) и деградации, в какой то момент стало читаться не 0x18, а 0x08. Не каждый раз, но все же. Знаю, скорее не 1 в 0 деградирует, а наоборот, это — исключительно для примера. Так вот, пока стабильно читается нужное число, перемещение происходит корректно, но когда происходят сбои, к результату прибавляется неверная уставка, что приводит к сбоям подачи. Это самый простой и маловероятный пример. Могут быть другие глюки, например, в команде сложения источник R6 изменится на R7. Ассемблерная команда остается валидной, процессор ее выполнит, но результат будет неверен…

Шаг 6. Промываем «горло» {держи голову в холоде, а хотэнд — в чистоте, рекомендую сделать это сразу после покупки принтера}


Подарком «небес» была ссылка на одном из форумов на ролик от производителя. Там они честно признаются, что не все хотэнды одинаково полезны, то есть хорошо собраны.

Тефлоновая трубка не до конца запрессована, срез не ровный. Следствие — образование пробки и экструдер не может нормально продвигать пластик. Вот оно — мой случай!

Ненормальные значения потока и ретракта, все сходится. Несмотря на поздний вечер Субботы и посещение пивного ресторана, решил проверить. Точно. Гуана там немерено, вплоть до остатков пластика, которым печатал месяц назад (тот самый зеленый держатель). Очень вероятно — победа! Прочистил «горло», обрезал трубку ровно, запрессовал до упора, так же зафиксировал второй конец трубки поплотнее, многие используют изоленту, но я намотал немного провода 0.7, что позволяет свободно откручивать держатель:

image

А вот и «убитый» конец трубки, видно, что обрезан криво:

image

Модель режется на слои с настройками по умолчанию. Печать… Кайма пошла, контур пошел, соплей при ретракте нет. Ура!!! Победа!!! Уже собрался написать статью, чтобы другие не мучились, но… Полное фиаско. Утончение и разрывы пластика, пропуски при печати. Уже готов сдаться. Жена подбадривает, да выкинь ты его, купи новый! Не могу так. Должна же быть причина. Вот только где??? Разумных (и цензурных) мыслей уже не было…

Ремарка про чистку «горла»:
Все операции с хотэндом делаются только «на горячее», иначе есть шанс все сломать. После прогрева, первым делом снимается сопло и очищается от остатков «пробки». Я делал это, нагрев сопло на пламени газовой плиты и аккуратно удалил пластик. Внутренности не чистил. Потом, так же на нагретом хотенде, откручивается фиксатор трубки. Двигаться он может только вверх. После отвода фиксатора, трубка аккуратно, но с усилием должна быть извлечена из «горла». Снимаем все фиксаторы, так как испорченный конец все равно не сохранить, аккуратно, возвратно — поступательным движением вычищаем всю грязь, постоянно снимая ее с трубки. В результате, трубка должна спокойно проходить через горло насквозь. Сборка производилась последовательности FIFO. Вначале установил сопло, потом фиксатор трубки в хотэнде, но не затягивал его полностью, оставив где то 1 оборот. Изношенная часть трубки обрезается под прямым углом и до упора устанавливается в горло. После чего затягивается держатель и устанавливается второй, на противоположную сторону «тефлона».

Шаг 7. Калибровка подачи {при исправной механике, скорее всего не понадобится, если только после замены деталей приводов или перепрошивке}


В инструкции по обновлению до «ванильного» Марлина было сказано, что для заводского принтера все настройки — идеальные, но может немного уйти точность подачи пластика. Ладно, будем калибровать. Вытащил пластик, разогрел хотэнд (в прошивке блокировка, на холодный не позволяет перемещать «E»). Открутил трубку от механизма подачи, обрезал пластик заподлицо и выполнил команду экструзии 300мм. Линейка у меня на 350. Экструзия длиться достаточно долго, по завершению измерил длину вышедшего филамента и глазам своим не поверил 226мм. Понимаю разницу в 3-5%, но не в 25%! попробую другой пластик…

Примечание. Видел, как подачу регулируют по нанесенным маркером отметкам на прутке, Но с отрезанием, ИХМО, точнее.

Подготовка к тестовой экструзии:

image

После экструзии:

image

Измеряем линейкой, в моем случае (после ремонта) получилось 292мм. Далее идем в меню: control / motion / step mm, смотрим, сколько шагов на мм установлено для экструдера. В моем случае — 93. Выполняем простое вычисление:

>>> (300*93)/292
95.54794520547945

Изменяем уставку и сохраняем настройку. Повторная экструзия — погрешность на уровне измерения.

Шаг 8. Победа!


Вначале я проверял на PETG, решил поменять на PLA. Первый я немного перегрел при сушке, неадекватный разброс списал на возможное залипание на катушке. Обрезание, экструзия. И ничего. Пластик вообще не подается. Ось привода вращается, медленно, но по винтам видно, что движение есть. Посмотрел, пруток неправильно лег между шестерней и прижимным роликом. Ладно, правлю. Что то ролик немного болтается. Надо подтянуть. А фиг! Вот он виновник всех моих бед:

image

Рычаг прижимного ролика треснул. При этом сила прижима осталась достаточной для частичного продвижения прутка. Следы от шестерни оставались и прижимной ролик вращался.

Соответственно, все игры с настройкой прижимной пружины оказались безуспешны. Проскоки прутка были незаметны на глаз, а трещину невозможно было увидеть на собранном механизме. Все! Экстаз инженера получен! Рычаг был склеен, заказан алюминиевый механизм, на всякий случай напечатан запасной (если сломается, пока буду ждать новый). Вот ссылка на модель. Конечно, неприятно из за такой мелочи столько времени и денег потратить, но это помогло мне намного более глубоко погрузиться в процессы печати и отлова глюков.

Собственно, первая деталь после ремонта. Прижимной рычаг:

image

Наконец, мой датчик присутствия обрел «морду». Корпус печатался еще до поломки:

image

Попытки напечатать «морду» на неисправном принтере (после чистки «горла»):

image

Надеюсь, данный материал хоть кому то поможет не совершить столько глупых попыток поиска примитивной неисправности и сэкономит деньги. Конечно, я не каждый вечер занимался проблемой, но в общей сложности — сутки, наверное, были потрачены. По деньгам — около 200$ на запчасти. Цена устранения неисправности — 15 минут и пару капель «суперклея». Обидно? Скорее нет, так как опыт и запчасти останутся со мной!

Всем гладкой печати и отменной адгезии!