I'm road testing Trinamic TMC2300 EVAL KIT (2-PH Stepper Motor). It's their latest design that targets battery powered devices.

In this post: use the kit and software to evaluate the driver.

This series of posts reviews the IDE functionality with the device operating in UART STEP/DIR mode (the advanced mode). I'm starting with an overview of the IDE, then the basis functionality such as enable, set current, set acceleration, move motor.


Main Functions of the IDE


You can control motor speed, acceleration, direction, motor and standby current.

There's functionality to activate and deactivate the driver.

You can start and stop the motor, using the defined settings. Either until it reaches a defined speed or a given position.

In both cases it uses the current and acceleration settings.

You can control the Trinamic specific motor control algorithms CoolStep (current use efficiency) and StallGuard (detect and act on the motor stalling).


click image for large size view


You can view the motor running in a velocity and position graph.

Some screens show actual runtime values (some theoretical because there's no feedback signal for all of these in the TMC2300 kit).

And there's low level functionality, like setting individual pins of the driver, writing your own datagrams directly and read the results, access driver registers.

At all times you can see the commands being sent from the IDE to the driver in a logging window.


The landungsbrücke part of the evaluation kit is the translator between the IDE and the TMC2300 driver board. You can think of it as the debugger in a microcontroller setup.



operation modes

The TMC2300 driver has  2 modes. The legacy Standalone stepper STEP/DIR mode and the UART STEP/DIR mode with Full Diagnostics and Control.

In legacy mode, you set the motor current via sense resistors and use external step and dir signals to control the motor.


The second mode, where you use UART commands to configure and control the motor, is the one that makes the Trinamic solution stand out, with functionality to smoothen steps, optimise current and react on a stalling motor.



Enabling the Driver and other GPIO Manipulation


To enable the driver, you have to set both VIO and EN pins high.

You use the Chip Click window for that. When you click the VIO pin, the EN is automatically synced.


Once you enable the VIO, the driver is in action and will use a current (see below how much) to keep the motor in position.


The window allows you to set the other output pins too. You can even use DIR and STEP to make the motor move a notch at the click of the mouse.


Control Current for Stepping and Pausing


The Current Setting window lets you define the current used while stepping and pausing the motor.

As soon as you enable the driver, it will use the Standby current to hold the motor in place.

When you use step commands (via the other windows) it 'll use the Motor current when exciting the coils.



The current is dependent on the sense resistor mounted in the circuit. By default, the IDE uses the same value as mounted on the evaluation kit.

With the current set and the driver enabled, you can use the IDE to set and validate motor movement:


Set and Monitor Velocity Mode


The Velocity mode window allows you to control the motor in a continuous mode. You define a target velocity (desired steps per second) and the ramp up/down speed.

When you then click the left or right button, the motor will use the ramp setting to reach the desired speed.

If you use the diode-style buttons, the motor will run as long as you press that, using the ramp to accelerate. When you release it, it uses the same ramp to decelerate until stop.


The Velocity graph shows what's happening. Don't take the Actuals in these window literal, because there's no feedback control. It's theoretical, not measured.


Set and Monitor Position Mode


The Position mode window allows you to control the relative or absolute position. It uses the acceleration setting defined in the target control.

I've seen that it runs faster than the target speed, so not sure yet how to control the speed when using position mode ...


related blog
UART Interface
Evaluation Kit and IDE Functionality, basic functionality
C++ Custom Firmware Pt 1: Datagram Classes
C++ Custom Firmware Pt 2: Wire Up, Test and Comms Analysis
C++ Custom Firmware Pt 3: Try to Replicate Evaluation Kit Conversation
Trinamic TMC2300 EVAL KIT (2-PH Stepper Motor) - Review