Putting Some Numbers On Your NEMAs

It’s official: [Engineer Bo] wins the internet with a video titled “Finding NEMA 17,” wherein he builds a dynamometer to find the best stepper motor in the popular NEMA 17 frame size.

Like a lot of subjective questions, the only correct answer to which stepper is best is, “It depends,” and [Bo] certainly has that in mind while gathering the data needed to construct torque-speed curves for five samples of NEMA 17 motors using his homebrew dyno. The dyno itself is pretty cool, with a bicycle disc brake to provide drag, a load cell to measure braking force, and an optical encoder to measure the rotation of the motor under test. The selected motors represent a cross-section of what’s commonly available today, some of which appear in big-name 3D printers and other common applications.

[Bo] tested each motor with two different drivers: the TMC2209 silent driver to start with, and because he released the Magic Smoke from those, the higher current TB6600 module. The difference between the two drivers was striking, with lower torque and top speeds for the same settings on each motor using the TB6600, as well as more variability in the data. Motors did better across the board with the TBC6600 at 24 volts, showing improved torque at higher speeds, and slightly higher top speeds. He also tested the effect of microstepping on torque using the TBC6600 and found that using full steps resulted in higher torque across a greater speed range.

At the end of the day, it seems as if these tests say more about the driver than they do about any of the motors tested. Perhaps the lesson here is to match the motor to the driver in light of what the application will be. Regardless, it’s a nice piece of work, and we really appreciate the dyno design to boot — reminds us of a scaled-down version of the one [Jeremey Fielding] demonstrated a few years back.

12 thoughts on “Putting Some Numbers On Your NEMAs

  1. My suggestion would be to use another method to measure position and remove the bell from the system as it changes the behavour of the plant. There is too much inertia as a test bench. F.e. A big slotted focault brake to use both as load and encoder.
    Regarding the support. Motor alignment is also an issue from 2000 rpm and up. Pla printed parts will deform with the motor heat.
    Overall is a good project to start measuring and understanding Motors fron the practical side.

  2. I don’t understand why Hackaday wrote: “At the end of the day, it seems as if these tests say more about the driver than they do about any of the motors tested.”

    The graph at 09:41 in the video clearly shows a difference in torque of a factor of three between these motors (At the higher speeds). And that is a huge difference for motors of the same size. Max RPM (With the same stepper driver) is also quite different for these 4 motors.

    TB6600 is a very old (and big) IC. I also bought a similar looking stepper driver in a black box, and it was also being sold as being a TB6600. However, when I opened it, I found a small SMT chip. It turned out to be an TB67S109AFTG instead. (Or clone, you never know with those *&^%$#@ Chinese.)

    One thing missing a bit is a clear view of how the loadcell is mounted

    It would be very nice if the firmware for this is made available. This would save quite some time for replicating this test setup and testing more motors. A setup similar to this is something I just may build myself, but I also want to test Nema23 motors. And ideally, several people would each test a bunch of motors (hopefully with some overlap) and then combine all the results on a single website or git repository. With some overlap between the test setups you get more confidence in for example calibration settings.

    ( Also, for rewolff:
    I first typed my post, then added my credentials (Mail& Name, I don’t do that social garbage stuff), and if you see this, it worked. )

    1. I agree, it was clearly showing differences with the same driver chip – it was a well done video, and anyone who uses N17s should watch it, and the next one he is going to do.

      I’ve noticed the same when I have tried a range of them. Same driver chip, same software, same power supply, quite a bit of difference in performance..

  3. This is wonderfully systematic.

    But forget the motors, test all the drivers! I went to DRV8711’s for all my setups because they are higher current and just generally very nice drivers. It would be great to see side-by-side comparisons of all the available drivers using the same motor.

    Also when driving stepper motors voltage is free power. Because the motors have current limits and not wattage limits (correct me if I’m wrong) you can get more power by running the drivers at their maximum voltage.

    1. Current is what makes the torque, and torque x speed makes the output power, and the driver is limiting the current by chopping the voltage at a high frequency, so whatever voltage you apply to the driver never ends up at the motor – it either does nothing, or heats up the driver more.

      The extra voltage helps when you’re driving the motor at high speeds, where the motor is limiting the current instead of the driver. It can help push the point where a stepper motor would naturally lose torque a bit further up the RPM range, which in turn does give you more power – at high speeds. Operating at those high speeds is tricky for other reasons though, because you’re likely to find the self-resonant speed of the motor and flip it out of sync with the drive.

  4. Watching this cool setup I was puzzled about measuring the dynamic torque. The friction brake is a nice idea nicely executed. Is there a simple alternative that might give results more related to motion control? How about the motor accelerating and decelerating a flywheel? This is a direct measurement of torque at any RPM and no reliance on friction and brakes and how they depend on temperature, etc.


    1. Sure, but you either break the tourque of the motor or undershoot.. there is no “full throttle” with a stepper, this might make it tricky.
      But it should be fairly simple to automate and get close enough?

      1. I figured use a driver with skipped-step detection. It could take quite a while to run a full series of RPM’s where power is applied until a skip but you can get a max torque versus RPM that is pretty precise.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.