<p>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  <code>DEFAULT_AXIS_STEPS_PER_UNIT</code> for the Z entry in your configuration file?</p>

CC BY-SA 4.0
2018-05-19T16:02:50.627Z
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...
Felix Hauser
CC BY-SA 4.0
2018-05-19T10:00:03.653Z
2018-05-19T12:10:19.883Z
2018-05-19T12:10:19.883Z
0scar
<p>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 
<a href="https://github.com/bigtreetech/BIGTREETECH-TMC2208-V3.0/blob/master/TMC2208-V3.0%20manual.pdf" rel="nofollow noreferrer">https://github.com/bigtreetech/BIGTREETECH-TMC2208-V3.0/blob/master/TMC2208-V3.0%20manual.pdf</a> </p>

CC BY-SA 4.0
2020-02-26T18:23:57.773Z
He did that, it's mentioned in the UPDATE section
FarO
CC BY-SA 4.0
2020-02-26T17:12:23.647Z
2020-02-26T17:12:23.647Z
Grigor Tonikyan
<p>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.</p>
<p>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.</p>
<p>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</p>
<p>However what I noticed when doing a <code>M122</code> is a line which reads:</p>
<pre><code>msteps 256
</code></pre>
<p>which sounds like the microstepping was set at 1/256 instead.</p>
<p>Maybe somebody could tell me if I missed something?</p>
<p><strong>UPDATE:</strong></p>
<p>After some more digging into it, here is what I've done so far:</p>
<ul>
<li>Solder the pins on the driver. Original from Watterrot</li>
<li>Solder the bridge pads for enabling UART communication</li>
<li>Solder the pin for the communication heading upwards</li>
<li>Change the <code>configuration_adv.h</code> on Marlin (1.1.8) and enable all that is to enable: USE_TMC2208, Enable debugging, selecting the Z axis, etc</li>
<li>Check the pins on <code>pins_RAMPS.h</code> and make sure they are available in my setting</li>
<li>Make a Y cable with the 1 kOhm resistor for the TX pin</li>
<li>Hook everything up</li>
</ul>
<p>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.</p>
<p>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, <a href="https://github.com/MarlinFirmware/Marlin/issues/9396" rel="nofollow noreferrer">Bug: TMC2208 UART Communication uses wrong pins for SoftwareSerial #9396</a>.</p>
<p>I proceeded to change the assigned pins for serial RX/TX, but everything is exactly the same.</p>
<p>I tried a different Arduino (original), another RAMPS board and even the 1.1.x and 2.0 bugfix branches from Marlin.</p>
<p>It seems that the driver is on &quot;legacy&quot; mode and software manipulation is not possible. Although I went through the steps to enable it.</p>

CC BY-SA 4.0
2018-07-30T17:44:33.427Z
tmc interpolate your steps to   256 in advanced configuration file:  
 `#define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256`
ddjikic
CC BY-SA 4.0
2019-01-14T16:33:19.627Z
Mine even worse, I have all controllers TMC2208 and after some unrelated firmware update Z started to go twice match. Other axis are fine.
Slava
CC BY-SA 4.0
2020-07-16T18:01:47.250Z
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?
0scar
<marlin><ramps-1.4><stepper-driver><microstepping>
TMC2208 drivers - Microsteps configured incorrectly
Felix Hauser
# TMC2208 drivers - Microsteps configured incorrectly

(Asked by: username_0 on 2018-05-18)

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?

**UPDATE:**

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](https://github.com/MarlinFirmware/Marlin/issues/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.

**Tags:** marlin, ramps-1.4, stepper-driver, microstepping

> **Comments:**
> **username_1**: tmc interpolate your steps to   256 in advanced configuration file:    `#define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256`  
> **username_2**: Mine even worse, I have all controllers TMC2208 and after some unrelated firmware update Z started to go twice match. Other axis are fine.  
> **username_3**: 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?  

---

## 2 answers

### Answer by username_3 on 2018-05-19. Score: 1

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?

> **Comments:**
> **username_0**: 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...  

---

### Answer by username_4 on 2020-02-26. Score: 0

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>

> **Comments:**
> **username_5**: He did that, it's mentioned in the UPDATE section  

---

