Start of process to get UBL running again.
The wait_for_user change totally broke UBL. But there is stuff wrong now in the thermal code and/or LCD Panel code.
This commit is contained in:
parent
b47eaf14ae
commit
aec85ad45a
@ -199,6 +199,7 @@
|
|||||||
set_current_to_destination();
|
set_current_to_destination();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ubl_has_control_of_lcd_panel = true; // Take control of the LCD Panel!
|
||||||
if (turn_on_heaters()) // Turn on the heaters, leave the command if anything
|
if (turn_on_heaters()) // Turn on the heaters, leave the command if anything
|
||||||
goto LEAVE; // has gone wrong.
|
goto LEAVE; // has gone wrong.
|
||||||
|
|
||||||
@ -233,19 +234,30 @@
|
|||||||
move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], 0.0);
|
move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], 0.0);
|
||||||
move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], ooze_amount);
|
move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], ooze_amount);
|
||||||
|
|
||||||
ubl_has_control_of_lcd_panel++; // Take control of the LCD Panel!
|
ubl_has_control_of_lcd_panel = true; // Take control of the LCD Panel!
|
||||||
debug_current_and_destination((char*)"Starting G26 Mesh Validation Pattern.");
|
debug_current_and_destination((char*)"Starting G26 Mesh Validation Pattern.");
|
||||||
|
|
||||||
wait_for_user = true;
|
/**
|
||||||
|
* Declare and generate a sin() & cos() table to be used during the circle drawing. This will lighten
|
||||||
|
* the CPU load and make the arc drawing faster and more smooth
|
||||||
|
*/
|
||||||
|
float sin_table[360 / 30 + 1], cos_table[360 / 30 + 1];
|
||||||
|
for (i = 0; i <= 360 / 30; i++) {
|
||||||
|
cos_table[i] = SIZE_OF_INTERSECTION_CIRCLES * cos(RADIANS(valid_trig_angle(i * 30.0)));
|
||||||
|
sin_table[i] = SIZE_OF_INTERSECTION_CIRCLES * sin(RADIANS(valid_trig_angle(i * 30.0)));
|
||||||
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
|
||||||
if (!wait_for_user) { // Check if the user wants to stop the Mesh Validation
|
if (ubl_lcd_clicked()) { // Check if the user wants to stop the Mesh Validation
|
||||||
strcpy(lcd_status_message, "Mesh Validation Stopped."); // We can't do lcd_setstatus() without having it continue;
|
strcpy(lcd_status_message, "Mesh Validation Stopped."); // We can't do lcd_setstatus() without having it continue;
|
||||||
#if ENABLED(ULTRA_LCD)
|
#if ENABLED(ULTRA_LCD)
|
||||||
lcd_setstatus("Mesh Validation Stopped.", true);
|
lcd_setstatus("Mesh Validation Stopped.", true);
|
||||||
lcd_quick_feedback();
|
lcd_quick_feedback();
|
||||||
#endif
|
#endif
|
||||||
|
while (ubl_lcd_clicked()) { // Wait until the user is done pressing the
|
||||||
|
idle(); // Encoder Wheel if that is why we are leaving
|
||||||
|
}
|
||||||
goto LEAVE;
|
goto LEAVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -309,16 +321,6 @@
|
|||||||
end_angle = 360.0;
|
end_angle = 360.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Declare and generate a sin() & cos() table to be used during the circle drawing. This will lighten
|
|
||||||
* the CPU load and make the arc drawing faster and more smooth
|
|
||||||
*/
|
|
||||||
float sin_table[360 / 30 + 1], cos_table[360 / 30 + 1];
|
|
||||||
for (i = 0; i <= 360 / 30; i++) {
|
|
||||||
cos_table[i] = SIZE_OF_INTERSECTION_CIRCLES * cos(RADIANS(valid_trig_angle(i * 30.0)));
|
|
||||||
sin_table[i] = SIZE_OF_INTERSECTION_CIRCLES * sin(RADIANS(valid_trig_angle(i * 30.0)));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (tmp = start_angle; tmp < end_angle - 0.1; tmp += 30.0) {
|
for (tmp = start_angle; tmp < end_angle - 0.1; tmp += 30.0) {
|
||||||
int tmp_div_30 = tmp / 30.0;
|
int tmp_div_30 = tmp / 30.0;
|
||||||
if (tmp_div_30 < 0) tmp_div_30 += 360 / 30;
|
if (tmp_div_30 < 0) tmp_div_30 += 360 / 30;
|
||||||
@ -351,13 +353,16 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
print_line_from_here_to_there(x, y, layer_height, xe, ye, layer_height);
|
print_line_from_here_to_there(x, y, layer_height, xe, ye, layer_height);
|
||||||
}
|
|
||||||
lcd_init_counter++;
|
|
||||||
if (lcd_init_counter > 10) {
|
|
||||||
lcd_init_counter = 0;
|
|
||||||
lcd_init(); // Some people's LCD Displays are locking up. This might help them
|
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
// lcd_init_counter++;
|
||||||
|
// if (lcd_init_counter > 10) {
|
||||||
|
// lcd_init_counter = 0;
|
||||||
|
// lcd_init(); // Some people's LCD Displays are locking up. This might help them
|
||||||
|
// ubl_has_control_of_lcd_panel = true; // Make sure UBL still is controlling the LCD Panel
|
||||||
|
// }
|
||||||
|
|
||||||
|
// If the end point of the line is closer to the nozzle, we are going to
|
||||||
debug_current_and_destination((char*)"Looking for lines to connect.");
|
debug_current_and_destination((char*)"Looking for lines to connect.");
|
||||||
look_for_lines_to_connect();
|
look_for_lines_to_connect();
|
||||||
debug_current_and_destination((char*)"Done with line connect.");
|
debug_current_and_destination((char*)"Done with line connect.");
|
||||||
@ -365,21 +370,24 @@
|
|||||||
|
|
||||||
debug_current_and_destination((char*)"Done with current circle.");
|
debug_current_and_destination((char*)"Done with current circle.");
|
||||||
|
|
||||||
|
// If the end point of the line is closer to the nozzle, we are going to
|
||||||
|
|
||||||
}
|
}
|
||||||
while (location.x_index >= 0 && location.y_index >= 0);
|
while (location.x_index >= 0 && location.y_index >= 0);
|
||||||
|
|
||||||
LEAVE:
|
LEAVE:
|
||||||
|
|
||||||
wait_for_user = false;
|
while (ubl_lcd_clicked()) { // Wait until the user is done pressing the
|
||||||
|
idle(); // Encoder Wheel if that is why we are leaving
|
||||||
|
}
|
||||||
retract_filament();
|
retract_filament();
|
||||||
destination[Z_AXIS] = Z_CLEARANCE_BETWEEN_PROBES; // Raise the nozzle
|
destination[Z_AXIS] = Z_CLEARANCE_BETWEEN_PROBES; // Raise the nozzle
|
||||||
|
|
||||||
debug_current_and_destination((char*)"ready to do Z-Raise.");
|
debug_current_and_destination((char*)"ready to do Z-Raise.");
|
||||||
move_to( destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], 0); // Raise the nozzle
|
move_to( destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], 0); // Raise the nozzle
|
||||||
debug_current_and_destination((char*)"done doing Z-Raise.");
|
debug_current_and_destination((char*)"done doing Z-Raise.");
|
||||||
|
|
||||||
destination[X_AXIS] = x_pos; // Move back to the starting position
|
destination[X_AXIS] = x_pos; // Move back to the starting position
|
||||||
destination[Y_AXIS] = y_pos;
|
destination[Y_AXIS] = y_pos;
|
||||||
destination[Z_AXIS] = Z_CLEARANCE_BETWEEN_PROBES; // Keep the nozzle where it is
|
destination[Z_AXIS] = Z_CLEARANCE_BETWEEN_PROBES; // Keep the nozzle where it is
|
||||||
|
|
||||||
@ -538,6 +546,8 @@
|
|||||||
float feed_value;
|
float feed_value;
|
||||||
static float last_z = -999.99;
|
static float last_z = -999.99;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool has_xy_component = (x != current_position[X_AXIS] || y != current_position[Y_AXIS]); // Check if X or Y is involved in the movement.
|
bool has_xy_component = (x != current_position[X_AXIS] || y != current_position[Y_AXIS]); // Check if X or Y is involved in the movement.
|
||||||
|
|
||||||
if (g26_debug_flag) {
|
if (g26_debug_flag) {
|
||||||
@ -591,6 +601,7 @@
|
|||||||
|
|
||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
set_destination_to_current();
|
set_destination_to_current();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void retract_filament() {
|
void retract_filament() {
|
||||||
@ -658,16 +669,23 @@
|
|||||||
if (g26_debug_flag)
|
if (g26_debug_flag)
|
||||||
SERIAL_ECHOLNPGM(" filament retracted.");
|
SERIAL_ECHOLNPGM(" filament retracted.");
|
||||||
}
|
}
|
||||||
|
// If the end point of the line is closer to the nozzle, we are going to
|
||||||
move_to(sx, sy, sz, 0.0); // Get to the starting point with no extrusion
|
move_to(sx, sy, sz, 0.0); // Get to the starting point with no extrusion
|
||||||
|
|
||||||
|
// If the end point of the line is closer to the nozzle, we are going to
|
||||||
|
|
||||||
float e_pos_delta = Line_Length * g26_e_axis_feedrate * extrusion_multiplier;
|
float e_pos_delta = Line_Length * g26_e_axis_feedrate * extrusion_multiplier;
|
||||||
|
|
||||||
un_retract_filament();
|
un_retract_filament();
|
||||||
|
|
||||||
|
// If the end point of the line is closer to the nozzle, we are going to
|
||||||
if (g26_debug_flag) {
|
if (g26_debug_flag) {
|
||||||
SERIAL_ECHOLNPGM(" doing printing move.");
|
SERIAL_ECHOLNPGM(" doing printing move.");
|
||||||
debug_current_and_destination((char*)"doing final move_to() inside print_line_from_here_to_there()");
|
debug_current_and_destination((char*)"doing final move_to() inside print_line_from_here_to_there()");
|
||||||
}
|
}
|
||||||
move_to(ex, ey, ez, e_pos_delta); // Get to the ending point with an appropriate amount of extrusion
|
move_to(ex, ey, ez, e_pos_delta); // Get to the ending point with an appropriate amount of extrusion
|
||||||
|
|
||||||
|
// If the end point of the line is closer to the nozzle, we are going to
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -815,18 +833,18 @@
|
|||||||
lcd_setstatus("G26 Heating Bed.", true);
|
lcd_setstatus("G26 Heating Bed.", true);
|
||||||
lcd_quick_feedback();
|
lcd_quick_feedback();
|
||||||
#endif
|
#endif
|
||||||
ubl_has_control_of_lcd_panel++;
|
ubl_has_control_of_lcd_panel = true;
|
||||||
thermalManager.setTargetBed(bed_temp);
|
thermalManager.setTargetBed(bed_temp);
|
||||||
wait_for_user = true;
|
|
||||||
while (abs(thermalManager.degBed() - bed_temp) > 3) {
|
while (abs(thermalManager.degBed() - bed_temp) > 3) {
|
||||||
if (!wait_for_user) {
|
if (ubl_lcd_clicked()) {
|
||||||
strcpy(lcd_status_message, "Leaving G26"); // We can't do lcd_setstatus() without having it continue;
|
strcpy(lcd_status_message, "Leaving G26"); // We can't do lcd_setstatus() without having it continue;
|
||||||
lcd_setstatus("Leaving G26", true); // Now we do it right.
|
lcd_setstatus("Leaving G26", true); // Now we do it right.
|
||||||
|
while (ubl_lcd_clicked()) // Debounce Encoder Wheel
|
||||||
|
idle();
|
||||||
return UBL_ERR;
|
return UBL_ERR;
|
||||||
}
|
}
|
||||||
idle();
|
idle();
|
||||||
}
|
}
|
||||||
wait_for_user = false;
|
|
||||||
#if ENABLED(ULTRA_LCD)
|
#if ENABLED(ULTRA_LCD)
|
||||||
}
|
}
|
||||||
lcd_setstatus("G26 Heating Nozzle.", true);
|
lcd_setstatus("G26 Heating Nozzle.", true);
|
||||||
@ -836,16 +854,16 @@
|
|||||||
|
|
||||||
// Start heating the nozzle and wait for it to reach temperature.
|
// Start heating the nozzle and wait for it to reach temperature.
|
||||||
thermalManager.setTargetHotend(hotend_temp, 0);
|
thermalManager.setTargetHotend(hotend_temp, 0);
|
||||||
wait_for_user = true;
|
|
||||||
while (abs(thermalManager.degHotend(0) - hotend_temp) > 3) {
|
while (abs(thermalManager.degHotend(0) - hotend_temp) > 3) {
|
||||||
if (!wait_for_user) {
|
if (ubl_lcd_clicked()) {
|
||||||
strcpy(lcd_status_message, "Leaving G26"); // We can't do lcd_setstatus() without having it continue;
|
strcpy(lcd_status_message, "Leaving G26"); // We can't do lcd_setstatus() without having it continue;
|
||||||
lcd_setstatus("Leaving G26", true); // Now we do it right.
|
lcd_setstatus("Leaving G26", true); // Now we do it right.
|
||||||
|
while (ubl_lcd_clicked()) // Debounce Encoder Wheel
|
||||||
|
idle();
|
||||||
return UBL_ERR;
|
return UBL_ERR;
|
||||||
}
|
}
|
||||||
idle();
|
idle();
|
||||||
}
|
}
|
||||||
wait_for_user = false;
|
|
||||||
|
|
||||||
#if ENABLED(ULTRA_LCD)
|
#if ENABLED(ULTRA_LCD)
|
||||||
lcd_setstatus("", true);
|
lcd_setstatus("", true);
|
||||||
@ -869,9 +887,7 @@
|
|||||||
un_retract_filament(); // Lets make sure the G26 command doesn't think the filament is
|
un_retract_filament(); // Lets make sure the G26 command doesn't think the filament is
|
||||||
// retracted(). We are here because we want to prime the nozzle.
|
// retracted(). We are here because we want to prime the nozzle.
|
||||||
// So let's just unretract just to be sure.
|
// So let's just unretract just to be sure.
|
||||||
|
while (!ubl_lcd_clicked()) {
|
||||||
wait_for_user = true;
|
|
||||||
while (wait_for_user) {
|
|
||||||
chirp_at_user();
|
chirp_at_user();
|
||||||
destination[E_AXIS] += 0.25;
|
destination[E_AXIS] += 0.25;
|
||||||
#ifdef PREVENT_LENGTHY_EXTRUDE
|
#ifdef PREVENT_LENGTHY_EXTRUDE
|
||||||
@ -894,9 +910,10 @@
|
|||||||
|
|
||||||
strcpy(lcd_status_message, "Done Priming"); // We can't do lcd_setstatus() without having it continue;
|
strcpy(lcd_status_message, "Done Priming"); // We can't do lcd_setstatus() without having it continue;
|
||||||
// So... We cheat to get a message up.
|
// So... We cheat to get a message up.
|
||||||
|
while (ubl_lcd_clicked()) // Debounce Encoder Wheel
|
||||||
|
idle();
|
||||||
|
|
||||||
#if ENABLED(ULTRA_LCD)
|
#if ENABLED(ULTRA_LCD)
|
||||||
ubl_has_control_of_lcd_panel = false;
|
|
||||||
lcd_setstatus("Done Priming", true); // Now we do it right.
|
lcd_setstatus("Done Priming", true); // Now we do it right.
|
||||||
lcd_quick_feedback();
|
lcd_quick_feedback();
|
||||||
#endif
|
#endif
|
||||||
@ -917,6 +934,7 @@
|
|||||||
set_destination_to_current();
|
set_destination_to_current();
|
||||||
retract_filament();
|
retract_filament();
|
||||||
}
|
}
|
||||||
|
|
||||||
return UBL_OK;
|
return UBL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,8 +175,13 @@
|
|||||||
current_xi = ubl.get_cell_index_x(current_position[X_AXIS] + (MESH_X_DIST) / 2.0);
|
current_xi = ubl.get_cell_index_x(current_position[X_AXIS] + (MESH_X_DIST) / 2.0);
|
||||||
current_yi = ubl.get_cell_index_y(current_position[Y_AXIS] + (MESH_Y_DIST) / 2.0);
|
current_yi = ubl.get_cell_index_y(current_position[Y_AXIS] + (MESH_Y_DIST) / 2.0);
|
||||||
|
|
||||||
for (i = 0; i < UBL_MESH_NUM_X_POINTS - 1; i++)
|
for (i = 0; i < UBL_MESH_NUM_X_POINTS - 1; i++) {
|
||||||
SERIAL_ECHOPGM(" ");
|
SERIAL_ECHOPGM(" ");
|
||||||
|
#if TX_BUFFER_SIZE>0
|
||||||
|
MYSERIAL.flushTX();
|
||||||
|
#endif
|
||||||
|
delay(15);
|
||||||
|
}
|
||||||
|
|
||||||
SERIAL_ECHOPAIR("(", UBL_MESH_NUM_X_POINTS - 1);
|
SERIAL_ECHOPAIR("(", UBL_MESH_NUM_X_POINTS - 1);
|
||||||
SERIAL_ECHOPAIR(",", UBL_MESH_NUM_Y_POINTS - 1);
|
SERIAL_ECHOPAIR(",", UBL_MESH_NUM_Y_POINTS - 1);
|
||||||
@ -188,8 +193,13 @@
|
|||||||
SERIAL_ECHOPAIR(",", UBL_MESH_MAX_Y);
|
SERIAL_ECHOPAIR(",", UBL_MESH_MAX_Y);
|
||||||
SERIAL_CHAR(')');
|
SERIAL_CHAR(')');
|
||||||
|
|
||||||
for (i = 0; i < UBL_MESH_NUM_X_POINTS - 1; i++)
|
for (i = 0; i < UBL_MESH_NUM_X_POINTS - 1; i++) {
|
||||||
SERIAL_ECHOPGM(" ");
|
SERIAL_ECHOPGM(" ");
|
||||||
|
#if TX_BUFFER_SIZE>0
|
||||||
|
MYSERIAL.flushTX();
|
||||||
|
#endif
|
||||||
|
delay(15);
|
||||||
|
}
|
||||||
|
|
||||||
SERIAL_ECHOPAIR("(", UBL_MESH_MAX_X);
|
SERIAL_ECHOPAIR("(", UBL_MESH_MAX_X);
|
||||||
SERIAL_ECHOPAIR(",", UBL_MESH_MAX_Y);
|
SERIAL_ECHOPAIR(",", UBL_MESH_MAX_Y);
|
||||||
@ -205,13 +215,17 @@
|
|||||||
SERIAL_CHAR(i == current_xi && j == current_yi ? '[' : ' ');
|
SERIAL_CHAR(i == current_xi && j == current_yi ? '[' : ' ');
|
||||||
|
|
||||||
if (isnan(f))
|
if (isnan(f))
|
||||||
SERIAL_PROTOCOLPGM(" . ");
|
SERIAL_PROTOCOLPGM(" . ");
|
||||||
else {
|
else {
|
||||||
// if we don't do this, the columns won't line up nicely
|
// if we don't do this, the columns won't line up nicely
|
||||||
if (f >= 0.0) SERIAL_CHAR(' ');
|
if (f >= 0.0) SERIAL_CHAR(' ');
|
||||||
SERIAL_PROTOCOL_F(f, 5);
|
SERIAL_PROTOCOL_F(f, 3);
|
||||||
idle();
|
idle();
|
||||||
}
|
}
|
||||||
|
#if TX_BUFFER_SIZE>0
|
||||||
|
MYSERIAL.flushTX();
|
||||||
|
#endif
|
||||||
|
delay(15);
|
||||||
if (i == current_xi && j == current_yi) // is the nozzle here? if so, finish marking the number
|
if (i == current_xi && j == current_yi) // is the nozzle here? if so, finish marking the number
|
||||||
SERIAL_CHAR(']');
|
SERIAL_CHAR(']');
|
||||||
else
|
else
|
||||||
@ -231,27 +245,34 @@
|
|||||||
SERIAL_ECHOPAIR(",", int(UBL_MESH_MIN_Y));
|
SERIAL_ECHOPAIR(",", int(UBL_MESH_MIN_Y));
|
||||||
SERIAL_ECHOPGM(") ");
|
SERIAL_ECHOPGM(") ");
|
||||||
|
|
||||||
for (i = 0; i < UBL_MESH_NUM_X_POINTS - 1; i++)
|
for (i = 0; i < UBL_MESH_NUM_X_POINTS - 1; i++) {
|
||||||
SERIAL_ECHOPGM(" ");
|
SERIAL_ECHOPGM(" ");
|
||||||
|
#if TX_BUFFER_SIZE>0
|
||||||
|
MYSERIAL.flushTX();
|
||||||
|
#endif
|
||||||
|
delay(15);
|
||||||
|
}
|
||||||
|
|
||||||
SERIAL_ECHOPAIR("(", int(UBL_MESH_MAX_X));
|
SERIAL_ECHOPAIR("(", int(UBL_MESH_MAX_X));
|
||||||
SERIAL_ECHOPAIR(",", int(UBL_MESH_MIN_Y));
|
SERIAL_ECHOPAIR(",", int(UBL_MESH_MIN_Y));
|
||||||
SERIAL_CHAR(')');
|
SERIAL_CHAR(')');
|
||||||
// }
|
SERIAL_EOL;
|
||||||
|
|
||||||
SERIAL_ECHOPAIR("(", 0);
|
SERIAL_ECHOPAIR("(", 0);
|
||||||
SERIAL_ECHOPAIR(",", 0);
|
SERIAL_ECHOPAIR(",", 0);
|
||||||
SERIAL_ECHOPGM(") ");
|
SERIAL_ECHOPGM(") ");
|
||||||
|
|
||||||
for (i = 0; i < UBL_MESH_NUM_X_POINTS - 1; i++)
|
for (i = 0; i < UBL_MESH_NUM_X_POINTS - 1; i++) {
|
||||||
SERIAL_ECHOPGM(" ");
|
SERIAL_ECHOPGM(" ");
|
||||||
|
#if TX_BUFFER_SIZE>0
|
||||||
|
MYSERIAL.flushTX();
|
||||||
|
#endif
|
||||||
|
delay(15);
|
||||||
|
}
|
||||||
|
|
||||||
SERIAL_ECHOPAIR("(", UBL_MESH_NUM_X_POINTS-1);
|
SERIAL_ECHOPAIR("(", UBL_MESH_NUM_X_POINTS-1);
|
||||||
SERIAL_ECHOPAIR(",", 0);
|
SERIAL_ECHOPAIR(",", 0);
|
||||||
SERIAL_CHAR(')');
|
SERIAL_ECHOLNPGM(")");
|
||||||
|
|
||||||
SERIAL_CHAR(' ');
|
|
||||||
SERIAL_EOL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool unified_bed_leveling::sanity_check() {
|
bool unified_bed_leveling::sanity_check() {
|
||||||
|
@ -594,18 +594,18 @@
|
|||||||
save_ubl_active_state_and_disable();
|
save_ubl_active_state_and_disable();
|
||||||
//measured_z = probe_pt(x_pos + X_PROBE_OFFSET_FROM_EXTRUDER, y_pos + Y_PROBE_OFFSET_FROM_EXTRUDER, ProbeDeployAndStow, g29_verbose_level);
|
//measured_z = probe_pt(x_pos + X_PROBE_OFFSET_FROM_EXTRUDER, y_pos + Y_PROBE_OFFSET_FROM_EXTRUDER, ProbeDeployAndStow, g29_verbose_level);
|
||||||
|
|
||||||
|
ubl_has_control_of_lcd_panel = true;// Grab the LCD Hardware
|
||||||
measured_z = 1.5;
|
measured_z = 1.5;
|
||||||
do_blocking_move_to_z(measured_z); // Get close to the bed, but leave some space so we don't damage anything
|
do_blocking_move_to_z(measured_z); // Get close to the bed, but leave some space so we don't damage anything
|
||||||
// The user is not going to be locking in a new Z-Offset very often so
|
// The user is not going to be locking in a new Z-Offset very often so
|
||||||
// it won't be that painful to spin the Encoder Wheel for 1.5mm
|
// it won't be that painful to spin the Encoder Wheel for 1.5mm
|
||||||
lcd_implementation_clear();
|
lcd_implementation_clear();
|
||||||
lcd_z_offset_edit_setup(measured_z);
|
lcd_z_offset_edit_setup(measured_z);
|
||||||
wait_for_user = true;
|
|
||||||
do {
|
do {
|
||||||
measured_z = lcd_z_offset_edit();
|
measured_z = lcd_z_offset_edit();
|
||||||
idle();
|
idle();
|
||||||
do_blocking_move_to_z(measured_z);
|
do_blocking_move_to_z(measured_z);
|
||||||
} while (wait_for_user);
|
} while (!ubl_lcd_clicked());
|
||||||
|
|
||||||
ubl_has_control_of_lcd_panel++; // There is a race condition for the Encoder Wheel getting clicked.
|
ubl_has_control_of_lcd_panel++; // There is a race condition for the Encoder Wheel getting clicked.
|
||||||
// It could get detected in lcd_mesh_edit (actually _lcd_mesh_fine_tune)
|
// It could get detected in lcd_mesh_edit (actually _lcd_mesh_fine_tune)
|
||||||
@ -707,14 +707,17 @@
|
|||||||
save_ubl_active_state_and_disable(); // we don't do bed level correction because we want the raw data when we probe
|
save_ubl_active_state_and_disable(); // we don't do bed level correction because we want the raw data when we probe
|
||||||
DEPLOY_PROBE();
|
DEPLOY_PROBE();
|
||||||
|
|
||||||
wait_for_user = true;
|
|
||||||
do {
|
do {
|
||||||
if (!wait_for_user) {
|
if (ubl_lcd_clicked()) {
|
||||||
SERIAL_PROTOCOLLNPGM("\nMesh only partially populated.");
|
SERIAL_PROTOCOLLNPGM("\nMesh only partially populated.\n");
|
||||||
lcd_quick_feedback();
|
lcd_quick_feedback();
|
||||||
ubl_has_control_of_lcd_panel = false;
|
|
||||||
STOW_PROBE();
|
STOW_PROBE();
|
||||||
|
while (ubl_lcd_clicked() ) {
|
||||||
|
idle();
|
||||||
|
}
|
||||||
|
ubl_has_control_of_lcd_panel = false;
|
||||||
restore_ubl_active_state_and_leave();
|
restore_ubl_active_state_and_leave();
|
||||||
|
delay(50); // Debounce the Encoder wheel
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -737,7 +740,6 @@
|
|||||||
|
|
||||||
LEAVE:
|
LEAVE:
|
||||||
|
|
||||||
wait_for_user = false;
|
|
||||||
STOW_PROBE();
|
STOW_PROBE();
|
||||||
restore_ubl_active_state_and_leave();
|
restore_ubl_active_state_and_leave();
|
||||||
|
|
||||||
@ -813,8 +815,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
float use_encoder_wheel_to_measure_point() {
|
float use_encoder_wheel_to_measure_point() {
|
||||||
wait_for_user = true;
|
while (!ubl_lcd_clicked()) { // we need the loop to move the nozzle based on the encoder wheel here!
|
||||||
while (wait_for_user) { // we need the loop to move the nozzle based on the encoder wheel here!
|
|
||||||
idle();
|
idle();
|
||||||
if (ubl_encoderDiff) {
|
if (ubl_encoderDiff) {
|
||||||
do_blocking_move_to_z(current_position[Z_AXIS] + 0.01 * float(ubl_encoderDiff));
|
do_blocking_move_to_z(current_position[Z_AXIS] + 0.01 * float(ubl_encoderDiff));
|
||||||
@ -891,8 +892,8 @@
|
|||||||
last_x = xProbe;
|
last_x = xProbe;
|
||||||
last_y = yProbe;
|
last_y = yProbe;
|
||||||
|
|
||||||
wait_for_user = true;
|
ubl_has_control_of_lcd_panel = true;
|
||||||
while (wait_for_user) { // we need the loop to move the nozzle based on the encoder wheel here!
|
while (!ubl_lcd_clicked) { // we need the loop to move the nozzle based on the encoder wheel here!
|
||||||
idle();
|
idle();
|
||||||
if (ubl_encoderDiff) {
|
if (ubl_encoderDiff) {
|
||||||
do_blocking_move_to_z(current_position[Z_AXIS] + float(ubl_encoderDiff) / 100.0);
|
do_blocking_move_to_z(current_position[Z_AXIS] + float(ubl_encoderDiff) / 100.0);
|
||||||
|
Loading…
Reference in New Issue
Block a user