| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -207,7 +207,7 @@ CrealityDWINClass CrealityDWIN;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      void manual_value_update(bool undefined=false) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        sprintf_P(cmd, PSTR("M421 I%i J%i Z%s %s"), mesh_x, mesh_y, dtostrf(current_position.z, 1, 3, str_1), undefined ? "N" : "");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -267,7 +267,7 @@ CrealityDWINClass CrealityDWIN;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      void manual_value_update() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        sprintf_P(cmd, PSTR("G29 I%i J%i Z%s"), mesh_x, mesh_y, dtostrf(current_position.z, 1, 3, str_1));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -283,9 +283,9 @@ CrealityDWINClass CrealityDWIN;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        CrealityDWIN.Popup_Handler(MoveWait);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        sprintf_P(cmd, PSTR("G0 F300 Z%s"), dtostrf(Z_CLEARANCE_BETWEEN_PROBES, 1, 3, str_1));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        sprintf_P(cmd, PSTR("G42 F4000 I%i J%i"), mesh_x, mesh_y);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        current_position.z = goto_mesh_value ? Z_VALUES_ARR[mesh_x][mesh_y] : Z_CLEARANCE_BETWEEN_PROBES;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        planner.buffer_line(current_position, homing_feedrate(Z_AXIS), active_extruder);
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1132,7 +1132,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  Popup_Handler(FilChange);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  sprintf_P(cmd, PSTR("M600 B1 R%i"), thermalManager.temp_hotend[0].target);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1172,7 +1172,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Draw_Menu_Item(row, ICON_MoveX, F("Home X"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Popup_Handler(Home);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            gcode.process_subcommands_now_P(PSTR("G28 X"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            gcode.process_subcommands_now(F("G28 X"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1182,7 +1182,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Draw_Menu_Item(row, ICON_MoveY, F("Home Y"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Popup_Handler(Home);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            gcode.process_subcommands_now_P(PSTR("G28 Y"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            gcode.process_subcommands_now(F("G28 Y"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1192,7 +1192,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Draw_Menu_Item(row, ICON_MoveZ, F("Home Z"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Popup_Handler(Home);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            gcode.process_subcommands_now_P(PSTR("G28 Z"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            gcode.process_subcommands_now(F("G28 Z"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1201,7 +1201,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          if (draw)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Draw_Menu_Item(row, ICON_SetHome, F("Set Home Position"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            gcode.process_subcommands_now_P(PSTR("G92 X0 Y0 Z0"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            gcode.process_subcommands_now(F("G92 X0 Y0 Z0"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            AudioFeedback();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          break;
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1366,14 +1366,14 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (use_probe) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #if HAS_BED_PROBE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                sprintf_P(cmd, PSTR("G0 F4000\nG0 Z10\nG0 X%s Y%s"), dtostrf(PROBE_X_MIN, 1, 3, str_1), dtostrf(PROBE_Y_MIN, 1, 3, str_2));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(ManualProbing);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sprintf_P(cmd, PSTR("G0 F4000\nG0 Z10\nG0 X%s Y%s\nG0 F300 Z%s"), dtostrf(corner_pos, 1, 3, str_1), dtostrf(corner_pos, 1, 3, str_2), dtostrf(mlev_z_pos, 1, 3, str_3));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1387,14 +1387,14 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (use_probe) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #if HAS_BED_PROBE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                sprintf_P(cmd, PSTR("G0 F4000\nG0 Z10\nG0 X%s Y%s"), dtostrf(PROBE_X_MIN, 1, 3, str_1), dtostrf(PROBE_Y_MAX, 1, 3, str_2));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(ManualProbing);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sprintf_P(cmd, PSTR("G0 F4000\nG0 Z10\nG0 X%s Y%s\nG0 F300 Z%s"), dtostrf(corner_pos, 1, 3, str_1), dtostrf((Y_BED_SIZE + Y_MIN_POS) - corner_pos, 1, 3, str_2), dtostrf(mlev_z_pos, 1, 3, str_3));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1408,14 +1408,14 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (use_probe) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #if HAS_BED_PROBE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                sprintf_P(cmd, PSTR("G0 F4000\nG0 Z10\nG0 X%s Y%s"), dtostrf(PROBE_X_MAX, 1, 3, str_1), dtostrf(PROBE_Y_MAX, 1, 3, str_2));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(ManualProbing);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sprintf_P(cmd, PSTR("G0 F4000\nG0 Z10\nG0 X%s Y%s\nG0 F300 Z%s"), dtostrf((X_BED_SIZE + X_MIN_POS) - corner_pos, 1, 3, str_1), dtostrf((Y_BED_SIZE + Y_MIN_POS) - corner_pos, 1, 3, str_2), dtostrf(mlev_z_pos, 1, 3, str_3));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1429,14 +1429,14 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (use_probe) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #if HAS_BED_PROBE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                sprintf_P(cmd, PSTR("G0 F4000\nG0 Z10\nG0 X%s Y%s"), dtostrf(PROBE_X_MAX, 1, 3, str_1), dtostrf(PROBE_Y_MIN, 1, 3, str_2));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(ManualProbing);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sprintf_P(cmd, PSTR("G0 F4000\nG0 Z10\nG0 X%s Y%s\nG0 F300 Z%s"), dtostrf((X_BED_SIZE + X_MIN_POS) - corner_pos, 1, 3, str_1), dtostrf(corner_pos, 1, 3, str_2), dtostrf(mlev_z_pos, 1, 3, str_3));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1450,14 +1450,14 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (use_probe) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #if HAS_BED_PROBE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                sprintf_P(cmd, PSTR("G0 F4000\nG0 Z10\nG0 X%s Y%s"), dtostrf(X_MAX_POS / 2.0f - probe.offset.x, 1, 3, str_1), dtostrf(Y_MAX_POS / 2.0f - probe.offset.y, 1, 3, str_2));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(ManualProbing);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sprintf_P(cmd, PSTR("G0 F4000\nG0 Z10\nG0 X%s Y%s\nG0 F300 Z%s"), dtostrf((X_BED_SIZE + X_MIN_POS) / 2.0f, 1, 3, str_1), dtostrf((Y_BED_SIZE + Y_MIN_POS) / 2.0f, 1, 3, str_2), dtostrf(mlev_z_pos, 1, 3, str_3));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1500,16 +1500,16 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu_Item(row, ICON_Homing, F("Home Z Axis"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Popup_Handler(Home);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("G28 Z"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("G28 Z"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Popup_Handler(MoveWait);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #if ENABLED(Z_SAFE_HOMING)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                sprintf_P(cmd, PSTR("G0 F4000 X%s Y%s"), dtostrf(Z_SAFE_HOMING_X_POINT, 1, 3, str_1), dtostrf(Z_SAFE_HOMING_Y_POINT, 1, 3, str_2));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(PSTR("G0 F4000 X117.5 Y117.5"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(F("G0 F4000 X117.5 Y117.5"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("G0 F300 Z0"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("G0 F300 Z0"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1529,11 +1529,11 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                #if ENABLED(Z_SAFE_HOMING)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  sprintf_P(cmd, PSTR("G0 F4000 X%s Y%s"), dtostrf(Z_SAFE_HOMING_X_POINT, 1, 3, str_1), dtostrf(Z_SAFE_HOMING_Y_POINT, 1, 3, str_2));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                #else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now_P(PSTR("G0 F4000 X117.5 Y117.5"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now(F("G0 F4000 X117.5 Y117.5"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(PSTR("G0 F300 Z0"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(F("G0 F300 Z0"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1555,7 +1555,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              if (zoffsetvalue < MAX_Z_OFFSET) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (liveadjust) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now_P(PSTR("M290 Z0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now(F("M290 Z0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                zoffsetvalue += 0.01;
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1569,7 +1569,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              if (zoffsetvalue > MIN_Z_OFFSET) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (liveadjust) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now_P(PSTR("M290 Z-0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now(F("M290 Z-0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                zoffsetvalue -= 0.01;
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1737,7 +1737,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  thermalManager.wait_for_hotend(0);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(FilLoad);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(PSTR("M701"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(F("M701"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1756,7 +1756,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  thermalManager.wait_for_hotend(0);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(FilLoad, true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(PSTR("M702"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(F("M702"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -1775,7 +1775,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(FilChange);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                sprintf_P(cmd, PSTR("M600 B1 R%i"), thermalManager.temp_hotend[0].target);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            break;
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -2032,7 +2032,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Popup_Handler(PIDWait);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sprintf_P(cmd, PSTR("M303 E0 C%i S%i U1"), PID_cycles, PID_e_temp);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -2099,7 +2099,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Popup_Handler(PIDWait);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sprintf_P(cmd, PSTR("M303 E-1 C%i S%i U1"), PID_cycles, PID_bed_temp);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3045,7 +3045,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Draw_Menu_Item(row, ICON_StepY, F("M48 Probe Test"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                sprintf_P(cmd, PSTR("G28O\nM48 X%s Y%s P%i"), dtostrf((X_BED_SIZE + X_MIN_POS) / 2.0f, 1, 3, str_1), dtostrf((Y_BED_SIZE + Y_MIN_POS) / 2.0f, 1, 3, str_2), testcount);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            case PROBE_TEST_COUNT:
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3157,11 +3157,12 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(Home);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.home_all_axes(true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(Level);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (mesh_conf.tilt_grid > 1)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (mesh_conf.tilt_grid > 1) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  sprintf_P(cmd, PSTR("G29 J%i"), mesh_conf.tilt_grid);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  sprintf_P(cmd, PSTR("G29 J"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now(F("G29 J"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3189,8 +3190,8 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                #if HAS_BED_PROBE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  Popup_Handler(Level);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now_P(PSTR("G29 P0\nG29 P1"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now_P(PSTR("G29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nM420 S1"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now(F("G29 P0\nG29 P1"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now(F("G29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nG29 P3\nM420 S1"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  Update_Status("Probed all reachable points");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  Popup_Handler(SaveLevel);
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3205,7 +3206,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #elif HAS_BED_PROBE
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(Level);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(PSTR("G29"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(F("G29"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(SaveLevel);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #else
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3213,7 +3214,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                set_bed_leveling_enabled(false);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gridpoint = 1;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(MoveWait);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(PSTR("G29"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(F("G29"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Draw_Menu(ManualMesh);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #endif
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3296,7 +3297,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(MeshSlot);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("G29 L"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("G29 L"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              AudioFeedback(true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3309,7 +3310,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Popup_Handler(MeshSlot);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("G29 S"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("G29 S"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              AudioFeedback(true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3405,7 +3406,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Draw_Menu_Item(row, ICON_ResumeEEPROM, F("Convert Mesh to Plane"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (mesh_conf.create_plane_from_mesh()) break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(PSTR("M420 S1"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(F("M420 S1"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                AudioFeedback(true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3513,7 +3514,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu_Item(row, ICON_Axis, F("Microstep Up"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else if (Z_VALUES_ARR[mesh_conf.mesh_x][mesh_conf.mesh_y] < MAX_Z_OFFSET) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Z_VALUES_ARR[mesh_conf.mesh_x][mesh_conf.mesh_y] += 0.01;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("M290 Z0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("M290 Z0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              current_position.z += 0.01f;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sync_plan_position();
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3525,7 +3526,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu_Item(row, ICON_AxisD, F("Microstep Down"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else if (Z_VALUES_ARR[mesh_conf.mesh_x][mesh_conf.mesh_y] > MIN_Z_OFFSET) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Z_VALUES_ARR[mesh_conf.mesh_x][mesh_conf.mesh_y] -= 0.01;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("M290 Z-0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("M290 Z-0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              current_position.z -= 0.01f;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sync_plan_position();
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3596,7 +3597,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                mesh_conf.manual_move();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(PSTR("G29 S"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(F("G29 S"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                AudioFeedback(true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                Draw_Menu(Leveling, LEVELING_GET_MESH);
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3634,7 +3635,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu_Item(row, ICON_Axis, F("Microstep Up"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else if (Z_VALUES_ARR[mesh_conf.mesh_x][mesh_conf.mesh_y] < MAX_Z_OFFSET) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Z_VALUES_ARR[mesh_conf.mesh_x][mesh_conf.mesh_y] += 0.01;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("M290 Z0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("M290 Z0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              current_position.z += 0.01f;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sync_plan_position();
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3646,7 +3647,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu_Item(row, ICON_Axis, F("Microstep Down"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else if (Z_VALUES_ARR[mesh_conf.mesh_x][mesh_conf.mesh_y] > MIN_Z_OFFSET) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Z_VALUES_ARR[mesh_conf.mesh_x][mesh_conf.mesh_y] -= 0.01;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("M290 Z-0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("M290 Z-0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              current_position.z -= 0.01f;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sync_plan_position();
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3673,7 +3674,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (draw)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu_Item(row, ICON_Back, F("Cancel"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("G29 A"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("G29 A"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              set_bed_leveling_enabled(level_state);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu(Leveling, LEVELING_GET_MESH);
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3688,13 +3689,13 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else if (gridpoint < GRID_MAX_POINTS) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Popup_Handler(MoveWait);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("G29"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("G29"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gridpoint++;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Redraw_Menu();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("G29"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("G29"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              AudioFeedback(settings.save());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu(Leveling, LEVELING_GET_MESH);
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3713,7 +3714,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (draw)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu_Item(row, ICON_Axis, F("Microstep Up"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else if (current_position.z < MAX_Z_OFFSET) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("M290 Z0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("M290 Z0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              current_position.z += 0.01f;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sync_plan_position();
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3724,7 +3725,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (draw)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu_Item(row, ICON_AxisD, F("Microstep Down"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else if (current_position.z > MIN_Z_OFFSET) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("M290 Z-0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("M290 Z-0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              current_position.z -= 0.01f;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sync_plan_position();
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3845,7 +3846,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (draw)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu_Item(row, ICON_Axis, F("Z-Offset Up"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else if (zoffsetvalue < MAX_Z_OFFSET) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("M290 Z0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("M290 Z0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              zoffsetvalue += 0.01;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Float(zoffsetvalue, row - 1, false, 100);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3854,7 +3855,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (draw)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Menu_Item(row, ICON_AxisD, F("Z-Offset Down"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else if (zoffsetvalue > MIN_Z_OFFSET) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("M290 Z-0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("M290 Z-0.01"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              zoffsetvalue -= 0.01;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Draw_Float(zoffsetvalue, row - 2, false, 100);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3932,27 +3933,27 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case Prepare:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  Popup_Handler(FilChange);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  sprintf_P(cmd, PSTR("M600 B1 R%i"), thermalManager.temp_hotend[0].target);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                #if ENABLED(FILAMENT_LOAD_UNLOAD_GCODES)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                  case ChangeFilament:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    switch (last_selection) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                      case CHANGEFIL_LOAD:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        Popup_Handler(FilLoad);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        gcode.process_subcommands_now_P("M701");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        gcode.process_subcommands_now(F("M701"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        Redraw_Menu(true, true, true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                      case CHANGEFIL_UNLOAD:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        Popup_Handler(FilLoad, true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        gcode.process_subcommands_now_P("M702");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        gcode.process_subcommands_now(F("M702"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        Redraw_Menu(true, true, true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                      case CHANGEFIL_CHANGE:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        Popup_Handler(FilChange);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        sprintf_P(cmd, PSTR("M600 B1 R%i"), thermalManager.temp_hotend[0].target);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    break;
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -4291,7 +4292,7 @@ void CrealityDWINClass::Value_Control() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    else if (active_menu == Tune && selection == TUNE_ZOFFSET) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      sprintf_P(cmd, PSTR("M290 Z%s"), dtostrf((tempvalue / valueunit - zoffsetvalue), 1, 3, str_1));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if (TERN0(HAS_HOTEND, valuepointer == &thermalManager.temp_hotend[0].pid.Ki) || TERN0(HAS_HEATED_BED, valuepointer == &thermalManager.temp_bed.pid.Ki))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      tempvalue = scalePID_i(tempvalue);
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -4490,11 +4491,11 @@ void CrealityDWINClass::Print_Screen_Control() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              char cmnd[20];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #if HAS_HEATED_BED
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                cmnd[sprintf_P(cmnd, PSTR("M140 S%i"), pausebed)] = '\0';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(PSTR(cmnd));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(cmnd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #if HAS_EXTRUDERS
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                cmnd[sprintf_P(cmnd, PSTR("M109 S%i"), pausetemp)] = '\0';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now_P(PSTR(cmnd));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                gcode.process_subcommands_now(cmnd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              #endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              TERN_(HAS_FAN, thermalManager.fan_speed[0] = pausefan);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -4619,7 +4620,7 @@ void CrealityDWINClass::Popup_Control() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              Popup_Handler(FilChange);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              sprintf_P(cmd, PSTR("M600 B1 R%i"), thermalManager.temp_hotend[0].target);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(cmd);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          else
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -4642,7 +4643,7 @@ void CrealityDWINClass::Popup_Control() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        case SaveLevel:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          if (selection == 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            #if ENABLED(AUTO_BED_LEVELING_UBL)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now_P(PSTR("G29 S"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              gcode.process_subcommands_now(F("G29 S"));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              planner.synchronize();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              AudioFeedback(true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            #else
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				 
 |