Метод полу-автоматической калибровки параметров драйвера основан на мануале Trinamic по "поведенческой" настройке мотора.
cd ~
git clone https://github.com/MRX8024/chopper-resonance-tuner
bash ~/chopper-resonance-tuner/install.sh
Если все прошло успешно, вы увидите у себя в домашней директории принтера (~/printer_data/config) появившуюся папку - adxl_results
, в которую после будут помещаться результаты калибровок, а так же уже доступный макрос из панели макросов на главной странице веб интерфейса.
А если по каким то причинам нет, то установите вручную.
-
Подключаем акселерометр к мотору, методом прикручивания его винтом, это гарантирует точное измерение вибраций. Однако, можно подключить, как например, при измерении резонансов, для input_shaper - к печатающей головке / столу, в зависимости от типа принтера, выбранной оси измерения, для сбора вибраций. Этот способ может дать неверные данные при кривой механике, однако на ровно собранных принтера, он не уступает первому.
-
Калибровка: (Дальнейшие команды в этой статье будут трактоваться с минимально необходимыми параметрами, все поддерживаемые перечислены внизу статьи).
- Определяем резонирующие скорости, введя в терминал веб интерфейса команду
CHOPPER_TUNE FIND_VIBRATIONS=1
- После завершения работы макроса алгоритм автоматически сгенерирует графики, поместит их в директорию
.../adxl_results/chopper_magnitude/
, скачиваем и открываемinteractive_plot.html
, и видим следующую картину - На графике будет видно обычно 2 пика, на скорости около 50мм/с и 100мм/с - это резонансные скорости, нам нужна наименьшая из этих скоростей, например - 55мм/с. - Запускаем макрос для перебора всех вариантов чоппера на выбранной ранее скорости, команда будет выглядеть вот так
-
CHOPPER_TUNE MIN_SPEED=55 MAX_SPEED=55
. Проверьте наличие свободного места на хосте, возможный лимит папки /tmp на 1ГБ ОЗУ хостах, под данные необходимо ~700mb. Время сбора данных займет примерно два часа (в зависимости от кинематики), после завершения точно так же открываем график, как и в предыдущий раз, получаем график вида - В этом примере минимальные вибрации при TBL=0 и TOFF=8. Увеличиваем эту область. - Выбираем вариант чоппера с минимальным значением магнитуды - это искомые параметры. Так же нужно учитывать, что при больших значениях
TBL
иTOFF
снижается частота мотора, что ведет к появлению противного высокочастотного шума. Если вибрации уменьшаются вместе с появлением этого явления, найдите приятный диапазон работы между вибрациями и писком, используя функционал программы (вписывая нужные вам диапазоны регистров в параметры макроса), если это вас беспокоит. Ежели нет, то предпочтительнее будет оставить высокочастотный писк. Вписываем их в секцию драйверов в printer.cfg, пример -
[tmc**** stepper_*] cs_pin: PC4 ... driver_TBL: 0 driver_TOFF: 8 driver_HSTRT: 5 driver_HEND: 5
- Можно повторить процедуру с меньшими вариациями чоппера, например, только
TBL=0
иTOFF=8
и перебрать полные диапазоныHSTRT
иHEND
, но с большим количеством повторенийITERATIONS
. В этом случае график будет построен по средним результатам, чтобы уменьшить влияние механики на показания. - Если вы счастливый обладатель TMC2240, либо TMC5160, то после настроек всех вышеперечисленных регистров, у вас есть возможность настроить еще один параметр, именуемый
TPFD
. Отвечает он за гашение средних резонансов мотора, и имеет диапазон значений0-15
. Выставите его значение принудительно нулю -driver_TPFD: 0
, либо откалибруйте. Команда с найденными выше правильными регистрами, двумяITERATIONS
- для большей точности, и резонансной скоростью выглядит следующим образом -CHOPPER_TUNE TBL_MIN=0 TBL_MAX=0 TOFF_MIN=8 TOFF_MAX=8 HSTRT_MIN=5 HSTRT_MAX=5 HEND_MIN=5 HEND_MAX=5 TPFD_MIN=0 TPFD_MAX=15 MIN_SPEED=55 MAX_SPEED=55 ITERATIONS=2
- Определяем резонирующие скорости, введя в терминал веб интерфейса команду
Описание функционала программы -
Значения 'default'
в параметрах означают, что при отсутствии аргумента эта переменная присвоит дефолтные (базовые) параметры из printer.cfg, либо посчитает минимально требуемые.
AXIS
- направлениеХ/У/Z
на котором будет производиться измерение.CURRENT_MIN_MA
иCURRENT_MAX_MA
- изменение подающегося тока (мА) с шагом 25мА. Допустим, если вам хватает момента, который выдают шаговые двигатели, вы можете снизить их ток, дабы сделать систему тише, снизить нагрев шд. Эта функция позволяет частично проанализировать стоит ли игра свеч, ну, или просто измените ток на нужный вам во время теста.TBL_MIN-0
иTBL_MAX-3
,TOFF_MIN-1
иTOFF_MAX-15
,HSTRT_MIN-0
иHSTRT_MAX-7
,HEND_MIN-0
иHEND_MAX-15
,TPFD_MIN-0
иTPFD_MAX-15
- собственно так же отвечают за перебор параметров, в данном случае - регистров драйвера/ов, указан их диапазон работ и перебора.HSTRT_HEND_MAX-16
- лимит, предел суммыHSTRT и HEND
, изменению нежелателен. (подробнее)MIN_SPEED
иMAX_SPEED
- перебор диапазона скоростей, с шагомSPEED_CHANGE_STEP
. По умолчанию рассчитывается на основе требуемых оборот по передаточным числам.ITERATIONS
- количество повторений замеров, для более точных данных.TRAVEL_DISTANCE
- дистанция(мм)
движения печатающей головки во время которого происходит считывание вибраций. По умолчанию рассчитывается исходя из способностей принтера, времени измерения.ACCELEROMETER
- акселерометр, который будет использован для измерения вибраций, авто определится, если таковой указан в конфигурацииresonance_tester
, в противном случае без указания будет примененadxl345
.FIND_VIBRATIONS
- режим измерения вибраций от скорости, полезно дабы вычеркнуть из повседневной печати резонансные скорости, как и для 3.1 шага данной статьи. Применяет регистры из конфигурации принтера. Значения -(True / False), (1 / 0)
RUN_PLOTTER
- запускать ли программу генерации графиков. Значения -(True / False), (1 / 0)