KREMEN Реклама
KREMEN Реклама

FlyingBear Ghost 6: доработки прошивки Marlin

booroondook
Идет загрузка
Загрузка
23.05.2026
63
0
Личные дневники

Подпишитесь на автора

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

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

0
Статья относится к принтерам:
Flying Bear Ghost 6

За основу берем прошивку Marlin из этого источника: https://github.com/FB-G6/MarlinЯ использовал самую "свежую" на сегодняшний день версию сборки - Release firmware dev-20240601.

Для начала несколько вступительных слов о технических различиях между штатной прошивкой Ghost 6 и прошивкой Marlin (кстати, штатная прошивка тоже сделана на базе Marlin, но сейчас не об этом), а также о небольших недостатках упомянутой сборки Marlin.

Ghost 6, как известно, имеет два по сути бесполезных модуля - это датчик пламени и аварийный извещатель Я считаю их бесполезными, потому что кроме светозвукового извещения о пожаре, они ничего не делают - даже работу принтера не прекращают. При этом аварийный извещатель еще и торчит на полсантиметра из лицевой панели корпуса. И я уж молчу о том, что каждый из них занимает своё GPIO на плате.

Разработчики мода Marlin пошли по простому пути - в прошивке ни датчик, ни извещатель просто не используются. Да-да - от слова "совсем". То есть, они могут быть подключены к своим разъемам, но сигнал датчика никак не обрабатывается, а сирена никогда не включается.

И первое, что я решил переделать в своем принтере - это убрать аварийный извещатель (сирену), а в освободившуюся дырку на передней панели корпуса поставить кнопку (посадочный диаметр 16 мм, если что), причем подобрать максимально плоскую кнопку, а еще лучше - даже немного утопленную (если такие выпускают). Кнопка должна замыкать контакты без фиксации - то есть, замыкать их, пока нажата. Отпустили - разомнулось. А сами контакты подключаем к ножкам RST и GND, как показано на моей картинке (обведено красным прямоугольником):FlyingBear Ghost 6: доработки прошивки MarlinПолярность значения не имеет, а GND при необходимости можно взять и вдругом месте. Действие кнопки - немедленный сброс (Reset) принтера с мгновенной остановкой всех механизмой и последующей перезагрузкой. Иногда бывает очень надо, потому что программый сброс работает с задержкой.

Следующая доработка. Раз уж мы избавились от аварийного извещателя, то теперь можем использовать его разъем (см.картинку) под другие цели:

FlyingBear Ghost 6: доработки прошивки MarlinВ качестве этой самой "другой цели" предлагается использовать вентилятор олаждения платы (это такой самый большой, стоит внизу и загораживает собой плату, крепится на двух винтах). Штатно он подключен параллельно вентилятору охлажения хотэнда и включается/выключается вместе с ним при переходе температуры хотэнда через 50 градусов (по Цельсию, если что). Мы же его теперь можем сделать управляемым, чтобы включать и выключать, когда захотим (например, включать при начале печати и выключать по окончании). Но для этого нужно внести изменения в файлы конфигурации прошивки Marlin. Это несложно - находим файл Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3_common.h и под строчками...#define FAN_PIN PB1 // FAN#define FAN1_PIN PB0 // FAN1...дописываем еще одну строчку:#define FAN2_PIN PA2 // FAN2Собираем прошивку. Теперь у нас появился управляемый вентилятор под номером 2 (напомню, что FAN0 - это вентилятор обдува детали, FAN1 - это вентилятор на задней стенке корпуса, а вновь зарегистрированный FAN2 - это вентилятор охладжения платы и драйверов шаговых моторов. Вентиляторы можно включать командой типа M106 P1 S255 (где P указывает на номер вентилятора, а S - на скорость, но т.к. вентиляторы 1 и 2 у нас нерегулируемые, то для включения можно всегда использовать с корость 255 - т.е., максимальную). Вентилятор FAN0 обдува детали - с регулируемыми оборотами, но он обычно управляется рабочим G-кодом, поэтому влезать ручными командами в его управление не сто́ит.Да, а выключаются вентиляторы командами типа M107 P1 (цифра обозначает номер вентилятора).Практическое применение: вы можете добавть в стартовый код принтера команды...M106 P1 S255M106 P2 S255...а в код окончания печатиM107 P1M107 P2... и тогда они будут работать в автоматическом режиме на время процесса печати(Кстати, для включения и выключения подсветки можно использовать команды M355 S1 и M355 S0, соответственно). 

Идём дальше. После отказа от использования датчика пламени у нас высвобождается разъем его подключения, обозначенный на плате как Z+

FlyingBear Ghost 6: доработки прошивки Marlin

(у этих "летающих медведей" вечные проблемы с обозначениями - пожарную сирену они подключают к разъему FAN (т.е. разъем вентилятора), а пожарный датчик - к разъему концевика (хоть и не существующего). Здесь я предупреждаю, что нижеследующая инструкция имеет смысл только, если вы пользуетесь датчиком BLTouch/3DTouch, установили его согласно инструкции (т.е. подключили вместо механического концевика Z- в его гнездо с таким же обозначением, и теперь у вас механичнский концевик Z- (он же Z-min) не используется, а его кабель с разъемом, что называется, висит в воздухе.Мы можем задействовать этот концевик в качестве аварийного выключателя. Представьте себе - во время хоуминга что-то случилось с BLTouch, и стол продолжает подниматься, упираясь в сопло и ломая каретку. А все потому, что механический концевик отключен, и принтер не знает, что он уже давно прошел через нулевую точку по оси Z, и поэтому продолжает подниматься. Чтобы такого не случалось, мы делаем следующее:- подключаем механический концевик к разъему Z+.- настраиваем механическую позицию концевика так, чтобы он сработал, когда стол при подъеме перейдет заданный ноль на 1 - 1,5 мм. Этот зазор нам нужен для того, чтобы ноль по оси Z все же выставлялся по BLTouch, а не по механическому концевику, но при этом зазор не должен быть большим, чтобы в случае "форс-мажора" стол, хоть и сдвинулся выше нуля, но всё же ненамного.- вносим изменения в конфигурацию прошивки:в файле Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3_common.h находим и комментируем такие строчки (я их тут показываю уже с со знаками комментария):// #define E0_DIAG_PIN PC4и// #define Z_MAX_PIN E0_DIAG_PINдалее, находим строку...//#define KILL_PIN_STATE LOW...и прямо под ней добавляем строки:#undef KILL_PIN#define KILL_PIN PC4#define KILL_PIN_STATE LOW(в принципе, чуть выше эти строчки там уже есть в закомментированном виде, и если вам лень дописывать строчки полностью, то можете просто раскомментировать нужные строчки и прописать там нужные значения параметров).Пересобираем прошивку, прошиваем принтер.Что нам это даёт? Теперь в случае поломки BLTouch/3DTouch при выполнении хоуминга или другой операции, связанной с "подгоном" стола под нулевую координату стол поднимется еще на миллиметр-полтора (думаю, что это не вызовет катастрофических поломок оборудования) и остановится. На экране принтера появится грозное предупреждение о том, что все механизмы аварийно остановлены, и дальнейшая работа возможна только после перезагрузки принтера. А как нам сделать перезагрузку? Раньше-то надо было тянуться к задней стенке и щелкать выключателем сначала "туда", потом несколько секунд ждать (пока разрядядтяс конденсаторы блока питания), а потом "сюда", чтобы снова включить принтер. Но теперь-то у нас есть кнопка сброса на передней панели!!! Вот её мы спокойненько нажмём и отпустим. И всё - принтер перезагрузится.Кстати, такое поведение очень полезно в тех случаях, когда от блока питания принтера питается какой-нибудь вспомогательный агрегат - например, у меня это Orange Pi с установленным на нём Repetier-Server'ом и веб-камерой. Передергивать одноплатник по питанию крайне нежелательно, а вот горячий сброс принтера никак на блоке питания не отражается, и соответственно, никак не вредит "Апельсинке", даже не прерывая её работу.

На сегодня пока всё. Придумаю ещё что-нибудь интересное - напишу.

Подпишитесь на автора

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

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

0
Комментарии к статье
Lider 3D Реклама
Lider 3D Реклама