Подключение Anycubic ACE Pro к Creality K1 Max - часть вторая (программная).
Итак, в первой части мы подключали аську к Максу, теперь займемся настройкой.
Изначально реверс-инжинирингом ACE Pro занимался широко известный в узких кругах УткаБобр, автор первых кастомных прошивок для принтеров Anycubic. Все его наработки, опубликованные в свободном доступе, легли в основу нескольких проектов по подключению аськи.
На данный момент как мы уже упомянули ранее существуют две версии драйверов управления аськой:
- BunnyACE (https://github.com/BlackFrogKok/BunnyACE) – драйвер, работающий с одним или с двумя датчиками филамента в голове принтера.
- ValgACE (https://github.com/agrloki/ValgACE) – драйвер, оперирующий скриптами подачи без датчиков в голове.
Далее я буду рассматривать настройку и конфигурирование варианта Bunny ACE, т.к. использовал в работе именно его. И еще раз повторюсь – мы ставим всё это на Creality K1Max, с другими принтерами процедура может незначительно отличаться.
• Установка Creality Helper script
Тут все просто и многим знакомо, думаю не стоит описывать подробно. От helper script нам нужен доступ в консоль принтера, возможность правки файлов, интерфейс Mainsail и GuppyScreen с удалением всех сервисов Creality.
• Обновление PySerial
Подключаемся через ssh и выполняем команду /usr/share/klippy-env/pip3 install pyserial==3.5
• Комментирование старого сенсора филамента в конфиге
Поскольку штатный сенсор филамента мы больше не будем использовать – комментируем всю секцию [filament_switch_sensor filament_sensor] конфигурационного файла printer.cfg, описывающую его. Сам сенсор тоже можно снять, т.к. он нам больше не понадобится.
• Правка файла /etc/udev/rules.d/60-serial.rules (актуально только для Creality):
Эта правка нужна для учета специфики реализации usb-serial. И да, первая строка напоминает нам, что в случае обновления прошивки это действие надо будет повторить.
Заменяем содержимое файла /etc/udev/rules.d/60-serial.rules на это:
# do not edit this file, it will be overwritten on update
• Добавление ace.cfg и ace.py и настройка ace.cfg
Собственно, сам драйвер состоит из двух файлов – ace.py (модуль на питоне) и ace.cfg (пользовательский конфигурационный файл).
Важно! На данный момент в мастер-ветке на гитхабе лежит первоначальная версия драйвера. Текущая актуальная версия располагается в ветке development: https://github.com/BlackFrogKok/BunnyACE/tree/development
Описание процедуры установки есть на странице проекта, по итогу у нас файлы ace.py и ace.cfg должны быть в каталогах ${KLIPPER_HOME}/klippy/extras/ace.py и ${KLIPPER_CONFIG_HOME}/ace.cfg соответственно.
Также необходимо в каталоге с ace.cfg создать файл mmu.cfg содержащий необходимые для работы переменные (на него будет ссылка в файле ace.cfg далее):
[Variables]
В файле основных настроек printer.cfg подключаем ace.cfg: [include ace.cfg]
Следующим шагом надо прописать все параметры в конфигурационном файле ace.cfg (я привожу содержимое моего конфига для К1Макс с комментариями):
# Please check that [save_variables] is above [ace] if you're using different config
[save_variables]
[respond]
[ace]
serial: /dev/serial/by-id/usb-ANYCUBIC_ACE_0-if00
baud: 115200
# Extruder_sensor_pin
extruder_sensor_pin: !nozzle_mcu:PA10 #пин подключения первого сенсора филамента
# Toolhead_sensor_pin
toolhead_sensor_pin: !nozzle_mcu:PA8 # пин подключения первого сенсора филамента, может быть пустой в случае если у вас его нет (как в варианте с новым экструдером Creality из кита cfs)
# Default feeding speed, 10-25 in stock, скорость подачи, можно поэкспериментировать с этой величиной
feed_speed: 80
# Default retraction speed, 10-25 in stock, скорость ретракта, тоже можно поэкспериментировать с этой величиной
retract_speed: 80
# Length of the retract to make for toolchange, важный параметр – на сколько надо произвести ретракт после отрезания, чтобы освободить трассу для подачи следующего филамента. Т.е. это длина от входного сенсора филамента головы до безопасного положения кончика филамента за буфером подачи
toolchange_retract_length: 540
toolhead_sensor_to_nozzle: 0 # TUNE ME Distance from toolhead sensor to nozzle, если не используете второй сенсор – настройте длину филамента от первого сенсора до ноззла, именно на неё будет осуществляться подача филамента без использования второго датчика
poop_macros: POOP #наименование макроса очистки
cut_macros: CUT_TIP #наименование макроса отрезания филамента
# Max dryer temperature, максимальная температура сушилки. В стоке 55 градусов, проверяли до 70, но есть риски оплавления корпуса и колпака. На самих грелках внутри стоит модуль защиты (термореле) на 90 градусов.
max_dryer_temperature: 55
[gcode_macro POOP] #макрос очистки, все движения в процессе прочистки экструдера
gcode:
G91
G0 Z26 F600
G90
G0 X185 Y287 F9000
SET_PIN PIN=fan0 VALUE=70
G0 X185 Y302 F700
G1 E90 F300
SET_PIN PIN=fan0 VALUE=255
G91
G1 E-1 F900
G4 P3000
G90
G0 Y302 F4000
G0 X209 F4000
G0 Y302 F4000
G0 Y297 F4000
G0 Y302 F4000
G0 Y297 F4000
G0 Y302 F4000
G0 Y297 F4000
G0 Y304 F4000
G0 X224 F4000
G0 Y290 F4000
SET_PIN PIN=fan0 VALUE=0
G91
G0 Z-26 F600
[gcode_macro CUT_TIP] #макрос обрезания прутка, учитывающий особенности вашей реализации ножа
gcode:
{% if "xyz" not in printer.toolhead.homed_axes %}
G28
{% endif %}
G90
G0 E-23 F500
G0 X20 Y285 F8000
G0 X20 Y299 F300
G0 X20 Y287 F300
G0 E22 F500
G1 E-51 F500
[gcode_macro _ACE_PRE_TOOLCHANGE]
variable_purge_temp_min: 230
gcode:
M117 PRE
{% if "xyz" not in printer.toolhead.homed_axes %}
G28
{% endif %}
{% if printer.extruder.temperature < purge_temp_min %}
M109 S{purge_temp_min}
{% endif %}
SAVE_GCODE_STATE NAME=TOOLCHANGE
{% if printer.gcode_move.gcode_position.z < 30 %}
G91
G0 Z30 F600
{% endif %}
[gcode_macro _ACE_POST_TOOLCHANGE]
gcode:
RESTORE_GCODE_STATE NAME=TOOLCHANGE MOVE=1 MOVE_SPEED=250
[gcode_macro _ACE_ON_EMPTY_ERROR]
gcode:
{action_respond_info("Spool is empty")}
{% if printer.idle_timeout.state == "Printing" %}
PAUSE
{% endif %}
[gcode_macro gg]
gcode:
m117 {x}
[gcode_macro T0]
gcode:
ACE_CHANGE_TOOL TOOL=0
[gcode_macro T1]
gcode:
ACE_CHANGE_TOOL TOOL=1
[gcode_macro T2]
gcode:
ACE_CHANGE_TOOL TOOL=2
[gcode_macro T3]
gcode:
ACE_CHANGE_TOOL TOOL=3
• Правка web-интерфейса Mainsail
На данный момент реализация веб-интерфейса в разработке, но уже сейчас есть модуль для Mainsail, в котором можно управлять сушилкой, устанавливать цвет и тип филамента (а именно на основании этих данных работает функция «Бесконечная катушка»), загружать пластик по нажатию на соответствующий гейт.
Для установки необходимо заменить содержимое каталога /usr/data/mainsail на содержимое из архива https://t.me/ERCFcrealityACEpro/21334/54658
После чего выполнить в консоли команды:
chmod 755 -R /usr/data/mainsail
/etc/init.d/S50nginx restart
После этого в Mainsail появится соответствующий раздел:
Поскольку это пока еще не полноценный Filament Manager с возможностью сопоставления гейтов аськи и параметров из g-кода – приходится держать в уме и сопоставлять самостоятельно используемый номер филамента из слайсера с фактически загруженным пластиком. Т.е. если вы слайсили модель в Орке первым филаментом – печатать вы будете из первого гейта аськи, и соответствующий пластик надо будет грузить именно в него.
• Правки в Орке
Добавление филаментов – здесь все просто, в слайсере мы должны добавить филаменты:
Также в конфигурации мы должны указать, что работаем с одноэкструдерным мультиматериальным принтером:
Все параметры выставляем в 0.
В секции «G-код принтера» следующее:
В «start gcode»: ACE_ENDLESS_SPOOL = 1 и T{current_extruder}
В «end gcode»: ACE_CHANGE_TOOL TOOL=-1
В «gcode перед сменой слоя»: ACE_ENABLE_FEED_ASSIST index={current_extruder}
И, пожалуй, последнее, что стоит добавить в слайсере – область исключения на столе из-за добавления депрессора ножа и сброса отходов:
На столе в слайсере запретные области выделены светлым оттенком:
Вот и все, после этого вы можете полноценно использовать аську с вашим принтером!
Как это работает – можно посмотреть тут: https://www.youtube.com/watch?v=sxWu5P4a1kU
и вот тут: https://www.youtube.com/shorts/ryHxfTX_DA0
Еще больше интересных статей
Подключение Anycubic ACE Pro к Creality K1 Max - часть первая (аппаратная).
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Простой кирпич в стене или требует ли красота жертв?
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
GCODE: Основы
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
GCODE: Плюшки от ПавлушкиПосле написания предыдущей...
Комментарии и вопросы
Благородное дело. Вы большой м...
А в чем проблема просто пойти....
Вещь! Почет и уважуха!Стол из....
Не могу настроить съёмку таймл...
здраствуйте. может есть возмож...
Всем доброго времени суток. Во...
Как в том анекдоте - принтер к...