Extend M420
to print state and, with V
, the matrix / mesh
This commit is contained in:
parent
d04258753b
commit
32e65dc429
|
@ -2423,7 +2423,7 @@ static void clean_up_after_endstop_or_probe_move() {
|
|||
/**
|
||||
* Print calibration results for plotting or manual frame adjustment.
|
||||
*/
|
||||
static void print_bed_level() {
|
||||
static void print_bilinear_leveling_grid() {
|
||||
SERIAL_ECHOPGM("Bilinear Leveling Grid:\n ");
|
||||
for (uint8_t x = 0; x < ABL_GRID_MAX_POINTS_X; x++) {
|
||||
SERIAL_PROTOCOLPGM(" ");
|
||||
|
@ -3701,6 +3701,20 @@ inline void gcode_G28() {
|
|||
// Save 130 bytes with non-duplication of PSTR
|
||||
void say_not_entered() { SERIAL_PROTOCOLLNPGM(" not entered."); }
|
||||
|
||||
void mbl_mesh_report() {
|
||||
SERIAL_PROTOCOLLNPGM("Num X,Y: " STRINGIFY(MESH_NUM_X_POINTS) "," STRINGIFY(MESH_NUM_Y_POINTS));
|
||||
SERIAL_PROTOCOLLNPGM("Z search height: " STRINGIFY(MESH_HOME_SEARCH_Z));
|
||||
SERIAL_PROTOCOLPGM("Z offset: "); SERIAL_PROTOCOL_F(mbl.z_offset, 5);
|
||||
SERIAL_PROTOCOLLNPGM("\nMeasured points:");
|
||||
for (uint8_t py = 0; py < MESH_NUM_Y_POINTS; py++) {
|
||||
for (uint8_t px = 0; px < MESH_NUM_X_POINTS; px++) {
|
||||
SERIAL_PROTOCOLPGM(" ");
|
||||
SERIAL_PROTOCOL_F(mbl.z_values[py][px], 5);
|
||||
}
|
||||
SERIAL_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* G29: Mesh-based Z probe, probes a grid and produces a
|
||||
* mesh to compensate for variable bed height
|
||||
|
@ -3736,21 +3750,11 @@ inline void gcode_G28() {
|
|||
switch (state) {
|
||||
case MeshReport:
|
||||
if (mbl.has_mesh()) {
|
||||
SERIAL_PROTOCOLPAIR("State: ", mbl.active() ? MSG_ON : MSG_OFF);
|
||||
SERIAL_PROTOCOLLNPGM("\nNum X,Y: " STRINGIFY(MESH_NUM_X_POINTS) "," STRINGIFY(MESH_NUM_Y_POINTS));
|
||||
SERIAL_PROTOCOLLNPGM("Z search height: " STRINGIFY(MESH_HOME_SEARCH_Z));
|
||||
SERIAL_PROTOCOLPGM("Z offset: "); SERIAL_PROTOCOL_F(mbl.z_offset, 5);
|
||||
SERIAL_PROTOCOLLNPGM("\nMeasured points:");
|
||||
for (py = 0; py < MESH_NUM_Y_POINTS; py++) {
|
||||
for (px = 0; px < MESH_NUM_X_POINTS; px++) {
|
||||
SERIAL_PROTOCOLPGM(" ");
|
||||
SERIAL_PROTOCOL_F(mbl.z_values[py][px], 5);
|
||||
}
|
||||
SERIAL_EOL;
|
||||
}
|
||||
SERIAL_PROTOCOLLNPAIR("State: ", mbl.active() ? MSG_ON : MSG_OFF);
|
||||
mbl_mesh_report();
|
||||
}
|
||||
else
|
||||
SERIAL_PROTOCOLLNPGM("Mesh bed leveling not active.");
|
||||
SERIAL_PROTOCOLLNPGM("Mesh bed leveling has no data.");
|
||||
break;
|
||||
|
||||
case MeshStart:
|
||||
|
@ -4220,7 +4224,7 @@ inline void gcode_G28() {
|
|||
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
|
||||
if (!dryrun) extrapolate_unprobed_bed_level();
|
||||
print_bed_level();
|
||||
print_bilinear_leveling_grid();
|
||||
|
||||
#if ENABLED(ABL_BILINEAR_SUBDIVISION)
|
||||
bed_level_virt_prepare();
|
||||
|
@ -7012,6 +7016,7 @@ void quickstop_stepper() {
|
|||
*
|
||||
* S[bool] Turns leveling on or off
|
||||
* Z[height] Sets the Z fade height (0 or none to disable)
|
||||
* V[bool] Verbose - Print the levelng grid
|
||||
*/
|
||||
inline void gcode_M420() {
|
||||
bool to_enable = false;
|
||||
|
@ -7032,9 +7037,33 @@ void quickstop_stepper() {
|
|||
planner.abl_enabled
|
||||
#endif
|
||||
) ) {
|
||||
to_enable = false;
|
||||
SERIAL_ERROR_START;
|
||||
SERIAL_ERRORLNPGM(MSG_ERR_M420_FAILED);
|
||||
}
|
||||
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHOLNPAIR("Bed Leveling ", to_enable ? MSG_ON : MSG_OFF);
|
||||
|
||||
// V to print the matrix or mesh
|
||||
if (code_seen('V')) {
|
||||
#if ABL_PLANAR
|
||||
planner.bed_level_matrix.debug("Bed Level Correction Matrix:");
|
||||
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
if (bilinear_grid_spacing[X_AXIS]) {
|
||||
print_bilinear_leveling_grid();
|
||||
#if ENABLED(ABL_BILINEAR_SUBDIVISION)
|
||||
bed_level_virt_print();
|
||||
#endif
|
||||
}
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
if (mbl.has_mesh()) {
|
||||
SERIAL_ECHOLNPGM("Mesh Bed Level data:");
|
||||
mbl_mesh_report();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue