SKR Mini 1.1 with TMC2209 z-axis won't move, No error message

Basic Information:

Printer Model: Ender 5 Pro
MCU / Printerboard: SKR Mini 1.1 with TMC2209 from Big Tree Tech
klippy.log (273.0 KB)

klippy.log

Fill out above information and in all cases attach your klippy.log file. Pasting your printer.cfg is not needed
When pasting code or config snippets use the code tags </> in the menu above

Describe your issue:

Hi Everybody

I am troubleshooting my build for two days now and have arrived at the limits of my knowledge…Any help you guys can provide would be welcome.

My setup looks as follows:
I am running a SKR Mini 1.1 with TMC2209s from BTT in my Ender 5 pro.
The drivers are in UART-mode with a dedicated pin each (I know, that’s overkill but why not…).
I’m using pins P10, PC11, PC12 and PC14 from the EXP1 header.
The kinematics is set to corexy given that I extensively modified the printer…
To connect the SKR Mini 1.1. to the RPi4, I went for serial connection (found some posts which reported that there is a known incompatibility between the SKR Mini 1.1. and the RPi4. The RPi4 simply won’t detect the MCU on USB. A workaround is to put an USB-Hub in between…I didn’t want this complication, thus went serial).
I am running the latest Klipper version (v011.0-87) and build the firmware for the MCU with standard settings for serial communication (STM32 Architecture, STM32F103, 28kb bootloader, PA10/PA9 USART1 serial communication).

Here is the issue:
After finishing the wiring, I started checking functionality.
The DUMP_TMC command reads all four drivers. STEPPER_BUZZ works on the x and y-stepper as well as the extruder but not the z-stepper. X and Y homing works, Z again won’t move. There is unfortunately NO error message…

Here is what I have troubleshooted so far:

  • I checked the z-stepper (plugged the cable into the y-stepper port on the board) and confirmed, cable and stepper are ok given that the z-stepper moved when buzzed as a y-stepper.
  • I checked if there is an issue with one of the two z-stepper ports (both are controlled by the same driver) and tried stepper buzz of the z-stepper plugged in to the two different ports on the MCU. No movement on either.
  • Given that I am at the start of configuration, BLTouch is not installed and instead I just set PC0 as endstop. I checked that the endstop is open (inverted with “!” in the config to have the endstop open) to allow movement. That didn’t make a difference either.
  • I checked the pins in the config and confirmed that they are set as per wiring scheme of BTT. The TMC config section of the z-stepper is the same as for the other steppers (except for the uart pin…see log).
  • I also checked if the enable pin for the z-driver should be inverted. Hence, changed the config (removing the “!” before the enable pin PB2). No change, z-stepper is not energized either way.
  • I interchanged the stepper drivers physically and, in the config, (to run stepper buzz on a different axis to ensure there is no issue with end stops), no luck.
  • Next, tried a second SKR Mini 1.1. that I have, which was working with Klipper in another printer, no luck.
  • Finally, I checked if the serial communication could be the issue. Both boards were previously working with an older Klipper version in USB mode with a USB-Hub between MCU and RPi4 (see above for the reason to use a hub between RPi4 and MCU). Hence, I flashed the USB firmware, put the hub in, changed the config and…stepper z still won’t move with either of the boards.

In sum:

  • Cable, Stepper, Driver are OK.
  • Board: Should be OK unless I have an identical issue on 2 boards…that’s pretty unlikely.
  • Config: Should be OK as the driver section and the stepper section is identical in structure to the other working steppers x and y.
  • Connection: Is probably ok, given that behavior is the same using either USB or serial.

I attach the Log file where you can see the TMC dump results. There are small differences, however, my knowledge is limited here, and I can’t really see if there is an issue, let alone fix it…

So I hope you guys have an idea what could cause this behavior (or better non-behavior) of my z-stepper without error message…

Cheers
Florian

This is quite strange indeed. Do you have a display connected?

Hi Sineos. Thanks for answering. No, I am running Mailsail and klipperscreen via USB. No display connected.

Do you have a spare stepper motor to try?

just tried another stepper motor. no movement. besides, the current one works if plugged in to another driver…

In the meantime, I tried a total of 5 different drivers…none worked for Z…

Just for the fun of it:
What happens if you define your Extruder port as Z and use the stepper / motor combination there. Same result?

if I plug the z-stepper into the extruder port and do a stepper buzz for the extruder, z axis moves…definitely not a stepper or cable issue…

Just remembered that I had another SKR Mini 1.1. lying around. Guess what? Same behavior. if the z-stepper is plugged at any other port than z, it moves. Plugged in Z port…nothing. Hence, the probability of three boards having the exact same issue is pretty much cero…hence, must be either config, firmware or host code…I’ll fix up my BLTouch now. Maybe this is the culprit.

I’m out of ideas. Your config seems to be correct and according to the BTT schematic / pin-out.
Please report back if you find the reason.

that’s how I feel for two days now :stuck_out_tongue: Maybe Kevin will have a look…Cheers and thanks

Update: I have now properly implemented my BLTouch. No change. Z-stepper still won’t move. Rechecked that, plugging in to y-axis, the stepper properly energizes and moves. Plugged in to z-axis, the stepper doesn’t energize.

Looking at the TMC-dump results I noticed the following differences:

  • Working steppers:
SG_RESULT: 0000002a sg_result=42
PWM_AUTO: 0018002e pwm_ofs_auto=46 pwm_grad_auto=24
PWM_SCALE: 0000001e pwm_scale_sum=30
PWMCONF: c80d0e24 pwm_ofs=36 pwm_grad=14 pwm_freq=1 pwm_autoscale=1 pwm_autograd=1 pwm_reg=8 pwm_lim=12
DRV_STATUS: c0140000 cs_actual=20 stealth=1 stst=1

For the Z-stepper, I get different results. I haven’t figured out which result is obtained when and why… First, if the stepper driver has been plugged in since start up:

SG_RESULT: 00000000
PWM_AUTO: 000e00ff pwm_ofs_auto=255 pwm_grad_auto=14
PWM_SCALE: 006800ff pwm_scale_sum=255 pwm_scale_auto=104
PWMCONF: c80d0e24 pwm_ofs=36 pwm_grad=14 pwm_freq=1 pwm_autoscale=1 pwm_autograd=1 pwm_reg=8 pwm_lim=12
DRV_STATUS: c0120000 cs_actual=18 stealth=1 stst=1

If I exchange the drivers (while not energized), and read the register, the “new” z-stepper’s register look like the first one above. If however I give a stepper buzz command, the register changes to:

SG_RESULT: 00000002 sg_result=2
PWM_AUTO: 000e0024 pwm_ofs_auto=36 pwm_grad_auto=14
PWM_SCALE: 00000015 pwm_scale_sum=21
PWMCONF: c80d0e24 pwm_ofs=36 pwm_grad=14 pwm_freq=1 pwm_autoscale=1 pwm_autograd=1 pwm_reg=8 pwm_lim=12
DRV_STATUS: 801200c0 ola=1(OpenLoad_A!) olb=1(OpenLoad_B!) cs_actual=18 stst=1

Now, as I am no expert in these things, I ask the Klipper gods to intervene :slight_smile:

Cheers
Florian

Do you have jumpers in the spare Z port? Looking at the schematic, it seems the skr mini v1.1 wires the two Z ports in series (and not in parallel).

-Kevin

2 Likes

wow…unbelievable. Why would they design it in series and not parallel??? Given that I was running the boards in a CR-10S Pro, I never had to thing about this. Thank you sooooo much! Looked at the manual and indeed, the picture shows jumpers. No other info anywhere to be found on this in the Manual…

Problem solved!

Because of the maximum current the driver can provide.

1 Like

The max. current is controlled by the driver via UART or VRef from my understanding.
Anyways, I’m obviously not an Electronics expert :stuck_out_tongue:

Yes, but when you put two loads in parallel, the current adds to the twice amount regarding a single load.

Or the other way round: with a limited current, one stepper only gets half the current.

If you put them in series, you ‘just’ have to double the voltage to have the same power on each stepper.

Therefore modern boards are running on 24V.

Therefore modern boards are running on 24V.

No, that’s not why modern boards are running 24V - they do it to support 200mm/s and faster X/Y movements where the Back EMF can reache 8V or more (with the rule of thumb being that you should provide a power supply with 3x the maximum Back EMF expected). If you are using NEMA 17s, keep under 150mm/s and don’t have any significant binding in your system, you can run at 12V very comfortably. In this situation, 24V runs out of steam at speeds of 500mm/s or more.

I can go into the science of this or you can look it up but the reason why 24V is most popular now is because it better supports high speed operation and, in most people’s minds, 24V has to be better than 12V.

I had never heard of wiring steppers in series until this discussion and I did a bit of research on it.

First off, there doesn’t seem to be any authoritative references on how to wire multiple steppers for different situations. There was debate about the issue in the community starting around 2006 and continued until 2014 or so. I couldn’t find any research papers or driver/stepper manufacturer’s papers on the issue.

The general consensus is that wiring stepper motors in series is best for low speed operation where lots of torque is required and the Back EMF the driver experiences (which will be the sum of the Back EMF of the two motors) will not be problematic. Parallel wiring is best for higher speed applications where low-end torque is not required (and the Back EMF will be the same as for one motor).

Series wiring for Z Axis steppers is probably optimal but it’s something of an odd duck so, unless you know your board has the Z Axis stepper connectors wired this way and have jumpered any unused connectors, you’re going to be wondering why your Z Axis stepper isn’t moving like what is seen here.

1 Like

Thanks for the great insight. Indeed, as you said, I would guess that most people would expect parallel wiring. In any case, I learnt my lesson :slight_smile:

Here’s a feature request: Add a warning message if steppers running with UART detect "OpenLoad_A/B!). In hindsight, the answer was in the TMC dump file. I just couldn’t make the connection. Kevin obviously spotted this quickly. A short warning message (“Stepper not connected or circuit not closed”) would help a ton to prevent ignorants like me :stuck_out_tongue: wondering for days… if this is implementable, that would be great…

Thanks again for the support. My Ender 5 rocks 35,000 mm2/s on original steppers in corexy configuration now…yay

1 Like