3D Printering: Trinamic TMC2130 Stepper Motor Drivers

Adjust the phase current, crank up the microstepping, and forget about it — that’s what most people want out of a stepper motor driver IC. Although they power most of our CNC machines and 3D printers, as monolithic solutions to “make it spin”, we don’t often pay much attention to them.

In this article, I’ll be looking at the Trinamic TMC2130 stepper motor driver, one that comes with more bells and whistles than you might ever need. On the one hand, this driver can be configured through its SPI interface to suit virtually any application that employs a stepper motor. On the other hand, you can also write directly to the coil current registers and expand the scope of applicability far beyond motors.

Continue reading “3D Printering: Trinamic TMC2130 Stepper Motor Drivers”

How Accurate Is Microstepping Really?

Stepper motors divide a full rotation into hundreds of discrete steps, which makes them ideal to precisely control movements, be it in cars, robots, 3D printers or CNC machines. Most stepper motors you’ll encounter in DIY projects, 3D printers, and small CNC machines are bi-polar, 2-phase hybrid stepper motors, either with 200 or — in the high-res variant — with 400 steps per revolution. This results in a step angle of 1.8 °, respectively 0.9 °.

Can you increase the resolution of this stepper motor?

In a way, steps are the pixels of motion, and oftentimes, the given, physical resolution isn’t enough. Hard-switching a stepper motor’s coils in full-step mode (wave-drive) causes the motor to jump from one step position to the next, resulting in overshoot, torque ripple, and vibrations. Also, we want to increase the resolution of a stepper motor for more accurate positioning. Modern stepper motor drivers feature microstepping, a driving technique that squeezes arbitrary numbers of microsteps into every single full-step of a stepper motor, which noticeably reduces vibrations and (supposedly) increases the stepper motor’s resolution and accuracy.

On the one hand, microsteps are really steps that a stepper motor can physically execute, even under load. On the other hand, they usually don’t add to the stepper motor’s positioning accuracy. Microstepping is bound to cause confusion. This article is dedicated to clearing that up a bit and — since it’s a very driver dependent matter — I’ll also compare the microstepping capabilities of the commonly used A4988, DRV8825 and TB6560AHQ motor drivers.

Continue reading “How Accurate Is Microstepping Really?”

New Part Day: Silent Stepper Motors

Some of the first popular printers that made it into homes and schools were Apple Imagewriters and other deafeningly slow dot matrix printers. Now there’s a laser printer in every office that’s whisper quiet, fast, and produces high-quality output that can’t be matched with dot matrix technology.

In case you haven’t noticed, 3D printers are very slow, very loud, and everyone is looking forward to the day when high-quality 3D objects can be printed in just a few minutes. We’re not at the point where truly silent stepper motors are possible just yet, but with the Trinamic TMC2100, we’re getting there.

Most of the stepper motors you’ll find in RepRaps and other 3D printers are based on the Allegro A498X series of stepper motor drivers, whether they’re on breakout boards like ‘The Pololu‘ or integrated on the control board like the RAMBO. The Trinamic TMC2100 is logic compatible with the A498X, but not pin compatible. For 99% of people, this isn’t an issue: the drivers usually come soldered to a breakout board.

There are a few features that make the Trinamic an interesting chip. The feature that’s getting the most publicity is a mode called stealthChop. When running a motor at medium or low speeds, the motor will be absolutely silent. Yes, this means stepper motor music will soon be a thing of the past.

However, this stealthChop mode drastically reduces the torque a motor can provide. 3D printers throw around relatively heavy axes fairly fast when printing, and this motor driver is only supposed to be used at low or medium velocities.

The spreadCycle feature of the TMC2100 is what you’ll want to use for 3D printers. This mode uses two ‘decay phases’ on each step of a motor to make a more efficient driver. Motors in 3D printers get hot sometimes, especially if they’re running fast. A more efficient driver reduces heat and hopefully leads to more reliable motor control.

In addition to a few new modes of operation, the TMC2100 has an extremely interesting feature: diagnostics. There are pins specifically dedicated as notification of shorted outputs, high temperatures, and undervolt conditions. This is something that can’t be found with the usual stepper drivers, and it would be great if a feature like this were to ever make its way into a 3D printer controller board. I’m sure I’m not alone in having a collection of fried Pololu drivers, and properly implementing these diagnostic pins in a controller board would have saved those drivers.

These drivers are a little hard to find right now, but Watterott has a few of them already assembled into a Pololu-compatible package. [Thomas Sanladerer] did a great teardown of these drivers, too. You can check out that video below.

Continue reading “New Part Day: Silent Stepper Motors”