MKS TFT28 (3) + MKS-DET: ловля марлина на сниффер
Начал проверять на своем зоопарке. 'Боевой репрап' у меня сейчас один функционирует, это WoodBot Mini под управлением MKS SMini (Smoothieware). Так вот, со 'смузи' MKS-DET работает как положено. Подключаем модуль к дисплею (B0, 3v3, GND), конфигурируем. Далее соблюдаем все возможные и невозможные правила электробезопасности. Я настоятельно не рекомендую эксплуатировать MKS-DET без корпуса, так как там вполне ощутимые 220 вольт по нему гуляют. Не надо делать так, как у меня на видео - это тестовый стенд, который нужно постоянно держать под наблюдением и не совать в него выступающие части тела.
Вот как это работает на SMini.
https://youtu.be/aHXnTO2C2IQ
В целом, конструкция такая: MKS-DET включается в розетку до ИБП. Принтер - соответственно, после. Когда пропадает сетевое напряжение, MKS TFT отводит на 10 мм по Z сопло и останавливается. Орет еще при этом мерзко. Через сколько-то минут ИБП гаснет, и все погружается во тьму. Затем питание (надеюсь) возвращается, и вся эта конструкция включается в режиме паузы. Остается нажать на кнопку Resume, все прогревается, Z возвращается на место и продолжается печать. На SMini это именно так и работает.
А вот с 'марлином' засада. Z не возвращается, и печать продолжается по воздуху.
Вот как это не работает с 'марлином'.
https://youtu.be/sfmmh0NKXuc
А вот так оно работает с 'репетиром'.
https://youtu.be/uyn9CDCiT9Q
Ладно, осталось попробовать Repetier-firmware. Там интересно. Восстановление отрабатывается как надо, но отображаемая высота по Z уходит в минус на те самые 10 мм. К сожалению, нет возможности прогнать эксперимент на реальном принтере, но наблюдение за процессом на тестовом стенде показывает, что реально этой ошибки в позиционировании нет.
Хорошо. Займемся подслушиванием. Для этого используем USB UART, его RX надо подцепить к RX платы, чтобы понять, что MKS TFT шлет при паузе и восстановлении. Цеплялся я маленьким зажимом от логического анализатора к резистору R5, который идет на RX 'меги'. Это такой типа сниффер последовательного порта будет, если в кульхацкерской терминологии.
При срабатывании датчика сетевого напряжения MKS TFT выдает принтеру следующее:
G91 (переход к относительным координатам)
G1 E-1 (ретракт)
G1 Z10 (подъем Z на 10)
G90 (возвращение к абсолютным координатам)
M114 (получение текущих координат)
Ничего странного или нелогичного! Максимально универсальный G-код. При конфигурации MKS TFT для Marlin или Repetier он одинаков.
А вот что происходит при восстановлении:
M104 S00 (нагрев сопла, на 0 внимание не обращайте, у меня нагреватели отключены)
M109 S00 (нагрев стола)
G92 X53.84 Y86.89 Z10.4 E265.2599 (загрузка сохраненных координат)
G91 (переход к относительным координатам)
G1 Z-10 (опускание Z на 10)
G1 E1.0 (компенсация ретракта, сделанного при остановке)
G90 (переход к абсолютным координатам)
Тоже все абсолютно логично. И где засада? Сейчас, сейчас. Все будет. Теперь воспроизводим эту последовательность действий, только уже из Pronterface. Для платы, прошитой Repetier, все четко. За исключением кривого отображения Z на дисплее. По M114 выдаются правильные координаты, что характерно. А вот в случае прошивки Marlin мы спотыкаемся на G1 Z-10. Эта команда не выполняется, хотя по M114 и по дисплею у нас Z 10.4. Если ручками дать G1 Z10 (получится Z 20.4), а потом G1 Z-10 - работает, опускается до 10.4. Но не дальше!
И вот тут рождается гипотеза. Marlin в каком-то месте думает, что у него Z в нуле. И не хочет ехать в минус! А где это искать? Мысль была только одна - программные концевики. По умолчанию стоит #define min_software_endstops true, этот параметр прокомментирован как раз словами 'если включено, то принтер не поедет дальше домашней позициии'. Ставлю #define min_software_endstops false, прошиваю, испытываю. Вуаля, работает как надо.
Теперь оно работает с 'марлином'.
https://youtu.be/ct7IrdYG81o
Остается только подумать вот о чем. Если программные концевики отключены, это ведь позволит вручную загнать голову туда, где ей быть не надо, и что-нибудь отломить?P.S. И еще немного реверс-инжиниринга для тех, кто не хочет платить за три с половиной детальки почти тысячу рублей. Простая как табуретка схема MKS-DET. Тут в Eagle.
Еще больше интересных статей
Как я создал себе проблемы с 3D принтером Bambulab p1s
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил поделиться своими приключениями. Возможно кому-то...
Кто-то искал распиновку разъема головки ANYCUBIC Kobra2
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Я планирую применить эту...
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.


Комментарии и вопросы
Без каких либо смазок печатает...
Аквариумный компрессор при пер...
это чтобы не дудосили нейронку...
1) изначально печатал АБС, пос...
Если кратко то после смены пла...
Ну например снимаю заводскую п...