Makergear M2: Better Z Axis Motor Calculations

The original M2 Z axis motor required extremely low acceleration and speed settings, because it produced barely enough torque to lift the weight of the Z stage + HBP + glass platform. The new motor can produce about twice as much torque, so it should perform much better: all of the additional torque can go to accelerating that weight.

I weighed all the bits and pieces while I had the M2 apart, although I forgot to weigh the motor + leadscrew separately:

  • 2.2 kg – Z stage including Z motor
  • 290 g – old Z motor + leadscrew + nut
  • 220 g – motor similar to new motor minus leadscrew
  • 963 g – HBP + glass + clips

So, in round numbers, the whole assembly weighs about 3 kg = 29 N = 6.6 pounds. That’s surprisingly close to my original guesstimate of 3 kg = 7 pounds; I round in the worse direction when there’s only one significant figure.

With the new motor in place, the rods & leadscrew lubed up, and the platform in place, it’s not quite heavy enough to fall under its own weight; it would just barely fall with the old motor. The slightest touch moves it along, though, which means that the angle of friction is just over the lead angle.

The thread form is 30° trapezoidal, so the pitch diameter for an 8 mm OD thread is about PD = 7.2 mm. For an 8 mm lead thread, the lead angle is 19.5° = arctan(8 mm / π · 7.2 mm). Wikipedia’s entry on leadscrews reports the coefficient of friction for oily steel on bronze is between 0.1 and 0.16 for a buttress thread. This thread is trapezoidal, the nut isn’t worn in, the alignment’s probably off a bit, and so forth and so on; so let’s say the angle of friction is 20° and the coefficient of friction is 0.35.

If the new motor can produce, let’s suppose, 500 mN·m of torque, then the upward force on the stage will be:

(2 T) / (PD tan(lead angle + friction angle)) = 1 N·m / (7.2 mm x 0.84) = 165 N

In the ideal world of physics, applying 165 N to a 3 kg stage should accelerate it at 55 m/s2 = 55000 mm/s2 = 5 G.I don’t believe that for a moment, either, particularly because stepper motor torque drops off dramatically at higher speeds.

However, that suggests that, at a rational acceleration, the maximum stepper motor speed could very well be limited by the Marlin 40 kHz step frequency limit to 100 mm/s = (40000 step/s) / (400 step/mm) = 6000 mm/min.

Given that I’m running the XY motors at 5000 mm/s2, I set the Z acceleration to 5000 mm/s2 and discovered that it would stall on the way to 100 mm/s. Backing off to 2000 mm/s2 worked better, so I tweaked the Marlin configuration thusly:

#define HOMING_FEEDRATE {75*60, 75*60, 30*60, 0}  // set the homing speeds (mm/min)

#define DEFAULT_MAX_FEEDRATE          {450, 450, 100, 94}    // (mm/sec)
#define DEFAULT_MAX_ACCELERATION      {5000,5000,2000,10000}

Now that’s more like it…



  1. #1 by Gary on 2013-07-03 - 12:12

    Are you sure about the Z setting #define DEFAULT_MAX_ACCELERATION {5000,5000,2000,10000}?

    As I read it, MG initially is {9000,9000,30,10000}

    • #2 by Ed on 2013-07-03 - 12:34

      Yup, it’s really 2 m/s^2: the Z axis scoots along just fine with a good motor in there!

  2. #3 by Gary on 2013-07-03 - 12:56

    New motor can’t get here quick enough.

    • #4 by Ed on 2013-07-03 - 13:19

      That’s at 1.5 A, at which current the motor stabilizes around 50 C: warm but not bothersome.

      I haven’t done any fine tuning, but it’s a dramatic upgrade…