Цветная печать двумя хотэндами с сервоприводом
Пару месяцев назад я решил, что мне жизненно необходимо научить свою Прюшу печатать двумя филаментами. Не откладывая в долгий ящик, распечатал Y-адаптер, подключил второй экструдер, и после непродолжительной настройки принтер выдал что-то цветное. Долго в таком виде он не остался, меня напрягала необходимость печатать каждый раз остров для прокачки пластика при смене цвета. Несмотря на очевидную дешевизну такого подхода (необходимо найти пару фитингов, дополнительную боуден трубку и еще один шаговик), я почти сразу от него отказался и кроме калибровочной инь-яни ничего и не распечатал.
Следом я решил попробовать печать двумя хотэндами на одной каретке, тут меня постигло еще большее разочарование. Из неактивного хотэнда подтекал пластик и оседал прыщами при любом соприкосновении с распечаткой, что драматически влияло на качество.
В поисках альтернативы, я наткнулся на Dondolo, в котором неактивный хотэнд при помощи серво привода убирается из зоны печати, также во избежание подтёков пластика выход хотэнда физически запирается при помощи препятствия. Данная идея мне очень понравилась, но у меня не директ экструдер, а боуден, в связи с чем я решил сделать нечто подобное, но под комплектующие, что у меня уже были.
0. Необходимые компоненты
- ($3.6) второй хотэнд;
- ($1.0) вентилятор для охлаждения радиатора хотэнда (3010S);
- ($0.8) дополнительная боуден трубка;
- ($1.2) драйвер шагового двигателя;
- ($8.2) дополнительный шаговый двигатель;
- провода для подключения двигателя;
- ($6.0) дополнительный экструдер;
- держатель хотэндов (печатается, модель прилагается);
- ($2.0) подшипник 608zz – 1 шт.;
- винт М3х10 – 2 шт.;
- винт M4x5 – 1 шт.;
- винт M4x20 – 2 шт.;
- винт M4x25 – 4 шт.;
- винт М4х40 – 2 шт.;
- шайба кузовная M4 – 3 шт.;
- гайка M4 – 8 шт;
- ($4.7) серво привод (EMAX ES08MAII) + 3-хжильный провод для подключения;
- еще провода;
- ($0.5) банка из под лимонада/пива/кваса;
Также, если у вас уже есть нагревательный стол и обдув детали, то вам придется освободить один из силовых выходов D8 – D10, соответственно для организации обдува понадобится:
- ($0.6) (опционально) ключ на полевом транзисторе для организации обдува детали (MOSFET модуль);
- ($5.0) (опционально) вентиляторы охлаждения детали (в моем случае 2 турбины AV5015)
- (опционально) воздуховоды для охлаждения детали (печатается, модель прилагается)
Итого выходит, где-то на $34.
1. Внесение изменений в прошивку
Файл Configuration.h
Необходимо определить силовые выходы D10 – D8 (EEB или EEF). Строка по умолчанию: #define MOTHERBOARD BOARD_RAMPS_14_EFB , Меняем на:#define MOTHERBOARD BOARD_RAMPS_14_EEB //extruder, extruder, bed
Далее – указать количество экструдеров. Строка по умолчанию: #define EXTRUDERS 1 , Меняем на: #define EXTRUDERS 2
Указание на наличие датчика температуры на втором хотэнде и его тип. Строка по умолчанию: #define TEMP_SENSOR_1 0 , Меняем на: #define TEMP_SENSOR_1 1
Также необходимо указать на наличие сервомотора
Строка по умолчанию: #define NUM_SERVOS 0 , Меняем на: #define NUM_SERVOS 1
Также следом за определением количества экструдеров добавляем следующий код: (Представленный код - смесь того, что уже было в прошивке с добавлениями от себя, возможно есть более элегантное решение, но я сделал именно так. При написании кода, я ориентировался на уже имеющуюся в прошивке поддержку SWITCHING_EXTRUDER , но она работает немного не так как нужно.
В случае, если вы захотите делать что-то типа Dondolo, то следует воспользоваться определением именно этой функции, и не дописывать дополнительный код в прошивку).
#define SWITCHING_HOTENDS
#if ENABLED(SWITCHING_HOTENDS)
#define SWITCHING_HOTENDS_SERVO_NR 0 // servo num
#define SWITCHING_HOTENDS_SERVO_ANGLES { 120, 0 } // Angles for E0, E1
#endif
120 и 0 – углы, на которые следует поворачиваться сервоприводу при переключении между хотэндами. Если при работе сервопривод начнет издавать характерный треск, значит у него не выходит повернуться на заданный угол, из-за погрешности стыков распечатанных деталей, тогда следует уменьшить разницу в значениях на 1-2 градуса (например 120 и 2 соответственно, как это сделал я).
Файл Marlin_ main.cpp
Ищем « void invalid_ extruder_ error» Добавляем перед этой функцией или после нее следующий код:
#if ENABLED(SWITCHING_HOTENDS)
inline void move_hotends_servo(uint8_t e) {
const int angles[2] = SWITCHING_HOTENDS_SERVO_ANGLES;
MOVE_SERVO(SWITCHING_HOTENDS_SERVO_NR, angles[e]);
}
#endif
Несколькими строками ниже должна начаться функция tool_change, необходимо найти следующую строку: «void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool no_move/*=false*/) {». В функции описывается поведение для разных случаев многоцветной печати (миксирующие хотэнды, раздельные головки, печать одним экструдером и сервой), все это очень занимательно, но нужно добавить наш случай.
Следует перед строкой «# if ENABLED( SWITCHING_ EXTRUDER)» добавить следующий код:
#if ENABLED(SWITCHING_HOTENDS)
float z_raise = 0.5;
destination[Z_AXIS] += z_raise;
planner.buffer_line_kinematic(destination, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
stepper.synchronize();
move_hotends_servo(active_extruder);
delay(500);
destination[Z_AXIS] -= z_raise;
planner.buffer_line_kinematic(destination, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
stepper. synchronize ();
# endif
Готово, компилируем и заливаем прошивку в микроконтроллер.
2. Подключение электроники
D10 - нагревательный элемент первого хотэнда; D9 - нагревательный элемент первого хотэнда; D8 – нагревательный стол; D11,5 V, GND – сервопривод (в моем рампсе от чего-то на пине 5v у D11 пина нет напряжения, я подключился в другой свободный 5v пин);E1 (2 B,2 A,1 A,1 B) – двигатель 2-го экструдера; Чуть ниже драйвер второго хотэнда; T0( GND, A13) – термистор первого хотэнда, T1( GND, A14) – термистор стола, T2( GND, A15) – термистор второго хотэнда, D4, GND - MOSFET модуль для подключения вентилятора обдува детали
V+, V- - вентилятор(ы) обдува модели; VIN, GND –блок питания; SIG –к выходу D4 RAMPS.
3. Сборка держателя хотэндов
Модель: http://www.thingiverse.com/thing:2260178. Хочу заметить, что модель я делал исходя из комплектующих, что у меня были в наличии, в интернете есть и другие модели, например: http://www.thingiverse.com/thing:1412102
4.1. Указываем на наличие второго экструдера
4.2. Задаем смещение второго хотэнда относительно первого. Меню «Принтер» - «Настройки принтера…». Смещения необходимо подобрать опытным путем, в случае использования модели держателя из статьи, предлагаю оттолкнуться от указанных на скриншоте.4.3. Скачиваем калибровочную модель (http://www.thingiverse.com/thing:533814);
4.4. Загружаем оба STL файла из архива в слайсер;
4.5. Жмем правой кнопкой по модели и выбираем «Объединить двойную экструзию»4.6. Не забываем настроить обдув модели. У меня при включении турбин более чем на 45% хотэнды переставали справляться с нагревом. 4.7. устанавливаем остальные настройки по своему вкусу и сохраняем .gcode для печати.
5. Калибровка принтера
Делаем паузу и проверяем, все, что сделали до этого момента с самого начала.
Печатаем калибровочную модель и радуемся ;)Повторяем пункты 4.2 и 4.7, и так по кругу до тех пор, пока не добьемся правильной геометрии.7. Апгрейд готов.
Спасибо за внимание!
В заключение несколько фотографий
Модель лягушки (http://www.thingiverse.com/thing:329436). Слева лягуха, что я печатал головкой с двумя хотэндами без сервы. Видно, что из неактивного хотэнда постоянно вытекал пластик и цеплялся за модель, не спасал даже щит вокруг.Такая же история с штурмовиком (слева печать в два хотэнда, справа 2 хотэнда с сервой).
Еще больше интересных статей
Klipper - восстановление прерванной печати
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Внезапно выяснилось что у стокового клиппера есть странная особенно...
Как определить высоту слоя прерванной печати
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
И я ему рассказал, как на Энде...
Первый принтер сейчас — Bambu....
Не сдюжил уже на 100мм/с на сл...
Добрый день!Господа, среди тех...
Как посмотреть избранное?
Добрый день. Есть ли в каком-н...
Всем привет, недавно случилось...