Ender 3 V3 loud noises during x-axis movement

Так ты посмотри на нее туда так и просится крышка=)

1 Like

Можно попробовать сделать чертеж и заказать чтоб на лазере вырезали из 1-2 мм нержавейки

1 Like

Hi slime.

I’m confused.
Which one of these should I buy now?
Should it actually be silicone grease?
Or should it be NLGI1?
It’s really strange.

Its super lube page on amazon:
https://www.amazon.ca/s?srs=20501531011

NLGI 1 or 2 lithium-based grease with PTFE or MoS₂ думаю будет лучше

:white_check_mark: Best grease type for linear bearings (MGN12, LMU, etc.)

  • NLGI 1 or NLGI 2 lithium-based grease with molybdenum disulfide (MoS₂) or PTFE (Teflon) is typically ideal.
  • It should NOT be silicone grease.

:x: Avoid these:

  • Silicone grease – too light, lacks pressure/load handling.
  • WD-40 or spray oils – attract dust and dry out quickly.
  • Greases that stay sticky or gummy – they increase resistance.

:mag: Why NLGI1/2 lithium or PTFE-based?

  • NLGI 1 is a bit softer, flows better — great for cold environments or very small rails.
  • NLGI 2 is thicker — more commonly available and good for vertical rails or warmer conditions.
  • Lithium soap-based or complex lithium grease provides:
    • Rust protection
    • Load-bearing lubrication
    • Long life
  • PTFE and MoS₂ additives reduce friction and wear.

:white_check_mark: Recommended examples (if shopping now):

Name Type NLGI Notes
Super Lube Synthetic with PTFE ~NLGI 2 Very popular, safe for plastic/metal
Mobil XHP 222 Lithium complex NLGI 2 Industrial-grade, great lifespan
Molykote EM-30L PAO + Lithium + MoS₂ NLGI 1 Very smooth on linear rails
Klüber Isoflex NBU 15 Synthetic ester ~NLGI 2 Premium option (expensive)
MG Chemicals 8461 Silicone (:warning:) NLGI 2 Only if rails/plastics explicitly require silicone — rare

:hammer_and_wrench: Application Tips:

  1. Clean rails and carriages fully with IPA or degreaser.
  2. Apply a small bead inside each carriage track.
  3. Slide carriage back and forth to spread grease.
  4. Wipe off excess — a light film is all you need.

Final Answer:

:point_right: Buy NLGI 1 or 2 lithium-based grease with PTFE or MoS₂.
Do not use silicone grease unless the manufacturer specifically recommends it (very rare for linear motion components).

1 Like

Я так понимаю ты свой еще не собирал обратно, а то я только хотел спросить о результатах?)

1 Like

Слушай по поводу прокладки там же эта ерунда при движении головы ходит туда сюда это не будет ей мешать?
По шкивам взял этот норм будет?:


Ну и провода с моторчиками:

Не знаю как на 3V3 plus, но на обычном не мешает прокладка, тем более она тонкая и мягкая, хорошо сжимается, у меня голова очень легко катается без ремней, но у меня валы фиксируются в каретке, а на плюсе они просто вклеены в посадочное место, и на сколько соосно хз.
По проводам, этот подойдет только если ты к материнке его будешь подключать. я так на плюсе делал, а на 3v3 я припаял разъем под штатные провода. чтоб в подвал не лазить если надо отключить. и последовательность обязательно соблюди


Шкивы норм, главно чтоб на валу не было люфта, а то будет неравномерно ездить кинематика, если будет люфт - подложи фольгу

1 Like

Кстати инфа для всех)) Чтобы не пищал экстудер не обязательно переводить драйвер в stealthChop, можно просто включить interpolate: true и будет тишина вместо писка!
Я так сделал на 3v3 и на creality HI, почему то в стоке на экстудере не включен этот параметр

1 Like

Могу тебе закинуть 1 большую статейку к которой пришел после диалогов с ии там в общем систематизировано по всему что связано с шаговиками и их движением

1 Like

Так я думал от этих просто маму отсоеденить и впаять на ледшайн и чтоб штатные туда втыкались просто не хочу лезть под днище. Сколько у тебя вообще принтеров? Вот полная статья из ии с учетом всего что я у нее ранее спрашивал (кстати похоже все таки х и z надо делать одинаковыми)

Настройки токов шаговых двигателей (run_current и hold_current)

Параметры run_current (рабочий ток) и hold_current (ток удержания) определяют силу тока, подаваемого на шаговые моторы во время движения и в состоянии покоя, соответственно. Для двигателей MOONS MS17HDBEP420A-01 важно убедиться, что эти значения соответствуют их номиналу. Как правило, рабочий ток выбирают в диапазоне 60–80% от номинального тока мотораforum.duet3d.com. Например, если мотор рассчитан примерно на ~1.7 А, то run_current ~1.2 А (≈70%) будет хорошей отправной точкойforum.duet3d.com. Такой уровень обеспечивает достаточный запас по крутящему моменту без перегрева (TMC2209 способен до ~2.0 A RMS при хорошем охлаждении).

Если в конфигурации указан значительно более низкий ток – скажем, 0.5–0.6 А, как это встречается в некоторых примерахreddit.com, – моторы могут недоиспользовать свой потенциал. Низкий run_current (~0.6 А) обеспечивает тихую работу и минимальный нагрев, но в CoreXZ-системе может привести к пропускам шагов при резких разгонах/торможениях из-за недостаточного момента. Рекомендуется повысить run_current ближе к 0.8–1.2 А (если мотор рассчитан на ~1.5–2.0 А) для осей X и Z, которые совместно движут каретку. Ось Y (платформа) также должна иметь достаточный ток для заданных ускорений – обычно аналогичные 0.8–1.0 А, если используется схожий NEMA17.

Параметр hold_current обычно выставляется ниже рабочего – порядка 50% от run_current, чтобы уменьшить нагрев мотора, когда он удерживает позицию (например, в паузах между слоями). Убедитесь, что hold_current явно задан в конфигурации. Если его не указать, Klipper может по умолчанию использовать значение, равное run_current (что нежелательно, т.к. моторы будут греться, удерживая полный ток на простое). Например, при run_current = 1.0 А имеет смысл указать hold_current = 0.5 А. Это сократит удерживающий ток на стоянке ~до половины, не вызывая потери шага, благодаря тому что на покое полный момент не требуется.

Рекомендация: проверить паспортные данные MOONS MS17HDBEP420A-01 (номинальный ток обмотки) и откорректировать run_current всех осей ближе к 70–80% номинала. Для всех осей X, Y, Z задать hold_current примерно вдвое меньше рабочего. Например, если для X(Z) выбрано 1.0 А, то hold ~0.5 А; для Y аналогично. После изменения токов стоит понаблюдать за температурой моторов и драйверов при длительной работе – они могут нагреваться сильнее, в случае перегрева TMC2209 начнёт снижать ток (Thermal throttling). При адекватном охлаждении (радиаторы, обдув) токи ~1 А на канал для TMC2209 допустимы.

Режим StealthChop vs SpreadCycle (stealthchop_threshold и параметры чоппера)

TMC2209 поддерживают два режима управления током: StealthChop (тихий, малошумный) и SpreadCycle (более мощный, но шумный). Параметр stealthchop_threshold определяет, при какой скорости печати драйвер переключается из тихого режима в мощный. Правильная настройка этого порога особенно важна для осей X и Z в CoreXZ, так как оба двигателя должны синхронно обеспечивать движение по X.

  • Если указать stealthchop_threshold очень большим (например, 999999), это фактически включает StealthChop на всех скоростях reddit.com. Двигатели будут работать практически бесшумно, но на высоких скоростях/ускорениях возрастает риск пропуска шагов – StealthChop обладает более низким крутящим моментом и не обеспечивает обратной связи по положению ротора. Такой режим часто используют для тихой работы на низких скоростях, но не рекомендуется для резвых движений (особенно при акселерациях >1000 мм/с² и скоростях >50–100 мм/с). В приведённом примере конфигурации CoreXZ автор установил порог 999999 для X/Y/Zreddit.comreddit.com, при этом ограничив ускорения до 1000 мм/с² – вероятно, ради тишины пожертвовали динамикой.
  • Если указать stealthchop_threshold = 0, то StealthChop будет отключён практически для всех движений (переход в SpreadCycle происходит уже с нулевой скорости). Это противоположный случай – двигатели всегда работают в SpreadCycle, обеспечивая максимальный момент и стабильность, но шум значительно увеличится (характерный высокочастотный гул от ШИМ)forum.duet3d.com. В результате принтер будет громче в движении, зато выдержит высокие ускорения без потери шагов. Такой подход часто применяют на осях X/Y скоростных принтеров – SpreadCycle постоянно, а StealthChop вовсе не используется на ходовых осях ради надёжности.

Рекомендация: Для кинематики CoreXZ лучше не полагаться на StealthChop при быстрых движениях по X. Оси X и Z фактически образуют единую систему, и если, к примеру, X перейдёт в SpreadCycle (из-за превышения порога), а Z останется в тихом режиме, их совмещенное движение может рассинхронизироваться. Поэтому рекомендуется либо выставить низкий порог (например, stealthchop_threshold: 1 или 0 для полного отключения StealthChop) на обоих осях X и Z, либо выбрать разумное ограничение скорости, до которой разрешён тихий режим (скажем, ~30–40 мм/с). Последний вариант позволит печатать периметры тихо, но на разгонах и перемещениях драйверы будут переключаться в мощный режим. Главное – согласовать пороги на X и Z, чтобы оба мотора работали в одинаковом режиме при движении по XZ-плоскости.

Дополнительно стоит настроить параметры чоппера SpreadCycle для TMC2209: driver_TBL, driver_TOFF, driver_HSTRT, driver_HEND. Эти настройки управляют временем шимирования тока и уровнем тихого хода в SpreadCycle, влияя на шум и плавность работы моторов. Если оставить их по умолчанию, драйверы будут использовать стандартные значения, которые не всегда оптимальны для конкретного напряжения питания и моторов. Для питания 24 В (типичного для Ender 3) в прошивках принтеров существуют рекомендуемые значения. Например, в прошивке Marlin для 24 В систем используются: TOFF = 4, HEND = 2, HSTRT = 1 forum.duet3d.com (blank time TBL обычно 2 по умолчанию). Это настроено для стабильной и относительно тихой работы на SpreadCycle.

Убедитесь, что в конфигурации TMC2209 для всех осей задан разумный набор этих параметров. Ниже кратко поясняется назначение и рекомендации:

  • driver_TBLTime Blank, длительность «blank time» (пауза измерения тока после переключения транзисторов). Обычно выставляется 2 (≈24µs) для 24 В питанияforum.duet3d.com. Более низкие значения (0 или 1) сокращают паузу и могут уменьшить высокочастотный писк на очень больших скоростях, но повышают риск шумов и ложных срабатываний измерения тока. Значение 2 считается безопасным универсальным. Проверить, стоит ли этот параметр вручную – многие платы уже имеют оптимальное значение по умолчанию.
  • driver_TOFF – время выключения шим (off_time). Допустимый диапазон 1–15 (единицы = периодам тактов драйвера). Слишком маленький TOFF может не давать току затухать, слишком большой – снижает средний ток. Рекомендуется 3–5, обычно 4 для 24 Вforum.duet3d.com. В Marlin 2.0, например, для TMC2209 при 24 В используется TOFF=4 как оптимальный баланс.
  • driver_HSTRThysteresis start, величина увеличения токовой гистерезиса при старте шага. Диапазон 1–8 (при Programmed mode). Высокий HSTRT делает драйвер более “агрессивным” в поддержании тока, но может увеличить шум. Рекомендовано небольшое значение, например 1 (как в пресете 24 Вforum.duet3d.com).
  • driver_HENDhysteresis end, база гистерезиса (может быть отрицательной). Диапазон -3…+12 (соответствует регистрационному значению 0–15). Для 24 В часто ставят HEND = 2 forum.duet3d.com, что даёт небольшой остаточный ток в конце шага. Если HEND слишком велик, мотор может греться и шуметь; слишком мал – повысится вибрация. Значение 1–3 обычно хорошо себя показывает на 24 В.

Если в вашем конфиге эти параметры уже указаны, проверьте их соответствие приведённым рекомендациям. Если они не заданы вовсе, можно добавить их в секции [tmc2209 stepper_*] для более предсказуемого поведения драйверов (особенно при отключённом StealthChop, когда SpreadCycle используется всегда). Правильная настройка чоппера поможет снизить писк моторов в SpreadCycle и обеспечить плавность. Например, для всех осей X, Y, Z можно задать: driver_TBL: 2, driver_TOFF: 4, driver_HSTRT: 1, driver_HEND: 2 – это типичные стабильные значения для 24-вольтовой системыforum.duet3d.com. В сочетании с правильно подобранным током (см. выше) они минимизируют шумы и исключают пропуски шагов в SpreadCycle режиме.

(Примечание: параметры SpreadCycle влияют только когда драйвер в этом режиме. Если StealthChop активен на низких скоростях, поведение на этих скоростях ими не определяется. Также убедитесь, что интерполяция microsteps (interpolate) отключена либо включена сознательно – Klipper по умолчанию советует interpolate: False для чёткого следования расчетным шагам, хотя на слух интерполяция может слегка сгладить звукreddit.com.)

Распределение драйверов и осей (CoreXZ и парные двигатели Z)

Правильное назначение драйверов TMC2209 на оси – залог корректной работы кинематики CoreXZ. В такой системе обычно используются два шаговых двигателя для перемещения по плоскости XZ: один преимущественно отвечает за компонент X, другой – за компонент Z, но их движения комбинируются для получения чистых перемещений по X или по Z. В конфигурации Klipper кинематика kinematics: corexz должна быть указана в секции [printer] (предположу, что она есть). При этом обычно заводятся секции: [stepper_x], [stepper_y], [stepper_z] (и возможно [stepper_z1], если Z-моторов два).

Необходимо убедиться в следующем:

  • Каждая ось соответствует своему драйверу. Проверьте, что выводы step_pin, dir_pin, enable_pin в секции [stepper_x] соответствуют тому разъёму драйвера, к которому действительно подключен мотор X, и аналогично для Y, Z. На платах типа Creality/BTT часто порты подписаны, и нужно свериться с документацией платы. Особое внимание – мотор Z: в CoreXZ он, скорее всего, подключён не к стандартному разъёму Z (если на плате он был рассчитан под винт), а возможно перекинут. Если плата поддерживает два Z-двигателя (например, отдельный разъём Z2 или E1 можно использовать как второй Z), убедитесь, что пины для [stepper_z1] заданы правильно.
  • UART-адреса драйверов (если используется UART-связь). Поскольку TMC2209 настроены по UART, у каждого драйвера должен быть свой уникальный адрес (0, 1, 2, …). Часто на платах значения по умолчанию: X=0, Y=1, Z=2, E=3, но это зависит от перемычек. В конфигурации Klipper в каждой секции [tmc2209 stepper_*] указан uart_address. Убедитесь, что они не дублируются. Например, если X и Z-моторы сидят на общей UART-шине, типичная конфигурация может быть: [tmc2209 stepper_x] uart_address: 0, [tmc2209 stepper_y] ... address: 1, [tmc2209 stepper_z] ... address: 2 (порядок может различаться)reddit.comreddit.com. Если у вас два Z-двигателя, и вы подключили второй Z ко второму разъёму (например, E1), то для него нужна секция [tmc2209 stepper_z1] с собственным адресом (скажем, 3) и соответствующими пинами UART (либо теми же TX/RX, если шина общая, либо отдельными, в зависимости от платы). Неверное назначение адресов приведёт к конфликтам при настройке токов и проч., поэтому это критично.
  • Синхронизация парных Z-моторов. В системе CoreXZ два мотора должны работать в унисон при движении по Z (то есть поднимать каретку синхронно), и с определённой противоположностью при движении по X (один вращается вперёд, другой назад, чтобы получился горизонтальный сдвиг без подъёма). Если у вас задействованы два физических двигателя Z, то их нужно либо аппаратно объединить (например, параллельно на одном драйвере – нежелательно из-за деления тока), либо настроить в прошивке как отдельные синхронные оси. Klipper позволяет добавить секцию [stepper_z1] для второго двигателя по Z. Обычно параметры второго двигателя идентичны [stepper_z] (кроме пинов). Не следует дублировать endstop на Z1 (в CoreXZ нет необходимости отдельно выравнивать два Z, поскольку они связаны ремённой передачей каретки). Вместо этого, оба мотора будут останавливаться по единому концевику Z. Важно: если двигатели установлены зеркально (например, один ремень с одной стороны, другой – с противоположной), то, возможно, направление вращения второго мотора нужно инвертировать. Проверьте флаг dir_pin у [stepper_z1] – часто для зеркального мотора ставят dir_pin: !XYZ (с отрицанием), чтобы при подаче одинаковых шагов оба мотора крутились синхронно (иначе один может опускать сторону, когда другой поднимает). Правильность можно проверить, подав команду G1 Z10 – обе стороны каретки должны подняться равномерно. Если одна опускается, инвертируйте dir_pin второго Z.
  • Назначение драйверов под CoreXZ. Убедитесь, что секции [stepper_x] и [stepper_z] описывают именно те два мотора, которые реализуют CoreXZ. В конфигурации Klipper для CoreXZ не требуется заводить особые секции для “суммарных” осей – достаточно задать kinematics: corexz в [printer], и прошивка сама рассчитает, как комбинировать шаги X и Z. Ваша задача – лишь указать характеристики каждого из двух моторов (X и Z). Если же у вас два мотора на Z, как описано выше, просто добавляется [stepper_z1] как копия Z. На практике, это означает, что вы должны иметь две (или три) секции двигателей для плоскости XZ: [stepper_x], [stepper_z] (и опционально [stepper_z1]). При этом в [printer] следует сохранить axes: x,y,z по умолчанию. Никаких секций типа [gantry] не нужно – CoreXZ уже предопределён.

В целом, если конфигурация взята из примера или с сообщества, вероятно, она уже учитывает эти моменты, но проверка не помешает. Типичные ошибки – забыли добавить [stepper_z1] при подключении второго двигателя (тогда второй мотор вообще не управляется), либо неправильно настроили его пины/направление; либо перепутали разъёмы (например, мотор X и Z подключены не к тем портам, что указаны в конфиге). Исправление этих несоответствий критично: неверная привязка вызовет либо отсутствие движения по какому-то направлению, либо хаотичные перемещения (например, команды X заставляют каретку ехать по диагонали, если моторы перепутаны). Если замечены такие симптомы – срочно свериться с распиновкой и адресацией драйверов.

Соответствие microsteps и rotation_distance

Параметры microsteps и rotation_distance определяют кинематику шагового мотора: сколько шагов делает мотор на определённое расстояние перемещения. В Klipper принято указывать rotation_distance – расстояние (в мм) перемещения, соответствующее одному обороту мотора (при указанных микрошагах). Для корректной работы необходимо, чтобы rotation_distance соответствовал механике привода, а значение microsteps соответствовало настройке драйвера.

Для осей X и Y на Ender 3 обычно используются ремённые передачи GT2. Стандартный шкив на моторах – 20 зубьев, ремень с шагом 2 мм. Один полный оборот мотора перемещает ремень на 20*2 = 40 мм. Следовательно, rotation_distance для осей X и Y должен быть 40.0 мм (при шаговом двигателе 1.8° и любом microsteps). В конфигурации примерного CoreXZ это значение так и заданоreddit.comreddit.com. Если у вас в конфиге стоят другие цифры, это повод проверить размеры шкивов. Например, если было указано 32 мм – это бы соответствовало 16-зубому шкиву (не типичному для Ender). Скорее всего, должно быть 40 мм.

Ось Z в CoreXZ заслуживает отдельного внимания. Если принтер переделан под CoreXZ, вероятнее всего, вертикальное перемещение реализовано ремнём, связанным с мотором Z. Многие примеры CoreXZ предполагают, что Z – это лёгкая каретка на ремне, а не тяжёлая платформа на винте. В отличие от классического Ender 3 (где Z – винтовая передача Tr8*2 с 8 мм на оборот), здесь, возможно, тоже шкив 20T с ремнём GT2. В таком случае rotation_distance для Z тоже будет около 40 мм, аналогично X. В одном конфиге CoreXZ на ремнях как раз указано 40 мм и для X, и для Zreddit.com.

Если же в вашей сборке применены иные передаточные отношения для Z (скажем, редукция для увеличения точности по Z), то это должно отражаться в rotation_distance. Например, если на мотор Z стоит шкив 16 зубьев (вместо 20) при том же ремне, то один оборот даст 32 мм подъёма – тогда rotation_distance = 32.0. Или, теоретически, можно оставить винтовую пару для Z – тогда rotation_distance должен соответствовать шагу винта (например, 8 мм). В официальном примере конфигурации Klipper для CoreXZ ось Z настроена на 8 мм/оборот (видимо, рассчитано под винтовой подъемник)github.com. Очевидно, в вашем случае, если переделка на CoreXZ, винт скорее всего заменён ремнём, поэтому проверьте, что старое значение (8 мм) заменено на актуальное для ремня. Если оставить 8 мм, но на самом деле стоит ремень 40 мм/об, принтер будет перемещаться по Z в 5 раз дальше, чем должен (что сразу проявится неверной кинематикой).

Отдельно про microsteps: TMC2209 по умолчанию работают в режиме 16 микрошагов (с интерполяцией до 256 на аппаратном уровне, если включена). Обычно в конфигурации указывают microsteps: 16 для всех осейgithub.comgithub.com. Важно, чтобы при смене microsteps вы правильно пересчитали или задали rotation_distance. В Klipper подход такой, что rotation_distance задаёт геометрию движения независимо от микрошагов. Если вы меняете микрошаги, Klipper сам пересчитает шаги/мм, не нужно менять rotation_distance. Например, для X: 40 мм на оборот – это константа, будь то 16 или 32 микрошага. Достаточно поменять microsteps, и прошивка поймёт, что теперь на тот же 1 оборот мотора будет послано в 2 раза больше шагов. Ошибка будет, если пытаться вручную корректировать rotation_distance при изменении микрошагов – тогда собьётся калибровка. Убедитесь, что нигде не дублируются старые параметры вроде steps_per_mm – в Klipper они заменены на rotation_distance и/или gear_ratio.

Алгоритм проверки:

  1. X и Y: выдайте команду, например, G1 X100 F3000 и измерьте линейкой, что головка проехала ровно 100 мм по оси X. Если нет – рассчитайте новый rotation_distance как (текущее значение * 100) / (фактическое пройденное расстояние). Аналогично для Y. Однако, если изначально данные брались из верного источника (40 мм на оборот для 20T), скорее всего, всё точно.
  2. Z: проделайте то же с осью Z (например, командой G1 Z10). Проверьте, что каретка поднялась на 10 мм. Если поднялась больше или меньше, откорректируйте rotation_distance для Z. Обратите внимание: в CoreXZ при команде движения только по Z должны крутиться оба мотора X и Z синхронно (поднимая каретку вертикально). Если один из них не движется – это проблема конфигурации (см. предыдущий раздел). Если движутся, но расстояние неверно, значит rotation_distance не совпадает с механикой.

В сумме, убедитесь в согласованности: все оси используют одинаковую систему единиц. Часто в конфигурациях возникает несоответствие, когда, к примеру, для экструдера rotation_distance рассчитали, а для осей просто скопировали из Marlin steps/mm, забыв перевести. В Klipper проще задать известные геометрические параметры:

  • Для ремня GT2 20T: 40 мм (при 1.8° моторе).
  • Для винта Tr8*2: 8 мм (1.8° мотор, шаг винта 2 мм, 4 захода = 8 мм/оборот).
  • Для экструдера Titan (если был): ~22.678 мм (в зависимости от передаточного отношения).
    В вашей конфигурации, судя по вопросу, экструдера это не касается, так что главное – X, Y = 40, Z = 40 (если ремень). Если сейчас иначе – исправить и протестировать калибровку шагов.

Влияние отключения StealthChop на поведение осей и шум

Вопрос отдельно акцентирует влияние отключения StealthChop. Подразумевается, что будет, если мы переведём двигатели в режим SpreadCycle постоянно (отключим тихий ход). Исходя из сказанного выше, ключевые эффекты таковы:

  • Повышение шума: принтер станет заметно громче. SpreadCycle режим характерен слышимым скрежетом/гулом во время движения. Особенно на оси X/Z, где моторы будут работать на высоких скоростях, звук будет выраженным. В форуме отмечается, что шум в SpreadCycle усиливается на моторах с большим сопротивлением обмотокforum.duet3d.com. MOONS-моторы обычно довольно качественные, с низкой индуктивностью, и при правильных параметрах чоппера звук будет более мягким, но полностью тихой работы, как в StealthChop, ждать не стоит. Будет слышен звон на высоких частотах и гудение на средних скоростях. На малых скоростях (при очень медленном движении) SpreadCycle может издавать еле слышное шуршание, но как только скорость возрастает – появляется типичный «писк». Таким образом, отключение StealthChop однозначно увеличит шумовой фон принтера.
  • Улучшение точности и синхронности: взамен шума вы получаете максимальный доступный момент на всех скоростях. SpreadCycle обеспечивает стабильное удержание тока в обмотках, что важно при резких разгонах/остановках. На CoreXZ это означает более надёжную синхронную работу двигателей X и Z при быстрых движениях по X. В тихом режиме StealthChop на высоких скоростях иногда происходит рассогласование фаз (драйвер теряет синхронизацию, так как StealthChop не отслеживает EMF) – результатом могут быть “тихие” пропуски шагов (позиционная ошибка без характерного щелчка). При постоянном SpreadCycle такой риск минимален – драйвер всегда в режиме с обратной связью (считает ЭДС двигателя) и держит шаги жёстче. Также при отключенном StealthChop становится возможным использование функции StallGuard (если когда-то понадобится сенсорное моторное окончание) – в StealthChop она не работает.
  • Переключение режимов: когда StealthChop включён с порогом, есть момент переключения на ходу (если, скажем, порог 50 мм/с, то при разгоне выше этой скорости драйвер переключится в SpreadCycle). Этот переход может сопровождаться щелчком и кратковременной вибрацией, а в некоторых случаях – потерей шага, если переключение происходит неудачноgithub.com. Если же StealthChop вовсе отключён (порог 0), никаких переключений нет – режим постоянен. Это устраняет потенциальные проблемы динамического переключения. Разработчики прямо указывают, что динамическое переключение “silent->performance” может быть ненадёжным (в экспериментальном режиме autoswitch пока встречаются сбои и потеря шагов)github.com. Поэтому зачастую лучше чётко зафиксировать режим работы.

Вывод: Отключение StealthChop (постоянный SpreadCycle) сделает принтер громче, но позволит добиться максимально синхронной и мощной работы моторов X и Z. Если при текущих настройках вы сталкивались с огрехами позиционирования на высоких скоростях или вам не критичен уровень шума, имеет смысл перейти в режим SpreadCycle для CoreXZ-моторов. Компромиссный вариант – оставить StealthChop только на относительно тихих осях. Например, можно оставить StealthChop для оси Y (платформа двигается относительно неторопливо, и её мотор не участвует в CoreXZ-смешении) – это снизит общий шум при печати заполнения, и для экструдера (экструдер обычно тоже работает в StealthChop, так как его скорость невысока, а лишние звуки нежелательны). А вот для X и Z – отключить (или ставить минимальный порог). Таким образом, движение головки будет громче, но надёжнее, а остальные перемещения останутся тихими. Это частая практика: Z и E в тихий, X/Y в громкий режимgithub.com. Однако в CoreXZ случай особый – Z здесь тоже “ходовая” ось, потому лучше и её перевести в мощный режим вместе с X.

Наконец, полностью оценить эффект можно экспериментально: изменить stealthchop_threshold на 0 для X, Z (и, при необходимости, Y), распечатать небольшой тест на высокой скорости и оценить разницу в шуме и качестве перемещений. Если шум неприемлем, можно немного повысить порог (например, 5–10 мм/с), чтобы на совсем маленьких скоростях (когда шум наиболее заметен) моторы оставались в тихом режиме. Но обычно, если уж отключать – то отключать полностью, дабы исключить режим StealthChop как таковой.

Балансировка параметров оси Z для синхронности в CoreXZ

Кинематика CoreXZ накладывает особенность: ось Z больше не является “медленной и слабонагруженной” осью, как в обычном принтере, а фактически участвует в высокоскоростном движении головки по X. Поэтому настройки, традиционно принятые для Z (низкая скорость, малые ускорения), здесь могут нуждаться в пересмотре.

Скорость и ускорение по Z. В стандартных профилях Ender 3 для винтовой Z оси ставят очень низкие значения – например, max_z_velocity = 5–10 мм/с, max_z_accel = 50 мм/с². В случае ременного Z такие ограничения избыточно консервативны. В официальном corexz.cfg пример показан max_z_velocity = 50 мм/с, max_z_accel = 30 мм/с²github.com, что всё равно намного ниже, чем для X (3000 мм/с²). Это обусловлено предположением о применении винта. В вашей же сборке, если Z приводится ремнём, она способна двигаться куда быстрее. В сообществе CoreXZ нередко поднимают лимиты Z до сопоставимых с X. Например, один из пользователей указал max_z_velocity = 200 мм/с, max_z_accel = 1000 мм/с² – практически на уровне оси Xreddit.com. Это логично: малая подвижная масса (печатающая головка) позволяет быстро поднимать/опускать её ременным приводом. Ограничением скорее выступит мощность моторов и натяжение ремня.

Зачем повышать допустимую скорость Z? Главным образом, чтобы не ограничивать диагональные перемещения. В CoreXZ, когда головка двигается по чистой оси X, моторы X и Z крутятся в противоположных направлениях с равной скоростью, и формально ось Z (координата) не меняется. Но если движение имеет компонент и по X, и по Z (например, одновременно вправо и вверх), то один мотор может вращаться быстрее другого. При жестких ограничениях на скорость Z прошивка будет вынуждена ограничивать общую скорость движения, даже если моторы физически способны быстрее. Простым языком: если задать Z макс 50 мм/с, то движение под 45° вверх-вбок не сможет превысить ~50 мм/с по каждому из каналов, даже если по X отдельно можно 150 мм/с. При печати это может проявляться, например, в замедлениях на Z-hop (при одновременном перемещении в сторону и подъёме). Поэтому, если механика позволяет, стоит увеличить max_z_velocity и max_z_accel. Например, поставить хотя бы max_z_velocity на 100–150 мм/с, а max_z_accel – несколько сотен мм/с² (или равным общему max_accel, если уверены в системе). Учтите, что реальных ситуаций, где потребуется 100+ мм/с по Z, мало (обычно Z двигается отдельно при смене слоя). Но более высокие лимиты гарантируют, что Z не станет “узким местом” в движениях головы.

Токи и режимы для мотора Z. Как отмечалось, двигатель Z теперь работает не только против силы тяжести, но и активно участвует в движении по X. Поэтому ток для Z-мотора стоит установить не ниже, чем для X-мотора. Если раньше вы, возможно, снижали ток Z чтобы он не грелся (на Ender 3 Z обычно ставят 0.5–0.6 А, тогда как X/Y 0.8 А), то для CoreXZ этого делать не следует. Поставьте Z тот же run_current, что и X. Аналогично, порог StealthChop – как обсуждали, держать одинаковым. В итоге, оба мотора получат одинаковую “настройку характера” и будут тянуть в унисон.

Микрошаги и скорость реакции. Иногда ось Z настраивают с высоким микрошагом (например, 32 или 64 микрошагов) для тонкого позиционирования по слоям. Но в CoreXZ это может привести к снижению максимальной скорости реакции мотора (т.к. микроконтроллеру придётся давать больше шагов в секунду). Если планируются очень быстрые перемещения, оставьте 16 микрошагов на Z, как и на X, чтобы не было дисбаланса в потребностях по частоте шагов. Klipper обычно справляется и с 32+, но нет особого смысла, т.к. разрешение по Z в ремённой системе и так достаточное (например, 40 мм/оборот, 200 шагов/оборот => 0.2 мм на полный шаг, ~0.0125 мм на микрошаг 1/16 – более чем достаточно для высоты слоя). Таким образом, X и Z должны иметь одинаковые microsteps.

Синхронизация при ускорениях. Проверьте также параметры разгона/торможения для оси Z. В Klipper помимо max_accel есть понятие max_z_accel (как упоминалось) и square_corner_velocity (косвенный аналог jerk/сглаживания). Если max_z_accel сильно меньше, чем max_accel, то при движениях, затрагивающих Z, принтер будет разгоняться медленнее. В CoreXZ, возможно, стоит поднять max_z_accel поближе к общему. Например, если max_accel = 3000 мм/с² для X/Y, то max_z_accel можно установить, скажем, 1000–2000 мм/с², учитывая, что Z-мотору чуть тяжелее (он поднимает вес каретки). Конкретное значение лучше подобрать опытным путём, наблюдая, нет ли пропусков на резких Z-движениях. Можно начать с значения, равного ускорению X, и постепенно снижать, если возникают проблемы.

Наконец, механический баланс: Убедитесь, что ремни XZ правильно натянуты и смазаны направляющие. При несинхронной работе (например, если один мотор чуть отстаёт из-за слабого тока или трения) в CoreXZ это сразу приведёт к наклону или перекосу движения. Поэтому механика должна работать мягко и симметрично. Правильно подобранные токи X/Z и идентичные настройки драйверов минимизируют риск рассинхрона.

Выводы и рекомендации

На основании анализа конфигурации и особенностей CoreXZ, вот конкретные рекомендации по настройкам:

  • Ток двигателей: Установить run_current для осей X, Y, Z примерно на уровне 0.7–0.85 от номинала моторов. Для MOONS MS17HDBEP420A-01 (если ном. ~1.5–2.0 А) это около 1.0–1.2 А forum.duet3d.com. Если сейчас стоит, например, 0.6 А – повысить (особенно для X и Z). Параметр hold_current задать около 50% от рабочего (либо явно прописать, либо убедиться, что драйверы снижают ток на удержание). Это снизит нагрев на простоях без потери удержания позиции.
  • StealthChop/SpreadCycle: Для осей X и Z отключить StealthChop на ходовых скоростях – т.е. либо выставить stealthchop_threshold: 0, либо очень низкое значение (1–5). Ось Y можно оставить тихой чуть дольше, но для единообразия можно тоже отключить при высоких скоростях. Это улучшит согласованность XZ-перемещений на высоких ускорениях, устранив вероятность пропуска шагов из-за StealthChopgithub.com. Будьте готовы к росту шумаforum.duet3d.com – при необходимости скорректируйте параметры чоппера для смягчения (см. следующий пункт).
  • Параметры драйверов TMC2209: В секциях [tmc2209 stepper_x], [tmc2209 stepper_y], [tmc2209 stepper_z] пропишите driver_TBL, driver_TOFF, driver_HSTRT, driver_HEND. Рекомендуемые значения для 24 В: driver_TBL: 2, driver_TOFF: 4, driver_HSTRT: 1, driver_HEND: 2 forum.duet3d.com. Эти настройки соответствуют проверенным профилям Marlin и обеспечат стабильный SpreadCycle-режим без лишних шумов. Убедитесь, что во всех трёх осях стоят одинаковые значения (чтобы характер работы моторов был схожим). Примечание: Если у Y требуется чуть больше удерживающий момент (тяжёлая платформа), можно поднять driver_HSTRT до 2–3, но обычно не нужно.
  • Привязка драйверов к осям: Дважды проверить соответствие: ось X должна использовать драйвер, к которому подключён мотор X (аналогично Y, Z). В [stepper_*] секциях пины должны соответствовать разводке платы. Если используется второй Z-мотор, добавить секцию [stepper_z1] с теми же настройками, что у основного Z (microsteps, rotation_distance, current) и правильными step/dir/enable_pin для второго разъёма. Задать для него отдельный [tmc2209 stepper_z1] с уникальным uart_address. Убедиться, что dir_pin второго Z инвертирован (или нет) так, чтобы оба Z вращались синхронно (оба поднимают или опускают одновременно). Ошибка в этом может привести к перекосу каретки.
  • Microsteps и расстояние на шаг: Убедиться, что для осей X, Y, Z стоит microsteps: 16 (если специально не планировали другое). rotation_distance установить по механике: для X и Y почти наверняка 40.0 мм reddit.com (GT2 ремень, 20 зубьев). Для Z в CoreXZ, если ремень и шкив аналогичны X, тоже 40.0 мм reddit.com. Если же Z остался винтовым – тогда 8 мм (но судя по вопросу – CoreXZ значит ремень). Удалить возможные устаревшие параметры step_distance или steps_per_mm, они не нужны. После установки проверить реальное перемещение (командой G1 и измерением). Extruder: не рассматривался подробно, но тоже проверьте, что rotation_distance для экструдера соответствует используемому механизму (обычно ~22-35 мм для прямого Titan/Creality редуктора, либо ~7.0 мм для прямого приводика без редукции – зависит от модели). Несоответствие приведёт к неправильной подаче пластика.
  • Ограничения скоростей/ускорений: Изменить настройки в секции [printer]:
    • Повысить max_z_velocity и max_z_accel со значений, рассчитанных для винтовой оси, до значений, пригодных для ременной. Например, max_z_velocity = 100.0 (мм/с), max_z_accel = 500.0 (мм/с²) как отправная точка. Можно смело ставить и больше (вплоть до 150–200 мм/с), т.к. каретка лёгкаяreddit.com, но убедитесь, что моторы справятся. В любом случае, значения 5–10 мм/с здесь излишне низкие.
    • Убедиться, что max_velocity (общий) достаточно высок для ваших целей печати (обычно 200–300 мм/с). max_accel можно оставить на вашем текущем значении (например, 3000 мм/с² или какое выбрано). square_corner_velocity (если указывали) можно немного увеличить, раз Z ременной – он сможет чуть резче останавливаться без вибраций.
    • Если используете Input Shaper или Pressure Advance, учтите, что слишком резкое движение по Z может вызывать едва заметные артефакты на слоях, поэтому не ставьте заоблачно высокие accel для Z – 1000 вполне достаточно в большинстве случаев. Главное – убрать слишком низкий предел.
  • Наблюдение за работой Z в CoreXZ: После всех настроек протестируйте движение по отдельно X, отдельно Z и по диагонали. Командой, например, G1 X100 Z100 F3000 – каретка должна поехать по ровной диагонали 45° вверх-вправо и остановиться чётко там, где надо. Прислушайтесь к звуку моторов: если оба звучат синхронно и нет рывков – настройки корректны. Если ощущается, что один мотор как бы запаздывает (например, движение выходит не под 45°, а ближе к горизонтали или вертикали) – это признак расхождения токов или скольжения одного из ремней. В идеале, после правильной настройки CoreXZ работает так же плавно, как CoreXY, только в другой плоскости.

Внедрив эти рекомендации в конфигурацию (не забудьте сохранить и перезапустить Klipper командой SAVE_CONFIG или перезагрузкой), вы добьётесь более оптимальной работы принтера. Шумность при этом может возрасти из-за отказа от StealthChop на X/Z, но зато кинематика будет реализована правильно и надёжно. Для балансировки шума можно экспериментально включать/выключать StealthChop на той или иной оси, однако приоритет – синхронность CoreXZ, поэтому X и Z лучше всегда держать “в паре”.

Если что-то остаётся непонятным или наблюдаются проблемы после изменений – рекомендуется обратиться к документации Klipper (разделы про CoreXZ и про TMC-драйверы) или опытным участникам сообщества с конкретными логами/симптомами. В целом же, правильно настроенный CoreXZ-принтер способен показывать высокое качество и скорость печати, оставаясь достаточно тихим при грамотной настройке параметров драйверов и токов.

2 Likes

Статейку давай, поизучаю на досуге)
Мама такая не пойдет, нужен РН 2,0 6pin

У меня сейчас 4 принтера ender 3 s1pro еще в кладовке лежит ахах + 1 на работе QIDI q1 pro

2 Likes

Чет я поспешил с заказом… Ладно сейчас еще эту возьму

1 Like

Мама получается эта точно такая же как и в стоке? Кстати эти даже дешевле выходят=) сразу 5 шт

1 Like

А как там по распиновке куда и что тыкать на 6 пинах? От моторчика

1 Like

от мотора идет 4 провода, на одном конце к материнке 4 пин, а к моторам разъем 6пин но задействованы только 4, смотри на фотки мои выше, там именно такой разъем под моторный провод, мама прям под стоковые разъемы

2 Likes


у 08 та же распиновка?

1 Like

Да, паяй именно так, а то я в первый раз замучался с распиновкой)

2 Likes

Hi,
@Андрей_Богданов @Slime
I’m still waiting for the grease to arrive. In the end, I couldn’t find the one I wanted, so I bought Molykote PG-54.
I hope it’s not a mistake.

And I have a question—when you opened the printer head, did the lower axis linear bearing come out easily?
For me, it seems stuck in there.

In Creality’s After-Sales videos, the guy removed it very easily.
I unscrewed it, but it feels like it’s really tight and won’t come out.
Also, I think it’s not perfectly centered—it’s shifted about 1–2 mm to the left.

Is it okay if I just leave it and not touch it?
Because I couldn’t remove it.

And one more thing—
I checked the datasheets and videos for the LM8U and LM12U linear bearings.

They say the ball bearings shouldn’t be in a “+” pattern, but should be in an “X” pattern instead.

But I checked all 5 linear bearings on my machine, and none of them are in the correct position.
And they can’t be moved—they seem to be fixed in place with some kind of glue.

HI @Morteza_Mohebbi я никогда не пробовал использовать Molykote PG-54, поэтому е могу ничего сказать про нее, на днях я забил силиконовой смазкой с PTFE подшипник LM8LUU и мне показалось что она слишком густая, но не думаю что это критично, при нагреве во время движения все будет хорошо. А для LM10LUU использовал консистентную литиевую смазку для подшипников, с ней шарики катаются хорошо. Но в конечном итоге сильной плавности хода не прибавилось в обеих случаях. Здесь, скорее всего, всё зависит от качества обработки (полировки) самого вала. Поэтому я заменил один вал оси Z на 3V3 т.к. он был очень шероховатый в отличии от остальных.

По поводу линейного подшипника в печатающей голове- он должен очень легко выходить после того как открутить 2 фиксирующих его винта, попробуй полностью их выкрутить и столкнуть в бок подшипник.

They say the ball bearings shouldn’t be in a “+” pattern, but should be in an “X” pattern instead.
Да, они вклеены как попало( на 3V3 plus я смог вытащить только подшипники в каретках Z, а на Y они намертво вклеены

1 Like