|
|
@ -1395,8 +1395,7 @@ bool get_target_extruder_from_command(int code) {
|
|
|
|
SERIAL_ECHO_START;
|
|
|
|
SERIAL_ECHO_START;
|
|
|
|
SERIAL_CHAR('M');
|
|
|
|
SERIAL_CHAR('M');
|
|
|
|
SERIAL_ECHO(code);
|
|
|
|
SERIAL_ECHO(code);
|
|
|
|
SERIAL_ECHOPAIR(" " MSG_INVALID_EXTRUDER " ", code_value_byte());
|
|
|
|
SERIAL_ECHOLNPAIR(" " MSG_INVALID_EXTRUDER " ", code_value_byte());
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
target_extruder = code_value_byte();
|
|
|
|
target_extruder = code_value_byte();
|
|
|
@ -1504,8 +1503,7 @@ void update_software_endstops(AxisEnum axis) {
|
|
|
|
SERIAL_ECHOPAIR(" axis:\n home_offset = ", home_offset[axis]);
|
|
|
|
SERIAL_ECHOPAIR(" axis:\n home_offset = ", home_offset[axis]);
|
|
|
|
SERIAL_ECHOPAIR("\n position_shift = ", position_shift[axis]);
|
|
|
|
SERIAL_ECHOPAIR("\n position_shift = ", position_shift[axis]);
|
|
|
|
SERIAL_ECHOPAIR("\n soft_endstop_min = ", soft_endstop_min[axis]);
|
|
|
|
SERIAL_ECHOPAIR("\n soft_endstop_min = ", soft_endstop_min[axis]);
|
|
|
|
SERIAL_ECHOPAIR("\n soft_endstop_max = ", soft_endstop_max[axis]);
|
|
|
|
SERIAL_ECHOLNPAIR("\n soft_endstop_max = ", soft_endstop_max[axis]);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
@ -1586,23 +1584,42 @@ static void set_axis_is_at_home(AxisEnum axis) {
|
|
|
|
current_position[axis] = LOGICAL_POSITION(base_home_pos(axis), axis);
|
|
|
|
current_position[axis] = LOGICAL_POSITION(base_home_pos(axis), axis);
|
|
|
|
update_software_endstops(axis);
|
|
|
|
update_software_endstops(axis);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (axis == Z_AXIS) {
|
|
|
|
|
|
|
|
#if HAS_BED_PROBE && Z_HOME_DIR < 0
|
|
|
|
|
|
|
|
#if DISABLED(Z_MIN_PROBE_ENDSTOP)
|
|
|
|
|
|
|
|
current_position[Z_AXIS] -= zprobe_zoffset;
|
|
|
|
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
|
|
|
|
SERIAL_ECHOLNPGM("*** Z HOMED WITH PROBE (Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) ***");
|
|
|
|
|
|
|
|
SERIAL_ECHOLNPAIR("> zprobe_zoffset = ", zprobe_zoffset);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#elif ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
|
|
|
|
if (DEBUGGING(LEVELING))
|
|
|
|
|
|
|
|
SERIAL_ECHOLNPGM("*** Z HOMED TO ENDSTOP (Z_MIN_PROBE_ENDSTOP) ***");
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if HAS_BED_PROBE && Z_HOME_DIR < 0 && DISABLED(Z_MIN_PROBE_ENDSTOP)
|
|
|
|
#if HAS_BED_PROBE && Z_HOME_DIR < 0 && DISABLED(Z_MIN_PROBE_ENDSTOP)
|
|
|
|
if (axis == Z_AXIS) {
|
|
|
|
if (axis == Z_AXIS) {
|
|
|
|
current_position[Z_AXIS] -= zprobe_zoffset;
|
|
|
|
current_position[Z_AXIS] -= zprobe_zoffset;
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
SERIAL_ECHOPAIR("> zprobe_zoffset = ", zprobe_zoffset);
|
|
|
|
SERIAL_ECHOLNPGM("*** Z HOMED WITH PROBE (Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) ***");
|
|
|
|
SERIAL_EOL;
|
|
|
|
SERIAL_ECHOLNPAIR("> zprobe_zoffset = ", zprobe_zoffset);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#elif HAS_BED_PROBE && Z_HOME_DIR < 0 && ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
|
|
|
|
if (DEBUGGING(LEVELING))
|
|
|
|
|
|
|
|
SERIAL_ECHOLNPGM("*** Z HOMED TO ENDSTOP (Z_MIN_PROBE_ENDSTOP) ***");
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
SERIAL_ECHOPAIR("> home_offset[", axis_codes[axis]);
|
|
|
|
SERIAL_ECHOPAIR("> home_offset[", axis_codes[axis]);
|
|
|
|
SERIAL_ECHOPAIR("] = ", home_offset[axis]);
|
|
|
|
SERIAL_ECHOLNPAIR("] = ", home_offset[axis]);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
DEBUG_POS("", current_position);
|
|
|
|
DEBUG_POS("", current_position);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -2054,8 +2071,7 @@ static void clean_up_after_endstop_or_probe_move() {
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
DEBUG_POS("set_probe_deployed", current_position);
|
|
|
|
DEBUG_POS("set_probe_deployed", current_position);
|
|
|
|
SERIAL_ECHOPAIR("deploy: ", deploy);
|
|
|
|
SERIAL_ECHOLNPAIR("deploy: ", deploy);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
@ -3029,10 +3045,8 @@ inline void gcode_G28() {
|
|
|
|
if (destination[Z_AXIS] > current_position[Z_AXIS]) {
|
|
|
|
if (destination[Z_AXIS] > current_position[Z_AXIS]) {
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
if (DEBUGGING(LEVELING))
|
|
|
|
SERIAL_ECHOPAIR("Raise Z (before homing) to ", destination[Z_AXIS]);
|
|
|
|
SERIAL_ECHOLNPAIR("Raise Z (before homing) to ", destination[Z_AXIS]);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
do_blocking_move_to_z(destination[Z_AXIS]);
|
|
|
|
do_blocking_move_to_z(destination[Z_AXIS]);
|
|
|
@ -3842,8 +3856,7 @@ inline void gcode_G28() {
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
SERIAL_ECHOPAIR("> BEFORE apply_rotation_xyz > stepper_z = ", stepper_z);
|
|
|
|
SERIAL_ECHOPAIR("> BEFORE apply_rotation_xyz > stepper_z = ", stepper_z);
|
|
|
|
SERIAL_ECHOPAIR(" ... z_tmp = ", z_tmp);
|
|
|
|
SERIAL_ECHOLNPAIR(" ... z_tmp = ", z_tmp);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
@ -3851,10 +3864,8 @@ inline void gcode_G28() {
|
|
|
|
apply_rotation_xyz(planner.bed_level_matrix, x_tmp, y_tmp, z_tmp);
|
|
|
|
apply_rotation_xyz(planner.bed_level_matrix, x_tmp, y_tmp, z_tmp);
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
if (DEBUGGING(LEVELING))
|
|
|
|
SERIAL_ECHOPAIR("> AFTER apply_rotation_xyz > z_tmp = ", z_tmp);
|
|
|
|
SERIAL_ECHOLNPAIR("> AFTER apply_rotation_xyz > z_tmp = ", z_tmp);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
// Adjust the current Z and send it to the planner.
|
|
|
|
// Adjust the current Z and send it to the planner.
|
|
|
@ -4380,8 +4391,7 @@ inline void gcode_M42() {
|
|
|
|
Y_current /= 1.25;
|
|
|
|
Y_current /= 1.25;
|
|
|
|
if (verbose_level > 3) {
|
|
|
|
if (verbose_level > 3) {
|
|
|
|
SERIAL_ECHOPAIR("Pulling point towards center:", X_current);
|
|
|
|
SERIAL_ECHOPAIR("Pulling point towards center:", X_current);
|
|
|
|
SERIAL_ECHOPAIR(", ", Y_current);
|
|
|
|
SERIAL_ECHOLNPAIR(", ", Y_current);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -4389,8 +4399,7 @@ inline void gcode_M42() {
|
|
|
|
SERIAL_PROTOCOLPGM("Going to:");
|
|
|
|
SERIAL_PROTOCOLPGM("Going to:");
|
|
|
|
SERIAL_ECHOPAIR(" X", X_current);
|
|
|
|
SERIAL_ECHOPAIR(" X", X_current);
|
|
|
|
SERIAL_ECHOPAIR(" Y", Y_current);
|
|
|
|
SERIAL_ECHOPAIR(" Y", Y_current);
|
|
|
|
SERIAL_ECHOPAIR(" Z", current_position[Z_AXIS]);
|
|
|
|
SERIAL_ECHOLNPAIR(" Z", current_position[Z_AXIS]);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
do_blocking_move_to_xy(X_current, Y_current);
|
|
|
|
do_blocking_move_to_xy(X_current, Y_current);
|
|
|
|
} // n_legs loop
|
|
|
|
} // n_legs loop
|
|
|
@ -4948,8 +4957,7 @@ inline void gcode_M111() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
SERIAL_ECHO_START;
|
|
|
|
SERIAL_ECHO_START;
|
|
|
|
SERIAL_ECHOPAIR("M113 S", (unsigned long)host_keepalive_interval);
|
|
|
|
SERIAL_ECHOLNPAIR("M113 S", (unsigned long)host_keepalive_interval);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -5399,23 +5407,19 @@ inline void gcode_M203() {
|
|
|
|
inline void gcode_M204() {
|
|
|
|
inline void gcode_M204() {
|
|
|
|
if (code_seen('S')) { // Kept for legacy compatibility. Should NOT BE USED for new developments.
|
|
|
|
if (code_seen('S')) { // Kept for legacy compatibility. Should NOT BE USED for new developments.
|
|
|
|
planner.travel_acceleration = planner.acceleration = code_value_linear_units();
|
|
|
|
planner.travel_acceleration = planner.acceleration = code_value_linear_units();
|
|
|
|
SERIAL_ECHOPAIR("Setting Print and Travel Acceleration: ", planner.acceleration);
|
|
|
|
SERIAL_ECHOLNPAIR("Setting Print and Travel Acceleration: ", planner.acceleration);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (code_seen('P')) {
|
|
|
|
if (code_seen('P')) {
|
|
|
|
planner.acceleration = code_value_linear_units();
|
|
|
|
planner.acceleration = code_value_linear_units();
|
|
|
|
SERIAL_ECHOPAIR("Setting Print Acceleration: ", planner.acceleration);
|
|
|
|
SERIAL_ECHOLNPAIR("Setting Print Acceleration: ", planner.acceleration);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (code_seen('R')) {
|
|
|
|
if (code_seen('R')) {
|
|
|
|
planner.retract_acceleration = code_value_linear_units();
|
|
|
|
planner.retract_acceleration = code_value_linear_units();
|
|
|
|
SERIAL_ECHOPAIR("Setting Retract Acceleration: ", planner.retract_acceleration);
|
|
|
|
SERIAL_ECHOLNPAIR("Setting Retract Acceleration: ", planner.retract_acceleration);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (code_seen('T')) {
|
|
|
|
if (code_seen('T')) {
|
|
|
|
planner.travel_acceleration = code_value_linear_units();
|
|
|
|
planner.travel_acceleration = code_value_linear_units();
|
|
|
|
SERIAL_ECHOPAIR("Setting Travel Acceleration: ", planner.travel_acceleration);
|
|
|
|
SERIAL_ECHOLNPAIR("Setting Travel Acceleration: ", planner.travel_acceleration);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -5491,8 +5495,7 @@ inline void gcode_M206() {
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
SERIAL_ECHOPGM("endstop_adj[");
|
|
|
|
SERIAL_ECHOPGM("endstop_adj[");
|
|
|
|
SERIAL_ECHO(axis_codes[i]);
|
|
|
|
SERIAL_ECHO(axis_codes[i]);
|
|
|
|
SERIAL_ECHOPAIR("] = ", endstop_adj[i]);
|
|
|
|
SERIAL_ECHOLNPAIR("] = ", endstop_adj[i]);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -5511,8 +5514,7 @@ inline void gcode_M206() {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
inline void gcode_M666() {
|
|
|
|
inline void gcode_M666() {
|
|
|
|
if (code_seen('Z')) z_endstop_adj = code_value_axis_units(Z_AXIS);
|
|
|
|
if (code_seen('Z')) z_endstop_adj = code_value_axis_units(Z_AXIS);
|
|
|
|
SERIAL_ECHOPAIR("Z Endstop Adjustment set to (mm):", z_endstop_adj);
|
|
|
|
SERIAL_ECHOLNPAIR("Z Endstop Adjustment set to (mm):", z_endstop_adj);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endif // !DELTA && Z_DUAL_ENDSTOPS
|
|
|
|
#endif // !DELTA && Z_DUAL_ENDSTOPS
|
|
|
@ -5587,8 +5589,7 @@ inline void gcode_M211() {
|
|
|
|
SERIAL_ECHOPGM(" " MSG_SOFT_MAX ": ");
|
|
|
|
SERIAL_ECHOPGM(" " MSG_SOFT_MAX ": ");
|
|
|
|
SERIAL_ECHOPAIR( MSG_X, soft_endstop_max[X_AXIS]);
|
|
|
|
SERIAL_ECHOPAIR( MSG_X, soft_endstop_max[X_AXIS]);
|
|
|
|
SERIAL_ECHOPAIR(" " MSG_Y, soft_endstop_max[Y_AXIS]);
|
|
|
|
SERIAL_ECHOPAIR(" " MSG_Y, soft_endstop_max[Y_AXIS]);
|
|
|
|
SERIAL_ECHOPAIR(" " MSG_Z, soft_endstop_max[Z_AXIS]);
|
|
|
|
SERIAL_ECHOLNPAIR(" " MSG_Z, soft_endstop_max[Z_AXIS]);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if HOTENDS > 1
|
|
|
|
#if HOTENDS > 1
|
|
|
@ -6822,8 +6823,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
SERIAL_ECHOPAIR("Active extruder parked: ", active_extruder_parked ? "yes" : "no");
|
|
|
|
SERIAL_ECHOLNPAIR("Active extruder parked: ", active_extruder_parked ? "yes" : "no");
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
DEBUG_POS("New extruder (parked)", current_position);
|
|
|
|
DEBUG_POS("New extruder (parked)", current_position);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -6932,10 +6932,8 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
|
|
|
ypos = RAW_CURRENT_POSITION(Y_AXIS);
|
|
|
|
ypos = RAW_CURRENT_POSITION(Y_AXIS);
|
|
|
|
current_position[Z_AXIS] += mbl.get_z(xpos + xydiff[X_AXIS], ypos + xydiff[Y_AXIS]) - mbl.get_z(xpos, ypos);
|
|
|
|
current_position[Z_AXIS] += mbl.get_z(xpos + xydiff[X_AXIS], ypos + xydiff[Y_AXIS]) - mbl.get_z(xpos, ypos);
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
if (DEBUGGING(LEVELING))
|
|
|
|
SERIAL_ECHOPAIR(" after: ", current_position[Z_AXIS]);
|
|
|
|
SERIAL_ECHOLNPAIR(" after: ", current_position[Z_AXIS]);
|
|
|
|
SERIAL_EOL;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|