OK here's some background of the problem:


  • All retracts on the extruder produce a screeching noise. The extruder extrudes normally all other times.

  • Any fast move on the Z-axis also produces a screeching noise and the Z-axis will move normally at all other times.

  • This appears to happen regardless of any printing state whether the heaters are on or not it will still occur it even happens during the ABL process.

Specifications of the printer:

  • Mainboard: MKS Gen L V2
  • Drivers: TMC2209 UART
  • Stepper motors: Stepperonline 17HS15-1504S 1.8 deg 1.5A
  • Pulleys: GT2 16T
  • Leadscrew: 2 mm pitch T8
  • Hotend: E3D V6

OK so basically I performed an upgrade of my stepper drivers as well as the leadscrew and pulleys on my 3D printer which was originally a Tevo tornado and at the start of every print I would experience a loud screeching noise coming from the Z-axis and I originally identified it to be a single line in my G-code that would only trigger the screech if it was preceded by another line and by commenting out the first line I was able to start printing

Lines in question:

G1 X3 Y1 Z15 F9000 ; Move safe Z height to shear strings
G0 X1 Y1 Z0.2 F9000 ; Move in 1mm from edge and up [z] 0.2mm

However, while I was able to start printing, I soon found out that the extruder was doing the same thing with every retract it would create a loud screech and the filament wouldn't be retracted this caused heavy stringing as well as poor layer adhesion resulting in prints failing. I figured the problem was with the version of Marlin I was using so I attempted to use the latest bug fix. However, I was still experiencing the same problems. I attempted to see if the stepper current was the problem and after identifying that the stepper current was not the cause of the problem, I figured I needed to replace the stepper motors and after replacing the stepper motors the problem still remained. I figured the problem must be with Marlin so I attempted to use Klipper. However, I am still experiencing the same and now I can't even complete a mesh bed leveling as the movements that Klipper uses are triggering the loud screeching and causing the steppers to freeze up.

I am unsure as to what could be causing this as I think I've checked everything that could be causing it so I'm not quite sure how to proceed I've also made a video that should show the problem in action. So I guess I'm wondering what's my next troubleshooting step?

I have tried changing the drivers back to TMC2208s there have been no changes on both Klipper and Marlin.

I tried switching to an MKS Gen L V2.1 in case it was a mainboard problem, still experiencing problems.

The only other thing I think I can try is running the TMC2209s in standalone mode

  • $\begingroup$ I can't find anything suspicious in the Klipper config. Aside: this isn't your issue, but the non-whole-number rotation distances for X, Y, and Z are almost surely wrong because of how timing belts and lead screws work. If you measured X and Y errors that you were trying to correct for, they're almost certainly extrusion width errors (which don't scale with object size, unlike esteps errors that would scale with object size) or backlash that needs to be fixed mechanically. Likewise Z is almost surely a bed height error. $\endgroup$ Mar 5, 2022 at 18:03
  • $\begingroup$ just tried fixing that still no change. $\endgroup$ Mar 6, 2022 at 2:34
  • $\begingroup$ Yes, I wasn't proposing that as a solution to your problem here, just a note about something else that will come back to bite you if you care about dimensional accuracy. $\endgroup$ Mar 6, 2022 at 15:25
  • $\begingroup$ I've watched the video now, BTW, and I don't immediately have any other ideas for solving this. I'll follow up later if I think of anything else. $\endgroup$ Mar 6, 2022 at 15:26

3 Answers 3


The maximum RPM depends on motor current. Higher current, lower max rpm.

I checked your klipper.conf and I can say that you should definitely reduce the currents for all motors. Extruder and Z motors at 0.9 A is crazy, for example. X and Y 0.7 A is enough, for Z and extruder 0.4 A is good already.

Also, you request F9000 which is impossible on that printer, therefore you are automatically limited by the firmware max speed. Try manually asking a more reasonable speed, like F2000. Keep decreasing until it works. Try decreasing the acceleration too: you have 120, try with 50 which is good already for Z moves. If it works, increase it progressively.


I haven't had time to view the video, but in general, the symptom you're seeing means you're trying to drive the stepper above the max RPM it can handle. Roughly speakling, coils (in the motor) resist a change in current, and past a certain point, a given voltage is insufficient to change the coil currents to perform a step before it's time for the next step. Typical steppers in cheap 3D printers max out around 1500-2000 RPM and lose power (meaning they'll likely work under no load) a little bit before that.

To figure out your motor RPM, multiply the axis speed (in mm/s) by steps per mm (full steps, not microsteps, so divide by number of microsteps per step) to get steps/s, then convert to rotations/min by multiplying by 60 and dividing by 200 (steps per rotation for a 1.8° stepper).

  • $\begingroup$ Ok so my printer worked with the same settings before at least for the extruder (can't say this about z cause of the lead screw upgrade) and my extruder steps per mm are 400 and the retract speed is 30mm/s so that would put the RPM at 3600 so I guess if that is something the TMC2209s can't handle then I might go back to the TMC2208s $\endgroup$ Mar 5, 2022 at 1:07
  • 1
    $\begingroup$ @DexterGrif: Keep in mind steps/mm here means full steps not microsteps. I'll clarify that in an edit later. So it might not be as high as you calculated. 30 mm/s retract should be no problem with an ungeared extruder; only with a very high reduction ratio would that be problematic. $\endgroup$ Mar 5, 2022 at 1:35
  • $\begingroup$ it is using a titan extruder so I am unsure how that changes things. also I am using 16 microsteps $\endgroup$ Mar 5, 2022 at 1:57
  • $\begingroup$ @DexterGrif: That should just be 25 full steps per mm and thereby 225 RPM. $\endgroup$ Mar 5, 2022 at 4:38
  • $\begingroup$ ok so the output of M203 (Max Feedrates mm/s) is: M203 X250.00 Y250.00 Z30.00 E55.00 so the RPMs are RPM=(((x*x_steps)*60)/200)/16 X=476.85 Y=472.5 Z=907.3 E=437.8 so that looks like it is within the limits. $\endgroup$ Mar 5, 2022 at 11:07

More often than exceeding the MAX RPM, you are exceeding the instantaneous torque at the speed. The motor torque force is determined by the strength of the magnetic fields. The magnet field for the permanent magnet is fixed, but for the electrically driven magnet depends on the current through the coil. The coils are inductors, and the current must charge and discharge, similar to what we expect from capacitors. This current change is caused by the voltage applied to the coil. A higher voltage charges the current faster.

Typical stepper motors are rated at a particular current through the coils. Since the coils also have a resistance, the "voltage" of a stepper motor is just the voltage that causes the rated current through the coil resistance. $Voltage = Current * Resistance$ -- Ohm's law. This gives very slow charging, and a motor so driven won't have a high speed, and the torque will fall off quickly with speed.

Most stepper drivers drive based on the current, not the voltage. The driver monitors the current, and if it is too low, the driver applies a charging voltage. If the current is too low, it applies a discharging voltage.

The point of all this is that higher voltage is good. And the parameter that matters more than MAX RPM is the acceleration.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .