IdeaFormer IR3 V1 - переход на Klipper и новые апгрейды

Всем привет! Это четвёртая статья о моём конвейерном принтере, в которой я буду описывать свой опыт перехода на прошивку Клиппер и некоторые другие изменения в конструкции.

Ранее в цикле:

IdeaFormer IR3 V1 - обзор и первая печать

IdeaFormer IR3 V1 - решение проблемы смещающихся слоёв

IdeaFormer IR3 V1 - директ экструдер

Пройдя все вышестоящие этапы, я подобрался к следующему логичному шагу – смене управляющей электроники и прошивки.

Штатно на принтере установлена плата MKS Gen-L v2.1 с восьмибитным процессором, что по современным меркам принтерострояния уже анахронизм. Да и Марлин не может похвастаться полноценной поддержкой современных технологий улучшения качества печати (вроде того же Input Shaping) и скоростью внедрения обновлений.

С клиппером я уже знаком, ранее я применял его на двух других своих принтерах – дельте Tevo Little Monster и Кубике.
Опыт сугубо положительный – система стабильная, предсказуемая, конфигурируется легко и удобно. С этим проблем не ожидается.

Другая часть задачи – переделать кронштейн крепления вентиляторов печатающей головы, чтобы улучшить охлаждения термобарьера и добиться равномерного двухстороннего обдува печатаемой детали. Сюда же – упрочнение крепления податчика струны, т.к. взятая мной с Thingiverse моделька оказалась недостаточно крепкой.

Ну и «на сладкое» - переделка балки оси Y, которую я планирую сменить на карбон, ради некоторого облегчения подвижной части печатающей системы, что положительно сказывается на доступных ускорениях. Ну и потому, что просто могу. Прикольно же!

Итак, за работу. В смысле – за моделирование. Прежде чем лезть в «кишки» принтера хорошо бы в подробностях отрисовать новые детали.

Замеряю размеры и положение отверстий на тех частях рамы, с которыми мне предстоит стыковаться и сажусь рисовать.

В итоге получается что-то такое:



От штатной системы остаётся рельса с кареткой, узел натяжения ремней, кронштейн под радиатор термобарьера и основная крепежная пластина головы. Её тоже можно было бы заменить на карбон, но тогда я почему-то об этом не подумал.



На скриншотах уже финальная версия – в процессе примерки некоторых деталей были найдены небольшие ошибки, которые я исправлял в модели, перепечатывал и снова примерял.

Так же я смоделировал накладки на корпус управляющей электроники, в которых будет размещен тачскрин и 120мм вентилятор охлаждения. Меня так достал шум от двух мелких кулеров (40 и 60мм), что это переделка обдува контроллера была обязательной частью обновления принтера.



С корпуса я и начал.



С экраном печатные детали состыковались хорошо, а вот с верхней накладкой я слегка накосячил – не сошлись крепежные отверстия, что было тут же исправлено в модели и отправлено на перепечатку.

А пока исправленная модель печаталась – я разобрал корпус и взялся за маркировку проводов.



Провод за проводом всё было помечено.



Теперь можно устанавливать новую плату и подключать провода уже к ней.

Т.к. в корпусе места не то, чтобы очень много (а мне еще нужно уместить одноплатник для Клипера) я искал что-то компактное, но имеющее все нужные функции.
В конце концов выбор пал на Mellow Fly-D5.
К числу её достоинств можно отнести малый размер, встроенный CAN-адаптер (на будущее) и удачное для меня расположение разъёмов.



Выставив джамперы драйверов в соответствии с документацией я перешел к подключение проводов.

На мою удачу их длины хватило для достаточно удобного размещения в доступном объёме, разве что пришлось сделать два маленьких изменения:

1) Удлинить провод подключения обдува печатаемой детали
2) Подключить нагреватели стола и печатающей головы крест-накрест.

Без второго пункта можно было обойтись, но так провода ложились аккуратнее.



Теперь дело за хостом Клиппера. На других своих принтерах я использовал одноплатный компьютер Orange Pi 3 LTS, но тут для него слишком мало места.

Посмотрев доступные варианты, я остановился на Orange Pi Zero 3, у которого есть парочка важных плюсов – компактный размер и сосредоточенные на одной стороне разъёмы подключения периферии.
К минусам можно отнести отсутствие EMMC, вместо которой придётся использовать MicroSD карточку.



На флэшке экономить явно не стоит, так что я поискал что-нибудь устойчивое к большому количество записи и выбрал SanDisk Max Endurance на 32Гб.

Экран выбирался исходя из размеров фронтальной панели корпуса, так что пришлось взять достаточно маленький (по сравнению с другими принтерами) HDMI тачскрин на 4.3”



Экран подключается двумя кабелями: HDMI <> MicroHDMI для передачи изображения и MicroUSB <> USB для подачи питания и сенсорного управления.

Кстати, о USB. На Orange Pi Zero 3 три доступных USB порта – один распаянный, а два других выведены на контакты гребёнки.
На какие именно – написано в документации.

Я использую все три – в распаянный порт подключается экран, один порт гребёнки занят платой управления принтером, а другой выведен на панель через шнурок с разъёмом. Он будет использоваться для подключения внешней периферии – акселерометра или веб-камеры. Шнурок нужно перепиновать в соответствии с положением контактов на гребёнке.



После установки OS, Клиппера и первичной настройки я засунул «апельсинку» в корпус, определив её на место платки-разветвителя вентиляторов, ранее крепившейся на боковой стенке.

В этой статье установка системы остаётся «за кадром». Если для вас это в новинку – обратитесь к Klipper Wiki где есть примеры установки и подключения для разных плат.



С размещением электроники закончил, теперь пора пошуметь. В смысле, вырезать в корпусе отверстия для вывода проводов и кулера на 120мм.



Нацарапав примерные линия отреза, я взялся за дремель и минут сорок колупал верхнюю крышку корпуса.



Сглаживаю края наждачкой, чищу от пыли, примеряю.



В глубине проводов можно разглядеть желтый прямоугольник, слегка подсвеченный красным светодиодом. Это регулируемый понижающий DC-DC преобразователь LM2596, которым я получаю 5в для питания одноплатного компьютера.
К нему питание идёт с одного из разъёмов неуправляемых вентиляторов платы Fly-D5, а от него (белым проводом с USB Type-C) в Orange Pi Zero 3.

Второй такой же преобразователь используется для регулировки напряжения питания 120-го кулера, закреплённого на верхней накладке корпуса. К этому времени её исправленная версия как раз допечаталась.



Немного корректирую настройки слайсера и запускаю тестовый кубик, чтобы проверить, что всё корректно работает и не сбоит во время печати.



С первой задачей всё – принтер переведён на Клиппер и может печатать. Правда, само по себе это особого выигрыша (кроме повышения удобства за счет онлайн доступа) не даёт.

Двигаюсь дальше – теперь нужно перебрать «голову».



На фото представлены новые печатные детали балки, держатель для податчика и кронштейн вентиляторов охлаждения. Карбоновый профиль для портала (330мм), карбоновые пластины для его крепления. Жертвенный кабель для подключения новой головы (остался со времён покупки заводского «директа») и новый хотенд.

О последнем чуть подробнее: тут уже привычная для меня сборка из радиатора E3D v6, биметаллического горла «титан-медь» и керамического нагревателя TriangleLab CHC. Сопло родное – латунь с никелевым покрытием.
Радиатор, конечно, несколько архаичный по современным меркам, но дешевый и хорошо справляется с теплоотводом за счет обширного оребрения.

Разворачиваю принтер обратной стороной и берусь за работу.
Первым делом отмечаю маркером позицию крепления ремней, чтобы потом было на что ориентироваться при возвращении их на место.



Откручиваю и откладываю голову – с ней разберёмся позже.



Снимаю ремни, проверяю плавность хода портала на родных комплектующих. Это нужно для понимания не перетянул ли я что-нибудь при установке новых деталей.



Поочерёдно откручиваю крепления балки, раскладывая снятые детали на «левые» и «правые».
В случае неудачи с карбоном так будет проще вернуться к изначальной конструкции.



Отдельно фотографирую положение роликов натяжения ремня.



Снимаю ролики и оставшиеся пластины.

Теперь, когда все детали балки откручены, можно прикинуть разницу в весе:



И она, прямо скажем, невелика т.к. основной вес даёт алюминиевый профиль, а он достаточно короткий. На принтере с порталом большего размера разница была бы ощутимее.
Не то, чтобы я ожидал какого-то фантастического выигрыша от такого облегчения конструкции, но всё-таки. Мне вообще было скорее интересно попробовать – смогу ли я приделать новую балку с достаточной точностью, чтобы это всё вообще заработало.

Кстати, о точности – пока сняты ремни, я имею доступ к оптическому концевику оси Y, который давно планировал сменить. Штатно установлен LERDGE Optical Endstop-4001, и он достаточно хреновый т.к. имеет непростительную для оптики повторяемость, к тому же зависящую от скорости парковки.



Меняю его на EE-SX671WR



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



«А чего это вы тут делаете?»



Готовлюсь к сборке портала – прикручиваю углепластиковые обкладки и фиксирую балку портала струбцинами. Теперь нужно аккуратно просверлить балку через указанные отверстия сверлом 4мм с обоих сторон. Желательно, чтобы кто-нибудь помог, направляя шланг пылесоса под точку сверления т.к. свои руки будут заняты удержанием портала и шуруповёрта.



Обратную установку портала начинаю с роликов. С моими новыми деталями расстояние между пластинами увеличилось на 4мм от штатного, так что мне нужно добавить какие-нибудь проставки для компенсации размеров.

Самый простой вариант – добавить на каждую сторону по шайбе толщиной 2мм из чего-нибудь плотного. Для этого хорошо подходят стойки для печатных плат М4х2.



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

Болты аналогично заменяются на более длинные.



Прикручиваю пару новых карбоновых обкладок и ставлю на них обводные ролики, сверяясь с ранее сделанным фото.



Балка фиксируется четырьмя болтами М4х50, проходящими в просверленные ранее отверстия.



На фото она установлена временно – для проверки соосности сверления. Сейчас я её снова сниму для сверления под рельс линейного подшипника.



Направляющая будет закреплена двумя закладными, вставленными внутрь углепластикового квадрата.



Выставляю рельс на балке с помощью печатных кондукторов. Изначально думал использовать алюминиевые, но из-за гуляющих размеров карбона они не налезли.

Делаю четыре отверстия сверлом 3.2мм и вставляю закладные с запрессованными гайками М3.



Прикручиваю рельс …



… и устанавливаю всё это великолепие на место.



О, чуть не забыл! До натяжения ремней нужно прикрутить упор для механического концевика оси X т.к. он ставится на те же болты, что и обводные ролики.



Вот теперь можно возвращать ремни.



Крепление у них красивое и надёжное, только не очень удобное т.к. приходится натягивать два ремня сразу из-за общей крепёжной планки. В теории, её можно распилить на две половинки и устанавливать ремни независимо, но я не стал.

Портал готов, перехожу к «голове».



Из её деталей мне нужна основная крепежная планка и кронштейн радиатора, остальное откладываю в сторону.

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



Исправляю в модели и двигаюсь дальше.



Прикручиваю хотенд и временно ставлю голову на принтер.



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

Вношу коррективы в модель и печатаю новую версию.



Теперь всё в порядке.



Берусь за провода. Откусываю концевик, нагреватель, термистор и вентилятор охлаждения с жертвенного кабеля, после чего снимаю силиконовый шланг и разбираю разъём.



Убираю обрубки проводов нагревателя и датчика температуры, припаивая на их место удлинители из комплекта TriangleLab CHC.



Ставлю «голову» на место и приступаю к сращиванию проводов.



Силиконовый шланг заменяется на сетчатую оплётку – она мне нравится больше, да и выглядит прикольно.
Правда, отрезать её нужно не «в размер» а с запасом, о чём я постоянно забываю.

Закончив с проводами, я до упора пропихиваю кусок PTFE трубки, которая будет направлять филамент от податчика к хотенду.



Обрезаю, оставляя примерно 6мм выступающими над платформой податчика, и прикручиваю «шерпу».



Т.к. я снова ошибся с размером куска сетчатой оплётки, прячу остатки проводов в разрезную гофру. Выглядит это стрёмно, да еще и торцом слегка цепляет алюминиевый профиль рамы. Гадость.

Перетягиваю оплётку, перемещая недостаток к разъёму подключения блока управления.



И всё, сборка завершена. Ну, почти.

Тут я вспоминаю, что у меня еще аж со времён покупки принтера лежат новые барашки регулировки стола, которые были повреждены при доставке. Вот и их время настало.



Теперь точно всё. Общий вид:



Голова отдельно:



Теперь у меня и обдув равномерный и сопло видно замечательно.

Переходим к самому «вкусному» - калибровке компенсации резонансов.



Вешаю датчик Mellow Fly-ADXL345 на «голову» и запускаю SHAPER_CALIBRATE

По Х картина относительно неплохая …



А вот на оси Y много мусора, что, как мне кажется, связано с некоторым заметным люфтом каретки MGN12C.



Надо бы попробовать её заменить и посмотреть не изменится ли чего. Кажется, у меня была запасная от KGT.

Последний штрих – проверка длительной печатью (перед которой, разумеется, калибруется PID стола и хотенда).

Корректирую настройки скорости в слайсере, нахожу катушку с остатками белого PETG и запускаю печататься прямоугольник 20х10х500.



Всё ОК – температуры «апельсина», платы управления и хотенда стабильны.

Напоследок еще раз перечислю использованные комплектующие:

Плата управления принтером
Mellow Fly-D5 - https://aliexpress.ru/item/1005006024296423.html

Одноплатный компьютер
Orange Pi Zero 3 - https://aliexpress.ru/item/1005006612641669.html

Тачскрин
TZT 4.3” 800х480 - https://aliexpress.ru/item/1005006111886326.html

Флэш карта MicroSD
SanDisk Max Endurance 32Gb - https://www.wildberries.ru/catalog/143504188/detail.aspx?size=242342401

Понижающий DC-DC преобразователь
LM2596 - https://aliexpress.ru/item/10000000656280.html

Оптический концевик
EE-SX671WR - https://aliexpress.ru/item/1005004397495488.html

Планка USB
USB 2.0 с раздельными портами - https://aliexpress.ru/item/1005006048028604.html

Акселерометр
Mellow Fly-ADXL345 - https://aliexpress.ru/item/1005006225740640.html

Радиатор хотенда
E3D v6 - https://aliexpress.ru/item/1005002814191260.html

Термобарьер
Биметалл «титан-медь» с гайкой - https://aliexpress.ru/item/1005005789951492.html

Нагревательный блок
TriangleLab CHC 24в - https://aliexpress.ru/item/32697889176.html

Сопла под IR3
Никелированная латунь - https://aliexpress.ru/item/1005004608922456.html

Карбоновая квадратная труба
20х20х18х500 - https://aliexpress.ru/item/1005006440860052.html

Карбоновые пластины крепления
Заказ резки по чертежу - https://aliexpress.ru/item/4000389892453.html

Печатные детали:

Все модели по ссылке https://ravencosplay.ru/things/info/2809-komplekt-pechatnyh-detaley-dlya-ideaformer-ir3-v1

Моя конфигурация Klipper:

accelerometer.cfg

Код

[mcu adxl]
serial: /dev/serial/by-id/usb-Klipper_rp2040_E6626005A7725C34-if00

[adxl345]
cs_pin: adxl:gpio9
spi_software_sclk_pin: adxl:gpio10
spi_software_mosi_pin: adxl:gpio11
spi_software_miso_pin: adxl:gpio12
axes_map: x,-z,y

[resonance_tester]
accel_chip: adxl345
probe_points:
125,125,20



printer.cfg

Код

[include mainsail.cfg]
#[include accelerometer.cfg]

[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f072xb_12345-if00
restart_method: command

########################################
# Printer configuration
########################################

[printer]
kinematics: corexy
max_velocity: 150
max_accel: 5000
max_z_velocity: 10
max_z_accel: 500

[virtual_sdcard]
path: /home/orangepi/printer_data/gcodes
on_error_gcode: CANCEL_PRINT

# Override to support unlimited belt size
# (homing Z simply resets its virtual position to 0.0)
[homing_override]
axes: z
set_position_z: 0
gcode:
{% if params.X is not defined and params.Y is not defined and params.Z is not defined %}G28 X0 Y0{% endif %}
{% if params.X is defined %}G28 X0{% endif %}
{% if params.Y is defined %}G28 Y0{% endif %}
G92 Z0

[idle_timeout]
timeout: 1800 # timeout in seconds (1800 = 30 minutes)

########################################
# Axis and TMC configuration
########################################

[stepper_x]
step_pin: PC15
dir_pin: PC14
enable_pin: !PC2
microsteps: 16
rotation_distance: 40
endstop_pin: ^!PB4
position_endstop: 0
position_max: 250
homing_speed: 30

[tmc2209 stepper_x]
uart_pin: PC13
run_current: 1.1
stealthchop_threshold: 999999

[stepper_y]
step_pin: PA1
dir_pin: PA0
enable_pin: !PA2
microsteps: 16
rotation_distance: 40
endstop_pin: ^!PB3
position_endstop: 0
position_max: 360
homing_speed: 30

[tmc2209 stepper_y]
uart_pin: PC3
run_current: 1.1
stealthchop_threshold: 999999

[stepper_z]
step_pin: PA5
dir_pin: !PA4
enable_pin: !PA6
microsteps: 16
rotation_distance: 48.324
endstop_pin: ^PD2
position_endstop: 0
position_max: 99999
position_min: -3

[tmc2209 stepper_z]
uart_pin: PA3
run_current: 1.5
stealthchop_threshold: 999999

[extruder]
step_pin: PC5
dir_pin: !PC4
enable_pin: !PB0
rotation_distance: 22.668 # for 5mm Shaft Driven Bondtech gearsets
gear_ratio: 50:10 # 50:10 for standard 10t motor, 50:8 for sherpa mini 8t motor
full_steps_per_rotation: 200 # 1.8deg Motor
microsteps: 16
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC7
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: PC1
min_temp: 0
max_temp: 250
pressure_advance: 0.08
max_extrude_only_accel: 1000
control: pid
pid_Kp: 19.046
pid_Ki: 1.000
pid_Kd: 90.705

[tmc2209 extruder]
uart_pin: PA7
run_current: 0.65

########################################
# Heater bed configuration
########################################

[heater_bed]
heater_pin: PC6
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: PC0
min_temp: 0
max_temp: 130
control: pid
pid_Kp: 70.841
pid_Ki: 1.431
pid_Kd: 876.659

########################################
# Fans configuration
########################################

[fan]
pin: PC9

[heater_fan hotend_fan]
pin: PC8
heater: extruder
heater_temp: 50.0

########################################
# Host temperature
########################################

[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100

[temperature_sensor orange_pi]
sensor_type: temperature_host
min_temp: 0
max_temp: 100

########################################
# Input shaper configuration
########################################

[input_shaper]
shaper_type_x: zv
shaper_freq_x: 103.2
shaper_type_y: zv
shaper_freq_y: 127.0




Документация:

Mellow Fly-D5 - https://mellow-3d.github.io/fly_d5.html

Orange Pi Zero 3 - http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_3

Klipper - https://www.klipper3d.org/Config_Reference.html

Вроде бы всё. Если что – милости просим в комменты ^_~

#3d принтер, #ideaformer ir3

 0  197
Добавлен 9 июль 2024, 8 дней назад

или , чтобы оставлять комментарии