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. Принтер готов к печати.
Спасибо за внимание, с радостью отвечу на возникшие вопросы в комментариях или в ЛС.
Еще больше интересных статей
Температура стола и пирометр.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
duet web control не регулируются обороты вентилятора обдува детали на BTT SKR V1.4
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
принтер у меня самодельно переделанный из ки...
Сопла и сопли
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сколько раз этот вопрос поднимался. Сколько тем...
Комментарии и вопросы
ну замудренно и 42мм ширина,....
Автолак точно имеет УФ защиту,...
Чем катртезианская отличается....
Доброго времени суток, столкну...
купил новый шаговый двигатель...
Разделение моделей это жуть, о...
Я получил доступ к принтеру и...