I've just installed two TMC2208 drivers on my RAMPS board. I followed a very good step by step tutorial and after some issues, I got it nearly to work.

One problem I still have is that when I tell the printer to lift the Z axis by 5 mm, it lifts it by 10 cm.

I haven't changed anything regarding the steps/mm. Previously I had the Pololus, with 1/16 microstepping and now I also have 1/16 on configuration_adv.h file on Marlin 1.1.8

However what I noticed when doing a M122 is a line which reads:

msteps 256

which sounds like the microstepping was set at 1/256 instead.

Maybe somebody could tell me if I missed something?


After some more digging into it, here is what I've done so far:

  • Solder the pins on the driver. Original from Watterrot
  • Solder the bridge pads for enabling UART communication
  • Solder the pin for the communication heading upwards
  • Change the configuration_adv.h on Marlin (1.1.8) and enable all that is to enable: USE_TMC2208, Enable debugging, selecting the Z axis, etc
  • Check the pins on pins_RAMPS.h and make sure they are available in my setting
  • Make a Y cable with the 1 kOhm resistor for the TX pin
  • Hook everything up

No matter what I did, the motor moves twice as much as requested. Although I set up 1/16 microstepping, the same I had with my Pololus, I performed the reverse calculation to find out that the actual microstepping on the driver is 1/8.

After more investigation, the issue seems to be that the driver is not recognized at all by the Marlin/Board. Thinking that it was a problem with the TX/RX communication, I dug into the available info out there and I found this, Bug: TMC2208 UART Communication uses wrong pins for SoftwareSerial #9396.

I proceeded to change the assigned pins for serial RX/TX, but everything is exactly the same.

I tried a different Arduino (original), another RAMPS board and even the 1.1.x and 2.0 bugfix branches from Marlin.

It seems that the driver is on "legacy" mode and software manipulation is not possible. Although I went through the steps to enable it.

  • $\begingroup$ tmc interpolate your steps to 256 in advanced configuration file: #define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256 $\endgroup$
    – ddjikic
    Jul 30, 2018 at 17:44
  • $\begingroup$ Mine even worse, I have all controllers TMC2208 and after some unrelated firmware update Z started to go twice match. Other axis are fine. $\endgroup$
    – Slava
    Jan 14, 2019 at 16:33
  • $\begingroup$ I had troubles with my TMC2208 V2.0 drivers on a SKR pro V1.1. This board has build in routes for serial connection, but the signal is expected on the NC pin not the PDN pin (UART is connected to the PDN only on the stepsticks board). I needed to solder/bridge the NC and PDN pins. Maybe your stepsticks boards don't have UART on PDN as well? $\endgroup$
    – 0scar
    Jul 16, 2020 at 18:01

2 Answers 2


I don't have these controllers, but I read that with default settings the TMC2208 will interpolate the microsteps set by the I/O configuration pins to 256 microsteps. Please look into how you set up the dip switches / jumper caps on your board, it seems that only 2 are used (MS1 and MS2). Furthermore, can't you just decrease the count of the array DEFAULT_AXIS_STEPS_PER_UNIT for the Z entry in your configuration file?

  • $\begingroup$ I can change the steps_per_unit, but that's a patch for the outcome, it's not solving the cause of it. I investigated further, please see the update on my original post... $\endgroup$ May 19, 2018 at 16:02

Most likely your issue is related to the PDN_UART pin on TCM2208 Driver board, on some manufacturers boards the jumper is not set to UART mode by default, so most likely u need to solder jumper to right configuration. Look at datasheet of your driver board. for example https://github.com/bigtreetech/BIGTREETECH-TMC2208-V3.0/blob/master/TMC2208-V3.0%20manual.pdf

  • 2
    $\begingroup$ He did that, it's mentioned in the UPDATE section $\endgroup$
    – FarO
    Feb 26, 2020 at 18:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .