Обычно меняют драйвера a4988 или 8825 на TMC 2208, в первую очередь для снижения шума работы принтера. На качестве печати такая замена тоже как правило сказывается положительно.
a4988:
8825:
Менять мы их будем на TMC 2208 от Fysetc.
https://ru.aliexpress.com/item/32851167114.html?spm=a2g0s.9042311.0.0.270133ednu4cTK
Хотя, все сказанное ниже будет справедливо и для более нового драйвера TMC 2209.
Почему именно от Fysetc? Во первых их рекомендует сообщество, есть мнение что они меньше греются чем аналог от BIGTREETECH. Во вторых лично я ставил именно их по этому про них и пишу.
Перед началом будет полезно сохранить где ни будь текущие настройки из EEPROM.
Для этого в терминале посылаем принтеру команду
M503
В ответ получим что-то вроде вот этого:
Полученный вывод сохраняем.
Драйвера вставляются в кроватки в следующем порядке (с лева на право): X, Y, Z, E
Для TMC 2208/2209 перемычки (Jumpers) MS1 и MS2 должны быть установлены. Третья перемычка роли не играет, но что бы ее не потерять лучше воткнуть и ее.
Устанавливаются драйвера сверяясь с надписями на платах. Для MKS Gen L и Fysetc TMC2208 они встают подстроечными резисторами в сторону колодок питания платы.
Не торопитесь клеить радиаторы, они могут мешать настроить опорное напряжение.
Vref - Напряжение замеряемое мультиметром в режиме измерения напряжения между пинами Vref и GND
Задача: удерживая красный положительный щуп мультиметра на пине Vref или подстроечном резисторе, а черный щуп на GND настроить вольтаж вращая отверткой подстроечный резистор постоянно контролируя показания мультиметра. Питание на плату при этом разумеется должно подаваться. А вот моторы от платы лучше отключить.
Для удобства можно закрепить черный щуп на любом земляном контакте платы, а красный щуп удерживать на контакте Vref драйвера (его расположение показано на картинке выше). Тогда свободной рукой можно легко настроить опорное напряжение в соответствии с таблицей ниже.
Ось | Vref |
---|---|
X, Y | 1.0 - 1.1 |
Z | 1.2 - 1.3 |
E | 1.1 |
Теперь можно приклеить радиаторы на свои места (предварительно обезжирив площадку)
В файле Configuration.h
, укажем тип установленных драйверов
/**
* Stepper Drivers
*/
#define X_DRIVER_TYPE TMC2208_STANDALONE
#define Y_DRIVER_TYPE TMC2208_STANDALONE
#define Z_DRIVER_TYPE TMC2208_STANDALONE
#define E0_DRIVER_TYPE TMC2208_STANDALONE
Для осей на которых стояли 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
По идее, теперь все должно работать как надо. Можно печатать и радоваться тишине )