TMC2208 drivers - Microsteps configured incorrectly
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
M122is a line which reads:
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.hon 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.hand 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.
tmc interpolate your steps to 256 in advanced configuration file: `#define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256`
Mine even worse, I have all controllers TMC2208 and after some unrelated firmware update Z started to go twice match. Other axis are fine.
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?
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_UNITfor the Z entry in your configuration file?
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...
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.
He did that, it's mentioned in the UPDATE section
License under CC-BY-SA with attribution
Content dated before 7/24/2021 11:53 AM
0scar 4 years ago
Did you solve this problem? If you did solve the problem it would be great to share your experience with the community, by posting your own answer, so that other may learn from it or can solve their own similar problems. You can also accept your own answer after 48 hours.