Кремень FMZ Реклама
Kremen FMHM Реклама

Ещё немного про TMC2208 и Flyingbear Ghost 4

mvdenisov
Идет загрузка
Загрузка
19.09.2019
21121
20
Техничка

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

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

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

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

Всем доброго времени суток! 

Приобрёл первый свой принтер: Flyingbear ghost 4. До этого принтеры видел, иногда трогал, но никогда с ними не работал. Впрочем, почему именно он - это тема для отдельной заметки.

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

Процесс перехода с A4988 (и/или других драйверов) неоднократно описывался пользователями на данном ресурсе, но были замечены некоторые разногласия в версиях "как правильно", а кто-то даже умудрялся выпустить из микросхем дым. Да и в целом описания были не самыми точными и местами спекулятивными, без пояснений. Поэтому я принял во внимание всё прочитанное и сделал всё по-своему. Возможно, это костыль, но тем не менее, интересно что мне ответят люди более опытные. 

Немного о платах драйверов и возможных проблемах на начальных этапах 

Заказал два драйвера TMC2208 BIGTREETECH v3.0, понравился "правильный" дизайн печатной платы с микросхемой на обратной стороне, теплопроводящими отверстиями под "пузом" микросхемы и теплораспределительным полигоном сверху. У продавца можно было выбрать тип платы: UART и DIY. Выбрал первую, не особо вдаваясь в суть, и немного ошибся: дело в том, что на версии UART установлена перемычка "J2", которая закидывает вход UART микросхемы драйвера на один из выводов платы Pololu-модуля (схему прикладываю). Естественно, драйвер этому был не очень рад. Перемычка была снята паяльником, так как использование драйвера с продвинутым управлением пока что не планировалось. Так же отгрыз длинные выводы, так как они мешали установке радиатора.

Ещё немного про TMC2208 и Flyingbear Ghost 4

Позже была обнаружена некритичная неисправность, выявление которой заняло у меня целый вечер! Проблема заключалась в плохом контакте выводов модуля с контактами разъёма платы MKS GEN-L v1.0. Долго мучал принтер, переставлял драйверы местами, пока один раз не заметил, что каретка поехала в несколько раз большее расстояние, чем было положено, и с громким звуком (что указывало на неверный микрошаг при ПРАВИЛЬНО выставленных перемычках). Прозвонка мультиметром подтвердила предположение. Выводы модуля драйвера были отмыты в спиртобензине (раствор один к одному изопропилового спирта и "калоши", хорошо отмывает печатные платы и обезжиривает, при этом не растворяет лакокрасочные покрытия и пластики). После этого всё заработало как положено.

Ещё немного про TMC2208 и Flyingbear Ghost 4

Комплектный радиатор я устанавливать не стал. Прикупил больших синих радиаторов и приклеил их на теплопроводный клей. Как-то это более интересно, чем двойной скотч..

Как я устанавливал TMC2208

1) Предварительные вычисления

На осях X и Y на моём принтере стоят разные движки, документацию и номинальные токи для них я не нашел (если кто владеет данной информацией - поделитесь в комментариях). Исходя из той логики, что выставленные производителем настройки драйверов были вполне удовлетворительными (никаких пропусков я не замечал, принтер "из коробки" работал как положено), решил замерить текущие настройки A4899. Не уверен что данный путь верный и однозначный, но у меня пока что всё отлично работает.

ОсьДвигательСопротивление обмоток, ОмНапряжение Vref на A4988, В
X42HN40-2-26B2,70,721
Y42HN47-2-24B2,20,715

В качестве токового шунта на драйверах установлены резисторы Rs номиналом 0,1 Ом, исходя из даташита и приведённой в нём формуле (стр. 9) можем рассчитать установленный ток:

Ещё немного про TMC2208 и Flyingbear Ghost 4

Я получил значения 0,901 А и 0,894 А для осей X и Y соответственно.

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

Ещё немного про TMC2208 и Flyingbear Ghost 4

Исходя из этого, вывел примерно следующую формулу расчёта Vref (за недосокращения прошу ногами не бить, всё делалось в порыве творчества таким образом, чтобы всё было понятно):

Ещё немного про TMC2208 и Flyingbear Ghost 4

Где 0,901 - ток двигателя, 0,11 - номинал токового шунта Rsense.

Таким образом, получил значения Vref равные 0,97 В и 0,96 В для осей X и Y соответственно. На деле я на всякий случай докинул примерно по одной сотой сверху (возможно и не стоило).

2) Установка драйверов

Как я упоминал ранее, видел сообщения в комментариях и статьях о том, что люди жгли драйвера. Честно говоря, не совсем понимаю как это возможно сделать, производитель в техническом руководстве заявляет о защите драйвера от короткого замыкания по выходу (при этом для защиты от ложных срабатываний драйвер автоматически отключится после третьей попытки коммутации обмоток, тем не менее, стоит учитывать существование других компонентов в системе, которые могут быть вовлечены в создание данной ситуации). Я не отключал двигатели после установки драйверов и подавал питание как есть. Читателям рисковать не рекомендую (вдруг горючесть драйверов это правда).

Если мы используем данный драйвер с дроблением шага 1/16 (с интерполяцией до 1/256), то, согласно руководствам, должны быть установлены перемычки 1 и 2 на управляющей плате. Про третью перемычку комментарии разнятся, но взглянув на схему печатной платы драйвера можно увидеть, что не будет ничего. Однако, Ваш модуль может иметь другую разводку, поэтому рекомендую вытащить от греха подальше.

Таким образом, полностью обесточиваем принтер, выдёргиваем A4988, убираем/ставим перемычки (если требуется), вставляем TMC2208. Не перепутайте сторону (найти правильную сторону можно по выводам EN и DIR, они подписаны)! Выдёргиваем провода двигателей (если требуется, опять таки). Подаём питание и на управляющую плату, и с блока питания на драйверы, после чего устанавливаем Vref. Удобно, если у Вас есть "крючки" на щупах мультиметра: на данном драйвере очень удобно сделано отверстие, за которое этот крючок можно зацепить. По часовой - уменьшаем Vref, против - увеличиваем. Потенциометр не имеет ограничения, поэтому при попытке крутить дальше минимума или максимума он переключится на максимум или минимум соответственно.Ещё немного про TMC2208 и Flyingbear Ghost 4

После манипуляций я подвигал осями: как и ожидалось, они инвертировались, так как у драйвера поменяны местами выводы на обмотки двигателя. Можно перетыкнуть разъём, или поправить прошивку (если у вас есть исходники под ваш принтер).

3) Правим и заливаем прошивку

Открываем проект марлина (файл с расширением .ino) в Arduino IDE (я попросил исходник прошивки у продавца - он скинул ссылку на актуальную версию).

Ищем строки с интересующими осями в файле Configuration.h , выглядят примерно так:

#define INVERT_X_DIR false

#define INVERT_Y_DIR false

Меняем на обратное значение (если стояло True, ставим false, и наоборот)

В принципе можно ограничится и этим, но я так же поменял эти строки (результата они похоже особо не приносят), по умолчанию был прописан тип A4988, заменил на TMC2208_STANDALONE:

#define X_DRIVER_TYPE TMC2208_STANDALONE

#define Y_DRIVER_TYPE TMC2208_STANDALONE

Тип TMC2208 (без standalone) предназначен для дальнейшей настройки общения с драйвером по UART (если кому интересно).

Так же заметил косяк прошивки Flyingbear Ghost 4, которая заключается в отключенной термозащите и низкой выставленной минимальной температуры работы (при обрыве термистора принтер может подумать что как то недостаточно горячо и топить на полную - не особо безопасно):

#define HEATER_0_MINTEMP 5

#define BED_MINTEMP 5

Сохраняем, выбираем плату MEGA2560. Подключаем к компьютеру принтер по USB (на Flyingbear Ghost 4 необходимо клацнуть по экрану "Offline режим", чтобы экран отключился от платы MKS Gen-L v1.0 и позволил взять управление через другой порт микроконтроллера. Нажимаем кнопку "Загрузка" в Arduino IDE. После чего можно отключить компьютер и отдать управление принтером экрану. 

Ну вот собственно и всё. С моими настройками двигатели при печати чуть тёплые. Драйвера не нагрев не пробовал, но шаги не пропускают и есть не просят. Буду изготавливать более лёгкую каретку, так что сильно ускорять печать смысла не вижу. Как доработаю - буду испытывать на максимальные скорости и ускорения, возможно донастраивать ток, если потребуется. 

Ещё немного про TMC2208 и Flyingbear Ghost 4

Все рекомендации и замечания по данным драйверам, данному принтеру и их совокупности прошу в коменты :)

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

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

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

4
Комментарии к статье