LiS92

LiS92

Пикабушник
Дата рождения: 28 мая
13К рейтинг 12 подписчиков 38 подписок 47 постов 13 в горячем
Награды:
10 лет на Пикабу
26

Калибровка шагов экструдера Marlin или если у вас проблемы с подачей пластика

Для качественной печати крайне необходимо что бы экструдер продавливал именно то количество пластика которое подразумевается в нашем GCode, так как экструдер это по сути шаговый двигатель снабженный набором шестерней то в зависимости от их размера (и некоторых других параметров) количество пластика продавливаемое за один шаг мотора будет разным при разных конфигурациях. Нам необходимо узнать количество шагов необходимое для проталкивания одного миллиметра прутка филамента. Данная инструкция была написана мною с упором на bowden экструдер и измерения мы будем проводить от хитблока, во многих других инструкциях вы можете увидеть что пруток принято измерять до экструдера, но по моему субъективному мнению мой метод является более удобным и более точным так как вы измеряете отрез пластика, а не расстояние до метки (при другом методе на прутке обычно ставиться метка маркером и относительно нее и измеряют расстояние) хотя нам и потребуется испортить некоторое количество филамента для проведения данного теста мне кажется что его объемы столь незначительны что ими можно пренебречь.


1 - Нагрейте хитблок до рабочей температуры, отведите пластик от сопла, выкрутите сопло и убедитесь что пластика внутри не осталось.

M109 S240 //Греем сопло до 240 градусов (замените значение на нужное вам)
G91 //Переходим в относительную систему координат
G1 E-100 F1000 //Отводим пруток на 100 мм от сопла

2 - Охлаждаем сопло до комнатной температуры, проводим пруток так что бы он немного вышел наружу от хитблока и обрезаем его заподлицо.

M109 S0 //Отключаем нагрев экструдера (ДОЖДАТЬСЯ ОХЛАЖДЕНИЯ)
M302 P1 //Отключаем проверку минимальной температуры экструдера
G91 //Переходим в относительную систему координат
G1 E150 F1000 //Выдавливаем 150 мм пластика что бы пруток торчал из сопла

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

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

G91 //Переходим в относительную систему координат
G1 E200 F100 //Даем команду экструдеру выдавить 200мм пластика на медленной скорости

В результате простого теста явно видна переэкструзия пластика.

4 - Результаты нашего теста показали неутешительный результат, шаги выставлены неверно (слишком много) и количество пластика которое выходит из экструдера не соответствует заявленному (заданная длинна - 200 мм., реальная длинна - 229 мм.). Что бы получить необходимое количество шагов можно воспользоваться простой формулой.

steps/mm - Текущее количество шагов установленное в прошивке

length - Длинна экструзии заданная командой (мм)

real lenght - Длинна прутка получившегося после экструзии (на самом деле) (мм)

X - правильное количество шагов/мм


Для того что бы узнать текущее количество шагов (заданное в прошивке) используйте команду :

M501 // Вывести информацию о принтере
*найти в выдаче строку:
echo: Steps per unit:
echo: M92 X80.00 Y80.00 Z1600.00 E160.00

E160 - количество шагов/мм для экструдера установленное в данный момент.

Так как все переменные нам известны давайте посчитаем необходимое количество шагов в нашем случае:

Необходимое количество шагов/мм для моего экструдера - 139,737


*Дополнительный метод. Если вы не любите математику или хотите проверить себя вы можете воспользоваться калькулятором для вычисления шагов. Он расположен по ссылке - https://3daddict.com/3d-printer-extruder-calibration-steps/

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

Сохранение шагов в EEPRom
M92 E140 // Установить 140 шагов/мм для экструдера, заменить на нужное вам значение
M500 // Сохранение данных в EEPRom
Сохранение шагов в прошивку (предпочтительнее):
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 1600, 140 }
*Данная строка в прошивке  устанавливает количество шагов по XYZ и E нам необходимо заменить последнее значение после чего прошить принтер новой прошивкой.
Данный гайд так же опубликован на канале @LiS92Live в telegram в виде PDF документа с нормальным форматированием текста.
Показать полностью 5
48

Marlin PID Калибровка

PID (ПИД, Пропорционально-интегрально-дифференцирующий регулятор) - регулятор, использующий сумму трех значения входного сигнала (Kp, Ki, Kd) для задания и поддержки температуры стола\хотенда в установленных пределах. Данные значения будут разными в зависимости от используемого железа, наличия обдува, силиконового носка и множества других факторов, поэтому калибровку необходимо производить как после первого запуска принтера, так и после изменения конфигурации хотенда\стола. Так же данную процедуру необходимо проводить при скачкообразных изменениях температуры и большом разбросе при удержании заданного значения.

Калибровка

В прошивку Marlin встроены инструменты для автоматической калибровки PID как для хотенда, так и для стола. Для управления нагревом стола с помощью PID необходимо предварительно активировать в прошивке параметр "PIDTEMPBED" (подробнее в разделе Прошивка -> Стол, данную процедуру необходимо провести перед калибровкой стола и прошить принтер, по умолчанию параметр выключен). Процедуру калибровки желательно проводить на максимально приближенных к печатным условиям, если у вас закрытый корпус - необходимо закрыть дверцу и надеть кожух\колпак, при калибровке хотенда стол должен находиться в непосредственной близости к соплу и обдув должен быть включен на максимум (либо значение, которое вы используете чаще всего). Внимание, во время проведения калибровки вам может показаться, что принтер завис, но это не так - тест довольно длительный и время его проведения зависит от количества установленных повторений.

Для ввода команд и получения результатов можно использовать, к примеру, ПО PrintRun (www.pronterface.com/) или любой другой софт, который может общаться с принтером посредством последовательного порта (OctoPrint, Repetier-Host и т.п.)


Экструдер

Переместите хотэнд к центру стола, подведите стол как можно ближе к соплу и включите обдув хотенда. Калибровка проводится для конкретной температуры; это не значит, что если вы провели ее на температуре 230°, то на 250°\210° работать она не будет, это лишь значит, что чем больше разница рабочей температуры от заданной при калибровке - тем больше будет погрешность, поэтому необходимо устанавливать ту величину, что чаще всего используется.

Терминал принтера:
M303 E<hotend_num> S<temp> C<count> ;Запуск автоматической калибровки хотэнда
E<hotend_num> - Порядковый номер хотенда (если у вас один хотэнд - 0)
S<temp> - Температура проведения теста
C<count> - Количество повторений теста, чем их больше - тем точнее (минимум 3, по  умолчанию 5)
Пример: M303 E0 S240 C7
Результаты выполнения команды:
>>> M303 E0 S240 C7
<<< PID Autotune start
*тестирование*
<<< PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
<<< #define DEFAULT_Kp 10.71
<<< #define DEFAULT_Ki 0.61
<<< #define DEFAULT_Kd 47.22
Полученные значения можно внести в прошивку или сохранить в EEPROM, данная процедура описана в разделе "Прошивка". Также для калибровки хотенда можно воспользоваться готовым GCod'ом который проведет калибровку за вас и сохранит значения в EEPROM. Для этого необходимо скопировать код, описанный ниже (установив в нем свои значения номера экструдера, температуры, а также количество повторений) в текстовый файл, сохранить его с расширением ".gcode" и запустить на исполнение на вашем принтере; результаты тестирования будут автоматически сохранены. После завершения в терминал будут выведены текущие значения EEPROM для проверки, значения PID для экструдера находятся в строке с командой "M301".

;HotEnd_PID_calibration.gcode
G28 ;Вернуться в начало координат
G1 Y100.0 X100.0 Z5.00 F1500 ;Переместить хотэнд на координаты X100 Y100 Z5
M106 S255 ; включить обдув модели на 100%
;
M303 E0 S240 C7 U ;E0<номер экструдера> S<температура> C<циклы> U<применить полученные значения>
M106 S0 ; выключить обдув модели
M500 ;Сохранить полученные значения в EEPROM
;
M503 ;Вывести текущие значения EEPROM для проверки

Стол

(необходимо активировать параметр PIDTEMPBED в прошивке)

Процедура калибровки PID для стола практически не отличается от калибровки хотенда. При наличии корпуса закройте дверцу и установите крышку принтера, чтобы создать закрытый объем внутри принтера. Обратите внимание, что команды для калибровки стола и хотенда совпадают, отличается лишь параметр номера экструдера, для стола это всегда будет "-1"

Терминал принтера:
M303 E-1 S<temp> C<count> ;Запуск автоматической калибровки стола
E-1 - Калибровка стола
S<temp> - Температура проведения теста
C<count> - Количество повторений теста, чем их больше - тем точнее (минимум 3, по  умолчанию 5)
Пример: M303 E-1 S80 C7
Результаты выполнения команды:
>>> M303 E-1 S80 C7
<<< PID Autotune start
*тестирование*
<<< PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
<<< #define DEFAULT_bedKp 52.60
<<< #define DEFAULT_bedKi 6.63
<<< #define DEFAULT_bedKd 277.98

Полученные значения также вносятся в прошивку или сохраняются в EEPROM. Для тестирования стола также можно использовать GCode, указанный ниже, сохранив его в файл с расширением ".gcode" и запустив на принтере; он проведет тестирование и автоматически сохранит значения в EEPROM. После завершения в терминал будут выведены текущие значения EEPROM для проверки, значения PID для стола находятся в строке с командой "M304".

;Bed_PID_calibration.gcode
G28 ;Вернуться в начало координат
G1 Y100.0 X100.0 Z5.00 F1500 ;Переместить хотэнд на координаты X100 Y100 Z5
M106 S255 ; включить обдув модели на 100%
;
M303 E-1 S80 C7 U ;E-1<стол> S<температура> C<циклы> U<применить полученные значения>
M106 S0 ; выключить обдув модели
M500 ;Сохранить полученные значения в EEPROM
;
M503 ;Вывести текущие значения EEPROM для проверки

Прошивка

Экструдер

Значения, полученные после PID калибровки, записываются в разделе "PID Settings" в файле "Configuration.h" по порядку (без кавычек):

\Marlin\Configuration.h
//===========================================================================
//============================= PID Settings ================================
//===========================================================================
***
***
***
#define DEFAULT_Kp <Kp value>
#define DEFAULT_Ki <Ki value>
#define DEFAULT_Kd <Kd value>

Стол

Для управления нагревом стола через PID необходимо раскомментировать параметр "PIDTEMPBED" (убрать "//"), после чего можно по порядку ввести значения Kp, Ki, Kd в разделе "PID > Bed Temperature Control" в файле "Configuration.h":

\Marlin\Configuration.h
//===========================================================================
//====================== PID > Bed Temperature Control ======================
//===========================================================================
***
#define PIDTEMPBED
***
#define DEFAULT_bedKp <Kp bed value>
#define DEFAULT_bedKi <Ki bed value>
#define DEFAULT_bedKd <Kd bed value>

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

Терминал принтера
M502 ; Загрузить значения указанные в прошивке
M500 ; Сохранить значения в EEPROM

EEPROM

Не стоит забывать, что значения PID хранятся в энергонезависимой памяти контроллера и после перепрошивки вам необходимо либо восстановить в EEPROM значения, указанные нами в прошивке, либо, если вы не хотите перепрошивать свой принтер, вы можете сохранить значения напрямую в EEPROM, но не забывайте, что при использовании команды "M502" (записать значения из прошивки в EEPROM) придется повторно записать PID значения в EEPROM, так как они будут заменены теми, что указаны в прошивке. Для хранения данных значений предпочтительнее указывать их в прошивке - это убережет вас от множества проблем.

Терминал принтера:
M301 P<Kp value> I<Ki value> D<Kd value> ;Установить значения PID для хотенда
M304 P<Kp bed value> I<Ki bed value> D<Kd bed value> ;Установить значения PID для стола
M500 ; Сохранить значения в EEPROM

Глоссарий

Хотэнд (HotEnd) - блок из нагревателя, термодатчика, сопла и корпуса, который отвечает за нагрев пластика

Стол (Bed, HeatBed) - Рабочая поверхность принтера, на которой располагается модель

EEPROM (ПЗУ) - Память контроллера для хранения настроек, которые сохраняются после отключения электроэнерги


GCode's

M500 - Cохранить текущие значения в EEPROM

*https://marlinfw.org/docs/gcode/M500.html

M502 - Загрузить значения из прошивки

*https://marlinfw.org/docs/gcode/M502.html

M503 - Вывести текущие значения EEPROM

*https://marlinfw.org/docs/gcode/M503.html

M106 S<speed> - Включение обдува модели (0 - выключить)

*https://marlinfw.org/docs/gcode/M106.html

M301 P<Kp value> I<Ki value> D<Kd value> - Установить значения PID для хотенда

*https://marlinfw.org/docs/gcode/M301.html

M303 E<номер экструдера(стол -1)> S<температура> C<циклы> U<применить полученные значения> - Автокалибровка PID

*https://marlinfw.org/docs/gcode/M303.html

M304 P<Kp bed value> I<Ki bed value> D<Kd bed value>- Установить значения PID для стола

*https://marlinfw.org/docs/gcode/M304.html


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


Данный гайд так же опубликован на канале @LiS92Live в telegram в виде PDF документа с нормальным форматированием текста.

Показать полностью 4
4043

Космонавт Алексей Леонов скончался

Космонавт Алексей Леонов скончался

Умер космонавт Алексей Леонов, первый человек в открытом космосе. Ему было 85 лет.

Алексей Леонов скончался 10 октября после продолжительной болезни в Московской клинической больнице № 68. Последние дни он провел в клинике.


Вечная память !

Показать полностью 1
8

Пассажир устроивший дебош скончался

Пассажир Рейса Москва-Симферополь, затеявший драку и в ней же пострадавший, умер. Врачам не удалось его спасти.
Ранее из-за него борт компании RedWings пришлось разворачивать и возвращать в Домодедово.Mash
https://ria.ru/20190523/1554849170.html

Пассажир устроивший дебош скончался
64

Велозаплыв 2018 !

Доброго времени суток уважаемые друзья, сегодня проходил велопарад в Москве, решил поделиться и поблагодарить всех кто участвовал ! Накупались люди знатно !)

И небольшая нарезка с мероприятия, извиняюсь за качество на ходу было не до этого ) (снято на Samsung Galaxy Note 9)

Показать полностью 11 1
11

Microsoft официально заявила о смерти Windows Phone

Исполнительный директор корпорации Джо Бельфиор заявил в своём Твиттере, что время платформы завершено. Windows Phone 10 будет переведена в режим обслуживания и исправления существующих ошибок:


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


Платформа Windows Phone была фактически мертва уже целый год, но только сейчас Microsoft признала это публично. В прошлом году корпорация сократила часть сотрудников, работающих над платформой. Бельфиор также признал, что он перешёл на Android, так же, как и Билл Гейтс. Одной из главных причин, по которым Microsoft отказалась от свой платформы он назвал отказ разработчиков работать над ней и невозможность поддерживать приложения после их выхода:


Мы очень старалась стимулировать разработчиков, мы платили им деньги, но количество пользователей было слишком мало, чтобы и дальше инвестировать в это деньги.

Теперь корпорация намерена уделить все силы на разработке приложений для iOS и Android. Браузер Microsoft Edge вышел на обеих платформах и компания, похоже, сосредоточена на улучшении работы между PC и смартфонами. Первая версия Windows Phone была выпущена в октябре 2010 года.

Незадолго до этого «ВКонтакте» также заявила , что перестаёт поддерживать мобильную платформу от Microsoft:


Windows Phone с каждым годом получает всё меньше внимания со стороны производителей телефонов и Microsoft. В связи с этим, мы приняли решение заморозить развитие проекта, чтобы сосредоточиться на других платформах. Спасибо, что были с нами! Оставайтесь в контакте с друзьями с помощью мобильной версии сайта и приложений для Android и iOS.
Microsoft официально заявила о смерти Windows Phone
Показать полностью 1

Развернутые длиннопосты, предлагаю ввести новый тег !

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

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

Отличная работа, все прочитано!