Skip to main content

TMC 2240

Basic Parameters

  • Input voltage: 12V-36V
  • Suitable for: Klipper/RRF firmware
  • Drive mode support: TMC: SPI/UART
  • Integrated temperature detection
  • General analog input full protection and diagnosis
  • Fully integrated lossless current sensing (ICS)
  • Stepper/direction interface with microstepping interpolation microPlyer
  • Short-circuit protection, undervoltage lockout, chip overheat protection (thermal shutdown)
  • Supports stallGuard2 high-precision sensorless motor load detection
  • Integrated StallGuard2 and StallGuard4 sensorless motor load detection
  • StealthChop and SpreadCycle jitter-free combination, solving the motor jitter problem at the chopping speed switching point.
  • Higher power, lower heat generation. (Supports higher voltage, 3.0AMAX, suitable for higher field 3D printing work, and longer working time without easy heating and damage.)

Motherboard Jumper Instructions

  • TMC2240 defaults to using SPI jumper
  • TMC2240 uses UART jumper method

TMC2240 Reference Configuration

dangerous

The drive sampling resistor is rref: 12300 please do not set incorrectly

SPI Mode Reference Configuration

[tmc2240 stepper_x]
cs_pin:
spi_bus:
run_current: 0.65 # Motor running current value
interpolate: False # Whether to enable 256 microstepping interpolation (not recommended)
rref: 12300
stealthchop_threshold: 0 # Silence threshold (if silence is not required, change the value to 0)

UART Mode Reference Configuration

[tmc2240 stepper_x]
uart_pin:
run_current: 0.65 # Motor running current value
interpolate: False # Whether to enable 256 microstepping interpolation (not recommended)
rref: 12300 # Drive sampling resistor
stealthchop_threshold: 0 # Silence threshold (if silence is not required, change the value to 0)
  • If the following error occurs

  • You need to log in to the user who installed klipper under the SSH terminal and then execute this code

    sed -i 's/"uart_pin"/\'"'"'uart_pin'\''/g' ~/klipper/klippy/extras/tmc2240.py

Infinite Position Usage Instructions

Infinite Position Usage Tips
  • Infinite position usage requires occupying a limit port; normally, the first drive position uses IO1, the second drive position uses IO2, and so on.
  • When using infinite positions, please ensure not to connect anything to the corresponding limit port.
  • For some FLY mainboards that are directly connected to the drive port, please check if DIAG is directly connected to the corresponding pin.
Infinite Position Usage Tips
  • The original endstop_pin: needs to be shielded or deleted, and add endstop_pin: tmc2240_stepper_x:virtual_endstop
  • After configuring diag0_pin:, the limit status is not triggered after refreshing
  • Configuring driver_SGT: requires you to test a suitable value normally 1
  • Reference Configuration
[stepper_x]
# endstop_pin:PF3 # Need to shield or delete the original limit port
endstop_pin: tmc2240_stepper_x:virtual_endstop
homing_retract_dist: 0 # Retraction without changing to 0 may cause homing failure

[tmc2240 stepper_x]
diag0_pin: ^!PG12
driver_SGT: 1