Замена драйверов на TMC 2208/2209

Что на что менять?

Обычно меняют драйвера a4988 или 8825 на TMC 2208, в первую очередь для снижения шума работы принтера. На качестве печати такая замена тоже как правило сказывается положительно.

a4988:


8825:
image

Менять мы их будем на TMC 2208 от Fysetc.


Хотя, все сказанное ниже будет справедливо и для более нового драйвера TMC 2209.

Почему именно от Fysetc? Во первых их рекомендует сообщество, есть мнение что они меньше греются чем аналог от BIGTREETECH. Во вторых лично я ставил именно их по этому про них и пишу.

Подготовка

Перед началом будет полезно сохранить где нибудь текущие настройки из EEPROM.
Для этого в терминале посылаем принтеру команду

M503

В ответ получим что-то вроде вот этого:


Полученный вывод сохраняем.

Что нам понадобится

  • драйвера TMC2208 (их вполне можно ставить на все оси, так что до 4х штук).
  • радиаторы для драйверов (входят в комплект, по количеству драйверов).
  • мультиметр.
  • маленькая плоская не проводящая ток отвертка. (Fysetc кладут в коробку с драйверами очаровательную керамическую отвертку).

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


Драйвера вставляются в кроватки в следующем порядке (с лева на право): X, Y, Z, E
Для TMC 2208/2209 перемычки (Jumpers) MS1 и MS2 должны быть установлены. Третья перемычка роли не играет, но что бы ее не потерять лучше воткнуть и ее.

Устанавливаются драйвера сверяясь с надписями на платах. Для MKS Gen L и Fysetc TMC2208 они встают подстроечными резисторами в сторону колодок питания платы.

Не торопитесь клеить радиаторы, они могут мешать настроить опорное напряжение.

Настройка опорного напряжения (Vref)


Vref - Напряжение замеряемое мультиметром в режиме измерения напряжения между пинами Vref и GND
Задача: удерживая красный положительный щуп мультиметра на пине Vref или подстроечном резисторе, а черный щуп на GND настроить вольтаж вращая отверткой подстроечный резистор постоянно контролируя показания мультиметра. Питание на плату при этом разумеется должно подаваться. А вот моторы от платы лучше отключить.
Для удобства можно закрепить черный щуп на любом земляном контакте платы, а красный щуп удерживать на контакте Vref драйвера (его расположение показано на картинке выше). Тогда свободной рукой можно легко настроить опорное напряжение в соответствии с таблицей ниже.

Ось Vref
X, Y 1.0 - 1.1
Z 1.2 - 1.3
E 1.1

Теперь можно приклеить радиаторы на свои места (предварительно обезжирив площадку)

Настройка шагов на мм

image
Для осей на которых стояли a4988 количество шагов на мм менять не нужно.
На оси Z у нас стоял драйвер 8825 и шагов на мм было 800 (посмотреть это можно в том выводе команды M503 что мы сохранили в начале).
Драйвер 8825 в нашем сетапе имеет деление шага 1/32, в то время как 2208 - 1/16, по этому необходимо сократить количество шагов на мм вдвое.
Т.е. если для оси Z при драйвере 8825 было 800 шагов на мм, то для драйвера 2208 нужно указать 400 шагов на мм для оси Z.
Сделать это можно внесением изменений в EEPROM, отправив в терминале команды:

M92 Z400
M500

Либо можно поменять эти значения в прошивке и прошить принтер.
Configuration.h

/**
 * Default Axis Steps Per Unit (steps/mm)
 * Override with M92
 *                                      X, Y, Z, E0 [, E1[, E2[, E3]]]
 */
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 314 }

НО! если хоть раз вносились изменения в еепром через терминал и сохранялись через м500, то изменение шагов в прошивке не работает после этого. либо зачищать еепром либо вносить изменения так же через терминал.

Шаги на мм для экструдера в последствии лучше дополнительно откалибровать, чтоб подача была точнее

Проверка

Теперь можно попробовать пошевелить осями, если обнаружится что какая-то ось едет не туда то нужно инвертировать направление ее движения.
Самое простое это перевернуть провода в разъеме мотора, т.е. расположить их зеркально.
Либо настроить инверсию направления в прошивке:

// @section machine

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false

// @section extruder

// For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false
#define INVERT_E5_DIR false

По идее, теперь все должно работать как надо. Можно печатать и радоваться тишине )

3 Симпатий

Думаю, что стоит добавить, что для 2208 и 2209 крайне желателен обдув.

Как-то не пришло в голову, мы же говорим о принтере Z-bolt. В его конструкции заложено охлаждение электроники.

Для anycubic печатал канал для обдува


вентилятор подключал через dc-dc для снижения шума
а здесь можно что-то типа такого

камень охлаждать ненужно и если юзать грелку на 220В то ключ стола тоже можно не охлаждать

пришла с али плата mks gen l v2.0 + tmc2208, тыкните где можно почить, какие перемычки ставить а какие нет, джамперы пришли отдельно в пакете. Хотел же еще взять версию 1 Мкса, нет блин, версия 2 же лучше, посчитал я))
Просто в одном посту нашел что нужно ставить по 2 джампера на драйвер, затем наткнулся на мексиканский язык ( с субтитрами) там он втыкает в юарт.
На али, там где покупал плату указывают что нужно вставлять джамперы в юарт.
Вопрос еще такой: будут ли tmc2208 работать в normal mod, если же только в юарт, что необходимо настроить в марлине?

Вот тут написано подробно: https://makerbase.com.cn/arduino/mks-gen-l/

Нормальный режим работы 1.Step / dir
Ставятся перемычки М0, М1, М2 (на картинке ниже синим цветом)

распиновка платы:

Про SPI и UART там же можно глянуть. По настройкам марлин не подскажу, и документации на вторую версию платы я не нашел на гитхабе у МКС.

Спасибо Вам Денис, дома буду почитаю, так как с телефона не хочет переводить с китайского на русский))