Скачет температура экструдера 3d принтера
У экструдера есть собственные настройки. Они влияют на качество печати. В частности, нужно задать такие параметры, в которых моторчик подачи филамента будет выпускать заданное количество пластика. В противном случае могут появиться дефекты печати. Модель будет испорчена. Чтобы этого избежать, делают калибровку PID-экструдера.
Зачем нужна настройка PID-экструдера 3D-принтера?
Точная настройка задает параметры в G-code, которые делают печать прогнозируемой и точной. Калибровка экструдера может потребоваться в случае:
- Когда устройство начало выдавать дефекты печати, связанные с настройкой печатной головки.
- Если пользователь модернизировал систему: установил новый моторчик, вентилятор, нагреватель или весь экструдер в сборе.
Точная калибровка позволяет добиться последовательной печати. Для данного процесса потребуется подключить принтер к ПК или ноутбуку, а также скачать специальное ПО.
Внимание! Одним из признаков неверной калибровки может стать появление ошибки THERMAL RUNAWAY при работе принтера. Это говорит о скачках температуры внутри экструдера.
Пошаговая инструкция по калибровке
Интерфейс программы PRONTERFACE.
Разберем пошаговое руководство по установке верных параметров для настройки PID-экструдера:
Ввод основной команды и получение коэффициентов PID.
После данных манипуляций должны уйти проблемы со скачками температуры.
Внимание! Все команды вводятся без кавычек. Звездочки в коэффициентах соответствуют числовым значениям, которые показывает программа.
Как не допустить ошибок при регулировке PID-стола 3D-принтера?
Здесь мы приведем самые частые ошибки и методы их решений:
- При установке порта нужно выставить скорость подключения 25 000. Если программа не видит принтер и соединение не устанавливается, нужно нажать на кнопку Reset. Принтер перезагрузится дистанционно, программа попробует заново подключиться. Выполняете это действие до тех пор, пока соединение не будет установлено. Это особенность данного ПО.
- Иногда ошибка THERMAL RUNAWAY остается в системе. Возможно, принтеру нужно откалибровать нагревательный стол. Эту операцию делают по аналогичному алгоритму. Немного изменяется начальная команда: M303 E-1 S* C10, где E-1 – это обозначение калибровки стола, а S* – тестовая температура нагрева стола.
- Полученные данные можно внести вручную в память принтера. Для этого перейдите в настройки девайса (Settings), найдите расширенные параметры (Advanced Settings), после чего перейдите к настройкам P, I, D. Введите данные вручную, сохраните полученный результат (Store settings). Так можно внести PID-данные как по экструдеру, так и по столу.
- Чтобы проверить, сохранились настройки в системе или нет, отправьте команду M503.
Ручной ввод коэффициентов PID.
Будьте внимательны при вводе команд и значений. Можно сохранить параметр PID в отдельный текстовый документ и уже из него копировать данные.
Процесс калибровки экструдера – это важная вещь. Без нее принтер будет работать некорректно, начнут появляться ошибки, дефекты печати. Выполняйте процесс калибровки поэтапно, и у вас не возникнет проблем с настройкой.
Давненько я не писал занудных статей. Но то, что я хочу высказать сегодня - коротко не сформулируешь. В общем, началось всё с того, что забросил Гугль меня на один ресурс, на одну очень замечательную статью. Ресурс я тот уже много лет не посещаю из-за несогласия с действиями администрации в мой адрес, но когда поисковик меня туда забрасывает (читаем: счётчик посещений всё равно увеличился), статьи читаю. Статья была очень и очень замечательная. Там автор победил скачки температуры, запитав дисплей своего принтера от отдельного стабилизатора +5 вольт. Сразу скажу, вторая часть моей статьи полностью подтвердит методику того автора, но рассказ я буду вести в той последовательности, в которой шли мои проверки.
Итак. У меня есть два принтера. Первый - MZ3D, в который я пару лет назад засунул плату на базе микроконтроллера ARM, самостоятельно "доточив" штатный исходный код от Arduino. Тогда у меня тоже были большие проблемы со стабильностью температуры. Я отнёс их к тому, что не совсем корректно реализовал поддержку АЦП. Будучи человеком ленивым, я тогда просто изменил алгоритм усреднения, благо в STM32F4 АЦП работает быстрее, чем в AtMega. Я просто набирал большую выборку, далее - усреднял, после чего - откидывал все результаты, которые сильно отличались от среднего значения, затем - усреднял, что осталось. Тогда это позволило принтеру не тормозить по 5-10 минут перед запуском печати, ожидая стабильных показаний термодатчика (при том, что вообще-то принтер уже прогрет).
Но второй мой принтер - китайская Дельта. И у него тоже есть проблемы. Он может начать печатать сразу, а может - долго и вдумчиво "тупить", считая, что температура не стабильна. Поэтому я решил проверить доводы автора оригинальной статьи. Мне очень не нравится ждать начала печати по 7-10 минут.
Скажем так, когда я оторвал дисплей, стабильность всё равно была такая, что принтер тупил. Тут-то я и вспомнил события пятнадцатилетней давности. Тогда наша контора делала поддержку USB для одного контроллера, при помощи внешнего моста PDIUSBD12. У ребят всё было написано верно, но ничего не работало, и мы начали разбираться в деталях. Выяснилось, что фронты сильно шумят. Сначала мы просто вносили задержки при анализе. Но потом стало ясно, что длительность шумов - штука непостоянная, а если сделать задержки гарантированно большими, то быстродействие системы станет неприемлемым. Поэтому пришлось разбираться с физикой процесса.
Времена были дикими, мы выживали как могли, но через три дня один из сотрудников сумел по очень серьёзному знакомству выпросить во временное пользование жутко дорогую и дефицитную вещь - осциллограф. Ещё аналоговый. Ладно, долой ностальгию, даёшь только суть! А суть была следующей: Все сигналы были промодулированы синусоидой. Поэтому фронты на осциллограмме выглядели примерно так:
И оцифровывалось это примерно так:
Реально частота была чуть иной, поэтому дребезг на фронтах был жуткий. А всё потому, что Заказчики дали нам две платы. На одной был контроллер, на другой - тот самый PDIUSBD12. И соединены они были метровым кабелем. Одна плата передавала на другую тактовые импульсы (несколько мегагерц). А длинный провод - это же как конденсатор. Есть обкладки (токоведущие жилы), есть - диэлектрик. Провод длинный - площадь обкладок велика. Посему переменный ток тактовой частоты создавал емкостные наводки на все остальные линии.
Выкинули провод - фронты стали идеальными. Почему я вспомнил о том проекте? А вот почему:
Перед нами - длинный кабель, в котором тоже есть импульсы - ШИМ контроллер, питающий нагреватель. В MZ3D кабель короче, но зато в нём ещё две обмотки шагового двигателя получают импульсы (правда, в них фронты не прямоугольные, да и во время прогрева головки, там нет импульсов, но всё же).
Ну что ж. Подключаемся к выходу этого кабеля осциллографом и смотрим. Пока идёт равномерный прогрев хотэнда - там всё чистенько. Но когда включается ШИМ (а PID контроллер начинает играть им за 10 градусов до требуемой температуры) - начинается веселуха
Правда, мнения разделились. Мой знакомый уверял, что такой импульс не может влиять на АЦП. Тем не менее, я решил попытаться его задавить.
Я вижу два варианта. Первый - заэкранировать провод, идущий к термистору. Так получилось, что я играл в это дело на новогодних каникулах, поэтому сходить в магазин за проводом МГТФ-Э было невозможно, так что этот вариант был отброшен. Второй типовой вариант - отделить АЦП от шумящего кабеля проходным низкоомным резистором. Здесь только важна точка его включения. Вот так выглядит схема нашего узла
Резистор R и термистор образуют делитель напряжения. В зависимости от температуры, сопротивление термистора изменяется, в результате - изменяется коэффициент деления. Ну, а значит - напряжение на линии, уходящей к АЦП. Ну, а конденсатор C фильтрует это напряжение. А молния бьёт по проводам. И конденсатор не справляется с этой фильтрацией. Причём в MZ3D у меня с момента переделки стоит керамика, это не помогает.
Если включить проходной резистор где-то левее точки подключения резистора R, то изменится коэффициент деления. Поэтому проходной резистор следует включать уже после делителя, но до конденсатора. Этот новый резистор в паре с конденсатором, образуют RC фильтр
Сопротивление резистора я выбрал 56 Ом. Ну, потому что мне в куче резисторов первыми попались низкоомные именно этого номинала. Возможно, имеет смысл задуматься насчёт 100 Ом. Но я уже подслеповат, поэтому лишний раз перепаивать резисторы 0805 для проверки не очень хочется. Так что у меня стоят на 56 Ом.
После указанной доработки, поведение принтеров стало различаться. MZ3D стал работать идеально. Все шевеления температуры ушли. А вот Дельта - хоть и стала стабильно стартовать, но всё равно температура продолжала плясать. Просто получается, она стала плясать в пределах трёх градусов, заложенных в "прошивке" на допустимую погрешность. В целом, можно было бы так и оставить, но раз уж маховик доработок раскручен, я решил попытаться довести дело до конца.
И вот тут выяснилось, что в некоторых местах платы MKS Gen v1.4, напряжение питания выглядит вот так:
Как минимум 0.3 вольта пульсаций! А если мы внимательно посмотрим на схему выше, то увидим, что питающее напряжение крайне важно. Именно относительно него АЦП проводит замеры (так уж заложено в "прошивке"). Причём повторю, в разных местах платы пульсации разные, поэтому контроллер берёт одно опорное, а делитель из резистора R и термистора - делит совсем другое. Если дисплей отключён, то напряжение становится таким:
Уже лучше. Именно этого добился автор статьи, сподвигнувшей меня на возню. Но всё-таки пульсации есть. Теперь смотрим, что частота пульсаций - примерно 230 КГц
наверняка это частота работы импульсного стабилизатора. Но давайте докажем это от противного. Поставим вот такой здоровенный электролит на плату дисплея.
Осциллограмма напряжения на основной плате не изменилась. Что и требовалось доказать. Это не помеха от внешнего дисплея. Просто ёмкость установленных на ней конденсаторов так мала, что её не хватает для удержания напряжения на более-менее постоянном уровне. Добавим этой ёмкости.
Вообще-то то, что я сделал - делать не стоит. Конденсаторы на плату следовало бы напаять. У разъёмов имеется условно высокое сопротивление, плюс - от вибрации они могут начать дребезжать. Но мне так уже надоело собирать и разбирать принтеры, что я бы не вынес ещё одного полного отключения платы, а затем - её подключения. Поэтому пока что сделал временный вариант. Напаял конденсаторы на разъёмы и подключил их к плате вот так:
Я насадил их на разъём программирования SPI (так как он расположен рядом с контроллером) и на тот же разъём, к которому подключён дисплей (потому что это - самый большой потребитель).
Осциллограмма питающего напряжения стала просто-таки замечательной. Остались какие-то ВЧ помехи, а частота импульсного преобразователя - ушла.
Нестабильность температуры стала не случайная, а периодическая. Было ясно, что просто PID регулятор не выходит на стабильный участок. Поэтому я его быстренько перекалибровал командой
M303 S220
Затем - вбил получившиеся значения. У меня это было
M301 P19.17 I1.81 D50.64
и сохранил их в EEPROM
M500
После этого, график температуры стал вот таким:
Его почти не видно за красной линией, такой он прямой.
Собственно, всё. Мои проблемы - решены. Теперь делаем выводы:
Заключение
Китайские схемотехники делают достаточно большое количество оплошностей. Часть оплошностей автор уже описывал в предыдущих статьях, часть - описана в настоящей статье.
Иногда проблема имеет сразу несколько причин. В частности, у модифицированного MZ3D причина была одна, а у Дельты - сразу две.
Пляски температуры - это никакие не пляски. Это галлюцинации, которые возникают у "прошивки" на основе неверных показаний, считываемых с АЦП. Но попытки компенсации кажущихся плясок температуры, приводят к реальным пляскам.
Одна из возможных причин галлюцинаций - емкостные наводки в длинном кабеле, вызванные двенадцати или даже двадцатичетврёхвольтовыми импульсами, подаваемыми ШИМ-контроллером в нагреватель. Для их устранения можно попытаться применять экранированный кабель к термистору (не проверено), а можно - добавить проходной резистор, заменив чисто емкостной фильтр на RC-фильтр. Важно только не изменить коэффициент деления в делителе напряжения. У автора это решило проблемы галлюцинаций на модифицированном MZ3D и уменьшило уровень галлюцинаций на Дельте, но не устранило их полностью.
Плата MKS Gen v1.4 хоть и содержит импульсный стабилизатор (который в теории даёт больший ток, чем линейный), но суммарная ёмкость установленных на ней конденсаторов такова, что при потреблении, заложенном производителем DIY-комплекта, получаются большие пульсации по питанию, приводящие к галлюцинациям скачков температуры. Таким образом, совершенно не обязательно питать дисплей от отдельного источника, можно просто добавить конденсаторов на основную плату MKS Gen v1.4.
После устранения всех помех, следует произвести повторную калибровку PID-регулятора
В статье мы постараемся подробно разобрать вопросы возникающие с колебанием температурного режима при работе 3Д принтера. Ниже описаны самые распространенные проблемы и вопросы пользователей 3Д принтеров. Тысячи часов профессиональной 3D-печати за нашей спиной, чтобы помочь вам справится с вашим 3Д принтером.
Температура Hotend колеблется вокруг заданной температуры
Хотим отметить, что колебания до ± 10 °C вокруг заданной температуры во время предварительного нагрева и печати считается нормой.
После начального нагрева встроенное программное обеспечение 3D принтера имеет алгоритм управления пропорционально-интегральной производной (PID), который стабилизирует значения, когда она достигает ± 10 °C от целевой температуры. ПИД-регулятор также помогает поддерживать температуру во время печати.
Если есть частые колебания, которые превышают 10 °C, или выравнивания занимает более 2 минут, при стабилизации к заданной температуре, сначала убедитесь в правильности установки вентиляторов, головка и термодатчик должны быть незагрязненные остатками пластика. Возможно не откалиброван PID.
Откалибруйте его следующим образом:
1. Подключите ваш 3Д принтер к компьютеру через USB.
2. Запустите Repetier Host (Pronterface ) и подключитесь к принтеру.
3. Используйте команду [M303 C8 S235] (C = циклы и S = заданная температура) и дождитесь ее запуска и возврата с измеренными значениями [kp] [ki] [kd] на консоли. Чем больше циклов (C), тем точнее может быть калибровка.
4. На панели управления принтера перейдите к Конфигурация => Конфигурация EEPROM и измените значения [PID-P] [PID-I] [PID-D].
5. Нажмите «ОК», чтобы сохранить новые настройки PID.
Проблемы с нагреванием
Температура не увеличивается
Означает проблему с керамическим нагревателем на печатающей головке.
Выполните действия по диагностике:
Используйте мультиметр и измерьте сопротивление на его клеммах. Измеримое сопротивление покажет, что оно работает нормально. Сопротивление -1 будет означать, что сам нагреватель поврежден.
Проверьте на появления плохих соединений во всех точках между нагревателем и платой управления.
Проверьте, не потрескалась ли керамическая нагревательная пластина в нагревательном блоке.
Показания температуры 0 ° C
Указывает на проблему с термистором. Чтобы проверить, не поврежден ли он, используйте мультиметр для измерения сопротивления на его клеммах. Измеренное сопротивление должно упасть около 100К, тогда как сопротивление -1 будет означать, что оно повреждено.
Также проверьте все соединения между термистором и платой управления, может вызывать скачки температуры во время печати.
Иногда происходит облом проводов в соединении терморезистора и провода. Это происходит из-за некачественной пайки, или неаккуратного оборачивания проводов у основания нагревательного блока 3Д принтера.
Неправильное чтение температуры.
Причиной этой проблемы, вероятно, является то, что термистор не на своем месте т.е. каким то образом выпал из своего посадочного места. Аккуратно переместите терморезистор обратно в центр отверстия так, чтобы датчик не касался своими проводами за края отверстия.
Также неправильное показания, примерно на 10 – 20 °C, вызывает нагар или расплавленный пластик попавший в установочное место терморезистора. Это происходит при недолжном соблюдении чистоты нагревательного блока.
Вот вы знаете, что такое настоящий вселенский факап? Недавно я полностью ощутил это на своей шкуре. Надеюсь, текст будет полезен начинающим 3D печатникам, так как проблема не единичная, но найти решение было непросто и даже я, старый атеист, чуть не поверил в чудеса. Простите за изложение, так как я не писатель и не блогер, а простой инженер — фирмварщик.
Кроме того, текст рассчитан на людей, имеющих минимальный опыт с 3D печатью.
Исключительно по причине не раздувать статью и не объяснять назначение разных деталей и сленговых словечек. Начну с предыстории. Чуть меньше года назад купил себе недорогой 3D принтер. Один из самых популярных (не на правах рекламы, а что бы было понятно о чем речь) — Ender 3. Сборка была несложная, в Сети есть много рекомендаций. Конечно, собирая его по инструкции — получил бы нерабочий агрегат, но предварительно «покурив мануалы», удалось выполнить первую пробную печать на 5 с плюсом для такой простой машинки! Все было хорошо до определенного момента. Но дальше началось…
Если интересно что, добро пожаловать.
Принтер нужен был для конкретной задачи — печать нестандартных корпусов для различных мелкосерийных электронных поделок. После того, как наигрался с готовыми моделями и обеспечил дочку различными зверюшками и человечками, освоил «по верхам» FreeCAD и начал делать полезные вещи. Все шло хорошо… По большому счету, печать запускалась «с ноги», ставил и шел спать. Разве что первый слой контролировал. Но появились первые «звоночки».
Где то часть слоя выпадет, где то пластик подгорит. Калибровал стол «по бумажке», грешил на пластик и сопло, менял настройки в слайсере, пластики и сопла — проблемы исчезали. Пока…
В один «прекрасный» момент столкнулся с «неразрешимой» проблемой. Конец марта, плавный перевод на удаленку (я удачно переехал из Подмосковья в Минск 2 годами раньше), решил собрать отдельный компьютер для работы из того, что было. В загашниках лежала неплохая материнская плата, процессор, пару мониторов и 2 корпуса. Один — огромный полноценный ATX, другой — barebone. Решил собрать в маленьком, чтоб места меньше занимал. Корпус нестандартный. С кредлом на 1 CD привод и 3.5 дюймовый винчестер. У меня же нашлось 3x 2.5 SATA SSD небольшого объема, под систему и одного хватит «более чем» и 1x на 1Tb 2.5 HDD.
Вся эта «живность» размещалась в большом корпусе на самодельном переходнике из старых банковских карт. Но, раз уже появился принтер, неплохо бы им воспользоваться. Создал модельку держателя, поставил на печать и пошел заниматься своими делами. Когда посмотрел, как печатает — увидел только лапшу… С этого момента пошел путь ремонта, длинною в 2 месяца. Постараюсь расписать по полочкам, что помогало, а что нет и в чем была первопричина.
Шаг 1. Настройка роликовВ очередной раз настроил стол «по бумажке», запустил — пластик не липнет. Менял настройки, пластики — без результата. Вместо того, чтоб клеиться к столу, загибается на сопло. Когда перепроверял настройки зазора сопла, обнаружил, что разболтались ролики и стол люфтит почти на 5мм по краям. Странно, как он вообще до этого печатал… Казалось, причина найдена. Отрегулировал. Но лучше почти не стало. С горем пополам напечатал деталь, но качество оставляло желать лучшего:
Видны явные пропуски в печати.
А вот и расслоения…
Шаг 2. Песнь о Зе[ль]деПервое, что пришло в голову — проблема в приводе оси Z. И все советы на форумах по проблеме, похожую на мою, указывали на это. Разобрал, проверил плавность хода. Гайка немного закусывала резьбу и нашел «баг» в паре роликов. При перемещении без винта привода, рельса «X» немного залипала на 1 оборот ролика. Заказал приводную гайку, ролики (запчасти — всегда хорошо, но дело было не в этом). Методом комбинаторики и какой то матери распределил ролики оси по нагрузкам так, чтобы на бракованные приходилось минимальное усилие. «Закусывание» пропало. Очистил и смазал винт привода. Отрегулировал положение его двигателя. В результате — легкого прикосновения пальца хватает, чтобы опустить каретку вниз. Результат — отрицательный.
Шаг 3. СлайсерОбновил слайсер. Тем более, что в новом релизе как раз было улучшение, связанное именно с качеством печати для моего принтера. Поигрался с потоком и скоростью, толщиной слоев и т. д. Даже успешно напечатал несколько простых небольших корпусов и деталей. Но настройки были откровенно дикие: поток — +10%, скорость — -5%. Учитывая, что после сборки получалась отличная печать на настройках «по умолчанию». Проблема печати сложных деталей не исчезла…
Логика подсказывает, раз по геометрии и приводам осей проблем нет, должно быть что то с подачей. Снял шестерню подачи филамента, почистил. Видимого износа не наблюдается. Вернул на место, немного сместив по вылету, для выравнивания износа. Результат — 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, что позволяет свободно откручивать держатель:
А вот и «убитый» конец трубки, видно, что обрезан криво:
Модель режется на слои с настройками по умолчанию. Печать… Кайма пошла, контур пошел, соплей при ретракте нет. Ура. Победа. Уже собрался написать статью, чтобы другие не мучились, но… Полное фиаско. Утончение и разрывы пластика, пропуски при печати. Уже готов сдаться. Жена подбадривает, да выкинь ты его, купи новый! Не могу так. Должна же быть причина. Вот только где. Разумных (и цензурных) мыслей уже не было…
Все операции с хотэндом делаются только «на горячее», иначе есть шанс все сломать. После прогрева, первым делом снимается сопло и очищается от остатков «пробки». Я делал это, нагрев сопло на пламени газовой плиты и аккуратно удалил пластик. Внутренности не чистил. Потом, так же на нагретом хотенде, откручивается фиксатор трубки. Двигаться он может только вверх. После отвода фиксатора, трубка аккуратно, но с усилием должна быть извлечена из «горла». Снимаем все фиксаторы, так как испорченный конец все равно не сохранить, аккуратно, возвратно — поступательным движением вычищаем всю грязь, постоянно снимая ее с трубки. В результате, трубка должна спокойно проходить через горло насквозь. Сборка производилась последовательности FIFO. Вначале установил сопло, потом фиксатор трубки в хотэнде, но не затягивал его полностью, оставив где то 1 оборот. Изношенная часть трубки обрезается под прямым углом и до упора устанавливается в горло. После чего затягивается держатель и устанавливается второй, на противоположную сторону «тефлона».Шаг 7. Калибровка подачи
В инструкции по обновлению до «ванильного» Марлина было сказано, что для заводского принтера все настройки — идеальные, но может немного уйти точность подачи пластика. Ладно, будем калибровать. Вытащил пластик, разогрел хотэнд (в прошивке блокировка, на холодный не позволяет перемещать «E»). Открутил трубку от механизма подачи, обрезал пластик заподлицо и выполнил команду экструзии 300мм. Линейка у меня на 350. Экструзия длиться достаточно долго, по завершению измерил длину вышедшего филамента и глазам своим не поверил 226мм. Понимаю разницу в 3-5%, но не в 25%! попробую другой пластик…
Примечание. Видел, как подачу регулируют по нанесенным маркером отметкам на прутке, Но с отрезанием, ИХМО, точнее.
Подготовка к тестовой экструзии:
Измеряем линейкой, в моем случае (после ремонта) получилось 292мм. Далее идем в меню: control / motion / step mm, смотрим, сколько шагов на мм установлено для экструдера. В моем случае — 93. Выполняем простое вычисление:
Изменяем уставку и сохраняем настройку. Повторная экструзия — погрешность на уровне измерения.
Шаг 8. Победа!
Вначале я проверял на PETG, решил поменять на PLA. Первый я немного перегрел при сушке, неадекватный разброс списал на возможное залипание на катушке. Обрезание, экструзия. И ничего. Пластик вообще не подается. Ось привода вращается, медленно, но по винтам видно, что движение есть. Посмотрел, пруток неправильно лег между шестерней и прижимным роликом. Ладно, правлю. Что то ролик немного болтается. Надо подтянуть. А фиг! Вот он виновник всех моих бед:
Рычаг прижимного ролика треснул. При этом сила прижима осталась достаточной для частичного продвижения прутка. Следы от шестерни оставались и прижимной ролик вращался.
Соответственно, все игры с настройкой прижимной пружины оказались безуспешны. Проскоки прутка были незаметны на глаз, а трещину невозможно было увидеть на собранном механизме. Все! Экстаз инженера получен! Рычаг был склеен, заказан алюминиевый механизм, на всякий случай напечатан запасной (если сломается, пока буду ждать новый). Вот ссылка на модель. Конечно, неприятно из за такой мелочи столько времени и денег потратить, но это помогло мне намного более глубоко погрузиться в процессы печати и отлова глюков.
Собственно, первая деталь после ремонта. Прижимной рычаг:
Наконец, мой датчик присутствия обрел «морду». Корпус печатался еще до поломки:
Попытки напечатать «морду» на неисправном принтере (после чистки «горла»):
Надеюсь, данный материал хоть кому то поможет не совершить столько глупых попыток поиска примитивной неисправности и сэкономит деньги. Конечно, я не каждый вечер занимался проблемой, но в общей сложности — сутки, наверное, были потрачены. По деньгам — около 200$ на запчасти. Цена устранения неисправности — 15 минут и пару капель «суперклея». Обидно? Скорее нет, так как опыт и запчасти останутся со мной!
На фото плата не из моего принтера, но выглядит почти 1 в 1, отличие в клеммах (у меня они сделаны разъемными, что очень хорошо).
На плате установлено 4 драйвера шаговых двигателей A4988, стабилизатор 7805 для питания контроллера, три мощных полевика для управления нагревателем экструдера, столика и вентилятором обдува модели. В качестве контроллера ATmega1284. Для связи с компьютером - FT232R. Кроме всего прочего к плате подключается три концевика, по одному на ось и два датчика температуры - один в экструдере, другой в столике.
В качестве датчиков температуры выступают терморезисторы номиналом 100К.
Полный размер будет при просмотре оригинала. Смотрим схему подключения датчиков температуры. Она банальная - по сути резисторный делитель, в верхнем плече 10К (на схеме 4.7К), в нижнем плече терморезистор в параллель конденсатору, видимо для сглаживания шумов. Выход с делителя идет напрямую на ножку AVR-ки.
Первым делом я подключил осциллограф к нагревателю экструдера и включил нагрев. Ага, как и был уверен почти на 100% - скачки температуры были напрямую связаны с включением нагревателя. Как только нагреватель включался - температура подскакивала на 20 градусов, как только выключалась - проседала. Измеряю напряжение напрямую на клемме терморезистора, после нагрева оно в районе 160мВ и почти не меняется, даже при скачках температуры на экране. При включении нагревателя плавно уменьшается чуть чуть, при выключении - возрастает, очень похоже на нормальную работу.
По схеме нахожу к какой ножке МК подключен термодатчик и ближайшую ножку земли на МК. Проверяю по разводке платы, которая доступна:
На картинке чуть более старая версия платы под другие драйверы, но часть с микроконтроллером вроде сходится. Кое как прикладываю щупы мультиметра к нужным ножкам МК и что я вижу: при включении нагревателя напряжение скачкообразно меняется на несколько десятков мВ. Замеряю разницу на каждой из линий. Между "+" терморезистора и входом на МК всегда стабильно 0. Не удивительно, там одна дорожка, по которой фактически не течет ток. Замеряю разницу между землей разъема терморезистора и землей МК - при включении нагревателя экструдера разница напряжений составляет 45 мВ!
Вот и ответ - плата разведена с нарушениями правил разводки земли - сигнальная земля перемешана с силовой. Писали-писали об этом, говорили-говорили, а все равно накосячили :)
Плата покрыта черной маской, поэтому проследить полигоны и дорожки было проблематично и я не стал с этим заморачиваться. Но если посмотрите на фото, то увидите - три силовых транзистора находятся над МК (под радиаторами). За нагрев экструдера отвечает средний. Его исток видимо подключен к тому же полигону, к которому подключена земля МК. Скорее всего у этого полигона где-то есть "узкое место" в соединении с основной землей. Вероятно авторы понадеялись, что "заливая" всю плату землей они могут не заморачиваться с сигнальной/силовой землей. Но это ошибочный подход - я сам натыкался в своих платах на такое - заливаешь всю плату земляным полигоном, а потом, при внимательном изучении обнаруживаешь, что на самом деле получилось 2 и более полигонов, которые соединяются между собой очень тонкими дорожками.
Решил проблему я просто - припаял толстый медный провод одним концом к истоку транзистора, другим прямо к земляному полигону около клеммы источника питания.
UPD: так как этот вопрос вызвал у ряда людей затруднения - поясню: то место, куда на фотографии припаяны левые концы проводов изначально абсолютно черное. Чтобы туда припаять провод это место просто аккуратно нужно зачистить ножичком, 4х4мм, соскребя черный лак и не задев близлежащие дорожки. Как альтернатива - можно припаять другой конец провода напрямую к минусу разъема источника питания(черный провод) с обратной стороны платы или к одному из углов платы. Однако, чем толще и короче провод, тем лучше будет результат. И еще - при припаивании к ножке транзистора будьте аккуратны и не замкните две небольшие контактные площадки между ножками, которые подписаны как BYPASS.
На всякий случай аналогично припаял и исток транзистора отвечающего за нагрев столика, хотя его существенного влияния на измерения температуры я не заметил(но специально и не проверял - некоторые пользователи сообщают, что включение нагрева столика также негативно влияет на измерения температуры).
После этого все собрал, включил и вот оно - температура стала отображаться стабильно, плавая на +/- 1 градус, что близко к разрешающей способности АЦП МК и заведомо очень далеко за пределами всех погрешностей измерений.
На всякий случай проверил точность измерения платой, подключая вместо терморезистора обычные резисторы. Таблица соответствий:
100К соответствуют 25C, 50К - 42C, 10К - 90C, а 1К - 184C.
Все сошлось.
Блок питания, кстати, я также заменил. Штатно стоит некий SOMPOM S-240-12 с мощностью 240 Вт и током до 20А. Я поставил имевшийся в наличии Mean Well NES-350-12, с мощностью 350Вт и током до 29А, но не из-за мощности, а из-за того, что в оригинальном БП очень шумный вентилятор и он постоянно работает, а в моем БП он тихий, да еще и большую часть времени выключен. Нужно еще будет заменить вентилятор в самом управляющем блоке, а то уж больно он шумный.
Ну и напоследок - первые две полезные детали напечатанные на 3D принтере, то, для чего он в первую очередь и покупался - детали головки SMD расстановщика. Это пробные детали, сделанные лишь для теста и отладки. Одна деталь служит основой головки - она закреплена на каретке оси X, а на ней в свою очередь закреплена вертикальная рельса оси Z1 и ее сервопривод. А на каретке оси Z1 в свою очередь закреплен адаптер для крепления ручки, которая нужна для отладки системы управления станком.
Читайте также: