Excessive motor noise/vibration with TMC2209

Basic Information:

Printer Model: Voron V2.4r2
MCU / Printerboard: BTT Octopus Pro v1.0.1 with TMC2209 v1.3
klippy.log (1.9 MB)

Describe your issue:

I am just staring up my new Voron printer. This is a new build, first time I use Klipper but I own several other printers.

When I started the motion tests, I noticed that the motors produce excessive noise, and vibrate intensely. This is very prominent in Z axis, but also A & B are possibly affected. (The motors do move correctly though.)

Having used several other printers in the past, it is quite clear that the motors are not driven correctly. This is not just noisy, the whole motors vibrate very heavily.

My Z motors are LDO 42STH48-2004AC.

I am trying for several days now to diagnose the issue.
Things that I have tried:

  • Increase microstepping. No change at all.
  • Enable interpolation. No change at all.
  • Reduce current. Minimal audio change, vibration persists.
  • Enable stealthchop. Noise is a bit better but still loud, vibration persists.
  • Change motion speed. Noise seems unrelated to speed.
  • Check / change belts tension. Seems unrelated.

Thing that I have checked:

  • Indeed klipper communicates correctly with the drivers, I get a valid response from DUMP_TMC.
  • I checked the register values provided by DUMP_TMC and I see nothing of interest.
  • Microstepping setting actually works. Disabling it has huge noise impact.
  • Similarly, stealthchop setting works. There is a difference in sound. Also verified the register settings.
  • I have checked all other parameters (e.g. rotation_distance) and they seem correct. The movement is dimensionally accurate.
  • I cannot see any mechanical issue. Belts move freely and are correctly seated on the idlers. The gantry is very smooth when moved by hand.
  • I followed closely the board schematics, I can confirm that all pin definitions are correct.
  • I tried STEPPER_BUZZ and I confirm that all motors work correctly independently (i.e. no broken wire for a single motor winding).
  • STEPPER_BUZZ also indicates that the issue affects all motors identically.
  • During troubleshooting I have power-cycled the printer several times, so no stray configuration in the drivers should be possible.
  • I have ruled-out any mechanical issue. It is the motor itself that vibrates.
  • I can feel the motor vibrate even when stationary. No significant sound, but you can definitely feel it vibrating.

Any ideas how to proceed troubleshooting this?

Hello @fjpanag !

0.5 A for the Z-axis is quite low. What you hear can be motor skipping.
Same is for the extruder and X and Y

Rule of thumb: Better a bit more current unless the drivers and the motors don’t get too hot. The drivers should be actively cooled anyway.

How did you do that?

Try with stealthchop_threshold: 999999.

In all: An audio example of that noise would be the best help .

If you command an axis to move 30 mm it properly moves that much?
Really sounds like bad wiring of coils.

No, the motors are definitely not skipping. Movement is correct, also verified by the bed probe. In case of missed steps I would have seen deviations that are full-step apart (which is not happening).

Also, this value was initially 0.8A. The noise was the same, just much more intense.

Exactly. I increased the threshold to 999999. I also verified the GCONF register.

I 'll try to create a video soon.

Yes, it moves correctly. Movement is dimensionally accurate, I am able to home and QGL the printer.

I would consider a wiring issue as very unlikely, as the movement is nevertheless correct, and it affects all 4 motors in the exact same way.

2 Likes

Here is a video of the problem.
Notice how silent A and B are, and how hideous is Z…

Since I cannot record a video and control the printer at the same time, I used the following snippet:

G4 P3000
G91
G1 Z50
G4 P1000
G1 Z-50
G4 P1000
G1 X50
G4 P1000
G1 X-50
G4 P1000
G1 Z50

Video: 0-02-05-bd8befd0067429b2f05e55a6fd35818e912626feb150c16fbaf501c358087acf_1f94d11f15ee62.mp4 - VEED

(I am sorry for using an external service to upload the video, I cannot upload here .mp4 or .zip larger than 8mb…)

Hmm, something very odd…

For the most part, I had set the current to 0.8A.
I tried lowering it to 0.5A, where the vibration remains, but noise volume gets a bit lower.

Now, I just tried getting them to 1.2A. Well… They are still very noisy, but the sound is much softer and a tiny bit quieter…
Feels like they vibrate less…


Just noting, I tried playing around with hysteresis a bit (without any actual plan, just checking how it affects the issue), and it does nothing for my issue.

I also increased the blanking time, but still no difference.

In the video only Z seems to be noisy?
Maybe really just not enough current and a rough mechanic. Or binding axes.

What speed did you use for the Z-axes?
In your gcode snippet there is no special value. Z and X axes have the same feedrate.

It seems a bit too fast for the Z-axes

Yes, specifically Z is problematic.

How can low current cause such an issue, since it is not losing any steps?
In any case, increasing it, it does not actually solve it.

A mechanical issue seems unlikely. I triple checked everything, and motion by hand is very very smooth.

Sorry for not specifying it.

I think it is 15mm/s. This is not a high speed, as I have tested Z up to 50mm/s and it performs perfectly, without losing any steps (but still noisy!).

The vibration thing is also manifesting itself at low speeds. I tried 5mm/s (for example while probing), and it is also terrible.

I tried numerous things, and I cannot correlate the motion speed with this issue in any way.

If you haven’t fixed this, I think I would loosen the belt off and try lifting the gantry up and down to check for binding to eliminate this part .

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.