Stepper driver TMC2660 from Trinamic

For my 3D printer I use the controller board Azteeg GT with the TMC2660 stepper driver. The settings on the stepper drive will be done wit a SPI interface on the controller.
For a fast advanced configuration of the stepper driver I have prepared the Excel sheet below. With these sheet you can directly set the bits for the configuration. After you have set the configuration bits you get one summary number for each register.


The smaller brother TMC2100 supports the basic functionality. The extended functionality like stallGuard2 or coolStep are not supported. In addition, this can not be parameterized via a bus interface.


On these topic I describe the configuration of the stepper driver with Smoothieware.

For more informations you can visit the website:

Configuration File

On the configuration file from Smoothieware the basic settings for the stepper driver will be done.

# bigfoot settings
motor_driver_control.alpha.enable                    true              # alpha (X) is a TMC26X
motor_driver_control.alpha.designator             X                   # A to set the settings
motor_driver_control.alpha.chip                      TMC2660      # chip name
motor_driver_control.alpha.current                 1300             # current in milliamps
motor_driver_control.alpha.max_current        3000             # max current in milliamps
motor_driver_control.alpha.microsteps          256               # microsteps 256 max
motor_driver_control.alpha.alarm                  true              # set to true means the error bits are checked
motor_driver_control.alpha.halt_on_alarm    false             # if set to true means ON_HALT is entered on any error bits being set
motor_driver_control.alpha.spi_channel        0                  # SPI channel 1 is sdcard channel
motor_driver_control.alpha.spi_cs_pin           0.10             # SPI CS pin
motor_driver_control.alpha.sense_resistor    100              # set the sense resistor used.

The first prolbem with this settings was the the SPREADCYCLE MODE was not activated instead of them the the noisy CONSTANT OFF-TIME MODE was activated.

To change this I have do some settings on the configuration manually.

For this I have to options.

1. with G-Code commands (have to done every power on)

2. on the configuration File

motor_driver_control.alpha.reg 00002,981C0,A0000,C000E,E0060

G-Code Commands

The commands will be send from a command interface to the controller.

Reed stepper driver status and configuration

M911.1 Pn


M911.1 P1


n = select the stepper driver


all informations from the selected stepper driver


Recv: designator X, Chip type TMC26X
Recv: INFO: Motor is standing still.
Recv: Microstep position phase A: 1
Recv: Stall Guard value: 0
Recv: Current setting: 1289mA
Recv: Coolstep current: 1289mA
Recv: Microsteps: 1/256
Recv: Register dump:
Recv:  driver control register: 00000000(0)
Recv:  chopper config register: 00000000(0)
Recv:  cool step register: 000A0000(655360)
Recv:  stall guard2 current register: 000D0A18(854552)
Recv:  driver configuration register: 000E0060(917600)
Recv: 00000,00000,A0000,D0A18,E0060

Set register value

M911.2 Pn Rx Vyyyyy


M911.2 P1 R1 V187


n = select the stepper driver

x = select the register

yyyyy = set the vale for the hole register (decimal)


the name of the selected register and the set value in (hex)


Recv: chopper config register set to 000000BB
Recv: register operation succeeded


Configuration help TMC2660
This sheet help to configure the stepper driver.
Version: 001
Microsoft Excel Tabelle 143.9 KB
TMC2660 datasheet
The document is directly form Trinamic
Adobe Acrobat Dokument 1.4 MB
TMC4210 TMC2660 Eval Manual
The document is directly from Trinamic
Adobe Acrobat Dokument 1.7 MB


Kommentar schreiben

Kommentare: 6
  • #1

    John (Sonntag, 14 Mai 2017 05:58)

    Stumbled upon your blog after installing my Azteeg X5 GT and BSD2660's.

    It would be an understatement to say I was disappointed at how loud my steppers were. Then I added your .reg code (Recv: 00000,00000,A0000,D0A18,E0060) into my config and it is running silent and amazing now. THANK YOU!

  • #2

    John (Montag, 15 Mai 2017 02:42)

    Scratch my above comment.

    I actually entered this:

    motor_driver_control.alpha.reg 00002,981C0,A0000,C000E,E0060

  • #3

    Claus (Montag, 14 August 2017 04:36)

    I have some 0.9 degree steppers with 0.9AMPs max current and these settings do reduce the noise but makes the motors almost to hot to touch! Could I paypal you to help me reduce the heat?

  • #4

    Isaac Norris (Freitag, 18 August 2017 01:40)

    I have been trying to get these panucatt drivers to work for a bit now and for some reason i am still having trouble. The motors will not turn on, even though i have connected the driver according to the pinout. Can anyone help? It doesn't seem to be enabling the motor at all.

  • #5

    Isaac Norris (Freitag, 18 August 2017 01:50)

    Also does anyone know what the SG pin is on the bigfoot driver? It seams to be connected to a solder jumper controlling a mosfet, but i' not sure what it does.

  • #6

    Shahdan (Mittwoch, 07 Februar 2018 15:02)

    Can someone explain and give me an example of this code?
    What should I change?

    M911.3 Onnn Qnnn set StallGuard Threshold O=stall_guard_threshold, Q=stall_guard_filter_enabled
    M911.3 Hnnn Innn Jnnn Knnn Lnnn set CoolStep Configuration H=lower_SG_threshold, I=SG_hysteresis, J=current_decrement_step_size, K=current_increment_step_size, L=lower_current_limit
    M911.3 S0 Unnn Vnnn Wnnn Xnnn Ynnn set ConstantOffTimeChopper U=constant_off_time, V=blank_time, W=fast_decay_time_setting, X=sine_wave_offset, Y=use_current_comparator
    M911.3 S1 Unnn Vnnn Wnnn Xnnn Ynnn set SpreadCycleChopper U=constant_off_time, V=blank_time, W=hysteresis_start, X=hysteresis_end, Y=hysteresis_decrement
    M911.3 S2 Zn set RandomOffTime Z=on|off Z1 is on Z0 is off
    M911.3 S3 Zn set DoubleEdge Z=on|off Z1 is on Z0 is off
    M911.3 S4 Zn set StepInterpolation Z=on|off Z1 is on Z0 is off
    M911.3 S5 Zn set CoolStepEnabled Z=on|off Z1 is on Z0 is off