Подробный гайд: Как установить аппаратно-программный режим StealthChop серии Trinamic
StealthChop — это не отдельная программа, плагин или приложение, которое нужно «скачать и установить». Это аппаратно-программный режим работы шаговых драйверов серии Trinamic (TMC2208, TMC2209, TMC5160 и др.), который использует ШИМ-управление напряжением вместо классического токового широтно-импульсного модулирования (SpreadCycle). Это делает работу моторов практически бесшумной.
Чтобы «включить» StealthChop, вам нужно правильно подготовить «железо» (подключить драйверы) и настроить прошивку вашего 3D-принтера (Klipper или Marlin).
Ниже представлен подробный гайд, как это сделать.
Шаг 1. Аппаратная часть (Подготовка железа)
Для работы StealthChop вам нужны драйверы Trinamic с поддержкой UART/SPI (чаще всего это TMC2209 или TMC2208).
1. Если у вас плата с готовыми разъемами (например, SKR Mini E3, BTT Octopus):
Вам нужно просто купить драйверы в формате «Plug & Play» (например, BigTreeTech TMC2209 V1.2 для MKS/SKR). Они просто вставляются в разъемы, и линия UART уже разведена на плате.
2. Если у вас стандартная плата (например, MKS Gen L, Creality 4.2.7) и обычные драйверы в корпусах DIP:
Вам нужно организовать связь по UART.
* Вариант А:
Использовать специальные переходники или платы-переходники.
* Вариант Б (Популярный):
Сделать модификацию на один провод (Single-wire UART). На самом драйвере нужно замкнуть контакт TX с контактом PDN_UART (или просто использовать площадку UART), а на материнской плате соединить пин TX соответствующего мотора с RX через резистор 1кОм (схема легко гуглится по запросу "TMC2208 single wire UART mod").
Шаг 2. Настройка прошивки Klipper
Если ваш принтер работает на Klipper, настройка делается в файле printer.cfg.
Найдите секции для ваших драйверов (они выглядят как [tmc2209 stepper_x], [tmc2209 stepper_y] и т.д.) и добавьте/измените параметр stealthchop_threshold.
Пример настройки:
[tmc2209 stepper_x]
uart_pin: PD7 # Пин UART для оси X (укажите ваш пин из схемы платы!)
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 999999 # Включает StealthChop на всех скоростях
[tmc2209 stepper_y]
uart_pin: PD8
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 999999
[tmc2209 stepper_z]
uart_pin: PD9
run_current: 0.650
hold_current: 0.400
stealthchop_threshold: 999999 # Для оси Z StealthChop идеален
[tmc2209 extruder]
uart_pin: PD10
run_current: 0.600
hold_current: 0.300
stealthchop_threshold: 999999 # Для экструдера StealthChop идеален
Важный нюанс для осей X и Y:
Режим StealthChop имеет меньший крутящий момент на высоких скоростях по сравнению с режимом SpreadCycle. Если вы печатаете быстро, на осях X и Y могут начаться пропуски шагов (сдвиги слоев).
Решение:
Для осей X и Y лучше задать порог скорости. Например, stealthchop_threshold: 30 (означает, что StealthChop включается только при скоростях ниже 30 мм/с, а при быстрых перемещениях драйвер сам переключится в шумный, но мощный SpreadCycle). Для осей Z и экструдера смело ставьте 999999.
Шаг 3. Настройка прошивки Marlin
Если вы используете Marlin, настройка производится в файлах конфигурации.
1. Откройте Configuration.h:
Убедитесь, что для ваших осей выбраны правильные драйверы:
#define X_DRIVER_TYPE TMC2209
#define Y_DRIVER_TYPE TMC2209
#define Z_DRIVER_TYPE TMC2209
#define E0_DRIVER_TYPE TMC2209
2. Откройте Configuration_adv.h:
Найдите секцию TMC2208/TMC2209 stepper drivers и раскомментируйте (уберите //) нужные строки:
#define HAVE_TMC220x
// Включаем StealthChop для нужных осей:
#define STEALTHCHOP_XY
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
// Указываем пины UART (обязательно посмотрите в схему вашей платы!)
#define X_SERIAL_TX_PIN PD7
#define X_SERIAL_RX_PIN PD7 // Если используете single-wire, пины TX и RX должны совпадать
#define Y_SERIAL_TX_PIN PD8
#define Y_SERIAL_RX_PIN PD8
#define Z_SERIAL_TX_PIN PD9
#define Z_SERIAL_RX_PIN PD9
#define E0_SERIAL_TX_PIN PD10
#define E0_SERIAL_RX_PIN PD10
// Опционально: настройка режима SpreadCycle при высоких скоростях (аналог threshold в Klipper)
// Если хотите StealthChop только на малых скоростях, используйте M913 в стартовом G-code,
// но проще оставить чистый STEALTHCHOP_XY, если принтер не быстрый.
После внесения изменений скомпилируйте прошивку и прошейте плату принтера.
Шаг 4. Проверка и устранение проблем
После включения принтера:
1. Проверка связи:
* В Klipper:
Введите в консоль DUMP_TMC STEPPER=stepper_x. Если вы видите кучу значений регистров, а не ошибку Unable to read/write TMC register, значит UART работает.
* В Marlin:
Отправьте через терминал команду M122. Она покажет статус драйверов. Ошибок UART быть не должно.
2. Пропуски шагов (Сдвиг слоев):
Если на осях X/Y появились сдвиги слоев, значит, StealthChop не справляется с ускорениями.
* Решение 1:
Снизьте ускорения (Acceleration) и джерк (Junction deviation) в слайсере.
* Решение 2:
Отключите StealthChop для X/Y (в Klipper уберите stealthchop_threshold или поставьте 0, в Marlin закомментируйте #define STEALTHCHOP_XY). Оставив его только для Z и E, вы уберете 80% шума, но сохраните надежность печати.
3. Драйверы отключаются (Thermal Protection):
StealthChop, наоборот, меньше греет драйверы, чем SpreadCycle. Если драйверы греются и отключаются, проверьте, не выставлен ли у вас слишком высокий run_current (ток). Для большинства моторов NEMA 17 достаточно 0.6 - 0.8 А.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.