Skip to content

Commit

Permalink
Fix dipping on DELTA robots during G29
Browse files Browse the repository at this point in the history
- Addressing MarlinFirmware#3689, et. al.
  • Loading branch information
thinkyhead authored and CONSULitAS committed Aug 18, 2016
1 parent 46f7e78 commit cbb7c57
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions Marlin/Marlin_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,7 @@ static uint8_t target_extruder;
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
int xy_travel_speed = XY_TRAVEL_SPEED;
float zprobe_zoffset = Z_PROBE_OFFSET_FROM_EXTRUDER;
bool bed_leveling_in_progress = false;
#endif

#if ENABLED(Z_DUAL_ENDSTOPS) && DISABLED(DELTA)
Expand Down Expand Up @@ -1634,7 +1635,12 @@ static void setup_for_endstop_move() {
destination[X_AXIS] = x;
destination[Y_AXIS] = y;
destination[Z_AXIS] = z;
prepare_move_raw(); // this will also set_current_to_destination

if (x == current_position[X_AXIS] && y == current_position[Y_AXIS])
prepare_move_raw(); // this will also set_current_to_destination
else
prepare_move(); // this will also set_current_to_destination

stepper.synchronize();

#else
Expand Down Expand Up @@ -3240,6 +3246,8 @@ inline void gcode_G28() {

feedrate = homing_feedrate[Z_AXIS];

bed_leveling_in_progress = true;

#if ENABLED(AUTO_BED_LEVELING_GRID)

// probe at the points of a lattice grid
Expand Down Expand Up @@ -3587,15 +3595,17 @@ inline void gcode_G28() {
stepper.synchronize();
#endif

KEEPALIVE_STATE(IN_HANDLER);

#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) {
SERIAL_ECHOLNPGM("<<< gcode_G29");
}
#endif

bed_leveling_in_progress = false;

report_current_position();

KEEPALIVE_STATE(IN_HANDLER);
}

#if DISABLED(Z_PROBE_SLED) // could be avoided
Expand Down Expand Up @@ -7318,7 +7328,7 @@ void mesh_buffer_line(float x, float y, float z, const float e, float feed_rate,
calculate_delta(target);

#if ENABLED(AUTO_BED_LEVELING_FEATURE)
adjust_delta(target);
if (!bed_leveling_in_progress) adjust_delta(target);
#endif

//DEBUG_POS("prepare_move_delta", target);
Expand Down

0 comments on commit cbb7c57

Please sign in to comment.