Unable to read tmc uart 'stepper_x' register IFCNT - SKR Mini E3 V1.2

  • Voron V0.1
  • BTT SKR Mini E3 V1.2

I changed the extruder on my Voron V0.1 and replaced the x-gantry with an ultralight x-beam.
While redoing the x-axis, I moved the x- and y-axis manually, but being careful, to only move them slowly, since I kept them plugged in to the mainboard.

After turning the printer back on, everything seemed to work just fine. I could home all the axes.
When homing the printer, the x-axis slowly crashed into the frame, because it tried to go 2mm further then it could, since the X-limit was not positioned correctly at that time. This happened twice.

I also updated klipper+moonraker during these first tests.

When I tried to home the printer a couple minutes later, I realised that it doesn’t work anymore. Everytime I now try to home the printer, it starts to move but then the printer shuts down and I get the following error:

Unable to read tmc uart ‘stepper_x’ register IFCNT
Once the underlying issue is corrected, use the
“FIRMWARE_RESTART” command to reset the firmware, reload the
config, and restart the host software.
Printer is shutdown

I am using a BTT SKR Mini E3 V1.2, which has integrated TMC2209 stepper drivers. So I know that the drivers are connected properly and it worked just fine for the past 1.5 years. Since the stepper motor drivers are soldered on, I can not swap them, to see if it is faulty. Visually I can not see any defect on the board.

I don’t understand why it was working at first and all of the sudden it stopped working.

the UART settings for stepper_x in the config look like this:

[tmc2209 stepper_x]
uart_pin: PB15
interpolate: True
run_current: .6
hold_current: .25
sense_resistor: 0.110
stealthchop_threshold: 500

But I didn’t do any changes to it anyway and it worked fine like this before.

When I use SET_KINEMATIC_POSITION X=10 Y=10 Z=10 to jog the axes without homing, I can jog the z-axis without any problem. But when I try to jog either the X or Y Axis, I get the error message about stepper_x.
I guess this is related to the coreXY kinematic, since it needs to move both motors to go in a straight line along x or y.

When I type DUMP_TMC STEPPER=stepper_z or DUMP_TMC STEPPER=stepper_y or DUMP_TMC STEPPER=extruder I see many messages. When I use DUMP_TMC STEPPER=stepper_x I only see the following ones:

20:25
Unable to read tmc uart ‘stepper_x’ register GCONF
20:25
========== Queried registers ==========
20:25
SGTHRS: 00000000
20:25
TPOWERDOWN: 00000014 tpowerdown=20
20:25
TPWMTHRS: 00000013 tpwmthrs=19
20:25
IHOLD_IRUN: 00081307 ihold=7 irun=19 iholddelay=8
20:25
SLAVECONF: 00000200 senddelay=2
20:25
========== Write-only registers ==========
20:25
DUMP_TMC STEPPER=stepper_x

Any ideas what could have caused this problem, when it was working just fine for 1.5 years and even worked the first couple times after replacing the x-gantry and extruder?

Did I really destroy the board by slowly crashing into the frame twice? This also happened a couple times in the past, but never caused any problems.

1 Like