Замена драйверов на 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В то ключ стола тоже можно не охлаждать