klipper/klippy
Oleksii Shchetinin df5046c476 backlash: Add backlash compensation module
Add support for compensating mechanical backlash (lost motion) when
axes reverse direction. This is common in lead screw and belt drive
systems.

The module supports two kinematics modes:
- Cartesian: Independent X, Y, Z axis compensation
- CoreXY: Compensation for A/B diagonal motors (A=X+Y, B=X-Y)

Compensation is applied in real-time via move transform and is hidden
from the UI position display. Direction tracking is reset on homing.

Configuration example:
  [backlash]
  kinematics: corexy
  a: 0.05
  b: 0.03
  z: 0.1

Signed-off-by: Oleksii Shchetinin <willkaxxx@gmail.com>
2025-12-31 16:58:36 +02:00
..
chelper serialqueue: Make 31-bit clock overflow check a little more robust 2025-12-14 15:55:57 -05:00
extras backlash: Add backlash compensation module 2025-12-31 16:58:36 +02:00
kinematics generic_cartesian: Added option 'axis' for primary carriages 2025-11-25 18:12:43 -05:00
clocksync.py clocksync: Simplify 32bit clock upconversion code 2023-12-10 14:59:13 -05:00
configfile.py configfile: Fix comments on same line as [include xxx.cfg] directive 2024-11-12 21:07:44 -05:00
console.py console: No need to import pins module 2023-01-07 12:00:16 -05:00
gcode.py gcode: Change Coord() class to initialize from a list or tuple 2025-11-06 10:19:00 -05:00
klippy.py klippy: Verify nothing attempts to pause in the klippy:ready event 2025-10-18 12:28:06 -04:00
mathutil.py kinematics: Generic Cartesian kinematics implementation (#6815) 2025-05-06 18:06:36 -04:00
mcu.py mcu: Fix incorrect reqclock during endstop homing 2025-12-14 15:31:09 -05:00
msgproto.py msgproto: Fix return type for create_command() 2024-11-13 14:24:03 -05:00
parsedump.py parsedump: Support running on both python2 and python3 2022-12-07 14:31:03 -05:00
pins.py pins: Improve pin description checks 2022-05-09 16:33:46 -04:00
queuelogger.py Revert "queuelogger: set thread name" 2025-08-01 13:08:03 -04:00
reactor.py reactor: Add support for temporarily disabling reactor pauses 2025-10-18 12:26:37 -04:00
serialhdl.py serialqueue: name the threads per mcu 2025-08-01 12:42:53 -04:00
stepper.py mcu: Remove max_stepper_error config parameter 2025-10-03 12:28:38 -04:00
toolhead.py toolhead: Don't report dummy extruders in extra_axes status report 2025-11-11 11:26:57 -05:00
util.py klippy: Report Linux version in log 2025-10-03 12:24:25 -04:00
webhooks.py gcode_macro: Verify nothing attempts to pause in a get_status() callback 2025-10-23 12:47:55 -04:00