| 
					
				 | 
			
			
				@@ -257,6 +257,7 @@ static void lcd_connect_printer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void lcd_finishstatus(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void lcd_sdcard_menu(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void lcd_sheet_menu(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #ifdef DELTA_CALIBRATION_MENU 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void lcd_delta_calibrate_menu(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -5517,15 +5518,41 @@ SETTINGS_VERSION; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 MENU_END(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//TODO: ---------- HW menu 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void lcd_hw_setup_menu(void)                      // can not be "static" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 MENU_BEGIN(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 MENU_ITEM_BACK_P(_T(bSettings?MSG_SETTINGS:MSG_BACK)); // i.e. default menu-item / menu-item after checking mismatch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if(!farm_mode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[0], lcd_sheet_menu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[1], lcd_sheet_menu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[2], lcd_sheet_menu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+char buffer[] = "work cunt"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//strncpy(buffer,_i("Sheet"),sizeof(buffer)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//strncpy(buffer,_i(" "),sizeof(buffer)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//strncpy(buffer,EEPROM_Sheets_base->s[0].name,sizeof(buffer)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//const char* menu = EEPROM_Sheets_base->s[0].name.c_str(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//const char *b = new char(buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//const char *b = const char *b = new char(buffer);(buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//printf_P(_N("UVLO - end %d\n"), _millis() - time_start); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//SERIAL_ECHOPGM(buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//SERIAL_ECHOPGM(reinterpret_cast<const char*>(buffer)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//SERIAL_ECHOPGM("lakdjushasdjaljsdakjsdn"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//char* p = &buffer[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//MENU_ITEM_SUBMENU_P(reinterpret_cast<const char*>(p),lcd_sheet_menu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//delete(b); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(!farm_mode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      SETTINGS_NOZZLE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // ... a sem prijdou 'plechy' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if(!farm_mode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      MENU_ITEM_SUBMENU_P(_i("Checks"), lcd_checking_menu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 MENU_END(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -6500,14 +6527,14 @@ static void lcd_select_sheet_2_menu() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	change_sheet(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static void lcd_select_sheet_menu() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void lcd_select_sheet_menu() //TODO: -----------------sheet menu  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    MENU_BEGIN(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /*MENU_BEGIN(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     MENU_ITEM_BACK_P(_T(MSG_BACK)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[0], lcd_select_sheet_0_menu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[1], lcd_select_sheet_1_menu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[2], lcd_select_sheet_2_menu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    MENU_END(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    MENU_END();*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void lcd_rename_sheet_menu() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -6554,13 +6581,59 @@ static void lcd_rename_sheet_menu() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void lcd_reset_sheet() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    struct MenuData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bool initialized; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        uint8_t selected; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        char name[sizeof(Sheet::name)]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    static_assert(sizeof(menu_data)>= sizeof(MenuData),"MenuData doesn't fit into menu_data"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    MenuData* menuData = (MenuData*)&(menu_data[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!menuData->initialized) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        eeprom_read_block(menuData->name, EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].name, sizeof(Sheet::name)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lcd_encoder = menuData->name[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        menuData->initialized = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (lcd_encoder < '\x20') lcd_encoder = '\x20'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (lcd_encoder > '\x7F') lcd_encoder = '\x7F'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    menuData->name[menuData->selected] = lcd_encoder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    lcd_set_cursor(0,0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for (uint_least8_t i = 0; i < sizeof(Sheet::name); ++i) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lcd_putc(menuData->name[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    lcd_set_cursor(menuData->selected, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    lcd_putc('^'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (lcd_clicked()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ((menuData->selected + 1u) < sizeof(Sheet::name)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lcd_encoder = menuData->name[++(menuData->selected)]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            eeprom_update_block(menuData->name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sizeof(Sheet::name)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            menu_back(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void lcd_sheet_menu() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     MENU_BEGIN(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    MENU_ITEM_BACK_P(_T(MSG_MAIN)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    MENU_ITEM_BACK_P(_T(MSG_HW_SETUP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//if() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     MENU_ITEM_SUBMENU_P(_i("Select"), lcd_select_sheet_menu); //// c=18 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    MENU_ITEM_SUBMENU_P(_i("Rename"), lcd_rename_sheet_menu); //// c=18 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     MENU_ITEM_SUBMENU_P(_T(MSG_V2_CALIBRATION), lcd_v2_calibration); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    MENU_ITEM_SUBMENU_P(_i("Rename"), lcd_rename_sheet_menu); //// c=18 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	MENU_ITEM_SUBMENU_P(_i("Reset"), lcd_reset_sheet); //// c=18 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     MENU_END(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -6700,7 +6773,7 @@ static void lcd_main_menu() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if(!isPrintPaused)MENU_ITEM_SUBMENU_E(EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))], lcd_sheet_menu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(!isPrintPaused)MENU_ITEM_SUBMENU_SELECT_SHEET_E(EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))], lcd_sheet_menu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (!is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 |