Initialize current_position correctly during startup
Just after setting up the w2m matrix, call "clamp_to_software_endstops" on the current_position (initially [0,0,0]) to move it to the effective minimal position, which is usually [0,0,non-zero] due to MIN_Z and the negative probe offset. This is required to calculate correctly the first relative move: planning X+10 would unexpectedly calculate a Z shift otherwise.
This commit is contained in:
parent
4774b44e21
commit
f1618bfbd6
|
|
@ -1310,10 +1310,17 @@ void setup()
|
||||||
setup_photpin();
|
setup_photpin();
|
||||||
|
|
||||||
servo_init();
|
servo_init();
|
||||||
|
|
||||||
// Reset the machine correction matrix.
|
// Reset the machine correction matrix.
|
||||||
// It does not make sense to load the correction matrix until the machine is homed.
|
// It does not make sense to load the correction matrix until the machine is homed.
|
||||||
world2machine_reset();
|
world2machine_reset();
|
||||||
|
|
||||||
|
// Initialize current_position accounting for software endstops to
|
||||||
|
// avoid unexpected initial shifts on the first move
|
||||||
|
clamp_to_software_endstops(current_position);
|
||||||
|
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS],
|
||||||
|
current_position[Z_AXIS], current_position[E_AXIS]);
|
||||||
|
|
||||||
#ifdef FILAMENT_SENSOR
|
#ifdef FILAMENT_SENSOR
|
||||||
fsensor_init();
|
fsensor_init();
|
||||||
#endif //FILAMENT_SENSOR
|
#endif //FILAMENT_SENSOR
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue