Motion Lingo Driver

Trinamic stepper drivers allow you to have better control of your stepper motors and achieve extremely quiet motion. You can influence how the driver manages motor current as well as the manner of current delivery. The drivers can act as endstops allowing you to simplify wiring. Marlin also supports setting the driver current by using software commands, negating the need for adjusting trimpots.

Motion Lingo Driver App

Driver monitoringHybrid thresholdNotes
TMC2100noneyesnononoStandalone mode only
TMC2208UARTyesnoyesyesUART RX line requires an interrupt capable pin.
Software UART not support on all platforms, such as DUE based boards.
TMC2660SPInonot implementedyesno

ACS Motion Control is an OEM-focused supplier of motion controller and drive solutions for high-tech systems in fields such as semiconductor manufacturing, laser processing, additive manufacturing, flat panel display manufacturing, electronic assembly, life sciences, and more. Motion on an aircraft along its nose-to-tail axis. Rudder: A vertical control surface in the tail of an airplane, which controls the side-to-side movement (YAW) of an aircraft. Runway: A rectangular area of the ground set aside for aircraft to land and take-off.

All configurable drivers can also be operated in standalone mode if so configured in hardware.

The Windows Mixed Reality driver enables improved features and performance on Windows Mixed Reality headsets. This driver is applicable to PCs running Windows 10 Version 1809 or newer. Writing a motion for a board meeting isn’t difficult, but it does take some forethought. Perhaps you’ve been to a board meeting where someone filed a motion and so many amendments followed it that the final version didn’t remotely resemble the original wording. A well-written motion is specific, unique, and concise.

Motion Lingo Driver Free

The TMC stepper drivers require an external library that allows Marlin to communicate with each driver.

Installing from Arduino IDE library manager

  • Open up the Arduino IDE
  • Go to Sketch -> Include Library -> Manage Libraries…
  • 1.1.9
    • Search for TMCStepper
  • Older versions of Marlin
    • Search for TMC2130Stepper or TMC2208Stepper
  • Click Install

Installing from a zip file

  • 1.1.9
    • Go to TMC library homepage at
  • Older versions of Marlin
    • TMC2130: Go to the library homepage at
    • TMC2208: Go to the library homepage at
  • Click Clone or download and Download ZIP
  • In Arduino IDE and go to Sketch -> Include Library -> Add .ZIP Library…
  • Point to the downloaded file and click Open

Because the TMC drivers require a way for communication and configuring the drivers (outside of standalone mode) they also require additional setup. TMC2130 and TMC2660 use SPI for communication and TMC2208 uses UART (Serial).



Software SPI

You can use other than the HW SPI pins by enabling TMC_USE_SW_SPI and defining the required pins:


A 1 kilo-ohm resistor is required between TX and PD_UART


The serial port on master is selected in your pins file. Alternatively you can use the slower software serial by not selecting any of the hardware serial ports. Typically one port per one driver is needed.

Software UART

You can use free pins as UART by disabling all of the hardware serial options in your pins file and by defining the _SERIAL_TX_PIN and _SERIAL_RX_PIN pins.

Note: The receive (RX) pins are limited to only interrupt capable pins. Transmit (TX) pins do not have the same limitation.

We recommend getting the original Watterott drivers or the revised FYSETC v1.1 drivers to avoid additional headaches.

The FYSETC v1.0 drivers come pre-configured in standalone mode. This means that the drivers should work for moving the axis but you will not be able to configure them nor take advantage of the additional features of the drivers. To get the drivers working as intended you will need to modify three solder bridges on the driver PCB.

Some versions of the FYSETC v1.0 drivers come with a solder bridge left of the chip, some come with a bridging resistor. This connection needs to be opened for SPI connection to work. The two smaller bridges need to be configured as shown.


There are several technologies specific to Trinamic drivers that are supported by Marlin.

  • [stealthChop] is a technology that drives the motors using PWM voltage instead of current. The result is nearly inaudible stepping at low velocities. StealthChop has a lower stepping speed limit and if you need to move faster, for example travel moves, you may want to use spreadCycle or configure Hybrid Mode.
  • [spreadCycle] is an alternative stepping mode. The driver will use four stages to drive the desired current into the stepper motor. SpreadCycle provides greater torque which might be useful if you’re experiencing skipped steps. The downside is slightly higher noise levels.
  • [stallGuard] measures the load that is applied to the motor. If the load is sufficiently high, Marlin can react to the event. Such an event can be when we drive an axis to its physical limit and the signal provided by the driver can be detected just like an endstop. That way you can use the driver itself as an axis sensor negating the need to an additional endstop and the wiring needed. StallGuard is only active when the driver is in spreadCycle mode.
  • Hybrid Mode: Marlin can configure the driver to automatically change between stepping modes using a user configured switching velocity. If the velocity is lower than the threshold the stepper is in quiet stealthChop mode. When the axis velocity increases the driver will automatically switch to spreadCycle.

R_SENSEThe current sense resistor used in your product.
* Watterott SilentStepSticks typically use 0.11ohm values.
* Ultimachine Archim2 board has 0.22ohms.
* Panucatt TMC2660 BigFoot drivers use 0.1ohms.
HOLD_MULTIPLIERAfter the stepper hasn’t been moving for a short while, the driver can decrease the current and let the driver cool down. The multiplier is expressed as a decimal value in the range of 0.0 to 1.0.
INTERPOLATETMC drivers can take lower microstepping inputs, like the typical 16 and interpolate that to 256 microsteps which provides smoother movement.
CURRENTDriver current expressed in milliamps. Higher current values will need active cooling and a heatsink. Low current values may warrant lower acceleration values to prevent skipping steps.
MICROSTEPSConfigures the driver to divide a full step into smaller microsteps which provide smoother movement.
SOFTWARE_DRIVER_ENABLESome drivers do not have a dedicated enable (EN) line and require the same function to be handled through software commands.
STEALTHCHOPDefault state for stepping mode on supporting TMC drivers.
CHOPPER_TIMINGFine tune the spreadCycle chopper timings to optimize noise performance.
A set of presets has been provided according to used driver voltage level, but a customized set can be used by specifying
{ <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
MONITOR_DRIVER_STATUSPeriodically poll the drivers to determine their status. Marlin can automatically reduce the driver current if the driver report overtemperature prewarn condition. The firmware can also react to error states like short to ground or open load conditions.
CURRENT_STEPReduce current value when Marlin sees OTPW error.
REPORT_CURRENT_CHANGEReport to the user when automatically changing current setting.
STOP_ON_ERRORIf Marlin detects an error where the driver has shut down to protect itself, it can stop the print to save both time and material.
HYBRID_THRESHOLDConfigure the axis speed when the driver should switch between stealthChop and spreadCycle modes.
SENSORLESS_HOMINGUse the TMC drivers that support this feature to act as endstops by using stallGuard to detect a physical limit.
SENSORLESS_PROBINGUse stallGuard on supporting TMC drivers to replace a bed probe.
Recommended to be used on delta printers only.
HOMING_SENSITIVITYThe Sensorless Homing sensitivity can be tuned to suit the specific machine.
A higher value will make homing less sensitive.
A lower value will make homing more sensitive.
TMC_DEBUGExtend the information M122 reports. This will give you a lot of additional information about the status of your TMC drivers.
TMC_ADVYou can use this to add your own configuration settings. The requirement is that the command used must be part of the respective TMC stepper library. Remember to add a backslash after each command!
Marlin will poll the driver twice a second to see if the driver is in an error state. Such an error can be overtemperature pre-warn condition (OTPW) or short to ground or open load. Marlin can react to the temperature warning and automatically reduce the driver current. Short to ground error will disable the driver and Marlin can terminate the print to save time and material.
Motion Lingo DriverMotion lingo driver download
M122noneTest driver communication line and get debugging information of your drivers. TMC_DEBUG adds more reported information.
M569TMC2130 or TMC2208Toggle between stealthChop and spreadCycle on supporting drivers.
M906noneSet the driver current using axis letters X/Y/Z/E.
M911MONITOR_DRIVER_STATUSReport TMC prewarn triggered flags held by the library.
M912MONITOR_DRIVER_STATUSClear TMC prewarn triggered flags.
M915TMC_Z_CALIBRATION(Deprecated in Marlin 2.0.)
Level your X axis by trying to move the Z axis past its physical limit. The movement is done at a reduced motor current to prevent breaking parts and promote skipped steps. Marlin will then rehome Z axis and restore normal current setting.
  • Some SilentStepSticks with variable 3-5V logic voltage (VIO) might get damaged if only powered over USB.
  • Test driver communication status with M122.
  • Test Marlin’s bugfix branch (on GitHub) to see if your issue is fixed.
  • Test the latest TMCStepper library to see if your issue is fixed.
  • Check all wiring and wire crimps.
    • SPI: Use a multimeter to check connectivity all the way down the chain on all the communication lines.
    • SPI conflict with the SD card? Solutions vary.
    • UART:
      • Make sure your receive (RX) pin is interrupt capable
      • Check the resistance value between receive (RX) and transmit (TX) lines. You should see 1kOhm.
      • Check connectivity from RX to the TMC chip
  • Check 12V (24V) power in the Vm pin and 5V (3.3V) in the Vio pin.
  • Check that configured pins match your firmware configuration.
  • Enable TMC_DEBUG and send M122 to see further debugging output.
    • Reported register values of either 0x00000000 or 0xFFFFFFFF are bad responses.
  • Try the examples provided by the respective library. Please detach any belts beforehand however, as the examples will not respect any endstop signals or physical limits. You may need to change the pin definitions.
  • If you’re experiencing skipped steps there are a few things you can try
    • First check for mechanical obstructions and that the parts move freely and do not bind
    • Check that your nozzle doesn’t bump into your print if it starts curling upwards (cooling issue)
    • Lower acceleration and jerk values
    • Increase driver cooling
    • Increase motor current
    • Disable INTERPOLATE

Arduino library for TMC drivers (Replaces the following two)

Writing a motion for a board meeting isn’t difficult, but it does take some forethought. Perhaps you’ve been to a board meeting where someone filed a motion and so many amendments followed it that the final version didn’t remotely resemble the original wording. A well-written motion is specific, unique, and concise. By writing a clear motion, you will reduce time spent in discussion and in making amendments. More importantly, you can be sure that your motion will be carried out exactly as you intended.

If you’re not familiar with writing motions, it helps to better understand what kind of motion you want to make. There are four basic kinds of motions:

1. Main Motions

A main motion is an item that you want to introduce to the membership to consider and vote on. You cannot introduce a main motion when any other motion is on the floor. Main motions yield to privileged, subsidiary, and incidental motions.

2. Subsidiary Motions

The purpose of a subsidiary motion is to change or affect how a main motion is handled. The membership votes on the subsidiary motion before they vote on the main motion.

Example: A main motion to take a specific action is filed and seconded. Another member moves to refer the action to a committee (subsidiary motion) and it is seconded. The members vote on the subsidiary motion first.

3. Privileged Motions

The purpose of a privileged motion is to bring up items that are urgent about special or important matters that are unrelated to pending business.

Example: A privileged motion is to delay a motion until after a recess. The chair addresses this motion before the main motion.

4. Incidental Motions

The purpose of an incidental motion is to question or clarify the procedure relative to other motions. Incidental motions must be considered before the motion that it questions. Robert’s Rules lists incidental motions that cover almost any issue that surfaces.

Example: A member files a broad or vague motion and another member seconds it. Another member files a motion to table the main motion and requests additional information. The incidental motion is seconded. The chair addresses the incidental motion before the main motion.

Writing a Clear, Concise Board Meeting Motion


Now that you know what kind of motion you are writing and the hierarchy that it takes, you can begin writing your motion. Remember that it should be clearly and concisely worded.

Think through your motion carefully and determine exactly what it is you want to accomplish with it. Include details and support it. Anticipate questions and objections and answer them in your motion. Address any legal concerns in your summary.

If there is a fiscal component, include how the action will be funded. Main motions that require funding may require two main motions—one to pass the action and one to fund it.

Review your motion to see if it asks for a clear action to be taken. State a timeframe when applicable.

Rely on your chair and fellow board members for assistance. Ask one or more of them to review your motion and offer feedback.

Let’s take a look at a couple of examples. A homeowner’s association has been discussing that the roofs of six buildings need to be replaced. The discussion has trended towards replacing the existing shake-shingle roofs with asphalt roofs due to the decreased cost. Homeowners concur with the decision and the village has just changed its ordinance to allow the asphalt roofs in that neighborhood. It’s time to make a motion to replace the roofs.

Example of a poorly written board meeting motion:

“I move to replace the wood shingles on three of the buildings with asphalt shingles.”

Example of a well-written board meeting motion:

“I move to replace the wood shingles on buildings 1, 2, and 3 with asphalt shingles in May, 2017. The ordinance has been changed to allow for asphalt shingles. The second phase of replacing the roofs will occur in July, 2017 for the remaining buildings 4, 5, and 6, so that they will all match by the end of the summer. The roof replacements for both phases will be funded from the association budget at a cost of $10,000 per roof.”

In looking at the examples, it’s easy to see why the first example invites questions about the change in material, which buildings are being repaired, when the remaining roofs will be repaired, how costs will be managed, and when the work will be completed. This type of motion is likely to be subject to subsidiary or incidental motions.

The second example concisely spells out all of the details, not leaving anything to chance. Your fellow board members will appreciate a well-planned motion.

One of the negatives in writing vague, unclear motions is that your motion will be subjected to being amended many times. Moreover, you risk losing the substance of your original intent. Writing motions that are specific, concise, and unique keep the meeting moving along fluidly. By understanding the type of motion you are making, taking time to think it through, and addressing potential objections, you can write a clear motion that will help members make an informed vote.

Motion Lingo Driver Login

Helpful tips for writing a board meeting motion:

Motion Lingo Driver Download

  1. Be specific, unique and concise
  2. Understand the different motion types
  3. Address portential objections
  4. Rely on your board chair and board members for assistance