Testing the Makerbase MKS TMC2160 stepper driver.  The Trinamic TMC2160 is a  stepper driver IC that requires external FET drivers for higher output current capability. This stepper driver was purchased from AliExpress for $11. It is a 40 volt, 4.33 amp Peak driver (3 amp RMS), up to 64 microstep driver that works really well. It supports StallGuard2, CoolStep, MicroPlyer, passive braking, short detection, Stall detection, StealthChop2 and SpreadCycle as standard features.

The MKS TMC2160 advertised output is 4.33 amps peak current.  A oscilloscope current probe was used to measure peak current.  Measured current is pretty close to the DIP switch settings with 4 amps peak being the max possible for the board.

Test Conditions
Spreadcycle
16microsteps
24 Volt Power Supply
100RPM

Stepper motor used for testing
17HS19-2004S1
STEPPERONLINE.COM
1.8 DEGREE
59Ncm 83.6oz-in
2 amp/phase
1.4 ohm
2.8 volt
3mH

IRUN Setting,  Measured Peak Current
IRUN 16, 1.96amps peak
IRUN 18, 2.17amps peak
IRUN 20, 2.52amps peak
IRUN 22, 2.91amps peak
IRUN 24, 3.11amps peak
IRUN 26, 3.44amps peak
IRUN 28, 3.69amps peak
IRUN 31, 4.04amps peak

This driver chip has a very smooth current output waveform using the microPlyer feature.  This is a microstep interpolator for obtaining full 256 microstep smoothness with lower resolution step inputs.  The stepper driver works well with 12 to 36 volt supply.  Stepper motor does exhibit more vibration noise with a lower voltage power supply.  A TL-Smoother should not be use with any Trinamic stepper driver chips.

Under Stealthchop mode, maximum stepper motor rpm is approximately 350RPM with the Nema17 motor I used for testing.  Spreadcycle mode does not have this limit and max RPM is greater than 3000RPM.  Using Spreadcycle mode, there is some motor vibration around 175rpm. This vibration is eliminated under Stealthchop mode.  The TMC2160 does have a anti-resonance feature and seems to operate smoothly in the mid-band rpm region. 

The current reduction feature does work. This can be enabled by the M6 switch.  

The stepper driver heatsink barely got warm while running a Nema17 motor for a extended period of time at 2.3 amp peak current setting. The stepper motor did reach over 80 degrees C outside case temperature.  The minimum driver current setting is 2.3 amps peak. Don’t use this stepper driver for motors that require less current.  Stepper motor damage by overheating can occur.  I stopped the test when the stepper motor reached 85C, this is the max recommended case temperature.  The TMC2160 heatsink measured 35C. Power supply set at 36 volts. Stepper motor spinning approximately 500rpm

Retest using a larger Superior Electric M091-FD09 Nema34 Stepper motor with the driver set at the maximum 4.3 amp peak current.    I stopped the test when the stepper motor reached 85C, this is the max recommended case temperature.  The TMC2160 heatsink measured 49C. Power supply set at 36 volts. Stepper motor spinning approximately 500rpm

Stepper motor case temperature measured using a Omega HH21 K-type thermocouple.  TMC2160 heatsink measured with a Wahl 392 platinum probe sensor.  Ambient room temperature was 25C. 

The maximum stepper driver supply voltage was tested using a HP6236B power supply adjusted to 40 volts.  This is the max recommended by Makerbase. Over 4000rpm was achieved.  No magic smoke appeared.  I wouldn’t recommend using a supply voltage more that 36 volts. This is due to using only 40 volt drain to source FET drivers.  

The step, direction and enable inputs have 6n137 and 4n35 optocouplers for safety.

Step pulse input testing.  I set the microstep to 64, the maximum for this driver. Using a HP8116A Pulse generator, the stepper driver was able to handle over 500Khz step pulse rate while spinning the motor about 2400RPM.  Power supply set to 36 volts.   The driver works best with 1 microsecond pulse width or higher.

Gcode run test. I ran a 2.5 hour long gcode test program. At the end of the program, stepper motor returned to X0 position with no step loss.  Power supply set at 36 volts.   Lightburn laser software used as gcode sender to a Arduino Uno running grbl1.1h firmware. 

Schematic and Board Layout 

TMC2160 microstep sine wave output current waveform captured with a Rigol DS1054z oscilloscope using a current probe.

TMC2160 Stealthchop 100rpm 16microsteps

Output current waveform, Stealthchop Mode
24Volts, 100rpm, 16Microsteps
Very smooth output sine wave.  This is due to the microPlyer feature found on Trinamic driver chips.  Much smoother than other stepper driver chips such as this one from Toshiba.

TMC2160 Spreadcycle 100rpm 16microstepsOutput current waveform, Spreadcycle Mode. Sinewave does look slightly better with Spreadcycle enabled.
24Volts, 100rpm, 16Microsteps

tmc2160 test setupTest setup

TMC2160 no heatsinkClose up of board with the heatsink removed. The FET drivers looks to be WSP4984