Trinamic TMC2300 EVAL KIT (2-PH Stepper Motor) - Review

Table of contents

RoadTest: Trinamic TMC2300 EVAL KIT (2-PH Stepper Motor)

Author: redcharly

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?:

What were the biggest problems encountered?: The first days after the receipt of the kit, the main difficulties were to find materials relating to practical applications of the cards received. In reality, the TRINAMIC website is very complete and exhaustive and we found the material we needed, but we have to look for it well. The students, accustomed to working with Arduino, Raspberry and other popular devices, had difficulties in finding examples of use and application notes as there are not many sources of information on the net and therefore had to use a laboratory approach to achieve simple applications at school.

Detailed Review:

My name is Carlo Russo and I am testing the kit: Trinamic TMC2300 EVAL KIT (2-PH Stepper Motor). It is my first participation in a roadtest so any advice you can give me is welcome in order to improve my exposure skills.

The kit arrived a few days after the communication that I had been chosen as a road tester. It is composed of several components which, on visual inspection, are of excellent workmanship. There are three electronic boards made with high quality components and even the USB C cable in the package is of excellent workmanship. The package also included a 4-wire bipolar stepper motor already equipped with a terminal suitable for a simple and quick connection to the control board and an additional 4-pole terminal.


As specified in my request to be a road tester, the purpose of my test is to introduce students of my class to stepper motors.

I teach in an Italian high school and I deal with Telecommunication Systems and Networks and, among the didactic activities I carry out several activities using electronic boards (usually Arduino), sensors and small actuators to create simple systems. The aim I pursue is to give students a good knowledge of IoT and technologies related to Robotics. We use to work with motors to make small robots but we never used stepper motors. TRINAMIC gave me the opportunity to be able to work with cutting-edge cards on stepper motors in order to be able to create systems with control and precision regarding speed and position that are difficult to obtain from other types of motors.

The activities carried out on the kit were varied and began after an introductory lesson on stepper motors and their characteristics. My intention was to use the kit for laboratory activities once a week, assigning different groups of students to different tasks. Unfortunately, the advent of Coronavirus has slowed down my plans a little. Schools have been closed in Italy for many days and I have had to complete and test many of the experiences myself. Next year we will start from the experiences I am about to describe in order to proceed in the study and optimal use of this technology.


The TMC2300-EVAL kit allows you to explore all functions of the TMC2300-LA. The TMC2300-EVAL-KIT is a set of one MCU board Landungsbrücke, an Eselsbrücke bridge board and one TMC2300-EVAL driver board. It allows for a quick and simple start within only minutes to make your motor turning, while still providing full access to all registers and full functionality and diagnostics.

Each of these has a good supply of information on the TRINAMIC website.


The first card is the: TMCL2300-EVAL


  • 2-phase stepper motor up to 1.7°
  • coil current (2.4A peak)
  • Supply Voltage 5. . . 28V DC
  • UART
  • 1...256 microsteps
  • Step/Dir interface
  • StealthChop™ silent PWM mode
  • SpreadCycle™ smart mixed decay


For diagnosis, all signals between MCU and TMC2300 are accessible with probes on the bridge board. TMC2300-EVAL can be used with or without the Landungsbrücke MCU board.
As for the development software, comprehensive sample code can be found in Trinamics Technology Access Package TTAP.
The second card is “Landungsbrücke”. It is the connection between a desktop computer and Trinamic’s Chip solutions. Just connect the desired board combination and start to discover Trinamic’s unique features.
The heart of the Landungsbrücke is a Freescale MK20 cortex M4 processor. A single firmware design covers all evaluation boards of the Trinamic evaluation system. Users can download the latest revisions, modify the firmware or create their own and easily update it via USB. The code of the Landungsbrücke is open source for download.

The third board is called “Eselsbrücke”. The Eselsbrücke is a connector board for Trinamic’s evaluation board system. With probes on the "Eselsbrücke" bridge board, all signals between MCU and corresponding evaluation board are accessible. Therefore, it allows quick and simple diagnosis for your application.





First Activity: study of the datasheets, installation, and understanding of the software

The first practical activity carried out on the kit was to download the datasheets of the three cards and analyze them. The website ( is very well organized and the information is easy to find.The installation of the software did not require major difficulties.TCML-IDE is a software that is distributed in three different formats:

1. TMCL IDE Setup (for Windows)

2. TMCL IDE no install (portable version for Windows)3. TMCL IDE Linux (for Linux O.S.)To facilitate the portability of the IDE between the machines in the laboratory, we have chosen to use the portable version that has not given any problems on PC with Windows 8.1.


The TMCL-IDE includes the following:

  • Text editor for writing and modifying TMCL™ programs
  • TMCL™ assembler and disassembler
  • TMCL™ module programmer
  • Easy, interactive way of setting the configuration of a module
  • Dialogue window for entering and executing TMCL™ commands in direct mode
  • Function for updating the firmware of a module
  • Option to log all data


The initial setup was quite fast and without any setbacks. There are also videos in TRINAMIC sites that are very helpful, although related to other TRINAMIC products, making it easier to understand the possibilities offered by the kit in question.

The graphical interface is very rich in information, in fact there are many windows that can be used to analyze instant by instant everything that happens in the card.



The first times that you work on this program, the very high amount of information that it makes available to the user can create a bit of bewilderment for the user but after a while, it is possible to organize the windows necessary for our activities to make immediately usable during program execution.

A pop-up at the start of the program warns the user that the card is in standby (this condition is also indicated by the lighting up of the red LED relating to error situations). It can be activated, after setting the maximum current in the motor, by clicking on the VIO/NSTDBY pin.




The connected devices window or Tool Tree, shows information related to the connected device.The information we find are:

  • The COM port used for communication between PC and TMC2300-EVAL
  • The name of the control board, in our case the Landungsbruecke which manages the commands coming from the TMCL-IDE and sends them to the motor driver;
  • The Direct Mode window that allows you to send individual commands composed by choices made on the drop-down menu. Some of the implemented instructions are visible in the image. there is also the possibility to choose the motor on which to apply the instruction (functionality not used with the driver included in the kit, as it manages only one motor) and a numeric value to be associated with the instruction, for example, the speed in the commands ROR (Rotate Right) and ROL (Rotate Left). The result of the instruction just executed will be displayed in the Answer field each time.



  • The Register Browser window allows the user to select and view the registers and, by clicking on the individual registers, it is possible to see all the register flags with their current values.


  • There are two ways to control the stepper motor, the first is to use the Velocity Mode which is a window that allows you to see the current speed and allows you to set the target speed and the maximum allowed acceleration. The second way to manage the motor is called Position Mode and it's used to act on the position and there is the possibility, starting from the current position, to make the motor move a number of steps set by the user with respect to the starting position (absolute position) or the current one ( relative position). It should be emphasized that two additional parameters can be set by the user, that is the maximum speed and maximum acceleration in order to obtain an optimal trapezoidal profile and suitable for the electrical and mechanical characteristics of the motor to be used.


  • imageimage



  • There are also two windows that process speed and position information in real time. Using them, both the current position and speed can be easily seen.


  • Thanks to the Current Settings window it is possible to set the maximum resting and operating currents of the motor in order to use the motor to the best of its possibilities.


The Chip Click window is instead used to configure the voltage and therefore the behavior of some pins of the TMC 2300 chip by means of simple clicks. On each of the configurable pins a voltage VCC, or the GND ground or can be left floating.



  • The last window that is part of the TMCL-IDE is the one called TMCL History which is a sort of log of all the instructions launched on the card. It is obviously a window that is not important when using the system but, when malfunctions occur or if you want to have an instruction-by-instruction check on the control board, this window will be particularly useful. We often used this window to see how the instructions we send to the control board are coded and it was very useful to create a simple C program that could generate the correct datagrams to manage the motor.



Second activity: We observe the card at work controlled by a PC




The second practical activity carried out using the kit was the installation and configuration of the basic scheme in which the stepper motor is controlled directly from the PC, thanks to the TCML-IDE program and the TRINAMIC cards.



The students already knew about DC motors and had used them in simple robotic applications with Arduino. When they saw the operation of the stepper motor they were very impressed both by the jerky motion with which it proceeds and by the intense torque it manages to exert.

The first laboratory experience was spent piloting the motor with the graphic interface of the TMCL-IDE.

Especially at low speeds, the difference between a stepper motor and a DC motor has been remarkable. An optical count of the steps was also made by which we calculated the amplitude of the single step.

Tests were then performed using the position-based control, both considering relative and absolute position. The students were very impressed with the precision with which the motor returned to its starting position even after thousands of steps taken.



The measurements were made without using sophisticated tools since the aim was not so much to assess the accuracy of the kit cards as to make students know a technology that they had only seen on books and that allows you to solve problems that with the use of DC motors cannot be properly managed unless using additional sensors.



Third activity: interface the kit with an external program

The third activity carried out by the students was to create a simple C program that could manage the command board without using the TMCL-IDE software.

Obviously the purpose was limited to executing a few instructions but I thought it was necessary not so much to create software capable of managing all the instructions of the TMCL language but to show students how it is possible to interface with a control board using the correct language and syntax through a serial channel.



The starting point was offered to us by TRINAMIC itself thanks to a C code as simple as it is efficient, found at the link:

A simple C code was created which, at startup, allows the user to choose which instruction to send to the control board and with what parameters. Everything was done at the command line, without spending energy to create a graphical interface.






Commands such as ROR (Rotate Right), ROL (Rotate Left) and MST (Motor Stop) have been implemented very easily simply by analyzing the syntax of TMCL commands derived from a manual of the TMCL language.

Some problems have been encountered in the implementation of the code necessary to activate the card, or to bring the voltage on the VIO / NSTDBY pin to VCC.

The difficulties encountered by students in activating the chip were resolved by observing the TMCL-IDE logs in correspondence with the board startup instruction.



From reading the values of the datagram associated with the desired operation, the students traced the precise syntax of the command which, in the manual, was unclear and obtained the correct functioning of the code.




Activity 4: Check the motor with an example of IoT

The fourth "challenge" that I proposed to my students was to make sure that the speed of the stepper motor depended on an external quantity, for example, a temperature, a distance, etc.

The aim I wanted to achieve was to simulate an IoT system that had to control a stepper motor based on the values read by a sensor.

To complicate matters a bit I have imposed that the exchange of information between the sensor and the control board should take place via wifi.

Also, in this case, the students tried to reuse knowledge already acquired in previous laboratory activities and decided to use an ultrasonic sensor configured to measure distances as the source of the control signal.

As for the transmission of values using the wifi network, a simple WeMOS D1 card was used to create a very light web server in which to periodically publish the distance value read by the ultrasonic sensor.

A C++  code based on that produced in the previous experience periodically reads the distance value and varies the speed according to the value received.

Obviously this experiment, although not having its own utility, was very interesting because it forced the students to choose the hardware and software components necessary to create a real IoT system by adapting different technologies in order to make them communicate with each other. The solution found, although not particularly elegant, is however functional.



In this project, we have created a small web server with a WeMOS D1 card, thanks to which the distance detected by an ultrasound sensor is published every second. The value, detected by a C application, is used to manage the speed of the stepper motor. In particular, we calculated the value to be assigned to the speed through a simple mathematical law.




Once the speed has been calculated, the value is sent to the stepper motor control board using the classic datagram built by the C program according to the syntax of the TMCL language.

With this simple example the speed of the stepper motor varies according to the distance between the ultrasonic sensor and an obstacle.

The purpose of the simple example is to see how to interface the motor to an external card, simulating a usual situation in the IoT.


  • It is impressive to see students at the high school level working with industrial controllers and equipment at this level.  I am also gladdened to see Element14 and Trinamic making this possible in an educational setting.