Skip to main content

TMC Error Troubleshooting

Technical Background

TMC (Trinamic) drivers report status and error information through dedicated registers. Understanding these registers helps quickly diagnose issues:

  • IFCNT Register: Communication frame counter, used to verify normal communication between the main controller and the driver.
  • GSTAT Register: Global status register, containing global status information such as reset and driver errors.
  • DRV_STATUS Register: Driver status register, providing detailed driver operating status including temperature warnings, short circuits, open circuits, and other fault information.

When Klipper reports a TMC error, it typically displays specific register values and fault flags. A TMC driver error indicates the driver chip has detected a problem and self-protectively disabled itself. Klipper enters a shutdown state upon detecting a disabled driver.

Power Off Operation

Before checking jumper caps, driver modules, motor cables, SPI/UART wiring, or terminal blocks, completely turn off the printer and disconnect the power supply. Do not hot-plug driver modules or stepper motor cables. Multimeter resistance measurements should only be used when the system is powered off.

Cannot Connect to Driver (IFCNT Communication Failure)

Error Message: Unable to read tmc uart 'stepper_x' register IFCNT or Unable to read tmc spi 'stepper_x' register IFCNT.

Loading...

Error Cause: Communication failure between the TMC driver (UART/SPI mode) and the main controller, preventing the IFCNT register value from being read. Common causes include uninstalled UART jumper caps, abnormal driver board power supply, or incorrect UART/SPI pin configuration.

Solution:

  1. Power off and check if the UART jumper cap for the corresponding driver is correctly installed.
  2. Confirm that the uart_pin (or spi_bus / spi_software_*_pin) in the TMC configuration within printer.cfg matches the actual wiring.
  3. Initially assess the power supply status through the power indicator light and driver module installation orientation. If the indicator light is normal and the module is correctly oriented but the issue persists, try replacing with a finished wire harness or cross-testing (move the driver to another port for verification). For electrical testing of exposed 24V terminals, contact after-sales support or a professional.
  4. If the error occurs immediately after flashing Klipper for the first time, power off the entire machine for several seconds (disconnect both USB and main power simultaneously), then power back on to clear residual driver states.
  5. Power off and try replacing the driver board or switching the driver port for testing.
  6. If using a non-FLY brand driver, confirm its UART pin definition (FLY driver UART pin is usually the fourth pin from the top on the left side).
Loading...

For special cases where the purchased driver's UART pin is on the fifth pin, the following jumper method can be used:

Loading...
  1. Check if uart_address matches the hardware jumper settings on the driver board.
  2. Check if the data cable is intact, without breaks or poor contact.

Driver Overheating (OvertempError / OvertempWarning)

Error Message: TMC 'stepper_x' reports error: DRV_STATUS: ... ot=1(OvertempError!) or otpw=1(OvertempWarning!).

Loading...

Error Cause: The TMC driver chip temperature has exceeded the safety threshold, triggering protection. Note: This is driver overheating, not motor overheating!

  • OvertempWarning (otpw): Temperature exceeds the approximately 120°C warning threshold. The driver can still operate, but troubleshooting is recommended.
  • OvertempError (ot): Temperature exceeds the approximately 150°C shutdown threshold, and the driver is automatically disabled.

Solution:

  1. Reduce the motor's run_current. It is recommended to reduce it by 20-30% initially.
  2. If a hold_current is set, consider appropriately reducing it or disabling it completely.
  3. Check if the driver heatsink is properly attached and if thermal paste is sufficient.
  4. Add a cooling fan for the driver to ensure adequate airflow.
  5. Confirm that the driver's sense resistor value is correctly configured.
  6. Lower stealthchop_threshold or switch to spreadCycle mode.
  7. Check if the driver installation environment is enclosed, leading to heat buildup. Avoid prolonged operation in high-temperature environments.

Short Circuit Fault (ShortToGND / ShortToSupply)

Error Message: TMC 'stepper_x' reports error: DRV_STATUS: ... s2vsa=1(ShortToSupply_A!) or s2ga=1(ShortToGND_A!).

Error Cause: The driver has detected extremely high current. Possible causes include loose motor cables causing a short circuit, damaged motor winding insulation, or overcurrent due to inaccurate load prediction in stealthChop mode.

Solution:

  1. Power off before operating. Check if the corresponding motor cable is loose or damaged. Use a multimeter in resistance mode to measure the motor coil resistance (normal range: approximately 1.5~3Ω).
  2. Power off and check if the motor connector is secure.
  3. If motor casing grounding is required, use the grounding point provided by the manufacturer or contact after-sales support. Do not modify the power ground wire or expose terminals yourself.
  4. Try disabling stealthChop for testing: SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadCycle VALUE=1
  5. If the error disappears after switching, it indicates a stealthChop prediction issue; otherwise, it may be a genuine hardware short circuit.

Open Load Fault (OpenLoad)

Error Message: TMC 'stepper_x' reports error: DRV_STATUS: ... ola=1(OpenLoad_A!) or olb=1(OpenLoad_B!).

Error Cause: The driver detects that one phase of the motor winding does not form an effective load. This usually indicates a disconnected motor cable, loose connector, incorrect coil wiring, or a false positive at low current/stealthChop state.

Solution:

  1. Power off and reconnect the motor cable, ensuring the terminal crimp is secure.
  2. Power off before operating. Use a multimeter to measure the resistance of the A and B coil pairs. Both pairs should have similar resistance and should not be open circuit.
  3. Power off and check the motor wiring sequence, ensuring the two A-phase wires are in one group and the two B-phase wires are in another group.
  4. Temporarily disable stealthChop for testing: set stealthchop_threshold: 0 in the configuration.
  5. Test with a slightly higher run_current. If the error only occurs at very low currents, it may be a false positive.
  6. Power off and replace the motor cable or motor for cross-testing to identify whether the issue is with the harness, motor, or driver port.

Combined Short Circuit and Open Load Fault (A-Phase Short, B-Phase Open)

Error Message: TMC 'extruder' reports error: DRV_STATUS: ... s2vsa=1(ShortToSupply_A!) csactual=31 ola=1(OpenLoad_A!) olb=1(OpenLoad_B!).

Error Cause: TMC driver fault diagnosis bits indicate hardware issues: s2vsa=1 means A-phase short to supply, ola=1 means A-phase open load, olb=1 means B-phase open load, and csactual=31 indicates a possibly high current setting. These faults often appear together, indicating serious hardware problems with the motor or driver.

Solution:

  1. Power off before operating. Use a multimeter to measure the resistance of the stepper motor's A and B coil pairs. They should be consistent (typically 1-2Ω and similar values between the two pairs).
  2. Power off and carefully check the stepper motor wire harness and connectors for looseness, short circuits, or poor contact.
  3. Confirm the current setting for the TMC driver is appropriate. Excessive current can cause these issues.
  4. Try disabling stealthChop mode for testing: set stealthchop_threshold: 0 in the configuration.

Combined Short Circuit and Open Load Fault (B-Phase Short, A-Phase Open)

Error Message: TMC 'extruder' reports error: DRV_STATUS: ... s2vsb=1(ShortToSupply_B!) ola=1(OpenLoad_A!) cs_actual=25.

Loading...

Error Cause: TMC driver fault diagnosis bits indicate: s2vsb=1 means B-phase short to supply, ola=1 means A-phase open load, and cs_actual=25 indicates the current setting. This is usually caused by: incorrect motor wiring (A/B phases reversed or shorted), motor failure (winding open circuit), or driver board hardware issues.

Solution:

  1. Power off before operating. Use a multimeter to measure the resistance of the stepper motor's A and B coil pairs. They should be consistent (normally similar).
  2. Power off and confirm the motor wiring sequence is correct; typically, one group on the left (A-phase) and one group on the right (B-phase).
  3. Power off and check all terminal connections for sturdiness, looseness, or poor contact.
  4. If possible, power off and connect the motor to another known-good driver port for testing.

Driver Reset (Reset)

Error Message: TMC 'stepper_x' reports error: GSTAT: 00000001 reset=1(Reset).

Loading...

Error Cause: Unstable power supply or external interference causes the driver to automatically reset. Common causes include power voltage fluctuations, loose wiring, or electromagnetic interference.

Solution:

  1. Fully power off and check if the 24V power cables, driver module, and motherboard sockets are loose, blackened, or burnt.
  2. Replace with known-good power supply, driver module, or wire harness for cross-testing.
  3. Check driver cooling and fan functionality.
  4. Check if motor cables run parallel to heater or heated bed cables over long distances. If necessary, power off and reorganize the wiring.
  5. Power off before operating. Check if the motor cable has breaks, internal strand fractures, or intermittent connections due to poor terminal contact. Long-term movement in cable chains can cause cable fatigue fractures; pay special attention to chain bend points and terminal crimping areas.
  6. It is not recommended for customers to modify the driver power input terminal, add electronic components, or alter grounding themselves; such operations should be handled by professionals or after-sales support.

Undervoltage Protection (Undervoltage)

Error Message: TMC 'stepper_x' reports error: DRV_STATUS: ... uv_cp=1(Undervoltage!).

Error Cause: The driver has detected a low supply voltage event. Usually caused by power supply failure, loose wiring, or insufficient power capacity.

Solution:

  1. Fully power off and check the appearance of power cables, motherboard power connectors, and terminals for looseness, blackening, or burning.
  2. Confirm that the power supply specifications meet the total power requirements of the driver and heaters.
  3. Perform a replacement test with a known-good power supply or wire harness.
  4. For electrical testing of exposed 24V terminals, contact after-sales support or a professional; do not handle it yourself.

SPI Communication Error (DRV_STATUS: ffffffff)

Error Message: Unable to write tmc spi 'stepper_x' register ..., TMC reports error: DRV_STATUS: ffffffff ... or READRSP@RDSEL2: 00000000 ....

Error Cause: Inability to communicate with the TMC driver (tmc2130/tmc5160/tmc2660) in SPI mode. Usually caused by incorrect SPI wiring, unconfigured devices on the SPI bus, or TMC driver self-reset/fault.

Solution:

  1. Power off and check if the SPI wiring order (MOSI, MISO, SCK, CS) is correct.
  2. If multiple devices share the SPI bus, ensure each device is fully configured in Klipper.
  3. Power off and test with only one driver connected to the motherboard to rule out shared bus interference.
  4. Confirm normal driver power supply. If necessary, power off for a few seconds and then power back on.
  5. If the error is accompanied by reset=1, uv_cp=1, or random ffffffff, prioritize checking the power supply and driver contact.

Individual Driver Testing: To isolate and verify if a driver is functioning correctly, please refer to the SPI driver individual testing method in Peripheral and Driver Testing.

Loading...