1. About
  2. Features
  3. Explore

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 U 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.

1 Answer 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?