Настройка прошивки marlin под 5 шпильку. Калибровка стола. неоднородная поверхность на распечатанной модели

05.05.2024 Новости

Если вы один из тех, кого увлекло сумасшествие 3D-печати, вы, надо полагать, в курсе, что для получения оптимального результата здесь требуется немало танцев с бубнами. Мы покажем вам, как откалибровать экструдер, чтобы добиться наилучшего качества. Как видно по распечатанному столику, плохо откалиброванный экструдер может плохо отразиться на результате. Приводимые ниже простые инструкции — отличное подспорье для начинающих, потому что на все про все потребуется около 20 минут и несколько обычных инструментов. Данные инструкции касаются конкретно Solidoodle 2, но они справедливы и для любого RepRap-принтера и программы Repetier Host. Самое главное, что в дальнейшем значительных изменений в настройках не потребуется. Приступим!



Подготовьте следующее:

  1. отвертку
  2. штангенциркуль (линейка тоже подойдет)
  3. маркер
  4. карандаш и бумагу
  5. 3D-принтер
  6. компьютер

Измеряем

Отметьте на нити филамента 100 мм. Обратите внимание на то, чтобы расстояние между нижней и верхней отметками было правильным.



Выравниваем

Установите длину экструдирования в «1», нажмите и удерживайте указывающую вниз нижнюю стрелочку до тех пор, пока ваша нижняя отметка не окажется на уровне верхней части экструдера («верх» и «низ» здесь условны и зависят от того, как вы все это делаете). На этой картинке видно, что нижняя отметка находится на уровне экструдера.



Экструдируем

Установите длину экструдирования в «100» и нажмите стрелочку вниз. Если все идет по плану, верхняя часть нити, которая находилась на 100 мм над экструдером, должна оказаться точно на нем.

Измеряем

Сделайте отметку на той точке нити, которая оказалась на экструдере, и измерьте расстояние между той отметкой, которая раньше была верхней (может понадобиться прогнать мотор экструдера обратно). Если сделанная первоначально отметка совпала с новой (т.е. и отмечать ничего не потребовалось), перейдите к последнему пункту.


Нажмите Config, потом EEPROM Settings (это все наверху окна). Перед первой строкой написано Steps per mm. С самого правого края написано E: и какое-то число. Оно обозначает количество шагов, которые делает шаговый механизм вашего экструдера, чтобы выдавить 1 мм филамента.

Пропорция

Составьте пропорцию между требуемой длиной экструдирования (100 мм) и измеренной (в нашем случае 105,03 мм).

(требуемая длина) х (количество шагов) = (измеренная длина) х (новое количество шагов)

Мы знаем три значения в данной пропорции, так что мы легко можем получить новое количество шагов. Оно будет обозначать количество шагов, которое на самом деле должен проделать шаговый механизм экструдера, чтобы выдавить 1 мм. В самом начале мы экструдировали 100 мм, потому что, чем больше длина, тем меньше ошибка измерения.

  1. Решаем пропорцию и в нашем случае получаем: (новое количество шагов) = (100 * 113,68) / 105,03
  2. Таким образом, (новое количество шагов) = 107,958
  3. Вводим новое значение в поле Steps per mm и жмем Save to EEPROM.


Как известно для качественной печати на 3D принтере необходимо тщательно выровнять поверхность стола. К сожалению сделать это не всегда возможно. Довольно часто стол представляет собой криволинейную поверхность и даже использование стекла не позволяет полностью решить эту проблему. По счастью в последних прошивках Marlin всё больше и больше внимания уделется возможности калибровки поверхности стола. Полностью автоматическая калибровка требует применения дополнительных датчиков, что не всегда доступно, но кроме неё есть возможность калибровки стола в ручном режиме. Именно об этом я и хочу рассказать.

Добавляем поддержку автокалибровки в прошивку

Включаем поддержку ручной калибровки

Задаём опции сетки

Внимание! Не использовать больше 7 точек на ось. Это ограничение прошивки.

Добавляем пункты в меню принтера

Скрипт выполняемый после калибровки. Тут по умолчанию какие-то телодвижения экструдером, не факт что они нужны. Не уверен на этот счёт.

// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"

После этого заливаем обновлённую прошивку.

Калибруем стол

Для ручной калибровки используется так называемый Mesh Bed Leveling (MBL). Т.е. способ калибровки по массиву точек. Соответственно поверхность стола разбивается на сетку и по узлам сетки производятся замеры Z координаты перемещением вручную оси Z. Собствено для измерения нужен только лист бумаги и прямые руки.

В каждой точке под сопло экструдера подкладываем лист бумаги и движением оси Z (либо посылая специальную G команду через ПО с компьютера, либо через меню принтера) добиваемся такого состояния когда лист под экструдером ещё можно свободно двигать, а уменьшение положения экструдера на один шаг уже мешает листу перемещаться. После этого текущая точка записывается и продолжаем со следующей и так до конца.

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

По умолчанию для калибровки используется сетка 3×3 т. е. 9 точек, но при желании можно задать в прошивке другое количество (не более 7 на ось, т. е. не более 49 всего).

Для дополнительного увеличения точности калибровки можно перед её выполнением разогреть стол и экструдер до рабочих температур. Это позволит учесть и скомпенсировать температурные расширения.

Через внешнюю программу

Для калибровки стола есть специальная команда G29

  1. G29 S0 читаем текущие значения точек в памяти принтера.
  2. G29 S1 перемещение принтера в первую точку для начала процесса настройки. Фактически принтер сначала паркуется в исходное положение, потом переходит к первой точке.
  3. G29 S2 записываем текущую точку и двигаемся к следующей
  4. Повторяем процесс для всех точек
  5. Используем команде M500 для записи измеренных величин в память принтера

Через меню принтера

Выбираем в меню Presets следующие пункты


После чего видим на экране следующую надпись и наблюдаем как принтер паркуется в домашнюю позицию


Затем принтер предлагает нам кликнуть по энкодеру.


После клика экструдер переходит к первой точке


И мы видим регулировку оси Z.



Кликом по энкодеру сохраняем значение и перемещаемся к следующей точке. Повторяем калибровку каждой точки (всего их 9 штук). После последней точки принтер выполнит парковку и покажет нам следующее:



Итого

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

Итак, вы собрали принтер, спаяли электронику, все включили, что делать дальше?

Первое, что необходимо сделать — скачать и залить необходимую прошивку. К разным типам плат подходят разные прошивки. Т.к. у меня плата Ramps 1.25 на базе Arduino Mega 2560, я выбрал наиболее подходящую и одобряемую людьми прошивку . В чем её преимущество: управление 2 экструдерами, чтение файлов с SD-карт и работа в автономном режиме, возможность подключения ЖК-экранчика.

Скачиваем IDE Arduino, в ней находятся все необходимые драйвера и если плата сразу не определилась, то устанавливаем драйвер arduino из папки «arduino\drivers\».

Само приложение выглядит следующим образом (установка не требуется, надо только распаковать архив):

Подключаем плату Arduino к компу и выбираем в программе порт, к которому подключено устройство. Обычно это делает сама программа, но бывают сбои и приходится вручную выбирать порт.

Хоть плата и подключена к USB, но определяется как com-порт.

Надеюсь вы уже скачали прошивку . Архив надо распаковать. В IDE Arduino открываем файл marlin.pde.. Вы должны увидеть следующую картину:

Среди закладок видно все файлы, которые входят в проект. Просто так заливать прошивку бессмысленно, в ней надо указать тип нашей платы. Так, переходим в закладках в файл configuration.h и на 10 строчке видим все типы плат, которые поддерживаются прошивкой:

Выбираем тип платы. Если у вас плата , то в поле #define MOTHERBOARD вписываем цифру 3, если у вас на плате 3 транзистора: 1-ый на , 2-ой на , 3-ий для fan (кулера), то пишем в этом поле 33, если вы собираетесь подключить второй экструдер, то пишите 34.

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

​На что обратить внимание!

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

3 признака, что вам пора заново откалибровать стол.

1. Пластик не прилипает к поверхности.

Чтобы получить качественную печать важно добиться того, чтобы первый слой был идеальным. Это в свою очередь обеспечивается хорошей адгезией (прилипанием). Если зазор между соплом и столом слишком велик, то пластику станет очень сложно прилипнуть и его постоянно будет тянуть вверх. Даже если первый слой прилип, но стол плохо откалиброван - вы столкнетесь с неприятностями позже, в процессе печати (что расстраивает еще больше) когда деталь полностью или частично отклеится от стола.

2. Пробелы в первом слое или слишком тонкие линии.

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

3. Пластик скапливается вокруг сопла при печати первого слоя.

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


6 простых шагов к выравниванию стола 3D-принтера.

Для новичков, калибрующих стол 3D-принтера в первый раз, важно сделать так, чтобы сопло экструдера находилось на одинаковом расстоянии от стола принтера во всех его точках. Большинство plug’n’play принтеров имеют встроенный пошаговый мануал по автокалибровке стола, если же вы собирали принтер самостоятельно, то вам придется пройти шесть шагов прежде чем приступить к печати. Несмотря на индивидуальные особенности конструкции различных 3D-принтеров, общая методика калибровки стола одинакова для большинства из них.

Совет. Перед тем, как выравнивать стол, нагрейте его до рабочей температуры, при которой планируете печатать. Так, если вы печатаете ABS - нагрейте стол до 90-110 С. Если вы используете каптон или синий малярный скотч, то не забудьте наклеить их перед калибровкой. Столы, выполненные из алюминия, расширяются при нагревании и сжимаются при охлаждении, так что для идеальной настройки необходимо выставить ту температуру, при которой будет производиться печать.

Шаг 1 :

Возьмите обычный лист бумаги.

Шаг 2 :

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


Шаг 3 :

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

Шаг 4 :

Переместите листок и сопло во все углы печатной платформы и убедитесь, что в этих точках нет никакого сопротивления.

Шаг 5 :

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


Шаг 6 :

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

Посмотрите видео-инструкцию, чтобы окончательно разложить все по полочкам.

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

Переведено с портала Ссылка

Успехов Вам в Вашем не легком 3D-деле!

Уже достаточно давно (примерно пол года) пользуюсь прошивкой Marlin Kimbra (MagoKimbra/MK4duo).

это переработанная прошивка Marlin итальянским RepRap сообществом. Прошивка интересна тем, что ее можно запустить как на 8 битных мозгах, так и на 32х битных мозгах на плате Arduino DUE в связке с низкобюджетным RAMPS4Due.

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

Так же хочу сказать что по сравнению с классическим Marlin-ом, прошивку конфигурировать гораздо проще. Все благодаря тому что все настройки сгруппированы по разным вкладкам. Не надо рыть огромную портянку конфига. Очень удобно.

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

Если есть желание сменить прошивку — попробуйте. Думаю вам понравится.

После смены прошивки с Marlin-а на MagoKimbra, первым делом надо очистить EEPROM по команде

M502 — Revert to the default «factory settings». You still need to store them in EEPROM afterwards if you want to.

M500 — Store parameters in EEPROM

На сайте теоретически есть некий конфигуратор прошивки, но, я его ни разу не использовал. Попытался, но какой-то он ракообразный. В итоге проще все сконфигурировать руками.

Кратко расскажу как настроить прошивку на примере своего принтера, мозгов типа бутерброд arduino mega + ramps и кинематики Cartesian (Prusa i3). Активирую минимально-необходимое для работы количество фич.

В настройке прошивки особо сложного ничего нет, все интуитивно понятно.

Так же уделю внимание РОДНЫМ МОЗГАМ Prusa i3 от flsun3d . Изначально принтер идет с единой материнской платой RAMPS 1.4 Plus

Если пролить в нее прошивку отличную от той что прислал китаец (Marlin 1.0.0), у принтера автоматически перестанет работать дисплей и экструдер с E0 переедет на E1. Я столкнулся с такой проблемой, посидел вечер поковырялся и нашел решение. В конце статьи расскажу как это исправить.

Прошивка без проблем собирается в последней среде Arduino (1.8.1).

Открываем файл MK4duo.ino с помощью среды Arduino и начинаем настраивать.

Начинаем со вкладки Configuration_Basic.h

Тут мы настроим

* — Тип серийных коммуникаций

* — Материнскую плату

* — Тип механики (Cartesian для Prusa I3)

* — Количество экструдеров

С ходу правим

#define BAUDRATE 250000

Если охота в терминале (или Pronterface) видеть кто конфигурил прошивку

#define STRING_CONFIG_H_AUTHOR «(Mef73, custom config)»

А можно и не трогать.

Больше в этой вкладке делать нечего, поскольку по умолчанию уже включено

#define MOTHERBOARD BOARD_RAMPS_13_HFB

#define MECHANISM MECH_CARTESIAN

А так же установлен один экструдер и один драйвер для экструдера.

Переходим ко вкладке Configuration_Cartesian.h

Начну с изменения имени принтера, хотя это и не обязательно

#define CUSTOM_MACHINE_NAME «Prusa I3 flsun»

#define INVERT_E0_DIR true

Именно мой штатный экструдер принтера Prusa i3 от flsun3d такой, инвертный. Можно перевернуть разъем шагового двигателя (ШД), но не хочу. Чтоб когда буду менять принтеру мозги, не греть голову на счет разворота разъема двигателя.

Опять же, для мого принтера с drv8825 и микрошагом 32

#define DEFAULT_AXIS_STEPS_PER_UNIT {200, 200, 800, 310, 310, 310, 310} //drv8825

Для моего принтера с a4988 и микрошагом 16

#define DEFAULT_AXIS_STEPS_PER_UNIT {100, 100, 400, 155, 155, 155, 155} //a4988

Надо прописать только ОДНУ строчку. Для одного или для другого драйвера ШД.

Для остального правлю

#define DEFAULT_MAX_FEEDRATE {200, 200, 2, 100, 100, 100, 100}

#define DEFAULT_MAX_ACCELERATION {1500, 1500, 50, 1000, 1000, 1000, 1000}

#define DEFAULT_ACCELERATION 1500

#define DEFAULT_XJERK 30.0

#define DEFAULT_YJERK 30.0

#define DEFAULT_ZJERK 0.4

Эти значения можете так же поставить свои. На этом с вкладкой Configuration_Cartesian.h заканчиваем.

Переходим к вкладке Configuration_Feature.h

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

В общем поехали…

Убираем // c

#define HOME_Y_BEFORE_X

Первой паркуем ось Y. У меня зеркало на зажимах, если первой парковать ось X при малой высоте Z соплом снесу зажимы.

#define FORCE_HOME_XY_BEFORE_Z

ось Z паркую последней

Теперь спускаемся до

//============================= ADDON FEATURES ==============================

Раскомментируем

#define EEPROM_SETTINGS

#define EEPROM_CHITCHAT

#define SDSUPPORT

#define SD_SETTINGS

активируя EEPROM и поддержку карты SD

Дисплей у меня символьный, 2004, reprap discount smart controller

#define ULTRA_LCD

#define ENCODER_PULSES_PER_STEP 4

#define ENCODER_STEPS_PER_MENU_ITEM 1

#define REVERSE_ENCODER_DIRECTION

#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 40

#define LCD_FEEDBACK_FREQUENCY_HZ 2000

С такими параметрами у меня хорошо работают оба китайских reprap discount smart controller-а.

#define LCD_INFO_MENU

#define REPRAP_DISCOUNT_SMART_CONTROLLER

Если у вас Arduino DUE обратите внимание сюда:

//============================= ADVANCED FEATURES ===========================

//===========================================================================

/****************************************************************************************

************************************** Buffer stuff ************************************

****************************************************************************************/

// The number of linear motions that can be in the plan at any give time.

// THE BLOCK BUFFER SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.

// For Arduino DUE setting BLOCK BUFFER SIZE to 32

#define BLOCK_BUFFER_SIZE 16

// The ASCII buffer for receiving from the serial:

#define MAX_CMD_SIZE 96

// For Arduino DUE setting to 8

#define BUFSIZE 4

В общем то это и все настройки что разнятся у Mega и DUE, других не нашел.

Переходим ко вкладке Configuration_Temperature.h

#define TEMP_SENSOR_BED 1

Стол то у нас с подогревом, а по умолчанию в прошивке терморезистор подогрева отключен

Идем в ********************** PID Settings — HOTEND **************************

#define DEFAULT_Kp {14.17, 40, 40, 40} // Kp for H0, H1, H2, H3

#define DEFAULT_Ki {01.55, 07, 07, 07} // Ki for H0, H1, H2, H3

#define DEFAULT_Kd {32.29, 60, 60, 60} // Kd for H0, H1, H2, H3

После перепрошивки я обязательно перекалибрую Kp Ki Kd по команде

M303 H0 C8 S240 U

Спускаемся к ************************ PID Settings — BED ***************************

Стол у меня так же регулируется по PID. Bang Bang проще, но не так точен. Поэтому раскомментируем

#define PIDTEMPBED

#define DEFAULT_bedKp 88.21

#define DEFAULT_bedKi 12.77

#define DEFAULT_bedKd 152.28

Это настройки когда-то полученные экспериментально для моего принтера.

После перепрошивки я обязательно перекалибрую Kp Ki Kd стола по команде

M303 H-1 C8 S100 U

В Pronterface или даже не заморачиваясь, в терминале Octoprint. Ключ U сразу же применит результат.

Если нагрев отвалится по таймеру и выдаст ошибку, повторяю команду.

После чего надо выполнить команду

Для защиты от перегрева хотэнда и стола раскомментирую

#define THERMAL_PROTECTION_HOTENDS

#define THERMAL_PROTECTION_BED

На этом вроде и все.

У меня на плате установлен самодельный Fan Extender, на 1 канал, и живет он на 11 пине. На него я подключил вентилятор обдува термобарьера.

Во вкладке Configuration_Feature.h

Убираем // с

#define HOTEND_AUTO_FAN

#define HOTEND_AUTO_FAN_TEMPERATURE 45

Ставлю температуру срабатывания на 45 градусов

Для того чтоб фича заработала, во вкладке Configuration_Pins.h

#if ENABLED(HOTEND_AUTO_FAN)

#define H0_AUTO_FAN_PIN 11

Указываю что управление вентилятором живет на 11 порту.

Теперь расскажу про замечательную плату RAMPS 1.4 Plus . Плата поставляется в комплекте с принтером Prusa I3 Flsun3d.

Пины на плате не совпадают с оригинальным бутербродным RAMPS 1.4. !!!

Я порылся в прошивке от китайцев и нашел различия в пинах.

Кладем его в папку

MK4duo-masterMK4duosrcboards

заменяя оригинальный файл 99.h.

И теперь во вкладке Configuration_Basic.h

ставим // перед MOTHERBOARD BOARD_RAMPS_13_HFB

//#define MOTHERBOARD BOARD_RAMPS_13_HFB

#define MOTHERBOARD BOARD_99

Наша плата RAMPS 1.4 Plus теперь BOARD_99

Это зарезервированный в прошивке номер платы, думаю как раз для такого случая.

После этого на RAMPS 1.4 Plus жизнь налаживается. Начинает работать дисплей и все остальное так, как надо.

По аналогии с настройками в файле, можно сконфигурировать плату в классическом Marlin-е. У меня это тоже получилось.

Прошивка MagoKimbra/MK4duo, настройки прошивки для Prusa i3 для бутерброда RAMPS 1.4 и для платы RAMPS 1.4 Plus