naikymen / klipper-for-cnc

Fork of the Klipper 3D-printer firmware, plus features for more general CNC.
https://klipper.discourse.group/t/klipper-for-cnc-initiatives-and-projects-list/5698
GNU General Public License v3.0
66 stars 9 forks source link

Absolute extruder position mismatch after homing #5

Closed naikymen closed 1 year ago

naikymen commented 1 year ago

Homing the extruder axis does not reset the absolute coordinate system for M82 moves, for some reason.

naikymen commented 1 year ago

After restart, 20 mm below the switch: GET_POSITION

mcu: stepper_x:-2410 stepper_y:-5412 stepper_y1:-5412 stepper_z:8952
stepper: stepper_x:0.000000 stepper_y:0.000000 stepper_y1:0.000000 stepper_z:0.000000
kinematic: X:0.000000 Y:0.000000 Z:0.000000
toolhead: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000
gcode: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000
gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000
gcode homing: X:0.000000 Y:0.000000 Z:0.000000
naikymen commented 1 year ago

GET_POSITION output after HOME_T1

mcu: stepper_x:-2410 stepper_y:-5412 stepper_y1:-5412 stepper_z:8952
stepper: stepper_x:0.000000 stepper_y:0.000000 stepper_y1:0.000000 stepper_z:0.000000
kinematic: X:0.000000 Y:0.000000 Z:0.000000
toolhead: X:0.000000 Y:0.000000 Z:0.000000 E:-0.000625
gcode: X:0.000000 Y:0.000000 Z:0.000000 E:-0.000625
gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000
gcode homing: X:0.000000 Y:0.000000 Z:0.000000
naikymen commented 1 year ago
M82
G0 E20
GET_POSITION
mcu: stepper_x:-2410 stepper_y:-5412 stepper_y1:-5412 stepper_z:8952
stepper: stepper_x:0.000000 stepper_y:0.000000 stepper_y1:0.000000 stepper_z:0.000000
kinematic: X:0.000000 Y:0.000000 Z:0.000000
toolhead: X:0.000000 Y:0.000000 Z:0.000000 E:20.000000
gcode: X:0.000000 Y:0.000000 Z:0.000000 E:20.000000
gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000
gcode homing: X:0.000000 Y:0.000000 Z:0.000000
naikymen commented 1 year ago

El problema no parecia reproducible hasta que corrí el gcode de prueba en una herramienta, y sin hacer homing en la primera herramienta, lo corrí en la otra tool.

Gcode de prueba: cambiar H_T_P20 por H_T_P200 despues de la primera corrida.

M83 ; Ensure relative E motion
H_T_P20 ; Homed P200 tool(s)
G0 E20.0 ; Tool homing retraction
G0 E-16.24188628232721 F12000
G0 E0.4662742473395371 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E-15.620187285874495 F12000
G0 E3.1862073568201703 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E-15.620187285874495 F12000
G0 E3.1862073568201703 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E-15.620187285874495 F12000
G0 E3.1862073568201703 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E-15.620187285874495 F12000
G0 E3.1862073568201703 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
G0 E-9.403197321347331 F12000
G0 E3.1862073568201703 F12000
G0 E3.108494982263581 F12000
G0 E3.108494982263581 F12000
 ; Zeroing axis.
M82
G0 E20.0
M83
naikymen commented 1 year ago

Evidentemente es un problema de que al cambiar el extrusor algo no se "cambia" del sistema de coordenadas.

Tengo que debuguear más esto, quizás sea upstream.

Como ejemplo minimo:

RESTART
M83
H_T_P20
H_T_P200

T0
M82
G0 E10

T1
M82
G0 E10

T0
M82
G0 E10 ; should not move but it does!
naikymen commented 1 year ago

Ejemplo minimo para klipper master:

RESTART
T0
M82
G0 E10

T1
M82
G0 E10

T0
M82
G0 E10 ; should not move but it does!
naikymen commented 1 year ago

Discussion at: https://klipper.discourse.group/t/bug-extruder-re-activation-applies-the-incorrect-coordinate-system/6558

Deleted the automatic "G92 E0" after a toolchange restore.