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.
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.
#define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256
$\endgroup$NC
pin not thePDN
pin (UART is connected to thePDN
only on the stepsticks board). I needed to solder/bridge theNC
andPDN
pins. Maybe your stepsticks boards don't have UART onPDN
as well? $\endgroup$