Marlin 1.1.2 – цветная печать стала ближе
Не так давно я писал о своем опыте модернизации своего клона Прюши для печати 2-мя филаментами при помощи каретки с переключаемыми при помощи сервомотора хотэндами.
Реализовано все было на прошивке Marlin версии 1.1.0-RC8, в которую мною были внесены небольшие изменения.
В том посте мною не был освещён один очень важный момент – калибровка сопел относительно друг друга по оси Z. Чтобы закрыть этот пробел, я уже через неделю после первого поста подготовил второй с инструкцией, включающей в себя необходимые дополнительные изменения в прошивке, а также собственно сам процесс калибровки. Но публиковать его я не стал, т.к. посчитал его очень громоздким и решил пойти немного другим путем.
Как многие из вас знают, проект прошивки Marlin является программным обеспечением с открытым исходным кодом, что позволяет каждому просматривать его, при необходимости вносить в него изменения, а при желании принимать участие в его улучшении, предлагая такие изменения для включения в основную программу.
(Кто не в теме, но интересуется, в общих чертах может почитать тут: https://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 )
Необходимость и желание у меня были, поэтому я, собственно, и предложил свои изменения в прошивку, которые были приняты разработчиками и включены в свежий релиз прошивки - Marlin 1.1.2. Прошивка доступна для свободного скачивания по адресу: https://github.com/MarlinFirmware/Marlin Если вкратце, функционал SWITCHING_EXTRUDER был разделен на SWITCHING_EXTRUDER – дергает сервой экструдера, прижимая нужный филамент, и SWITCHING_NOZZLE – дергает сервой на каретке, переключая хотэнды. Изменение небольшое, но позволяет настраивать большее количество кастомных сборок принтеров без внесения изменений в код прошивки конечным пользователем. Можно комбинировать:
- SWITCHING_EXTRUDER + SINGLENOZZLE;
- SWITCHING_EXTRUDER + SWITCHING_NOZZLE;
- SWITCHING_EXTRUDER + DUAL_X_CARRIAGE;
- Или использовать их по отдельности.
#define MOTHERBOARD BOARD_RAMPS_14_EEB //Указываем, что у нас RAMPS со следующим подключением к силовым выходам D10 – D8: extruder, extruder, bed
..
#define EXTRUDERS 2 //задаем количество экструдеров
..
#define SWITCHING_NOZZLE //указываем прошивке на наличие в принтере каретки с сервоприводом
#if ENABLED(SWITCHING_NOZZLE)
#define SWITCHING_NOZZLE_SERVO_NR 0 // задаем номер сервопривода
#define SWITCHING_NOZZLE_SERVO_ANGLES { 20, 137 } // Angles for E0, E1 – задаем углы поворота сервопривода
//#define HOTEND_OFFSET_Z { 0.0, 0.0 } // тут можно настроить отклонение 2-го хотэнда относительно первого по оси Z (необходимо раскомментировать строку)
#endif
..
#define TEMP_SENSOR_1 1 // указываем на наличие термистра второго хотэнда
..
#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command – указываем прошивке на наличие сервопривода(ов) и задаем их количество
..
Также, при желании, можно задать смещение головок по оси X и Y прямо в прошивке, для этого необходимо снять комментарии (два слэша в начале строки) в этих строках:
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
В принципе, этим можно ограничиться, но я советую включить поддержку EEPROM, что даст возможность менять настройки принтера прямо на лету при помощи G-code команд. Для этого необходимо снять комментарий со следующей строки в конфигурационном файле:
//#define EEPROM_SETTINGS
Все, можно компилировать и заливать прошивку в микроконтроллер.
Несколько слов о калибровке сопел относительно друг друга.
1. Необходимо прикинуть примерные смещения путем замеров линейкой на месте.
2. Через терминал (Pronterface, Simplify3D, др) при помощи G-code задаем эти смещения в настройки принтера, например:
M218 T1 X32 Y0 Z-0.15
3. Далее запускам печать (используем калибровочную модель, например: http://www.thingiverse.com/thing:533814), замеряем смещения печати.
4. Ставим печать на паузу,
5. Если активен второй хотэнд, активируем через терминал первый:
T0
5. задаем через терминал новое смещение, например:
M218 T1 X32.8 Y-0.25 Z-0.1
6. Если до паузы был активен второй хотэнд, активируем его обратно:
T1
7. Продолжаем печать, оцениваем точность.
8. В случае необходимости повторяем шаги 4-7, пока не достигнем необходимой точности.
9. сохраняем настройки в EEPROM командой:
M500
Прочитать текущие настройки смещений из EEPROM можно командой M503
Также см. официальную документацию: http://marlinfw.org/docs/gcode/M218.html 10. Принтер готов к печати.
Спасибо за внимание, с радостью отвечу на возникшие вопросы в комментариях или в ЛС.
Еще больше интересных статей
Klipper - восстановление прерванной печати
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Внезапно выяснилось что у стокового клиппера есть странная особенно...
Настройка Marlin для датчика Biqu microprobe для платы BigTreeTech_SKR_mini_E3_V2.0
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...
Комментарии и вопросы
Незачем, но со столом, наприме...
Справедливости ради: 99% стоко...
Тезис про "активно охлаждаемую...
начал осваивать фрикад, до сих...
вобщем всё было норм печатал х...
После 1 или максимум 3го слоя...
Добрый вечера! Есть задачка. К...