TMC2660-Dual Stepper Board

From RepRap
Revision as of 12:46, 20 October 2017 by Lkcl (talk | contribs) (Design considerations)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Crystal Clear action run.png

Release status: Experimental

TMC2660-PA Dual Stepper Board
CAD Models
External Link

Dual TMC2660 Expansion Board

A 64x79mm expansion board providing two 2.2A (RMS) / 2.8A (RMS) boost current Trinamic TMC2660 stepper drivers, designed for general-purpose use on a wide range of 3D Printing Electronics, powered from 9-29 volts DC, compatible with 3.3v and 5v boards, and providing an on-board NTC temperature resistor, dual STEP/DIR/EN for motor control and an SPI-based interface for configuration of both drivers.

Note that due to the TMC2660 having full control of all features over SPI, the minimum pincount for full control of both steppers is 7 pins: GND, VCC, SPI, CS1# and CS2#. However as SPI is limited to around 25Mbits/sec (around 1 million SPI command-operations per second), for best (fast, accurate) control, using the dedicated STEP/DIR control - an extra four pins - is strongly recommended.



  • Two independent TMC2660-PA steppers
  • Experimental 2-layer (1oz copper) design
  • Relatively large PCB to support proper thermal dissipation (64x79mm)
  • 1 on-board 100k NTC with a 4.7k bias
  • compatible with 3.3V or 5V electronics
  • Supports Motor DC Power input from 9 up to 29 volts.
  • 14-pin 2.54mm DIL Header with 1 ADC (thermistor) and SPI. (I2C unused: for future use)
  • 2 sets (one per TMC2660 IC) of 4-pin headers with STEP/DIR

Design considerations

The TMC2660 is sufficiently high current to make it unsafe to put onto a polulu (postage-stamp-sized) PCB: Trinamic's application notes advise a minimum of 20 mm^2 for safe thermal dissipation, and polulu (step-stick) PCBs are under 4 (FOUR) mm^2. Also, the TMC2660 realistically has been designed for use on a 4-layer PCB: STEP, DIR and VCCIO are topologically trapped (surrounded) by VMOT, GND, and the Motor Output pins.

An initial experimental design attempted to cross the STEP, DIR and VCCIO over the 2mm-wide motor output tracks:

RD3D STEP DIR tracks.jpg

Marked in yellow is where the Motor output (power) tracks travel, on the BOTTOM layer. STEP and DIR (purple) come in at right-angles on the TOP layer. In cyan, Ground tracks separating STEP and DIR and joining in a criss-cross fashion to BOTTOM. Bridging across a 2mm gap is quite excessive and may still result in EMI interference: however the TMC2660 produces good quality output so this may not be an issue.

There is however another solution: given that STEP, DIR and VCCIO are trapped, place a 4-pin header in the centre, surrounded by GND and VM (Motor DC power in). This requires separate flying leads for each motor control, but this is not so hard to do, given that the advantage is a much-reduced cost of production of the PCB (only 2-layer) and the fact that it brings the TMC2660 into the realm of DIY / Home electronics.

If this was a single-board solution with an integrated MCU, this would not be possible to achieve (without having a flying lead). However as it is an expansion board anyway, making up a wiring loom that goes to three separate headers is a cost-effective way to solve the problem.

TMC2660 STEP DIR in the middle.jpg



To avoid crossing over (EMI interference) the STEP and DIR lines for each motor are on a separate 2x2 header to the right of each TMC2660. Pin 1 is marked in the bottom right. Note: if using the TMC2660's SPI interface to control STEP and DIR, it is still important to provide VCCIO power to each header.

  • Pin 4 (row 1, left): DIR - direction control for the stepper motor
  • Pin 3 (row 2, right): STEP - step control
  • Pin 2 (row 1, left): VCC (3.3v or 5.0v)
  • Pin 1 (row 2, right): GND

AUX2 Header

TMC2660 DSB AUX2.jpg

AUX2 is a 14-pin (2x7) header at the left of the board. Pin 1 is marked (bottom right, row 9). This header has SPI (with two CS# lines, one per stepper), I2C (reserved/unused) and an ADC sensor. and is connected to a 100k NTC thermistor in the middle of the PCB. It may be used to check the temperature, to detect if the PCB is overheating. Note that pins 9 and 10 are reserved for I2C and should not be connected. Future versions of TMC2660-DSB may have I2C ICs on-board.

Note that for boards which do not have enough GPIO, MOT1EN# and NOT2EN# may be shorted to their respective (opposite) GND pins on the 2x7 header with jumpers. If the steppers then subsequently need to be disabled whilst still powered up, this can be done in software using the SPI interface.

  • Pin 14 (row 1, left): MOT1EN# - pull low to enable
  • Pin 13 (row 1, right): GND
  • Pin 12 (row 2, left): MOT2EN# - pull low to enable
  • Pin 11 (row 2, right): GND
  • Pin 10 (row 3, left): SCL (Unused: do not use or connect)
  • Pin 9 (row 3, right): SDA (Unused: do not use or connect)
  • Pin 8 (row 4, left): CS2# - Motor 2 SPI ChipSelect - pull low to enable
  • Pin 7 (row 4, right): CS1# - Motor 1 SPI ChipSelect - pull low to enable
  • Pin 6 (row 5, left): SCK
  • Pin 5 (row 5, right): 100k NTC Thermistor, 4.7k biased.
  • Pin 4 (row 6, left): MOSI
  • Pin 3 (row 6, right): VCC
  • Pin 2 (row 7, left): MISO
  • Pin 1 (row 7, right): GND

Source, BOM, Schematics