Ранее я рассмотрел вопросы установки и настройки Klipper, об этом можно почитать по ссылкам:
Установка Klipper, Moonraker и FluiddPi
Настройка printer.cfg и калибровка Klipper
Подключение по UART к Raspberry
Настройка MCU HOST и подключение ADXL345
Подключение и прошивка BIGTREETECH EBB 36/42
Подключение 3D touch (BL touch)
Что бы отключать основное питание принтера по окончанию печати или при возникновении ошибок многие успешно используют твердотельное реле. Я пошёл другим путем, собрал управление на симисторе. По сути тоже твердотельное реле, только самодельное. Самое главное не покупать симистор на всем известной китайской площадке, присылают что то поддельное, не выдерживает двух включений. Схема устройства ниже, по сути типовое подключение и парочка светодиодов. Один горит когда есть питание на плате, второй когда симистор открыт. Ссылка на схему и плату. Плата выполнена точно по размерам платы управления питанием Lerdge, что бы не сверлить новых отверстий.
Raspberry Pi при этом запитано от своего источника 5В, устройство подключено тремя проводами (земля, 5В, управление). Питание на принтер подается когда на управляющем высокий уровень.
У меня подключено так:
Теперь нужно дописать в moonraker.conf в раздел [power Printer] следующие строки:
[power Printer]
type: gpio # тип устройства
pin: gpio4 # номер GPIO к которому подключено реле
off_when_shutdown: True # выключение питания при ошибках
restart_klipper_when_powered: True # выполнение "FIRMWARE_RESTART" при включении питания
restart_delay: 1 # задержка в секундах перед "FIRMWARE_RESTART"
initial_state: off # исходное состояние при загрузке Raspberry
Комментарии в moonraker.conf не копировать!
Это добавит выключатель в меню
Что бы можно было выполнить выключение и перезагрузку g-кодом в Klipper, нужно добавить следующие строки в printer.cfg:
[gcode_macro SHUTDOWN]
gcode:
{action_call_remote_method("shutdown_machine")}
[gcode_macro REBOOT]
gcode:
{action_call_remote_method("reboot_machine")}
От себя я еще добавил:
[gcode_macro M81]
gcode:
{action_call_remote_method("shutdown_machine")}
Что бы можно было выполнить выключение принтера по завершению печати.
Я использую PrusaSlicer. Для выключения принтера по окончанию печати идем в настройки принтера - пользовательский G-код, и добавляем строки в завершающий G-код:
M109 S50; ждем остывания до 50 градусов
M81; выключаем принтер
Для личного удобства, что бы знать температуру внутри закрытого принтера я добавил дополнительный термистор. Подключил его на место термистора второго экструдера и добавил строки в printer.cfg:
[temperature_sensor Box]
sensor_type: Generic 3950
sensor_pin: P0.23
Спасибо, что дочитали до конца.
Про особенности настройки управления с GIPO OrangePi можно почитать тут.
Если кому нужно, у меня осталось пару реле рассчитанных на работу с одноплатниками, можно посмотреть тут.
Также что б ни чего не пропустить подписывайтесь на мое сообщество ВК и канал Telegram