Прошивка Marlin: выгрузка нити с помощью G-кода
Я модернизировал свой ER-20 с помощью двойного шестеренчатого фидера Bondtech. Загрузить/выгрузить нить вручную с помощью этого питателя невозможно или едва ли возможно, поэтому для этого требуется некоторый файл .gcode. Я хотел реализовать что-то похожее на метод атомной очистки для разгрузки: https://ultimakernasupport.zendesk.com/hc/en-us/articles/115004187066-Atomic-Cleaning-Method
Вот мой текущий .gcode
:
G21 ; Метрические значения
G90 ; Абсолютное позиционирование
M82 ; Абсолютный режим экструдера
G28 ; Автоматический дом
M420 S1
G1 X100 Y100 Z100 F1000
; M92 E415 ; 415 шагов/мм
M302 S105 ; Разрешить экструзию выше 105C
M109 S218 ; Нагрев hotend до 218C
М400
G92 E0 ; Сброс положения экструдера
M104 S160 ; Начните охлаждение
M117 Выдавливание первичного сгустка
G1 E10 F100 ; Выдавливайте короткое время перед разгрузкой, чтобы избежать образования капель
M109 S160 ; Дождитесь 160C
M104 S110
G92 E0
G1 E0.2 F100 ; Надавить на хотенд
M117 Наддув hotend
M109 S110 ; Нагревайте hotend до 110C
G92 E0 ; Сброс положения экструдера
M117 медленно выдвигается
G1 E-3 F200 ; Немного отступите назад, медленно
М117 Быстро вытаскивай
G1 E-430 F2000 ; Вытяните назад 43 см с 2000 мм/мин
G92 E0 ; Сброс положения экструдера
M400 ; Дождитесь окончания команды
M117 Немедленно снимите филамент
; M400 ; Дождитесь окончания команды
M302 S170 ; Разрешить экструзию выше 170C
M104 S0
Это не работает:
- автоматическое выравнивание стола всегда выполняется, я не знаю, как его отключить
- когда я вижу, что происходит событие "Extrude a short before unload to avoid blob forming", я также вижу сообщение "Pull out fast" на дисплее и процесс "print" заканчивается
Кто-нибудь может взглянуть на этот код, пожалуйста? Или где-то есть валидатор .gcode для Marlin?
Что я намерен делать с этим кодом:
- нагрейте хотенд до 218 °C
- выдавливайте какой-то материал, пока уже началось охлаждение до 160 °C
- когда температура достигнет 160 °C, начните процесс охлаждения до 110 °C и подтолкните немного материала к питателю (под давлением).
- когда температура достигнет 110 °C, медленно вытащите какой-нибудь материал из хотенда (возможно, питатель не будет достаточно прочным, чтобы сделать это, но я никогда не достигал этой точки, чтобы проверить).
- затем быстро вытащите нить из Боудена и подающего устройства
@Endre, 👍2
1 ответ
Лучший ответ:
Есть три вещи, которые нужно исправить, и одно предложение:
Измените следующие строки
M109
, используя параметрR
вместоS
, потому что последний не ждет остывания:M109 R160 ; Дождитесь 160С ... M109 R110 ; Нагревайте hotend до 110C
Поведение
М420
будет зависеть от типа выравнивания стола, сохраненной сетки и т. Д. Это вне темы для устранения неполадок. Принтер работает на высоте 10 см над поверхностью.G28
отключает выравнивание стола. Почему вам нужно повторно включить его? Просто удалите эту строку:; M420 S1 - удалить (или закомментировать)
Переопределите максимальную длину экструзии в конфигурации.h, чтобы разрешить сценарий длинного вытягивания (
G1 E-430
), например:#define EXTRUDE_MAXLENGTH 450
Предложение: Используйте относительный режим для экструзии (
M83
) вместо абсолютного позиционирования (M82
). Это значительно упростит ваш код. Вы просто хотите выразить расстояние впараметре E. Тогда вам не придется время от времени сбрасывать позицию с
G92 E0
(сделайте это только один раз на старте). (Я использую этот режим экструзии также для нарезки, потому что он облегчает повторный запуск печати в случае сбоя).
- В чем разница между M420 S и M420 S1?
- Как изменить E0 на E1 на Marlin 1.1?
- M502 сбросит все настраиваемые настройки к их "заводским настройкам по умолчанию", какие это настройки?
- Как установить размер буфера G-кода на Marlin?
- Двигатель экструдера не вращается
- Что такое команда M73 Q17 S43 G-code?
- Решение Cura заменить углы->дуги для увеличения угловой скорости?
- Marlin - замедление скорости печати
Примечание: 160 может быть ниже температуры, которая позволяет перемещать extruder.. К счастью, операция включила " M302 S105` перед восстановлением., @Trish
Да, сценарий выглядит довольно зрелым и последовательным. Кстати. Я добавил "#определить USER_DESC_7" Разрешить холодное выдавливание "" #определить USER_GCODE_7 "M302 P1"` в свои пользовательские команды в *Configuration_adv.h* и с тех пор использовал его довольно часто., @octopus8
Спасибо @octopus8. Я использую заводскую прошивку для своего EryOne ER-20. Как я вижу, разработка Marlin FW ориентирована на Windows. Инструмент прошивки даже не работал для меня в Linux, мне пришлось позаимствовать машину с Windows, чтобы прошить принтер с новым заводским выпуском FW., @Endre
Возможно, я попытаюсь настроить какое-то последовательное ведение журнала отладки (если это возможно), и я надеюсь, что получу некоторые значимые сообщения об ошибках (например, M302 не поддерживается этой конфигурацией)., @Endre
Но чтобы изменить строки в G-коде - как описано в ответе - и, возможно, заставить ваш сценарий работать, вам не нужно повторно прошивать Marlin. Или вы делаете это по какой-то причине, которую я не понимаю? Но для настройки пользовательского меню-да, действительно., @octopus8
Спасибо за совет "использовать параметр R вместо S". Теперь я вижу последовательность охлаждения. Но никакого выдавливания (вытягивания) не происходит. Может быть, это просто не включено в FW. Еще одна досадная вещь, что выравнивание стола всегда происходит. Есть ли какой-нибудь способ отключить это? Насколько я помню, когда я работал над запуском g-кода для слайсера Cura, мне нужно было выяснить, как перейти на уровень стола из кода. Теперь я должен выяснить, как не спать на уровне стола :), @Endre
M302 S105
, за которым следует "G1 E-1", работает для меня при температуре 145 °C, я только что проверил это с помощью шпатлевки. *(Может быть, вы хотели бы попробовать выполнить свой скрипт построчно, вручную с терминала? Марлин дает ценную текстовую обратную связь, более подробную информацию об отладке с помощью "M111 S247".)* Что касается автоматического выравнивания стола, у меня нет ответа под рукой, я был слишком ленив, чтобы проверить все эти настройки на практике... но: может быть, вы никогда не сохраняли сетку в EEPROM после выполнения выравнивания, и поэтому он хочет повторить этот процесс?, @octopus8Привет, кажется, я понял. Я проверил источник заводского FW и увидел, что максимальная длина экструзии установлена на 200. Поэтому я разделил свою длинную экструзию из одного куска на 3 меньших, и теперь откат работает., @Endre