Browse Source

Merge branch 'MK3_3.9.1' into flashair_display_ip

odaki 3 years ago
parent
commit
4c7100985e
62 changed files with 4321 additions and 3479 deletions
  1. 3 0
      .github/ISSUE_TEMPLATE/bug_report.md
  2. 2 2
      Firmware/Configuration.h
  3. 5 0
      Firmware/Configuration_adv.h
  4. 5 10
      Firmware/Dcodes.cpp
  5. 3 2
      Firmware/Marlin.h
  6. 342 313
      Firmware/Marlin_main.cpp
  7. 4 4
      Firmware/bootapp.c
  8. 7 9
      Firmware/cardreader.cpp
  9. 13 3
      Firmware/eeprom.h
  10. 143 111
      Firmware/fsensor.cpp
  11. 14 0
      Firmware/fsensor.h
  12. 0 6
      Firmware/heatbed_pwm.cpp
  13. 3 3
      Firmware/la10compat.cpp
  14. 2 2
      Firmware/mesh_bed_calibration.cpp
  15. 3 2
      Firmware/messages.c
  16. 3 2
      Firmware/messages.h
  17. 16 16
      Firmware/mmu.cpp
  18. 21 11
      Firmware/optiboot_w25x20cl.cpp
  19. 1 1
      Firmware/optiboot_w25x20cl.h
  20. 94 58
      Firmware/planner.cpp
  21. 10 7
      Firmware/planner.h
  22. 11 5
      Firmware/speed_lookuptable.h
  23. 73 56
      Firmware/stepper.cpp
  24. 3 2
      Firmware/system_timer.h
  25. 267 125
      Firmware/temperature.cpp
  26. 8 3
      Firmware/temperature.h
  27. 2 0
      Firmware/thermistortables.h
  28. 126 0
      Firmware/tone04.c
  29. 25 0
      Firmware/tone04.h
  30. 177 104
      Firmware/ultralcd.cpp
  31. 5 17
      Firmware/ultralcd.h
  32. 4 0
      Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h
  33. 3 0
      Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h
  34. 3 0
      Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h
  35. 3 0
      Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h
  36. 3 0
      Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h
  37. 3 0
      Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h
  38. 7 0
      Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h
  39. 9 0
      Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h
  40. 18 4
      README.md
  41. 2 2
      lang/lang-build.sh
  42. 0 0
      lang/lang-check.py
  43. 14 5
      lang/lang_en.txt
  44. 18 6
      lang/lang_en_cz.txt
  45. 18 6
      lang/lang_en_de.txt
  46. 18 6
      lang/lang_en_es.txt
  47. 18 6
      lang/lang_en_fr.txt
  48. 17 5
      lang/lang_en_it.txt
  49. 18 6
      lang/lang_en_pl.txt
  50. 212 197
      lang/po/Firmware.pot
  51. 212 197
      lang/po/Firmware_cs.po
  52. 212 197
      lang/po/Firmware_de.po
  53. 212 197
      lang/po/Firmware_es.po
  54. 212 197
      lang/po/Firmware_fr.po
  55. 211 196
      lang/po/Firmware_it.po
  56. 212 197
      lang/po/Firmware_pl.po
  57. 212 197
      lang/po/new/cs.po
  58. 212 197
      lang/po/new/de.po
  59. 212 197
      lang/po/new/es.po
  60. 212 197
      lang/po/new/fr.po
  61. 211 196
      lang/po/new/it.po
  62. 212 197
      lang/po/new/pl.po

+ 3 - 0
.github/ISSUE_TEMPLATE/bug_report.md

@@ -15,6 +15,9 @@ Please, before you create a new bug report, please make sure you searched in ope
 **MMU Upgrade** - [e.g. MMU2S, MMU2, MMU1]
 **MMU Upgrade** - [e.g. MMU2S, MMU2, MMU1]
 **MMU upgrade firmware version [e.g. 1.0.6, 1.0.6-RC2, ...]
 **MMU upgrade firmware version [e.g. 1.0.6, 1.0.6-RC2, ...]
 
 
+**SD card or USB/Octoprint**
+  Please let us know if you print via SD card or USB/Octoprint
+
 **Describe the bug**
 **Describe the bug**
   A clear and concise description of what the bug is.
   A clear and concise description of what the bug is.
   
   

+ 2 - 2
Firmware/Configuration.h

@@ -16,8 +16,8 @@ extern uint16_t nPrinterType;
 extern PGM_P sPrinterName;
 extern PGM_P sPrinterName;
 
 
 // Firmware version
 // Firmware version
-#define FW_VERSION "3.9.0"
-#define FW_COMMIT_NR 3421
+#define FW_VERSION "3.9.1"
+#define FW_COMMIT_NR 3518
 // FW_VERSION_UNKNOWN means this is an unofficial build.
 // FW_VERSION_UNKNOWN means this is an unofficial build.
 // The firmware should only be checked into github with this symbol.
 // The firmware should only be checked into github with this symbol.
 #define FW_DEV_VERSION FW_VERSION_UNKNOWN
 #define FW_DEV_VERSION FW_VERSION_UNKNOWN

+ 5 - 0
Firmware/Configuration_adv.h

@@ -288,6 +288,7 @@
   #define LA_K_DEF    0        // Default K factor (Unit: mm compression per 1mm/s extruder speed)
   #define LA_K_DEF    0        // Default K factor (Unit: mm compression per 1mm/s extruder speed)
   #define LA_K_MAX    10       // Maximum acceptable K factor (exclusive, see notes in planner.cpp:plan_buffer_line)
   #define LA_K_MAX    10       // Maximum acceptable K factor (exclusive, see notes in planner.cpp:plan_buffer_line)
   #define LA_LA10_MIN LA_K_MAX // Lin. Advance 1.0 threshold value (inclusive)
   #define LA_LA10_MIN LA_K_MAX // Lin. Advance 1.0 threshold value (inclusive)
+  //#define LA_FLOWADJ         // Adjust LA along with flow/M221 for uniform width
   //#define LA_NOCOMPAT        // Disable Linear Advance 1.0 compatibility
   //#define LA_NOCOMPAT        // Disable Linear Advance 1.0 compatibility
   //#define LA_LIVE_K          // Allow adjusting K in the Tune menu
   //#define LA_LIVE_K          // Allow adjusting K in the Tune menu
   //#define LA_DEBUG           // If enabled, this will generate debug information output over USB.
   //#define LA_DEBUG           // If enabled, this will generate debug information output over USB.
@@ -436,6 +437,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
   #undef BED_MINTEMP
   #undef BED_MINTEMP
   #undef BED_MAXTEMP
   #undef BED_MAXTEMP
 #endif
 #endif
+#if TEMP_SENSOR_AMBIENT == 0
+  #undef AMBIENT_MINTEMP
+  #undef AMBIENT_MAXTEMP
+#endif
 
 
 
 
 #endif //__CONFIGURATION_ADV_H
 #endif //__CONFIGURATION_ADV_H

+ 5 - 10
Firmware/Dcodes.cpp

@@ -1,5 +1,5 @@
 #include "Dcodes.h"
 #include "Dcodes.h"
-//#include "Marlin.h"
+#include "Marlin.h"
 #include "Configuration.h"
 #include "Configuration.h"
 #include "language.h"
 #include "language.h"
 #include "cmdqueue.h"
 #include "cmdqueue.h"
@@ -226,9 +226,7 @@ void dcode_0()
 	LOG("D0 - Reset\n");
 	LOG("D0 - Reset\n");
 	if (code_seen('B')) //bootloader
 	if (code_seen('B')) //bootloader
 	{
 	{
-		cli();
-		wdt_enable(WDTO_15MS);
-		while(1);
+		softReset();
 	}
 	}
 	else //reset
 	else //reset
 	{
 	{
@@ -252,8 +250,7 @@ void dcode_1()
 	cli();
 	cli();
 	for (int i = 0; i < 8192; i++)
 	for (int i = 0; i < 8192; i++)
 		eeprom_write_byte((unsigned char*)i, (unsigned char)0xff);
 		eeprom_write_byte((unsigned char*)i, (unsigned char)0xff);
-	wdt_enable(WDTO_15MS);
-	while(1);
+	softReset();
 }
 }
 
 
     /*!
     /*!
@@ -420,8 +417,7 @@ void dcode_5()
 		boot_dst_addr = (uint32_t)address;
 		boot_dst_addr = (uint32_t)address;
 		boot_src_addr = (uint32_t)(&data);
 		boot_src_addr = (uint32_t)(&data);
 		bootapp_print_vars();
 		bootapp_print_vars();
-		wdt_enable(WDTO_15MS);
-		while(1);
+		softReset();
 	}
 	}
 	while (count)
 	while (count)
 	{
 	{
@@ -467,8 +463,7 @@ void dcode_7()
 	boot_copy_size = (uint16_t)0xc00;
 	boot_copy_size = (uint16_t)0xc00;
 	boot_src_addr = (uint32_t)0x0003e400;
 	boot_src_addr = (uint32_t)0x0003e400;
 	boot_dst_addr = (uint32_t)0x0003f400;
 	boot_dst_addr = (uint32_t)0x0003f400;
-	wdt_enable(WDTO_15MS);
-	while(1);
+	softReset();
 */
 */
 }
 }
 
 

+ 3 - 2
Firmware/Marlin.h

@@ -299,7 +299,7 @@ extern float feedrate;
 extern int feedmultiply;
 extern int feedmultiply;
 extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders
 extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders
 extern int extruder_multiply[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually
 extern int extruder_multiply[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually
-extern float volumetric_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner
+extern float extruder_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner
 extern float current_position[NUM_AXIS] ;
 extern float current_position[NUM_AXIS] ;
 extern float destination[NUM_AXIS] ;
 extern float destination[NUM_AXIS] ;
 extern float min_pos[3];
 extern float min_pos[3];
@@ -334,7 +334,6 @@ extern unsigned long stoptime;
 extern int bowden_length[4];
 extern int bowden_length[4];
 extern bool is_usb_printing;
 extern bool is_usb_printing;
 extern bool homing_flag;
 extern bool homing_flag;
-extern bool temp_cal_active;
 extern bool loading_flag;
 extern bool loading_flag;
 extern unsigned int usb_printing_counter;
 extern unsigned int usb_printing_counter;
 
 
@@ -513,4 +512,6 @@ void load_filament_final_feed();
 void marlin_wait_for_click();
 void marlin_wait_for_click();
 void raise_z_above(float target, bool plan=true);
 void raise_z_above(float target, bool plan=true);
 
 
+extern "C" void softReset();
+
 #endif
 #endif

+ 342 - 313
Firmware/Marlin_main.cpp

@@ -202,8 +202,6 @@ int bowden_length[4] = {385, 385, 385, 385};
 bool is_usb_printing = false;
 bool is_usb_printing = false;
 bool homing_flag = false;
 bool homing_flag = false;
 
 
-bool temp_cal_active = false;
-
 unsigned long kicktime = _millis()+100000;
 unsigned long kicktime = _millis()+100000;
 
 
 unsigned int  usb_printing_counter;
 unsigned int  usb_printing_counter;
@@ -650,6 +648,12 @@ void failstats_reset_print()
 #endif
 #endif
 }
 }
 
 
+void softReset()
+{
+    cli();
+    wdt_enable(WDTO_15MS);
+    while(1);
+}
 
 
 
 
 #ifdef MESH_BED_LEVELING
 #ifdef MESH_BED_LEVELING
@@ -764,6 +768,7 @@ static void factory_reset(char level)
 				}
 				}
 
 
 			}
 			}
+			softReset();
 
 
 
 
 			break;
 			break;
@@ -1014,11 +1019,19 @@ void setup()
 	lcd_splash();
 	lcd_splash();
     Sound_Init();                                // also guarantee "SET_OUTPUT(BEEPER)"
     Sound_Init();                                // also guarantee "SET_OUTPUT(BEEPER)"
 
 
+	selectedSerialPort = eeprom_read_byte((uint8_t *)EEPROM_SECOND_SERIAL_ACTIVE);
+	if (selectedSerialPort == 0xFF) selectedSerialPort = 0;
+	eeprom_update_byte((uint8_t *)EEPROM_SECOND_SERIAL_ACTIVE, selectedSerialPort);
+	MYSERIAL.begin(BAUDRATE);
+	fdev_setup_stream(uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE); //setup uart out stream
+	stdout = uartout;
+
 #ifdef W25X20CL
 #ifdef W25X20CL
     bool w25x20cl_success = w25x20cl_init();
     bool w25x20cl_success = w25x20cl_init();
+	uint8_t optiboot_status = 1;
 	if (w25x20cl_success)
 	if (w25x20cl_success)
 	{
 	{
-	    optiboot_w25x20cl_enter();
+		optiboot_status = optiboot_w25x20cl_enter();
 #if (LANG_MODE != 0) //secondary language support
 #if (LANG_MODE != 0) //secondary language support
         update_sec_lang_from_external_flash();
         update_sec_lang_from_external_flash();
 #endif //(LANG_MODE != 0)
 #endif //(LANG_MODE != 0)
@@ -1040,15 +1053,13 @@ void setup()
 	if ((farm_mode == 0xFF && farm_no == 0) || ((uint16_t)farm_no == 0xFFFF)) 
 	if ((farm_mode == 0xFF && farm_no == 0) || ((uint16_t)farm_no == 0xFFFF)) 
 		farm_mode = false; //if farm_mode has not been stored to eeprom yet and farm number is set to zero or EEPROM is fresh, deactivate farm mode
 		farm_mode = false; //if farm_mode has not been stored to eeprom yet and farm number is set to zero or EEPROM is fresh, deactivate farm mode
 	if ((uint16_t)farm_no == 0xFFFF) farm_no = 0;
 	if ((uint16_t)farm_no == 0xFFFF) farm_no = 0;
-	
-	selectedSerialPort = eeprom_read_byte((uint8_t*)EEPROM_SECOND_SERIAL_ACTIVE);
-	if (selectedSerialPort == 0xFF) selectedSerialPort = 0;
 	if (farm_mode)
 	if (farm_mode)
 	{
 	{
 		no_response = true; //we need confirmation by recieving PRUSA thx
 		no_response = true; //we need confirmation by recieving PRUSA thx
 		important_status = 8;
 		important_status = 8;
 		prusa_statistics(8);
 		prusa_statistics(8);
 		selectedSerialPort = 1;
 		selectedSerialPort = 1;
+		MYSERIAL.begin(BAUDRATE);
 #ifdef TMC2130
 #ifdef TMC2130
 		//increased extruder current (PFW363)
 		//increased extruder current (PFW363)
 		tmc2130_current_h[E_AXIS] = 36;
 		tmc2130_current_h[E_AXIS] = 36;
@@ -1062,12 +1073,12 @@ void setup()
           if(!(eeprom_read_byte((uint8_t*)EEPROM_FAN_CHECK_ENABLED)))
           if(!(eeprom_read_byte((uint8_t*)EEPROM_FAN_CHECK_ENABLED)))
                eeprom_update_byte((unsigned char *)EEPROM_FAN_CHECK_ENABLED,true);
                eeprom_update_byte((unsigned char *)EEPROM_FAN_CHECK_ENABLED,true);
 	}
 	}
-	MYSERIAL.begin(BAUDRATE);
-	fdev_setup_stream(uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE); //setup uart out stream
 #ifndef W25X20CL
 #ifndef W25X20CL
 	SERIAL_PROTOCOLLNPGM("start");
 	SERIAL_PROTOCOLLNPGM("start");
-#endif //W25X20CL
-	stdout = uartout;
+#else
+	if ((optiboot_status != 0) || (selectedSerialPort != 0))
+		SERIAL_PROTOCOLLNPGM("start");
+#endif
 	SERIAL_ECHO_START;
 	SERIAL_ECHO_START;
 	printf_P(PSTR(" " FW_VERSION_FULL "\n"));
 	printf_P(PSTR(" " FW_VERSION_FULL "\n"));
 
 
@@ -1246,6 +1257,13 @@ void setup()
 	    w25x20cl_err_msg();
 	    w25x20cl_err_msg();
 	    printf_P(_n("W25X20CL not responding.\n"));
 	    printf_P(_n("W25X20CL not responding.\n"));
 	}
 	}
+#ifdef EXTRUDER_ALTFAN_DETECT
+	SERIAL_ECHORPGM(_n("Extruder fan type: "));
+	if (extruder_altfan_detect())
+		SERIAL_ECHOLNRPGM(PSTR("ALTFAN"));
+	else
+		SERIAL_ECHOLNRPGM(PSTR("NOCTUA"));
+#endif //EXTRUDER_ALTFAN_DETECT
 
 
 	plan_init();  // Initialize planner;
 	plan_init();  // Initialize planner;
 
 
@@ -1332,8 +1350,7 @@ void setup()
     // Initialize current_position accounting for software endstops to
     // Initialize current_position accounting for software endstops to
     // avoid unexpected initial shifts on the first move
     // avoid unexpected initial shifts on the first move
     clamp_to_software_endstops(current_position);
     clamp_to_software_endstops(current_position);
-    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS],
-                      current_position[Z_AXIS], current_position[E_AXIS]);
+    plan_set_position_curposXYZE();
 
 
 #ifdef FILAMENT_SENSOR
 #ifdef FILAMENT_SENSOR
 	fsensor_init();
 	fsensor_init();
@@ -1453,8 +1470,7 @@ void setup()
 
 
 	if (eeprom_read_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE) == 255) {
 	if (eeprom_read_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE) == 255) {
 		eeprom_write_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE, 0);
 		eeprom_write_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE, 0);
-		temp_cal_active = false;
-	} else temp_cal_active = eeprom_read_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE);
+	}
 
 
 	if (eeprom_read_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA) == 255) {
 	if (eeprom_read_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA) == 255) {
 		//eeprom_write_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0);
 		//eeprom_write_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0);
@@ -1462,7 +1478,6 @@ void setup()
 		int16_t z_shift = 0;
 		int16_t z_shift = 0;
 		for (uint8_t i = 0; i < 5; i++) EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift);
 		for (uint8_t i = 0; i < 5; i++) EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift);
 		eeprom_write_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE, 0);
 		eeprom_write_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE, 0);
-		temp_cal_active = false;
 	}
 	}
 	if (eeprom_read_byte((uint8_t*)EEPROM_UVLO) == 255) {
 	if (eeprom_read_byte((uint8_t*)EEPROM_UVLO) == 255) {
 		eeprom_write_byte((uint8_t*)EEPROM_UVLO, 0);
 		eeprom_write_byte((uint8_t*)EEPROM_UVLO, 0);
@@ -1535,7 +1550,7 @@ void setup()
 		  lcd_show_fullscreen_message_and_wait_P(_T(MSG_BABYSTEP_Z_NOT_SET));
 		  lcd_show_fullscreen_message_and_wait_P(_T(MSG_BABYSTEP_Z_NOT_SET));
 		  lcd_update_enable(true);
 		  lcd_update_enable(true);
 	  }
 	  }
-	  else if (calibration_status() == CALIBRATION_STATUS_CALIBRATED && temp_cal_active == true && calibration_status_pinda() == false) {
+	  else if (calibration_status() == CALIBRATION_STATUS_CALIBRATED && eeprom_read_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE) && calibration_status_pinda() == false) {
 		  //lcd_show_fullscreen_message_and_wait_P(_i("Temperature calibration has not been run yet"));////MSG_PINDA_NOT_CALIBRATED c=20 r=4
 		  //lcd_show_fullscreen_message_and_wait_P(_i("Temperature calibration has not been run yet"));////MSG_PINDA_NOT_CALIBRATED c=20 r=4
 		  lcd_update_enable(true);
 		  lcd_update_enable(true);
 	  }
 	  }
@@ -1948,7 +1963,7 @@ static void set_bed_level_equation_lsq(double *plane_equation_coefficients)
     // put the bed at 0 so we don't go below it.
     // put the bed at 0 so we don't go below it.
     current_position[Z_AXIS] = cs.zprobe_zoffset; // in the lsq we reach here after raising the extruder due to the loop structure
     current_position[Z_AXIS] = cs.zprobe_zoffset; // in the lsq we reach here after raising the extruder due to the loop structure
 
 
-    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+    plan_set_position_curposXYZE();
 }
 }
 
 
 #else // not AUTO_BED_LEVELING_GRID
 #else // not AUTO_BED_LEVELING_GRID
@@ -1976,7 +1991,7 @@ static void set_bed_level_equation_3pts(float z_at_pt_1, float z_at_pt_2, float
     // put the bed at 0 so we don't go below it.
     // put the bed at 0 so we don't go below it.
     current_position[Z_AXIS] = cs.zprobe_zoffset;
     current_position[Z_AXIS] = cs.zprobe_zoffset;
 
 
-    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+    plan_set_position_curposXYZE();
 
 
 }
 }
 
 
@@ -2008,7 +2023,7 @@ static void run_z_probe() {
 
 
     current_position[Z_AXIS] = st_get_position_mm(Z_AXIS);
     current_position[Z_AXIS] = st_get_position_mm(Z_AXIS);
     // make sure the planner knows where we are as it may be a bit different than we last said to move to
     // make sure the planner knows where we are as it may be a bit different than we last said to move to
-    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+    plan_set_position_curposXYZE();
 }
 }
 
 
 static void do_blocking_move_to(float x, float y, float z) {
 static void do_blocking_move_to(float x, float y, float z) {
@@ -2129,7 +2144,7 @@ void raise_z_above(float target, bool plan)
     if (axis_known_position[Z_AXIS] || z_min_endstop)
     if (axis_known_position[Z_AXIS] || z_min_endstop)
     {
     {
         // current position is known or very low, it's safe to raise Z
         // current position is known or very low, it's safe to raise Z
-        if(plan) plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder);
+        if(plan) plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS]);
         return;
         return;
     }
     }
 
 
@@ -2142,15 +2157,14 @@ void raise_z_above(float target, bool plan)
 #ifdef TMC2130
 #ifdef TMC2130
     tmc2130_home_enter(Z_AXIS_MASK);
     tmc2130_home_enter(Z_AXIS_MASK);
 #endif //TMC2130
 #endif //TMC2130
-    plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60, active_extruder);
+    plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60);
     st_synchronize();
     st_synchronize();
 #ifdef TMC2130
 #ifdef TMC2130
     if (endstop_z_hit_on_purpose())
     if (endstop_z_hit_on_purpose())
     {
     {
         // not necessarily exact, but will avoid further vertical moves
         // not necessarily exact, but will avoid further vertical moves
         current_position[Z_AXIS] = max_pos[Z_AXIS];
         current_position[Z_AXIS] = max_pos[Z_AXIS];
-        plan_set_position(current_position[X_AXIS], current_position[Y_AXIS],
-                          current_position[Z_AXIS], current_position[E_AXIS]);
+        plan_set_position_curposXYZE();
     }
     }
     tmc2130_home_exit();
     tmc2130_home_exit();
 #endif //TMC2130
 #endif //TMC2130
@@ -2168,22 +2182,22 @@ bool calibrate_z_auto()
 	int axis_up_dir = -home_dir(Z_AXIS);
 	int axis_up_dir = -home_dir(Z_AXIS);
 	tmc2130_home_enter(Z_AXIS_MASK);
 	tmc2130_home_enter(Z_AXIS_MASK);
 	current_position[Z_AXIS] = 0;
 	current_position[Z_AXIS] = 0;
-	plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+	plan_set_position_curposXYZE();
 	set_destination_to_current();
 	set_destination_to_current();
 	destination[Z_AXIS] += (1.1 * max_length(Z_AXIS) * axis_up_dir);
 	destination[Z_AXIS] += (1.1 * max_length(Z_AXIS) * axis_up_dir);
 	feedrate = homing_feedrate[Z_AXIS];
 	feedrate = homing_feedrate[Z_AXIS];
-	plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate / 60, active_extruder);
+	plan_buffer_line_destinationXYZE(feedrate / 60);
 	st_synchronize();
 	st_synchronize();
 	//	current_position[axis] = 0;
 	//	current_position[axis] = 0;
-	//	plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+	//	plan_set_position_curposXYZE();
 	tmc2130_home_exit();
 	tmc2130_home_exit();
 	enable_endstops(false);
 	enable_endstops(false);
 	current_position[Z_AXIS] = 0;
 	current_position[Z_AXIS] = 0;
-	plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+	plan_set_position_curposXYZE();
 	set_destination_to_current();
 	set_destination_to_current();
 	destination[Z_AXIS] += 10 * axis_up_dir; //10mm up
 	destination[Z_AXIS] += 10 * axis_up_dir; //10mm up
 	feedrate = homing_feedrate[Z_AXIS] / 2;
 	feedrate = homing_feedrate[Z_AXIS] / 2;
-	plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate / 60, active_extruder);
+	plan_buffer_line_destinationXYZE(feedrate / 60);
 	st_synchronize();
 	st_synchronize();
 	enable_endstops(endstops_enabled);
 	enable_endstops(endstops_enabled);
 	if (PRINTER_TYPE == PRINTER_MK3) {
 	if (PRINTER_TYPE == PRINTER_MK3) {
@@ -2192,7 +2206,7 @@ bool calibrate_z_auto()
 	else {
 	else {
 		current_position[Z_AXIS] = Z_MAX_POS + 9.0;
 		current_position[Z_AXIS] = Z_MAX_POS + 9.0;
 	}
 	}
-    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+	plan_set_position_curposXYZE();
 	return true;
 	return true;
 }
 }
 #endif //TMC2130
 #endif //TMC2130
@@ -2203,9 +2217,9 @@ static void check_Z_crash(void)
 	if (READ(Z_TMC2130_DIAG) != 0) { //Z crash
 	if (READ(Z_TMC2130_DIAG) != 0) { //Z crash
 		FORCE_HIGH_POWER_END;
 		FORCE_HIGH_POWER_END;
 		current_position[Z_AXIS] = 0;
 		current_position[Z_AXIS] = 0;
-		plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+		plan_set_position_curposXYZE();
 		current_position[Z_AXIS] += MESH_HOME_Z_SEARCH;
 		current_position[Z_AXIS] += MESH_HOME_Z_SEARCH;
-		plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder);
+		plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS]);
 		st_synchronize();
 		st_synchronize();
 		kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW));
 		kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW));
 	}
 	}
@@ -2235,24 +2249,24 @@ void homeaxis(int axis, uint8_t cnt)
         // and the following movement to endstop has a chance to achieve the required velocity
         // and the following movement to endstop has a chance to achieve the required velocity
         // for the stall guard to work.
         // for the stall guard to work.
         current_position[axis] = 0;
         current_position[axis] = 0;
-        plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+        plan_set_position_curposXYZE();
 		set_destination_to_current();
 		set_destination_to_current();
 //        destination[axis] = 11.f;
 //        destination[axis] = 11.f;
         destination[axis] = -3.f * axis_home_dir;
         destination[axis] = -3.f * axis_home_dir;
-        plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
+        plan_buffer_line_destinationXYZE(feedrate/60);
         st_synchronize();
         st_synchronize();
         // Move away from the possible collision with opposite endstop with the collision detection disabled.
         // Move away from the possible collision with opposite endstop with the collision detection disabled.
         endstops_hit_on_purpose();
         endstops_hit_on_purpose();
         enable_endstops(false);
         enable_endstops(false);
         current_position[axis] = 0;
         current_position[axis] = 0;
-        plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+        plan_set_position_curposXYZE();
         destination[axis] = 1. * axis_home_dir;
         destination[axis] = 1. * axis_home_dir;
-        plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
+        plan_buffer_line_destinationXYZE(feedrate/60);
         st_synchronize();
         st_synchronize();
         // Now continue to move up to the left end stop with the collision detection enabled.
         // Now continue to move up to the left end stop with the collision detection enabled.
         enable_endstops(true);
         enable_endstops(true);
         destination[axis] = 1.1 * axis_home_dir * max_length(axis);
         destination[axis] = 1.1 * axis_home_dir * max_length(axis);
-        plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
+        plan_buffer_line_destinationXYZE(feedrate/60);
         st_synchronize();
         st_synchronize();
 		for (uint8_t i = 0; i < cnt; i++)
 		for (uint8_t i = 0; i < cnt; i++)
 		{
 		{
@@ -2260,9 +2274,9 @@ void homeaxis(int axis, uint8_t cnt)
 			endstops_hit_on_purpose();
 			endstops_hit_on_purpose();
 			enable_endstops(false);
 			enable_endstops(false);
 			current_position[axis] = 0;
 			current_position[axis] = 0;
-			plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+			plan_set_position_curposXYZE();
 			destination[axis] = -10.f * axis_home_dir;
 			destination[axis] = -10.f * axis_home_dir;
-			plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
+			plan_buffer_line_destinationXYZE(feedrate/60);
 			st_synchronize();
 			st_synchronize();
 			endstops_hit_on_purpose();
 			endstops_hit_on_purpose();
 			// Now move left up to the collision, this time with a repeatable velocity.
 			// Now move left up to the collision, this time with a repeatable velocity.
@@ -2273,7 +2287,7 @@ void homeaxis(int axis, uint8_t cnt)
 #else //TMC2130
 #else //TMC2130
 			feedrate = homing_feedrate[axis] / 2;
 			feedrate = homing_feedrate[axis] / 2;
 #endif //TMC2130
 #endif //TMC2130
-			plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
+			plan_buffer_line_destinationXYZE(feedrate/60);
 			st_synchronize();
 			st_synchronize();
 #ifdef TMC2130
 #ifdef TMC2130
 			uint16_t mscnt = tmc2130_rd_MSCNT(axis);
 			uint16_t mscnt = tmc2130_rd_MSCNT(axis);
@@ -2307,10 +2321,10 @@ void homeaxis(int axis, uint8_t cnt)
         float dist = - axis_home_dir * 0.01f * 64;
         float dist = - axis_home_dir * 0.01f * 64;
 #endif //TMC2130
 #endif //TMC2130
         current_position[axis] -= dist;
         current_position[axis] -= dist;
-        plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+        plan_set_position_curposXYZE();
         current_position[axis] += dist;
         current_position[axis] += dist;
         destination[axis] = current_position[axis];
         destination[axis] = current_position[axis];
-        plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], 0.5f*feedrate/60, active_extruder);
+        plan_buffer_line_destinationXYZE(0.5f*feedrate/60);
         st_synchronize();
         st_synchronize();
 
 
    		feedrate = 0.0;
    		feedrate = 0.0;
@@ -2322,22 +2336,22 @@ void homeaxis(int axis, uint8_t cnt)
 #endif	
 #endif	
         int axis_home_dir = home_dir(axis);
         int axis_home_dir = home_dir(axis);
         current_position[axis] = 0;
         current_position[axis] = 0;
-        plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+        plan_set_position_curposXYZE();
         destination[axis] = 1.5 * max_length(axis) * axis_home_dir;
         destination[axis] = 1.5 * max_length(axis) * axis_home_dir;
         feedrate = homing_feedrate[axis];
         feedrate = homing_feedrate[axis];
-        plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
+        plan_buffer_line_destinationXYZE(feedrate/60);
         st_synchronize();
         st_synchronize();
 #ifdef TMC2130
 #ifdef TMC2130
         check_Z_crash();
         check_Z_crash();
 #endif //TMC2130
 #endif //TMC2130
         current_position[axis] = 0;
         current_position[axis] = 0;
-        plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+        plan_set_position_curposXYZE();
         destination[axis] = -home_retract_mm(axis) * axis_home_dir;
         destination[axis] = -home_retract_mm(axis) * axis_home_dir;
-        plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
+        plan_buffer_line_destinationXYZE(feedrate/60);
         st_synchronize();
         st_synchronize();
         destination[axis] = 2*home_retract_mm(axis) * axis_home_dir;
         destination[axis] = 2*home_retract_mm(axis) * axis_home_dir;
         feedrate = homing_feedrate[axis]/2 ;
         feedrate = homing_feedrate[axis]/2 ;
-        plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
+        plan_buffer_line_destinationXYZE(feedrate/60);
         st_synchronize();
         st_synchronize();
 #ifdef TMC2130
 #ifdef TMC2130
         check_Z_crash();
         check_Z_crash();
@@ -2360,7 +2374,7 @@ void home_xy()
     set_destination_to_current();
     set_destination_to_current();
     homeaxis(X_AXIS);
     homeaxis(X_AXIS);
     homeaxis(Y_AXIS);
     homeaxis(Y_AXIS);
-    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+    plan_set_position_curposXYZE();
     endstops_hit_on_purpose();
     endstops_hit_on_purpose();
 }
 }
 
 
@@ -2383,7 +2397,7 @@ void refresh_cmd_timeout(void)
       retracted[active_extruder]=true;
       retracted[active_extruder]=true;
       prepare_move();
       prepare_move();
       current_position[Z_AXIS]-=cs.retract_zlift;
       current_position[Z_AXIS]-=cs.retract_zlift;
-      plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+      plan_set_position_curposXYZE();
       prepare_move();
       prepare_move();
       feedrate = oldFeedrate;
       feedrate = oldFeedrate;
     } else if(!retracting && retracted[active_extruder]) {
     } else if(!retracting && retracted[active_extruder]) {
@@ -2392,7 +2406,7 @@ void refresh_cmd_timeout(void)
       destination[Z_AXIS]=current_position[Z_AXIS];
       destination[Z_AXIS]=current_position[Z_AXIS];
       destination[E_AXIS]=current_position[E_AXIS];
       destination[E_AXIS]=current_position[E_AXIS];
       current_position[Z_AXIS]+=cs.retract_zlift;
       current_position[Z_AXIS]+=cs.retract_zlift;
-      plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+      plan_set_position_curposXYZE();
       current_position[E_AXIS]-=(swapretract?(retract_length_swap+retract_recover_length_swap):(cs.retract_length+cs.retract_recover_length))*float(extrudemultiply)*0.01f;
       current_position[E_AXIS]-=(swapretract?(retract_length_swap+retract_recover_length_swap):(cs.retract_length+cs.retract_recover_length))*float(extrudemultiply)*0.01f;
       plan_set_e_position(current_position[E_AXIS]);
       plan_set_e_position(current_position[E_AXIS]);
       float oldFeedrate = feedrate;
       float oldFeedrate = feedrate;
@@ -2595,7 +2609,7 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon
 
 
         int x_axis_home_dir = home_dir(X_AXIS);
         int x_axis_home_dir = home_dir(X_AXIS);
 
 
-        plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+        plan_set_position_curposXYZE();
         destination[X_AXIS] = 1.5 * max_length(X_AXIS) * x_axis_home_dir;destination[Y_AXIS] = 1.5 * max_length(Y_AXIS) * home_dir(Y_AXIS);
         destination[X_AXIS] = 1.5 * max_length(X_AXIS) * x_axis_home_dir;destination[Y_AXIS] = 1.5 * max_length(Y_AXIS) * home_dir(Y_AXIS);
         feedrate = homing_feedrate[X_AXIS];
         feedrate = homing_feedrate[X_AXIS];
         if(homing_feedrate[Y_AXIS]<feedrate)
         if(homing_feedrate[Y_AXIS]<feedrate)
@@ -2605,15 +2619,15 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon
         } else {
         } else {
           feedrate *= sqrt(pow(max_length(X_AXIS) / max_length(Y_AXIS), 2) + 1);
           feedrate *= sqrt(pow(max_length(X_AXIS) / max_length(Y_AXIS), 2) + 1);
         }
         }
-        plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
+        plan_buffer_line_destinationXYZE(feedrate/60);
         st_synchronize();
         st_synchronize();
 
 
         axis_is_at_home(X_AXIS);
         axis_is_at_home(X_AXIS);
         axis_is_at_home(Y_AXIS);
         axis_is_at_home(Y_AXIS);
-        plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+        plan_set_position_curposXYZE();
         destination[X_AXIS] = current_position[X_AXIS];
         destination[X_AXIS] = current_position[X_AXIS];
         destination[Y_AXIS] = current_position[Y_AXIS];
         destination[Y_AXIS] = current_position[Y_AXIS];
-        plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
+        plan_buffer_line_destinationXYZE(feedrate/60);
         feedrate = 0.0;
         feedrate = 0.0;
         st_synchronize();
         st_synchronize();
         endstops_hit_on_purpose();
         endstops_hit_on_purpose();
@@ -2677,14 +2691,14 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon
               MYSERIAL.println(current_position[X_AXIS]);MYSERIAL.println(current_position[Y_AXIS]);
               MYSERIAL.println(current_position[X_AXIS]);MYSERIAL.println(current_position[Y_AXIS]);
               MYSERIAL.println(current_position[Z_AXIS]);MYSERIAL.println(current_position[E_AXIS]);
               MYSERIAL.println(current_position[Z_AXIS]);MYSERIAL.println(current_position[E_AXIS]);
 #endif
 #endif
-              plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+              plan_set_position_curposXYZE();
 #ifdef DEBUG_BUILD
 #ifdef DEBUG_BUILD
               SERIAL_ECHOLNPGM("plan_buffer_line()");
               SERIAL_ECHOLNPGM("plan_buffer_line()");
               MYSERIAL.println(destination[X_AXIS]);MYSERIAL.println(destination[Y_AXIS]);
               MYSERIAL.println(destination[X_AXIS]);MYSERIAL.println(destination[Y_AXIS]);
               MYSERIAL.println(destination[Z_AXIS]);MYSERIAL.println(destination[E_AXIS]);
               MYSERIAL.println(destination[Z_AXIS]);MYSERIAL.println(destination[E_AXIS]);
               MYSERIAL.println(feedrate);MYSERIAL.println(active_extruder);
               MYSERIAL.println(feedrate);MYSERIAL.println(active_extruder);
 #endif
 #endif
-              plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate, active_extruder);
+              plan_buffer_line_destinationXYZE(feedrate);
               st_synchronize();
               st_synchronize();
               current_position[X_AXIS] = destination[X_AXIS];
               current_position[X_AXIS] = destination[X_AXIS];
               current_position[Y_AXIS] = destination[Y_AXIS];
               current_position[Y_AXIS] = destination[Y_AXIS];
@@ -2703,8 +2717,8 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon
             feedrate = XY_TRAVEL_SPEED/60;
             feedrate = XY_TRAVEL_SPEED/60;
             current_position[Z_AXIS] = 0;
             current_position[Z_AXIS] = 0;
 
 
-            plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
-            plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate, active_extruder);
+            plan_set_position_curposXYZE();
+            plan_buffer_line_destinationXYZE(feedrate);
             st_synchronize();
             st_synchronize();
             current_position[X_AXIS] = destination[X_AXIS];
             current_position[X_AXIS] = destination[X_AXIS];
             current_position[Y_AXIS] = destination[Y_AXIS];
             current_position[Y_AXIS] = destination[Y_AXIS];
@@ -2720,10 +2734,10 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon
               && (current_position[Y_AXIS]+Y_PROBE_OFFSET_FROM_EXTRUDER <= Y_MAX_POS)) {
               && (current_position[Y_AXIS]+Y_PROBE_OFFSET_FROM_EXTRUDER <= Y_MAX_POS)) {
 
 
               current_position[Z_AXIS] = 0;
               current_position[Z_AXIS] = 0;
-              plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+              plan_set_position_curposXYZE();
               destination[Z_AXIS] = Z_RAISE_BEFORE_HOMING * home_dir(Z_AXIS) * (-1);    // Set destination away from bed
               destination[Z_AXIS] = Z_RAISE_BEFORE_HOMING * home_dir(Z_AXIS) * (-1);    // Set destination away from bed
               feedrate = max_feedrate[Z_AXIS];
               feedrate = max_feedrate[Z_AXIS];
-              plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate, active_extruder);
+              plan_buffer_line_destinationXYZE(feedrate);
               st_synchronize();
               st_synchronize();
 
 
               homeaxis(Z_AXIS);
               homeaxis(Z_AXIS);
@@ -2750,7 +2764,7 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon
       // Set the planner and stepper routine positions.
       // Set the planner and stepper routine positions.
       // At this point the mesh bed leveling and world2machine corrections are disabled and current_position
       // At this point the mesh bed leveling and world2machine corrections are disabled and current_position
       // contains the machine coordinates.
       // contains the machine coordinates.
-      plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+      plan_set_position_curposXYZE();
 
 
       #ifdef ENDSTOPS_ONLY_FOR_HOMING
       #ifdef ENDSTOPS_ONLY_FOR_HOMING
         enable_endstops(false);
         enable_endstops(false);
@@ -2862,7 +2876,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
 	enable_endstops(false);
 	enable_endstops(false);
 	current_position[X_AXIS] += 5;
 	current_position[X_AXIS] += 5;
 	current_position[Y_AXIS] += 5;
 	current_position[Y_AXIS] += 5;
-	plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40, active_extruder);
+	plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40);
 	st_synchronize();
 	st_synchronize();
 
 
 	// Let the user move the Z axes up to the end stoppers.
 	// Let the user move the Z axes up to the end stoppers.
@@ -2912,7 +2926,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
 			
 			
 		bool endstops_enabled  = enable_endstops(false);
 		bool endstops_enabled  = enable_endstops(false);
         current_position[Z_AXIS] -= 1; //move 1mm down with disabled endstop
         current_position[Z_AXIS] -= 1; //move 1mm down with disabled endstop
-        plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40, active_extruder);
+        plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40);
         st_synchronize();
         st_synchronize();
 
 
 		// Move the print head close to the bed.
 		// Move the print head close to the bed.
@@ -2923,7 +2937,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
 		tmc2130_home_enter(Z_AXIS_MASK);
 		tmc2130_home_enter(Z_AXIS_MASK);
 #endif //TMC2130
 #endif //TMC2130
 
 
-		plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40, active_extruder);
+		plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40);
 
 
 		st_synchronize();
 		st_synchronize();
 #ifdef TMC2130
 #ifdef TMC2130
@@ -2964,7 +2978,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
 				clean_up_after_endstop_move(l_feedmultiply);
 				clean_up_after_endstop_move(l_feedmultiply);
 				// Print head up.
 				// Print head up.
 				current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
 				current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
-				plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40, active_extruder);
+				plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40);
 				st_synchronize();
 				st_synchronize();
 //#ifndef NEW_XYZCAL
 //#ifndef NEW_XYZCAL
 				if (result >= 0)
 				if (result >= 0)
@@ -2984,7 +2998,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
 					clean_up_after_endstop_move(l_feedmultiply);
 					clean_up_after_endstop_move(l_feedmultiply);
 					// Print head up.
 					// Print head up.
 					current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
 					current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
-					plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40, active_extruder);
+					plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40);
 					st_synchronize();
 					st_synchronize();
 					// if (result >= 0) babystep_apply();					
 					// if (result >= 0) babystep_apply();					
 					#endif //HEATBED_V2
 					#endif //HEATBED_V2
@@ -3097,18 +3111,18 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float
 
 
     //Retract E
     //Retract E
     current_position[E_AXIS] += e_shift;
     current_position[E_AXIS] += e_shift;
-    plan_buffer_line_curposXYZE(FILAMENTCHANGE_RFEED, active_extruder);
+    plan_buffer_line_curposXYZE(FILAMENTCHANGE_RFEED);
     st_synchronize();
     st_synchronize();
 
 
     //Lift Z
     //Lift Z
     current_position[Z_AXIS] += z_shift;
     current_position[Z_AXIS] += z_shift;
-    plan_buffer_line_curposXYZE(FILAMENTCHANGE_ZFEED, active_extruder);
+    plan_buffer_line_curposXYZE(FILAMENTCHANGE_ZFEED);
     st_synchronize();
     st_synchronize();
 
 
     //Move XY to side
     //Move XY to side
     current_position[X_AXIS] = x_position;
     current_position[X_AXIS] = x_position;
     current_position[Y_AXIS] = y_position;
     current_position[Y_AXIS] = y_position;
-    plan_buffer_line_curposXYZE(FILAMENTCHANGE_XYFEED, active_extruder);
+    plan_buffer_line_curposXYZE(FILAMENTCHANGE_XYFEED);
     st_synchronize();
     st_synchronize();
 
 
     //Beep, manage nozzle heater and wait for user to start unload filament
     //Beep, manage nozzle heater and wait for user to start unload filament
@@ -3133,7 +3147,7 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float
 			lcd_set_cursor(0, 2);
 			lcd_set_cursor(0, 2);
 			lcd_puts_P(_T(MSG_PLEASE_WAIT));
 			lcd_puts_P(_T(MSG_PLEASE_WAIT));
 			current_position[X_AXIS] -= 100;
 			current_position[X_AXIS] -= 100;
-			plan_buffer_line_curposXYZE(FILAMENTCHANGE_XYFEED, active_extruder);
+			plan_buffer_line_curposXYZE(FILAMENTCHANGE_XYFEED);
 			st_synchronize();
 			st_synchronize();
 			lcd_show_fullscreen_message_and_wait_P(_i("Please open idler and remove filament manually."));////MSG_CHECK_IDLER c=20 r=4
 			lcd_show_fullscreen_message_and_wait_P(_i("Please open idler and remove filament manually."));////MSG_CHECK_IDLER c=20 r=4
         }
         }
@@ -3170,7 +3184,7 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float
     if (!automatic)
     if (!automatic)
     {
     {
         current_position[E_AXIS] += FILAMENTCHANGE_RECFEED;
         current_position[E_AXIS] += FILAMENTCHANGE_RECFEED;
-        plan_buffer_line_curposXYZE(FILAMENTCHANGE_EXFEED, active_extruder);
+        plan_buffer_line_curposXYZE(FILAMENTCHANGE_EXFEED);
     }
     }
 
 
     //Move XY back
     //Move XY back
@@ -3228,12 +3242,12 @@ void gcode_M701()
 
 
 		lcd_setstatuspgm(_T(MSG_LOADING_FILAMENT));
 		lcd_setstatuspgm(_T(MSG_LOADING_FILAMENT));
 		current_position[E_AXIS] += 40;
 		current_position[E_AXIS] += 40;
-		plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence
+		plan_buffer_line_curposXYZE(400 / 60); //fast sequence
 		st_synchronize();
 		st_synchronize();
 
 
         raise_z_above(MIN_Z_FOR_LOAD, false);
         raise_z_above(MIN_Z_FOR_LOAD, false);
 		current_position[E_AXIS] += 30;
 		current_position[E_AXIS] += 30;
-		plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence
+		plan_buffer_line_curposXYZE(400 / 60); //fast sequence
 		
 		
 		load_filament_final_feed(); //slow sequence
 		load_filament_final_feed(); //slow sequence
 		st_synchronize();
 		st_synchronize();
@@ -3399,8 +3413,7 @@ static void gcode_G92()
             current_position[E_AXIS] = values[E_AXIS];
             current_position[E_AXIS] = values[E_AXIS];
 
 
         // Set all at once
         // Set all at once
-        plan_set_position(current_position[X_AXIS], current_position[Y_AXIS],
-                          current_position[Z_AXIS], current_position[E_AXIS]);
+        plan_set_position_curposXYZE();
     }
     }
 }
 }
 
 
@@ -3807,9 +3820,7 @@ void process_commands()
 #if (defined(WATCHDOG) && (MOTHERBOARD == BOARD_EINSY_1_0a))
 #if (defined(WATCHDOG) && (MOTHERBOARD == BOARD_EINSY_1_0a))
                 boot_app_magic = BOOT_APP_MAGIC;
                 boot_app_magic = BOOT_APP_MAGIC;
                 boot_app_flags = BOOT_APP_FLG_RUN;
                 boot_app_flags = BOOT_APP_FLG_RUN;
-				wdt_enable(WDTO_15MS);
-				cli();
-				while(1);
+                softReset();
 #else //WATCHDOG
 #else //WATCHDOG
                 asm volatile("jmp 0x3E000");
                 asm volatile("jmp 0x3E000");
 #endif //WATCHDOG
 #endif //WATCHDOG
@@ -4353,7 +4364,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
             current_position[X_AXIS] = uncorrected_position.x;
             current_position[X_AXIS] = uncorrected_position.x;
             current_position[Y_AXIS] = uncorrected_position.y;
             current_position[Y_AXIS] = uncorrected_position.y;
             current_position[Z_AXIS] = uncorrected_position.z;
             current_position[Z_AXIS] = uncorrected_position.z;
-            plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+            plan_set_position_curposXYZE();
             int l_feedmultiply = setup_for_endstop_move();
             int l_feedmultiply = setup_for_endstop_move();
 
 
             feedrate = homing_feedrate[Z_AXIS];
             feedrate = homing_feedrate[Z_AXIS];
@@ -4467,7 +4478,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 
 
             apply_rotation_xyz(plan_bed_level_matrix, x_tmp, y_tmp, z_tmp);         //Apply the correction sending the probe offset
             apply_rotation_xyz(plan_bed_level_matrix, x_tmp, y_tmp, z_tmp);         //Apply the correction sending the probe offset
             current_position[Z_AXIS] = z_tmp - real_z + current_position[Z_AXIS];   //The difference is added to current position and sent to planner.
             current_position[Z_AXIS] = z_tmp - real_z + current_position[Z_AXIS];   //The difference is added to current position and sent to planner.
-            plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+            plan_set_position_curposXYZE();
         }
         }
         break;
         break;
 #ifndef Z_PROBE_SLED
 #ifndef Z_PROBE_SLED
@@ -4555,11 +4566,15 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
   /*!
   /*!
   ### G76 - PINDA probe temperature calibration <a href="https://reprap.org/wiki/G-code#G76:_PINDA_probe_temperature_calibration">G76: PINDA probe temperature calibration</a>
   ### G76 - PINDA probe temperature calibration <a href="https://reprap.org/wiki/G-code#G76:_PINDA_probe_temperature_calibration">G76: PINDA probe temperature calibration</a>
   This G-code is used to calibrate the temperature drift of the PINDA (inductive Sensor).
   This G-code is used to calibrate the temperature drift of the PINDA (inductive Sensor).
-  
+
   The PINDAv2 sensor has a built-in thermistor which has the advantage that the calibration can be done once for all materials.
   The PINDAv2 sensor has a built-in thermistor which has the advantage that the calibration can be done once for all materials.
   
   
   The Original i3 Prusa MK2/s uses PINDAv1 and this calibration improves the temperature drift, but not as good as the PINDAv2.
   The Original i3 Prusa MK2/s uses PINDAv1 and this calibration improves the temperature drift, but not as good as the PINDAv2.
 
 
+  superPINDA sensor has internal temperature compensation and no thermistor output. There is no point of doing temperature calibration in such case.
+  If PINDA_THERMISTOR and DETECT_SUPERPINDA is defined during compilation, calibration is skipped with serial message "No PINDA thermistor".
+  This can be caused also if PINDA thermistor connection is broken or PINDA temperature is lower than PINDA_MINTEMP.
+
   #### Example
   #### Example
   
   
   ```
   ```
@@ -4574,154 +4589,155 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
   case 76: 
   case 76: 
 	{
 	{
 #ifdef PINDA_THERMISTOR
 #ifdef PINDA_THERMISTOR
-		if (true)
-		{
+        if (!has_temperature_compensation())
+        {
+            SERIAL_ECHOLNPGM("No PINDA thermistor");
+            break;
+        }
 
 
-			if (calibration_status() >= CALIBRATION_STATUS_XYZ_CALIBRATION) {
-				//we need to know accurate position of first calibration point
-				//if xyz calibration was not performed yet, interrupt temperature calibration and inform user that xyz cal. is needed
-				lcd_show_fullscreen_message_and_wait_P(_i("Please run XYZ calibration first."));
-				break;
-			}
-			
-			if (!(axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS]))
-			{
-				// We don't know where we are! HOME!
-				// Push the commands to the front of the message queue in the reverse order!
-				// There shall be always enough space reserved for these commands.
-				repeatcommand_front(); // repeat G76 with all its parameters
-				enquecommand_front_P((PSTR("G28 W0")));
-				break;
-			}
-			lcd_show_fullscreen_message_and_wait_P(_i("Stable ambient temperature 21-26C is needed a rigid stand is required."));////MSG_TEMP_CAL_WARNING c=20 r=4
-			bool result = lcd_show_fullscreen_message_yes_no_and_wait_P(_T(MSG_STEEL_SHEET_CHECK), false, false);
-			
-			if (result)
-			{
-				current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
-				plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-				current_position[Z_AXIS] = 50;
-				current_position[Y_AXIS] = 180;
-				plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-				st_synchronize();
-				lcd_show_fullscreen_message_and_wait_P(_T(MSG_REMOVE_STEEL_SHEET));
-				current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1);
-				current_position[X_AXIS] = pgm_read_float(bed_ref_points_4);
-				plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-				st_synchronize();
-				gcode_G28(false, false, true);
+        if (calibration_status() >= CALIBRATION_STATUS_XYZ_CALIBRATION) {
+            //we need to know accurate position of first calibration point
+            //if xyz calibration was not performed yet, interrupt temperature calibration and inform user that xyz cal. is needed
+            lcd_show_fullscreen_message_and_wait_P(_i("Please run XYZ calibration first."));
+            break;
+        }
 
 
-			}
-			if ((current_temperature_pinda > 35) && (farm_mode == false)) {
-				//waiting for PIDNA probe to cool down in case that we are not in farm mode
-				current_position[Z_AXIS] = 100;
-				plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-				if (lcd_wait_for_pinda(35) == false) { //waiting for PINDA probe to cool, if this takes more then time expected, temp. cal. fails
-					lcd_temp_cal_show_result(false);
-					break;
-				}
-			}
-			lcd_update_enable(true);
-			KEEPALIVE_STATE(NOT_BUSY); //no need to print busy messages as we print current temperatures periodicaly
-			SERIAL_ECHOLNPGM("PINDA probe calibration start");
+        if (!(axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS]))
+        {
+            // We don't know where we are! HOME!
+            // Push the commands to the front of the message queue in the reverse order!
+            // There shall be always enough space reserved for these commands.
+            repeatcommand_front(); // repeat G76 with all its parameters
+            enquecommand_front_P((PSTR("G28 W0")));
+            break;
+        }
+        lcd_show_fullscreen_message_and_wait_P(_i("Stable ambient temperature 21-26C is needed a rigid stand is required."));////MSG_TEMP_CAL_WARNING c=20 r=4
+        bool result = lcd_show_fullscreen_message_yes_no_and_wait_P(_T(MSG_STEEL_SHEET_CHECK), false, false);
+
+        if (result)
+        {
+            current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
+            plan_buffer_line_curposXYZE(3000 / 60);
+            current_position[Z_AXIS] = 50;
+            current_position[Y_AXIS] = 180;
+            plan_buffer_line_curposXYZE(3000 / 60);
+            st_synchronize();
+            lcd_show_fullscreen_message_and_wait_P(_T(MSG_REMOVE_STEEL_SHEET));
+            current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1);
+            current_position[X_AXIS] = pgm_read_float(bed_ref_points_4);
+            plan_buffer_line_curposXYZE(3000 / 60);
+            st_synchronize();
+            gcode_G28(false, false, true);
+
+        }
+        if ((current_temperature_pinda > 35) && (farm_mode == false)) {
+            //waiting for PIDNA probe to cool down in case that we are not in farm mode
+            current_position[Z_AXIS] = 100;
+            plan_buffer_line_curposXYZE(3000 / 60);
+            if (lcd_wait_for_pinda(35) == false) { //waiting for PINDA probe to cool, if this takes more then time expected, temp. cal. fails
+                lcd_temp_cal_show_result(false);
+                break;
+            }
+        }
+        lcd_update_enable(true);
+        KEEPALIVE_STATE(NOT_BUSY); //no need to print busy messages as we print current temperatures periodicaly
+        SERIAL_ECHOLNPGM("PINDA probe calibration start");
 
 
-			float zero_z;
-			int z_shift = 0; //unit: steps
-			float start_temp = 5 * (int)(current_temperature_pinda / 5);
-			if (start_temp < 35) start_temp = 35;
-			if (start_temp < current_temperature_pinda) start_temp += 5;
-			printf_P(_N("start temperature: %.1f\n"), start_temp);
+        float zero_z;
+        int z_shift = 0; //unit: steps
+        float start_temp = 5 * (int)(current_temperature_pinda / 5);
+        if (start_temp < 35) start_temp = 35;
+        if (start_temp < current_temperature_pinda) start_temp += 5;
+        printf_P(_N("start temperature: %.1f\n"), start_temp);
 
 
 //			setTargetHotend(200, 0);
 //			setTargetHotend(200, 0);
-			setTargetBed(70 + (start_temp - 30));
+        setTargetBed(70 + (start_temp - 30));
 
 
-			custom_message_type = CustomMsg::TempCal;
-			custom_message_state = 1;
-			lcd_setstatuspgm(_T(MSG_TEMP_CALIBRATION));
-			current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
-			plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-			current_position[X_AXIS] = PINDA_PREHEAT_X;
-			current_position[Y_AXIS] = PINDA_PREHEAT_Y;
-			plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-			current_position[Z_AXIS] = PINDA_PREHEAT_Z;
-			plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-			st_synchronize();
+        custom_message_type = CustomMsg::TempCal;
+        custom_message_state = 1;
+        lcd_setstatuspgm(_T(MSG_TEMP_CALIBRATION));
+        current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
+        plan_buffer_line_curposXYZE(3000 / 60);
+        current_position[X_AXIS] = PINDA_PREHEAT_X;
+        current_position[Y_AXIS] = PINDA_PREHEAT_Y;
+        plan_buffer_line_curposXYZE(3000 / 60);
+        current_position[Z_AXIS] = PINDA_PREHEAT_Z;
+        plan_buffer_line_curposXYZE(3000 / 60);
+        st_synchronize();
 
 
-			while (current_temperature_pinda < start_temp)
-			{
-				delay_keep_alive(1000);
-				serialecho_temperatures();
-			}
+        while (current_temperature_pinda < start_temp)
+        {
+            delay_keep_alive(1000);
+            serialecho_temperatures();
+        }
 
 
-			eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); //invalidate temp. calibration in case that in will be aborted during the calibration process 
+        eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); //invalidate temp. calibration in case that in will be aborted during the calibration process
 
 
-			current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
-			plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-			current_position[X_AXIS] = pgm_read_float(bed_ref_points_4);
-			current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1);
-			plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-			st_synchronize();
+        current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
+        plan_buffer_line_curposXYZE(3000 / 60);
+        current_position[X_AXIS] = pgm_read_float(bed_ref_points_4);
+        current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1);
+        plan_buffer_line_curposXYZE(3000 / 60);
+        st_synchronize();
 
 
-			bool find_z_result = find_bed_induction_sensor_point_z(-1.f);
-			if (find_z_result == false) {
-				lcd_temp_cal_show_result(find_z_result);
-				break;
-			}
-			zero_z = current_position[Z_AXIS];
+        bool find_z_result = find_bed_induction_sensor_point_z(-1.f);
+        if (find_z_result == false) {
+            lcd_temp_cal_show_result(find_z_result);
+            break;
+        }
+        zero_z = current_position[Z_AXIS];
 
 
-			printf_P(_N("\nZERO: %.3f\n"), current_position[Z_AXIS]);
+        printf_P(_N("\nZERO: %.3f\n"), current_position[Z_AXIS]);
 
 
-			int i = -1; for (; i < 5; i++)
-			{
-				float temp = (40 + i * 5);
-				printf_P(_N("\nStep: %d/6 (skipped)\nPINDA temperature: %d Z shift (mm):0\n"), i + 2, (40 + i*5));
-				if (i >= 0) EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift);
-				if (start_temp <= temp) break;
-			}
+        int i = -1; for (; i < 5; i++)
+        {
+            float temp = (40 + i * 5);
+            printf_P(_N("\nStep: %d/6 (skipped)\nPINDA temperature: %d Z shift (mm):0\n"), i + 2, (40 + i*5));
+            if (i >= 0) EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift);
+            if (start_temp <= temp) break;
+        }
 
 
-			for (i++; i < 5; i++)
-			{
-				float temp = (40 + i * 5);
-				printf_P(_N("\nStep: %d/6\n"), i + 2);
-				custom_message_state = i + 2;
-				setTargetBed(50 + 10 * (temp - 30) / 5);
+        for (i++; i < 5; i++)
+        {
+            float temp = (40 + i * 5);
+            printf_P(_N("\nStep: %d/6\n"), i + 2);
+            custom_message_state = i + 2;
+            setTargetBed(50 + 10 * (temp - 30) / 5);
 //				setTargetHotend(255, 0);
 //				setTargetHotend(255, 0);
-				current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
-				plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-				current_position[X_AXIS] = PINDA_PREHEAT_X;
-				current_position[Y_AXIS] = PINDA_PREHEAT_Y;
-				plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-				current_position[Z_AXIS] = PINDA_PREHEAT_Z;
-				plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-				st_synchronize();
-				while (current_temperature_pinda < temp)
-				{
-					delay_keep_alive(1000);
-					serialecho_temperatures();
-				}
-				current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
-				plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-				current_position[X_AXIS] = pgm_read_float(bed_ref_points_4);
-				current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1);
-				plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
-				st_synchronize();
-				find_z_result = find_bed_induction_sensor_point_z(-1.f);
-				if (find_z_result == false) {
-					lcd_temp_cal_show_result(find_z_result);
-					break;
-				}
-				z_shift = (int)((current_position[Z_AXIS] - zero_z)*cs.axis_steps_per_unit[Z_AXIS]);
+            current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
+            plan_buffer_line_curposXYZE(3000 / 60);
+            current_position[X_AXIS] = PINDA_PREHEAT_X;
+            current_position[Y_AXIS] = PINDA_PREHEAT_Y;
+            plan_buffer_line_curposXYZE(3000 / 60);
+            current_position[Z_AXIS] = PINDA_PREHEAT_Z;
+            plan_buffer_line_curposXYZE(3000 / 60);
+            st_synchronize();
+            while (current_temperature_pinda < temp)
+            {
+                delay_keep_alive(1000);
+                serialecho_temperatures();
+            }
+            current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
+            plan_buffer_line_curposXYZE(3000 / 60);
+            current_position[X_AXIS] = pgm_read_float(bed_ref_points_4);
+            current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + 1);
+            plan_buffer_line_curposXYZE(3000 / 60);
+            st_synchronize();
+            find_z_result = find_bed_induction_sensor_point_z(-1.f);
+            if (find_z_result == false) {
+                lcd_temp_cal_show_result(find_z_result);
+                break;
+            }
+            z_shift = (int)((current_position[Z_AXIS] - zero_z)*cs.axis_steps_per_unit[Z_AXIS]);
 
 
-				printf_P(_N("\nPINDA temperature: %.1f Z shift (mm): %.3f"), current_temperature_pinda, current_position[Z_AXIS] - zero_z);
+            printf_P(_N("\nPINDA temperature: %.1f Z shift (mm): %.3f"), current_temperature_pinda, current_position[Z_AXIS] - zero_z);
 
 
-				EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift);
+            EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift);
 
 
-			}
-			lcd_temp_cal_show_result(true);
+        }
+        lcd_temp_cal_show_result(true);
 
 
-			break;
-		}
-#endif //PINDA_THERMISTOR
+#else //PINDA_THERMISTOR
 
 
 		setTargetBed(PINDA_MIN_T);
 		setTargetBed(PINDA_MIN_T);
 		float zero_z;
 		float zero_z;
@@ -4743,7 +4759,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 		current_position[X_AXIS] = PINDA_PREHEAT_X;
 		current_position[X_AXIS] = PINDA_PREHEAT_X;
 		current_position[Y_AXIS] = PINDA_PREHEAT_Y;
 		current_position[Y_AXIS] = PINDA_PREHEAT_Y;
 		current_position[Z_AXIS] = PINDA_PREHEAT_Z;
 		current_position[Z_AXIS] = PINDA_PREHEAT_Z;
-		plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
+		plan_buffer_line_curposXYZE(3000 / 60);
 		st_synchronize();
 		st_synchronize();
 		
 		
 		while (abs(degBed() - PINDA_MIN_T) > 1) {
 		while (abs(degBed() - PINDA_MIN_T) > 1) {
@@ -4759,11 +4775,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 		eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); //invalidate temp. calibration in case that in will be aborted during the calibration process 
 		eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); //invalidate temp. calibration in case that in will be aborted during the calibration process 
 
 
 		current_position[Z_AXIS] = 5;
 		current_position[Z_AXIS] = 5;
-		plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
+		plan_buffer_line_curposXYZE(3000 / 60);
 
 
 		current_position[X_AXIS] = BED_X0;
 		current_position[X_AXIS] = BED_X0;
 		current_position[Y_AXIS] = BED_Y0;
 		current_position[Y_AXIS] = BED_Y0;
-		plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
+		plan_buffer_line_curposXYZE(3000 / 60);
 		st_synchronize();
 		st_synchronize();
 		
 		
 		find_bed_induction_sensor_point_z(-1.f);
 		find_bed_induction_sensor_point_z(-1.f);
@@ -4780,7 +4796,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 			current_position[X_AXIS] = PINDA_PREHEAT_X;
 			current_position[X_AXIS] = PINDA_PREHEAT_X;
 			current_position[Y_AXIS] = PINDA_PREHEAT_Y;
 			current_position[Y_AXIS] = PINDA_PREHEAT_Y;
 			current_position[Z_AXIS] = PINDA_PREHEAT_Z;
 			current_position[Z_AXIS] = PINDA_PREHEAT_Z;
-			plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
+			plan_buffer_line_curposXYZE(3000 / 60);
 			st_synchronize();
 			st_synchronize();
 			while (degBed() < t_c) {
 			while (degBed() < t_c) {
 				delay_keep_alive(1000);
 				delay_keep_alive(1000);
@@ -4791,10 +4807,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 				serialecho_temperatures();
 				serialecho_temperatures();
 			}
 			}
 			current_position[Z_AXIS] = 5;
 			current_position[Z_AXIS] = 5;
-			plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
+			plan_buffer_line_curposXYZE(3000 / 60);
 			current_position[X_AXIS] = BED_X0;
 			current_position[X_AXIS] = BED_X0;
 			current_position[Y_AXIS] = BED_Y0;
 			current_position[Y_AXIS] = BED_Y0;
-			plan_buffer_line_curposXYZE(3000 / 60, active_extruder);
+			plan_buffer_line_curposXYZE(3000 / 60);
 			st_synchronize();
 			st_synchronize();
 			find_bed_induction_sensor_point_z(-1.f);
 			find_bed_induction_sensor_point_z(-1.f);
 			z_shift = (int)((current_position[Z_AXIS] - zero_z)*cs.axis_steps_per_unit[Z_AXIS]);
 			z_shift = (int)((current_position[Z_AXIS] - zero_z)*cs.axis_steps_per_unit[Z_AXIS]);
@@ -4817,13 +4833,12 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 			disable_e2();
 			disable_e2();
 			setTargetBed(0); //set bed target temperature back to 0
 			setTargetBed(0); //set bed target temperature back to 0
 		lcd_show_fullscreen_message_and_wait_P(_T(MSG_TEMP_CALIBRATION_DONE));
 		lcd_show_fullscreen_message_and_wait_P(_T(MSG_TEMP_CALIBRATION_DONE));
-		temp_cal_active = true;
 		eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, 1);
 		eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, 1);
 		lcd_update_enable(true);
 		lcd_update_enable(true);
 		lcd_update(2);		
 		lcd_update(2);		
 
 
 		
 		
-
+#endif //PINDA_THERMISTOR
 	}
 	}
 	break;
 	break;
 
 
@@ -4937,7 +4952,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 		// Cycle through all points and probe them
 		// Cycle through all points and probe them
 		// First move up. During this first movement, the babystepping will be reverted.
 		// First move up. During this first movement, the babystepping will be reverted.
 		current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
 		current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
-		plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60, active_extruder);
+		plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60);
 		// The move to the first calibration point.
 		// The move to the first calibration point.
 		current_position[X_AXIS] = BED_X0;
 		current_position[X_AXIS] = BED_X0;
 		current_position[Y_AXIS] = BED_Y0;
 		current_position[Y_AXIS] = BED_Y0;
@@ -4952,7 +4967,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 			world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]);
 			world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]);
 		#endif //SUPPORT_VERBOSITY
 		#endif //SUPPORT_VERBOSITY
 
 
-		plan_buffer_line_curposXYZE(homing_feedrate[X_AXIS] / 30, active_extruder);
+		plan_buffer_line_curposXYZE(homing_feedrate[X_AXIS] / 30);
 		// Wait until the move is finished.
 		// Wait until the move is finished.
 		st_synchronize();
 		st_synchronize();
 
 
@@ -4967,7 +4982,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 		}
 		}
 		#endif // SUPPORT_VERBOSITY
 		#endif // SUPPORT_VERBOSITY
 		int l_feedmultiply = setup_for_endstop_move(false); //save feedrate and feedmultiply, sets feedmultiply to 100
 		int l_feedmultiply = setup_for_endstop_move(false); //save feedrate and feedmultiply, sets feedmultiply to 100
-		const char *kill_message = NULL;
 		while (mesh_point != nMeasPoints * nMeasPoints) {
 		while (mesh_point != nMeasPoints * nMeasPoints) {
 			// Get coords of a measuring point.
 			// Get coords of a measuring point.
 			uint8_t ix = mesh_point % nMeasPoints; // from 0 to MESH_NUM_X_POINTS - 1
 			uint8_t ix = mesh_point % nMeasPoints; // from 0 to MESH_NUM_X_POINTS - 1
@@ -5004,7 +5018,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 			if((ix == 0) && (iy == 0)) current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
 			if((ix == 0) && (iy == 0)) current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
 			else current_position[Z_AXIS] += 2.f / nMeasPoints; //use relative movement from Z coordinate where PINDa triggered on previous point. This makes calibration faster.
 			else current_position[Z_AXIS] += 2.f / nMeasPoints; //use relative movement from Z coordinate where PINDa triggered on previous point. This makes calibration faster.
 			float init_z_bckp = current_position[Z_AXIS];
 			float init_z_bckp = current_position[Z_AXIS];
-			plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder);
+			plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE);
 			st_synchronize();
 			st_synchronize();
 
 
 			// Move to XY position of the sensor point.
 			// Move to XY position of the sensor point.
@@ -5025,7 +5039,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 			#endif // SUPPORT_VERBOSITY
 			#endif // SUPPORT_VERBOSITY
 
 
 			//printf_P(PSTR("after clamping: [%f;%f]\n"), current_position[X_AXIS], current_position[Y_AXIS]);
 			//printf_P(PSTR("after clamping: [%f;%f]\n"), current_position[X_AXIS], current_position[Y_AXIS]);
-			plan_buffer_line_curposXYZE(XY_AXIS_FEEDRATE, active_extruder);
+			plan_buffer_line_curposXYZE(XY_AXIS_FEEDRATE);
 			st_synchronize();
 			st_synchronize();
 
 
 			// Go down until endstop is hit
 			// Go down until endstop is hit
@@ -5037,7 +5051,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 			if (init_z_bckp - current_position[Z_AXIS] < 0.1f) { //broken cable or initial Z coordinate too low. Go to MESH_HOME_Z_SEARCH and repeat last step (z-probe) again to distinguish between these two cases.
 			if (init_z_bckp - current_position[Z_AXIS] < 0.1f) { //broken cable or initial Z coordinate too low. Go to MESH_HOME_Z_SEARCH and repeat last step (z-probe) again to distinguish between these two cases.
 				//printf_P(PSTR("Another attempt! Current Z position: %f\n"), current_position[Z_AXIS]);
 				//printf_P(PSTR("Another attempt! Current Z position: %f\n"), current_position[Z_AXIS]);
 				current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
 				current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
-				plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder);
+				plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE);
 				st_synchronize();
 				st_synchronize();
 
 
 				if (!find_bed_induction_sensor_point_z((has_z && mesh_point > 0) ? z0 - Z_CALIBRATION_THRESHOLD : -10.f, nProbeRetry)) { //if we have data from z calibration max allowed difference is 1mm for each point, if we dont have data max difference is 10mm from initial point  
 				if (!find_bed_induction_sensor_point_z((has_z && mesh_point > 0) ? z0 - Z_CALIBRATION_THRESHOLD : -10.f, nProbeRetry)) { //if we have data from z calibration max allowed difference is 1mm for each point, if we dont have data max difference is 10mm from initial point  
@@ -5092,7 +5106,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 			MYSERIAL.print(current_position[Z_AXIS], 5);
 			MYSERIAL.print(current_position[Z_AXIS], 5);
 		}
 		}
 		#endif // SUPPORT_VERBOSITY
 		#endif // SUPPORT_VERBOSITY
-		plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder);
+		plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE);
 		st_synchronize();
 		st_synchronize();
 		if (mesh_point != nMeasPoints * nMeasPoints) {
 		if (mesh_point != nMeasPoints * nMeasPoints) {
                Sound_MakeSound(e_SOUND_TYPE_StandardAlert);
                Sound_MakeSound(e_SOUND_TYPE_StandardAlert);
@@ -5109,14 +5123,14 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
                     // ~ Z-homing (can not be used "G28", because X & Y-homing would have been done before (Z-homing))
                     // ~ Z-homing (can not be used "G28", because X & Y-homing would have been done before (Z-homing))
                     bState=enable_z_endstop(false);
                     bState=enable_z_endstop(false);
                     current_position[Z_AXIS] -= 1;
                     current_position[Z_AXIS] -= 1;
-                    plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40, active_extruder);
+                    plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40);
                     st_synchronize();
                     st_synchronize();
                     enable_z_endstop(true);
                     enable_z_endstop(true);
 #ifdef TMC2130
 #ifdef TMC2130
                     tmc2130_home_enter(Z_AXIS_MASK);
                     tmc2130_home_enter(Z_AXIS_MASK);
 #endif // TMC2130
 #endif // TMC2130
                     current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
                     current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
-                    plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40, active_extruder);
+                    plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 40);
                     st_synchronize();
                     st_synchronize();
 #ifdef TMC2130
 #ifdef TMC2130
                     tmc2130_home_exit();
                     tmc2130_home_exit();
@@ -5244,9 +5258,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
 		go_home_with_z_lift();
 		go_home_with_z_lift();
 //		SERIAL_ECHOLNPGM("Go home finished");
 //		SERIAL_ECHOLNPGM("Go home finished");
 		//unretract (after PINDA preheat retraction)
 		//unretract (after PINDA preheat retraction)
-		if (degHotend(active_extruder) > EXTRUDE_MINTEMP && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) {
+		if ((degHotend(active_extruder) > EXTRUDE_MINTEMP) && eeprom_read_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE) && calibration_status_pinda() && (target_temperature_bed >= 50)) {
 			current_position[E_AXIS] += default_retraction;
 			current_position[E_AXIS] += default_retraction;
-			plan_buffer_line_curposXYZE(400, active_extruder);
+			plan_buffer_line_curposXYZE(400);
 		}
 		}
 		KEEPALIVE_STATE(NOT_BUSY);
 		KEEPALIVE_STATE(NOT_BUSY);
 		// Restore custom message state
 		// Restore custom message state
@@ -5268,7 +5282,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
             if (mbl.active) {
             if (mbl.active) {
                 SERIAL_PROTOCOLPGM("Num X,Y: ");
                 SERIAL_PROTOCOLPGM("Num X,Y: ");
                 SERIAL_PROTOCOL(MESH_NUM_X_POINTS);
                 SERIAL_PROTOCOL(MESH_NUM_X_POINTS);
-                SERIAL_PROTOCOLPGM(",");
+                SERIAL_PROTOCOL(',');
                 SERIAL_PROTOCOL(MESH_NUM_Y_POINTS);
                 SERIAL_PROTOCOL(MESH_NUM_Y_POINTS);
                 SERIAL_PROTOCOLPGM("\nZ search height: ");
                 SERIAL_PROTOCOLPGM("\nZ search height: ");
                 SERIAL_PROTOCOL(MESH_HOME_Z_SEARCH);
                 SERIAL_PROTOCOL(MESH_HOME_Z_SEARCH);
@@ -5278,7 +5292,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
                         SERIAL_PROTOCOLPGM("  ");
                         SERIAL_PROTOCOLPGM("  ");
                         SERIAL_PROTOCOL_F(mbl.z_values[y][x], 5);
                         SERIAL_PROTOCOL_F(mbl.z_values[y][x], 5);
                     }
                     }
-                    SERIAL_PROTOCOLPGM("\n");
+                    SERIAL_PROTOCOLLN();
                 }
                 }
             }
             }
             else
             else
@@ -6288,7 +6302,7 @@ Sigma_Exit:
         for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder) {
         for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder) {
           SERIAL_PROTOCOLPGM(" T");
           SERIAL_PROTOCOLPGM(" T");
           SERIAL_PROTOCOL(cur_extruder);
           SERIAL_PROTOCOL(cur_extruder);
-          SERIAL_PROTOCOLPGM(":");
+          SERIAL_PROTOCOL(':');
           SERIAL_PROTOCOL_F(degHotend(cur_extruder),1);
           SERIAL_PROTOCOL_F(degHotend(cur_extruder),1);
           SERIAL_PROTOCOLPGM(" /");
           SERIAL_PROTOCOLPGM(" /");
           SERIAL_PROTOCOL_F(degTargetHotend(cur_extruder),1);
           SERIAL_PROTOCOL_F(degTargetHotend(cur_extruder),1);
@@ -7973,9 +7987,8 @@ Sigma_Exit:
 			{
 			{
 				SERIAL_PROTOCOLPGM("P:");
 				SERIAL_PROTOCOLPGM("P:");
 				SERIAL_PROTOCOL_F(current_temperature_pinda, 1);
 				SERIAL_PROTOCOL_F(current_temperature_pinda, 1);
-				SERIAL_PROTOCOLPGM("/");
-				SERIAL_PROTOCOL(set_target_pinda);
-				SERIAL_PROTOCOLLN("");
+				SERIAL_PROTOCOL('/');
+				SERIAL_PROTOCOLLN(set_target_pinda);
 				codenum = _millis();
 				codenum = _millis();
 			}
 			}
 			manage_heater();
 			manage_heater();
@@ -8564,7 +8577,7 @@ Sigma_Exit:
 	break;
 	break;
 
 
     /*!
     /*!
-	### M999 - Restart after being stopped <a href="https://reprap.org/wiki/G-code#M999:_Restart_after_being_stopped_by_error">M999: Restart after being stopped by error</a>
+    ### M999 - Restart after being stopped <a href="https://reprap.org/wiki/G-code#M999:_Restart_after_being_stopped_by_error">M999: Restart after being stopped by error</a>
     @todo Usually doesn't work. Should be fixed or removed. Most of the time, if `Stopped` it set, the print fails and is unrecoverable.
     @todo Usually doesn't work. Should be fixed or removed. Most of the time, if `Stopped` it set, the print fails and is unrecoverable.
     */
     */
     case 999:
     case 999:
@@ -8724,7 +8737,7 @@ Sigma_Exit:
 #else //SNMM
 #else //SNMM
               if (tmp_extruder >= EXTRUDERS) {
               if (tmp_extruder >= EXTRUDERS) {
                   SERIAL_ECHO_START;
                   SERIAL_ECHO_START;
-                  SERIAL_ECHOPGM("T");
+                  SERIAL_ECHO('T');
                   SERIAL_PROTOCOLLN((int)tmp_extruder);
                   SERIAL_PROTOCOLLN((int)tmp_extruder);
                   SERIAL_ECHOLNRPGM(_n("Invalid extruder"));////MSG_INVALID_EXTRUDER
                   SERIAL_ECHOLNRPGM(_n("Invalid extruder"));////MSG_INVALID_EXTRUDER
               }
               }
@@ -8754,7 +8767,7 @@ Sigma_Exit:
                       }
                       }
                       // Set the new active extruder and position
                       // Set the new active extruder and position
                       active_extruder = tmp_extruder;
                       active_extruder = tmp_extruder;
-                      plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+                      plan_set_position_curposXYZE();
                       // Move to the old position if 'F' was in the parameters
                       // Move to the old position if 'F' was in the parameters
                       if (make_move && Stopped == false) {
                       if (make_move && Stopped == false) {
                           prepare_move();
                           prepare_move();
@@ -9304,13 +9317,13 @@ void prepare_move()
 
 
   // Do not use feedmultiply for E or Z only moves
   // Do not use feedmultiply for E or Z only moves
   if( (current_position[X_AXIS] == destination [X_AXIS]) && (current_position[Y_AXIS] == destination [Y_AXIS])) {
   if( (current_position[X_AXIS] == destination [X_AXIS]) && (current_position[Y_AXIS] == destination [Y_AXIS])) {
-      plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
+      plan_buffer_line_destinationXYZE(feedrate/60);
   }
   }
   else {
   else {
 #ifdef MESH_BED_LEVELING
 #ifdef MESH_BED_LEVELING
     mesh_plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply*(1./(60.f*100.f)), active_extruder);
     mesh_plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply*(1./(60.f*100.f)), active_extruder);
 #else
 #else
-     plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply*(1./(60.f*100.f)), active_extruder);
+     plan_buffer_line_destinationXYZE(feedrate*feedmultiply*(1./(60.f*100.f)));
 #endif
 #endif
   }
   }
 
 
@@ -9444,7 +9457,32 @@ static void handleSafetyTimer()
 }
 }
 #endif //SAFETYTIMER
 #endif //SAFETYTIMER
 
 
-#define FS_CHECK_COUNT 250
+#ifdef IR_SENSOR_ANALOG
+#define FS_CHECK_COUNT 16
+/// Switching mechanism of the fsensor type.
+/// Called from 2 spots which have a very similar behavior
+/// 1: ClFsensorPCB::_Old -> ClFsensorPCB::_Rev04 and print _i("FS v0.4 or newer")
+/// 2: ClFsensorPCB::_Rev04 -> oFsensorPCB=ClFsensorPCB::_Old and print _i("FS v0.3 or older")
+void manage_inactivity_IR_ANALOG_Check(uint16_t &nFSCheckCount, ClFsensorPCB isVersion, ClFsensorPCB switchTo, const char *statusLineTxt_P) {
+    bool bTemp = (!CHECK_ALL_HEATERS);
+    bTemp = bTemp && (menu_menu == lcd_status_screen);
+    bTemp = bTemp && ((oFsensorPCB == isVersion) || (oFsensorPCB == ClFsensorPCB::_Undef));
+    bTemp = bTemp && fsensor_enabled;
+    if (bTemp) {
+        nFSCheckCount++;
+        if (nFSCheckCount > FS_CHECK_COUNT) {
+            nFSCheckCount = 0; // not necessary
+            oFsensorPCB = switchTo;
+            eeprom_update_byte((uint8_t *)EEPROM_FSENSOR_PCB, (uint8_t)oFsensorPCB);
+            printf_IRSensorAnalogBoardChange();
+            lcd_setstatuspgm(statusLineTxt_P);
+        }
+    } else {
+        nFSCheckCount = 0;
+    }
+}
+#endif
+
 void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument set in Marlin.h
 void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument set in Marlin.h
 {
 {
 #ifdef FILAMENT_SENSOR
 #ifdef FILAMENT_SENSOR
@@ -9457,15 +9495,15 @@ static uint16_t nFSCheckCount=0;
 	{
 	{
 //-//		if (mcode_in_progress != 600) //M600 not in progress
 //-//		if (mcode_in_progress != 600) //M600 not in progress
 #ifdef PAT9125
 #ifdef PAT9125
-          bInhibitFlag=(menu_menu==lcd_menu_extruder_info); // Support::ExtruderInfo menu active
+		bInhibitFlag=(menu_menu==lcd_menu_extruder_info); // Support::ExtruderInfo menu active
 #endif // PAT9125
 #endif // PAT9125
 #ifdef IR_SENSOR
 #ifdef IR_SENSOR
-          bInhibitFlag=(menu_menu==lcd_menu_show_sensors_state); // Support::SensorInfo menu active
+		bInhibitFlag=(menu_menu==lcd_menu_show_sensors_state); // Support::SensorInfo menu active
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
-          bInhibitFlag=bInhibitFlag||bMenuFSDetect; // Settings::HWsetup::FSdetect menu active
+		bInhibitFlag=bInhibitFlag||bMenuFSDetect; // Settings::HWsetup::FSdetect menu active
 #endif // IR_SENSOR_ANALOG
 #endif // IR_SENSOR_ANALOG
 #endif // IR_SENSOR
 #endif // IR_SENSOR
-          if ((mcode_in_progress != 600) && (eFilamentAction != FilamentAction::AutoLoad) && (!bInhibitFlag)) //M600 not in progress, preHeat @ autoLoad menu not active, Support::ExtruderInfo/SensorInfo menu not active
+		if ((mcode_in_progress != 600) && (eFilamentAction != FilamentAction::AutoLoad) && (!bInhibitFlag)) //M600 not in progress, preHeat @ autoLoad menu not active, Support::ExtruderInfo/SensorInfo menu not active
 		{
 		{
 			if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE))
 			if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE))
 			{
 			{
@@ -9476,7 +9514,7 @@ static uint16_t nFSCheckCount=0;
 				if( current_voltage_raw_IR > maxVolt )maxVolt = current_voltage_raw_IR;
 				if( current_voltage_raw_IR > maxVolt )maxVolt = current_voltage_raw_IR;
 				if( current_voltage_raw_IR < minVolt )minVolt = current_voltage_raw_IR;
 				if( current_voltage_raw_IR < minVolt )minVolt = current_voltage_raw_IR;
 				
 				
-#if 0
+#if 0 // Start: IR Sensor debug info
 				{ // debug print
 				{ // debug print
 					static uint16_t lastVolt = ~0U;
 					static uint16_t lastVolt = ~0U;
 					if( current_voltage_raw_IR != lastVolt ){
 					if( current_voltage_raw_IR != lastVolt ){
@@ -9484,38 +9522,29 @@ static uint16_t nFSCheckCount=0;
 						lastVolt = current_voltage_raw_IR;
 						lastVolt = current_voltage_raw_IR;
 					}
 					}
 				}
 				}
-#endif
-				// the trouble is, I can hold the filament in the hole in such a way, that it creates the exact voltage
-				// to be detected as the new fsensor
-				// We can either fake it by extending the detection window to a looooong time
-				// or do some other countermeasures
+#endif // End: IR Sensor debug info
+				//! The trouble is, I can hold the filament in the hole in such a way, that it creates the exact voltage
+				//! to be detected as the new fsensor
+				//! We can either fake it by extending the detection window to a looooong time
+				//! or do some other countermeasures
 				
 				
-				// what we want to detect:
-				// if minvolt gets below ~0.6V, it means there is an old fsensor
-				// if maxvolt gets above 4.6V, it means we either have an old fsensor or broken cables/fsensor
-				// So I'm waiting for a situation, when minVolt gets to range <0, 0.7> and maxVolt gets into range <4.4, 5>
-				// If and only if minVolt is in range <0.6, 0.7> and maxVolt is in range <4.4, 4.5>, I'm considering a situation with the new fsensor
-				// otherwise, I don't care
-				
-				if( minVolt >= Voltage2Raw(0.3F) && minVolt <= Voltage2Raw(0.5F) 
-				 && maxVolt >= Voltage2Raw(4.2F) && maxVolt <= Voltage2Raw(4.6F)
+				//! what we want to detect:
+				//! if minvolt gets below ~0.3V, it means there is an old fsensor
+				//! if maxvolt gets above 4.6V, it means we either have an old fsensor or broken cables/fsensor
+				//! So I'm waiting for a situation, when minVolt gets to range <0, 1.5> and maxVolt gets into range <3.0, 5>
+				//! If and only if minVolt is in range <0.3, 1.5> and maxVolt is in range <3.0, 4.6>, I'm considering a situation with the new fsensor
+				if( minVolt >= IRsensor_Ldiode_TRESHOLD && minVolt <= IRsensor_Lmax_TRESHOLD 
+				 && maxVolt >= IRsensor_Hmin_TRESHOLD && maxVolt <= IRsensor_Hopen_TRESHOLD
 				){
 				){
-                    bool bTemp = (!CHECK_ALL_HEATERS);
-                    bTemp = bTemp && (menu_menu==lcd_status_screen);
-                    bTemp = bTemp && ((oFsensorPCB==ClFsensorPCB::_Old)||(oFsensorPCB==ClFsensorPCB::_Undef));
-                    bTemp = bTemp && fsensor_enabled;
-                    if(bTemp){
-                         nFSCheckCount++;
-                         if(nFSCheckCount>FS_CHECK_COUNT){
-                              nFSCheckCount=0;    // not necessary
-                              oFsensorPCB=ClFsensorPCB::_Rev04;
-                              eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB);
-                              printf_IRSensorAnalogBoardChange(true);
-                              lcd_setstatuspgm(_i("FS v0.4 or newer"));////c=18
-                         }
-                    } else {
-						nFSCheckCount=0;
-					}
+					manage_inactivity_IR_ANALOG_Check(nFSCheckCount, ClFsensorPCB::_Old, ClFsensorPCB::_Rev04, _i("FS v0.4 or newer") ); ////c=18
+				} 
+				//! If and only if minVolt is in range <0.0, 0.3> and maxVolt is in range  <4.6, 5.0V>, I'm considering a situation with the old fsensor
+				//! Note, we are not relying on one voltage here - getting just +5V can mean an old fsensor or a broken new sensor - that's why
+				//! we need to have both voltages detected correctly to allow switching back to the old fsensor.
+				else if( minVolt < IRsensor_Ldiode_TRESHOLD 
+				 && maxVolt > IRsensor_Hopen_TRESHOLD && maxVolt <= IRsensor_VMax_TRESHOLD
+				){
+					manage_inactivity_IR_ANALOG_Check(nFSCheckCount, ClFsensorPCB::_Rev04, oFsensorPCB=ClFsensorPCB::_Old, _i("FS v0.3 or older")); ////c=18
 				}
 				}
 #endif // IR_SENSOR_ANALOG
 #endif // IR_SENSOR_ANALOG
 				if (fsensor_check_autoload())
 				if (fsensor_check_autoload())
@@ -9526,7 +9555,7 @@ static uint16_t nFSCheckCount=0;
 //-//					if (degHotend0() > EXTRUDE_MINTEMP)
 //-//					if (degHotend0() > EXTRUDE_MINTEMP)
 if(0)
 if(0)
 					{
 					{
-            Sound_MakeCustom(50,1000,false);
+						Sound_MakeCustom(50,1000,false);
 						loading_flag = true;
 						loading_flag = true;
 						enquecommand_front_P((PSTR("M701")));
 						enquecommand_front_P((PSTR("M701")));
 					}
 					}
@@ -9537,20 +9566,17 @@ if(0)
 						show_preheat_nozzle_warning();
 						show_preheat_nozzle_warning();
 						lcd_update_enable(true);
 						lcd_update_enable(true);
 */
 */
-                              eFilamentAction=FilamentAction::AutoLoad;
-                              bFilamentFirstRun=false;
-                              if(target_temperature[0]>=EXTRUDE_MINTEMP)
-                              {
-                                   bFilamentPreheatState=true;
-//                                   mFilamentItem(target_temperature[0],target_temperature_bed);
-                                   menu_submenu(mFilamentItemForce);
-                              }
-                              else
-                              {
-                                   menu_submenu(lcd_generic_preheat_menu);
-                                   lcd_timeoutToStatus.start();
-                              }
-                         }
+						eFilamentAction=FilamentAction::AutoLoad;
+						bFilamentFirstRun=false;
+						if(target_temperature[0]>=EXTRUDE_MINTEMP){
+							bFilamentPreheatState=true;
+//							mFilamentItem(target_temperature[0],target_temperature_bed);
+							menu_submenu(mFilamentItemForce);
+						} else {
+							menu_submenu(lcd_generic_preheat_menu);
+							lcd_timeoutToStatus.start();
+						}
+					}
 				}
 				}
 			}
 			}
 			else
 			else
@@ -9942,7 +9968,7 @@ static void wait_for_heater(long codenum, uint8_t extruder) {
 				}
 				}
 				else
 				else
 				{
 				{
-					SERIAL_PROTOCOLLN("?");
+					SERIAL_PROTOCOLLN('?');
 				}
 				}
 			}
 			}
 #else
 #else
@@ -10073,16 +10099,16 @@ void bed_check(float x_dimension, float y_dimension, int x_points_num, int y_poi
 	card.openFile(filename_wldsd, false);
 	card.openFile(filename_wldsd, false);
 
 
 	/*destination[Z_AXIS] = mesh_home_z_search;
 	/*destination[Z_AXIS] = mesh_home_z_search;
-	//plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder);
+	//plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE);
 
 
-	plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], Z_LIFT_FEEDRATE, active_extruder);
+	plan_buffer_line_destinationXYZE(Z_LIFT_FEEDRATE);
 	for(int8_t i=0; i < NUM_AXIS; i++) {
 	for(int8_t i=0; i < NUM_AXIS; i++) {
 		current_position[i] = destination[i];
 		current_position[i] = destination[i];
 	}
 	}
 	st_synchronize();
 	st_synchronize();
 	*/
 	*/
 		destination[Z_AXIS] = measure_z_height;
 		destination[Z_AXIS] = measure_z_height;
-		plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], Z_LIFT_FEEDRATE, active_extruder);
+		plan_buffer_line_destinationXYZE(Z_LIFT_FEEDRATE);
 		for(int8_t i=0; i < NUM_AXIS; i++) {
 		for(int8_t i=0; i < NUM_AXIS; i++) {
 			current_position[i] = destination[i];
 			current_position[i] = destination[i];
 		}
 		}
@@ -10107,9 +10133,9 @@ void bed_check(float x_dimension, float y_dimension, int x_points_num, int y_poi
 		if (iy & 1) ix = (x_points_num - 1) - ix; // Zig zag
 		if (iy & 1) ix = (x_points_num - 1) - ix; // Zig zag
 		float z0 = 0.f;
 		float z0 = 0.f;
 		/*destination[Z_AXIS] = mesh_home_z_search;
 		/*destination[Z_AXIS] = mesh_home_z_search;
-		//plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder);
+		//plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE);
 
 
-		plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], Z_LIFT_FEEDRATE, active_extruder);
+		plan_buffer_line_destinationXYZE(Z_LIFT_FEEDRATE);
 		for(int8_t i=0; i < NUM_AXIS; i++) {
 		for(int8_t i=0; i < NUM_AXIS; i++) {
 			current_position[i] = destination[i];
 			current_position[i] = destination[i];
 		}
 		}
@@ -10122,8 +10148,8 @@ void bed_check(float x_dimension, float y_dimension, int x_points_num, int y_poi
 		destination[X_AXIS] = ix * (x_dimension / (x_points_num - 1)) + shift_x;
 		destination[X_AXIS] = ix * (x_dimension / (x_points_num - 1)) + shift_x;
 		destination[Y_AXIS] = iy * (y_dimension / (y_points_num - 1)) + shift_y;
 		destination[Y_AXIS] = iy * (y_dimension / (y_points_num - 1)) + shift_y;
 
 
-        mesh_plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], XY_AXIS_FEEDRATE/6, active_extruder);
-        set_current_to_destination();
+		mesh_plan_buffer_line_destinationXYZE(XY_AXIS_FEEDRATE/6);
+		set_current_to_destination();
 		st_synchronize();
 		st_synchronize();
 
 
 	//	printf_P(PSTR("X = %f; Y= %f \n"), current_position[X_AXIS], current_position[Y_AXIS]);
 	//	printf_P(PSTR("X = %f; Y= %f \n"), current_position[X_AXIS], current_position[Y_AXIS]);
@@ -10476,7 +10502,11 @@ float temp_comp_interpolation(float inp_temperature) {
 		if (i>0) EEPROM_read_B(EEPROM_PROBE_TEMP_SHIFT + (i-1) * 2, &shift[i]); //read shift in steps from EEPROM
 		if (i>0) EEPROM_read_B(EEPROM_PROBE_TEMP_SHIFT + (i-1) * 2, &shift[i]); //read shift in steps from EEPROM
 		temp_C[i] = 50 + i * 10; //temperature in C
 		temp_C[i] = 50 + i * 10; //temperature in C
 #ifdef PINDA_THERMISTOR
 #ifdef PINDA_THERMISTOR
-		temp_C[i] = 35 + i * 5; //temperature in C
+		constexpr int start_compensating_temp = 35;
+		temp_C[i] = start_compensating_temp + i * 5; //temperature in degrees C
+#ifdef DETECT_SUPERPINDA
+		static_assert(start_compensating_temp >= PINDA_MINTEMP, "Temperature compensation start point is lower than PINDA_MINTEMP.");
+#endif //DETECT_SUPERPINDA
 #else
 #else
 		temp_C[i] = 50 + i * 10; //temperature in C
 		temp_C[i] = 50 + i * 10; //temperature in C
 #endif
 #endif
@@ -10529,7 +10559,7 @@ float temp_comp_interpolation(float inp_temperature) {
 #ifdef PINDA_THERMISTOR
 #ifdef PINDA_THERMISTOR
 float temp_compensation_pinda_thermistor_offset(float temperature_pinda)
 float temp_compensation_pinda_thermistor_offset(float temperature_pinda)
 {
 {
-	if (!temp_cal_active) return 0;
+	if (!eeprom_read_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE)) return 0;
 	if (!calibration_status_pinda()) return 0;
 	if (!calibration_status_pinda()) return 0;
 	return temp_comp_interpolation(temperature_pinda) / cs.axis_steps_per_unit[Z_AXIS];
 	return temp_comp_interpolation(temperature_pinda) / cs.axis_steps_per_unit[Z_AXIS];
 }
 }
@@ -10546,12 +10576,12 @@ void long_pause() //long pause print
 	//lift z
 	//lift z
 	current_position[Z_AXIS] += Z_PAUSE_LIFT;
 	current_position[Z_AXIS] += Z_PAUSE_LIFT;
 	if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS;
 	if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS;
-	plan_buffer_line_curposXYZE(15, active_extruder);
+	plan_buffer_line_curposXYZE(15);
 
 
 	//Move XY to side
 	//Move XY to side
 	current_position[X_AXIS] = X_PAUSE_POS;
 	current_position[X_AXIS] = X_PAUSE_POS;
 	current_position[Y_AXIS] = Y_PAUSE_POS;
 	current_position[Y_AXIS] = Y_PAUSE_POS;
-	plan_buffer_line_curposXYZE(50, active_extruder);
+	plan_buffer_line_curposXYZE(50);
 
 
 	// Turn off the print fan
 	// Turn off the print fan
 	fanSpeed = 0;
 	fanSpeed = 0;
@@ -10661,7 +10691,7 @@ void uvlo_()
 
 
     // Retract
     // Retract
     current_position[E_AXIS] -= default_retraction;
     current_position[E_AXIS] -= default_retraction;
-    plan_buffer_line_curposXYZE(95, active_extruder);
+    plan_buffer_line_curposXYZE(95);
     st_synchronize();
     st_synchronize();
     disable_e0();
     disable_e0();
 
 
@@ -10674,7 +10704,7 @@ void uvlo_()
     current_position[Z_AXIS] += float(1024 - z_microsteps)
     current_position[Z_AXIS] += float(1024 - z_microsteps)
                                 / (z_res * cs.axis_steps_per_unit[Z_AXIS])
                                 / (z_res * cs.axis_steps_per_unit[Z_AXIS])
                                 + UVLO_Z_AXIS_SHIFT;
                                 + UVLO_Z_AXIS_SHIFT;
-    plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS]/60, active_extruder);
+    plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS]/60);
     st_synchronize();
     st_synchronize();
     poweroff_z();
     poweroff_z();
 
 
@@ -10737,7 +10767,7 @@ void uvlo_()
     // All is set: with all the juice left, try to move extruder away to detach the nozzle completely from the print
     // All is set: with all the juice left, try to move extruder away to detach the nozzle completely from the print
     poweron_z();
     poweron_z();
     current_position[X_AXIS] = (current_position[X_AXIS] < 0.5f * (X_MIN_POS + X_MAX_POS)) ? X_MIN_POS : X_MAX_POS;
     current_position[X_AXIS] = (current_position[X_AXIS] < 0.5f * (X_MIN_POS + X_MAX_POS)) ? X_MIN_POS : X_MAX_POS;
-    plan_buffer_line_curposXYZE(500, active_extruder);
+    plan_buffer_line_curposXYZE(500);
     st_synchronize();
     st_synchronize();
 
 
     wdt_enable(WDTO_1S);
     wdt_enable(WDTO_1S);
@@ -10788,7 +10818,7 @@ void uvlo_tiny()
         current_position[Z_AXIS] += float(1024 - z_microsteps)
         current_position[Z_AXIS] += float(1024 - z_microsteps)
                                     / (z_res * cs.axis_steps_per_unit[Z_AXIS])
                                     / (z_res * cs.axis_steps_per_unit[Z_AXIS])
                                     + UVLO_TINY_Z_AXIS_SHIFT;
                                     + UVLO_TINY_Z_AXIS_SHIFT;
-        plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS]/60, active_extruder);
+        plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS]/60);
         st_synchronize();
         st_synchronize();
         poweroff_z();
         poweroff_z();
 
 
@@ -10967,7 +10997,7 @@ bool recover_machine_state_after_power_panic()
 
 
   // 5) Set the physical positions from the logical positions using the world2machine transformation
   // 5) Set the physical positions from the logical positions using the world2machine transformation
   // This is only done to inizialize Z/E axes with physical locations, since X/Y are unknown.
   // This is only done to inizialize Z/E axes with physical locations, since X/Y are unknown.
-  plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+  plan_set_position_curposXYZE();
 
 
   // 6) Power up the Z motors, mark their positions as known.
   // 6) Power up the Z motors, mark their positions as known.
   axis_known_position[Z_AXIS] = true;
   axis_known_position[Z_AXIS] = true;
@@ -11391,9 +11421,9 @@ void print_mesh_bed_leveling_table()
   for (int8_t y = 0; y < MESH_NUM_Y_POINTS; ++ y)
   for (int8_t y = 0; y < MESH_NUM_Y_POINTS; ++ y)
     for (int8_t x = 0; x < MESH_NUM_Y_POINTS; ++ x) {
     for (int8_t x = 0; x < MESH_NUM_Y_POINTS; ++ x) {
       MYSERIAL.print(mbl.z_values[y][x], 3);
       MYSERIAL.print(mbl.z_values[y][x], 3);
-      SERIAL_ECHOPGM(" ");
+      SERIAL_ECHO(' ');
     }
     }
-  SERIAL_ECHOLNPGM("");
+  SERIAL_ECHOLN();
 }
 }
 
 
 uint16_t print_time_remaining() {
 uint16_t print_time_remaining() {
@@ -11441,7 +11471,7 @@ static void print_time_remaining_init()
 void load_filament_final_feed()
 void load_filament_final_feed()
 {
 {
 	current_position[E_AXIS]+= FILAMENTCHANGE_FINALFEED;
 	current_position[E_AXIS]+= FILAMENTCHANGE_FINALFEED;
-	plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FINAL, active_extruder);
+	plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FINAL);
 }
 }
 
 
 //! @brief Wait for user to check the state
 //! @brief Wait for user to check the state
@@ -11586,7 +11616,7 @@ void M600_load_filament_movements()
 	plan_buffer_line_curposXYZE(50, active_extruder);
 	plan_buffer_line_curposXYZE(50, active_extruder);
 #else
 #else
 	current_position[E_AXIS]+= FILAMENTCHANGE_FIRSTFEED ;
 	current_position[E_AXIS]+= FILAMENTCHANGE_FIRSTFEED ;
-	plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FIRST, active_extruder); 
+	plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FIRST);
 #endif                
 #endif                
 	load_filament_final_feed();
 	load_filament_final_feed();
 	lcd_loading_filament();
 	lcd_loading_filament();
@@ -11693,7 +11723,6 @@ void disable_force_z()
 #endif // TMC2130
 #endif // TMC2130
 }
 }
 
 
-
 void enable_force_z()
 void enable_force_z()
 {
 {
 if(bEnableForce_z)
 if(bEnableForce_z)

+ 4 - 4
Firmware/bootapp.c

@@ -9,6 +9,8 @@
 extern FILE _uartout;
 extern FILE _uartout;
 #define uartout (&_uartout)
 #define uartout (&_uartout)
 
 
+extern void softReset();
+
 void bootapp_print_vars(void)
 void bootapp_print_vars(void)
 {
 {
 	fprintf_P(uartout, PSTR("boot_src_addr  =0x%08lx\n"), boot_src_addr);
 	fprintf_P(uartout, PSTR("boot_src_addr  =0x%08lx\n"), boot_src_addr);
@@ -39,8 +41,7 @@ void bootapp_ram2flash(uint16_t rptr, uint16_t fptr, uint16_t size)
 	boot_src_addr = (uint32_t)rptr;
 	boot_src_addr = (uint32_t)rptr;
 	boot_dst_addr = (uint32_t)fptr;
 	boot_dst_addr = (uint32_t)fptr;
 	bootapp_print_vars();
 	bootapp_print_vars();
-	wdt_enable(WDTO_15MS);
-	while(1);
+	softReset();
 }
 }
 
 
 void bootapp_reboot_user0(uint8_t reserved)
 void bootapp_reboot_user0(uint8_t reserved)
@@ -50,6 +51,5 @@ void bootapp_reboot_user0(uint8_t reserved)
 	boot_app_flags = BOOT_APP_FLG_USER0;
 	boot_app_flags = BOOT_APP_FLG_USER0;
 	boot_reserved = reserved;
 	boot_reserved = reserved;
 	bootapp_print_vars();
 	bootapp_print_vars();
-	wdt_enable(WDTO_15MS);
-	while(1);
+	softReset();
 }
 }

+ 7 - 9
Firmware/cardreader.cpp

@@ -331,7 +331,7 @@ void CardReader::diveSubfolder (const char *fileName, SdFile& dir)
                 {
                 {
                     SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL);
                     SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL);
                     SERIAL_PROTOCOL(subdirname);
                     SERIAL_PROTOCOL(subdirname);
-                    SERIAL_PROTOCOLLNPGM(".");
+                    SERIAL_PROTOCOLLN('.');
                     return;
                     return;
                 }
                 }
                 else
                 else
@@ -430,7 +430,7 @@ void CardReader::openFile(const char* name,bool read, bool replace_current/*=tru
     {
     {
       SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL);
       SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL);
       SERIAL_PROTOCOL(fname);
       SERIAL_PROTOCOL(fname);
-      SERIAL_PROTOCOLLNPGM(".");
+      SERIAL_PROTOCOLLN('.');
     }
     }
   }
   }
   else 
   else 
@@ -439,7 +439,7 @@ void CardReader::openFile(const char* name,bool read, bool replace_current/*=tru
     {
     {
       SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL);
       SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL);
       SERIAL_PROTOCOL(fname);
       SERIAL_PROTOCOL(fname);
-      SERIAL_PROTOCOLLNPGM(".");
+      SERIAL_PROTOCOLLN('.');
     }
     }
     else
     else
     {
     {
@@ -496,17 +496,15 @@ void CardReader::getStatus()
           SERIAL_PROTOCOLLNPGM("Print saved");
           SERIAL_PROTOCOLLNPGM("Print saved");
       }
       }
       else {
       else {
-          SERIAL_PROTOCOL(longFilename);
-          SERIAL_PROTOCOLPGM("\n");
+          SERIAL_PROTOCOLLN(longFilename);
           SERIAL_PROTOCOLRPGM(_N("SD printing byte "));////MSG_SD_PRINTING_BYTE
           SERIAL_PROTOCOLRPGM(_N("SD printing byte "));////MSG_SD_PRINTING_BYTE
           SERIAL_PROTOCOL(sdpos);
           SERIAL_PROTOCOL(sdpos);
-          SERIAL_PROTOCOLPGM("/");
+          SERIAL_PROTOCOL('/');
           SERIAL_PROTOCOLLN(filesize);
           SERIAL_PROTOCOLLN(filesize);
-          uint16_t time = _millis()/60000 - starttime/60000;
+          uint16_t time = ( _millis() - starttime ) / 60000U;
           SERIAL_PROTOCOL(itostr2(time/60));
           SERIAL_PROTOCOL(itostr2(time/60));
           SERIAL_PROTOCOL(':');
           SERIAL_PROTOCOL(':');
-          SERIAL_PROTOCOL(itostr2(time%60));
-          SERIAL_PROTOCOLPGM("\n");
+          SERIAL_PROTOCOLLN(itostr2(time%60));
       }
       }
   }
   }
   else {
   else {

+ 13 - 3
Firmware/eeprom.h

@@ -341,8 +341,9 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP
 | 0x0D9F 3487		| uint8		| ^										| 00h 0			| ffh 255				| 8th sheet - bed temp 								| ^				| D3 Ax0d9f C1	
 | 0x0D9F 3487		| uint8		| ^										| 00h 0			| ffh 255				| 8th sheet - bed temp 								| ^				| D3 Ax0d9f C1	
 | 0x0DA0 3488		| uint8		| ^										| 00h 0			| ffh 255				| 8th sheet - PINDA temp 							| ^				| D3 Ax0da0 C1	
 | 0x0DA0 3488		| uint8		| ^										| 00h 0			| ffh 255				| 8th sheet - PINDA temp 							| ^				| D3 Ax0da0 C1	
 | 0x0DA1 3489		| uint8		| ???									| 00h 0			| ffh 255				| ???												| ???			| D3 Ax0da1 C1
 | 0x0DA1 3489		| uint8		| ???									| 00h 0			| ffh 255				| ???												| ???			| D3 Ax0da1 C1
-| 0x0D48 3400		| uint8		| EEPROM_FSENSOR_PCB					| ???			| ffh 255				| Filament Sensor type old vs new					| ???			| D3 Ax0d48 C1
-| ^					| ^			| ^										| ???			| ^						| Filament Sensor type ???							| ^				| ^
+| 0x0D48 3400		| uint8		| EEPROM_FSENSOR_PCB					| ffh 255		| ffh 255				| Filament Sensor type IR unknown					| LCD Support	| D3 Ax0d48 C1
+| ^					| ^			| ^										| 00h 0			| ^						| Filament Sensor type IR 0.3 or older				| ^				| ^
+| ^					| ^			| ^										| 01h 1			| ^						| Filament Sensor type IR 0.4 or newer				| ^				| ^
 | 0x0D47 3399		| uint8		| EEPROM_FSENSOR_ACTION_NA				| 00h 0			| ffh 255				| Filament Sensor action: __Continue__				| LCD menu		| D3 Ax0d47 C1
 | 0x0D47 3399		| uint8		| EEPROM_FSENSOR_ACTION_NA				| 00h 0			| ffh 255				| Filament Sensor action: __Continue__				| LCD menu		| D3 Ax0d47 C1
 | ^					| ^			| ^										| 01h 1			| ^						| Filament Sensor action: __Pause__					| ^				| ^
 | ^					| ^			| ^										| 01h 1			| ^						| Filament Sensor action: __Pause__					| ^				| ^
 | 0x0D37 3383		| float		| EEPROM_UVLO_SAVED_TARGET				| ???			| ff ff ff ffh			| Power panic saved target all-axis					| ???			| D3 Ax0d37 C16
 | 0x0D37 3383		| float		| EEPROM_UVLO_SAVED_TARGET				| ???			| ff ff ff ffh			| Power panic saved target all-axis					| ???			| D3 Ax0d37 C16
@@ -358,6 +359,12 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP
 | ^					| ^			| ^										| 00h 0			| ^						| LCD backlight mode: __Dim__						| ^				| ^
 | ^					| ^			| ^										| 00h 0			| ^						| LCD backlight mode: __Dim__						| ^				| ^
 | 0x0D30 3376		| uint16	| EEPROM_BACKLIGHT_TIMEOUT				| 01 00 - ff ff | 0a 00h 65535			| LCD backlight timeout: __10__ seconds				| LCD menu		| D3 Ax0d30 C2
 | 0x0D30 3376		| uint16	| EEPROM_BACKLIGHT_TIMEOUT				| 01 00 - ff ff | 0a 00h 65535			| LCD backlight timeout: __10__ seconds				| LCD menu		| D3 Ax0d30 C2
 | 0x0D2C 3372		| float		| EEPROM_UVLO_LA_K						| ???			| ff ff ff ffh			| Power panic saved Linear Advanced K value			| ???			| D3 Ax0d2c C4
 | 0x0D2C 3372		| float		| EEPROM_UVLO_LA_K						| ???			| ff ff ff ffh			| Power panic saved Linear Advanced K value			| ???			| D3 Ax0d2c C4
+| 0x0D2B 3371		| uint8		| EEPROM_ALTFAN_OVERRIDE				| ffh 255		| ffh 255				| ALTFAN override unknown state						| LCD menu		| D3 Ax0d2b C1
+| ^					| ^			| ^										| 00h 0			| ^						| ALTFAN override deactivated						| ^				| ^
+| ^					| ^			| ^										| 01h 1			| ^						| ALTFAN override activated 						| ^				| ^
+| 0x0D2A 3370		| uint8		| EEPROM_EXPERIMENTAL_VISIBILITY		| ffh 255		| ffh 255				| Experimental menu visibility unknown state		| LCD menu		| D3 Ax0d2a C1
+| ^					| ^			| ^										| 00h 0			| ^						| Experimental menu visibility hidden				| ^				| ^
+| ^					| ^			| ^										| 01h 1			| ^						| Experimental menu visibility visible				| ^				| ^
 
 
   
   
 | Address begin		| Bit/Type 	| Name 									| Valid values	| Default/FactoryReset	| Description 										| Gcode/Function| Debug code
 | Address begin		| Bit/Type 	| Name 									| Valid values	| Default/FactoryReset	| Description 										| Gcode/Function| Debug code
@@ -560,8 +567,11 @@ static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE);
 
 
 #define EEPROM_UVLO_LA_K (EEPROM_BACKLIGHT_TIMEOUT-4) // float
 #define EEPROM_UVLO_LA_K (EEPROM_BACKLIGHT_TIMEOUT-4) // float
 
 
+#define EEPROM_ALTFAN_OVERRIDE (EEPROM_UVLO_LA_K-1) //uint8
+#define EEPROM_EXPERIMENTAL_VISIBILITY (EEPROM_ALTFAN_OVERRIDE-1) //uint8
+
 //This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items.
 //This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items.
-#define EEPROM_LAST_ITEM EEPROM_UVLO_LA_K
+#define EEPROM_LAST_ITEM EEPROM_EXPERIMENTAL_VISIBILITY
 // !!!!!
 // !!!!!
 // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!!
 // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!!
 // !!!!!
 // !!!!!

+ 143 - 111
Firmware/fsensor.cpp

@@ -170,6 +170,21 @@ void fsensor_checkpoint_print(void)
     restore_print_from_ram_and_continue(0);
     restore_print_from_ram_and_continue(0);
 }
 }
 
 
+#ifdef IR_SENSOR_ANALOG
+const char* FsensorIRVersionText()
+{
+	switch(oFsensorPCB)
+	{
+		case ClFsensorPCB::_Old:
+			return _T(MSG_IR_03_OR_OLDER);
+		case ClFsensorPCB::_Rev04:
+			return _T(MSG_IR_04_OR_NEWER);
+		default:
+			return _T(MSG_IR_UNKNOWN);
+	}
+}
+#endif //IR_SENSOR_ANALOG
+
 void fsensor_init(void)
 void fsensor_init(void)
 {
 {
 #ifdef PAT9125
 #ifdef PAT9125
@@ -207,9 +222,9 @@ void fsensor_init(void)
 	}
 	}
 	printf_P(PSTR("FSensor %S"), (fsensor_enabled?PSTR("ENABLED"):PSTR("DISABLED")));
 	printf_P(PSTR("FSensor %S"), (fsensor_enabled?PSTR("ENABLED"):PSTR("DISABLED")));
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
-     printf_P(PSTR(" (sensor board revision:%S)\n"), (oFsensorPCB==ClFsensorPCB::_Rev04) ? _T(MSG_04_OR_NEWER) : _T(MSG_03_OR_OLDER));
+	printf_P(PSTR(" (sensor board revision:%S)\n"), FsensorIRVersionText());
 #else //IR_SENSOR_ANALOG
 #else //IR_SENSOR_ANALOG
-     printf_P(PSTR("\n"));
+	MYSERIAL.println();
 #endif //IR_SENSOR_ANALOG
 #endif //IR_SENSOR_ANALOG
 	if (check_for_ir_sensor()){
 	if (check_for_ir_sensor()){
 		ir_sensor_detected = true;
 		ir_sensor_detected = true;
@@ -463,22 +478,8 @@ bool fsensor_oq_result(void)
 }
 }
 #endif //FSENSOR_QUALITY
 #endif //FSENSOR_QUALITY
 
 
-ISR(FSENSOR_INT_PIN_VECT)
+FORCE_INLINE static void fsensor_isr(int st_cnt)
 {
 {
-	if (mmu_enabled || ir_sensor_detected) return;
-	if (!((fsensor_int_pin_old ^ FSENSOR_INT_PIN_PIN_REG) & FSENSOR_INT_PIN_MASK)) return;
-	fsensor_int_pin_old = FSENSOR_INT_PIN_PIN_REG;
-
-    // prevent isr re-entry
-	static bool _lock = false;
-	if (_lock) return;
-	_lock = true;
-
-    // fetch fsensor_st_cnt atomically
-	int st_cnt = fsensor_st_cnt;
-	fsensor_st_cnt = 0;
-	sei();
-
 	uint8_t old_err_cnt = fsensor_err_cnt;
 	uint8_t old_err_cnt = fsensor_err_cnt;
 	uint8_t pat9125_res = fsensor_oq_meassure?pat9125_update():pat9125_update_y();
 	uint8_t pat9125_res = fsensor_oq_meassure?pat9125_update():pat9125_update_y();
 	if (!pat9125_res)
 	if (!pat9125_res)
@@ -563,8 +564,28 @@ ISR(FSENSOR_INT_PIN_VECT)
 #endif //DEBUG_FSENSOR_LOG
 #endif //DEBUG_FSENSOR_LOG
 
 
 	pat9125_y = 0;
 	pat9125_y = 0;
-	_lock = false;
-	return;
+}
+
+ISR(FSENSOR_INT_PIN_VECT)
+{
+    if (mmu_enabled || ir_sensor_detected) return;
+    if (!((fsensor_int_pin_old ^ FSENSOR_INT_PIN_PIN_REG) & FSENSOR_INT_PIN_MASK)) return;
+    fsensor_int_pin_old = FSENSOR_INT_PIN_PIN_REG;
+
+    // prevent isr re-entry
+    static bool _lock = false;
+    if (!_lock)
+    {
+        // fetch fsensor_st_cnt atomically
+        int st_cnt = fsensor_st_cnt;
+        fsensor_st_cnt = 0;
+
+        _lock = true;
+        sei();
+        fsensor_isr(st_cnt);
+        cli();
+        _lock = false;
+    }
 }
 }
 
 
 void fsensor_setup_interrupt(void)
 void fsensor_setup_interrupt(void)
@@ -611,42 +632,41 @@ void fsensor_enque_M600(){
 void fsensor_update(void)
 void fsensor_update(void)
 {
 {
 #ifdef PAT9125
 #ifdef PAT9125
-		if (fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX))
-		{
-			fsensor_stop_and_save_print();
+    if (fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX))
+        {
+            fsensor_stop_and_save_print();
             KEEPALIVE_STATE(IN_HANDLER);
             KEEPALIVE_STATE(IN_HANDLER);
 
 
-			bool autoload_enabled_tmp = fsensor_autoload_enabled;
-			fsensor_autoload_enabled = false;
-			bool oq_meassure_enabled_tmp = fsensor_oq_meassure_enabled;
-			fsensor_oq_meassure_enabled = true;
+            bool autoload_enabled_tmp = fsensor_autoload_enabled;
+            fsensor_autoload_enabled = false;
+            bool oq_meassure_enabled_tmp = fsensor_oq_meassure_enabled;
+            fsensor_oq_meassure_enabled = true;
 
 
             // move the nozzle away while checking the filament
             // move the nozzle away while checking the filament
             current_position[Z_AXIS] += 0.8;
             current_position[Z_AXIS] += 0.8;
             if(current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS;
             if(current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS;
-            plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder);
+            plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS]);
             st_synchronize();
             st_synchronize();
 
 
             // check the filament in isolation
             // check the filament in isolation
             fsensor_reset_err_cnt();
             fsensor_reset_err_cnt();
-			fsensor_oq_meassure_start(0);
+            fsensor_oq_meassure_start(0);
             float e_tmp = current_position[E_AXIS];
             float e_tmp = current_position[E_AXIS];
             current_position[E_AXIS] -= 3;
             current_position[E_AXIS] -= 3;
-            plan_buffer_line_curposXYZE(250/60, active_extruder);
+            plan_buffer_line_curposXYZE(250/60);
             current_position[E_AXIS] = e_tmp;
             current_position[E_AXIS] = e_tmp;
-            plan_buffer_line_curposXYZE(200/60, active_extruder);
+            plan_buffer_line_curposXYZE(200/60);
             st_synchronize();
             st_synchronize();
-			fsensor_oq_meassure_stop();
+            fsensor_oq_meassure_stop();
 
 
-			bool err = false;
-			err |= (fsensor_err_cnt > 0);                   // final error count is non-zero
-			err |= (fsensor_oq_er_sum > FSENSOR_OQ_MAX_ES); // total error count is above limit
-			err |= (fsensor_oq_yd_sum < FSENSOR_OQ_MIN_YD); // total measured distance is below limit
+            bool err = false;
+            err |= (fsensor_err_cnt > 0);                   // final error count is non-zero
+            err |= (fsensor_oq_er_sum > FSENSOR_OQ_MAX_ES); // total error count is above limit
+            err |= (fsensor_oq_yd_sum < FSENSOR_OQ_MIN_YD); // total measured distance is below limit
 
 
             fsensor_restore_print_and_continue();
             fsensor_restore_print_and_continue();
             fsensor_autoload_enabled = autoload_enabled_tmp;
             fsensor_autoload_enabled = autoload_enabled_tmp;
             fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp;
             fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp;
-
             unsigned long now = _millis();
             unsigned long now = _millis();
             if (!err && (now - fsensor_softfail_last) > FSENSOR_SOFTERR_DELTA)
             if (!err && (now - fsensor_softfail_last) > FSENSOR_SOFTERR_DELTA)
                 fsensor_softfail_ccnt = 0;
                 fsensor_softfail_ccnt = 0;
@@ -663,70 +683,70 @@ void fsensor_update(void)
                 fsensor_softfail_last = 0;
                 fsensor_softfail_last = 0;
                 fsensor_enque_M600();
                 fsensor_enque_M600();
             }
             }
-		}
+        }
 #else //PAT9125
 #else //PAT9125
-		if (CHECK_FSENSOR && ir_sensor_detected)
+        if (CHECK_FSENSOR && ir_sensor_detected)
         {
         {
-               if(digitalRead(IR_SENSOR_PIN))
-               {                                  // IR_SENSOR_PIN ~ H
+            if(digitalRead(IR_SENSOR_PIN))
+            {                                  // IR_SENSOR_PIN ~ H
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
-                    if(!bIRsensorStateFlag)
-                    {
-                         bIRsensorStateFlag=true;
-                         nIRsensorLastTime=_millis();
-                    }
-                    else
+                if(!bIRsensorStateFlag)
+                {
+                    bIRsensorStateFlag=true;
+                    nIRsensorLastTime=_millis();
+                }
+                else
+                {
+                    if((_millis()-nIRsensorLastTime)>IR_SENSOR_STEADY)
                     {
                     {
-                         if((_millis()-nIRsensorLastTime)>IR_SENSOR_STEADY)
-                         {
-                              uint8_t nMUX1,nMUX2;
-                              uint16_t nADC;
-                              bIRsensorStateFlag=false;
-                              // sequence for direct data reading from AD converter
-                              DISABLE_TEMPERATURE_INTERRUPT();
-                              nMUX1=ADMUX;        // ADMUX saving
-                              nMUX2=ADCSRB;
-                              adc_setmux(VOLT_IR_PIN);
-                              ADCSRA|=(1<<ADSC);  // first conversion after ADMUX change discarded (preventively)
-                              while(ADCSRA&(1<<ADSC))
-                                   ;
-                              ADCSRA|=(1<<ADSC);  // second conversion used
-                              while(ADCSRA&(1<<ADSC))
-                                   ;
-                              nADC=ADC;
-                              ADMUX=nMUX1;        // ADMUX restoring
-                              ADCSRB=nMUX2;
-                              ENABLE_TEMPERATURE_INTERRUPT();
-                              // end of sequence for ...
-							  // Detection of correct function of fsensor v04 - it must NOT read >4.6V
-							  // If it does, it means a disconnected cables or faulty board
-                              if( (oFsensorPCB == ClFsensorPCB::_Rev04) && ( (nADC*OVERSAMPLENR) > IRsensor_Hopen_TRESHOLD ) )
-                              {
-                                   fsensor_disable();
-                                   fsensor_not_responding = true;
-                                   printf_P(PSTR("IR sensor not responding (%d)!\n"),1);
-								   if((ClFsensorActionNA)eeprom_read_byte((uint8_t*)EEPROM_FSENSOR_ACTION_NA)==ClFsensorActionNA::_Pause)
-
-								   // if we are printing and FS action is set to "Pause", force pause the print
-                                   if(oFsensorActionNA==ClFsensorActionNA::_Pause)
-                                        lcd_pause_print();
-                              }
-                              else
-                              {
+                        uint8_t nMUX1,nMUX2;
+                        uint16_t nADC;
+                        bIRsensorStateFlag=false;
+                        // sequence for direct data reading from AD converter
+                        DISABLE_TEMPERATURE_INTERRUPT();
+                        nMUX1=ADMUX;        // ADMUX saving
+                        nMUX2=ADCSRB;
+                        adc_setmux(VOLT_IR_PIN);
+                        ADCSRA|=(1<<ADSC);  // first conversion after ADMUX change discarded (preventively)
+                        while(ADCSRA&(1<<ADSC))
+                            ;
+                        ADCSRA|=(1<<ADSC);  // second conversion used
+                        while(ADCSRA&(1<<ADSC))
+                            ;
+                        nADC=ADC;
+                        ADMUX=nMUX1;        // ADMUX restoring
+                        ADCSRB=nMUX2;
+                        ENABLE_TEMPERATURE_INTERRUPT();
+                        // end of sequence for ...
+                        // Detection of correct function of fsensor v04 - it must NOT read >4.6V
+                        // If it does, it means a disconnected cables or faulty board
+                        if( (oFsensorPCB == ClFsensorPCB::_Rev04) && ( (nADC*OVERSAMPLENR) > IRsensor_Hopen_TRESHOLD ) )
+                        {
+                            fsensor_disable();
+                            fsensor_not_responding = true;
+                            printf_P(PSTR("IR sensor not responding (%d)!\n"),1);
+                            if((ClFsensorActionNA)eeprom_read_byte((uint8_t*)EEPROM_FSENSOR_ACTION_NA)==ClFsensorActionNA::_Pause)
+
+                            // if we are printing and FS action is set to "Pause", force pause the print
+                            if(oFsensorActionNA==ClFsensorActionNA::_Pause)
+                                lcd_pause_print();
+                        }
+                        else
+                        {
 #endif //IR_SENSOR_ANALOG
 #endif //IR_SENSOR_ANALOG
-                                  fsensor_checkpoint_print();
-                                  fsensor_enque_M600();
+                            fsensor_checkpoint_print();
+                            fsensor_enque_M600();
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
-                              }
-                         }
+                        }
                     }
                     }
-               }
-               else
-               {                                  // IR_SENSOR_PIN ~ L
-                    bIRsensorStateFlag=false;
+                }
+                   }
+                   else
+                   {                                  // IR_SENSOR_PIN ~ L
+                        bIRsensorStateFlag=false;
 #endif //IR_SENSOR_ANALOG
 #endif //IR_SENSOR_ANALOG
-               }
-		}
+            }
+        }
 #endif //PAT9125
 #endif //PAT9125
 }
 }
 
 
@@ -734,24 +754,36 @@ void fsensor_update(void)
 /// This is called only upon start of the printer or when switching the fsensor ON in the menu
 /// This is called only upon start of the printer or when switching the fsensor ON in the menu
 /// We cannot do temporal window checks here (aka the voltage has been in some range for a period of time)
 /// We cannot do temporal window checks here (aka the voltage has been in some range for a period of time)
 bool fsensor_IR_check(){
 bool fsensor_IR_check(){
-	if( IRsensor_Lmax_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_Hmin_TRESHOLD ){
-		// If the voltage is in forbidden range, the fsensor is ok, but the lever is mounted improperly.
-		// Or the user is so creative so that he can hold a piece of fillament in the hole in such a genius way,
-		// that the IR fsensor reading is within 1.5 and 3V ... this would have been highly unusual
-		// and would have been considered more like a sabotage than normal printer operation
-		printf_P(PSTR("fsensor in forbidden range 1.5-3V - bad lever\n"));
-		return false; 
-	}
-	
-	if( oFsensorPCB == ClFsensorPCB::_Rev04 ){
-		// newer IR sensor cannot normally produce 4.6-5V, this is considered a failure/bad mount
-		if( IRsensor_Hopen_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_VMax_TRESHOLD ){
-			printf_P(PSTR("fsensor v0.4 in fault range 4.6-5V - unconnected\n"));
-			return false;
-		}
-	}
-
-	// otherwise the IR fsensor is considered working correctly
-	return true;
+    if( IRsensor_Lmax_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_Hmin_TRESHOLD ){
+        /// If the voltage is in forbidden range, the fsensor is ok, but the lever is mounted improperly.
+        /// Or the user is so creative so that he can hold a piece of fillament in the hole in such a genius way,
+        /// that the IR fsensor reading is within 1.5 and 3V ... this would have been highly unusual
+        /// and would have been considered more like a sabotage than normal printer operation
+        printf_P(PSTR("fsensor in forbidden range 1.5-3V - check sensor\n"));
+        return false; 
+    }
+    if( oFsensorPCB == ClFsensorPCB::_Rev04 ){
+        /// newer IR sensor cannot normally produce 4.6-5V, this is considered a failure/bad mount
+        if( IRsensor_Hopen_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_VMax_TRESHOLD ){
+            printf_P(PSTR("fsensor v0.4 in fault range 4.6-5V - unconnected\n"));
+            return false;
+        }
+        /// newer IR sensor cannot normally produce 0-0.3V, this is considered a failure 
+#if 0	//Disabled as it has to be decided if we gonna use this or not.
+        if( IRsensor_Hopen_TRESHOLD <= current_voltage_raw_IR && current_voltage_raw_IR <= IRsensor_VMax_TRESHOLD ){
+            printf_P(PSTR("fsensor v0.4 in fault range 0.0-0.3V - wrong IR sensor\n"));
+            return false;
+        }
+#endif
+    }
+    /// If IR sensor is "uknown state" and filament is not loaded > 1.5V return false
+#if 0
+    if( (oFsensorPCB == ClFsensorPCB::_Undef) && ( current_voltage_raw_IR > IRsensor_Lmax_TRESHOLD ) ){
+        printf_P(PSTR("Unknown IR sensor version and no filament loaded detected.\n"));
+        return false;
+    }
+#endif
+    // otherwise the IR fsensor is considered working correctly
+    return true;
 }
 }
 #endif //IR_SENSOR_ANALOG
 #endif //IR_SENSOR_ANALOG

+ 14 - 0
Firmware/fsensor.h

@@ -83,6 +83,7 @@ extern uint8_t fsensor_log;
 //! @}
 //! @}
 #endif //PAT9125
 #endif //PAT9125
 
 
+#define VOLT_DIV_REF 5
 
 
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
 #define IR_SENSOR_STEADY 10                       // [ms]
 #define IR_SENSOR_STEADY 10                       // [ms]
@@ -103,8 +104,21 @@ enum class ClFsensorActionNA:uint_least8_t
 
 
 extern ClFsensorPCB oFsensorPCB;
 extern ClFsensorPCB oFsensorPCB;
 extern ClFsensorActionNA oFsensorActionNA;
 extern ClFsensorActionNA oFsensorActionNA;
+extern const char* FsensorIRVersionText();
 
 
 extern bool fsensor_IR_check();
 extern bool fsensor_IR_check();
+constexpr uint16_t Voltage2Raw(float V){
+	return ( V * 1023 * OVERSAMPLENR / VOLT_DIV_REF ) + 0.5F;
+}
+constexpr float Raw2Voltage(uint16_t raw){
+	return VOLT_DIV_REF*(raw / (1023.F * OVERSAMPLENR) );
+}
+constexpr uint16_t IRsensor_Ldiode_TRESHOLD = Voltage2Raw(0.3F); // ~0.3V, raw value=982
+constexpr uint16_t IRsensor_Lmax_TRESHOLD = Voltage2Raw(1.5F); // ~1.5V (0.3*Vcc), raw value=4910
+constexpr uint16_t IRsensor_Hmin_TRESHOLD = Voltage2Raw(3.0F); // ~3.0V (0.6*Vcc), raw value=9821
+constexpr uint16_t IRsensor_Hopen_TRESHOLD = Voltage2Raw(4.6F); // ~4.6V (N.C. @ Ru~20-50k, Rd'=56k, Ru'=10k), raw value=15059
+constexpr uint16_t IRsensor_VMax_TRESHOLD = Voltage2Raw(5.F); // ~5V, raw value=16368
+
 #endif //IR_SENSOR_ANALOG
 #endif //IR_SENSOR_ANALOG
 
 
 #endif //FSENSOR_H
 #endif //FSENSOR_H

+ 0 - 6
Firmware/heatbed_pwm.cpp

@@ -59,7 +59,6 @@ enum class States : uint8_t {
 	RISE,          ///< 16 fast PWM cycles with increasing duty up to steady ON
 	RISE,          ///< 16 fast PWM cycles with increasing duty up to steady ON
 	RISE_TO_ONE,   ///< metastate allowing the timer change its state atomically without artefacts on the output pin
 	RISE_TO_ONE,   ///< metastate allowing the timer change its state atomically without artefacts on the output pin
 	ONE,           ///< steady 1 (ON), no change for the whole period 
 	ONE,           ///< steady 1 (ON), no change for the whole period 
-	ONE_TO_FALL,   ///< metastate allowing the timer change its state atomically without artefacts on the output pin
 	FALL,          ///< 16 fast PWM cycles with decreasing duty down to steady OFF
 	FALL,          ///< 16 fast PWM cycles with decreasing duty down to steady OFF
 	FALL_TO_ZERO   ///< metastate allowing the timer change its state atomically without artefacts on the output pin
 	FALL_TO_ZERO   ///< metastate allowing the timer change its state atomically without artefacts on the output pin
 };
 };
@@ -155,12 +154,7 @@ ISR(TIMER0_OVF_vect)          // timer compare interrupt service routine
 			return;           // want full duty for the next ONE cycle again - so keep on heating and just wait for the next timer ovf
 			return;           // want full duty for the next ONE cycle again - so keep on heating and just wait for the next timer ovf
 		}
 		}
 		// otherwise moving towards FALL
 		// otherwise moving towards FALL
-		// @@TODO it looks like ONE_TO_FALL isn't necessary, there are no artefacts at all
 		state = States::ONE;//_TO_FALL;
 		state = States::ONE;//_TO_FALL;
-//		TCCR0B = (1 << CS00);      // change prescaler to 1, i.e. 62.5kHz
-//		break;
-//	case States::ONE_TO_FALL:
-//		OCR0B = 255;              // zero duty
 		state=States::FALL;
 		state=States::FALL;
 		fastCounter = fastMax - 1;// we'll do 16-1 cycles of RISE
 		fastCounter = fastMax - 1;// we'll do 16-1 cycles of RISE
 		TCNT0 = 255;              // force overflow on the next clock cycle
 		TCNT0 = 255;              // force overflow on the next clock cycle

+ 3 - 3
Firmware/la10compat.cpp

@@ -38,7 +38,7 @@ void la10c_mode_change(LA10C_MODE mode)
 // Approximate a LA10 value to a LA15 equivalent.
 // Approximate a LA10 value to a LA15 equivalent.
 static float la10c_convert(float k)
 static float la10c_convert(float k)
 {
 {
-    float new_K = k * 0.004 - 0.05;
+    float new_K = k * 0.002 - 0.01;
     return new_K < 0? 0:
     return new_K < 0? 0:
            new_K > (LA_K_MAX - FLT_EPSILON)? (LA_K_MAX - FLT_EPSILON):
            new_K > (LA_K_MAX - FLT_EPSILON)? (LA_K_MAX - FLT_EPSILON):
            new_K;
            new_K;
@@ -78,10 +78,10 @@ float la10c_jerk(float j)
         return j;
         return j;
 
 
     // bring low E-jerk values into equivalent LA 1.5 values by
     // bring low E-jerk values into equivalent LA 1.5 values by
-    // flattening the response in the (1-4.5) range using a piecewise
+    // flattening the response in the (0.3-4.5) range using a piecewise
     // function. Is it truly worth to preserve the difference between
     // function. Is it truly worth to preserve the difference between
     // 1.5/2.5 E-jerk for LA1.0? Probably not, but we try nonetheless.
     // 1.5/2.5 E-jerk for LA1.0? Probably not, but we try nonetheless.
-    j = j < 1.0? j * 3.625:
+    j = j < 0.3? j * 11.5:
         j < 4.5? j * 0.25 + 3.375:
         j < 4.5? j * 0.25 + 3.375:
         j;
         j;
 
 

+ 2 - 2
Firmware/mesh_bed_calibration.cpp

@@ -920,7 +920,7 @@ static inline void go_xy(float x, float y, float fr)
 
 
 static inline void go_to_current(float fr)
 static inline void go_to_current(float fr)
 {
 {
-    plan_buffer_line_curposXYZE(fr, active_extruder);
+    plan_buffer_line_curposXYZE(fr);
     st_synchronize();
     st_synchronize();
 }
 }
 
 
@@ -929,7 +929,7 @@ static inline void update_current_position_xyz()
       current_position[X_AXIS] = st_get_position_mm(X_AXIS);
       current_position[X_AXIS] = st_get_position_mm(X_AXIS);
       current_position[Y_AXIS] = st_get_position_mm(Y_AXIS);
       current_position[Y_AXIS] = st_get_position_mm(Y_AXIS);
       current_position[Z_AXIS] = st_get_position_mm(Z_AXIS);
       current_position[Z_AXIS] = st_get_position_mm(Z_AXIS);
-      plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+      plan_set_position_curposXYZE();
 }
 }
 
 
 static inline void update_current_position_z()
 static inline void update_current_position_z()

+ 3 - 2
Firmware/messages.c

@@ -140,8 +140,9 @@ const char MSG_DIM[] PROGMEM_I1 = ISTR("Dim"); ////c=6
 const char MSG_AUTO[] PROGMEM_I1 = ISTR("Auto"); ////c=6
 const char MSG_AUTO[] PROGMEM_I1 = ISTR("Auto"); ////c=6
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
 // Beware - the space at the beginning is necessary since it is reused in LCD menu items which are to be with a space
 // Beware - the space at the beginning is necessary since it is reused in LCD menu items which are to be with a space
-const char MSG_04_OR_NEWER[] PROGMEM_I1 = ISTR(" 0.4 or newer");////c=18
-const char MSG_03_OR_OLDER[] PROGMEM_I1 = ISTR(" 0.3 or older");////c=18
+const char MSG_IR_04_OR_NEWER[] PROGMEM_I1 = ISTR(" 0.4 or newer");////c=18
+const char MSG_IR_03_OR_OLDER[] PROGMEM_I1 = ISTR(" 0.3 or older");////c=18
+const char MSG_IR_UNKNOWN[] PROGMEM_I1 = ISTR("unknown state");////c=18
 #endif
 #endif
 
 
 //not internationalized messages
 //not internationalized messages

+ 3 - 2
Firmware/messages.h

@@ -139,8 +139,9 @@ extern const char MSG_BRIGHT[];
 extern const char MSG_DIM[];
 extern const char MSG_DIM[];
 extern const char MSG_AUTO[];
 extern const char MSG_AUTO[];
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
-extern const char MSG_04_OR_NEWER[];
-extern const char MSG_03_OR_OLDER[];
+extern const char MSG_IR_04_OR_NEWER[];
+extern const char MSG_IR_03_OR_OLDER[];
+extern const char MSG_IR_UNKNOWN[];
 #endif
 #endif
 
 
 //not internationalized messages
 //not internationalized messages

+ 16 - 16
Firmware/mmu.cpp

@@ -540,7 +540,7 @@ void mmu_command(MmuCmd cmd)
 void mmu_load_step(bool synchronize)
 void mmu_load_step(bool synchronize)
 {
 {
 		current_position[E_AXIS] = current_position[E_AXIS] + MMU_LOAD_FEEDRATE * 0.1;
 		current_position[E_AXIS] = current_position[E_AXIS] + MMU_LOAD_FEEDRATE * 0.1;
-		plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder);
+		plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE);
 		if (synchronize) st_synchronize();
 		if (synchronize) st_synchronize();
 }
 }
 
 
@@ -605,7 +605,7 @@ bool mmu_get_response(uint8_t move)
 				    {
 				    {
                         printf_P(PSTR("Unload 1\n"));
                         printf_P(PSTR("Unload 1\n"));
                         current_position[E_AXIS] = current_position[E_AXIS] - MMU_LOAD_FEEDRATE * MMU_LOAD_TIME_MS*0.001;
                         current_position[E_AXIS] = current_position[E_AXIS] - MMU_LOAD_FEEDRATE * MMU_LOAD_TIME_MS*0.001;
-                        plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder);
+                        plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE);
                         st_synchronize();
                         st_synchronize();
 				    }
 				    }
 				}
 				}
@@ -623,7 +623,7 @@ bool mmu_get_response(uint8_t move)
                     {
                     {
                         printf_P(PSTR("Unload 2\n"));
                         printf_P(PSTR("Unload 2\n"));
                         current_position[E_AXIS] = current_position[E_AXIS] - MMU_LOAD_FEEDRATE * MMU_LOAD_TIME_MS*0.001;
                         current_position[E_AXIS] = current_position[E_AXIS] - MMU_LOAD_FEEDRATE * MMU_LOAD_TIME_MS*0.001;
-                        plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder);
+                        plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE);
                         st_synchronize();
                         st_synchronize();
                     }
                     }
 				}
 				}
@@ -701,13 +701,13 @@ void manage_response(bool move_axes, bool turn_off_nozzle, uint8_t move)
 					  //lift z
 					  //lift z
 					  current_position[Z_AXIS] += Z_PAUSE_LIFT;
 					  current_position[Z_AXIS] += Z_PAUSE_LIFT;
 					  if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS;
 					  if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS;
-					  plan_buffer_line_curposXYZE(15, active_extruder);
+					  plan_buffer_line_curposXYZE(15);
 					  st_synchronize();
 					  st_synchronize();
 					  					  
 					  					  
 					  //Move XY to side
 					  //Move XY to side
 					  current_position[X_AXIS] = X_PAUSE_POS;
 					  current_position[X_AXIS] = X_PAUSE_POS;
 					  current_position[Y_AXIS] = Y_PAUSE_POS;
 					  current_position[Y_AXIS] = Y_PAUSE_POS;
-					  plan_buffer_line_curposXYZE(50, active_extruder);
+					  plan_buffer_line_curposXYZE(50);
 					  st_synchronize();
 					  st_synchronize();
 				  }
 				  }
 				  if (turn_off_nozzle) {
 				  if (turn_off_nozzle) {
@@ -758,17 +758,17 @@ void manage_response(bool move_axes, bool turn_off_nozzle, uint8_t move)
 					lcd_display_message_fullscreen_P(_i("MMU OK. Resuming temperature..."));
 					lcd_display_message_fullscreen_P(_i("MMU OK. Resuming temperature..."));
 					delay_keep_alive(3000);
 					delay_keep_alive(3000);
 				}
 				}
-                mmu_wait_for_heater_blocking();
+				mmu_wait_for_heater_blocking();
 			  }			  
 			  }			  
 			  if (move_axes) {
 			  if (move_axes) {
 				  lcd_clear();
 				  lcd_clear();
 				  lcd_display_message_fullscreen_P(_i("MMU OK. Resuming position..."));
 				  lcd_display_message_fullscreen_P(_i("MMU OK. Resuming position..."));
 				  current_position[X_AXIS] = x_position_bckp;
 				  current_position[X_AXIS] = x_position_bckp;
 				  current_position[Y_AXIS] = y_position_bckp;
 				  current_position[Y_AXIS] = y_position_bckp;
-				  plan_buffer_line_curposXYZE(50, active_extruder);
+				  plan_buffer_line_curposXYZE(50);
 				  st_synchronize();
 				  st_synchronize();
 				  current_position[Z_AXIS] = z_position_bckp;
 				  current_position[Z_AXIS] = z_position_bckp;
-				  plan_buffer_line_curposXYZE(15, active_extruder);
+				  plan_buffer_line_curposXYZE(15);
 				  st_synchronize();
 				  st_synchronize();
 			  }
 			  }
 			  else {
 			  else {
@@ -807,19 +807,19 @@ void mmu_load_to_nozzle()
 		current_position[E_AXIS] += 7.2f;
 		current_position[E_AXIS] += 7.2f;
 	}
 	}
     float feedrate = 562;
     float feedrate = 562;
-	plan_buffer_line_curposXYZE(feedrate / 60, active_extruder);
+	plan_buffer_line_curposXYZE(feedrate / 60);
     st_synchronize();
     st_synchronize();
 	current_position[E_AXIS] += 14.4f;
 	current_position[E_AXIS] += 14.4f;
 	feedrate = 871;
 	feedrate = 871;
-	plan_buffer_line_curposXYZE(feedrate / 60, active_extruder);
+	plan_buffer_line_curposXYZE(feedrate / 60);
     st_synchronize();
     st_synchronize();
 	current_position[E_AXIS] += 36.0f;
 	current_position[E_AXIS] += 36.0f;
 	feedrate = 1393;
 	feedrate = 1393;
-	plan_buffer_line_curposXYZE(feedrate / 60, active_extruder);
+	plan_buffer_line_curposXYZE(feedrate / 60);
     st_synchronize();
     st_synchronize();
 	current_position[E_AXIS] += 14.4f;
 	current_position[E_AXIS] += 14.4f;
 	feedrate = 871;
 	feedrate = 871;
-	plan_buffer_line_curposXYZE(feedrate / 60, active_extruder);
+	plan_buffer_line_curposXYZE(feedrate / 60);
     st_synchronize();
     st_synchronize();
 	if (!saved_e_relative_mode) axis_relative_modes &= ~E_AXIS_MASK;
 	if (!saved_e_relative_mode) axis_relative_modes &= ~E_AXIS_MASK;
 }
 }
@@ -1072,7 +1072,7 @@ void mmu_filament_ramming()
     for(uint8_t i = 0; i < (sizeof(ramming_sequence)/sizeof(E_step));++i)
     for(uint8_t i = 0; i < (sizeof(ramming_sequence)/sizeof(E_step));++i)
     {
     {
         current_position[E_AXIS] += pgm_read_float(&(ramming_sequence[i].extrude));
         current_position[E_AXIS] += pgm_read_float(&(ramming_sequence[i].extrude));
-        plan_buffer_line_curposXYZE(pgm_read_float(&(ramming_sequence[i].feed_rate)), active_extruder);
+        plan_buffer_line_curposXYZE(pgm_read_float(&(ramming_sequence[i].feed_rate)));
         st_synchronize();
         st_synchronize();
     }
     }
 }
 }
@@ -1446,9 +1446,9 @@ bFilamentAction=false;                            // NOT in "mmu_fil_eject_menu(
 static bool can_load()
 static bool can_load()
 {
 {
     current_position[E_AXIS] += 60;
     current_position[E_AXIS] += 60;
-    plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder);
+    plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE);
     current_position[E_AXIS] -= 52;
     current_position[E_AXIS] -= 52;
-    plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder);
+    plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE);
     st_synchronize();
     st_synchronize();
 
 
     uint_least8_t filament_detected_count = 0;
     uint_least8_t filament_detected_count = 0;
@@ -1458,7 +1458,7 @@ static bool can_load()
     for(uint_least8_t i = 0; i < steps; ++i)
     for(uint_least8_t i = 0; i < steps; ++i)
     {
     {
         current_position[E_AXIS] -= e_increment;
         current_position[E_AXIS] -= e_increment;
-        plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE, active_extruder);
+        plan_buffer_line_curposXYZE(MMU_LOAD_FEEDRATE);
         st_synchronize();
         st_synchronize();
         if(0 == PIN_GET(IR_SENSOR_PIN))
         if(0 == PIN_GET(IR_SENSOR_PIN))
         {
         {

+ 21 - 11
Firmware/optiboot_w25x20cl.cpp

@@ -99,9 +99,11 @@ struct block_t;
 extern struct block_t *block_buffer;
 extern struct block_t *block_buffer;
 
 
 //! @brief Enter an STK500 compatible Optiboot boot loader waiting for flashing the languages to an external flash memory.
 //! @brief Enter an STK500 compatible Optiboot boot loader waiting for flashing the languages to an external flash memory.
-void optiboot_w25x20cl_enter()
+//! @return 1 if "start\n" was not sent. Optiboot was skipped
+//! @return 0 if "start\n" was sent. Optiboot ran normally. No need to send "start\n" in setup()
+uint8_t optiboot_w25x20cl_enter()
 {
 {
-  if (boot_app_flags & BOOT_APP_FLG_USER0) return;
+  if (boot_app_flags & BOOT_APP_FLG_USER0) return 1;
   uint8_t ch;
   uint8_t ch;
   uint8_t rampz = 0;
   uint8_t rampz = 0;
   register uint16_t address = 0;
   register uint16_t address = 0;
@@ -120,38 +122,46 @@ void optiboot_w25x20cl_enter()
     unsigned long  boot_timer = 0;
     unsigned long  boot_timer = 0;
     const char    *ptr = entry_magic_send;
     const char    *ptr = entry_magic_send;
     const char    *end = strlen_P(entry_magic_send) + ptr;
     const char    *end = strlen_P(entry_magic_send) + ptr;
-    // Initialize the serial line.
-    UCSR0A |= (1 << U2X0);
-    UBRR0L = (((float)(F_CPU))/(((float)(115200))*8.0)-1.0+0.5);
-    UCSR0B = (1 << RXEN0) | (1 << TXEN0);
+    const uint8_t selectedSerialPort_bak = selectedSerialPort;
     // Flush the serial line.
     // Flush the serial line.
     while (RECV_READY) {
     while (RECV_READY) {
       watchdogReset();
       watchdogReset();
       // Dummy register read (discard)
       // Dummy register read (discard)
       (void)(*(char *)UDR0);
       (void)(*(char *)UDR0);
     }
     }
+    selectedSerialPort = 0; //switch to Serial0
+    MYSERIAL.flush(); //clear RX buffer
+    int SerialHead = rx_buffer.head;
     // Send the initial magic string.
     // Send the initial magic string.
     while (ptr != end)
     while (ptr != end)
       putch(pgm_read_byte(ptr ++));
       putch(pgm_read_byte(ptr ++));
     watchdogReset();
     watchdogReset();
-    // Wait for one second until a magic string (constant entry_magic) is received
+    // Wait for two seconds until a magic string (constant entry_magic) is received
     // from the serial line.
     // from the serial line.
     ptr = entry_magic_receive;
     ptr = entry_magic_receive;
     end = strlen_P(entry_magic_receive) + ptr;
     end = strlen_P(entry_magic_receive) + ptr;
     while (ptr != end) {
     while (ptr != end) {
-      while (! RECV_READY) {
+      while (rx_buffer.head == SerialHead) {
         watchdogReset();
         watchdogReset();
         delayMicroseconds(1);
         delayMicroseconds(1);
         if (++ boot_timer > boot_timeout)
         if (++ boot_timer > boot_timeout)
+        {
           // Timeout expired, continue with the application.
           // Timeout expired, continue with the application.
-          return;
+          selectedSerialPort = selectedSerialPort_bak; //revert Serial setting
+          return 0;
+        }
       }
       }
-      ch = UDR0;
+      ch = rx_buffer.buffer[SerialHead];
+      SerialHead = (unsigned int)(SerialHead + 1) % RX_BUFFER_SIZE;
       if (pgm_read_byte(ptr ++) != ch)
       if (pgm_read_byte(ptr ++) != ch)
+      {
           // Magic was not received correctly, continue with the application
           // Magic was not received correctly, continue with the application
-          return;
+          selectedSerialPort = selectedSerialPort_bak; //revert Serial setting
+          return 0;
+      }
       watchdogReset();
       watchdogReset();
     }
     }
+    cbi(UCSR0B, RXCIE0); //disable the MarlinSerial0 interrupt
     // Send the cfm magic string.
     // Send the cfm magic string.
     ptr = entry_magic_cfm;
     ptr = entry_magic_cfm;
     while (ptr != end)
     while (ptr != end)

+ 1 - 1
Firmware/optiboot_w25x20cl.h

@@ -1,6 +1,6 @@
 #ifndef OPTIBOOT_W25X20CL_H
 #ifndef OPTIBOOT_W25X20CL_H
 #define OPTIBOOT_W25X20CL_H
 #define OPTIBOOT_W25X20CL_H
 
 
-extern void optiboot_w25x20cl_enter();
+extern uint8_t optiboot_w25x20cl_enter();
 
 
 #endif /* OPTIBOOT_W25X20CL_H */
 #endif /* OPTIBOOT_W25X20CL_H */

+ 94 - 58
Firmware/planner.cpp

@@ -226,11 +226,23 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit
   // Size of Plateau of Nominal Rate.
   // Size of Plateau of Nominal Rate.
   uint32_t plateau_steps     = 0;
   uint32_t plateau_steps     = 0;
 
 
+#ifdef LIN_ADVANCE
+  uint16_t final_adv_steps = 0;
+  uint16_t max_adv_steps = 0;
+  if (block->use_advance_lead) {
+      final_adv_steps = final_rate * block->adv_comp;
+  }
+#endif
+
   // Is the Plateau of Nominal Rate smaller than nothing? That means no cruising, and we will
   // Is the Plateau of Nominal Rate smaller than nothing? That means no cruising, and we will
   // have to use intersection_distance() to calculate when to abort acceleration and start braking
   // have to use intersection_distance() to calculate when to abort acceleration and start braking
   // in order to reach the final_rate exactly at the end of this block.
   // in order to reach the final_rate exactly at the end of this block.
   if (accel_decel_steps < block->step_event_count.wide) {
   if (accel_decel_steps < block->step_event_count.wide) {
     plateau_steps = block->step_event_count.wide - accel_decel_steps;
     plateau_steps = block->step_event_count.wide - accel_decel_steps;
+#ifdef LIN_ADVANCE
+    if (block->use_advance_lead)
+        max_adv_steps = block->nominal_rate * block->adv_comp;
+#endif
   } else {
   } else {
     uint32_t acceleration_x4  = acceleration << 2;
     uint32_t acceleration_x4  = acceleration << 2;
     // Avoid negative numbers
     // Avoid negative numbers
@@ -263,14 +275,20 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit
             decelerate_steps = block->step_event_count.wide;
             decelerate_steps = block->step_event_count.wide;
         accelerate_steps = block->step_event_count.wide - decelerate_steps;
         accelerate_steps = block->step_event_count.wide - decelerate_steps;
     }
     }
-  }
 
 
 #ifdef LIN_ADVANCE
 #ifdef LIN_ADVANCE
-  uint16_t final_adv_steps = 0;
-  if (block->use_advance_lead) {
-      final_adv_steps = exit_speed * block->adv_comp;
-  }
+    if (block->use_advance_lead) {
+        if(!accelerate_steps || !decelerate_steps) {
+            // accelerate_steps=0: deceleration-only ramp, max_rate is effectively unused
+            // decelerate_steps=0: acceleration-only ramp, max_rate _is_ final_rate
+            max_adv_steps = final_adv_steps;
+        } else {
+            float max_rate = sqrt(acceleration_x2 * accelerate_steps + initial_rate_sqr);
+            max_adv_steps = max_rate * block->adv_comp;
+        }
+    }
 #endif
 #endif
+  }
 
 
   CRITICAL_SECTION_START;  // Fill variables used by the stepper in a critical section
   CRITICAL_SECTION_START;  // Fill variables used by the stepper in a critical section
   // This block locks the interrupts globally for 4.38 us,
   // This block locks the interrupts globally for 4.38 us,
@@ -284,6 +302,7 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit
     block->final_rate = final_rate;
     block->final_rate = final_rate;
 #ifdef LIN_ADVANCE
 #ifdef LIN_ADVANCE
     block->final_adv_steps = final_adv_steps;
     block->final_adv_steps = final_adv_steps;
+    block->max_adv_steps = max_adv_steps;
 #endif
 #endif
   }
   }
   CRITICAL_SECTION_END;
   CRITICAL_SECTION_END;
@@ -671,8 +690,16 @@ void planner_abort_hard()
     waiting_inside_plan_buffer_line_print_aborted = true;
     waiting_inside_plan_buffer_line_print_aborted = true;
 }
 }
 
 
-void plan_buffer_line_curposXYZE(float feed_rate, uint8_t extruder) { 
-	plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feed_rate, extruder );
+void plan_buffer_line_curposXYZE(float feed_rate) {
+    plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feed_rate, active_extruder );
+}
+
+void plan_buffer_line_destinationXYZE(float feed_rate) {
+    plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feed_rate, active_extruder);
+}
+
+void plan_set_position_curposXYZE(){
+    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
 }
 }
 
 
 float junction_deviation = 0.1;
 float junction_deviation = 0.1;
@@ -1069,12 +1096,20 @@ Having the real displacement of the head, we can calculate the total movement le
                               && delta_mm[E_AXIS] >= 0
                               && delta_mm[E_AXIS] >= 0
                               && abs(delta_mm[Z_AXIS]) < 0.5;
                               && abs(delta_mm[Z_AXIS]) < 0.5;
     if (block->use_advance_lead) {
     if (block->use_advance_lead) {
+#ifdef LA_FLOWADJ
+        // M221/FLOW should change uniformly the extrusion thickness
+        float delta_e = (e - position_float[E_AXIS]) / extruder_multiplier[extruder];
+#else
+        // M221/FLOW only adjusts for an incorrect source diameter
+        float delta_e = (e - position_float[E_AXIS]);
+#endif
+        float delta_D = sqrt(sq(x - position_float[X_AXIS])
+                             + sq(y - position_float[Y_AXIS])
+                             + sq(z - position_float[Z_AXIS]));
+
         // all extrusion moves with LA require a compression which is proportional to the
         // all extrusion moves with LA require a compression which is proportional to the
         // extrusion_length to distance ratio (e/D)
         // extrusion_length to distance ratio (e/D)
-        e_D_ratio = (e - position_float[E_AXIS]) /
-                    sqrt(sq(x - position_float[X_AXIS])
-                         + sq(y - position_float[Y_AXIS])
-                         + sq(z - position_float[Z_AXIS]));
+        e_D_ratio = delta_e / delta_D;
 
 
         // Check for unusual high e_D ratio to detect if a retract move was combined with the last
         // Check for unusual high e_D ratio to detect if a retract move was combined with the last
         // print move due to min. steps per segment. Never execute this with advance! This assumes
         // print move due to min. steps per segment. Never execute this with advance! This assumes
@@ -1124,53 +1159,7 @@ Having the real displacement of the head, we can calculate the total movement le
     block->acceleration_st = (block->acceleration_st + (bresenham_oversample >> 1)) / bresenham_oversample;
     block->acceleration_st = (block->acceleration_st + (bresenham_oversample >> 1)) / bresenham_oversample;
 #endif
 #endif
 
 
-  block->acceleration_rate = (long)((float)block->acceleration_st * (16777216.0 / (F_CPU / 8.0)));
-
-#ifdef LIN_ADVANCE
-  if (block->use_advance_lead) {
-      // the nominal speed doesn't change past this point: calculate the compression ratio for the
-      // segment and the required advance steps
-      block->adv_comp = extruder_advance_K * e_D_ratio * cs.axis_steps_per_unit[E_AXIS];
-      block->max_adv_steps = block->nominal_speed * block->adv_comp;
-
-      float advance_speed;
-      if (e_D_ratio > 0)
-          advance_speed = (extruder_advance_K * e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]);
-      else
-          advance_speed = cs.max_jerk[E_AXIS] * cs.axis_steps_per_unit[E_AXIS];
-
-      // to save more space we avoid another copy of calc_timer and go through slow division, but we
-      // still need to replicate the *exact* same step grouping policy (see below)
-      if (advance_speed > MAX_STEP_FREQUENCY) advance_speed = MAX_STEP_FREQUENCY;
-      float advance_rate = (F_CPU / 8.0) / advance_speed;
-      if (advance_speed > 20000) {
-          block->advance_rate = advance_rate * 4;
-          block->advance_step_loops = 4;
-      }
-      else if (advance_speed > 10000) {
-          block->advance_rate = advance_rate * 2;
-          block->advance_step_loops = 2;
-      }
-      else
-      {
-          // never overflow the internal accumulator with very low rates
-          if (advance_rate < UINT16_MAX)
-              block->advance_rate = advance_rate;
-          else
-              block->advance_rate = UINT16_MAX;
-          block->advance_step_loops = 1;
-      }
-
-      #ifdef LA_DEBUG
-      if (block->advance_step_loops > 2)
-          // @wavexx: we should really check for the difference between step_loops and
-          //          advance_step_loops instead. A difference of more than 1 will lead
-          //          to uneven speed and *should* be adjusted here by furthermore
-          //          reducing the speed.
-          SERIAL_ECHOLNPGM("LA: More than 2 steps per eISR loop executed.");
-      #endif
-  }
-#endif
+  block->acceleration_rate = ((float)block->acceleration_st * (16777216.0 / (F_CPU / 8.0)));
 
 
   // Start with a safe speed.
   // Start with a safe speed.
   // Safe speed is the speed, from which the machine may halt to stop immediately.
   // Safe speed is the speed, from which the machine may halt to stop immediately.
@@ -1297,6 +1286,53 @@ Having the real displacement of the head, we can calculate the total movement le
 
 
   // Precalculate the division, so when all the trapezoids in the planner queue get recalculated, the division is not repeated.
   // Precalculate the division, so when all the trapezoids in the planner queue get recalculated, the division is not repeated.
   block->speed_factor = block->nominal_rate / block->nominal_speed;
   block->speed_factor = block->nominal_rate / block->nominal_speed;
+
+#ifdef LIN_ADVANCE
+  if (block->use_advance_lead) {
+      // calculate the compression ratio for the segment (the required advance steps are computed
+      // during trapezoid planning)
+      float adv_comp = extruder_advance_K * e_D_ratio * cs.axis_steps_per_unit[E_AXIS]; // (step/(mm/s))
+      block->adv_comp = adv_comp / block->speed_factor; // step/(step/min)
+
+      float advance_speed;
+      if (e_D_ratio > 0)
+          advance_speed = (extruder_advance_K * e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]);
+      else
+          advance_speed = cs.max_jerk[E_AXIS] * cs.axis_steps_per_unit[E_AXIS];
+
+      // to save more space we avoid another copy of calc_timer and go through slow division, but we
+      // still need to replicate the *exact* same step grouping policy (see below)
+      if (advance_speed > MAX_STEP_FREQUENCY) advance_speed = MAX_STEP_FREQUENCY;
+      float advance_rate = (F_CPU / 8.0) / advance_speed;
+      if (advance_speed > 20000) {
+          block->advance_rate = advance_rate * 4;
+          block->advance_step_loops = 4;
+      }
+      else if (advance_speed > 10000) {
+          block->advance_rate = advance_rate * 2;
+          block->advance_step_loops = 2;
+      }
+      else
+      {
+          // never overflow the internal accumulator with very low rates
+          if (advance_rate < UINT16_MAX)
+              block->advance_rate = advance_rate;
+          else
+              block->advance_rate = UINT16_MAX;
+          block->advance_step_loops = 1;
+      }
+
+      #ifdef LA_DEBUG
+      if (block->advance_step_loops > 2)
+          // @wavexx: we should really check for the difference between step_loops and
+          //          advance_step_loops instead. A difference of more than 1 will lead
+          //          to uneven speed and *should* be adjusted here by furthermore
+          //          reducing the speed.
+          SERIAL_ECHOLNPGM("LA: More than 2 steps per eISR loop executed.");
+      #endif
+  }
+#endif
+
   calculate_trapezoid_for_block(block, block->entry_speed, safe_speed);
   calculate_trapezoid_for_block(block, block->entry_speed, safe_speed);
 
 
   if (block->step_event_count.wide <= 32767)
   if (block->step_event_count.wide <= 32767)

+ 10 - 7
Firmware/planner.h

@@ -73,12 +73,12 @@ typedef struct {
   // steps_x.y,z, step_event_count, acceleration_rate, direction_bits and active_extruder are set by plan_buffer_line().
   // steps_x.y,z, step_event_count, acceleration_rate, direction_bits and active_extruder are set by plan_buffer_line().
   dda_isteps_t steps_x, steps_y, steps_z, steps_e;  // Step count along each axis
   dda_isteps_t steps_x, steps_y, steps_z, steps_e;  // Step count along each axis
   dda_usteps_t step_event_count;            // The number of step events required to complete this block
   dda_usteps_t step_event_count;            // The number of step events required to complete this block
-  long acceleration_rate;                   // The acceleration rate used for acceleration calculation
+  uint32_t acceleration_rate;               // The acceleration rate used for acceleration calculation
   unsigned char direction_bits;             // The direction bit set for this block (refers to *_DIRECTION_BIT in config.h)
   unsigned char direction_bits;             // The direction bit set for this block (refers to *_DIRECTION_BIT in config.h)
   unsigned char active_extruder;            // Selects the active extruder
   unsigned char active_extruder;            // Selects the active extruder
   // accelerate_until and decelerate_after are set by calculate_trapezoid_for_block() and they need to be synchronized with the stepper interrupt controller.
   // accelerate_until and decelerate_after are set by calculate_trapezoid_for_block() and they need to be synchronized with the stepper interrupt controller.
-  long accelerate_until;                    // The index of the step event on which to stop acceleration
-  long decelerate_after;                    // The index of the step event on which to start decelerating
+  uint32_t accelerate_until;                // The index of the step event on which to stop acceleration
+  uint32_t decelerate_after;                // The index of the step event on which to start decelerating
 
 
   // Fields used by the motion planner to manage acceleration
   // Fields used by the motion planner to manage acceleration
 //  float speed_x, speed_y, speed_z, speed_e;        // Nominal mm/sec for each axis
 //  float speed_x, speed_y, speed_z, speed_e;        // Nominal mm/sec for each axis
@@ -100,13 +100,12 @@ typedef struct {
 
 
   // Settings for the trapezoid generator (runs inside an interrupt handler).
   // Settings for the trapezoid generator (runs inside an interrupt handler).
   // Changing the following values in the planner needs to be synchronized with the interrupt handler by disabling the interrupts.
   // Changing the following values in the planner needs to be synchronized with the interrupt handler by disabling the interrupts.
-  //FIXME nominal_rate, initial_rate and final_rate are limited to uint16_t by MultiU24X24toH16 in the stepper interrupt anyway!
   unsigned long nominal_rate;                        // The nominal step rate for this block in step_events/sec 
   unsigned long nominal_rate;                        // The nominal step rate for this block in step_events/sec 
   unsigned long initial_rate;                        // The jerk-adjusted step rate at start of block  
   unsigned long initial_rate;                        // The jerk-adjusted step rate at start of block  
   unsigned long final_rate;                          // The minimal rate at exit
   unsigned long final_rate;                          // The minimal rate at exit
   unsigned long acceleration_st;                     // acceleration steps/sec^2
   unsigned long acceleration_st;                     // acceleration steps/sec^2
-  //FIXME does it have to be unsigned long? Probably uint8_t would be just fine.
-  unsigned long fan_speed;
+  //FIXME does it have to be int? Probably uint8_t would be just fine. Need to change in other places as well
+  int fan_speed;
   volatile char busy;
   volatile char busy;
 
 
 
 
@@ -154,7 +153,11 @@ vector_3 plan_get_position();
 /// plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[3], ...
 /// plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[3], ...
 /// saves almost 5KB.
 /// saves almost 5KB.
 /// The performance penalty is negligible, since these planned lines are usually maintenance moves with the extruder.
 /// The performance penalty is negligible, since these planned lines are usually maintenance moves with the extruder.
-void plan_buffer_line_curposXYZE(float feed_rate, uint8_t extruder);
+void plan_buffer_line_curposXYZE(float feed_rate);
+
+void plan_buffer_line_destinationXYZE(float feed_rate);
+
+void plan_set_position_curposXYZE();
 
 
 void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, uint8_t extruder, const float* gcode_target = NULL);
 void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, uint8_t extruder, const float* gcode_target = NULL);
 //void plan_buffer_line(const float &x, const float &y, const float &z, const float &e, float feed_rate, const uint8_t &extruder);
 //void plan_buffer_line(const float &x, const float &y, const float &z, const float &e, float feed_rate, const uint8_t &extruder);

+ 11 - 5
Firmware/speed_lookuptable.h

@@ -80,15 +80,21 @@ asm volatile ( \
 
 
 #else //_NO_ASM
 #else //_NO_ASM
 
 
-// NOTE: currently not implemented
-void MultiU16X8toH16(unsigned short& intRes, unsigned char& charIn1, unsigned short& intIn2);
-void MultiU24X24toH16(uint16_t& intRes, int32_t& longIn1, long& longIn2);
+static inline void MultiU16X8toH16(uint16_t& intRes, uint8_t& charIn1, uint16_t& intIn2)
+{
+    intRes = ((uint32_t)charIn1 * (uint32_t)intIn2) >> 16;
+}
+
+static inline void MultiU24X24toH16(uint16_t& intRes, uint32_t& longIn1, uint32_t& longIn2)
+{
+    intRes = ((uint64_t)longIn1 * (uint64_t)longIn2) >> 24;
+}
 
 
 #endif //_NO_ASM
 #endif //_NO_ASM
 
 
 
 
 FORCE_INLINE unsigned short calc_timer(uint16_t step_rate, uint8_t& step_loops) {
 FORCE_INLINE unsigned short calc_timer(uint16_t step_rate, uint8_t& step_loops) {
-  unsigned short timer;
+  uint16_t timer;
   if(step_rate > MAX_STEP_FREQUENCY) step_rate = MAX_STEP_FREQUENCY;
   if(step_rate > MAX_STEP_FREQUENCY) step_rate = MAX_STEP_FREQUENCY;
 
 
   if(step_rate > 20000) { // If steprate > 20kHz >> step 4 times
   if(step_rate > 20000) { // If steprate > 20kHz >> step 4 times
@@ -108,7 +114,7 @@ FORCE_INLINE unsigned short calc_timer(uint16_t step_rate, uint8_t& step_loops)
   if(step_rate >= (8*256)){ // higher step rate
   if(step_rate >= (8*256)){ // higher step rate
     unsigned short table_address = (unsigned short)&speed_lookuptable_fast[(unsigned char)(step_rate>>8)][0];
     unsigned short table_address = (unsigned short)&speed_lookuptable_fast[(unsigned char)(step_rate>>8)][0];
     unsigned char tmp_step_rate = (step_rate & 0x00ff);
     unsigned char tmp_step_rate = (step_rate & 0x00ff);
-    unsigned short gain = (unsigned short)pgm_read_word_near(table_address+2);
+    uint16_t gain = (uint16_t)pgm_read_word_near(table_address+2);
     MultiU16X8toH16(timer, tmp_step_rate, gain);
     MultiU16X8toH16(timer, tmp_step_rate, gain);
     timer = (unsigned short)pgm_read_word_near(table_address) - timer;
     timer = (unsigned short)pgm_read_word_near(table_address) - timer;
   }
   }

+ 73 - 56
Firmware/stepper.cpp

@@ -71,8 +71,7 @@ static dda_isteps_t
                counter_z,
                counter_z,
                counter_e;
                counter_e;
 volatile dda_usteps_t step_events_completed; // The number of step events executed in the current block
 volatile dda_usteps_t step_events_completed; // The number of step events executed in the current block
-static int32_t  acceleration_time, deceleration_time;
-//static unsigned long accelerate_until, decelerate_after, acceleration_rate, initial_rate, final_rate, nominal_rate;
+static uint32_t  acceleration_time, deceleration_time;
 static uint16_t acc_step_rate; // needed for deccelaration start point
 static uint16_t acc_step_rate; // needed for deccelaration start point
 static uint8_t  step_loops;
 static uint8_t  step_loops;
 static uint16_t OCR1A_nominal;
 static uint16_t OCR1A_nominal;
@@ -125,7 +124,7 @@ volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1};
 
 
   static uint16_t main_Rate;
   static uint16_t main_Rate;
   static uint16_t eISR_Rate;
   static uint16_t eISR_Rate;
-  static uint16_t eISR_Err;
+  static uint32_t eISR_Err;
 
 
   static uint16_t current_adv_steps;
   static uint16_t current_adv_steps;
   static uint16_t target_adv_steps;
   static uint16_t target_adv_steps;
@@ -234,7 +233,7 @@ void invert_z_endstop(bool endstop_invert)
 //  The trapezoid is the shape the speed curve over time. It starts at block->initial_rate, accelerates
 //  The trapezoid is the shape the speed curve over time. It starts at block->initial_rate, accelerates
 //  first block->accelerate_until step_events_completed, then keeps going at constant speed until
 //  first block->accelerate_until step_events_completed, then keeps going at constant speed until
 //  step_events_completed reaches block->decelerate_after after which it decelerates until the trapezoid generator is reset.
 //  step_events_completed reaches block->decelerate_after after which it decelerates until the trapezoid generator is reset.
-//  The slope of acceleration is calculated with the leib ramp alghorithm.
+//  The slope of acceleration is calculated using v = u + at where t is the accumulated timer values of the steps so far.
 
 
 // "The Stepper Driver Interrupt" - This timer interrupt is the workhorse.
 // "The Stepper Driver Interrupt" - This timer interrupt is the workhorse.
 // It pops blocks from the block_buffer and executes them by pulsing the stepper pins appropriately.
 // It pops blocks from the block_buffer and executes them by pulsing the stepper pins appropriately.
@@ -348,10 +347,7 @@ FORCE_INLINE void stepper_next_block()
 
 
 #ifdef LIN_ADVANCE
 #ifdef LIN_ADVANCE
     if (current_block->use_advance_lead) {
     if (current_block->use_advance_lead) {
-        e_step_loops = current_block->advance_step_loops;
         target_adv_steps = current_block->max_adv_steps;
         target_adv_steps = current_block->max_adv_steps;
-    } else {
-        e_step_loops = 1;
     }
     }
     e_steps = 0;
     e_steps = 0;
     nextAdvanceISR = ADV_NEVER;
     nextAdvanceISR = ADV_NEVER;
@@ -736,38 +732,30 @@ FORCE_INLINE uint16_t fastdiv(uint16_t q, uint8_t d)
 
 
 FORCE_INLINE void advance_spread(uint16_t timer)
 FORCE_INLINE void advance_spread(uint16_t timer)
 {
 {
-    if(eISR_Err > timer)
+    eISR_Err += timer;
+
+    uint8_t ticks = 0;
+    while(eISR_Err >= current_block->advance_rate)
+    {
+        ++ticks;
+        eISR_Err -= current_block->advance_rate;
+    }
+    if(!ticks)
     {
     {
-        // advance-step skipped
-        eISR_Err -= timer;
         eISR_Rate = timer;
         eISR_Rate = timer;
         nextAdvanceISR = timer;
         nextAdvanceISR = timer;
         return;
         return;
     }
     }
 
 
-    // at least one step
-    uint8_t ticks = 1;
-    uint32_t block = current_block->advance_rate;
-    uint16_t max_t = timer - eISR_Err;
-    while (block < max_t)
-    {
-        ++ticks;
-        block += current_block->advance_rate;
-    }
-    if (block > timer)
-        eISR_Err += block - timer;
-    else
-        eISR_Err -= timer - block;
-
-    if (ticks <= 4)
-        eISR_Rate = fastdiv(timer, ticks);
+    if (ticks <= 3)
+        eISR_Rate = fastdiv(timer, ticks + 1);
     else
     else
     {
     {
         // >4 ticks are still possible on slow moves
         // >4 ticks are still possible on slow moves
-        eISR_Rate = timer / ticks;
+        eISR_Rate = timer / (ticks + 1);
     }
     }
 
 
-    nextAdvanceISR = eISR_Rate / 2;
+    nextAdvanceISR = eISR_Rate;
 }
 }
 #endif
 #endif
 
 
@@ -799,7 +787,7 @@ FORCE_INLINE void isr() {
     // 25.12us for acceleration / deceleration.
     // 25.12us for acceleration / deceleration.
     {
     {
       //WRITE_NC(LOGIC_ANALYZER_CH1, true);
       //WRITE_NC(LOGIC_ANALYZER_CH1, true);
-      if (step_events_completed.wide <= (unsigned long int)current_block->accelerate_until) {
+      if (step_events_completed.wide <= current_block->accelerate_until) {
         // v = t * a   ->   acc_step_rate = acceleration_time * current_block->acceleration_rate
         // v = t * a   ->   acc_step_rate = acceleration_time * current_block->acceleration_rate
         MultiU24X24toH16(acc_step_rate, acceleration_time, current_block->acceleration_rate);
         MultiU24X24toH16(acc_step_rate, acceleration_time, current_block->acceleration_rate);
         acc_step_rate += uint16_t(current_block->initial_rate);
         acc_step_rate += uint16_t(current_block->initial_rate);
@@ -812,19 +800,29 @@ FORCE_INLINE void isr() {
         acceleration_time += timer;
         acceleration_time += timer;
 #ifdef LIN_ADVANCE
 #ifdef LIN_ADVANCE
         if (current_block->use_advance_lead) {
         if (current_block->use_advance_lead) {
-            if (step_events_completed.wide <= (unsigned long int)step_loops)
+            if (step_events_completed.wide <= (unsigned long int)step_loops) {
                 la_state = ADV_INIT | ADV_ACC_VARY;
                 la_state = ADV_INIT | ADV_ACC_VARY;
+                if (e_extruding && current_adv_steps > target_adv_steps)
+                    target_adv_steps = current_adv_steps;
+            }
         }
         }
 #endif
 #endif
       }
       }
-      else if (step_events_completed.wide > (unsigned long int)current_block->decelerate_after) {
+      else if (step_events_completed.wide > current_block->decelerate_after) {
         uint16_t step_rate;
         uint16_t step_rate;
         MultiU24X24toH16(step_rate, deceleration_time, current_block->acceleration_rate);
         MultiU24X24toH16(step_rate, deceleration_time, current_block->acceleration_rate);
-        step_rate = acc_step_rate - step_rate; // Decelerate from aceleration end point.
-        if ((step_rate & 0x8000) || step_rate < uint16_t(current_block->final_rate)) {
-          // Result is negative or too small.
-          step_rate = uint16_t(current_block->final_rate);
+
+        if (step_rate > acc_step_rate) { // Check step_rate stays positive
+            step_rate = uint16_t(current_block->final_rate);
+        }
+        else {
+            step_rate = acc_step_rate - step_rate; // Decelerate from acceleration end point.
+
+            // lower limit
+            if (step_rate < current_block->final_rate)
+                step_rate = uint16_t(current_block->final_rate);
         }
         }
+
         // Step_rate to timer interval.
         // Step_rate to timer interval.
         uint16_t timer = calc_timer(step_rate, step_loops);
         uint16_t timer = calc_timer(step_rate, step_loops);
         _NEXT_ISR(timer);
         _NEXT_ISR(timer);
@@ -832,9 +830,11 @@ FORCE_INLINE void isr() {
 
 
 #ifdef LIN_ADVANCE
 #ifdef LIN_ADVANCE
         if (current_block->use_advance_lead) {
         if (current_block->use_advance_lead) {
-            if (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops) {
+            if (step_events_completed.wide <= current_block->decelerate_after + step_loops) {
                 target_adv_steps = current_block->final_adv_steps;
                 target_adv_steps = current_block->final_adv_steps;
                 la_state = ADV_INIT | ADV_ACC_VARY;
                 la_state = ADV_INIT | ADV_ACC_VARY;
+                if (e_extruding && current_adv_steps < target_adv_steps)
+                    target_adv_steps = current_adv_steps;
             }
             }
         }
         }
 #endif
 #endif
@@ -848,12 +848,12 @@ FORCE_INLINE void isr() {
 
 
 #ifdef LIN_ADVANCE
 #ifdef LIN_ADVANCE
           if(current_block->use_advance_lead) {
           if(current_block->use_advance_lead) {
-              if (!nextAdvanceISR) {
-                  // Due to E-jerk, there can be discontinuities in pressure state where an
-                  // acceleration or deceleration can be skipped or joined with the previous block.
-                  // If LA was not previously active, re-check the pressure level
-                  la_state = ADV_INIT;
-              }
+              // Due to E-jerk, there can be discontinuities in pressure state where an
+              // acceleration or deceleration can be skipped or joined with the previous block.
+              // If LA was not previously active, re-check the pressure level
+              la_state = ADV_INIT;
+              if (e_extruding)
+                  target_adv_steps = current_adv_steps;
           }
           }
 #endif
 #endif
         }
         }
@@ -865,14 +865,21 @@ FORCE_INLINE void isr() {
 #ifdef LIN_ADVANCE
 #ifdef LIN_ADVANCE
     // avoid multiple instances or function calls to advance_spread
     // avoid multiple instances or function calls to advance_spread
     if (la_state & ADV_INIT) {
     if (la_state & ADV_INIT) {
+        LA_phase = -1;
+
         if (current_adv_steps == target_adv_steps) {
         if (current_adv_steps == target_adv_steps) {
-            // nothing to be done in this phase
+            // nothing to be done in this phase, cancel any pending eisr
             la_state = 0;
             la_state = 0;
+            nextAdvanceISR = ADV_NEVER;
         }
         }
         else {
         else {
-            eISR_Err = current_block->advance_rate / 4;
+            // reset error and iterations per loop for this phase
+            eISR_Err = current_block->advance_rate;
+            e_step_loops = current_block->advance_step_loops;
+
             if ((la_state & ADV_ACC_VARY) && e_extruding && (current_adv_steps > target_adv_steps)) {
             if ((la_state & ADV_ACC_VARY) && e_extruding && (current_adv_steps > target_adv_steps)) {
                 // LA could reverse the direction of extrusion in this phase
                 // LA could reverse the direction of extrusion in this phase
+                eISR_Err += current_block->advance_rate;
                 LA_phase = 0;
                 LA_phase = 0;
             }
             }
         }
         }
@@ -882,11 +889,13 @@ FORCE_INLINE void isr() {
         advance_spread(main_Rate);
         advance_spread(main_Rate);
         if (LA_phase >= 0) {
         if (LA_phase >= 0) {
             if (step_loops == e_step_loops)
             if (step_loops == e_step_loops)
-                LA_phase = (eISR_Rate > main_Rate);
+                LA_phase = (current_block->advance_rate < main_Rate);
             else {
             else {
                 // avoid overflow through division. warning: we need to _guarantee_ step_loops
                 // avoid overflow through division. warning: we need to _guarantee_ step_loops
                 // and e_step_loops are <= 4 due to fastdiv's limit
                 // and e_step_loops are <= 4 due to fastdiv's limit
-                LA_phase = (fastdiv(eISR_Rate, step_loops) > fastdiv(main_Rate, e_step_loops));
+                auto adv_rate_n = fastdiv(current_block->advance_rate, step_loops);
+                auto main_rate_n = fastdiv(main_Rate, e_step_loops);
+                LA_phase = (adv_rate_n < main_rate_n);
             }
             }
         }
         }
     }
     }
@@ -928,26 +937,34 @@ FORCE_INLINE void isr() {
 FORCE_INLINE void advance_isr() {
 FORCE_INLINE void advance_isr() {
     if (current_adv_steps > target_adv_steps) {
     if (current_adv_steps > target_adv_steps) {
         // decompression
         // decompression
+        if (e_step_loops != 1) {
+            uint16_t d_steps = current_adv_steps - target_adv_steps;
+            if (d_steps < e_step_loops)
+                e_step_loops = d_steps;
+        }
         e_steps -= e_step_loops;
         e_steps -= e_step_loops;
         if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR);
         if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR);
-        if(current_adv_steps > e_step_loops)
-            current_adv_steps -= e_step_loops;
-        else
-            current_adv_steps = 0;
-        nextAdvanceISR = eISR_Rate;
+        current_adv_steps -= e_step_loops;
     }
     }
     else if (current_adv_steps < target_adv_steps) {
     else if (current_adv_steps < target_adv_steps) {
         // compression
         // compression
+        if (e_step_loops != 1) {
+            uint16_t d_steps = target_adv_steps - current_adv_steps;
+            if (d_steps < e_step_loops)
+                e_step_loops = d_steps;
+        }
         e_steps += e_step_loops;
         e_steps += e_step_loops;
         if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR);
         if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR);
         current_adv_steps += e_step_loops;
         current_adv_steps += e_step_loops;
-        nextAdvanceISR = eISR_Rate;
     }
     }
-    else {
+
+    if (current_adv_steps == target_adv_steps) {
         // advance steps completed
         // advance steps completed
         nextAdvanceISR = ADV_NEVER;
         nextAdvanceISR = ADV_NEVER;
-        LA_phase = -1;
-        e_step_loops = 1;
+    }
+    else {
+        // schedule another tick
+        nextAdvanceISR = eISR_Rate;
     }
     }
 }
 }
 
 
@@ -1017,7 +1034,7 @@ FORCE_INLINE void advance_isr_scheduler() {
 
 
     // Schedule the next closest tick, ignoring advance if scheduled too
     // Schedule the next closest tick, ignoring advance if scheduled too
     // soon in order to avoid skewing the regular stepper acceleration
     // soon in order to avoid skewing the regular stepper acceleration
-    if (nextAdvanceISR != ADV_NEVER && (nextAdvanceISR + TCNT1 + 40) < nextMainISR)
+    if (nextAdvanceISR != ADV_NEVER && (nextAdvanceISR + 40) < nextMainISR)
         OCR1A = nextAdvanceISR;
         OCR1A = nextAdvanceISR;
     else
     else
         OCR1A = nextMainISR;
         OCR1A = nextMainISR;

+ 3 - 2
Firmware/system_timer.h

@@ -8,11 +8,12 @@
 
 
 #ifdef SYSTEM_TIMER_2
 #ifdef SYSTEM_TIMER_2
 #include "timer02.h"
 #include "timer02.h"
+#include "tone04.h"
 #define _millis millis2
 #define _millis millis2
 #define _micros micros2
 #define _micros micros2
 #define _delay delay2
 #define _delay delay2
-#define _tone tone
-#define _noTone noTone
+#define _tone tone4
+#define _noTone noTone4
 
 
 #define timer02_set_pwm0(pwm0)
 #define timer02_set_pwm0(pwm0)
 
 

+ 267 - 125
Firmware/temperature.cpp

@@ -143,14 +143,22 @@ static volatile bool temp_meas_ready = false;
 #ifdef FAN_SOFT_PWM
 #ifdef FAN_SOFT_PWM
   static unsigned char soft_pwm_fan;
   static unsigned char soft_pwm_fan;
 #endif
 #endif
-#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \
-    (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \
-    (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
+
+uint8_t fanSpeedBckp = 255;
+
+#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1)
   unsigned long extruder_autofan_last_check = _millis();
   unsigned long extruder_autofan_last_check = _millis();
-  uint8_t fanSpeedBckp = 255;
+  
   bool fan_measuring = false;
   bool fan_measuring = false;
-
-#endif  
+  uint8_t fanState = 0;
+#ifdef EXTRUDER_ALTFAN_DETECT
+  struct
+  {
+    uint8_t isAltfan : 1;
+    uint8_t altfanOverride : 1;
+  } altfanStatus;
+#endif //EXTRUDER_ALTFAN_DETECT
+#endif
 
 
 
 
 #if EXTRUDERS > 3
 #if EXTRUDERS > 3
@@ -176,6 +184,12 @@ static int bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP;
 #ifdef BED_MAXTEMP
 #ifdef BED_MAXTEMP
 static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP;
 static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP;
 #endif
 #endif
+#ifdef AMBIENT_MINTEMP
+static int ambient_minttemp_raw = AMBIENT_RAW_LO_TEMP;
+#endif
+#ifdef AMBIENT_MAXTEMP
+static int ambient_maxttemp_raw = AMBIENT_RAW_HI_TEMP;
+#endif
 
 
 static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( (void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE, (void *)HEATER_2_TEMPTABLE );
 static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( (void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE, (void *)HEATER_2_TEMPTABLE );
 static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN );
 static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN );
@@ -210,6 +224,56 @@ static void temp_runaway_check(int _heater_id, float _target_temperature, float
 static void temp_runaway_stop(bool isPreheat, bool isBed);
 static void temp_runaway_stop(bool isPreheat, bool isBed);
 #endif
 #endif
 
 
+#ifdef EXTRUDER_ALTFAN_DETECT
+ISR(INT6_vect) {
+	fan_edge_counter[0]++;
+}
+
+bool extruder_altfan_detect()
+{
+	setExtruderAutoFanState(3);
+
+	SET_INPUT(TACH_0);
+
+	uint8_t overrideVal = eeprom_read_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE);
+	if (overrideVal == EEPROM_EMPTY_VALUE)
+	{
+		overrideVal = (calibration_status() == CALIBRATION_STATUS_CALIBRATED) ? 1 : 0;
+		eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, overrideVal);
+	}
+	altfanStatus.altfanOverride = overrideVal;
+
+	CRITICAL_SECTION_START;
+	EICRB &= ~(1 << ISC61);
+	EICRB |= (1 << ISC60);
+	EIMSK |= (1 << INT6);
+	fan_edge_counter[0] = 0;
+	CRITICAL_SECTION_END;
+	extruder_autofan_last_check = _millis();
+
+	_delay(1000);
+
+	EIMSK &= ~(1 << INT6);
+
+	countFanSpeed();
+	altfanStatus.isAltfan = fan_speed[0] > 100;
+	setExtruderAutoFanState(1);
+	return altfanStatus.isAltfan;
+}
+
+void altfanOverride_toggle()
+{
+    altfanStatus.altfanOverride = !altfanStatus.altfanOverride;
+    eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanStatus.altfanOverride);
+}
+
+bool altfanOverride_get()
+{
+    return altfanStatus.altfanOverride;
+}
+
+#endif //EXTRUDER_ALTFAN_DETECT
+
 // return "false", if all extruder-heaters are 'off' (ie. "true", if any heater is 'on')
 // return "false", if all extruder-heaters are 'off' (ie. "true", if any heater is 'on')
 bool checkAllHotends(void)
 bool checkAllHotends(void)
 {
 {
@@ -239,9 +303,7 @@ bool checkAllHotends(void)
   const uint8_t safety_check_cycles_count = (extruder < 0) ? 45 : 10; //10 cycles / 20s delay for extruder and 45 cycles / 90s for heatbed
   const uint8_t safety_check_cycles_count = (extruder < 0) ? 45 : 10; //10 cycles / 20s delay for extruder and 45 cycles / 90s for heatbed
   float temp_ambient;
   float temp_ambient;
 
 
-#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \
-    (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \
-    (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
+#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1)
   unsigned long extruder_autofan_last_check = _millis();
   unsigned long extruder_autofan_last_check = _millis();
 #endif
 #endif
 
 
@@ -289,9 +351,7 @@ bool checkAllHotends(void)
       max=max(max,input);
       max=max(max,input);
       min=min(min,input);
       min=min(min,input);
 
 
-      #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \
-          (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \
-          (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
+      #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1)
       if(_millis() - extruder_autofan_last_check > 2500) {
       if(_millis() - extruder_autofan_last_check > 2500) {
         checkExtruderAutoFans();
         checkExtruderAutoFans();
         extruder_autofan_last_check = _millis();
         extruder_autofan_last_check = _millis();
@@ -447,29 +507,31 @@ int getHeaterPower(int heater) {
   return soft_pwm[heater];
   return soft_pwm[heater];
 }
 }
 
 
-#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \
-    (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \
-    (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
+#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1)
 
 
   #if defined(FAN_PIN) && FAN_PIN > -1
   #if defined(FAN_PIN) && FAN_PIN > -1
     #if EXTRUDER_0_AUTO_FAN_PIN == FAN_PIN 
     #if EXTRUDER_0_AUTO_FAN_PIN == FAN_PIN 
        #error "You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN"
        #error "You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN"
     #endif
     #endif
-    #if EXTRUDER_1_AUTO_FAN_PIN == FAN_PIN 
-       #error "You cannot set EXTRUDER_1_AUTO_FAN_PIN equal to FAN_PIN"
-    #endif
-    #if EXTRUDER_2_AUTO_FAN_PIN == FAN_PIN 
-       #error "You cannot set EXTRUDER_2_AUTO_FAN_PIN equal to FAN_PIN"
-    #endif
-  #endif 
+  #endif
 
 
-void setExtruderAutoFanState(int pin, bool state)
+void setExtruderAutoFanState(uint8_t state)
 {
 {
-  unsigned char newFanSpeed = (state != 0) ? EXTRUDER_AUTO_FAN_SPEED : 0;
-  // this idiom allows both digital and PWM fan outputs (see M42 handling).
-  pinMode(pin, OUTPUT);
-  digitalWrite(pin, newFanSpeed);
-  //analogWrite(pin, newFanSpeed);
+	//If bit 1 is set (0x02), then the extruder fan speed won't be adjusted according to temperature. Useful for forcing
+	//the fan to either On or Off during certain tests/errors.
+
+	fanState = state;
+	uint8_t newFanSpeed = 0;
+	if (fanState & 0x01)
+	{
+#ifdef EXTRUDER_ALTFAN_DETECT
+		if (altfanStatus.isAltfan && !altfanStatus.altfanOverride) newFanSpeed = EXTRUDER_ALTFAN_SPEED_SILENT;
+		else newFanSpeed = EXTRUDER_AUTO_FAN_SPEED;
+#else //EXTRUDER_ALTFAN_DETECT
+		newFanSpeed = EXTRUDER_AUTO_FAN_SPEED;
+#endif //EXTRUDER_ALTFAN_DETECT
+	}
+	timer4_set_fan0(newFanSpeed);
 }
 }
 
 
 #if (defined(FANCHECK) && (((defined(TACH_0) && (TACH_0 >-1)) || (defined(TACH_1) && (TACH_1 > -1)))))
 #if (defined(FANCHECK) && (((defined(TACH_0) && (TACH_0 >-1)) || (defined(TACH_1) && (TACH_1 > -1)))))
@@ -503,7 +565,7 @@ void checkFanSpeed()
 	  fans_check_enabled = (eeprom_read_byte((uint8_t*)EEPROM_FAN_CHECK_ENABLED) > 0);
 	  fans_check_enabled = (eeprom_read_byte((uint8_t*)EEPROM_FAN_CHECK_ENABLED) > 0);
 	static unsigned char fan_speed_errors[2] = { 0,0 };
 	static unsigned char fan_speed_errors[2] = { 0,0 };
 #if (defined(FANCHECK) && defined(TACH_0) && (TACH_0 >-1))
 #if (defined(FANCHECK) && defined(TACH_0) && (TACH_0 >-1))
-	if ((fan_speed[0] == 0) && (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE)){ fan_speed_errors[0]++;}
+	if ((fan_speed[0] < 20) && (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE)){ fan_speed_errors[0]++;}
 	else{
 	else{
     fan_speed_errors[0] = 0;
     fan_speed_errors[0] = 0;
     host_keepalive();
     host_keepalive();
@@ -577,47 +639,14 @@ void fanSpeedError(unsigned char _fan) {
 
 
 void checkExtruderAutoFans()
 void checkExtruderAutoFans()
 {
 {
-  uint8_t fanState = 0;
-
-  // which fan pins need to be turned on?      
-  #if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1
-  if (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE)
-	  fanState |= 1;
-  #endif
-  #if defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1
-    if (current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE) 
-    {
-      if (EXTRUDER_1_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) 
-        fanState |= 1;
-      else
-        fanState |= 2;
-    }
-  #endif
-  #if defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1
-    if (current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE) 
-    {
-      if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) 
-        fanState |= 1;
-      else if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN) 
-        fanState |= 2;
-      else
-        fanState |= 4;
-    }
-  #endif
-  
-  // update extruder auto fan states
-  #if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1
-    setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, (fanState & 1) != 0);
-  #endif 
-  #if defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1
-    if (EXTRUDER_1_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN) 
-      setExtruderAutoFanState(EXTRUDER_1_AUTO_FAN_PIN, (fanState & 2) != 0);
-  #endif 
-  #if defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1
-    if (EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN 
-        && EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN)
-      setExtruderAutoFanState(EXTRUDER_2_AUTO_FAN_PIN, (fanState & 4) != 0);
-  #endif 
+#if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1
+	if (!(fanState & 0x02))
+	{
+		fanState &= ~1;
+		fanState |= current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE;
+	}
+	setExtruderAutoFanState(fanState);
+#endif 
 }
 }
 
 
 #endif // any extruder auto fan pins set
 #endif // any extruder auto fan pins set
@@ -641,6 +670,7 @@ void manage_heater()
     return; 
     return; 
 // more precisely - this condition partially stabilizes time interval for regulation values evaluation (@ ~ 230ms)
 // more precisely - this condition partially stabilizes time interval for regulation values evaluation (@ ~ 230ms)
 
 
+  // ADC values need to be converted before checking: converted values are later used in MINTEMP
   updateTemperaturesFromRawValues();
   updateTemperaturesFromRawValues();
 
 
   check_max_temp();
   check_max_temp();
@@ -737,9 +767,7 @@ void manage_heater()
 #define FAN_CHECK_DURATION 100 //100ms
 #define FAN_CHECK_DURATION 100 //100ms
 
 
 #ifndef DEBUG_DISABLE_FANCHECK
 #ifndef DEBUG_DISABLE_FANCHECK
-  #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \
-      (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \
-      (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
+  #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1)
 
 
 #ifdef FAN_SOFT_PWM
 #ifdef FAN_SOFT_PWM
 #ifdef FANCHECK
 #ifdef FANCHECK
@@ -1098,7 +1126,9 @@ void tp_init()
 
 
   timer0_init();
   timer0_init();
   OCR2B = 128;
   OCR2B = 128;
-  TIMSK2 |= (1<<OCIE2B);  
+  TIMSK2 |= (1<<OCIE2B);
+  
+  timer4_init(); //for tone and Extruder fan PWM
   
   
   // Wait for temperature measurement to settle
   // Wait for temperature measurement to settle
   _delay(250);
   _delay(250);
@@ -1167,7 +1197,6 @@ void tp_init()
 #endif //MAXTEMP 2
 #endif //MAXTEMP 2
 
 
 #ifdef BED_MINTEMP
 #ifdef BED_MINTEMP
-  /* No bed MINTEMP error implemented?!? */
   while(analog2tempBed(bed_minttemp_raw) < BED_MINTEMP) {
   while(analog2tempBed(bed_minttemp_raw) < BED_MINTEMP) {
 #if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP
 #if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP
     bed_minttemp_raw += OVERSAMPLENR;
     bed_minttemp_raw += OVERSAMPLENR;
@@ -1175,7 +1204,6 @@ void tp_init()
     bed_minttemp_raw -= OVERSAMPLENR;
     bed_minttemp_raw -= OVERSAMPLENR;
 #endif
 #endif
   }
   }
-  
 #endif //BED_MINTEMP
 #endif //BED_MINTEMP
 #ifdef BED_MAXTEMP
 #ifdef BED_MAXTEMP
   while(analog2tempBed(bed_maxttemp_raw) > BED_MAXTEMP) {
   while(analog2tempBed(bed_maxttemp_raw) > BED_MAXTEMP) {
@@ -1186,6 +1214,25 @@ void tp_init()
 #endif
 #endif
   }
   }
 #endif //BED_MAXTEMP
 #endif //BED_MAXTEMP
+
+#ifdef AMBIENT_MINTEMP
+  while(analog2tempAmbient(ambient_minttemp_raw) < AMBIENT_MINTEMP) {
+#if HEATER_AMBIENT_RAW_LO_TEMP < HEATER_AMBIENT_RAW_HI_TEMP
+    ambient_minttemp_raw += OVERSAMPLENR;
+#else
+    ambient_minttemp_raw -= OVERSAMPLENR;
+#endif
+  }
+#endif //AMBIENT_MINTEMP
+#ifdef AMBIENT_MAXTEMP
+  while(analog2tempAmbient(ambient_maxttemp_raw) > AMBIENT_MAXTEMP) {
+#if HEATER_AMBIENT_RAW_LO_TEMP < HEATER_AMBIENT_RAW_HI_TEMP
+    ambient_maxttemp_raw -= OVERSAMPLENR;
+#else
+    ambient_maxttemp_raw += OVERSAMPLENR;
+#endif
+  }
+#endif //AMBIENT_MAXTEMP
 }
 }
 
 
 #if (defined (TEMP_RUNAWAY_BED_HYSTERESIS) && TEMP_RUNAWAY_BED_TIMEOUT > 0) || (defined (TEMP_RUNAWAY_EXTRUDER_HYSTERESIS) && TEMP_RUNAWAY_EXTRUDER_TIMEOUT > 0)
 #if (defined (TEMP_RUNAWAY_BED_HYSTERESIS) && TEMP_RUNAWAY_BED_TIMEOUT > 0) || (defined (TEMP_RUNAWAY_EXTRUDER_HYSTERESIS) && TEMP_RUNAWAY_EXTRUDER_TIMEOUT > 0)
@@ -1357,9 +1404,11 @@ void temp_runaway_stop(bool isPreheat, bool isBed)
 		isBed ? LCD_ALERTMESSAGEPGM("BED PREHEAT ERROR") : LCD_ALERTMESSAGEPGM("PREHEAT ERROR");
 		isBed ? LCD_ALERTMESSAGEPGM("BED PREHEAT ERROR") : LCD_ALERTMESSAGEPGM("PREHEAT ERROR");
 		SERIAL_ERROR_START;
 		SERIAL_ERROR_START;
 		isBed ? SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HEATBED)") : SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HOTEND)");
 		isBed ? SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HEATBED)") : SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HOTEND)");
-		SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN);
+#ifdef EXTRUDER_ALTFAN_DETECT
+		altfanStatus.altfanOverride = 1; //full speed
+#endif //EXTRUDER_ALTFAN_DETECT
+		setExtruderAutoFanState(3);
 		SET_OUTPUT(FAN_PIN);
 		SET_OUTPUT(FAN_PIN);
-		WRITE(EXTRUDER_0_AUTO_FAN_PIN, 1);
 #ifdef FAN_SOFT_PWM
 #ifdef FAN_SOFT_PWM
 		fanSpeedSoftPwm = 255;
 		fanSpeedSoftPwm = 255;
 #else //FAN_SOFT_PWM
 #else //FAN_SOFT_PWM
@@ -1427,26 +1476,55 @@ enum { LCDALERT_NONE = 0, LCDALERT_HEATERMINTEMP, LCDALERT_BEDMINTEMP, LCDALERT_
 //! to prevent flicker and improve speed
 //! to prevent flicker and improve speed
 uint8_t last_alert_sent_to_lcd = LCDALERT_NONE;
 uint8_t last_alert_sent_to_lcd = LCDALERT_NONE;
 
 
+
+//! update the current temperature error message
+//! @param type short error abbreviation (PROGMEM)
+//! @param func optional lcd update function (lcd_setalertstatus when first setting the error)
+void temp_update_messagepgm(const char* PROGMEM type, void (*func)(const char*) = lcd_updatestatus)
+{
+    char msg[LCD_WIDTH];
+    strcpy_P(msg, PSTR("Err: "));
+    strcat_P(msg, type);
+    (*func)(msg);
+}
+
+//! signal a temperature error on both the lcd and serial
+//! @param type short error abbreviation (PROGMEM)
+//! @param e optional extruder index for hotend errors
+void temp_error_messagepgm(const char* PROGMEM type, uint8_t e = EXTRUDERS)
+{
+    temp_update_messagepgm(type, lcd_setalertstatus);
+
+    SERIAL_ERROR_START;
+
+    if(e != EXTRUDERS) {
+        SERIAL_ERROR((int)e);
+        SERIAL_ERRORPGM(": ");
+    }
+
+    SERIAL_ERRORPGM("Heaters switched off. ");
+    SERIAL_ERRORRPGM(type);
+    SERIAL_ERRORLNPGM(" triggered!");
+}
+
+
 void max_temp_error(uint8_t e) {
 void max_temp_error(uint8_t e) {
   disable_heater();
   disable_heater();
   if(IsStopped() == false) {
   if(IsStopped() == false) {
-    SERIAL_ERROR_START;
-    SERIAL_ERRORLN((int)e);
-    SERIAL_ERRORLNPGM(": Extruder switched off. MAXTEMP triggered !");
-    LCD_ALERTMESSAGEPGM("Err: MAXTEMP");
+    temp_error_messagepgm(PSTR("MAXTEMP"), e);
   }
   }
   #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
   #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
   Stop();
   Stop();
-    
-
-    
   #endif
   #endif
-    SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN);
+
     SET_OUTPUT(FAN_PIN);
     SET_OUTPUT(FAN_PIN);
     SET_OUTPUT(BEEPER);
     SET_OUTPUT(BEEPER);
     WRITE(FAN_PIN, 1);
     WRITE(FAN_PIN, 1);
-    WRITE(EXTRUDER_0_AUTO_FAN_PIN, 1);
     WRITE(BEEPER, 1);
     WRITE(BEEPER, 1);
+#ifdef EXTRUDER_ALTFAN_DETECT
+    altfanStatus.altfanOverride = 1; //full speed
+#endif //EXTRUDER_ALTFAN_DETECT
+    setExtruderAutoFanState(3);
     // fanSpeed will consumed by the check_axes_activity() routine.
     // fanSpeed will consumed by the check_axes_activity() routine.
     fanSpeed=255;
     fanSpeed=255;
 	if (farm_mode) { prusa_statistics(93); }
 	if (farm_mode) { prusa_statistics(93); }
@@ -1456,18 +1534,15 @@ void min_temp_error(uint8_t e) {
 #ifdef DEBUG_DISABLE_MINTEMP
 #ifdef DEBUG_DISABLE_MINTEMP
 	return;
 	return;
 #endif
 #endif
-//if (current_temperature_ambient < MINTEMP_MINAMBIENT) return;
   disable_heater();
   disable_heater();
-	static const char err[] PROGMEM = "Err: MINTEMP";
+//if (current_temperature_ambient < MINTEMP_MINAMBIENT) return;
+	static const char err[] PROGMEM = "MINTEMP";
   if(IsStopped() == false) {
   if(IsStopped() == false) {
-    SERIAL_ERROR_START;
-    SERIAL_ERRORLN((int)e);
-    SERIAL_ERRORLNPGM(": Extruder switched off. MINTEMP triggered !");
-    lcd_setalertstatuspgm(err);
+    temp_error_messagepgm(err, e);
     last_alert_sent_to_lcd = LCDALERT_HEATERMINTEMP;
     last_alert_sent_to_lcd = LCDALERT_HEATERMINTEMP;
   } else if( last_alert_sent_to_lcd != LCDALERT_HEATERMINTEMP ){ // only update, if the lcd message is to be changed (i.e. not the same as last time)
   } else if( last_alert_sent_to_lcd != LCDALERT_HEATERMINTEMP ){ // only update, if the lcd message is to be changed (i.e. not the same as last time)
 	// we are already stopped due to some error, only update the status message without flickering
 	// we are already stopped due to some error, only update the status message without flickering
-	lcd_updatestatuspgm(err);
+    temp_update_messagepgm(err);
 	last_alert_sent_to_lcd = LCDALERT_HEATERMINTEMP;
 	last_alert_sent_to_lcd = LCDALERT_HEATERMINTEMP;
   }
   }
   #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
   #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
@@ -1482,37 +1557,27 @@ void min_temp_error(uint8_t e) {
 }
 }
 
 
 void bed_max_temp_error(void) {
 void bed_max_temp_error(void) {
-#if HEATER_BED_PIN > -1
-  //WRITE(HEATER_BED_PIN, 0);
-#endif
+  disable_heater();
   if(IsStopped() == false) {
   if(IsStopped() == false) {
-    SERIAL_ERROR_START;
-    SERIAL_ERRORLNPGM("Temperature heated bed switched off. MAXTEMP triggered !");
-    LCD_ALERTMESSAGEPGM("Err: MAXTEMP BED");
+    temp_error_messagepgm(PSTR("MAXTEMP BED"));
   }
   }
   #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
   #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
   Stop();
   Stop();
   #endif
   #endif
-
 }
 }
 
 
 void bed_min_temp_error(void) {
 void bed_min_temp_error(void) {
 #ifdef DEBUG_DISABLE_MINTEMP
 #ifdef DEBUG_DISABLE_MINTEMP
 	return;
 	return;
 #endif
 #endif
-//if (current_temperature_ambient < MINTEMP_MINAMBIENT) return;
-#if HEATER_BED_PIN > -1
-    //WRITE(HEATER_BED_PIN, 0);
-#endif
-	static const char err[] PROGMEM = "Err: MINTEMP BED";
+    disable_heater();
+    static const char err[] PROGMEM = "MINTEMP BED";
     if(IsStopped() == false) {
     if(IsStopped() == false) {
-        SERIAL_ERROR_START;
-        SERIAL_ERRORLNPGM("Temperature heated bed switched off. MINTEMP triggered !");
-		lcd_setalertstatuspgm(err);
+        temp_error_messagepgm(err);
 		last_alert_sent_to_lcd = LCDALERT_BEDMINTEMP;
 		last_alert_sent_to_lcd = LCDALERT_BEDMINTEMP;
 	} else if( last_alert_sent_to_lcd != LCDALERT_BEDMINTEMP ){ // only update, if the lcd message is to be changed (i.e. not the same as last time)
 	} else if( last_alert_sent_to_lcd != LCDALERT_BEDMINTEMP ){ // only update, if the lcd message is to be changed (i.e. not the same as last time)
 		// we are already stopped due to some error, only update the status message without flickering
 		// we are already stopped due to some error, only update the status message without flickering
-		lcd_updatestatuspgm(err);
+        temp_update_messagepgm(err);
 		last_alert_sent_to_lcd = LCDALERT_BEDMINTEMP;
 		last_alert_sent_to_lcd = LCDALERT_BEDMINTEMP;
     }
     }
 #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
 #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
@@ -1520,6 +1585,33 @@ void bed_min_temp_error(void) {
 #endif
 #endif
 }
 }
 
 
+
+#ifdef AMBIENT_THERMISTOR
+void ambient_max_temp_error(void) {
+    disable_heater();
+    if(IsStopped() == false) {
+        temp_error_messagepgm(PSTR("MAXTEMP AMB"));
+    }
+#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
+    Stop();
+#endif
+}
+
+void ambient_min_temp_error(void) {
+#ifdef DEBUG_DISABLE_MINTEMP
+	return;
+#endif
+    disable_heater();
+    if(IsStopped() == false) {
+        temp_error_messagepgm(PSTR("MINTEMP AMB"));
+    }
+#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
+    Stop();
+#endif
+}
+#endif
+
+
 #ifdef HEATER_0_USES_MAX6675
 #ifdef HEATER_0_USES_MAX6675
 #define MAX6675_HEAT_INTERVAL 250
 #define MAX6675_HEAT_INTERVAL 250
 long max6675_previous_millis = MAX6675_HEAT_INTERVAL;
 long max6675_previous_millis = MAX6675_HEAT_INTERVAL;
@@ -1604,18 +1696,8 @@ void adc_ready(void) //callback from adc when sampling finished
 
 
 } // extern "C"
 } // extern "C"
 
 
-// Timer2 (originaly timer0) is shared with millies
-#ifdef SYSTEM_TIMER_2
-ISR(TIMER2_COMPB_vect)
-#else //SYSTEM_TIMER_2
-ISR(TIMER0_COMPB_vect)
-#endif //SYSTEM_TIMER_2
+FORCE_INLINE static void temperature_isr()
 {
 {
-	static bool _lock = false;
-	if (_lock) return;
-	_lock = true;
-	asm("sei");
-
 	if (!temp_meas_ready) adc_cycle();
 	if (!temp_meas_ready) adc_cycle();
 	lcd_buttons_update();
 	lcd_buttons_update();
 
 
@@ -1981,8 +2063,24 @@ ISR(TIMER0_COMPB_vect)
 #if (defined(FANCHECK) && defined(TACH_0) && (TACH_0 > -1))
 #if (defined(FANCHECK) && defined(TACH_0) && (TACH_0 > -1))
   check_fans();
   check_fans();
 #endif //(defined(TACH_0))
 #endif //(defined(TACH_0))
+}
 
 
-	_lock = false;
+// Timer2 (originaly timer0) is shared with millies
+#ifdef SYSTEM_TIMER_2
+ISR(TIMER2_COMPB_vect)
+#else //SYSTEM_TIMER_2
+ISR(TIMER0_COMPB_vect)
+#endif //SYSTEM_TIMER_2
+{
+    static bool _lock = false;
+    if (!_lock)
+    {
+        _lock = true;
+        sei();
+        temperature_isr();
+        cli();
+        _lock = false;
+    }
 }
 }
 
 
 void check_max_temp()
 void check_max_temp()
@@ -2002,11 +2100,19 @@ void check_max_temp()
 #else
 #else
     if (current_temperature_bed_raw >= bed_maxttemp_raw) {
     if (current_temperature_bed_raw >= bed_maxttemp_raw) {
 #endif
 #endif
-       target_temperature_bed = 0;
        bed_max_temp_error();
        bed_max_temp_error();
     }
     }
 #endif
 #endif
-
+//ambient
+#if defined(AMBIENT_MAXTEMP) && (TEMP_SENSOR_AMBIENT != 0)
+#if AMBIENT_RAW_LO_TEMP > AMBIENT_RAW_HI_TEMP
+    if (current_temperature_raw_ambient <= ambient_maxttemp_raw) {
+#else
+    if (current_temperature_raw_ambient >= ambient_maxttemp_raw) {
+#endif
+       ambient_max_temp_error();
+    }
+#endif
 }
 }
 //! number of repeating the same state with consecutive step() calls
 //! number of repeating the same state with consecutive step() calls
 //! used to slow down text switching
 //! used to slow down text switching
@@ -2101,12 +2207,32 @@ void check_min_temp_bed()
 	}
 	}
 }
 }
 
 
+#ifdef AMBIENT_MINTEMP
+void check_min_temp_ambient()
+{
+#if AMBIENT_RAW_LO_TEMP > AMBIENT_RAW_HI_TEMP
+	if (current_temperature_raw_ambient >= ambient_minttemp_raw) {
+#else
+	if (current_temperature_raw_ambient <= ambient_minttemp_raw) {
+#endif
+		ambient_min_temp_error();
+	}
+}
+#endif
+
 void check_min_temp()
 void check_min_temp()
 {
 {
 static bool bCheckingOnHeater=false;              // state variable, which allows to short no-checking delay (is set, when temperature is (first time) over heaterMintemp)
 static bool bCheckingOnHeater=false;              // state variable, which allows to short no-checking delay (is set, when temperature is (first time) over heaterMintemp)
 static bool bCheckingOnBed=false;                 // state variable, which allows to short no-checking delay (is set, when temperature is (first time) over bedMintemp)
 static bool bCheckingOnBed=false;                 // state variable, which allows to short no-checking delay (is set, when temperature is (first time) over bedMintemp)
 #ifdef AMBIENT_THERMISTOR
 #ifdef AMBIENT_THERMISTOR
-if(current_temperature_raw_ambient>(OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW)) // thermistor is NTC type, so operator is ">" ;-)
+#ifdef AMBIENT_MINTEMP
+check_min_temp_ambient();
+#endif
+#if AMBIENT_RAW_LO_TEMP > AMBIENT_RAW_HI_TEMP
+if(current_temperature_raw_ambient>(OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW)) // thermistor is NTC type
+#else
+if(current_temperature_raw_ambient=<(OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW))
+#endif
      {                                            // ambient temperature is low
      {                                            // ambient temperature is low
 #endif //AMBIENT_THERMISTOR
 #endif //AMBIENT_THERMISTOR
 // *** 'common' part of code for MK2.5 & MK3
 // *** 'common' part of code for MK2.5 & MK3
@@ -2194,4 +2320,20 @@ float unscalePID_d(float d)
 
 
 #endif //PIDTEMP
 #endif //PIDTEMP
 
 
+#ifdef PINDA_THERMISTOR
+//! @brief PINDA thermistor detected
+//!
+//! @retval true firmware should do temperature compensation and allow calibration
+//! @retval false PINDA thermistor is not detected, disable temperature compensation and calibration
+//!
+bool has_temperature_compensation()
+{
+#ifdef DETECT_SUPERPINDA
+    return (current_temperature_pinda >= PINDA_MINTEMP) ? true : false;
+#else
+    return true;
+#endif
+}
+#endif //PINDA_THERMISTOR
+
 
 

+ 8 - 3
Firmware/temperature.h

@@ -63,6 +63,7 @@ extern float current_temperature_bed;
 #ifdef PINDA_THERMISTOR
 #ifdef PINDA_THERMISTOR
 extern uint16_t current_temperature_raw_pinda;
 extern uint16_t current_temperature_raw_pinda;
 extern float current_temperature_pinda;
 extern float current_temperature_pinda;
+bool has_temperature_compensation();
 #endif
 #endif
 
 
 #ifdef AMBIENT_THERMISTOR
 #ifdef AMBIENT_THERMISTOR
@@ -245,7 +246,7 @@ FORCE_INLINE void autotempShutdown(){
 
 
 void PID_autotune(float temp, int extruder, int ncycles);
 void PID_autotune(float temp, int extruder, int ncycles);
 
 
-void setExtruderAutoFanState(int pin, bool state);
+void setExtruderAutoFanState(uint8_t state);
 void checkExtruderAutoFans();
 void checkExtruderAutoFans();
 
 
 
 
@@ -270,10 +271,14 @@ void check_fans();
 void check_min_temp();
 void check_min_temp();
 void check_max_temp();
 void check_max_temp();
 
 
-
-#endif
+#ifdef EXTRUDER_ALTFAN_DETECT
+  extern bool extruder_altfan_detect();
+  extern void altfanOverride_toggle();
+  extern bool altfanOverride_get();
+#endif //EXTRUDER_ALTFAN_DETECT
 
 
 extern unsigned long extruder_autofan_last_check;
 extern unsigned long extruder_autofan_last_check;
 extern uint8_t fanSpeedBckp;
 extern uint8_t fanSpeedBckp;
 extern bool fan_measuring;
 extern bool fan_measuring;
 
 
+#endif

+ 2 - 0
Firmware/thermistortables.h

@@ -1213,6 +1213,8 @@ const short temptable_1047[][2] PROGMEM = {
 #endif
 #endif
 
 
 #if (THERMISTORAMBIENT == 2000) //100k thermistor NTCG104LH104JT1
 #if (THERMISTORAMBIENT == 2000) //100k thermistor NTCG104LH104JT1
+# define AMBIENT_RAW_HI_TEMP 0
+# define AMBIENT_RAW_LO_TEMP 16383
 const short temptable_2000[][2] PROGMEM = {
 const short temptable_2000[][2] PROGMEM = {
 // Source: https://product.tdk.com/info/en/catalog/datasheets/503021/tpd_ntc-thermistor_ntcg_en.pdf
 // Source: https://product.tdk.com/info/en/catalog/datasheets/503021/tpd_ntc-thermistor_ntcg_en.pdf
 // Calculated using 4.7kohm pullup, voltage divider math, and manufacturer provided temp/resistance
 // Calculated using 4.7kohm pullup, voltage divider math, and manufacturer provided temp/resistance

+ 126 - 0
Firmware/tone04.c

@@ -0,0 +1,126 @@
+//tone04.c
+// use atmega timer4 as main tone timer instead of timer2
+// timer2 is used for System timer.
+
+#include "system_timer.h"
+#include "Configuration_prusa.h"
+
+#ifdef SYSTEM_TIMER_2
+
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include "pins.h"
+
+#ifndef CRITICAL_SECTION_START
+	#define CRITICAL_SECTION_START  unsigned char _sreg = SREG; cli();
+	#define CRITICAL_SECTION_END    SREG = _sreg;
+#endif //CRITICAL_SECTION_START
+
+
+#include "fastio.h"
+
+void timer4_init(void)
+{
+	CRITICAL_SECTION_START;
+	
+	SET_OUTPUT(BEEPER);
+	WRITE(BEEPER, LOW);
+	
+	SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN);
+	
+	// Set timer mode 9 (PWM,Phase and Frequency Correct)
+	// Prescaler is CLK/1024
+	// Output compare is disabled on all timer pins
+	// Input capture is disabled
+	// All interrupts are disabled
+	TCCR4A = (1 << WGM40);
+	TCCR4B = (1 << WGM43) | (1 << CS42) | (1 << CS40);
+	OCR4A = 255;
+	OCR4B = 255;
+	OCR4C = 255;
+	TIMSK4 = 0;
+	
+	CRITICAL_SECTION_END;
+}
+
+#ifdef EXTRUDER_0_AUTO_FAN_PIN
+void timer4_set_fan0(uint8_t duty)
+{
+	if (duty == 0 || duty == 255)
+	{
+		// We use digital logic if the duty cycle is 0% or 100%
+		TCCR4A &= ~(1 << COM4C1);
+		OCR4C = 0;
+		WRITE(EXTRUDER_0_AUTO_FAN_PIN, duty);
+	}
+	else
+	{
+		// Use the timer for fan speed. Enable the timer compare output and set the duty cycle.
+		// This function also handles the impossible scenario of a fan speed change during a Tone.
+		// Better be safe than sorry.
+		CRITICAL_SECTION_START;
+		// Enable the PWM output on the fan pin.
+		TCCR4A |= (1 << COM4C1);
+		OCR4C = (((uint32_t)duty) * ((uint32_t)((TIMSK4 & (1 << OCIE4A))?OCR4A:255))) / ((uint32_t)255);
+		CRITICAL_SECTION_END;
+	}
+}
+#endif //EXTRUDER_0_AUTO_FAN_PIN
+
+// Because of the timer mode change, we need two interrupts. We could also try to assume that the frequency is x2
+// and use a TOGGLE(), but this seems to work well enough so I left it as it is now.
+ISR(TIMER4_COMPA_vect)
+{
+	WRITE(BEEPER, 1);
+}
+
+ISR(TIMER4_OVF_vect)
+{
+	WRITE(BEEPER, 0);
+}
+
+void tone4(__attribute__((unused)) uint8_t _pin, uint16_t frequency)
+{
+	//this ocr and prescalarbits calculation is taken from the Arduino core and simplified for one type of timer only
+	uint8_t prescalarbits = 0b001;
+	uint32_t ocr = F_CPU / frequency / 2 - 1;
+	
+	if (ocr > 0xffff)
+	{
+		ocr = F_CPU / frequency / 2 / 64 - 1;
+		prescalarbits = 0b011;
+	}
+	
+	CRITICAL_SECTION_START;
+	// Set calcualted prescaler
+	TCCR4B = (TCCR4B & 0b11111000) | prescalarbits;
+#ifdef EXTRUDER_0_AUTO_FAN_PIN
+	// Scale the fan PWM duty cycle so that it remains constant, but at the tone frequency
+	OCR4C = (((uint32_t)OCR4C) * ocr) / (uint32_t)((TIMSK4 & (1 << OCIE4A))?OCR4A:255);
+#endif //EXTRUDER_0_AUTO_FAN_PIN
+	// Set calcualted ocr
+	OCR4A = ocr;
+	// Enable Output compare A interrupt and timer overflow interrupt
+	TIMSK4 |= (1 << OCIE4A) | (1 << TOIE4);
+	CRITICAL_SECTION_END;
+}
+
+void noTone4(__attribute__((unused)) uint8_t _pin)
+{
+	CRITICAL_SECTION_START;
+	// Revert prescaler to CLK/1024
+	TCCR4B = (TCCR4B & 0b11111000) | (1 << CS42) | (1 << CS40);
+#ifdef EXTRUDER_0_AUTO_FAN_PIN
+	// Scale the fan OCR back to the original value.
+	OCR4C = (((uint32_t)OCR4C) * (uint32_t)255) / (uint32_t)((TIMSK4 & (1 << OCIE4A))?OCR4A:255);
+#endif //EXTRUDER_0_AUTO_FAN_PIN
+	OCR4A = 255;
+	// Disable Output compare A interrupt and timer overflow interrupt
+	TIMSK4 &= ~((1 << OCIE4A) | (1 << TOIE4));
+	CRITICAL_SECTION_END;
+	// Turn beeper off if it was on when noTone was called
+	WRITE(BEEPER, 0);
+}
+
+
+#endif //SYSTEM_TIMER_2

+ 25 - 0
Firmware/tone04.h

@@ -0,0 +1,25 @@
+//tone04.h
+// use atmega timer4 as main tone timer instead of timer2
+// timer2 is used for System timer.
+#ifndef TIMER04_H
+#define TIMER04_H
+
+#include <inttypes.h>
+
+#if defined(__cplusplus)
+extern "C" {
+#endif //defined(__cplusplus)
+
+extern void timer4_init(void);
+
+extern void timer4_set_fan0(uint8_t duty);
+
+extern void tone4(uint8_t _pin, uint16_t frequency);
+
+extern void noTone4(uint8_t _pin);
+
+#if defined(__cplusplus)
+}
+#endif //defined(__cplusplus)
+
+#endif //TIMER02_H

+ 177 - 104
Firmware/ultralcd.cpp

@@ -2169,18 +2169,7 @@ static void lcd_support_menu()
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
   MENU_ITEM_BACK_P(STR_SEPARATOR);
   MENU_ITEM_BACK_P(STR_SEPARATOR);
   MENU_ITEM_BACK_P(PSTR("Fil. sensor v.:"));
   MENU_ITEM_BACK_P(PSTR("Fil. sensor v.:"));
-  switch(oFsensorPCB)
-       {
-       case ClFsensorPCB::_Old:
-            MENU_ITEM_BACK_P(_T(MSG_03_OR_OLDER));
-            break;
-       case ClFsensorPCB::_Rev04:
-            MENU_ITEM_BACK_P(_T(MSG_04_OR_NEWER));
-            break;
-       case ClFsensorPCB::_Undef:
-       default:
-            MENU_ITEM_BACK_P(PSTR(" unknown state"));
-       }
+  MENU_ITEM_BACK_P(FsensorIRVersionText());
 #endif // IR_SENSOR_ANALOG
 #endif // IR_SENSOR_ANALOG
 
 
 	MENU_ITEM_BACK_P(STR_SEPARATOR);
 	MENU_ITEM_BACK_P(STR_SEPARATOR);
@@ -2228,6 +2217,7 @@ static void lcd_support_menu()
   MENU_ITEM_SUBMENU_P(_i("Voltages"), lcd_menu_voltages);////MSG_MENU_VOLTAGES c=18 r=1
   MENU_ITEM_SUBMENU_P(_i("Voltages"), lcd_menu_voltages);////MSG_MENU_VOLTAGES c=18 r=1
 #endif //defined VOLT_BED_PIN || defined VOLT_PWR_PIN
 #endif //defined VOLT_BED_PIN || defined VOLT_PWR_PIN
 
 
+
 #ifdef DEBUG_BUILD
 #ifdef DEBUG_BUILD
   MENU_ITEM_SUBMENU_P(PSTR("Debug"), lcd_menu_debug);////c=18 r=1
   MENU_ITEM_SUBMENU_P(PSTR("Debug"), lcd_menu_debug);////c=18 r=1
 #endif /* DEBUG_BUILD */
 #endif /* DEBUG_BUILD */
@@ -2514,6 +2504,12 @@ static void mFilamentItem_ASA()
     mFilamentItem(ASA_PREHEAT_HOTEND_TEMP, ASA_PREHEAT_HPB_TEMP);
     mFilamentItem(ASA_PREHEAT_HOTEND_TEMP, ASA_PREHEAT_HPB_TEMP);
 }
 }
 
 
+static void mFilamentItem_PC()
+{
+    bFilamentPreheatState = false;
+    mFilamentItem(PC_PREHEAT_HOTEND_TEMP, PC_PREHEAT_HPB_TEMP);
+}
+
 static void mFilamentItem_ABS()
 static void mFilamentItem_ABS()
 {
 {
     bFilamentPreheatState = false;
     bFilamentPreheatState = false;
@@ -2573,6 +2569,7 @@ void lcd_generic_preheat_menu()
         MENU_ITEM_SUBMENU_P(PSTR("PLA  -  " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)),mFilamentItem_PLA);
         MENU_ITEM_SUBMENU_P(PSTR("PLA  -  " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)),mFilamentItem_PLA);
         MENU_ITEM_SUBMENU_P(PSTR("PET  -  " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)),mFilamentItem_PET);
         MENU_ITEM_SUBMENU_P(PSTR("PET  -  " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)),mFilamentItem_PET);
         MENU_ITEM_SUBMENU_P(PSTR("ASA  -  " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ASA_PREHEAT_HPB_TEMP)),mFilamentItem_ASA);
         MENU_ITEM_SUBMENU_P(PSTR("ASA  -  " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ASA_PREHEAT_HPB_TEMP)),mFilamentItem_ASA);
+        MENU_ITEM_SUBMENU_P(PSTR("PC   -  " STRINGIFY(PC_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PC_PREHEAT_HPB_TEMP)),mFilamentItem_PC);
         MENU_ITEM_SUBMENU_P(PSTR("ABS  -  " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)),mFilamentItem_ABS);
         MENU_ITEM_SUBMENU_P(PSTR("ABS  -  " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)),mFilamentItem_ABS);
         MENU_ITEM_SUBMENU_P(PSTR("HIPS -  " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)),mFilamentItem_HIPS);
         MENU_ITEM_SUBMENU_P(PSTR("HIPS -  " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)),mFilamentItem_HIPS);
         MENU_ITEM_SUBMENU_P(PSTR("PP   -  " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)),mFilamentItem_PP);
         MENU_ITEM_SUBMENU_P(PSTR("PP   -  " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)),mFilamentItem_PP);
@@ -2926,7 +2923,7 @@ static void _lcd_move(const char *name, int axis, int min, int max)
 			if (max_software_endstops && current_position[axis] > max) current_position[axis] = max;
 			if (max_software_endstops && current_position[axis] > max) current_position[axis] = max;
 			lcd_encoder = 0;
 			lcd_encoder = 0;
 			world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]);
 			world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]);
-			plan_buffer_line_curposXYZE(manual_feedrate[axis] / 60, active_extruder);
+			plan_buffer_line_curposXYZE(manual_feedrate[axis] / 60);
 			lcd_draw_update = 1;
 			lcd_draw_update = 1;
 		}
 		}
 	}
 	}
@@ -2951,7 +2948,7 @@ static void lcd_move_e()
 			{
 			{
 				current_position[E_AXIS] += float((int)lcd_encoder) * move_menu_scale;
 				current_position[E_AXIS] += float((int)lcd_encoder) * move_menu_scale;
 				lcd_encoder = 0;
 				lcd_encoder = 0;
-				plan_buffer_line_curposXYZE(manual_feedrate[E_AXIS] / 60, active_extruder);
+				plan_buffer_line_curposXYZE(manual_feedrate[E_AXIS] / 60);
 				lcd_draw_update = 1;
 				lcd_draw_update = 1;
 			}
 			}
 		}
 		}
@@ -3469,7 +3466,7 @@ bool lcd_calibrate_z_end_stop_manual(bool only_z)
 {
 {
     // Don't know where we are. Let's claim we are Z=0, so the soft end stops will not be triggered when moving up.
     // Don't know where we are. Let's claim we are Z=0, so the soft end stops will not be triggered when moving up.
     current_position[Z_AXIS] = 0;
     current_position[Z_AXIS] = 0;
-    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+    plan_set_position_curposXYZE();
 
 
     // Until confirmed by the confirmation dialog.
     // Until confirmed by the confirmation dialog.
     for (;;) {
     for (;;) {
@@ -3491,7 +3488,7 @@ bool lcd_calibrate_z_end_stop_manual(bool only_z)
                     // Only move up, whatever direction the user rotates the encoder.
                     // Only move up, whatever direction the user rotates the encoder.
                     current_position[Z_AXIS] += fabs(lcd_encoder);
                     current_position[Z_AXIS] += fabs(lcd_encoder);
                     lcd_encoder = 0;
                     lcd_encoder = 0;
-                    plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60, active_extruder);
+                    plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60);
                 }
                 }
             }
             }
             if (lcd_clicked()) {
             if (lcd_clicked()) {
@@ -3527,7 +3524,7 @@ calibrated:
 	else {
 	else {
 		current_position[Z_AXIS] = Z_MAX_POS+4.f;
 		current_position[Z_AXIS] = Z_MAX_POS+4.f;
 	}
 	}
-    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+    plan_set_position_curposXYZE();
     return true;
     return true;
 
 
 canceled:
 canceled:
@@ -3931,14 +3928,12 @@ void lcd_temp_cal_show_result(bool result) {
 		eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 1);
 		eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 1);
 		SERIAL_ECHOLNPGM("Temperature calibration done. Continue with pressing the knob.");
 		SERIAL_ECHOLNPGM("Temperature calibration done. Continue with pressing the knob.");
 		lcd_show_fullscreen_message_and_wait_P(_T(MSG_TEMP_CALIBRATION_DONE));
 		lcd_show_fullscreen_message_and_wait_P(_T(MSG_TEMP_CALIBRATION_DONE));
-		temp_cal_active = true;
 		eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, 1);
 		eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, 1);
 	}
 	}
 	else {
 	else {
 		eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0);
 		eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0);
 		SERIAL_ECHOLNPGM("Temperature calibration failed. Continue with pressing the knob.");
 		SERIAL_ECHOLNPGM("Temperature calibration failed. Continue with pressing the knob.");
 		lcd_show_fullscreen_message_and_wait_P(_i("Temperature calibration failed"));////MSG_TEMP_CAL_FAILED c=20 r=8
 		lcd_show_fullscreen_message_and_wait_P(_i("Temperature calibration failed"));////MSG_TEMP_CAL_FAILED c=20 r=8
-		temp_cal_active = false;
 		eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, 0);
 		eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, 0);
 	}
 	}
 	lcd_update_enable(true);
 	lcd_update_enable(true);
@@ -4045,7 +4040,7 @@ void prusa_statistics_err(char c){
 }
 }
 
 
 static void prusa_statistics_case0(uint8_t statnr){
 static void prusa_statistics_case0(uint8_t statnr){
-	SERIAL_ECHO("{");
+	SERIAL_ECHO('{');
 	prusa_stat_printerstatus(statnr);
 	prusa_stat_printerstatus(statnr);
 	prusa_stat_farm_number();
 	prusa_stat_farm_number();
 	prusa_stat_printinfo();
 	prusa_stat_printinfo();
@@ -4073,7 +4068,7 @@ void prusa_statistics(int _message, uint8_t _fil_nr) {
 		}
 		}
 		else
 		else
 		{
 		{
-			SERIAL_ECHO("{");
+			SERIAL_ECHO('{');
 			prusa_stat_printerstatus(1);
 			prusa_stat_printerstatus(1);
 			prusa_stat_farm_number();
 			prusa_stat_farm_number();
 			prusa_stat_diameter();
 			prusa_stat_diameter();
@@ -4646,9 +4641,9 @@ void lcd_pinda_calibration_menu()
 }
 }
 
 
 void lcd_temp_calibration_set() {
 void lcd_temp_calibration_set() {
+	bool temp_cal_active = eeprom_read_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE);
 	temp_cal_active = !temp_cal_active;
 	temp_cal_active = !temp_cal_active;
 	eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, temp_cal_active);
 	eeprom_update_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE, temp_cal_active);
-	st_current_init();
 }
 }
 
 
 #ifdef HAS_SECOND_SERIAL_PORT
 #ifdef HAS_SECOND_SERIAL_PORT
@@ -4906,7 +4901,7 @@ void lcd_language()
 static void wait_preheat()
 static void wait_preheat()
 {
 {
     current_position[Z_AXIS] = 100; //move in z axis to make space for loading filament
     current_position[Z_AXIS] = 100; //move in z axis to make space for loading filament
-    plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60, active_extruder);
+    plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60);
     delay_keep_alive(2000);
     delay_keep_alive(2000);
     lcd_display_message_fullscreen_P(_T(MSG_WIZARD_HEATING));
     lcd_display_message_fullscreen_P(_T(MSG_WIZARD_HEATING));
 	lcd_set_custom_characters();
 	lcd_set_custom_characters();
@@ -5613,6 +5608,7 @@ do\
 }\
 }\
 while (0)
 while (0)
 
 
+#if 0 // temporarily unused
 static void lcd_check_gcode_set(void)
 static void lcd_check_gcode_set(void)
 {
 {
 switch(oCheckGcode)
 switch(oCheckGcode)
@@ -5631,6 +5627,7 @@ switch(oCheckGcode)
      }
      }
 eeprom_update_byte((uint8_t*)EEPROM_CHECK_GCODE,(uint8_t)oCheckGcode);
 eeprom_update_byte((uint8_t*)EEPROM_CHECK_GCODE,(uint8_t)oCheckGcode);
 }
 }
+#endif
 
 
 #define SETTINGS_GCODE \
 #define SETTINGS_GCODE \
 do\
 do\
@@ -5723,6 +5720,26 @@ static void sheets_menu()
 
 
 void lcd_hw_setup_menu(void)                      // can not be "static"
 void lcd_hw_setup_menu(void)                      // can not be "static"
 {
 {
+    typedef struct
+    {// 2bytes total
+        int8_t status;
+        uint8_t experimental_menu_visibility;
+    } _menu_data_t;
+    static_assert(sizeof(menu_data)>= sizeof(_menu_data_t),"_menu_data_t doesn't fit into menu_data");
+    _menu_data_t* _md = (_menu_data_t*)&(menu_data[0]);
+
+    if (_md->status == 0 || lcd_draw_update)
+    {
+        _md->status = 1;
+        _md->experimental_menu_visibility = eeprom_read_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY);
+        if (_md->experimental_menu_visibility == EEPROM_EMPTY_VALUE)
+        {
+            _md->experimental_menu_visibility = 0;
+            eeprom_update_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY, _md->experimental_menu_visibility);
+        }
+    }
+
+
     MENU_BEGIN();
     MENU_BEGIN();
     MENU_ITEM_BACK_P(_T(bSettings?MSG_SETTINGS:MSG_BACK)); // i.e. default menu-item / menu-item after checking mismatch
     MENU_ITEM_BACK_P(_T(bSettings?MSG_SETTINGS:MSG_BACK)); // i.e. default menu-item / menu-item after checking mismatch
 
 
@@ -5732,8 +5749,16 @@ void lcd_hw_setup_menu(void)                      // can not be "static"
 
 
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
     FSENSOR_ACTION_NA;
     FSENSOR_ACTION_NA;
-    MENU_ITEM_FUNCTION_P(PSTR("Fsensor Detection"), lcd_detect_IRsensor);
+    //! Fsensor Detection isn't ready for mmu yet it is temporarily disabled.
+    //! @todo Don't forget to remove this as soon Fsensor Detection works with mmu
+    if(!mmu_enabled) MENU_ITEM_FUNCTION_P(PSTR("Fsensor Detection"), lcd_detect_IRsensor);
 #endif //IR_SENSOR_ANALOG
 #endif //IR_SENSOR_ANALOG
+
+    if (_md->experimental_menu_visibility)
+    {
+        MENU_ITEM_SUBMENU_P(PSTR("Experimental"), lcd_experimental_menu);////MSG_MENU_EXPERIMENTAL c=18
+    }
+
     MENU_END();
     MENU_END();
 }
 }
 
 
@@ -5772,8 +5797,10 @@ static void lcd_settings_menu()
 #if defined (TMC2130) && defined (LINEARITY_CORRECTION)
 #if defined (TMC2130) && defined (LINEARITY_CORRECTION)
     MENU_ITEM_SUBMENU_P(_i("Lin. correction"), lcd_settings_linearity_correction_menu);
     MENU_ITEM_SUBMENU_P(_i("Lin. correction"), lcd_settings_linearity_correction_menu);
 #endif //LINEARITY_CORRECTION && TMC2130
 #endif //LINEARITY_CORRECTION && TMC2130
-
-	MENU_ITEM_TOGGLE_P(_T(MSG_TEMP_CALIBRATION), temp_cal_active ? _T(MSG_ON) : _T(MSG_OFF), lcd_temp_calibration_set);
+    if(has_temperature_compensation())
+    {
+	    MENU_ITEM_TOGGLE_P(_T(MSG_TEMP_CALIBRATION), eeprom_read_byte((unsigned char *)EEPROM_TEMP_CAL_ACTIVE) ? _T(MSG_ON) : _T(MSG_OFF), lcd_temp_calibration_set);
+    }
 
 
 #ifdef HAS_SECOND_SERIAL_PORT
 #ifdef HAS_SECOND_SERIAL_PORT
     MENU_ITEM_TOGGLE_P(_T(MSG_RPI_PORT), (selectedSerialPort == 0) ? _T(MSG_OFF) : _T(MSG_ON), lcd_second_serial_set);
     MENU_ITEM_TOGGLE_P(_T(MSG_RPI_PORT), (selectedSerialPort == 0) ? _T(MSG_OFF) : _T(MSG_ON), lcd_second_serial_set);
@@ -5877,7 +5904,10 @@ static void lcd_calibration_menu()
 	//MENU_ITEM_FUNCTION_P(MSG_RESET_CALIBRATE_E, lcd_extr_cal_reset);
 	//MENU_ITEM_FUNCTION_P(MSG_RESET_CALIBRATE_E, lcd_extr_cal_reset);
 #endif
 #endif
 #ifndef MK1BP
 #ifndef MK1BP
-	MENU_ITEM_SUBMENU_P(_i("Temp. calibration"), lcd_pinda_calibration_menu);////MSG_CALIBRATION_PINDA_MENU c=17 r=1
+    if(has_temperature_compensation())
+    {
+	    MENU_ITEM_SUBMENU_P(_i("Temp. calibration"), lcd_pinda_calibration_menu);////MSG_CALIBRATION_PINDA_MENU c=17 r=1
+    }
 #endif //MK1BP
 #endif //MK1BP
   }
   }
   
   
@@ -6394,13 +6424,13 @@ void unload_filament()
 	//		extr_unload2();
 	//		extr_unload2();
 
 
 	current_position[E_AXIS] -= 45;
 	current_position[E_AXIS] -= 45;
-	plan_buffer_line_curposXYZE(5200 / 60, active_extruder);
+	plan_buffer_line_curposXYZE(5200 / 60);
 	st_synchronize();
 	st_synchronize();
 	current_position[E_AXIS] -= 15;
 	current_position[E_AXIS] -= 15;
-	plan_buffer_line_curposXYZE(1000 / 60, active_extruder);
+	plan_buffer_line_curposXYZE(1000 / 60);
 	st_synchronize();
 	st_synchronize();
 	current_position[E_AXIS] -= 20;
 	current_position[E_AXIS] -= 20;
-	plan_buffer_line_curposXYZE(1000 / 60, active_extruder);
+	plan_buffer_line_curposXYZE(1000 / 60);
 	st_synchronize();
 	st_synchronize();
 
 
 	lcd_display_message_fullscreen_P(_T(MSG_PULL_OUT_FILAMENT));
 	lcd_display_message_fullscreen_P(_T(MSG_PULL_OUT_FILAMENT));
@@ -6680,7 +6710,7 @@ static bool fan_error_selftest()
 	fanSpeedSoftPwm = 255;
 	fanSpeedSoftPwm = 255;
 #endif //FAN_SOFT_PWM
 #endif //FAN_SOFT_PWM
     manage_heater(); //enables print fan
     manage_heater(); //enables print fan
-    setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, 1); //force enables the extruder fan untill the first manage_heater() call.
+    setExtruderAutoFanState(3); //force enables the extruder fan
 #ifdef FAN_SOFT_PWM
 #ifdef FAN_SOFT_PWM
     extruder_autofan_last_check = _millis();
     extruder_autofan_last_check = _millis();
     fan_measuring = true;
     fan_measuring = true;
@@ -6688,6 +6718,7 @@ static bool fan_error_selftest()
     _delay(1000); //delay_keep_alive would turn off extruder fan, because temerature is too low (maybe)
     _delay(1000); //delay_keep_alive would turn off extruder fan, because temerature is too low (maybe)
     manage_heater();
     manage_heater();
     fanSpeed = 0;
     fanSpeed = 0;
+	setExtruderAutoFanState(1); //releases lock on the extruder fan
 #ifdef FAN_SOFT_PWM
 #ifdef FAN_SOFT_PWM
     fanSpeedSoftPwm = 0;
     fanSpeedSoftPwm = 0;
 #endif //FAN_SOFT_PWM
 #endif //FAN_SOFT_PWM
@@ -7360,13 +7391,13 @@ void lcd_print_stop()
     cancel_heatup = true; //unroll temperature wait loop stack.
     cancel_heatup = true; //unroll temperature wait loop stack.
 
 
     current_position[Z_AXIS] += 10; //lift Z.
     current_position[Z_AXIS] += 10; //lift Z.
-    plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60, active_extruder);
+    plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60);
 
 
     if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) //if axis are homed, move to parked position.
     if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) //if axis are homed, move to parked position.
     {
     {
         current_position[X_AXIS] = X_CANCEL_POS;
         current_position[X_AXIS] = X_CANCEL_POS;
         current_position[Y_AXIS] = Y_CANCEL_POS;
         current_position[Y_AXIS] = Y_CANCEL_POS;
-        plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+        plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
     }
     }
     st_synchronize();
     st_synchronize();
 
 
@@ -7514,8 +7545,8 @@ void lcd_belttest()
 
 
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
 // called also from marlin_main.cpp
 // called also from marlin_main.cpp
-void printf_IRSensorAnalogBoardChange(bool bPCBrev04){
-    printf_P(PSTR("Filament sensor board change detected: revision%S\n"), bPCBrev04 ? _T(MSG_04_OR_NEWER) : _T(MSG_03_OR_OLDER));
+void printf_IRSensorAnalogBoardChange(){
+    printf_P(PSTR("Filament sensor board change detected: revision%S\n"), FsensorIRVersionText());
 }
 }
 
 
 static bool lcd_selftest_IRsensor(bool bStandalone)
 static bool lcd_selftest_IRsensor(bool bStandalone)
@@ -7540,8 +7571,8 @@ static bool lcd_selftest_IRsensor(bool bStandalone)
         return(false);
         return(false);
     }
     }
     if((bPCBrev04 ? 1 : 0) != (uint8_t)oFsensorPCB){        // safer then "(uint8_t)bPCBrev04"
     if((bPCBrev04 ? 1 : 0) != (uint8_t)oFsensorPCB){        // safer then "(uint8_t)bPCBrev04"
-        printf_IRSensorAnalogBoardChange(bPCBrev04);
         oFsensorPCB=bPCBrev04 ? ClFsensorPCB::_Rev04 : ClFsensorPCB::_Old;
         oFsensorPCB=bPCBrev04 ? ClFsensorPCB::_Rev04 : ClFsensorPCB::_Old;
+        printf_IRSensorAnalogBoardChange();
         eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB);
         eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB);
     }
     }
     return(true);
     return(true);
@@ -7549,22 +7580,26 @@ static bool lcd_selftest_IRsensor(bool bStandalone)
 
 
 static void lcd_detect_IRsensor(){
 static void lcd_detect_IRsensor(){
     bool bAction;
     bool bAction;
-
+    bool loaded;
     bMenuFSDetect = true;                               // inhibits some code inside "manage_inactivity()"
     bMenuFSDetect = true;                               // inhibits some code inside "manage_inactivity()"
-    bAction = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is filament loaded?"), false, false);
-    if(bAction){
-        lcd_show_fullscreen_message_and_wait_P(_i("Please unload the filament first, then repeat this action."));////c=20 r=4
+    /// Check if filament is loaded. If it is loaded stop detection.
+    /// @todo Add autodetection with MMU2s
+    loaded = ! READ(IR_SENSOR_PIN);
+    if(loaded ){
+        lcd_show_fullscreen_message_and_wait_P(_i("Please unload the filament first, then repeat this action."));
         return;
         return;
+    } else {
+        lcd_show_fullscreen_message_and_wait_P(_i("Please check the IR sensor connection, unload filament if present."));
+        bAction = lcd_selftest_IRsensor(true);
     }
     }
-    bAction = lcd_selftest_IRsensor(true);
-	if(bAction){
+    if(bAction){
         lcd_show_fullscreen_message_and_wait_P(_i("Sensor verified, remove the filament now."));////c=20 r=3
         lcd_show_fullscreen_message_and_wait_P(_i("Sensor verified, remove the filament now."));////c=20 r=3
-		// the fsensor board has been successfully identified, any previous "not responding" may be cleared now
-		fsensor_not_responding = false;
+        // the fsensor board has been successfully identified, any previous "not responding" may be cleared now
+        fsensor_not_responding = false;
     } else {
     } else {
         lcd_show_fullscreen_message_and_wait_P(_i("Verification failed, remove the filament and try again."));////c=20 r=5
         lcd_show_fullscreen_message_and_wait_P(_i("Verification failed, remove the filament and try again."));////c=20 r=5
-		// here it is unclear what to to with the fsensor_not_responding flag
-	}
+        // here it is unclear what to to with the fsensor_not_responding flag
+    }
     bMenuFSDetect=false;                              // de-inhibits some code inside "manage_inactivity()"
     bMenuFSDetect=false;                              // de-inhibits some code inside "manage_inactivity()"
 }
 }
 #endif //IR_SENSOR_ANALOG
 #endif //IR_SENSOR_ANALOG
@@ -7580,9 +7615,17 @@ bool lcd_selftest()
 	bool _result = true;
 	bool _result = true;
 	bool _swapped_fan = false;
 	bool _swapped_fan = false;
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
-	//!   Check if IR sensor is in unknown state, set it temporarily to 0.3 or older
-	//! @todo This has to be improved
-	if( oFsensorPCB == ClFsensorPCB::_Undef) eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,0);
+	//!   Check if IR sensor is in unknown state, if so run Fsensor Detection
+	//!   As the Fsensor Detection isn't yet ready for the mmu2s we set temporarily the IR sensor 0.3 or older for mmu2s
+	//! @todo Don't forget to remove this as soon Fsensor Detection works with mmu
+	if( oFsensorPCB == ClFsensorPCB::_Undef) {
+		if (!mmu_enabled) {
+			lcd_detect_IRsensor();
+		}
+		else {
+			eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,0);
+		}
+	}
 #endif //IR_SENSOR_ANALOG
 #endif //IR_SENSOR_ANALOG
 	lcd_wait_for_cool_down();
 	lcd_wait_for_cool_down();
 	lcd_clear();
 	lcd_clear();
@@ -7720,7 +7763,7 @@ bool lcd_selftest()
 		current_position[Y_AXIS] += 4;
 		current_position[Y_AXIS] += 4;
 #endif //TMC2130
 #endif //TMC2130
 		current_position[Z_AXIS] = current_position[Z_AXIS] + 10;
 		current_position[Z_AXIS] = current_position[Z_AXIS] + 10;
-		plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+		plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 		st_synchronize();
 		st_synchronize();
         set_destination_to_current();
         set_destination_to_current();
 		_progress = lcd_selftest_screen(TestScreen::AxisZ, _progress, 3, true, 1500);
 		_progress = lcd_selftest_screen(TestScreen::AxisZ, _progress, 3, true, 1500);
@@ -7732,7 +7775,7 @@ bool lcd_selftest()
 
 
 		//raise Z to not damage the bed during and hotend testing
 		//raise Z to not damage the bed during and hotend testing
 		current_position[Z_AXIS] += 20;
 		current_position[Z_AXIS] += 20;
-		plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+		plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 		st_synchronize();
 		st_synchronize();
 	}
 	}
 
 
@@ -7740,7 +7783,7 @@ bool lcd_selftest()
 	if (_result)
 	if (_result)
 	{
 	{
 		current_position[Z_AXIS] = current_position[Z_AXIS] + 10;
 		current_position[Z_AXIS] = current_position[Z_AXIS] + 10;
-		plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+		plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 		st_synchronize();
 		st_synchronize();
 		_progress = lcd_selftest_screen(TestScreen::Home, 0, 2, true, 0);
 		_progress = lcd_selftest_screen(TestScreen::Home, 0, 2, true, 0);
 		bool bres = tmc2130_home_calibrate(X_AXIS);
 		bool bres = tmc2130_home_calibrate(X_AXIS);
@@ -7790,10 +7833,12 @@ bool lcd_selftest()
 				_progress = lcd_selftest_screen(TestScreen::FsensorOk, _progress, 3, true, 2000); //fil sensor OK
 				_progress = lcd_selftest_screen(TestScreen::FsensorOk, _progress, 3, true, 2000); //fil sensor OK
 			}
 			}
 #endif //PAT9125
 #endif //PAT9125
-//#ifdef IR_SENSOR_ANALOG
-#if (0)
+#if 0
+	// Intentionally disabled - that's why we moved the detection to runtime by just checking the two voltages.
+	// The idea is not to force the user to remove and insert the filament on an assembled printer.
+//def IR_SENSOR_ANALOG
 			_progress = lcd_selftest_screen(TestScreen::Fsensor, _progress, 3, true, 2000); //check filament sensor
 			_progress = lcd_selftest_screen(TestScreen::Fsensor, _progress, 3, true, 2000); //check filament sensor
-               _result = lcd_selftest_IRsensor();
+			_result = lcd_selftest_IRsensor();
 			if (_result)
 			if (_result)
 			{
 			{
 				_progress = lcd_selftest_screen(TestScreen::FsensorOk, _progress, 3, true, 2000); //filament sensor OK
 				_progress = lcd_selftest_screen(TestScreen::FsensorOk, _progress, 3, true, 2000); //filament sensor OK
@@ -7836,7 +7881,7 @@ bool lcd_selftest()
 
 
 static void reset_crash_det(unsigned char axis) {
 static void reset_crash_det(unsigned char axis) {
 	current_position[axis] += 10;
 	current_position[axis] += 10;
-	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 	st_synchronize();
 	st_synchronize();
 	if (eeprom_read_byte((uint8_t*)EEPROM_CRASH_DET)) tmc2130_sg_stop_on_crash = true;
 	if (eeprom_read_byte((uint8_t*)EEPROM_CRASH_DET)) tmc2130_sg_stop_on_crash = true;
 }
 }
@@ -7865,7 +7910,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) {
 // first axis length measurement begin	
 // first axis length measurement begin	
 	
 	
 	current_position[axis] -= (axis_length + margin);
 	current_position[axis] -= (axis_length + margin);
-	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 
 
 	
 	
 	st_synchronize();
 	st_synchronize();
@@ -7875,11 +7920,11 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) {
 	current_position_init = st_get_position_mm(axis);
 	current_position_init = st_get_position_mm(axis);
 
 
 	current_position[axis] += 2 * margin;
 	current_position[axis] += 2 * margin;
-	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 	st_synchronize();
 	st_synchronize();
 
 
 	current_position[axis] += axis_length;
 	current_position[axis] += axis_length;
-	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 
 
 	st_synchronize();
 	st_synchronize();
 
 
@@ -7895,11 +7940,11 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) {
 
 
 
 
 	current_position[axis] -= margin;
 	current_position[axis] -= margin;
-	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 	st_synchronize();	
 	st_synchronize();	
 
 
 	current_position[axis] -= (axis_length + margin);
 	current_position[axis] -= (axis_length + margin);
-	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 		
 		
 	st_synchronize();
 	st_synchronize();
 
 
@@ -7924,7 +7969,7 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) {
 
 
 			lcd_selftest_error(TestError::Axis, _error_1, "");
 			lcd_selftest_error(TestError::Axis, _error_1, "");
 			current_position[axis] = 0;
 			current_position[axis] = 0;
-			plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+			plan_set_position_curposXYZE();
 			reset_crash_det(axis);
 			reset_crash_det(axis);
 			enable_endstops(true);
 			enable_endstops(true);
 			endstops_hit_on_purpose();
 			endstops_hit_on_purpose();
@@ -7944,13 +7989,13 @@ static bool lcd_selfcheck_axis_sg(unsigned char axis) {
 
 
 			lcd_selftest_error(TestError::Pulley, _error_1, "");
 			lcd_selftest_error(TestError::Pulley, _error_1, "");
 			current_position[axis] = 0;
 			current_position[axis] = 0;
-			plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+			plan_set_position_curposXYZE();
 			reset_crash_det(axis);
 			reset_crash_det(axis);
 			endstops_hit_on_purpose();
 			endstops_hit_on_purpose();
 			return false;
 			return false;
 		}
 		}
 		current_position[axis] = 0;
 		current_position[axis] = 0;
-		plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+		plan_set_position_curposXYZE();
 		reset_crash_det(axis);
 		reset_crash_det(axis);
 		endstops_hit_on_purpose();
 		endstops_hit_on_purpose();
 		return true;
 		return true;
@@ -7972,13 +8017,13 @@ static bool lcd_selfcheck_axis(int _axis, int _travel)
 
 
 	if (_axis == X_AXIS) {
 	if (_axis == X_AXIS) {
 		current_position[Z_AXIS] += 17;
 		current_position[Z_AXIS] += 17;
-		plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+		plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 	}
 	}
 
 
 	do {
 	do {
 		current_position[_axis] = current_position[_axis] - 1;
 		current_position[_axis] = current_position[_axis] - 1;
 
 
-		plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+		plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 		st_synchronize();
 		st_synchronize();
 #ifdef TMC2130
 #ifdef TMC2130
 		if ((READ(Z_MIN_PIN) ^ (bool)Z_MIN_ENDSTOP_INVERTING))
 		if ((READ(Z_MIN_PIN) ^ (bool)Z_MIN_ENDSTOP_INVERTING))
@@ -8058,7 +8103,7 @@ static bool lcd_selfcheck_axis(int _axis, int _travel)
 		}
 		}
 	}    
 	}    
 	current_position[_axis] = 0; //simulate axis home to avoid negative numbers for axis position, especially Z.
 	current_position[_axis] = 0; //simulate axis home to avoid negative numbers for axis position, especially Z.
-	plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+	plan_set_position_curposXYZE();
 
 
 	return _stepresult;
 	return _stepresult;
 }
 }
@@ -8081,17 +8126,17 @@ static bool lcd_selfcheck_pulleys(int axis)
 	current_position_init = current_position[axis];
 	current_position_init = current_position[axis];
 
 
 	current_position[axis] += 2;
 	current_position[axis] += 2;
-	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 	for (i = 0; i < 5; i++) {
 	for (i = 0; i < 5; i++) {
 		refresh_cmd_timeout();
 		refresh_cmd_timeout();
 		current_position[axis] = current_position[axis] + move;
 		current_position[axis] = current_position[axis] + move;
 		st_current_set(0, 850); //set motor current higher
 		st_current_set(0, 850); //set motor current higher
-		plan_buffer_line_curposXYZE(200, active_extruder);
+		plan_buffer_line_curposXYZE(200);
 		st_synchronize();
 		st_synchronize();
           if (SilentModeMenu != SILENT_MODE_OFF) st_current_set(0, tmp_motor[0]); //set back to normal operation currents
           if (SilentModeMenu != SILENT_MODE_OFF) st_current_set(0, tmp_motor[0]); //set back to normal operation currents
 		else st_current_set(0, tmp_motor_loud[0]); //set motor current back			
 		else st_current_set(0, tmp_motor_loud[0]); //set motor current back			
 		current_position[axis] = current_position[axis] - move;
 		current_position[axis] = current_position[axis] - move;
-		plan_buffer_line_curposXYZE(50, active_extruder);
+		plan_buffer_line_curposXYZE(50);
 		st_synchronize();
 		st_synchronize();
 		if (((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) ||
 		if (((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) ||
 			((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1)) {
 			((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1)) {
@@ -8108,7 +8153,7 @@ static bool lcd_selfcheck_pulleys(int axis)
 			endstop_triggered = true;
 			endstop_triggered = true;
 			if (current_position_init - 1 <= current_position[axis] && current_position_init + 1 >= current_position[axis]) {
 			if (current_position_init - 1 <= current_position[axis] && current_position_init + 1 >= current_position[axis]) {
 				current_position[axis] += 10;
 				current_position[axis] += 10;
-				plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+				plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 				st_synchronize();
 				st_synchronize();
 				return(true);
 				return(true);
 			}
 			}
@@ -8119,7 +8164,7 @@ static bool lcd_selfcheck_pulleys(int axis)
 		}
 		}
 		else {
 		else {
 			current_position[axis] -= 1;
 			current_position[axis] -= 1;
-			plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+			plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 			st_synchronize();
 			st_synchronize();
 			if (_millis() > timeout_counter) {
 			if (_millis() > timeout_counter) {
 				lcd_selftest_error(TestError::Pulley, (axis == 0) ? "X" : "Y", "");
 				lcd_selftest_error(TestError::Pulley, (axis == 0) ? "X" : "Y", "");
@@ -8149,7 +8194,7 @@ static bool lcd_selfcheck_endstops()
 	#endif //!TMC2130
 	#endif //!TMC2130
 		if ((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1) current_position[2] += 10;
 		if ((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1) current_position[2] += 10;
 	}
 	}
-	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder);
+	plan_buffer_line_curposXYZE(manual_feedrate[0] / 60);
 	st_synchronize();
 	st_synchronize();
 
 
 	if (
 	if (
@@ -8475,8 +8520,7 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite,
 		lcd_set_cursor(0, 1);
 		lcd_set_cursor(0, 1);
 		if(check_opposite == true) lcd_puts_P(_T(MSG_SELFTEST_COOLING_FAN)); 
 		if(check_opposite == true) lcd_puts_P(_T(MSG_SELFTEST_COOLING_FAN)); 
 		else lcd_puts_P(_T(MSG_SELFTEST_EXTRUDER_FAN));
 		else lcd_puts_P(_T(MSG_SELFTEST_EXTRUDER_FAN));
-		SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN);
-		WRITE(EXTRUDER_0_AUTO_FAN_PIN, 1);
+		setExtruderAutoFanState(3);
 		break;
 		break;
 	case 1:
 	case 1:
 		// object cooling fan
 		// object cooling fan
@@ -8505,23 +8549,6 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite,
 	lcd_button_pressed = false;
 	lcd_button_pressed = false;
 	do
 	do
 	{
 	{
-		switch (_fan)
-		{
-		case 0:
-			// extruder cooling fan
-			SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN);
-			WRITE(EXTRUDER_0_AUTO_FAN_PIN, 1);
-			break;
-		case 1:
-			// object cooling fan
-			SET_OUTPUT(FAN_PIN);
-#ifdef FAN_SOFT_PWM
-			fanSpeedSoftPwm = 255;
-#else //FAN_SOFT_PWM
-			analogWrite(FAN_PIN, 255);
-#endif //FAN_SOFT_PWM
-			break;
-		}
 		if (abs((enc_dif - lcd_encoder_diff)) > 2) {
 		if (abs((enc_dif - lcd_encoder_diff)) > 2) {
 			if (enc_dif > lcd_encoder_diff) {
 			if (enc_dif > lcd_encoder_diff) {
 				_result = !check_opposite;
 				_result = !check_opposite;
@@ -8548,8 +8575,7 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite,
 
 
 	} while (!lcd_clicked());
 	} while (!lcd_clicked());
 	KEEPALIVE_STATE(IN_HANDLER);
 	KEEPALIVE_STATE(IN_HANDLER);
-	SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN);
-	WRITE(EXTRUDER_0_AUTO_FAN_PIN, 0);
+	setExtruderAutoFanState(0);
 	SET_OUTPUT(FAN_PIN);
 	SET_OUTPUT(FAN_PIN);
 #ifdef FAN_SOFT_PWM
 #ifdef FAN_SOFT_PWM
 	fanSpeedSoftPwm = 0;
 	fanSpeedSoftPwm = 0;
@@ -8569,20 +8595,20 @@ static FanCheck lcd_selftest_fan_auto(int _fan)
 	case 0:
 	case 0:
 		fanSpeed = 0;
 		fanSpeed = 0;
 		manage_heater();			//turn off fan
 		manage_heater();			//turn off fan
-		setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, 1); //extruder fan
+		setExtruderAutoFanState(3); //extruder fan
 #ifdef FAN_SOFT_PWM
 #ifdef FAN_SOFT_PWM
 		extruder_autofan_last_check = _millis();
 		extruder_autofan_last_check = _millis();
 		fan_measuring = true;
 		fan_measuring = true;
 #endif //FAN_SOFT_PWM
 #endif //FAN_SOFT_PWM
-		_delay(2000);				//delay_keep_alive would turn off extruder fan, because temerature is too low
-
+		_delay(2000);
+		setExtruderAutoFanState(0); //extruder fan
 		manage_heater();			//count average fan speed from 2s delay and turn off fans
 		manage_heater();			//count average fan speed from 2s delay and turn off fans
 
 
 		printf_P(PSTR("Test 1:\n"));
 		printf_P(PSTR("Test 1:\n"));
 		printf_P(PSTR("Print fan speed: %d \n"), fan_speed[1]);
 		printf_P(PSTR("Print fan speed: %d \n"), fan_speed[1]);
 		printf_P(PSTR("Extr fan speed: %d \n"), fan_speed[0]);
 		printf_P(PSTR("Extr fan speed: %d \n"), fan_speed[0]);
 
 
-		if (!fan_speed[0]) {
+		if (fan_speed[0] < 20) { // < 1200 RPM would mean either a faulty Noctua or Altfan
 			return FanCheck::ExtruderFan;
 			return FanCheck::ExtruderFan;
 		}
 		}
 #ifdef FAN_SOFT_PWM
 #ifdef FAN_SOFT_PWM
@@ -8660,7 +8686,7 @@ static FanCheck lcd_selftest_fan_auto(int _fan)
 static int lcd_selftest_screen(TestScreen screen, int _progress, int _progress_scale, bool _clear, int _delay)
 static int lcd_selftest_screen(TestScreen screen, int _progress, int _progress_scale, bool _clear, int _delay)
 {
 {
 
 
-    lcd_update_enable(false);
+	lcd_update_enable(false);
 
 
 	const char *_indicator = (_progress >= _progress_scale) ? "-" : "|";
 	const char *_indicator = (_progress >= _progress_scale) ? "-" : "|";
 
 
@@ -8708,7 +8734,7 @@ static int lcd_selftest_screen(TestScreen screen, int _progress, int _progress_s
 	{
 	{
 		//SERIAL_ECHOLNPGM("Other tests");
 		//SERIAL_ECHOLNPGM("Other tests");
 
 
-	    TestScreen _step_block = TestScreen::AxisX;
+		TestScreen _step_block = TestScreen::AxisX;
 		lcd_selftest_screen_step(2, 2, ((screen == _step_block) ? 1 : (screen < _step_block) ? 0 : 2), "X", _indicator);
 		lcd_selftest_screen_step(2, 2, ((screen == _step_block) ? 1 : (screen < _step_block) ? 0 : 2), "X", _indicator);
 
 
 		_step_block = TestScreen::AxisY;
 		_step_block = TestScreen::AxisY;
@@ -8720,8 +8746,8 @@ static int lcd_selftest_screen(TestScreen screen, int _progress, int _progress_s
 		_step_block = TestScreen::Bed;
 		_step_block = TestScreen::Bed;
 		lcd_selftest_screen_step(3, 0, ((screen == _step_block) ? 1 : (screen < _step_block) ? 0 : 2), "Bed", _indicator);
 		lcd_selftest_screen_step(3, 0, ((screen == _step_block) ? 1 : (screen < _step_block) ? 0 : 2), "Bed", _indicator);
 
 
-        _step_block = TestScreen::Hotend;
-        lcd_selftest_screen_step(3, 9, ((screen == _step_block) ? 1 : (screen < _step_block) ? 0 : 2), "Hotend", _indicator);
+		_step_block = TestScreen::Hotend;
+		lcd_selftest_screen_step(3, 9, ((screen == _step_block) ? 1 : (screen < _step_block) ? 0 : 2), "Hotend", _indicator);
 	}
 	}
 
 
 	if (_delay > 0) delay_keep_alive(_delay);
 	if (_delay > 0) delay_keep_alive(_delay);
@@ -8959,13 +8985,14 @@ void lcd_finishstatus() {
   lcd_draw_update = 2;
   lcd_draw_update = 2;
 
 
 }
 }
+
 void lcd_setstatus(const char* message)
 void lcd_setstatus(const char* message)
 {
 {
   if (lcd_status_message_level > 0)
   if (lcd_status_message_level > 0)
     return;
     return;
-  strncpy(lcd_status_message, message, LCD_WIDTH);
-  lcd_finishstatus();
+  lcd_updatestatus(message);
 }
 }
+
 void lcd_updatestatuspgm(const char *message){
 void lcd_updatestatuspgm(const char *message){
 	strncpy_P(lcd_status_message, message, LCD_WIDTH);
 	strncpy_P(lcd_status_message, message, LCD_WIDTH);
 	lcd_status_message[LCD_WIDTH] = 0;
 	lcd_status_message[LCD_WIDTH] = 0;
@@ -8980,12 +9007,29 @@ void lcd_setstatuspgm(const char* message)
     return;
     return;
   lcd_updatestatuspgm(message);
   lcd_updatestatuspgm(message);
 }
 }
+
+void lcd_updatestatus(const char *message){
+	strncpy(lcd_status_message, message, LCD_WIDTH);
+	lcd_status_message[LCD_WIDTH] = 0;
+	lcd_finishstatus();
+	// hack lcd_draw_update to 1, i.e. without clear
+	lcd_draw_update = 1;
+}
+
 void lcd_setalertstatuspgm(const char* message)
 void lcd_setalertstatuspgm(const char* message)
 {
 {
   lcd_setstatuspgm(message);
   lcd_setstatuspgm(message);
   lcd_status_message_level = 1;
   lcd_status_message_level = 1;
   lcd_return_to_status();
   lcd_return_to_status();
 }
 }
+
+void lcd_setalertstatus(const char* message)
+{
+  lcd_setstatus(message);
+  lcd_status_message_level = 1;
+  lcd_return_to_status();
+}
+
 void lcd_reset_alert_level()
 void lcd_reset_alert_level()
 {
 {
   lcd_status_message_level = 0;
   lcd_status_message_level = 0;
@@ -9005,6 +9049,13 @@ void menu_lcd_longpress_func(void)
         lcd_quick_feedback();
         lcd_quick_feedback();
         return;
         return;
     }
     }
+    if (menu_menu == lcd_hw_setup_menu)
+    {
+        // only toggle the experimental menu visibility flag
+        lcd_quick_feedback();
+        lcd_experimental_toggle();
+        return;
+    }
 
 
     // explicitely listed menus which are allowed to rise the move-z or live-adj-z functions
     // explicitely listed menus which are allowed to rise the move-z or live-adj-z functions
     // The lists are not the same for both functions, so first decide which function is to be performed
     // The lists are not the same for both functions, so first decide which function is to be performed
@@ -9168,3 +9219,25 @@ void lcd_crash_detect_disable()
     eeprom_update_byte((uint8_t*)EEPROM_CRASH_DET, 0x00);
     eeprom_update_byte((uint8_t*)EEPROM_CRASH_DET, 0x00);
 }
 }
 #endif
 #endif
+
+void lcd_experimental_toggle()
+{
+    uint8_t oldVal = eeprom_read_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY);
+    if (oldVal == EEPROM_EMPTY_VALUE)
+        oldVal = 0;
+    else
+        oldVal = !oldVal;
+    eeprom_update_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY, oldVal);
+}
+
+void lcd_experimental_menu()
+{
+    MENU_BEGIN();
+    MENU_ITEM_BACK_P(_T(MSG_BACK));
+
+#ifdef EXTRUDER_ALTFAN_DETECT
+    MENU_ITEM_TOGGLE_P(_N("ALTFAN det."), altfanOverride_get()?_T(MSG_OFF):_T(MSG_ON), altfanOverride_toggle);////MSG_MENU_ALTFAN c=18
+#endif //EXTRUDER_ALTFAN_DETECT
+
+    MENU_END();
+}

+ 5 - 17
Firmware/ultralcd.h

@@ -23,9 +23,11 @@ void lcd_setstatuspgm(const char* message);
 //! - always returns the display to the main status screen
 //! - always returns the display to the main status screen
 //! - always makes lcd_reset (which is slow and causes flicker)
 //! - always makes lcd_reset (which is slow and causes flicker)
 //! - does not update the message if there is already one (i.e. lcd_status_message_level > 0)
 //! - does not update the message if there is already one (i.e. lcd_status_message_level > 0)
+void lcd_setalertstatus(const char* message);
 void lcd_setalertstatuspgm(const char* message);
 void lcd_setalertstatuspgm(const char* message);
 //! only update the alert message on the main status screen
 //! only update the alert message on the main status screen
 //! has no sideeffects, may be called multiple times
 //! has no sideeffects, may be called multiple times
+void lcd_updatestatus(const char *message);
 void lcd_updatestatuspgm(const char *message);
 void lcd_updatestatuspgm(const char *message);
 
 
 void lcd_reset_alert_level();
 void lcd_reset_alert_level();
@@ -142,7 +144,7 @@ extern uint8_t farm_status;
 
 
 #ifdef IR_SENSOR_ANALOG
 #ifdef IR_SENSOR_ANALOG
 extern bool bMenuFSDetect;
 extern bool bMenuFSDetect;
-void printf_IRSensorAnalogBoardChange(bool bPCBrev04);
+void printf_IRSensorAnalogBoardChange();
 #endif //IR_SENSOR_ANALOG
 #endif //IR_SENSOR_ANALOG
 
 
 extern int8_t SilentModeMenu;
 extern int8_t SilentModeMenu;
@@ -257,21 +259,7 @@ enum class WizState : uint8_t
 
 
 void lcd_wizard(WizState state);
 void lcd_wizard(WizState state);
 
 
-#define VOLT_DIV_REF 5
-#ifdef IR_SENSOR_ANALOG
-constexpr uint16_t Voltage2Raw(float V){
-	return ( V * 1023 * OVERSAMPLENR / VOLT_DIV_REF ) + 0.5F;
-}
-constexpr float Raw2Voltage(uint16_t raw){
-	return VOLT_DIV_REF*(raw / (1023.F * OVERSAMPLENR) );
-}
-constexpr uint16_t IRsensor_Hmin_TRESHOLD = Voltage2Raw(3.0F); // ~3.0V (0.6*Vcc), raw value=9821
-constexpr uint16_t IRsensor_Lmax_TRESHOLD = Voltage2Raw(1.5F); // ~1.5V (0.3*Vcc), raw value=4910
-constexpr uint16_t IRsensor_Hopen_TRESHOLD = Voltage2Raw(4.6F); // ~4.6V (N.C. @ Ru~20-50k, Rd'=56k, Ru'=10k), raw value=15059
-constexpr uint16_t IRsensor_Ldiode_TRESHOLD = Voltage2Raw(0.3F); // ~0.3V, raw value=982
-constexpr uint16_t IRsensor_VMax_TRESHOLD = Voltage2Raw(5.F); // ~5V, raw value=16368
-
-
-#endif //IR_SENSOR_ANALOG
+extern void lcd_experimental_toggle();
+extern void lcd_experimental_menu();
 
 
 #endif //ULTRALCD_H
 #endif //ULTRALCD_H

+ 4 - 0
Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h

@@ -330,6 +330,10 @@ PREHEAT SETTINGS
 #define ASA_PREHEAT_HPB_TEMP 105
 #define ASA_PREHEAT_HPB_TEMP 105
 #define ASA_PREHEAT_FAN_SPEED 0
 #define ASA_PREHEAT_FAN_SPEED 0
 
 
+#define PC_PREHEAT_HOTEND_TEMP 275
+#define PC_PREHEAT_HPB_TEMP 105
+#define PC_PREHEAT_FAN_SPEED 0
+
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HPB_TEMP 100
 #define ABS_PREHEAT_HPB_TEMP 100
 #define ABS_PREHEAT_FAN_SPEED 0 
 #define ABS_PREHEAT_FAN_SPEED 0 

+ 3 - 0
Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h

@@ -326,6 +326,9 @@ PREHEAT SETTINGS
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HPB_TEMP 105
 #define ASA_PREHEAT_HPB_TEMP 105
 
 
+#define PC_PREHEAT_HOTEND_TEMP 275
+#define PC_PREHEAT_HPB_TEMP 105
+
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HPB_TEMP 100
 #define ABS_PREHEAT_HPB_TEMP 100
 
 

+ 3 - 0
Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h

@@ -384,6 +384,9 @@
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HPB_TEMP 105
 #define ASA_PREHEAT_HPB_TEMP 105
 
 
+#define PC_PREHEAT_HOTEND_TEMP 275
+#define PC_PREHEAT_HPB_TEMP 105
+
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HPB_TEMP 100
 #define ABS_PREHEAT_HPB_TEMP 100
 
 

+ 3 - 0
Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h

@@ -385,6 +385,9 @@
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HPB_TEMP 105
 #define ASA_PREHEAT_HPB_TEMP 105
 
 
+#define PC_PREHEAT_HOTEND_TEMP 275
+#define PC_PREHEAT_HPB_TEMP 105
+
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HPB_TEMP 100
 #define ABS_PREHEAT_HPB_TEMP 100
 
 

+ 3 - 0
Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h

@@ -384,6 +384,9 @@
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HPB_TEMP 105
 #define ASA_PREHEAT_HPB_TEMP 105
 
 
+#define PC_PREHEAT_HOTEND_TEMP 275
+#define PC_PREHEAT_HPB_TEMP 105
+
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HPB_TEMP 100
 #define ABS_PREHEAT_HPB_TEMP 100
 
 

+ 3 - 0
Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h

@@ -385,6 +385,9 @@
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HPB_TEMP 105
 #define ASA_PREHEAT_HPB_TEMP 105
 
 
+#define PC_PREHEAT_HOTEND_TEMP 275
+#define PC_PREHEAT_HPB_TEMP 105
+
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HPB_TEMP 100
 #define ABS_PREHEAT_HPB_TEMP 100
 
 

+ 7 - 0
Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h

@@ -294,6 +294,9 @@
 #if BED_MINTEMP_DELAY>USHRT_MAX
 #if BED_MINTEMP_DELAY>USHRT_MAX
 #error "Check maximal allowed value @ ShortTimer (see BED_MINTEMP_DELAY definition)"
 #error "Check maximal allowed value @ ShortTimer (see BED_MINTEMP_DELAY definition)"
 #endif
 #endif
+#define DETECT_SUPERPINDA
+#define PINDA_MINTEMP BED_MINTEMP
+#define AMBIENT_MINTEMP -30
 
 
 // Maxtemps
 // Maxtemps
 #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
 #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
@@ -304,6 +307,7 @@
 #define HEATER_1_MAXTEMP 305
 #define HEATER_1_MAXTEMP 305
 #define HEATER_2_MAXTEMP 305
 #define HEATER_2_MAXTEMP 305
 #define BED_MAXTEMP 125
 #define BED_MAXTEMP 125
+#define AMBIENT_MAXTEMP 100
 
 
 #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
 #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
 // Define PID constants for extruder with PT100
 // Define PID constants for extruder with PT100
@@ -496,6 +500,9 @@
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HPB_TEMP 105
 #define ASA_PREHEAT_HPB_TEMP 105
 
 
+#define PC_PREHEAT_HOTEND_TEMP 275
+#define PC_PREHEAT_HPB_TEMP 110
+
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HPB_TEMP 100
 #define ABS_PREHEAT_HPB_TEMP 100
 
 

+ 9 - 0
Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h

@@ -296,6 +296,9 @@
 #if BED_MINTEMP_DELAY>USHRT_MAX
 #if BED_MINTEMP_DELAY>USHRT_MAX
 #error "Check maximal allowed value @ ShortTimer (see BED_MINTEMP_DELAY definition)"
 #error "Check maximal allowed value @ ShortTimer (see BED_MINTEMP_DELAY definition)"
 #endif
 #endif
+#define DETECT_SUPERPINDA
+#define PINDA_MINTEMP BED_MINTEMP
+#define AMBIENT_MINTEMP -30
 
 
 // Maxtemps
 // Maxtemps
 #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
 #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
@@ -306,6 +309,7 @@
 #define HEATER_1_MAXTEMP 305
 #define HEATER_1_MAXTEMP 305
 #define HEATER_2_MAXTEMP 305
 #define HEATER_2_MAXTEMP 305
 #define BED_MAXTEMP 125
 #define BED_MAXTEMP 125
+#define AMBIENT_MAXTEMP 100
 
 
 #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
 #if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
 // Define PID constants for extruder with PT100
 // Define PID constants for extruder with PT100
@@ -331,6 +335,8 @@
 #define EXTRUDER_2_AUTO_FAN_PIN   -1
 #define EXTRUDER_2_AUTO_FAN_PIN   -1
 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50
 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50
 #define EXTRUDER_AUTO_FAN_SPEED   255  // == full speed
 #define EXTRUDER_AUTO_FAN_SPEED   255  // == full speed
+#define EXTRUDER_ALTFAN_DETECT
+#define EXTRUDER_ALTFAN_SPEED_SILENT 128
 
 
 
 
 
 
@@ -498,6 +504,9 @@
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HOTEND_TEMP 260
 #define ASA_PREHEAT_HPB_TEMP 105
 #define ASA_PREHEAT_HPB_TEMP 105
 
 
+#define PC_PREHEAT_HOTEND_TEMP 275
+#define PC_PREHEAT_HPB_TEMP 110
+
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HOTEND_TEMP 255
 #define ABS_PREHEAT_HPB_TEMP 100
 #define ABS_PREHEAT_HPB_TEMP 100
 
 

+ 18 - 4
README.md

@@ -26,14 +26,28 @@ The firmware for the Original Prusa i3 printers is proudly based on [Marlin 1.0.
 
 
 1. Clone this repository and checkout the correct branch for your desired release version.
 1. Clone this repository and checkout the correct branch for your desired release version.
 
 
-2. Set your printer model. 
+1. Set your printer model. 
    - For MK3 --> skip to step 3. 
    - For MK3 --> skip to step 3. 
    - If you have a different printer model, follow step [2.b](#2b) from Windows build
    - If you have a different printer model, follow step [2.b](#2b) from Windows build
+1. Install GNU AWK  `sudo apt-get install gawk`  
+If you use mawk instead of gawk you get strange errors when multi language support is generated like:  
+`awk: line 2: function strtonum never defined
+sed: couldn't write 4 items to stdout: Broken pipe
+./lang-build.sh: 121: ./lang-build.sh: arithmetic expression: expecting EOF: "0x"awk: line 2: function strtonum never defined
+sed: couldn't write 4 items to stdout: Broken pipe
+tr: write error: Broken pipe
+./lang-build.sh: 121: ./lang-build.sh: arithmetic expression: expecting EOF: "0x"awk: line 2: function strtonum never defined
+sed: couldn't write 4 items to stdout: Broken pipe
+tr: write error: Broken pipe
+tr: write error
+cut: write error: Broken pipeNG! - some texts not found in lang_en.txt! updating binary:
+  primary language ids...awk: line 2: function strtonum never defined
+sed: couldn't flush stdout: Broken pipe`
    
    
-3. Run `./build.sh`
+1. Run `./build.sh`
    - Output hex file is at `"PrusaFirmware/lang/firmware.hex"` . In the same folder you can hex files for other languages as well.
    - Output hex file is at `"PrusaFirmware/lang/firmware.hex"` . In the same folder you can hex files for other languages as well.
 
 
-4. Connect your printer and flash with PrusaSlicer ( Configuration --> Flash printer firmware ) or Slic3r PE.
+1. Connect your printer and flash with PrusaSlicer ( Configuration --> Flash printer firmware ) or Slic3r PE.
    - If you wish to flash from Arduino, follow step [2.c](#2c) from Windows build first.
    - If you wish to flash from Arduino, follow step [2.c](#2c) from Windows build first.
 
 
 
 
@@ -182,7 +196,7 @@ Example:
 
 
 `ninja`
 `ninja`
 
 
-## Runing
+## Running
 `./tests`
 `./tests`
 
 
 # 4. Documentation
 # 4. Documentation

+ 2 - 2
lang/lang-build.sh

@@ -5,7 +5,7 @@
 #
 #
 # Input files:
 # Input files:
 #  lang_en.txt or lang_en_xx.txt
 #  lang_en.txt or lang_en_xx.txt
-#  
+#
 # Output files:
 # Output files:
 #  lang_xx.bin
 #  lang_xx.bin
 #
 #
@@ -82,7 +82,7 @@ generate_binary()
  rm -f lang_$1.dat
  rm -f lang_$1.dat
  LNG=$1
  LNG=$1
  #check lang dictionary
  #check lang dictionary
- /usr/bin/env python lang-check.py $1 --no-warning
+ ./lang-check.py $1 --no-warning
  #create lang_xx.tmp - different processing for 'en' language
  #create lang_xx.tmp - different processing for 'en' language
  if [ "$1" = "en" ]; then
  if [ "$1" = "en" ]; then
   #remove comments and empty lines
   #remove comments and empty lines

+ 0 - 0
lang/lang-check.py


+ 14 - 5
lang/lang_en.txt

@@ -1,12 +1,21 @@
 #
 #
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 
 
-#MSG_03_OR_OLDER c=18
+#MSG_IR_03_OR_OLDER c=18
 " 0.3 or older"
 " 0.3 or older"
 
 
-#MSG_04_OR_NEWER c=18
+# c=18
+"FS v0.3 or older"
+
+#MSG_IR_04_OR_NEWER c=18
 " 0.4 or newer"
 " 0.4 or newer"
 
 
+# c=18
+"FS v0.4 or newer"
+
+#MSG_IR_UNKNOWN c=18
+"unknown state"
+
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 " of 4"
 " of 4"
 
 
@@ -265,9 +274,6 @@
 #MSG_FS_ACTION c=10
 #MSG_FS_ACTION c=10
 "FS Action"
 "FS Action"
 
 
-# c=18
-"FS v0.4 or newer"
-
 #MSG_FILE_INCOMPLETE c=20 r=3
 #MSG_FILE_INCOMPLETE c=20 r=3
 "File incomplete. Continue anyway?"
 "File incomplete. Continue anyway?"
 
 
@@ -670,6 +676,9 @@
 # c=20 r=4
 # c=20 r=4
 "Please unload the filament first, then repeat this action."
 "Please unload the filament first, then repeat this action."
 
 
+# c=20 r=4
+"Please check the IR sensor connection, unload filament if present."
+
 #MSG_RECOVERING_PRINT c=20
 #MSG_RECOVERING_PRINT c=20
 "Recovering print    "
 "Recovering print    "
 
 

+ 18 - 6
lang/lang_en_cz.txt

@@ -2,14 +2,26 @@
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 "[%.7s]Doladeni Z\x0auz nastaveno, pouzit\x0anebo reset od nuly?\x0a%cPokracovat%cReset"
 "[%.7s]Doladeni Z\x0auz nastaveno, pouzit\x0anebo reset od nuly?\x0a%cPokracovat%cReset"
 
 
-#MSG_03_OR_OLDER c=18
+#MSG_IR_03_OR_OLDER c=18
 " 0.3 or older"
 " 0.3 or older"
 " 0.3 nebo starsi"
 " 0.3 nebo starsi"
 
 
-#MSG_04_OR_NEWER c=18
+# c=18
+"FS v0.3 or older"
+"FS 0.3 nebo starsi"
+
+#MSG_IR_04_OR_NEWER c=18
 " 0.4 or newer"
 " 0.4 or newer"
 " 0.4 nebo novejsi"
 " 0.4 nebo novejsi"
 
 
+# c=18
+"FS v0.4 or newer"
+"FS 0.4 a novejsi"
+
+#MSG_IR_UNKNOWN c=18
+"unknown state"
+"neznamy stav"
+
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 " of 4"
 " of 4"
 " z 4"
 " z 4"
@@ -354,10 +366,6 @@
 "FS Action"
 "FS Action"
 "FS reakce"
 "FS reakce"
 
 
-# c=18
-"FS v0.4 or newer"
-"FS v0.4 a novejsi"
-
 #MSG_FILE_INCOMPLETE c=20 r=3
 #MSG_FILE_INCOMPLETE c=20 r=3
 "File incomplete. Continue anyway?"
 "File incomplete. Continue anyway?"
 "Soubor nekompletni. Pokracovat?"
 "Soubor nekompletni. Pokracovat?"
@@ -894,6 +902,10 @@
 "Please unload the filament first, then repeat this action."
 "Please unload the filament first, then repeat this action."
 "Prosim vyjmete filament a zopakujte tuto akci"
 "Prosim vyjmete filament a zopakujte tuto akci"
 
 
+# c=20 r=4
+"Please check the IR sensor connection, unload filament if present."
+"Prosim zkontrolujte zapojeni IR senzoru a vyjmuty filament"
+
 #MSG_RECOVERING_PRINT c=20
 #MSG_RECOVERING_PRINT c=20
 "Recovering print    "
 "Recovering print    "
 "Obnovovani tisku    "
 "Obnovovani tisku    "

+ 18 - 6
lang/lang_en_de.txt

@@ -2,14 +2,26 @@
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 "[%.7s]Z Einstell.\x0aWert gesetzt,weiter\x0aoder mit 0 beginnen?\x0a%cWeiter%cNeu beginnen"
 "[%.7s]Z Einstell.\x0aWert gesetzt,weiter\x0aoder mit 0 beginnen?\x0a%cWeiter%cNeu beginnen"
 
 
-#MSG_03_OR_OLDER c=18
+#MSG_IR_03_OR_OLDER c=18
 " 0.3 or older"
 " 0.3 or older"
 " 0.3 oder aelter"
 " 0.3 oder aelter"
 
 
-#MSG_04_OR_NEWER c=18
+# c=18
+"FS v0.3 or older"
+"FS 0.3 oder aelter"
+
+#MSG_IR_04_OR_NEWER c=18
 " 0.4 or newer"
 " 0.4 or newer"
 " 0.4 oder neuer"
 " 0.4 oder neuer"
 
 
+# c=18
+"FS v0.4 or newer"
+"FS 0.4 oder neuer"
+
+#MSG_IR_UNKNOWN c=18
+"unknown state"
+"Status unbekannt"
+
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 " of 4"
 " of 4"
 " von 4"
 " von 4"
@@ -354,10 +366,6 @@
 "FS Action"
 "FS Action"
 "FS Aktion"
 "FS Aktion"
 
 
-# c=18
-"FS v0.4 or newer"
-"FS v0.4 oder neuer"
-
 #MSG_FILE_INCOMPLETE c=20 r=3
 #MSG_FILE_INCOMPLETE c=20 r=3
 "File incomplete. Continue anyway?"
 "File incomplete. Continue anyway?"
 "Datei unvollstaendig Trotzdem fortfahren?"
 "Datei unvollstaendig Trotzdem fortfahren?"
@@ -894,6 +902,10 @@
 "Please unload the filament first, then repeat this action."
 "Please unload the filament first, then repeat this action."
 "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal."
 "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal."
 
 
+# c=20 r=4
+"Please check the IR sensor connection, unload filament if present."
+"Bitte IR Sensor Verbindungen ueber- pruefen und Filament entladen ist."
+
 #MSG_RECOVERING_PRINT c=20
 #MSG_RECOVERING_PRINT c=20
 "Recovering print    "
 "Recovering print    "
 "Druck wiederherst   "
 "Druck wiederherst   "

+ 18 - 6
lang/lang_en_es.txt

@@ -2,14 +2,26 @@
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 "[%.7s]Ajuste Z\x0aAjustado, continuar\x0ao empezar de nuevo?\x0a%cContinuar%cRepetir"
 "[%.7s]Ajuste Z\x0aAjustado, continuar\x0ao empezar de nuevo?\x0a%cContinuar%cRepetir"
 
 
-#MSG_03_OR_OLDER c=18
+#MSG_IR_03_OR_OLDER c=18
 " 0.3 or older"
 " 0.3 or older"
 " 0.3 o mayor"
 " 0.3 o mayor"
 
 
-#MSG_04_OR_NEWER c=18
+# c=18
+"FS v0.3 or older"
+"FS 0.3 o mayor"
+
+#MSG_IR_04_OR_NEWER c=18
 " 0.4 or newer"
 " 0.4 or newer"
 " 0.4 o mas nueva"
 " 0.4 o mas nueva"
 
 
+# c=18
+"FS v0.4 or newer"
+"FS 0.4 o mas nueva"
+
+#MSG_IR_UNKNOWN c=18
+"unknown state"
+"estado desconocido"
+
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 " of 4"
 " of 4"
 " de 4"
 " de 4"
@@ -354,10 +366,6 @@
 "FS Action"
 "FS Action"
 "FS accion"
 "FS accion"
 
 
-# c=18
-"FS v0.4 or newer"
-"FS v0.4 o +nueva"
-
 #MSG_FILE_INCOMPLETE c=20 r=3
 #MSG_FILE_INCOMPLETE c=20 r=3
 "File incomplete. Continue anyway?"
 "File incomplete. Continue anyway?"
 "Archivo incompleto. ?Continuar de todos modos?"
 "Archivo incompleto. ?Continuar de todos modos?"
@@ -894,6 +902,10 @@
 "Please unload the filament first, then repeat this action."
 "Please unload the filament first, then repeat this action."
 "Primero descargue el filamento, luego repita esta accion."
 "Primero descargue el filamento, luego repita esta accion."
 
 
+# c=20 r=4
+"Please check the IR sensor connection, unload filament if present."
+"Por favor comprueba la conexion del IR sensor y filamento esta descargado."
+
 #MSG_RECOVERING_PRINT c=20
 #MSG_RECOVERING_PRINT c=20
 "Recovering print    "
 "Recovering print    "
 "Recuper. impresion  "
 "Recuper. impresion  "

+ 18 - 6
lang/lang_en_fr.txt

@@ -2,14 +2,26 @@
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 "[%.7s]Ajust. du Z\x0aValeur enreg, contin\x0aou depart a zero?\x0a%cContinuer%cReset"
 "[%.7s]Ajust. du Z\x0aValeur enreg, contin\x0aou depart a zero?\x0a%cContinuer%cReset"
 
 
-#MSG_03_OR_OLDER c=18
+#MSG_IR_03_OR_OLDER c=18
 " 0.3 or older"
 " 0.3 or older"
 " 0.3 ou +ancien"
 " 0.3 ou +ancien"
 
 
-#MSG_04_OR_NEWER c=18
+# c=18
+"FS v0.3 or older"
+"FS v0.3 ou +ancien"
+
+#MSG_IR_04_OR_NEWER c=18
 " 0.4 or newer"
 " 0.4 or newer"
 " 0.4 ou +recent"
 " 0.4 ou +recent"
 
 
+# c=18
+"FS v0.4 or newer"
+"FS v0.4 ou +recent"
+
+#MSG_IR_UNKNOWN c=18
+"unknown state"
+"Etat inconnu"
+
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 " of 4"
 " of 4"
 " de 4"
 " de 4"
@@ -354,10 +366,6 @@
 "FS Action"
 "FS Action"
 "\x00"
 "\x00"
 
 
-# c=18
-"FS v0.4 or newer"
-"FS v0.4 ou +recent"
-
 #MSG_FILE_INCOMPLETE c=20 r=3
 #MSG_FILE_INCOMPLETE c=20 r=3
 "File incomplete. Continue anyway?"
 "File incomplete. Continue anyway?"
 "Fichier incomplet. Continuer qd meme?"
 "Fichier incomplet. Continuer qd meme?"
@@ -894,6 +902,10 @@
 "Please unload the filament first, then repeat this action."
 "Please unload the filament first, then repeat this action."
 "SVP, dechargez le filament et reessayez."
 "SVP, dechargez le filament et reessayez."
 
 
+# c=20 r=4
+"Please check the IR sensor connection, unload filament if present."
+"SVP, verifiez la connexion du capteur IR et decharge le filament."
+
 #MSG_RECOVERING_PRINT c=20
 #MSG_RECOVERING_PRINT c=20
 "Recovering print    "
 "Recovering print    "
 "Recup. impression   "
 "Recup. impression   "

+ 17 - 5
lang/lang_en_it.txt

@@ -6,10 +6,22 @@
 " 0.3 or older"
 " 0.3 or older"
 " 0.3 o inferiore"
 " 0.3 o inferiore"
 
 
-#MSG_04_OR_NEWER c=18
+# c=18
+"FS v0.3 or older"
+"FS 0.3 o inferiore"
+
+#MSG_IR_04_OR_NEWER c=18
 " 0.4 or newer"
 " 0.4 or newer"
 " 0.4 o superiore"
 " 0.4 o superiore"
 
 
+# c=18
+"FS v0.4 or newer"
+"FS 0.4 o superiore"
+
+#MSG_IR_UNKNOWN c=18
+"unknown state"
+"stato sconosciuto"
+
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 " of 4"
 " of 4"
 " su 4"
 " su 4"
@@ -354,10 +366,6 @@
 "FS Action"
 "FS Action"
 "Azione FS"
 "Azione FS"
 
 
-# c=18
-"FS v0.4 or newer"
-"FS 0.4 o superiore"
-
 #MSG_FILE_INCOMPLETE c=20 r=3
 #MSG_FILE_INCOMPLETE c=20 r=3
 "File incomplete. Continue anyway?"
 "File incomplete. Continue anyway?"
 "File incompleto. Continuare comunque?"
 "File incompleto. Continuare comunque?"
@@ -894,6 +902,10 @@
 "Please unload the filament first, then repeat this action."
 "Please unload the filament first, then repeat this action."
 "Scaricare prima il filamento, poi ripetere l'operazione."
 "Scaricare prima il filamento, poi ripetere l'operazione."
 
 
+# c=20 r=4
+"Please check the IR sensor connection, unload filament if present."
+"Controllare il collegamento al sensore e rimuovere il filamento."
+
 #MSG_RECOVERING_PRINT c=20
 #MSG_RECOVERING_PRINT c=20
 "Recovering print    "
 "Recovering print    "
 "Recupero stampa     "
 "Recupero stampa     "

+ 18 - 6
lang/lang_en_pl.txt

@@ -2,14 +2,26 @@
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 "[%.7s]Live Adj. Z\x0austaw., kontynuowac\x0aczy zaczac od 0?\x0a%cKontynuuj%cReset"
 "[%.7s]Live Adj. Z\x0austaw., kontynuowac\x0aczy zaczac od 0?\x0a%cKontynuuj%cReset"
 
 
-#MSG_03_OR_OLDER c=18
+#MSG_IR_03_OR_OLDER c=18
 " 0.3 or older"
 " 0.3 or older"
 " 0.3 lub starszy"
 " 0.3 lub starszy"
 
 
-#MSG_04_OR_NEWER c=18
+# c=18
+"FS v0.3 or older"
+"FS 0.3 lub starszy"
+
+#MSG_IR_04_OR_NEWER c=18
 " 0.4 or newer"
 " 0.4 or newer"
 " 0.4 lub nowszy"
 " 0.4 lub nowszy"
 
 
+# c=18
+"FS v0.4 or newer"
+"FS 0.4 lub nowszy"
+
+#MSG_IR_UNKNOWN c=18
+"unknown state"
+"Stan nieznany"
+
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 " of 4"
 " of 4"
 " z 4"
 " z 4"
@@ -354,10 +366,6 @@
 "FS Action"
 "FS Action"
 "Akcja FS"
 "Akcja FS"
 
 
-# c=18
-"FS v0.4 or newer"
-"FS v0.4 lub nowszy"
-
 #MSG_FILE_INCOMPLETE c=20 r=3
 #MSG_FILE_INCOMPLETE c=20 r=3
 "File incomplete. Continue anyway?"
 "File incomplete. Continue anyway?"
 "Plik niekompletny. Kontynowac?"
 "Plik niekompletny. Kontynowac?"
@@ -894,6 +902,10 @@
 "Please unload the filament first, then repeat this action."
 "Please unload the filament first, then repeat this action."
 "Najpierw rozladuj filament, nastepnie powtorz czynnosc."
 "Najpierw rozladuj filament, nastepnie powtorz czynnosc."
 
 
+# c=20 r=4
+"Please check the IR sensor connection, unload filament if present."
+"Sprawdz polaczenie czujnika IR, rozladuj filament, jesli zaladowany."
+
 #MSG_RECOVERING_PRINT c=20
 #MSG_RECOVERING_PRINT c=20
 "Recovering print    "
 "Recovering print    "
 "Wznawianie wydruku  "
 "Wznawianie wydruku  "

+ 212 - 197
lang/po/Firmware.pot

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: en\n"
 "Language: en\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Wed May 13 17:40:37 CEST 2020\n"
-"PO-Revision-Date: Wed May 13 17:40:37 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:22:18 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:22:18 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -20,16 +20,31 @@ msgstr ""
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgstr ""
 msgstr ""
 
 
-# MSG_03_OR_OLDER c=18
+# MSG_IR_03_OR_OLDER c=18
 #: messages.c:144
 #: messages.c:144
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr ""
 msgstr ""
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr ""
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr ""
 msgstr ""
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr ""
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr ""
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr ""
 msgstr ""
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr ""
 msgstr ""
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ""
 msgstr ""
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr ""
 msgstr ""
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr ""
 msgstr ""
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr ""
 msgstr ""
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr ""
 msgstr ""
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr ""
 msgstr ""
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr ""
 msgstr ""
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr ""
 msgstr ""
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr ""
 msgstr ""
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr ""
 msgstr ""
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr ""
 msgstr ""
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr ""
 msgstr ""
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr ""
 msgstr ""
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr ""
 msgstr ""
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr ""
 msgstr ""
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr ""
 msgstr ""
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr ""
 msgstr ""
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr ""
 msgstr ""
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr ""
 msgstr ""
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr ""
 msgstr ""
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr ""
 msgstr ""
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr ""
 msgstr ""
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr ""
 msgstr ""
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr ""
 msgstr ""
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr ""
 msgstr ""
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr ""
 msgstr ""
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr ""
 msgstr ""
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr ""
 msgstr ""
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr ""
 msgstr ""
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr ""
 msgstr ""
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr ""
 msgstr ""
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr ""
 msgstr ""
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr ""
 msgstr ""
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr ""
 msgstr ""
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr ""
 msgstr ""
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr ""
 msgstr ""
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr ""
 msgstr ""
 
 
@@ -460,13 +475,8 @@ msgstr ""
 msgid "FS Action"
 msgid "FS Action"
 msgstr ""
 msgstr ""
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr ""
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr ""
 msgstr ""
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr ""
 msgstr ""
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr ""
 msgstr ""
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr ""
 msgstr ""
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr ""
 msgstr ""
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr ""
 msgstr ""
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr ""
 msgstr ""
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr ""
 msgstr ""
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr ""
 msgstr ""
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr ""
 msgstr ""
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr ""
 msgstr ""
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr ""
 msgstr ""
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr ""
 msgstr ""
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr ""
 msgstr ""
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr ""
 msgstr ""
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr ""
 msgstr ""
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr ""
 msgstr ""
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr ""
 msgstr ""
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr ""
 msgstr ""
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr ""
 msgstr ""
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr ""
 msgstr ""
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr ""
 msgstr ""
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr ""
 msgstr ""
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr ""
 msgstr ""
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr ""
 msgstr ""
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr ""
 msgstr ""
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr ""
 msgstr ""
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr ""
 msgstr ""
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr ""
 msgstr ""
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr ""
 msgstr ""
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr ""
 msgstr ""
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr ""
 msgstr ""
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr ""
 msgstr ""
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr ""
 msgstr ""
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr ""
 msgstr ""
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr ""
 msgstr ""
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr ""
 msgstr ""
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr ""
 msgstr ""
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr ""
 msgstr ""
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr ""
 msgstr ""
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr ""
 msgstr ""
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr ""
 msgstr ""
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr ""
 msgstr ""
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr ""
 msgstr ""
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr ""
 msgstr ""
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr ""
 msgstr ""
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr ""
 msgstr ""
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr ""
 msgstr ""
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr ""
 msgstr ""
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr ""
 msgstr ""
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr ""
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr ""
 msgstr ""
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr ""
 msgstr ""
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr ""
 msgstr ""
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr ""
 msgstr ""
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr ""
 msgstr ""
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr ""
 msgstr ""
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr ""
 msgstr ""
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr ""
 msgstr ""
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr ""
 msgstr ""
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr ""
 msgstr ""
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr ""
 msgstr ""
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr ""
 msgstr ""
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr ""
 msgstr ""
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr ""
 msgstr ""
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr ""
 msgstr ""
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr ""
 msgstr ""
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr ""
 msgstr ""
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr ""
 msgstr ""
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr ""
 msgstr ""
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr ""
 msgstr ""
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr ""
 msgstr ""
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr ""
 msgstr ""
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr ""
 msgstr ""
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr ""
 msgstr ""
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr ""
 msgstr ""
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr ""
 msgstr ""
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr ""
 msgstr ""
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr ""
 msgstr ""
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr ""
 msgstr ""
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr ""
 msgstr ""
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr ""
 msgstr ""
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr ""
 msgstr ""
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr ""
 msgstr ""
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr ""
 msgstr ""
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr ""
 msgstr ""
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr ""
 msgstr ""
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr ""
 msgstr ""
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr ""
 msgstr ""
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr ""
 msgstr ""
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr ""
 msgstr ""
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr ""
 msgstr ""
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr ""
 msgstr ""
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr ""
 msgstr ""
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr ""
 msgstr ""
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr ""
 msgstr ""
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr ""
 msgstr ""
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr ""
 msgstr ""
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr ""
 msgstr ""
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr ""
 msgstr ""
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr ""
 msgstr ""
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr ""
 msgstr ""
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr ""
 msgstr ""
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr ""
 msgstr ""
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr ""
 msgstr ""
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr ""
 msgstr ""
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr ""
 msgstr ""
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr ""
 msgstr ""
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr ""
 msgstr ""
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr ""
 msgstr ""
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr ""
 msgstr ""
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr ""
 msgstr ""
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr ""
 msgstr ""
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr ""
 msgstr ""
 
 

+ 212 - 197
lang/po/Firmware_cs.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: cs\n"
 "Language: cs\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Wed May 13 17:41:02 CEST 2020\n"
-"PO-Revision-Date: Wed May 13 17:41:02 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:22:53 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:22:53 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -20,16 +20,31 @@ msgstr ""
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgstr "[%.7s]Doladeni Z\x0auz nastaveno, pouzit\x0anebo reset od nuly?\x0a%cPokracovat%cReset"
 msgstr "[%.7s]Doladeni Z\x0auz nastaveno, pouzit\x0anebo reset od nuly?\x0a%cPokracovat%cReset"
 
 
-# MSG_03_OR_OLDER c=18
+# MSG_IR_03_OR_OLDER c=18
 #: messages.c:144
 #: messages.c:144
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 nebo starsi"
 msgstr " 0.3 nebo starsi"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS 0.3 nebo starsi"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 nebo novejsi"
 msgstr " 0.4 nebo novejsi"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS 0.4 a novejsi"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "neznamy stav"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " z 9"
 msgstr " z 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "[0;0] odsazeni bodu"
 msgstr "[0;0] odsazeni bodu"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "POZOR:\x0aCrash detekce\x0adeaktivovana ve\x0aStealth modu"
 msgstr "POZOR:\x0aCrash detekce\x0adeaktivovana ve\x0aStealth modu"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Zrusit"
 msgstr ">Zrusit"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Doladeni Z:"
 msgstr "Doladeni Z:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Vse OK "
 msgstr "Vse OK "
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "a stisknete tlacitko"
 msgstr "a stisknete tlacitko"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "Dojely oba Z voziky k~hornimu dorazu?"
 msgstr "Dojely oba Z voziky k~hornimu dorazu?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr ""
 msgstr ""
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "AutoZavedeni fil."
 msgstr "AutoZavedeni fil."
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Automaticke zavadeni filamentu je mozne pouze pri zapnutem filament senzoru..."
 msgstr "Automaticke zavadeni filamentu je mozne pouze pri zapnutem filament senzoru..."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Automaticke zavadeni filamentu aktivni, stisknete tlacitko a vlozte filament..."
 msgstr "Automaticke zavadeni filamentu aktivni, stisknete tlacitko a vlozte filament..."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Delka osy"
 msgstr "Delka osy"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Osa"
 msgstr "Osa"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Podlozka / Topeni"
 msgstr "Podlozka / Topeni"
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Zahrivani bedu"
 msgstr "Zahrivani bedu"
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Korekce podlozky"
 msgstr "Korekce podlozky"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Test remenu      "
 msgstr "Test remenu      "
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Detekovan vypadek proudu.Obnovit tisk?"
 msgstr "Detekovan vypadek proudu.Obnovit tisk?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Kalibruji vychozi poz."
 msgstr "Kalibruji vychozi poz."
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Kalibrace XYZ"
 msgstr "Kalibrace XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Kalibrovat Z"
 msgstr "Kalibrovat Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Zkalibrovat"
 msgstr "Zkalibrovat"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Kalibrace XYZ. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem."
 msgstr "Kalibrace XYZ. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Kalibruji Z"
 msgstr "Kalibruji Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Kalibrace Z. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem."
 msgstr "Kalibrace Z. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr "Kalibrace"
 msgstr "Kalibrace"
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Zrusit"
 msgstr "Zrusit"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "Karta vyjmuta"
 msgstr "Karta vyjmuta"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Barva neni cista"
 msgstr "Barva neni cista"
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Zchladit"
 msgstr "Zchladit"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Kopirovat vybrany jazyk?"
 msgstr "Kopirovat vybrany jazyk?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu"
 msgstr "Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu"
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Detekovan naraz."
 msgstr "Detekovan naraz."
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Detekovan naraz. Obnovit tisk?"
 msgstr "Detekovan naraz. Obnovit tisk?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr "Naraz"
 msgstr "Naraz"
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Pouze aktualni"
 msgstr "Pouze aktualni"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Datum:"
 msgstr "Datum:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Vypnout motory"
 msgstr "Vypnout motory"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr "Pokr."
 msgstr "Pokr."
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Chcete opakovat posledni krok a pozmenit vzdalenost mezi tryskou a podlozkou?"
 msgstr "Chcete opakovat posledni krok a pozmenit vzdalenost mezi tryskou a podlozkou?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "Korekce E:"
 msgstr "Korekce E:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "Vysouvam filament"
 msgstr "Vysouvam filament"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Kon. spinac nesepnut"
 msgstr "Kon. spinac nesepnut"
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr "Koncovy spinac"
 msgstr "Koncovy spinac"
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr "Konc. spinace"
 msgstr "Konc. spinace"
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Chyba - Doslo k prepisu staticke pameti!"
 msgstr "Chyba - Doslo k prepisu staticke pameti!"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Strihani filamentu"
 msgstr "Strihani filamentu"
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte prosim zapojeni."
 msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte prosim zapojeni."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr "CHYBA:"
 msgstr "CHYBA:"
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "Levy vent.:"
 msgstr "Levy vent.:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr ""
 msgstr ""
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "Selhani MMU"
 msgstr "Selhani MMU"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "F. autozav."
 msgstr "F. autozav."
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Selhani"
 msgstr "Selhani"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Test ventilatoru"
 msgstr "Test ventilatoru"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Kontr. vent."
 msgstr "Kontr. vent."
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament vytlacen a spravne barvy?"
 msgstr "Filament vytlacen a spravne barvy?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Filament nezaveden"
 msgstr "Filament nezaveden"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Senzor filamentu"
 msgstr "Senzor filamentu"
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Spotrebovano filam."
 msgstr "Spotrebovano filam."
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Cas tisku"
 msgstr "Cas tisku"
 
 
@@ -460,13 +475,8 @@ msgstr "Cas tisku"
 msgid "FS Action"
 msgid "FS Action"
 msgstr "FS reakce"
 msgstr "FS reakce"
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS v0.4 a novejsi"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "Soubor nekompletni. Pokracovat?"
 msgstr "Soubor nekompletni. Pokracovat?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Kal. prvni vrstvy"
 msgstr "Kal. prvni vrstvy"
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Nejdriv pomoci selftestu zkontoluji nejcastejsi chyby vznikajici pri sestaveni tiskarny."
 msgstr "Nejdriv pomoci selftestu zkontoluji nejcastejsi chyby vznikajici pri sestaveni tiskarny."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Opravte chybu a pote stisknete tlacitko na jednotce MMU."
 msgstr "Opravte chybu a pote stisknete tlacitko na jednotce MMU."
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Prutok"
 msgstr "Prutok"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Predni tiskovy vent?"
 msgstr "Predni tiskovy vent?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Vpredu [um]"
 msgstr "Vpredu [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Predni/levy vent."
 msgstr "Predni/levy vent."
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Topeni/Termistor"
 msgstr "Topeni/Termistor"
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Zahrivani preruseno bezpecnostnim casovacem."
 msgstr "Zahrivani preruseno bezpecnostnim casovacem."
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Zahrivani"
 msgstr "Zahrivani"
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Dobry den, jsem vase tiskarna Original Prusa i3. Chcete abych Vas provedla kalibracnim procesem?"
 msgstr "Dobry den, jsem vase tiskarna Original Prusa i3. Chcete abych Vas provedla kalibracnim procesem?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Vymenit filament"
 msgstr "Vymenit filament"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Zmena uspesna!"
 msgstr "Zmena uspesna!"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Vymena ok?"
 msgstr "Vymena ok?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Kontrola podlozky"
 msgstr "Kontrola podlozky"
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Kontrola endstopu"
 msgstr "Kontrola endstopu"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Kontrola hotend "
 msgstr "Kontrola hotend "
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Kontrola senzoru"
 msgstr "Kontrola senzoru"
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Kontrola osy X"
 msgstr "Kontrola osy X"
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Kontrola osy Y"
 msgstr "Kontrola osy Y"
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Kontrola osy Z"
 msgstr "Kontrola osy Z"
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Nyni provedu xyz kalibraci. Zabere to priblizne 12 min."
 msgstr "Nyni provedu xyz kalibraci. Zabere to priblizne 12 min."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Nyni provedu z kalibraci."
 msgstr "Nyni provedu z kalibraci."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Informace"
 msgstr "Informace"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Vlozte filament"
 msgstr "Vlozte filament"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Je filament zaveden?"
 msgstr "Je filament zaveden?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Selhani posl. tisku"
 msgstr "Selhani posl. tisku"
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Mate-li vice tiskovych platu, kalibrujte je v menu Nastaveni - HW nastaveni - Tiskove platy"
 msgstr "Mate-li vice tiskovych platu, kalibrujte je v menu Nastaveni - HW nastaveni - Tiskove platy"
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Levy vent na trysce?"
 msgstr "Levy vent na trysce?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Vlevo"
 msgstr "Vlevo"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Vlevo [um]"
 msgstr "Vlevo [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Korekce lin."
 msgstr "Korekce lin."
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Doladeni osy Z"
 msgstr "Doladeni osy Z"
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Vlozte filament (nezavadejte) do extruderu a stisknete tlacitko"
 msgstr "Vlozte filament (nezavadejte) do extruderu a stisknete tlacitko"
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Zavest filament"
 msgstr "Zavest filament"
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Cisteni barvy"
 msgstr "Cisteni barvy"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Zavadeni filamentu"
 msgstr "Zavadeni filamentu"
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Uvolnena remenicka"
 msgstr "Uvolnena remenicka"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "Zavest do trysky"
 msgstr "Zavest do trysky"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Merim referencni vysku kalibracniho bodu"
 msgstr "Merim referencni vysku kalibracniho bodu"
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr ""
 msgstr ""
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Pokracuji v nahrivani..."
 msgstr "MMU OK. Pokracuji v nahrivani..."
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Merene zkoseni"
 msgstr "Merene zkoseni"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr "Mod"
 msgstr "Mod"
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr ""
 msgstr ""
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Vys. vykon"
 msgstr "Vys. vykon"
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU2 pripojeno"
 msgstr "MMU2 pripojeno"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Posunout osu"
 msgstr "Posunout osu"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Posunout X"
 msgstr "Posunout X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Posunout Y"
 msgstr "Posunout Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Posunout Z"
 msgstr "Posunout Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Bez pohybu."
 msgstr "Bez pohybu."
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "Zadna SD karta"
 msgstr "Zadna SD karta"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr "Ne"
 msgstr "Ne"
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "Nezapojeno "
 msgstr "Nezapojeno "
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Netoci se"
 msgstr "Netoci se"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Nyni zkalibruji vzdalenost mezi koncem trysky a povrchem podlozky."
 msgstr "Nyni zkalibruji vzdalenost mezi koncem trysky a povrchem podlozky."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Nyni predehreji trysku pro PLA."
 msgstr "Nyni predehreji trysku pro PLA."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Tryska"
 msgstr "Tryska"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd."
 msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd."
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu."
 msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "Vent. trysky"
 msgstr "Vent. trysky"
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Pozastavit tisk"
 msgstr "Pozastavit tisk"
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "PID kal. ukoncena"
 msgstr "PID kal. ukoncena"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "PID kalibrace"
 msgstr "PID kalibrace"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, okamzite vypnete tiskarnu."
 msgstr "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, okamzite vypnete tiskarnu."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Prosim ocistete podlozku a stisknete tlacitko."
 msgstr "Prosim ocistete podlozku a stisknete tlacitko."
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem."
 msgstr "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Zkontrolujte :"
 msgstr "Zkontrolujte :"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Prosim nahlednete do prirucky 3D tiskare a opravte problem. Pote obnovte Pruvodce restartovanim tiskarny."
 msgstr "Prosim nahlednete do prirucky 3D tiskare a opravte problem. Pote obnovte Pruvodce restartovanim tiskarny."
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Prosim otevrete idler a manualne odstrante filament."
 msgstr "Prosim otevrete idler a manualne odstrante filament."
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Odstrante prosim tiskovy plat z podlozky."
 msgstr "Odstrante prosim tiskovy plat z podlozky."
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Nejprve spustte kalibraci XYZ."
 msgstr "Nejprve spustte kalibraci XYZ."
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Prosim cekejte"
 msgstr "Prosim cekejte"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Nejprve prosim sundejte transportni soucastky."
 msgstr "Nejprve prosim sundejte transportni soucastky."
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Predehrejte trysku!"
 msgstr "Predehrejte trysku!"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Predehrev"
 msgstr "Predehrev"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Prosim aktualizujte."
 msgstr "Prosim aktualizujte."
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko."
 msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr ""
 msgstr ""
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Tisk prerusen"
 msgstr "Tisk prerusen"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Predehrev k zavedeni"
 msgstr "Predehrev k zavedeni"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Predehrev k vyjmuti"
 msgstr "Predehrev k vyjmuti"
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "Tiskovy vent.:"
 msgstr "Tiskovy vent.:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Tisk z SD"
 msgstr "Tisk z SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "Stisknete hl. tlacitko"
 msgstr "Stisknete hl. tlacitko"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "Tiskovy vent."
 msgstr "Tiskovy vent."
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Prosim vlozte filament do extruderu a stisknete tlacitko k jeho zavedeni"
 msgstr "Prosim vlozte filament do extruderu a stisknete tlacitko k jeho zavedeni"
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Prosim vlozte filament do prvni trubicky MMU a stisknete tlacitko k jeho zavedeni"
 msgstr "Prosim vlozte filament do prvni trubicky MMU a stisknete tlacitko k jeho zavedeni"
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Prosim nejdriv zavedte filament"
 msgstr "Prosim nejdriv zavedte filament"
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Vzadu [um]"
 msgstr "Vzadu [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Prosim vyjmete filament a zopakujte tuto akci"
 msgstr "Prosim vyjmete filament a zopakujte tuto akci"
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "Prosim zkontrolujte zapojeni IR senzoru a vyjmuty filament"
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Obnovovani tisku    "
 msgstr "Obnovovani tisku    "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr "Reset XYZ kalibr."
 msgstr "Reset XYZ kalibr."
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr ""
 msgstr ""
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Pokracovat"
 msgstr "Pokracovat"
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Obnoveni tisku"
 msgstr "Obnoveni tisku"
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Vpravo [um]"
 msgstr "Vpravo [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Spusteni Pruvodce vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?"
 msgstr "Spusteni Pruvodce vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Vpravo"
 msgstr "Vpravo"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Hledam kalibracni bod podlozky"
 msgstr "Hledam kalibracni bod podlozky"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Vyber jazyka"
 msgstr "Vyber jazyka"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Self test start "
 msgstr "Self test start "
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr "Selftest "
 msgstr "Selftest "
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Chyba Selftestu!"
 msgstr "Chyba Selftestu!"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Selftest selhal "
 msgstr "Selftest selhal "
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest."
 msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest."
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu."
 msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu."
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Nastavte teplotu:"
 msgstr "Nastavte teplotu:"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Nastaveni"
 msgstr "Nastaveni"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Stav konc. spin."
 msgstr "Stav konc. spin."
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Stav senzoru"
 msgstr "Stav senzoru"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100."
 msgstr "Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100."
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Cas"
 msgstr "Cas"
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Tezke zkoseni:"
 msgstr "Tezke zkoseni:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr "Abeceda"
 msgstr "Abeceda"
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Trideni souboru"
 msgstr "Trideni souboru"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Hlasity"
 msgstr "Hlasity"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Lehke zkoseni:"
 msgstr "Lehke zkoseni:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Vyskytl se problem, srovnavam osu Z ..."
 msgstr "Vyskytl se problem, srovnavam osu Z ..."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "Jednou"
 msgstr "Jednou"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Rychlost"
 msgstr "Rychlost"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Toci se"
 msgstr "Toci se"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Je vyzadovana stabilni pokojova teplota 21-26C a pevna podlozka."
 msgstr "Je vyzadovana stabilni pokojova teplota 21-26C a pevna podlozka."
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Statistika "
 msgstr "Statistika "
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "ZASTAVENO."
 msgstr "ZASTAVENO."
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr "Podpora"
 msgstr "Podpora"
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Prohozene"
 msgstr "Prohozene"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Zvolte filament:"
 msgstr "Zvolte filament:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Tepl. kal."
 msgstr "Tepl. kal."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Zvolte teplotu, ktera odpovida vasemu materialu."
 msgstr "Zvolte teplotu, ktera odpovida vasemu materialu."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Teplot. kalibrace"
 msgstr "Teplot. kalibrace"
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Teplotni kalibrace selhala"
 msgstr "Teplotni kalibrace selhala"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "Teplotni kalibrace dokoncena a je nyni aktivni. Teplotni kalibraci je mozno deaktivovat v menu Nastaveni->Tepl. kal."
 msgstr "Teplotni kalibrace dokoncena a je nyni aktivni. Teplotni kalibraci je mozno deaktivovat v menu Nastaveni->Tepl. kal."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Senzor overen, vyjmete filament."
 msgstr "Senzor overen, vyjmete filament."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr "Teplota"
 msgstr "Teplota"
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr "Teploty"
 msgstr "Teploty"
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace."
 msgstr "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace."
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Filament celkem"
 msgstr "Filament celkem"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Celkovy cas tisku"
 msgstr "Celkovy cas tisku"
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Ladit"
 msgstr "Ladit"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Celkem selhani"
 msgstr "Celkem selhani"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "k zavedeni filamentu"
 msgstr "k zavedeni filamentu"
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "k vyjmuti filamentu"
 msgstr "k vyjmuti filamentu"
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr "Celkem"
 msgstr "Celkem"
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Pouzite behem tisku"
 msgstr "Pouzite behem tisku"
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Napeti"
 msgstr "Napeti"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "neznamy"
 msgstr "neznamy"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Ceka se na uzivatele..."
 msgstr "Ceka se na uzivatele..."
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Cekani na zchladnuti trysky a podlozky."
 msgstr "Cekani na zchladnuti trysky a podlozky."
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "Cekani na zchladnuti PINDA"
 msgstr "Cekani na zchladnuti PINDA"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Pouzijte vyjmout pro odstraneni filamentu 1 pokud presahuje z PTFE trubicky za tiskarnou. Pouzijte vysunout, pokud neni videt."
 msgstr "Pouzijte vyjmout pro odstraneni filamentu 1 pokud presahuje z PTFE trubicky za tiskarnou. Pouzijte vysunout, pokud neni videt."
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Varovani: doslo ke zmene typu tiskarny a motherboardu."
 msgstr "Varovani: doslo ke zmene typu tiskarny a motherboardu."
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Varovani: doslo ke zmene typu motherboardu."
 msgstr "Varovani: doslo ke zmene typu motherboardu."
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Varovani: doslo ke zmene typu tiskarny."
 msgstr "Varovani: doslo ke zmene typu tiskarny."
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "Bylo vysunuti filamentu uspesne?"
 msgstr "Bylo vysunuti filamentu uspesne?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Chyba zapojeni"
 msgstr "Chyba zapojeni"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr "Pruvodce"
 msgstr "Pruvodce"
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "Detaily XYZ kal."
 msgstr "Detaily XYZ kal."
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Pruvodce muzete kdykoliv znovu spustit z menu Kalibrace -> Pruvodce"
 msgstr "Pruvodce muzete kdykoliv znovu spustit z menu Kalibrace -> Pruvodce"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku."
 msgstr "Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Kalibrace XYZ v poradku. X/Y osy mirne zkosene. Dobra prace!"
 msgstr "Kalibrace XYZ v poradku. X/Y osy mirne zkosene. Dobra prace!"
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr ""
 msgstr ""
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "Korekce X:"
 msgstr "Korekce X:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Kalibrace XYZ v poradku. X/Y osy jsou kolme. Gratuluji!"
 msgstr "Kalibrace XYZ v poradku. X/Y osy jsou kolme. Gratuluji!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu."
 msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu."
 msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Zavest vse"
 msgstr "Zavest vse"
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen."
 msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu."
 msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu."
 msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Y vzdalenost od min"
 msgstr "Y vzdalenost od min"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "Tiskarna zacne tisknout lomenou caru. Otacenim tlacitka nastavte optimalni vysku. Postupujte podle obrazku v handbooku (kapitola Kalibrace)."
 msgstr "Tiskarna zacne tisknout lomenou caru. Otacenim tlacitka nastavte optimalni vysku. Postupujte podle obrazku v handbooku (kapitola Kalibrace)."
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "Overeni selhalo, vyjmete filament a zkuste znovu."
 msgstr "Overeni selhalo, vyjmete filament a zkuste znovu."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Korekce Y:"
 msgstr "Korekce Y:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "Zpet"
 msgstr "Zpet"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Kontrola"
 msgstr "Kontrola"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Falesne spusteni"
 msgstr "Falesne spusteni"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr ""
 msgstr ""
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "HW nastaveni"
 msgstr "HW nastaveni"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr ""
 msgstr ""
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr "Mesh Bed Leveling"
 msgstr "Mesh Bed Leveling"
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "MK3S firmware detekovan na tiskarne MK3"
 msgstr "MK3S firmware detekovan na tiskarne MK3"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "MMU mod"
 msgstr "MMU mod"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Probiha zmena modu..."
 msgstr "Probiha zmena modu..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "G-code je pripraven pro novejsi firmware. Prosim aktualizujte firmware. Tisk zrusen."
 msgstr "G-code je pripraven pro novejsi firmware. Prosim aktualizujte firmware. Tisk zrusen."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Predehrev ke strihu"
 msgstr "Predehrev ke strihu"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Predehrev k vysunuti"
 msgstr "Predehrev k vysunuti"
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Prumer trysky tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen."
 msgstr "Prumer trysky tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Prejmenovat"
 msgstr "Prejmenovat"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Vybrat"
 msgstr "Vybrat"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Senzor info"
 msgstr "Senzor info"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr "Asist."
 msgstr "Asist."
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Tiskove platy"
 msgstr "Tiskove platy"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Korekce Z:"
 msgstr "Korekce Z:"
 
 

+ 212 - 197
lang/po/Firmware_de.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
 "Language: de\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Fri May 15 16:44:45 CEST 2020\n"
-"PO-Revision-Date: Fri May 15 16:44:45 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:23:29 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:23:29 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -20,16 +20,31 @@ msgstr ""
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgstr "[%.7s]Z Einstell.\x0aWert gesetzt,weiter\x0aoder mit 0 beginnen?\x0a%cWeiter%cNeu beginnen"
 msgstr "[%.7s]Z Einstell.\x0aWert gesetzt,weiter\x0aoder mit 0 beginnen?\x0a%cWeiter%cNeu beginnen"
 
 
-# MSG_03_OR_OLDER c=18
+# MSG_IR_03_OR_OLDER c=18
 #: messages.c:144
 #: messages.c:144
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 oder aelter"
 msgstr " 0.3 oder aelter"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS 0.3 oder aelter"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 oder neuer"
 msgstr " 0.4 oder neuer"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS 0.4 oder neuer"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "Status unbekannt"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " von 9"
 msgstr " von 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "[0;0] Punktversatz"
 msgstr "[0;0] Punktversatz"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "WARNUNG:\x0aCrash Erkennung\x0adeaktiviert im\x0aStealth Modus"
 msgstr "WARNUNG:\x0aCrash Erkennung\x0adeaktiviert im\x0aStealth Modus"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Abbruch"
 msgstr ">Abbruch"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Z Anpassen:"
 msgstr "Z Anpassen:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Alles richtig    "
 msgstr "Alles richtig    "
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "und Knopf druecken"
 msgstr "und Knopf druecken"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "Sind linke+rechte Z- Schlitten ganz oben?"
 msgstr "Sind linke+rechte Z- Schlitten ganz oben?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr "Startposition"
 msgstr "Startposition"
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "AutoLaden Filament"
 msgstr "AutoLaden Filament"
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Automatisches Laden Filament nur bei eingeschaltetem Fil. sensor verfuegbar..."
 msgstr "Automatisches Laden Filament nur bei eingeschaltetem Fil. sensor verfuegbar..."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..."
 msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Achsenlaenge"
 msgstr "Achsenlaenge"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Achse"
 msgstr "Achse"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Bett / Heizung"
 msgstr "Bett / Heizung"
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Bett aufwaermen"
 msgstr "Bett aufwaermen"
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Ausgleich Bett ok"
 msgstr "Ausgleich Bett ok"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Riementest       "
 msgstr "Riementest       "
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Stromausfall! Druck wiederherstellen?"
 msgstr "Stromausfall! Druck wiederherstellen?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Kalibriere Start"
 msgstr "Kalibriere Start"
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Kalibrierung XYZ"
 msgstr "Kalibrierung XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Kalibrierung Z"
 msgstr "Kalibrierung Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Kalibrieren"
 msgstr "Kalibrieren"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "XYZ Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
 msgstr "XYZ Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Kalibrierung Z"
 msgstr "Kalibrierung Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Z Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
 msgstr "Z Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr "Kalibrierung"
 msgstr "Kalibrierung"
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Abbruch"
 msgstr "Abbruch"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "SD Karte entfernt"
 msgstr "SD Karte entfernt"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Falsche Farbe"
 msgstr "Falsche Farbe"
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Abkuehlen"
 msgstr "Abkuehlen"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Gewaehlte Sprache kopieren?"
 msgstr "Gewaehlte Sprache kopieren?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr "Crash Erk."
 msgstr "Crash Erk."
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Waehlen Sie ein Filament fuer Erste Schichtkalibrierung aus und waehlen Sie es im On-Screen-Menu aus."
 msgstr "Waehlen Sie ein Filament fuer Erste Schichtkalibrierung aus und waehlen Sie es im On-Screen-Menu aus."
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Crash erkannt."
 msgstr "Crash erkannt."
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Crash erkannt. Druck fortfuehren?"
 msgstr "Crash erkannt. Druck fortfuehren?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr ""
 msgstr ""
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Aktuelles"
 msgstr "Aktuelles"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Datum:"
 msgstr "Datum:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Motoren aus"
 msgstr "Motoren aus"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Moechten Sie den letzten Schritt wiederholen, um den Abstand zwischen Duese und Druckbett neu einzustellen?"
 msgstr "Moechten Sie den letzten Schritt wiederholen, um den Abstand zwischen Duese und Druckbett neu einzustellen?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "E-Korrektur:"
 msgstr "E-Korrektur:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "werfe Filament aus"
 msgstr "werfe Filament aus"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Ende nicht getroffen"
 msgstr "Ende nicht getroffen"
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr "Endanschlag"
 msgstr "Endanschlag"
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr "Endschalter"
 msgstr "Endschalter"
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Fehler - statischer Speicher wurde ueberschrieben"
 msgstr "Fehler - statischer Speicher wurde ueberschrieben"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Schneide filament"
 msgstr "Schneide filament"
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen."
 msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr "FEHLER:"
 msgstr "FEHLER:"
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "Extruder Luefter:"
 msgstr "Extruder Luefter:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr "Extruder Info"
 msgstr "Extruder Info"
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "MMU-Fehler"
 msgstr "MMU-Fehler"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "F. autoladen"
 msgstr "F. autoladen"
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Fehlerstatistik"
 msgstr "Fehlerstatistik"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Lueftertest"
 msgstr "Lueftertest"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Luefter Chk."
 msgstr "Luefter Chk."
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament extrudiert mit richtiger Farbe?"
 msgstr "Filament extrudiert mit richtiger Farbe?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Fil. nicht geladen"
 msgstr "Fil. nicht geladen"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Filamentsensor"
 msgstr "Filamentsensor"
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Filament benutzt"
 msgstr "Filament benutzt"
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Druckzeit"
 msgstr "Druckzeit"
 
 
@@ -460,13 +475,8 @@ msgstr "Druckzeit"
 msgid "FS Action"
 msgid "FS Action"
 msgstr "FS Aktion"
 msgstr "FS Aktion"
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS v0.4 oder neuer"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "Datei unvollstaendig Trotzdem fortfahren?"
 msgstr "Datei unvollstaendig Trotzdem fortfahren?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Erste-Schicht Kal."
 msgstr "Erste-Schicht Kal."
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Zunaechst fuehre ich den Selbsttest durch, um die haeufigsten Probleme beim Zusammenbau zu ueberpruefen."
 msgstr "Zunaechst fuehre ich den Selbsttest durch, um die haeufigsten Probleme beim Zusammenbau zu ueberpruefen."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU."
 msgstr "Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU."
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Durchfluss"
 msgstr "Durchfluss"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Vorderer Luefter?"
 msgstr "Vorderer Luefter?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Vorne [um]"
 msgstr "Vorne [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Vorderer/linke Luefter"
 msgstr "Vorderer/linke Luefter"
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Heizung/Thermistor"
 msgstr "Heizung/Thermistor"
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Heizung durch Sicherheitstimer deaktiviert."
 msgstr "Heizung durch Sicherheitstimer deaktiviert."
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Aufwaermen"
 msgstr "Aufwaermen"
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Hallo, ich bin Ihr Original Prusa i3 Drucker. Moechten Sie, dass ich Sie durch den Einrich- tungsablauf fuehre?"
 msgstr "Hallo, ich bin Ihr Original Prusa i3 Drucker. Moechten Sie, dass ich Sie durch den Einrich- tungsablauf fuehre?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Filament-Wechsel"
 msgstr "Filament-Wechsel"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Wechsel erfolgr.!"
 msgstr "Wechsel erfolgr.!"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Wechsel ok?"
 msgstr "Wechsel ok?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Pruefe Bett "
 msgstr "Pruefe Bett "
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Pruefe Endschalter"
 msgstr "Pruefe Endschalter"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Pruefe Duese  "
 msgstr "Pruefe Duese  "
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Pruefe Sensoren "
 msgstr "Pruefe Sensoren "
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Pruefe X Achse "
 msgstr "Pruefe X Achse "
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Pruefe Y Achse "
 msgstr "Pruefe Y Achse "
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Pruefe Z Achse "
 msgstr "Pruefe Z Achse "
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Ich werde jetzt die XYZ-Kalibrierung durchfuehren. Es wird ca. 12 Minuten dauern."
 msgstr "Ich werde jetzt die XYZ-Kalibrierung durchfuehren. Es wird ca. 12 Minuten dauern."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Ich werde jetzt die Z Kalibrierung durchfuehren."
 msgstr "Ich werde jetzt die Z Kalibrierung durchfuehren."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Infoanzeige"
 msgstr "Infoanzeige"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Filament einlegen"
 msgstr "Filament einlegen"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Ist das Filament geladen?"
 msgstr "Ist das Filament geladen?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Letzte Druckfehler"
 msgstr "Letzte Druckfehler"
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Wenn Sie zusaetzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche."
 msgstr "Wenn Sie zusaetzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche."
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Linker Luefter?"
 msgstr "Linker Luefter?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Links"
 msgstr "Links"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Links [um]"
 msgstr "Links [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Lineare Korrektur"
 msgstr "Lineare Korrektur"
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Z einstellen"
 msgstr "Z einstellen"
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Stecken Sie das Filament (nicht laden) in den Extruder und druecken Sie dann den Knopf."
 msgstr "Stecken Sie das Filament (nicht laden) in den Extruder und druecken Sie dann den Knopf."
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Filament laden"
 msgstr "Filament laden"
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Lade Farbe"
 msgstr "Lade Farbe"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Filament laedt"
 msgstr "Filament laedt"
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Lose Riemenscheibe"
 msgstr "Lose Riemenscheibe"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "In Druckduese laden"
 msgstr "In Druckduese laden"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Messen der Referenzhoehe des Kalibrierpunktes"
 msgstr "Messen der Referenzhoehe des Kalibrierpunktes"
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr "MeshBett Ausgleich"
 msgstr "MeshBett Ausgleich"
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Temperatur wiederherstellen..."
 msgstr "MMU OK. Temperatur wiederherstellen..."
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Schraeglauf"
 msgstr "Schraeglauf"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr "Modus"
 msgstr "Modus"
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr "MK3-Firmware am MK3S-Drucker erkannt"
 msgstr "MK3-Firmware am MK3S-Drucker erkannt"
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Hohe leist"
 msgstr "Hohe leist"
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU2 verbunden"
 msgstr "MMU2 verbunden"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Achse bewegen"
 msgstr "Achse bewegen"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Bewege X"
 msgstr "Bewege X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Bewege Y"
 msgstr "Bewege Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Bewege Z"
 msgstr "Bewege Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Keine Bewegung."
 msgstr "Keine Bewegung."
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "Keine SD Karte"
 msgstr "Keine SD Karte"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr "Nein"
 msgstr "Nein"
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "Nicht angeschlossen"
 msgstr "Nicht angeschlossen"
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Dreht sich nicht"
 msgstr "Dreht sich nicht"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Jetzt werde ich den Abstand zwischen Duesenspitze und Druckbett kalibrieren."
 msgstr "Jetzt werde ich den Abstand zwischen Duesenspitze und Druckbett kalibrieren."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Jetzt werde ich die Duese fuer PLA vorheizen."
 msgstr "Jetzt werde ich die Duese fuer PLA vorheizen."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Duese"
 msgstr "Duese"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Alte Einstellungen gefunden. Standard PID, E-Steps u.s.w. werden gesetzt."
 msgstr "Alte Einstellungen gefunden. Standard PID, E-Steps u.s.w. werden gesetzt."
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Testdruck jetzt von Stahlblech entfernen."
 msgstr "Testdruck jetzt von Stahlblech entfernen."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "Duesevent."
 msgstr "Duesevent."
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Druck pausieren"
 msgstr "Druck pausieren"
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "PID Kalib. fertig"
 msgstr "PID Kalib. fertig"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "PID Kalibrierung"
 msgstr "PID Kalibrierung"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Legen Sie ein Blatt Papier unter die Duese waehrend der Kalibrierung der ersten 4 Punkte. Wenn die Duese das Papier erfasst, den Drucker sofort ausschalten."
 msgstr "Legen Sie ein Blatt Papier unter die Duese waehrend der Kalibrierung der ersten 4 Punkte. Wenn die Duese das Papier erfasst, den Drucker sofort ausschalten."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf."
 msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf."
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber."
 msgstr "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Bitte pruefe:"
 msgstr "Bitte pruefe:"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Bitte lesen Sie unser Handbuch und beheben Sie das Problem. Fahren Sie dann mit dem Assistenten fort, indem Sie den Drucker neu starten."
 msgstr "Bitte lesen Sie unser Handbuch und beheben Sie das Problem. Fahren Sie dann mit dem Assistenten fort, indem Sie den Drucker neu starten."
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Bitte Spannrolle oeffnen und Fila- ment von Hand entfernen"
 msgstr "Bitte Spannrolle oeffnen und Fila- ment von Hand entfernen"
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Bitte entfernen Sie das Stahlblech vom Heizbett."
 msgstr "Bitte entfernen Sie das Stahlblech vom Heizbett."
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren."
 msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren."
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Bitte warten"
 msgstr "Bitte warten"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Bitte zuerst Transportsicherungen entfernen."
 msgstr "Bitte zuerst Transportsicherungen entfernen."
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Duese vorheizen!"
 msgstr "Duese vorheizen!"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Vorheizen"
 msgstr "Vorheizen"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Bitte aktualisieren."
 msgstr "Bitte aktualisieren."
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
 msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr ""
 msgstr ""
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Druck abgebrochen"
 msgstr "Druck abgebrochen"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Heizen zum Laden"
 msgstr "Heizen zum Laden"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Heizen zum Entladen"
 msgstr "Heizen zum Entladen"
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "Druckvent.:"
 msgstr "Druckvent.:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Drucken von SD"
 msgstr "Drucken von SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "Knopf druecken zum"
 msgstr "Knopf druecken zum"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "Druckvent."
 msgstr "Druckvent."
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Bitte legen Sie das Filament in den Extruder ein und druecken Sie dann den Knopf, um es zu laden."
 msgstr "Bitte legen Sie das Filament in den Extruder ein und druecken Sie dann den Knopf, um es zu laden."
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Bitte stecken Sie das Filament in den ersten Schlauch der MMU und druecken Sie dann den Knopf, um es zu laden."
 msgstr "Bitte stecken Sie das Filament in den ersten Schlauch der MMU und druecken Sie dann den Knopf, um es zu laden."
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Bitte laden Sie zuerst das Filament."
 msgstr "Bitte laden Sie zuerst das Filament."
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Hinten [um]"
 msgstr "Hinten [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal."
 msgstr "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal."
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "Bitte IR Sensor Verbindungen ueber- pruefen und Filament entladen ist."
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Druck wiederherst   "
 msgstr "Druck wiederherst   "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr "Reset XYZ Kalibr."
 msgstr "Reset XYZ Kalibr."
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr "Ruecksetzen"
 msgstr "Ruecksetzen"
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Druck fortsetzen"
 msgstr "Druck fortsetzen"
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Druck fortgesetzt"
 msgstr "Druck fortgesetzt"
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Rechts [um]"
 msgstr "Rechts [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?"
 msgstr "Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Rechts"
 msgstr "Rechts"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Suche Bett Kalibrierpunkt"
 msgstr "Suche Bett Kalibrierpunkt"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Waehle Sprache"
 msgstr "Waehle Sprache"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr "Selbsttest OK"
 msgstr "Selbsttest OK"
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Selbsttest start "
 msgstr "Selbsttest start "
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr "Selbsttest       "
 msgstr "Selbsttest       "
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Selbsttest Fehler!"
 msgstr "Selbsttest Fehler!"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Selbsttest Error "
 msgstr "Selbsttest Error "
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Selbsttest im Gang, um die genaue Rueck- kehr zum Nullpunkt ohne Sensor zu kalibrieren"
 msgstr "Selbsttest im Gang, um die genaue Rueck- kehr zum Nullpunkt ohne Sensor zu kalibrieren"
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht."
 msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht."
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Temp. einstellen:"
 msgstr "Temp. einstellen:"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Einstellungen"
 msgstr "Einstellungen"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Endschalter Status"
 msgstr "Endschalter Status"
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Sensorstatus"
 msgstr "Sensorstatus"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100."
 msgstr "Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100."
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Zeit"
 msgstr "Zeit"
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Schwer.Schr:"
 msgstr "Schwer.Schr:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr ""
 msgstr ""
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Sortiere Dateien"
 msgstr "Sortiere Dateien"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Laut"
 msgstr "Laut"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Leicht.Schr:"
 msgstr "Leicht.Schr:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..."
 msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "Einmal"
 msgstr "Einmal"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Geschwindigkeit"
 msgstr "Geschwindigkeit"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Dreht sich"
 msgstr "Dreht sich"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Stabile Umgebungs- temperatur 21-26C und feste Stand- flaeche erforderlich"
 msgstr "Stabile Umgebungs- temperatur 21-26C und feste Stand- flaeche erforderlich"
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Statistiken "
 msgstr "Statistiken "
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "GESTOPPT."
 msgstr "GESTOPPT."
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Ausgetauscht"
 msgstr "Ausgetauscht"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Filament auswaehlen:"
 msgstr "Filament auswaehlen:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Temp Kalib."
 msgstr "Temp Kalib."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Waehlen Sie die Temperatur, die zu Ihrem Material passt."
 msgstr "Waehlen Sie die Temperatur, die zu Ihrem Material passt."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Temp. kalibrieren"
 msgstr "Temp. kalibrieren"
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Temperaturkalibrierung fehlgeschlagen"
 msgstr "Temperaturkalibrierung fehlgeschlagen"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "Temp.kalibrierung ist fertig + aktiv. Temp.kalibrierung kann ausgeschaltet werden im Menu Einstellungen -> Temp.kal."
 msgstr "Temp.kalibrierung ist fertig + aktiv. Temp.kalibrierung kann ausgeschaltet werden im Menu Einstellungen -> Temp.kal."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Sensor ueberprueft, entladen Sie jetzt das Filament."
 msgstr "Sensor ueberprueft, entladen Sie jetzt das Filament."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr "Temperatur"
 msgstr "Temperatur"
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr "Temperaturen"
 msgstr "Temperaturen"
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Es ist noch not- wendig die Z- Kalibrierung aus- zufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
 msgstr "Es ist noch not- wendig die Z- Kalibrierung aus- zufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Gesamtes Filament"
 msgstr "Gesamtes Filament"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Gesamte Druckzeit"
 msgstr "Gesamte Druckzeit"
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Feineinstellung"
 msgstr "Feineinstellung"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Gesamte Fehler"
 msgstr "Gesamte Fehler"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "Filament laden"
 msgstr "Filament laden"
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "Filament entladen"
 msgstr "Filament entladen"
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr "Gesamt"
 msgstr "Gesamt"
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Beim Druck benutzt"
 msgstr "Beim Druck benutzt"
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Spannungen"
 msgstr "Spannungen"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "unbekannt"
 msgstr "unbekannt"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Warte auf Benutzer.."
 msgstr "Warte auf Benutzer.."
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Warten bis Heizung und Bett abgekuehlt sind"
 msgstr "Warten bis Heizung und Bett abgekuehlt sind"
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "Warten, bis PINDA- Sonde abgekuehlt ist"
 msgstr "Warten, bis PINDA- Sonde abgekuehlt ist"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Entladen Sie das Filament 1, wenn er aus dem hinteren MMU-Rohr herausragt. Verwenden Sie den Auswurf, wenn er im Rohr versteckt ist."
 msgstr "Entladen Sie das Filament 1, wenn er aus dem hinteren MMU-Rohr herausragt. Verwenden Sie den Auswurf, wenn er im Rohr versteckt ist."
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Warnung: Druckertyp und Platinentyp wurden beide geaendert."
 msgstr "Warnung: Druckertyp und Platinentyp wurden beide geaendert."
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Warnung: Platinentyp wurde geaendert."
 msgstr "Warnung: Platinentyp wurde geaendert."
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Warnung: Druckertyp wurde geaendert."
 msgstr "Warnung: Druckertyp wurde geaendert."
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "Konnten Sie das Filament entnehmen?"
 msgstr "Konnten Sie das Filament entnehmen?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Verdrahtungsfehler"
 msgstr "Verdrahtungsfehler"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr "Assistent"
 msgstr "Assistent"
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "XYZ Kal. Details"
 msgstr "XYZ Kal. Details"
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Sie koennen den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent"
 msgstr "Sie koennen den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "XYZ Kalibrierung in Ordnung. Schraeglauf wird automatisch korrigiert."
 msgstr "XYZ Kalibrierung in Ordnung. Schraeglauf wird automatisch korrigiert."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg."
 msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg."
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr "Verzoegerung"
 msgstr "Verzoegerung"
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "X-Korrektur:"
 msgstr "X-Korrektur:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glueckwunsch!"
 msgstr "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glueckwunsch!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichbar."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichbar."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Alle laden"
 msgstr "Alle laden"
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Y Entfernung vom Min"
 msgstr "Y Entfernung vom Min"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "Der Drucker beginnt mit dem Drucken einer Zickzacklinie. Drehen Sie den Knopf, bis Sie die optimale Hoehe erreicht haben. Ueberpruefen Sie die Bilder im Handbuch (Kapitel Kalibrierung)."
 msgstr "Der Drucker beginnt mit dem Drucken einer Zickzacklinie. Drehen Sie den Knopf, bis Sie die optimale Hoehe erreicht haben. Ueberpruefen Sie die Bilder im Handbuch (Kapitel Kalibrierung)."
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut."
 msgstr "Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Y-Korrektur:"
 msgstr "Y-Korrektur:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "Zurueck"
 msgstr "Zurueck"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Kontrolle"
 msgstr "Kontrolle"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Falschtriggerung"
 msgstr "Falschtriggerung"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr ""
 msgstr ""
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "HW Einstellungen"
 msgstr "HW Einstellungen"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr ""
 msgstr ""
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr "Gitter"
 msgstr "Gitter"
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr "MeshBett Ausgleich"
 msgstr "MeshBett Ausgleich"
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "MK3S-Firmware auf MK3-Drucker erkannt"
 msgstr "MK3S-Firmware auf MK3-Drucker erkannt"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "MMU Modus"
 msgstr "MMU Modus"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Moduswechsel erfolgt..."
 msgstr "Moduswechsel erfolgt..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "G-Code ist fuer eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen."
 msgstr "G-Code ist fuer eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Heizen zum Schnitt"
 msgstr "Heizen zum Schnitt"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Heizen zum Auswurf"
 msgstr "Heizen zum Auswurf"
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen."
 msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Umbenennen"
 msgstr "Umbenennen"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Auswahl"
 msgstr "Auswahl"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Sensor Info"
 msgstr "Sensor Info"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr ""
 msgstr ""
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Stahlbleche"
 msgstr "Stahlbleche"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Z-Korrektur:"
 msgstr "Z-Korrektur:"
 
 

+ 212 - 197
lang/po/Firmware_es.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es\n"
 "Language: es\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Wed May 13 17:41:49 CEST 2020\n"
-"PO-Revision-Date: Wed May 13 17:41:49 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:24:02 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:24:02 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -20,16 +20,31 @@ msgstr ""
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgstr "[%.7s]Ajuste Z\x0aAjustado, continuar\x0ao empezar de nuevo?\x0a%cContinuar%cRepetir"
 msgstr "[%.7s]Ajuste Z\x0aAjustado, continuar\x0ao empezar de nuevo?\x0a%cContinuar%cRepetir"
 
 
-# MSG_03_OR_OLDER c=18
+# MSG_IR_03_OR_OLDER c=18
 #: messages.c:144
 #: messages.c:144
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 o mayor"
 msgstr " 0.3 o mayor"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS 0.3 o mayor"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 o mas nueva"
 msgstr " 0.4 o mas nueva"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS 0.4 o mas nueva"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "estado desconocido"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " de 9"
 msgstr " de 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "[0;0] punto offset"
 msgstr "[0;0] punto offset"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "ATENCION:\x0aDec. choque\x0adesactivada en\x0aModo silencio"
 msgstr "ATENCION:\x0aDec. choque\x0adesactivada en\x0aModo silencio"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Cancelar"
 msgstr ">Cancelar"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Ajustar-Z:"
 msgstr "Ajustar-Z:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Todo bien"
 msgstr "Todo bien"
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "Haz clic"
 msgstr "Haz clic"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "Carros Z izq./der. estan arriba maximo?"
 msgstr "Carros Z izq./der. estan arriba maximo?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr "Llevar al origen"
 msgstr "Llevar al origen"
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "Carga auto. filam."
 msgstr "Carga auto. filam."
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "La carga automatica solo funciona si el sensor de filamento esta activado..."
 msgstr "La carga automatica solo funciona si el sensor de filamento esta activado..."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "La carga automatica esta activada, pulse el dial e inserte el filamento..."
 msgstr "La carga automatica esta activada, pulse el dial e inserte el filamento..."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Longitud del eje"
 msgstr "Longitud del eje"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Eje"
 msgstr "Eje"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Base / Calentador"
 msgstr "Base / Calentador"
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Calentando Base"
 msgstr "Calentando Base"
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Corr. de la cama"
 msgstr "Corr. de la cama"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Test cinturon    "
 msgstr "Test cinturon    "
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Se fue la luz. ?Reanudar la impresion?"
 msgstr "Se fue la luz. ?Reanudar la impresion?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Calibrando posicion inicial"
 msgstr "Calibrando posicion inicial"
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Calibrar XYZ"
 msgstr "Calibrar XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Calibrar Z"
 msgstr "Calibrar Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Calibrar"
 msgstr "Calibrar"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibrando XYZ. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic."
 msgstr "Calibrando XYZ. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Calibrando Z"
 msgstr "Calibrando Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibrando Z. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic."
 msgstr "Calibrando Z. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr "Calibracion"
 msgstr "Calibracion"
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Cancelar"
 msgstr "Cancelar"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "Tarjeta retirada"
 msgstr "Tarjeta retirada"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Color no homogeneo"
 msgstr "Color no homogeneo"
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Enfriar"
 msgstr "Enfriar"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Copiar idioma seleccionado?"
 msgstr "Copiar idioma seleccionado?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr "Det. choque"
 msgstr "Det. choque"
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Escoge un filamento para la Calibracion de la Primera Capa y seleccionalo en el menu en pantalla."
 msgstr "Escoge un filamento para la Calibracion de la Primera Capa y seleccionalo en el menu en pantalla."
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Choque detectado."
 msgstr "Choque detectado."
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Choque detectado. Continuar impresion?"
 msgstr "Choque detectado. Continuar impresion?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr "Choque"
 msgstr "Choque"
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Actual"
 msgstr "Actual"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Fecha:"
 msgstr "Fecha:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Apagar motores"
 msgstr "Apagar motores"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Quieres repetir el ultimo paso para reajustar la distancia boquilla-base?"
 msgstr "Quieres repetir el ultimo paso para reajustar la distancia boquilla-base?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "Corregir-E:"
 msgstr "Corregir-E:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "Expulsando filamento"
 msgstr "Expulsando filamento"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Endstop no alcanzado"
 msgstr "Endstop no alcanzado"
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr ""
 msgstr ""
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Error - se ha sobre-escrito la memoria estatica"
 msgstr "Error - se ha sobre-escrito la memoria estatica"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Corte de filament"
 msgstr "Corte de filament"
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion."
 msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "Vent.extrusor:"
 msgstr "Vent.extrusor:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr "Info. del extrusor"
 msgstr "Info. del extrusor"
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr "Extruir"
 msgstr "Extruir"
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "Estadistica de fallos MMU"
 msgstr "Estadistica de fallos MMU"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "Autocarg.fil."
 msgstr "Autocarg.fil."
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Estadistica de fallos"
 msgstr "Estadistica de fallos"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Test ventiladores"
 msgstr "Test ventiladores"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Comprob.vent"
 msgstr "Comprob.vent"
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Es nitido el color nuevo?"
 msgstr "Es nitido el color nuevo?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Fil. no introducido"
 msgstr "Fil. no introducido"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Sensor de filamento"
 msgstr "Sensor de filamento"
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Filamento usado"
 msgstr "Filamento usado"
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Tiempo de imp.:"
 msgstr "Tiempo de imp.:"
 
 
@@ -460,13 +475,8 @@ msgstr "Tiempo de imp.:"
 msgid "FS Action"
 msgid "FS Action"
 msgstr "FS accion"
 msgstr "FS accion"
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS v0.4 o +nueva"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "Archivo incompleto. ?Continuar de todos modos?"
 msgstr "Archivo incompleto. ?Continuar de todos modos?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Cal. primera cap."
 msgstr "Cal. primera cap."
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Primero, hare el Selftest para comprobar los problemas de montaje mas comunes."
 msgstr "Primero, hare el Selftest para comprobar los problemas de montaje mas comunes."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Corrige el problema y pulsa el boton en la unidad MMU."
 msgstr "Corrige el problema y pulsa el boton en la unidad MMU."
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Flujo"
 msgstr "Flujo"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Vent. frontal?"
 msgstr "Vent. frontal?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Frontal [um]"
 msgstr "Frontal [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Ventiladores frontal/izquierdo"
 msgstr "Ventiladores frontal/izquierdo"
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Calentador/Termistor"
 msgstr "Calentador/Termistor"
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Calentadores desactivados por el temporizador de seguridad."
 msgstr "Calentadores desactivados por el temporizador de seguridad."
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Calentando..."
 msgstr "Calentando..."
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Hola, soy tu impresora Original Prusa i3. Quieres que te guie a traves de la configuracion?"
 msgstr "Hola, soy tu impresora Original Prusa i3. Quieres que te guie a traves de la configuracion?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Cambiar filamento"
 msgstr "Cambiar filamento"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Cambio correcto"
 msgstr "Cambio correcto"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Cambio correcto?"
 msgstr "Cambio correcto?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Control base cal."
 msgstr "Control base cal."
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Control endstops"
 msgstr "Control endstops"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Control fusor"
 msgstr "Control fusor"
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Comprobando sensores"
 msgstr "Comprobando sensores"
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Control sensor X"
 msgstr "Control sensor X"
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Control sensor Y"
 msgstr "Control sensor Y"
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Control sensor Z"
 msgstr "Control sensor Z"
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr "Filamento"
 msgstr "Filamento"
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Hare la calibracion XYZ. Tardara 12 min. aproximadamente."
 msgstr "Hare la calibracion XYZ. Tardara 12 min. aproximadamente."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Voy a hacer Calibracion Z ahora."
 msgstr "Voy a hacer Calibracion Z ahora."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Monitorizar"
 msgstr "Monitorizar"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Introducir filamento"
 msgstr "Introducir filamento"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Esta el filamento cargado?"
 msgstr "Esta el filamento cargado?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Ultimas impresiones fallidas"
 msgstr "Ultimas impresiones fallidas"
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Si tienes planchas de acero adicionales, calibra sus ajustes en Ajustes - Ajustes HW - Planchas acero."
 msgstr "Si tienes planchas de acero adicionales, calibra sus ajustes en Ajustes - Ajustes HW - Planchas acero."
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Vent. izquierdo?"
 msgstr "Vent. izquierdo?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Izquierda"
 msgstr "Izquierda"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Izquierda [um]"
 msgstr "Izquierda [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Correccion de Linealidad"
 msgstr "Correccion de Linealidad"
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Micropaso Eje Z"
 msgstr "Micropaso Eje Z"
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Inserte el filamento (no lo cargue) en el extrusor y luego presione el dial."
 msgstr "Inserte el filamento (no lo cargue) en el extrusor y luego presione el dial."
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Introducir filam."
 msgstr "Introducir filam."
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Cambiando color"
 msgstr "Cambiando color"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Introduciendo filam."
 msgstr "Introduciendo filam."
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Polea suelta"
 msgstr "Polea suelta"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "Cargar a la boquilla"
 msgstr "Cargar a la boquilla"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Midiendo altura del punto de calibracion"
 msgstr "Midiendo altura del punto de calibracion"
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr "Nivelacion Mesh Level"
 msgstr "Nivelacion Mesh Level"
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Restaurando temperatura..."
 msgstr "MMU OK. Restaurando temperatura..."
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Desviacion med:"
 msgstr "Desviacion med:"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr "Modo"
 msgstr "Modo"
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr "Firmware MK3 detectado en impresora MK3S"
 msgstr "Firmware MK3 detectado en impresora MK3S"
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Rend.pleno"
 msgstr "Rend.pleno"
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU2 conectado"
 msgstr "MMU2 conectado"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Mover ejes"
 msgstr "Mover ejes"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Mover X"
 msgstr "Mover X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Mover Y"
 msgstr "Mover Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Mover Z"
 msgstr "Mover Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Sin movimiento"
 msgstr "Sin movimiento"
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "No hay tarjeta SD"
 msgstr "No hay tarjeta SD"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "No hay conexion "
 msgstr "No hay conexion "
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Ventilador no gira"
 msgstr "Ventilador no gira"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Voy a calibrar la distancia entre la punta de la boquilla y la superficie de la base."
 msgstr "Voy a calibrar la distancia entre la punta de la boquilla y la superficie de la base."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Ahora precalentare la boquilla para PLA."
 msgstr "Ahora precalentare la boquilla para PLA."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Boquilla"
 msgstr "Boquilla"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Se han encontrado ajustes anteriores. Se ajustara el PID, los pasos del extrusor, etc"
 msgstr "Se han encontrado ajustes anteriores. Se ajustara el PID, los pasos del extrusor, etc"
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Ahora retira la prueba de la lamina de acero."
 msgstr "Ahora retira la prueba de la lamina de acero."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "Vent. capa"
 msgstr "Vent. capa"
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Pausar impresion"
 msgstr "Pausar impresion"
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "Cal. PID terminada"
 msgstr "Cal. PID terminada"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "Calibracion PID"
 msgstr "Calibracion PID"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Colocar una hoja de papel sobre la superficie de impresion durante la calibracion de los primeros 4 puntos. Si la boquilla mueve el papel, apagar impresora inmediatamente."
 msgstr "Colocar una hoja de papel sobre la superficie de impresion durante la calibracion de los primeros 4 puntos. Si la boquilla mueve el papel, apagar impresora inmediatamente."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Limpia la superficie de la base, por favor, y haz clic"
 msgstr "Limpia la superficie de la base, por favor, y haz clic"
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Limpia boquilla para calibracion. Click cuando acabes."
 msgstr "Limpia boquilla para calibracion. Click cuando acabes."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Controla :"
 msgstr "Controla :"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Lee el manual y resuelve el problema. Despues, reinicia la impresora y continua con el Wizard"
 msgstr "Lee el manual y resuelve el problema. Despues, reinicia la impresora y continua con el Wizard"
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Por favor abate el rodillo de empuje (idler) y retira el filamento manualmente."
 msgstr "Por favor abate el rodillo de empuje (idler) y retira el filamento manualmente."
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Por favor retire la chapa de acero de la base calefactable."
 msgstr "Por favor retire la chapa de acero de la base calefactable."
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Por favor realiza la calibracion XYZ primero."
 msgstr "Por favor realiza la calibracion XYZ primero."
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Por Favor Espere"
 msgstr "Por Favor Espere"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Por favor retira los soportes de envio primero."
 msgstr "Por favor retira los soportes de envio primero."
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Precalienta extrusor"
 msgstr "Precalienta extrusor"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Precalentar"
 msgstr "Precalentar"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Actualize por favor"
 msgstr "Actualize por favor"
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Pulsa el dial para precalentar la boquilla y continue."
 msgstr "Pulsa el dial para precalentar la boquilla y continue."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr "Pausa"
 msgstr "Pausa"
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Impresion cancelada"
 msgstr "Impresion cancelada"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Precalent. cargar"
 msgstr "Precalent. cargar"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Precalent. descargar"
 msgstr "Precalent. descargar"
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "Vent.fusor:"
 msgstr "Vent.fusor:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Menu tarjeta SD"
 msgstr "Menu tarjeta SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "Pulsa el dial"
 msgstr "Pulsa el dial"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "Vent. extr"
 msgstr "Vent. extr"
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Por favor, coloca el filamento en el extrusor, luego presiona el dial para cargarlo."
 msgstr "Por favor, coloca el filamento en el extrusor, luego presiona el dial para cargarlo."
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Por favor, coloca el filamento en el primer tubo de la MMU, luego pulsa el dial para cargarlo."
 msgstr "Por favor, coloca el filamento en el primer tubo de la MMU, luego pulsa el dial para cargarlo."
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Por favor, cargar primero el filamento. "
 msgstr "Por favor, cargar primero el filamento. "
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr "prusa3d.es"
 msgstr "prusa3d.es"
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Trasera [um]"
 msgstr "Trasera [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Primero descargue el filamento, luego repita esta accion."
 msgstr "Primero descargue el filamento, luego repita esta accion."
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "Por favor comprueba la conexion del IR sensor y filamento esta descargado."
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Recuper. impresion  "
 msgstr "Recuper. impresion  "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr ""
 msgstr ""
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Reanudar impres."
 msgstr "Reanudar impres."
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Continuan. impresion"
 msgstr "Continuan. impresion"
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Derecha [um]"
 msgstr "Derecha [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr "Puerto RPi"
 msgstr "Puerto RPi"
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Ejecutar el Wizard borrara los valores de calibracion actuales y comenzara de nuevo. Continuar?"
 msgstr "Ejecutar el Wizard borrara los valores de calibracion actuales y comenzara de nuevo. Continuar?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Derecha"
 msgstr "Derecha"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Buscando punto de calibracion base"
 msgstr "Buscando punto de calibracion base"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Cambiar el idioma"
 msgstr "Cambiar el idioma"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Iniciar Selftest"
 msgstr "Iniciar Selftest"
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Error Selftest !"
 msgstr "Error Selftest !"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Fallo Selftest"
 msgstr "Fallo Selftest"
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Se realizara el auto-test para calibrar con precision la vuelta a la posicion inicial sin sensores."
 msgstr "Se realizara el auto-test para calibrar con precision la vuelta a la posicion inicial sin sensores."
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selecciona la temperatura para precalentar la boquilla que se ajuste a tu material. "
 msgstr "Selecciona la temperatura para precalentar la boquilla que se ajuste a tu material. "
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Establecer temp.:"
 msgstr "Establecer temp.:"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Configuracion"
 msgstr "Configuracion"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Mostrar endstops"
 msgstr "Mostrar endstops"
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Estado del sensor"
 msgstr "Estado del sensor"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. "
 msgstr "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. "
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Fecha"
 msgstr "Fecha"
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Incl.severa:"
 msgstr "Incl.severa:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr "Alfabet"
 msgstr "Alfabet"
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Ordenando archivos"
 msgstr "Ordenando archivos"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Alto"
 msgstr "Alto"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Liger.incl.:"
 msgstr "Liger.incl.:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Problema encontrado, nivelacion Z forzosa ..."
 msgstr "Problema encontrado, nivelacion Z forzosa ..."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "Una vez"
 msgstr "Una vez"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Velocidad"
 msgstr "Velocidad"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Ventilador girando"
 msgstr "Ventilador girando"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Se necesita una temperatura ambiente ente 21 y 26C y un soporte rigido."
 msgstr "Se necesita una temperatura ambiente ente 21 y 26C y un soporte rigido."
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Estadisticas "
 msgstr "Estadisticas "
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "PARADA"
 msgstr "PARADA"
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr "Soporte"
 msgstr "Soporte"
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Intercambiado"
 msgstr "Intercambiado"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Selecciona filamento:"
 msgstr "Selecciona filamento:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Cal. temp."
 msgstr "Cal. temp."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Selecciona la temperatura adecuada a tu material."
 msgstr "Selecciona la temperatura adecuada a tu material."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Calibracion temp."
 msgstr "Calibracion temp."
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Fallo de la calibracion de temperatura"
 msgstr "Fallo de la calibracion de temperatura"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "Calibracion temperatura terminada. Haz clic para continuar."
 msgstr "Calibracion temperatura terminada. Haz clic para continuar."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Sensor verificado, retire el filamento ahora."
 msgstr "Sensor verificado, retire el filamento ahora."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr "Temperatura"
 msgstr "Temperatura"
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr "Temperaturas"
 msgstr "Temperaturas"
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Todavia es necesario hacer una calibracion Z. Por favor siga el manual, capitulo Primeros pasos, seccion Calibracion del flujo."
 msgstr "Todavia es necesario hacer una calibracion Z. Por favor siga el manual, capitulo Primeros pasos, seccion Calibracion del flujo."
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Filamento total"
 msgstr "Filamento total"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Tiempo total"
 msgstr "Tiempo total"
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Ajustar"
 msgstr "Ajustar"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Fallos totales"
 msgstr "Fallos totales"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "para cargar el filamento"
 msgstr "para cargar el filamento"
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "para descargar el filamento"
 msgstr "para descargar el filamento"
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr ""
 msgstr ""
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Usado en impresion"
 msgstr "Usado en impresion"
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Voltajes"
 msgstr "Voltajes"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "desconocido"
 msgstr "desconocido"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Esperando ordenes"
 msgstr "Esperando ordenes"
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Esperando enfriamiento de la base y extrusor."
 msgstr "Esperando enfriamiento de la base y extrusor."
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "Esperando a que se enfrie la sonda PINDA"
 msgstr "Esperando a que se enfrie la sonda PINDA"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Usa unload para retirar el filamento 1 si sobresale por fuera de la parte trasera del tubo MMU. Usa Expulsar si esta escondido dentro del tubo"
 msgstr "Usa unload para retirar el filamento 1 si sobresale por fuera de la parte trasera del tubo MMU. Usa Expulsar si esta escondido dentro del tubo"
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Aviso: tanto el tipo de impresora como el tipo de la placa han cambiado."
 msgstr "Aviso: tanto el tipo de impresora como el tipo de la placa han cambiado."
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Cuidado: el tipo de placa ha cambiado."
 msgstr "Cuidado: el tipo de placa ha cambiado."
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Cuidado: Ha cambiado el tipo de impresora."
 msgstr "Cuidado: Ha cambiado el tipo de impresora."
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "?Se cargocon exito el filamento?"
 msgstr "?Se cargocon exito el filamento?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Error de conexion"
 msgstr "Error de conexion"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr ""
 msgstr ""
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "Detalles cal. XYZ"
 msgstr "Detalles cal. XYZ"
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Siempre puedes acceder al asistente desde Calibracion -> Wizard"
 msgstr "Siempre puedes acceder al asistente desde Calibracion -> Wizard"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Calibracion XYZ correcta. La inclinacion se corregira automaticamente."
 msgstr "Calibracion XYZ correcta. La inclinacion se corregira automaticamente."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Calibracion XYZ correcta. Los ejes X / Y estan ligeramente inclinados. Buen trabajo!"
 msgstr "Calibracion XYZ correcta. Los ejes X / Y estan ligeramente inclinados. Buen trabajo!"
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr "Expirar"
 msgstr "Expirar"
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "Corregir-X:"
 msgstr "Corregir-X:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibracion XYZ ok. Ejes X/Y perpendiculares. Enhorabuena!"
 msgstr "Calibracion XYZ ok. Ejes X/Y perpendiculares. Enhorabuena!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables."
 msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable."
 msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Intr. todos fil."
 msgstr "Intr. todos fil."
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados."
 msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables."
 msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable."
 msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Distancia en Y desde el min"
 msgstr "Distancia en Y desde el min"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "La impresora comenzara a imprimir una linea en zig-zag. Gira el dial hasta que la linea alcance la altura optima. Mira las fotos del manual (Capitulo de calibracion)."
 msgstr "La impresora comenzara a imprimir una linea en zig-zag. Gira el dial hasta que la linea alcance la altura optima. Mira las fotos del manual (Capitulo de calibracion)."
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "La verificacion fallo, retire el filamento e intente nuevamente."
 msgstr "La verificacion fallo, retire el filamento e intente nuevamente."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Corregir-Y:"
 msgstr "Corregir-Y:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "atras"
 msgstr "atras"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Comprobaciones"
 msgstr "Comprobaciones"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Falsa activacion"
 msgstr "Falsa activacion"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr "FINDA:"
 msgstr "FINDA:"
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "Configuracion HW"
 msgstr "Configuracion HW"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr ""
 msgstr ""
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr "Malla"
 msgstr "Malla"
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr "Nivelacion Malla Base"
 msgstr "Nivelacion Malla Base"
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "Firmware MK3S detectado en impresora MK3"
 msgstr "Firmware MK3S detectado en impresora MK3"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "Modo MMU"
 msgstr "Modo MMU"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Cambio de modo progresando ..."
 msgstr "Cambio de modo progresando ..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "Codigo G laminado para nuevo firmware. Por favor actualiza el firmware. Impresion cancelada."
 msgstr "Codigo G laminado para nuevo firmware. Por favor actualiza el firmware. Impresion cancelada."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr "PINDA:"
 msgstr "PINDA:"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Precalent. laminar"
 msgstr "Precalent. laminar"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Precalent. expulsar"
 msgstr "Precalent. expulsar"
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Diametro nozzle Impresora difiere de cod.G. Comprueba los valores en ajustes. Impresion cancelada."
 msgstr "Diametro nozzle Impresora difiere de cod.G. Comprueba los valores en ajustes. Impresion cancelada."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Renombrar"
 msgstr "Renombrar"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Seleccionar"
 msgstr "Seleccionar"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Info sensor"
 msgstr "Info sensor"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr "Asistido"
 msgstr "Asistido"
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Lamina de acero"
 msgstr "Lamina de acero"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Corregir-Z:"
 msgstr "Corregir-Z:"
 
 

+ 212 - 197
lang/po/Firmware_fr.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fr\n"
 "Language: fr\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Wed May 13 17:42:13 CEST 2020\n"
-"PO-Revision-Date: Wed May 13 17:42:13 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:24:37 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:24:37 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -20,16 +20,31 @@ msgstr ""
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgstr "[%.7s]Ajust. du Z\x0aValeur enreg, contin\x0aou depart a zero?\x0a%cContinuer%cReset"
 msgstr "[%.7s]Ajust. du Z\x0aValeur enreg, contin\x0aou depart a zero?\x0a%cContinuer%cReset"
 
 
-# MSG_03_OR_OLDER c=18
+# MSG_IR_03_OR_OLDER c=18
 #: messages.c:144
 #: messages.c:144
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 ou +ancien"
 msgstr " 0.3 ou +ancien"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS v0.3 ou +ancien"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 ou +recent"
 msgstr " 0.4 ou +recent"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS v0.4 ou +recent"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "Etat inconnu"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " de 9"
 msgstr " de 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "Offset point [0;0]"
 msgstr "Offset point [0;0]"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode furtif"
 msgstr "ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode furtif"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Annuler"
 msgstr ">Annuler"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Ajuster Z:"
 msgstr "Ajuster Z:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Tout est correct"
 msgstr "Tout est correct"
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "et appuyez sur le bouton"
 msgstr "et appuyez sur le bouton"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "Z~carriages gauche + droite tout en haut?"
 msgstr "Z~carriages gauche + droite tout en haut?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr "Mise a 0 des axes"
 msgstr "Mise a 0 des axes"
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "Autocharge du fil."
 msgstr "Autocharge du fil."
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Chargement auto du filament uniquement si le capteur de filament est active."
 msgstr "Chargement auto du filament uniquement si le capteur de filament est active."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Chargement auto. du fil. active, appuyez sur le bouton et inserez le fil."
 msgstr "Chargement auto. du fil. active, appuyez sur le bouton et inserez le fil."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Longueur de l'axe"
 msgstr "Longueur de l'axe"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Axe"
 msgstr "Axe"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Lit / Chauffage"
 msgstr "Lit / Chauffage"
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Chauffe du lit"
 msgstr "Chauffe du lit"
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Corr. niveau plateau"
 msgstr "Corr. niveau plateau"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Test de courroie "
 msgstr "Test de courroie "
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Coupure detectee. Reprendre impression?"
 msgstr "Coupure detectee. Reprendre impression?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Calib. mise a 0"
 msgstr "Calib. mise a 0"
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Calibrer XYZ"
 msgstr "Calibrer XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Calibrer Z"
 msgstr "Calibrer Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Calibrer"
 msgstr "Calibrer"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibration de XYZ. Tournez le bouton pour faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait."
 msgstr "Calibration de XYZ. Tournez le bouton pour faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Calibration Z"
 msgstr "Calibration Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibration de Z. Tournez le bouton pour faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait."
 msgstr "Calibration de Z. Tournez le bouton pour faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Annuler"
 msgstr "Annuler"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "Carte retiree"
 msgstr "Carte retiree"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Couleur incorrecte"
 msgstr "Couleur incorrecte"
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Refroidissement"
 msgstr "Refroidissement"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Copier la langue choisie?"
 msgstr "Copier la langue choisie?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr "Detect.crash"
 msgstr "Detect.crash"
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Choisissez un filament pour la Calibration de la Premiere Couche et selectionnez-le depuis le menu a l'ecran."
 msgstr "Choisissez un filament pour la Calibration de la Premiere Couche et selectionnez-le depuis le menu a l'ecran."
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Crash detecte."
 msgstr "Crash detecte."
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Crash detecte. Poursuivre l'impression?"
 msgstr "Crash detecte. Poursuivre l'impression?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr ""
 msgstr ""
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Actuel"
 msgstr "Actuel"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Date:"
 msgstr "Date:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Desactiver moteurs"
 msgstr "Desactiver moteurs"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Voulez-vous refaire l'etape pour reajuster la hauteur entre la buse et le plateau chauffant?"
 msgstr "Voulez-vous refaire l'etape pour reajuster la hauteur entre la buse et le plateau chauffant?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "Correct-E:"
 msgstr "Correct-E:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "Le fil. remonte"
 msgstr "Le fil. remonte"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Butee non atteinte"
 msgstr "Butee non atteinte"
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr "Butee"
 msgstr "Butee"
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr "Butees"
 msgstr "Butees"
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Erreur - la memoire statique a ete ecrasee"
 msgstr "Erreur - la memoire statique a ete ecrasee"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Je coupe filament"
 msgstr "Je coupe filament"
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "ERREUR: Le capteur de filament ne repond pas, verifiez le branchement."
 msgstr "ERREUR: Le capteur de filament ne repond pas, verifiez le branchement."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr "ERREUR:"
 msgstr "ERREUR:"
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "Ventilo extrudeur:"
 msgstr "Ventilo extrudeur:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr "Infos extrudeur"
 msgstr "Infos extrudeur"
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr "Extrudeur"
 msgstr "Extrudeur"
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "Stat. d'echec MMU"
 msgstr "Stat. d'echec MMU"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "F. autocharg."
 msgstr "F. autocharg."
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Stat. d'echec"
 msgstr "Stat. d'echec"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Test du ventilateur"
 msgstr "Test du ventilateur"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Verif vent."
 msgstr "Verif vent."
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament extrude et avec bonne couleur?"
 msgstr "Filament extrude et avec bonne couleur?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Filament non charge"
 msgstr "Filament non charge"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Capteur de filament"
 msgstr "Capteur de filament"
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Filament utilise"
 msgstr "Filament utilise"
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Temps d'impression"
 msgstr "Temps d'impression"
 
 
@@ -460,13 +475,8 @@ msgstr "Temps d'impression"
 msgid "FS Action"
 msgid "FS Action"
 msgstr ""
 msgstr ""
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS v0.4 ou +recent"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "Fichier incomplet. Continuer qd meme?"
 msgstr "Fichier incomplet. Continuer qd meme?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Cal. 1ere couche"
 msgstr "Cal. 1ere couche"
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "D'abord, je vais lancer le Auto-test pour verifier les problemes d'assemblage les plus communs."
 msgstr "D'abord, je vais lancer le Auto-test pour verifier les problemes d'assemblage les plus communs."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Corrigez le probleme et appuyez sur le bouton sur la MMU."
 msgstr "Corrigez le probleme et appuyez sur le bouton sur la MMU."
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Flux"
 msgstr "Flux"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Ventilo impr avant?"
 msgstr "Ventilo impr avant?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Avant [um]"
 msgstr "Avant [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Ventilos avt/gauche"
 msgstr "Ventilos avt/gauche"
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Chauffage/Thermistor"
 msgstr "Chauffage/Thermistor"
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Chauffage desactivee par le compteur de securite."
 msgstr "Chauffage desactivee par le compteur de securite."
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Chauffe"
 msgstr "Chauffe"
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Bonjour, je suis votre imprimante Original Prusa i3. Voulez-vous que je vous guide a travers le processus d'installation?"
 msgstr "Bonjour, je suis votre imprimante Original Prusa i3. Voulez-vous que je vous guide a travers le processus d'installation?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Changer filament"
 msgstr "Changer filament"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Changement reussi!"
 msgstr "Changement reussi!"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Change correctement?"
 msgstr "Change correctement?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Verif. plateau chauf"
 msgstr "Verif. plateau chauf"
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Verification butees"
 msgstr "Verification butees"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Verif. du hotend"
 msgstr "Verif. du hotend"
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Verif. des capteurs"
 msgstr "Verif. des capteurs"
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Verification axe X"
 msgstr "Verification axe X"
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Verification axe Y"
 msgstr "Verification axe Y"
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Verification axe Z"
 msgstr "Verification axe Z"
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Je vais maintenant lancer la calibration XYZ. Cela prendra 12 min environ."
 msgstr "Je vais maintenant lancer la calibration XYZ. Cela prendra 12 min environ."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Je vais maintenant lancer la calibration Z."
 msgstr "Je vais maintenant lancer la calibration Z."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Ecran d'info"
 msgstr "Ecran d'info"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Inserez le filament"
 msgstr "Inserez le filament"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Fil. est-il charge?"
 msgstr "Fil. est-il charge?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Echecs derniere imp."
 msgstr "Echecs derniere imp."
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Si vous avez d'autres feuilles d'acier,  calibrez leurs pre-reglages dans Reglages - Config HW - Plaque en acier."
 msgstr "Si vous avez d'autres feuilles d'acier,  calibrez leurs pre-reglages dans Reglages - Config HW - Plaque en acier."
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Ventilo gauche?"
 msgstr "Ventilo gauche?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Gauche"
 msgstr "Gauche"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Gauche [um]"
 msgstr "Gauche [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Correction lin."
 msgstr "Correction lin."
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Ajuster Z en dir."
 msgstr "Ajuster Z en dir."
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Veuillez inserer le filament ( ne le chargez pas) dans l'extrudeur, puis appuyez sur le bouton."
 msgstr "Veuillez inserer le filament ( ne le chargez pas) dans l'extrudeur, puis appuyez sur le bouton."
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Charger filament"
 msgstr "Charger filament"
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Charg. de la couleur"
 msgstr "Charg. de la couleur"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Chargement du fil."
 msgstr "Chargement du fil."
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Poulie lache"
 msgstr "Poulie lache"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "Charger la buse"
 msgstr "Charger la buse"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Je mesure la hauteur de reference du point de calibrage"
 msgstr "Je mesure la hauteur de reference du point de calibrage"
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr ""
 msgstr ""
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Rechauffage de la buse..."
 msgstr "MMU OK. Rechauffage de la buse..."
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Deviat.mesuree"
 msgstr "Deviat.mesuree"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr ""
 msgstr ""
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr "Firmware MK3 detecte sur imprimante MK3S"
 msgstr "Firmware MK3 detecte sur imprimante MK3S"
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Haute puiss"
 msgstr "Haute puiss"
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU2 connecte"
 msgstr "MMU2 connecte"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr "Moteur"
 msgstr "Moteur"
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Deplacer l'axe"
 msgstr "Deplacer l'axe"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Deplacer X"
 msgstr "Deplacer X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Deplacer Y"
 msgstr "Deplacer Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Deplacer Z"
 msgstr "Deplacer Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Pas de mouvement."
 msgstr "Pas de mouvement."
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "Pas de carte SD"
 msgstr "Pas de carte SD"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr "Non"
 msgstr "Non"
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "Non connecte"
 msgstr "Non connecte"
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Ne tourne pas"
 msgstr "Ne tourne pas"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Maintenant je vais calibrer la distance entre la pointe de la buse et la surface du plateau chauffant."
 msgstr "Maintenant je vais calibrer la distance entre la pointe de la buse et la surface du plateau chauffant."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Maintenant je vais prechauffer la buse pour du PLA."
 msgstr "Maintenant je vais prechauffer la buse pour du PLA."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Buse"
 msgstr "Buse"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront regles"
 msgstr "Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront regles"
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Retirez maintenant l'impression de test de la plaque en acier."
 msgstr "Retirez maintenant l'impression de test de la plaque en acier."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "Vent. buse"
 msgstr "Vent. buse"
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Pause de l'impr."
 msgstr "Pause de l'impr."
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "Calib. PID terminee"
 msgstr "Calib. PID terminee"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "Calibration PID"
 msgstr "Calibration PID"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Placez une feuille de papier sous la buse pendant la calibration des 4 premiers points. Si la buse accroche le papier, eteignez vite l'imprimante."
 msgstr "Placez une feuille de papier sous la buse pendant la calibration des 4 premiers points. Si la buse accroche le papier, eteignez vite l'imprimante."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Nettoyez plateau chauffant en acier et appuyez sur le bouton."
 msgstr "Nettoyez plateau chauffant en acier et appuyez sur le bouton."
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Nettoyez la buse pour la calibration. Cliquez une fois fait."
 msgstr "Nettoyez la buse pour la calibration. Cliquez une fois fait."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Verifiez:"
 msgstr "Verifiez:"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Merci de consulter notre manuel et de corriger le probleme. Poursuivez alors l'assistant en redemarrant l'imprimante."
 msgstr "Merci de consulter notre manuel et de corriger le probleme. Poursuivez alors l'assistant en redemarrant l'imprimante."
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Ouvrez l'idler et retirez le filament manuellement."
 msgstr "Ouvrez l'idler et retirez le filament manuellement."
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Retirez la plaque en acier du plateau chauffant."
 msgstr "Retirez la plaque en acier du plateau chauffant."
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Veuillez d'abord lancer la calibration XYZ."
 msgstr "Veuillez d'abord lancer la calibration XYZ."
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Merci de patienter"
 msgstr "Merci de patienter"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Retirez d'abord les protections de transport."
 msgstr "Retirez d'abord les protections de transport."
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Prechauffez la buse!"
 msgstr "Prechauffez la buse!"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Prechauffage"
 msgstr "Prechauffage"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Mettez a jour le FW."
 msgstr "Mettez a jour le FW."
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Appuyez sur le bouton pour prechauffer la buse et continuer."
 msgstr "Appuyez sur le bouton pour prechauffer la buse et continuer."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr ""
 msgstr ""
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Impression annulee"
 msgstr "Impression annulee"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Chauffe pour charger"
 msgstr "Chauffe pour charger"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Chauf.pour decharger"
 msgstr "Chauf.pour decharger"
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "Vent. impr:"
 msgstr "Vent. impr:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Impr. depuis la SD"
 msgstr "Impr. depuis la SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "App. sur sur bouton"
 msgstr "App. sur sur bouton"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "Vent. impr"
 msgstr "Vent. impr"
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Veuillez inserer le filament dans l'extrudeur, puis appuyez sur le bouton pour le charger."
 msgstr "Veuillez inserer le filament dans l'extrudeur, puis appuyez sur le bouton pour le charger."
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Veuillez inserer le filament dans le premier tube du MMU, puis appuyez sur le bouton pour le charger."
 msgstr "Veuillez inserer le filament dans le premier tube du MMU, puis appuyez sur le bouton pour le charger."
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Veuillez d'abord charger un filament."
 msgstr "Veuillez d'abord charger un filament."
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Arriere [um]"
 msgstr "Arriere [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "SVP, dechargez le filament et reessayez."
 msgstr "SVP, dechargez le filament et reessayez."
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "SVP, verifiez la connexion du capteur IR et decharge le filament."
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Recup. impression   "
 msgstr "Recup. impression   "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr "Reinit. calib. XYZ"
 msgstr "Reinit. calib. XYZ"
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr "Reinitialiser"
 msgstr "Reinitialiser"
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Reprendre impression"
 msgstr "Reprendre impression"
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Reprise de l'impr."
 msgstr "Reprise de l'impr."
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Droite [um]"
 msgstr "Droite [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr "Port RPi"
 msgstr "Port RPi"
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Lancement de l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer?"
 msgstr "Lancement de l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr "FlshAir"
 msgstr "FlshAir"
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Droite"
 msgstr "Droite"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Recherche du point de calibration du plateau chauffant"
 msgstr "Recherche du point de calibration du plateau chauffant"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Choisir langue"
 msgstr "Choisir langue"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr "Auto-test OK"
 msgstr "Auto-test OK"
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Debut auto-test"
 msgstr "Debut auto-test"
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr "Auto-test"
 msgstr "Auto-test"
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Erreur auto-test!"
 msgstr "Erreur auto-test!"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Echec de l'auto-test"
 msgstr "Echec de l'auto-test"
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Le Selftest sera lance pour calibrer la remise a zero precise sans capteur"
 msgstr "Le Selftest sera lance pour calibrer la remise a zero precise sans capteur"
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selectionnez la temperature de prechauffage de la buse qui correspond a votre materiau."
 msgstr "Selectionnez la temperature de prechauffage de la buse qui correspond a votre materiau."
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Regler temp.:"
 msgstr "Regler temp.:"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Reglages"
 msgstr "Reglages"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Afficher butees"
 msgstr "Afficher butees"
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Etat capteur"
 msgstr "Etat capteur"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Certains fichiers ne seront pas tries. Max 100 fichiers tries par dossier."
 msgstr "Certains fichiers ne seront pas tries. Max 100 fichiers tries par dossier."
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Heure"
 msgstr "Heure"
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Deviat.sev.:"
 msgstr "Deviat.sev.:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr ""
 msgstr ""
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Tri des fichiers"
 msgstr "Tri des fichiers"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Fort"
 msgstr "Fort"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Deviat.leg.:"
 msgstr "Deviat.leg.:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Probleme rencontre, cliquez sur le bouton pour niveller l'axe Z..."
 msgstr "Probleme rencontre, cliquez sur le bouton pour niveller l'axe Z..."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "Une fois"
 msgstr "Une fois"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Vitesse"
 msgstr "Vitesse"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Tourne"
 msgstr "Tourne"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Une temperature ambiante stable de 21-26C et un support stable sont requis."
 msgstr "Une temperature ambiante stable de 21-26C et un support stable sont requis."
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Statistiques"
 msgstr "Statistiques"
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "ARRETE."
 msgstr "ARRETE."
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Echange"
 msgstr "Echange"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Selectionnez le filament:"
 msgstr "Selectionnez le filament:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Calib. Temp."
 msgstr "Calib. Temp."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Selectionnez la temperature qui correspond a votre materiau."
 msgstr "Selectionnez la temperature qui correspond a votre materiau."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Calibration temp."
 msgstr "Calibration temp."
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Echec de la calibration en temperature"
 msgstr "Echec de la calibration en temperature"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "La calibration en temperature est terminee et activee. La calibration en temperature peut etre desactivee dans le menu Reglages-> Cal. Temp."
 msgstr "La calibration en temperature est terminee et activee. La calibration en temperature peut etre desactivee dans le menu Reglages-> Cal. Temp."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Capteur verifie, retirez le filament maintenant."
 msgstr "Capteur verifie, retirez le filament maintenant."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr ""
 msgstr ""
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr ""
 msgstr ""
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Il faut toujours effectuer la Calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration."
 msgstr "Il faut toujours effectuer la Calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration."
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Filament total"
 msgstr "Filament total"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Temps total impr."
 msgstr "Temps total impr."
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Regler"
 msgstr "Regler"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Total des echecs"
 msgstr "Total des echecs"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "pour charger le fil."
 msgstr "pour charger le fil."
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "pour decharger fil."
 msgstr "pour decharger fil."
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr "Totale"
 msgstr "Totale"
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Utilise pdt impr."
 msgstr "Utilise pdt impr."
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Tensions"
 msgstr "Tensions"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "inconnu"
 msgstr "inconnu"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Attente utilisateur..."
 msgstr "Attente utilisateur..."
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Attente du refroidissement des buse et plateau chauffant"
 msgstr "Attente du refroidissement des buse et plateau chauffant"
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "Attente du refroidissement de la sonde PINDA"
 msgstr "Attente du refroidissement de la sonde PINDA"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Utilisez Remonter le fil. pour retirer le filament 1 s'il depasse du tube arriere du MMU. Utilisez ejecter s'il est cache dans le tube."
 msgstr "Utilisez Remonter le fil. pour retirer le filament 1 s'il depasse du tube arriere du MMU. Utilisez ejecter s'il est cache dans le tube."
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Attention: Types d'imprimante et de carte mere modifies"
 msgstr "Attention: Types d'imprimante et de carte mere modifies"
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Attention: Type de carte mere modifie."
 msgstr "Attention: Type de carte mere modifie."
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Attention: Type d'imprimante modifie"
 msgstr "Attention: Type d'imprimante modifie"
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "Dechargement du filament reussi?"
 msgstr "Dechargement du filament reussi?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Erreur de cablage"
 msgstr "Erreur de cablage"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr "Assistant"
 msgstr "Assistant"
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "Details calib. XYZ"
 msgstr "Details calib. XYZ"
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Vous pouvez toujours relancer l'Assistant dans Calibration > Assistant."
 msgstr "Vous pouvez toujours relancer l'Assistant dans Calibration > Assistant."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Calibration XYZ OK. L'ecart sera corrige automatiquement."
 msgstr "Calibration XYZ OK. L'ecart sera corrige automatiquement."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Calibration XYZ OK. Les axes X/Y sont legerement non perpendiculaires. Bon boulot!"
 msgstr "Calibration XYZ OK. Les axes X/Y sont legerement non perpendiculaires. Bon boulot!"
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr ""
 msgstr ""
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "Correct-X:"
 msgstr "Correct-X:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibration XYZ OK. Les axes X/Y sont perpendiculaires. Felicitations!"
 msgstr "Calibration XYZ OK. Les axes X/Y sont perpendiculaires. Felicitations!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibration XYZ compromise. Les points de calibration en avant ne sont pas atteignables."
 msgstr "Calibration XYZ compromise. Les points de calibration en avant ne sont pas atteignables."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable."
 msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Charger un par un"
 msgstr "Charger un par un"
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Echec calibration XYZ. Le point de calibration du plateau n'a pas ete trouve."
 msgstr "Echec calibration XYZ. Le point de calibration du plateau n'a pas ete trouve."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Echec calibration XYZ. Les points de calibration en avant ne sont pas atteignables."
 msgstr "Echec calibration XYZ. Les points de calibration en avant ne sont pas atteignables."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Echec calibration XYZ. Le point de calibration avant droit n'est pas atteignable."
 msgstr "Echec calibration XYZ. Le point de calibration avant droit n'est pas atteignable."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Distance Y du min"
 msgstr "Distance Y du min"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "L'imprimante commencera a  imprimer une ligne en zig-zag. Tournez le bouton jusqu'a atteindre la hauteur optimale. Consultez les photos dans le manuel (chapitre Calibration)."
 msgstr "L'imprimante commencera a  imprimer une ligne en zig-zag. Tournez le bouton jusqu'a atteindre la hauteur optimale. Consultez les photos dans le manuel (chapitre Calibration)."
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "Verification en echec, retirez le filament et reessayez."
 msgstr "Verification en echec, retirez le filament et reessayez."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Correct-Y:"
 msgstr "Correct-Y:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "Retour"
 msgstr "Retour"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Verifications"
 msgstr "Verifications"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Faux declenchement"
 msgstr "Faux declenchement"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr "FINDA:"
 msgstr "FINDA:"
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "Config HW"
 msgstr "Config HW"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr "IR:"
 msgstr "IR:"
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "Firmware MK3S detecte sur imprimante MK3"
 msgstr "Firmware MK3S detecte sur imprimante MK3"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "Mode MMU"
 msgstr "Mode MMU"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Changement de mode en cours..."
 msgstr "Changement de mode en cours..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "Le G-code a ete prepare pour une version plus recente du firmware. Veuillez mettre a jour le firmware. L'impression annulee."
 msgstr "Le G-code a ete prepare pour une version plus recente du firmware. Veuillez mettre a jour le firmware. L'impression annulee."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr "PINDA:"
 msgstr "PINDA:"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Chauffe pour couper"
 msgstr "Chauffe pour couper"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Chauf. pour remonter"
 msgstr "Chauf. pour remonter"
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Merci de verifier le parametre dans les reglages. Impression annulee."
 msgstr "Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Merci de verifier le parametre dans les reglages. Impression annulee."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Renommer"
 msgstr "Renommer"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Selectionner"
 msgstr "Selectionner"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Info capteur"
 msgstr "Info capteur"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr ""
 msgstr ""
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Plaques en acier"
 msgstr "Plaques en acier"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Correct-Z:"
 msgstr "Correct-Z:"
 
 

+ 211 - 196
lang/po/Firmware_it.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: it\n"
 "Language: it\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Fri May 15 18:16:31 CEST 2020\n"
-"PO-Revision-Date: Fri May 15 18:16:31 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:25:10 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:25:10 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -25,11 +25,26 @@ msgstr "[%.7s]Set valori\x0aComp. Z, continuare\x0ao iniziare da zero?\x0a%cCont
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 o inferiore"
 msgstr " 0.3 o inferiore"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS 0.3 o inferiore"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 o superiore"
 msgstr " 0.4 o superiore"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS 0.4 o superiore"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "stato sconosciuto"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " su 9"
 msgstr " su 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "[0;0] punto offset"
 msgstr "[0;0] punto offset"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "ATTENZIONE:\x0aRilev. impatto\x0adisattivato in\x0aModalita silenziosa"
 msgstr "ATTENZIONE:\x0aRilev. impatto\x0adisattivato in\x0aModalita silenziosa"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Annulla"
 msgstr ">Annulla"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Compensaz. Z:"
 msgstr "Compensaz. Z:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Nessun errore"
 msgstr "Nessun errore"
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "e cliccare manopola"
 msgstr "e cliccare manopola"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "I carrelli Z sin/des sono altezza max?"
 msgstr "I carrelli Z sin/des sono altezza max?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr "Trova origine"
 msgstr "Trova origine"
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "Autocaric. filam."
 msgstr "Autocaric. filam."
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Caricamento auto. filam. disp. solo con il sensore attivo..."
 msgstr "Caricamento auto. filam. disp. solo con il sensore attivo..."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Caricamento automatico attivo, premi la manopola e inserisci il filamento."
 msgstr "Caricamento automatico attivo, premi la manopola e inserisci il filamento."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Lunghezza dell'asse"
 msgstr "Lunghezza dell'asse"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Assi"
 msgstr "Assi"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Piano/Riscald."
 msgstr "Piano/Riscald."
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Riscald. piano"
 msgstr "Riscald. piano"
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Correz. liv.piano"
 msgstr "Correz. liv.piano"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Test cinghie     "
 msgstr "Test cinghie     "
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Blackout rilevato. Recuperare la stampa?"
 msgstr "Blackout rilevato. Recuperare la stampa?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Calibrazione Home"
 msgstr "Calibrazione Home"
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Calibra XYZ"
 msgstr "Calibra XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Calibra Z"
 msgstr "Calibra Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Calibra"
 msgstr "Calibra"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibrazione XYZ. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare."
 msgstr "Calibrazione XYZ. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Calibrando Z"
 msgstr "Calibrando Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibrazione Z. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare."
 msgstr "Calibrazione Z. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr "Calibrazione"
 msgstr "Calibrazione"
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Annulla"
 msgstr "Annulla"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "SD rimossa"
 msgstr "SD rimossa"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Colore non puro"
 msgstr "Colore non puro"
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Raffredda"
 msgstr "Raffredda"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Copiare la lingua selezionata?"
 msgstr "Copiare la lingua selezionata?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr "Rileva.crash"
 msgstr "Rileva.crash"
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Scegli un filamento per la calibrazione del primo strato e selezionalo nel menu sullo schermo."
 msgstr "Scegli un filamento per la calibrazione del primo strato e selezionalo nel menu sullo schermo."
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Rilevato impatto."
 msgstr "Rilevato impatto."
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Scontro rilevato. Riprendere la stampa?"
 msgstr "Scontro rilevato. Riprendere la stampa?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr "Impatto"
 msgstr "Impatto"
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Attuale"
 msgstr "Attuale"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Data:"
 msgstr "Data:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Disabilita motori"
 msgstr "Disabilita motori"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Desideri ripetere l'ultimo passaggio per migliorare la distanza fra ugello e piatto?"
 msgstr "Desideri ripetere l'ultimo passaggio per migliorare la distanza fra ugello e piatto?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "Correzione-E:"
 msgstr "Correzione-E:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "Espellendo filamento"
 msgstr "Espellendo filamento"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Finec. fuori portata"
 msgstr "Finec. fuori portata"
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr "Finecorsa"
 msgstr "Finecorsa"
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr "Finecorsa"
 msgstr "Finecorsa"
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Errore - la memoria statica e' stata sovrascritta"
 msgstr "Errore - la memoria statica e' stata sovrascritta"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Tagliando filam."
 msgstr "Tagliando filam."
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "ERRORE: il sensore filam. non risponde,Controllare conness."
 msgstr "ERRORE: il sensore filam. non risponde,Controllare conness."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr "ERRORE:"
 msgstr "ERRORE:"
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "Ventola estr:"
 msgstr "Ventola estr:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr "Info estrusore"
 msgstr "Info estrusore"
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr "Estrusore"
 msgstr "Estrusore"
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "Stat.fall. MMU"
 msgstr "Stat.fall. MMU"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "Autocar.fil."
 msgstr "Autocar.fil."
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Stat. fallimenti"
 msgstr "Stat. fallimenti"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Test ventola"
 msgstr "Test ventola"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Control.vent"
 msgstr "Control.vent"
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filamento estruso e con colore corretto?"
 msgstr "Filamento estruso e con colore corretto?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Fil. non caricato"
 msgstr "Fil. non caricato"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Sensore filam."
 msgstr "Sensore filam."
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Fil. utilizzato"
 msgstr "Fil. utilizzato"
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Tempo di stampa"
 msgstr "Tempo di stampa"
 
 
@@ -460,13 +475,8 @@ msgstr "Tempo di stampa"
 msgid "FS Action"
 msgid "FS Action"
 msgstr "Azione FS"
 msgstr "Azione FS"
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS 0.4 o superiore"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "File incompleto. Continuare comunque?"
 msgstr "File incompleto. Continuare comunque?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Cal. primo strato"
 msgstr "Cal. primo strato"
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Per primo avviero l'autotest per controllare gli errori di assemblaggio piu comuni."
 msgstr "Per primo avviero l'autotest per controllare gli errori di assemblaggio piu comuni."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Risolvere il problema e premere il bottone sull'unita MMU. "
 msgstr "Risolvere il problema e premere il bottone sull'unita MMU. "
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Flusso"
 msgstr "Flusso"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Ventola frontale?"
 msgstr "Ventola frontale?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Fronte [um]"
 msgstr "Fronte [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Ventola frontale/sinistra"
 msgstr "Ventola frontale/sinistra"
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Riscald./Termist."
 msgstr "Riscald./Termist."
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Riscaldamento fermato dal timer di sicurezza."
 msgstr "Riscaldamento fermato dal timer di sicurezza."
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Riscaldamento..."
 msgstr "Riscaldamento..."
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Ciao, sono la tua stampante Original Prusa i3. Gradiresti un aiuto nel processo di configurazione?"
 msgstr "Ciao, sono la tua stampante Original Prusa i3. Gradiresti un aiuto nel processo di configurazione?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Cambia filamento"
 msgstr "Cambia filamento"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Cambio riuscito!"
 msgstr "Cambio riuscito!"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Cambio corretto?"
 msgstr "Cambio corretto?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Verifica piano"
 msgstr "Verifica piano"
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Verifica finecorsa"
 msgstr "Verifica finecorsa"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Verifica ugello"
 msgstr "Verifica ugello"
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Controllo sensori"
 msgstr "Controllo sensori"
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Verifica asse X"
 msgstr "Verifica asse X"
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Verifica asse Y"
 msgstr "Verifica asse Y"
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Verifica asse Z"
 msgstr "Verifica asse Z"
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr "Filamento"
 msgstr "Filamento"
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Adesso avviero una Calibrazione XYZ. Puo durare circa 12 min."
 msgstr "Adesso avviero una Calibrazione XYZ. Puo durare circa 12 min."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Adesso avviero la Calibrazione Z."
 msgstr "Adesso avviero la Calibrazione Z."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Schermata info"
 msgstr "Schermata info"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Inserire filamento"
 msgstr "Inserire filamento"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Il filamento e' stato caricato?"
 msgstr "Il filamento e' stato caricato?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Fallimenti ultima stampa"
 msgstr "Fallimenti ultima stampa"
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Se hai piastre d'acciaio aggiuntive, calibra i preset in Impostazioni - Setup HW - Piastre in Acciaio."
 msgstr "Se hai piastre d'acciaio aggiuntive, calibra i preset in Impostazioni - Setup HW - Piastre in Acciaio."
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Vent SX hotend?"
 msgstr "Vent SX hotend?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Sinistra"
 msgstr "Sinistra"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Sinistra [um]"
 msgstr "Sinistra [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Correzione lineare"
 msgstr "Correzione lineare"
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Compensazione Z"
 msgstr "Compensazione Z"
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Inserire filamento (senza caricarlo) nell'estrusore e premere la manopola."
 msgstr "Inserire filamento (senza caricarlo) nell'estrusore e premere la manopola."
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Carica filamento"
 msgstr "Carica filamento"
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Caricando colore"
 msgstr "Caricando colore"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Caricando filamento"
 msgstr "Caricando filamento"
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Puleggia lenta"
 msgstr "Puleggia lenta"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "Carica ugello"
 msgstr "Carica ugello"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Misura altezza di rif. del punto di calib."
 msgstr "Misura altezza di rif. del punto di calib."
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr "Liv. grilia piano"
 msgstr "Liv. grilia piano"
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Ripristino temperatura... "
 msgstr "MMU OK. Ripristino temperatura... "
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Deviazione mis"
 msgstr "Deviazione mis"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr "Mod."
 msgstr "Mod."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr "Firmware MK3 rilevato su stampante MK3S"
 msgstr "Firmware MK3 rilevato su stampante MK3S"
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Forte"
 msgstr "Forte"
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU2 connessa"
 msgstr "MMU2 connessa"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr "Motore"
 msgstr "Motore"
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Muovi asse"
 msgstr "Muovi asse"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Sposta X"
 msgstr "Sposta X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Sposta Y"
 msgstr "Sposta Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Sposta Z"
 msgstr "Sposta Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Nessun movimento."
 msgstr "Nessun movimento."
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "Nessuna SD"
 msgstr "Nessuna SD"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "Non connesso"
 msgstr "Non connesso"
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Non gira"
 msgstr "Non gira"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Adesso calibro la distanza fra ugello e superfice del piatto."
 msgstr "Adesso calibro la distanza fra ugello e superfice del piatto."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Adesso preriscaldero l'ugello per PLA."
 msgstr "Adesso preriscaldero l'ugello per PLA."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Ugello"
 msgstr "Ugello"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Sono state trovate impostazioni vecchie. Verranno impostati i valori predefiniti di PID, Esteps etc."
 msgstr "Sono state trovate impostazioni vecchie. Verranno impostati i valori predefiniti di PID, Esteps etc."
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio."
 msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "Ventola estrusore"
 msgstr "Ventola estrusore"
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Metti in pausa"
 msgstr "Metti in pausa"
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "Calib. PID completa"
 msgstr "Calib. PID completa"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "Calibrazione PID"
 msgstr "Calibrazione PID"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Posizionare un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere subito la stampante."
 msgstr "Posizionare un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere subito la stampante."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Per favore pulisci il piatto, poi premi la manopola."
 msgstr "Per favore pulisci il piatto, poi premi la manopola."
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Pulire l'ugello per la calibrazione, poi fare click."
 msgstr "Pulire l'ugello per la calibrazione, poi fare click."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Verifica:"
 msgstr "Verifica:"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Per favore consulta il nostro manuale per risolvere il problema. Poi riprendi il Wizard dopo aver riavviato la stampante."
 msgstr "Per favore consulta il nostro manuale per risolvere il problema. Poi riprendi il Wizard dopo aver riavviato la stampante."
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Aprire la guida filam. e rimuovere il filam. a mano"
 msgstr "Aprire la guida filam. e rimuovere il filam. a mano"
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Rimuovete la piastra di acciaio dal piano riscaldato"
 msgstr "Rimuovete la piastra di acciaio dal piano riscaldato"
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Esegui la calibrazione XYZ prima. "
 msgstr "Esegui la calibrazione XYZ prima. "
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Attendere"
 msgstr "Attendere"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Per favore rimuovete i materiali da spedizione"
 msgstr "Per favore rimuovete i materiali da spedizione"
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Prerisc. ugello!"
 msgstr "Prerisc. ugello!"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Preriscalda"
 msgstr "Preriscalda"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Prego aggiornare."
 msgstr "Prego aggiornare."
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Premete la manopola per preriscaldare l'ugello e continuare."
 msgstr "Premete la manopola per preriscaldare l'ugello e continuare."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr "Pausa"
 msgstr "Pausa"
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Stampa interrotta"
 msgstr "Stampa interrotta"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Preriscald. carico"
 msgstr "Preriscald. carico"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Preriscald. scarico"
 msgstr "Preriscald. scarico"
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "Vent.stam:"
 msgstr "Vent.stam:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Stampa da SD"
 msgstr "Stampa da SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "Premere la manopola"
 msgstr "Premere la manopola"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "Ventola di stampa"
 msgstr "Ventola di stampa"
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Inserisci il filamento nell'estrusore, poi premi la manopola per caricarlo."
 msgstr "Inserisci il filamento nell'estrusore, poi premi la manopola per caricarlo."
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Per favore inserisci il filamento nel primo tubo del MMU, poi premi la manopola per caricarlo."
 msgstr "Per favore inserisci il filamento nel primo tubo del MMU, poi premi la manopola per caricarlo."
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Per favore prima carica il filamento."
 msgstr "Per favore prima carica il filamento."
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Retro [um]"
 msgstr "Retro [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Scaricare prima il filamento, poi ripetere l'operazione."
 msgstr "Scaricare prima il filamento, poi ripetere l'operazione."
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "Controllare il collegamento al sensore e rimuovere il filamento."
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Recupero stampa     "
 msgstr "Recupero stampa     "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr "Reset calibrazione XYZ."
 msgstr "Reset calibrazione XYZ."
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr ""
 msgstr ""
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Riprendi stampa"
 msgstr "Riprendi stampa"
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Riprendi stampa"
 msgstr "Riprendi stampa"
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Destra [um]"
 msgstr "Destra [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr "Porta RPi"
 msgstr "Porta RPi"
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Se avvi il Wizard perderai la calibrazione preesistente e dovrai ricominciare dall'inizio. Continuare?"
 msgstr "Se avvi il Wizard perderai la calibrazione preesistente e dovrai ricominciare dall'inizio. Continuare?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Destra"
 msgstr "Destra"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Ricerca dei punti di calibrazione del piano"
 msgstr "Ricerca dei punti di calibrazione del piano"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Seleziona lingua"
 msgstr "Seleziona lingua"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr "Autotest OK"
 msgstr "Autotest OK"
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Avvia autotest"
 msgstr "Avvia autotest"
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr "Autotest         "
 msgstr "Autotest         "
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Errore Autotest !"
 msgstr "Errore Autotest !"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Autotest fallito"
 msgstr "Autotest fallito"
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Verra effettuato un self test per calibrare l'homing senza sensori"
 msgstr "Verra effettuato un self test per calibrare l'homing senza sensori"
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale."
 msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale."
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Imposta temperatura"
 msgstr "Imposta temperatura"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Impostazioni"
 msgstr "Impostazioni"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Stato finecorsa"
 msgstr "Stato finecorsa"
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Stato sensore"
 msgstr "Stato sensore"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati."
 msgstr "Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati."
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Cron."
 msgstr "Cron."
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Devia.grave:"
 msgstr "Devia.grave:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr "Alfabeti"
 msgstr "Alfabeti"
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Ordinando i file"
 msgstr "Ordinando i file"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Forte"
 msgstr "Forte"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Devia.lieve:"
 msgstr "Devia.lieve:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr "Esaurim"
 msgstr "Esaurim"
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Sono stati rilevati problemi, avviato livellamento Z ..."
 msgstr "Sono stati rilevati problemi, avviato livellamento Z ..."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "Singolo"
 msgstr "Singolo"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Velocita"
 msgstr "Velocita"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Gira"
 msgstr "Gira"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Sono necessari una temperatura ambiente di 21-26C e una superficie rigida "
 msgstr "Sono necessari una temperatura ambiente di 21-26C e una superficie rigida "
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Statistiche"
 msgstr "Statistiche"
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "ARRESTATO."
 msgstr "ARRESTATO."
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr "Supporto"
 msgstr "Supporto"
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Scambiato"
 msgstr "Scambiato"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Seleziona il filamento:"
 msgstr "Seleziona il filamento:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Calib. temp."
 msgstr "Calib. temp."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Seleziona la temperatura appropriata per il tuo materiale."
 msgstr "Seleziona la temperatura appropriata per il tuo materiale."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Calib. Temp."
 msgstr "Calib. Temp."
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Calibrazione temperatura fallita"
 msgstr "Calibrazione temperatura fallita"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "Calibrazione temperatura completata e attiva. Puo essere disattivata dal menu Impostazioni ->Cal. Temp."
 msgstr "Calibrazione temperatura completata e attiva. Puo essere disattivata dal menu Impostazioni ->Cal. Temp."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Sensore verificato, rimuovere il filamento."
 msgstr "Sensore verificato, rimuovere il filamento."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr ""
 msgstr ""
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr "Temperature"
 msgstr "Temperature"
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione. "
 msgstr "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione. "
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Filamento totale"
 msgstr "Filamento totale"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Tempo stampa totale"
 msgstr "Tempo stampa totale"
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Regola"
 msgstr "Regola"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Totale fallimenti"
 msgstr "Totale fallimenti"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "per caricare il filamento"
 msgstr "per caricare il filamento"
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "per scaricare il filamento"
 msgstr "per scaricare il filamento"
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr "Totale"
 msgstr "Totale"
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Usati nella stampa"
 msgstr "Usati nella stampa"
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Voltaggi"
 msgstr "Voltaggi"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "sconosciuto"
 msgstr "sconosciuto"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Attendendo utente..."
 msgstr "Attendendo utente..."
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "In attesa del raffreddamento dell'ugello e del piano"
 msgstr "In attesa del raffreddamento dell'ugello e del piano"
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "In attesa del raffreddamento della sonda PINDA"
 msgstr "In attesa del raffreddamento della sonda PINDA"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Usate lo scaricamento per rimuovere il filamento 1 se protrude dal retro del tubo posteriore del MMu. Utilizzate l'espulsione se e nascosto nel tubo."
 msgstr "Usate lo scaricamento per rimuovere il filamento 1 se protrude dal retro del tubo posteriore del MMu. Utilizzate l'espulsione se e nascosto nel tubo."
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Attenzione: tipo di stampante e di scheda madre cambiati."
 msgstr "Attenzione: tipo di stampante e di scheda madre cambiati."
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Avviso: tipo di scheda madre cambiato"
 msgstr "Avviso: tipo di scheda madre cambiato"
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Avviso: tipo di stampante cambiato."
 msgstr "Avviso: tipo di stampante cambiato."
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "Filamento scaricato con successo?"
 msgstr "Filamento scaricato con successo?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Errore cablaggio"
 msgstr "Errore cablaggio"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr ""
 msgstr ""
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "XYZ Cal. dettagli"
 msgstr "XYZ Cal. dettagli"
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "E possibile riprendere il Wizard in qualsiasi momento attraverso Calibrazione -> Wizard."
 msgstr "E possibile riprendere il Wizard in qualsiasi momento attraverso Calibrazione -> Wizard."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Calibrazione XYZ corretta. La distorsione verra compensata automaticamente."
 msgstr "Calibrazione XYZ corretta. La distorsione verra compensata automaticamente."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!"
 msgstr "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!"
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr ""
 msgstr ""
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "Correzione-X:"
 msgstr "Correzione-X:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!"
 msgstr "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili."
 msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile."
 msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Caricare tutti"
 msgstr "Caricare tutti"
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul piano non e' stato trovato."
 msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul piano non e' stato trovato."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili."
 msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile."
 msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Distanza Y dal min"
 msgstr "Distanza Y dal min"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "La stampante iniziera a stampare una linea a zig-zag. Gira la manopola fino a che non hai raggiungo l'altezza ottimale. Verifica con le immagini nel manuale (capitolo sulla calibrazione):"
 msgstr "La stampante iniziera a stampare una linea a zig-zag. Gira la manopola fino a che non hai raggiungo l'altezza ottimale. Verifica con le immagini nel manuale (capitolo sulla calibrazione):"
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "Verifica fallita, rimuovere il filamento e riprovare."
 msgstr "Verifica fallita, rimuovere il filamento e riprovare."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Correzione-Y:"
 msgstr "Correzione-Y:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "Indietro"
 msgstr "Indietro"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Controlli"
 msgstr "Controlli"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Falso innesco"
 msgstr "Falso innesco"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr ""
 msgstr ""
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "Impostazioni HW"
 msgstr "Impostazioni HW"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr ""
 msgstr ""
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr "Griglia"
 msgstr "Griglia"
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr "Liv. griglia piano"
 msgstr "Liv. griglia piano"
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "Firmware MK3S rilevato su stampante MK3"
 msgstr "Firmware MK3S rilevato su stampante MK3"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "Mod. MMU"
 msgstr "Mod. MMU"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Cambio modalita in corso ..."
 msgstr "Cambio modalita in corso ..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "G-code processato per un firmware piu recente. Per favore aggiorna il firmware. Stampa annullata."
 msgstr "G-code processato per un firmware piu recente. Per favore aggiorna il firmware. Stampa annullata."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Preriscalda. taglio"
 msgstr "Preriscalda. taglio"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Preriscalda. espuls."
 msgstr "Preriscalda. espuls."
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Diametro ugello diverso dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata."
 msgstr "Diametro ugello diverso dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr "atteso livello %s"
 msgstr "atteso livello %s"
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Rinomina"
 msgstr "Rinomina"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Seleziona"
 msgstr "Seleziona"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Info Sensore"
 msgstr "Info Sensore"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr "Assist."
 msgstr "Assist."
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Piani d'acciaio"
 msgstr "Piani d'acciaio"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Correzione-Z:"
 msgstr "Correzione-Z:"
 
 

+ 212 - 197
lang/po/Firmware_pl.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pl\n"
 "Language: pl\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Fri May 15 18:16:57 CEST 2020\n"
-"PO-Revision-Date: Fri May 15 18:16:57 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:25:45 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:25:45 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -20,16 +20,31 @@ msgstr ""
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgstr "[%.7s]Live Adj. Z\x0austaw., kontynuowac\x0aczy zaczac od 0?\x0a%cKontynuuj%cReset"
 msgstr "[%.7s]Live Adj. Z\x0austaw., kontynuowac\x0aczy zaczac od 0?\x0a%cKontynuuj%cReset"
 
 
-# MSG_03_OR_OLDER c=18
+# MSG_IR_03_OR_OLDER c=18
 #: messages.c:144
 #: messages.c:144
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 lub starszy"
 msgstr " 0.3 lub starszy"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS 0.3 lub starszy"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 lub nowszy"
 msgstr " 0.4 lub nowszy"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS 0.4 lub nowszy"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "Stan nieznany"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " z 9"
 msgstr " z 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "[0;0] przesun.punktu"
 msgstr "[0;0] przesun.punktu"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "UWAGA:\x0aWykrywanie zderzen\x0awylaczone w\x0atrybie Stealth"
 msgstr "UWAGA:\x0aWykrywanie zderzen\x0awylaczone w\x0atrybie Stealth"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Anuluj"
 msgstr ">Anuluj"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Ustawianie Z:"
 msgstr "Ustawianie Z:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Wszystko OK "
 msgstr "Wszystko OK "
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "i nacisnij pokretlo"
 msgstr "i nacisnij pokretlo"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "Obydwa konce osi sa na szczycie?"
 msgstr "Obydwa konce osi sa na szczycie?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr "Auto zerowanie"
 msgstr "Auto zerowanie"
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "Autoladowanie fil."
 msgstr "Autoladowanie fil."
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Autoladowanie fil. dostepne tylko gdy czujnik filamentu jest wlaczony..."
 msgstr "Autoladowanie fil. dostepne tylko gdy czujnik filamentu jest wlaczony..."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Autoladowanie filamentu wlaczone, nacisnij pokretlo i wsun filament..."
 msgstr "Autoladowanie filamentu wlaczone, nacisnij pokretlo i wsun filament..."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Dlugosc osi"
 msgstr "Dlugosc osi"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Os"
 msgstr "Os"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Stol / Grzanie"
 msgstr "Stol / Grzanie"
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Grzanie stolu.."
 msgstr "Grzanie stolu.."
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Korekta stolu"
 msgstr "Korekta stolu"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Test paskow"
 msgstr "Test paskow"
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Wykryto zanik napiecia. Kontynowac?"
 msgstr "Wykryto zanik napiecia. Kontynowac?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Zerowanie osi"
 msgstr "Zerowanie osi"
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Kalibracja XYZ"
 msgstr "Kalibracja XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Kalibruj Z"
 msgstr "Kalibruj Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Kalibruj"
 msgstr "Kalibruj"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic."
 msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Kalibruje Z"
 msgstr "Kalibruje Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic."
 msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr "Kalibracja"
 msgstr "Kalibracja"
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Anuluj"
 msgstr "Anuluj"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "Karta wyjeta"
 msgstr "Karta wyjeta"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Kolor zanieczysz."
 msgstr "Kolor zanieczysz."
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Chlodzenie"
 msgstr "Chlodzenie"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Skopiowac wybrany jezyk?"
 msgstr "Skopiowac wybrany jezyk?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr "Wykr.zderzen"
 msgstr "Wykr.zderzen"
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Wybierz filament do Kalibracji Pierwszej Warstwy i potwierdz w menu ekranowym."
 msgstr "Wybierz filament do Kalibracji Pierwszej Warstwy i potwierdz w menu ekranowym."
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Zderzenie wykryte"
 msgstr "Zderzenie wykryte"
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Wykryto zderzenie. Wznowic druk?"
 msgstr "Wykryto zderzenie. Wznowic druk?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr "Zderzenie"
 msgstr "Zderzenie"
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Aktualne"
 msgstr "Aktualne"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Data:"
 msgstr "Data:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Wylacz silniki"
 msgstr "Wylacz silniki"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr "Kont."
 msgstr "Kont."
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Chcesz powtorzyc ostatni krok i ponownie ustawic odleglosc miedzy dysza a stolikiem?"
 msgstr "Chcesz powtorzyc ostatni krok i ponownie ustawic odleglosc miedzy dysza a stolikiem?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "Korekcja-E:"
 msgstr "Korekcja-E:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "Wysuwanie filamentu"
 msgstr "Wysuwanie filamentu"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Krancowka nie aktyw."
 msgstr "Krancowka nie aktyw."
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr "Krancowka"
 msgstr "Krancowka"
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr "Krancowki"
 msgstr "Krancowki"
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Blad - pamiec statyczna zostala nadpisana"
 msgstr "Blad - pamiec statyczna zostala nadpisana"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Obcinanie fil."
 msgstr "Obcinanie fil."
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie."
 msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr "BLAD:"
 msgstr "BLAD:"
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "WentHotend:"
 msgstr "WentHotend:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr "Ekstruder - info"
 msgstr "Ekstruder - info"
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr "Ekstruder"
 msgstr "Ekstruder"
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "Bledy MMU"
 msgstr "Bledy MMU"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "Autolad. fil."
 msgstr "Autolad. fil."
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Statystyki bledow"
 msgstr "Statystyki bledow"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Test wentylatora"
 msgstr "Test wentylatora"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Sprawd.went."
 msgstr "Sprawd.went."
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament wychodzi z dyszy,kolor jest ok?"
 msgstr "Filament wychodzi z dyszy,kolor jest ok?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Fil. nie zaladowany"
 msgstr "Fil. nie zaladowany"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Czujnik filamentu"
 msgstr "Czujnik filamentu"
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Uzyty filament"
 msgstr "Uzyty filament"
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Czas druku"
 msgstr "Czas druku"
 
 
@@ -460,13 +475,8 @@ msgstr "Czas druku"
 msgid "FS Action"
 msgid "FS Action"
 msgstr "Akcja FS"
 msgstr "Akcja FS"
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS v0.4 lub nowszy"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "Plik niekompletny. Kontynowac?"
 msgstr "Plik niekompletny. Kontynowac?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Kal. 1. warstwy"
 msgstr "Kal. 1. warstwy"
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Najpierw wlacze selftest w celu sprawdzenia najczestszych problemow podczas montazu."
 msgstr "Najpierw wlacze selftest w celu sprawdzenia najczestszych problemow podczas montazu."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Rozwiaz problem i wcisnij przycisk na MMU."
 msgstr "Rozwiaz problem i wcisnij przycisk na MMU."
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Przeplyw"
 msgstr "Przeplyw"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Przedni went. druku?"
 msgstr "Przedni went. druku?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Przod [um]"
 msgstr "Przod [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Przedni/lewy wentylator"
 msgstr "Przedni/lewy wentylator"
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Grzalka/Termistor"
 msgstr "Grzalka/Termistor"
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Grzanie wylaczone przez wyl. czasowy"
 msgstr "Grzanie wylaczone przez wyl. czasowy"
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Grzanie..."
 msgstr "Grzanie..."
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Czesc, jestem Twoja drukarka Original Prusa i3. Czy potrzebujesz pomocy z ustawieniem?"
 msgstr "Czesc, jestem Twoja drukarka Original Prusa i3. Czy potrzebujesz pomocy z ustawieniem?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Wymiana filamentu"
 msgstr "Wymiana filamentu"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Wymiana ok!"
 msgstr "Wymiana ok!"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Wymiana ok?"
 msgstr "Wymiana ok?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Kontrola stolu"
 msgstr "Kontrola stolu"
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Kontrola krancowek"
 msgstr "Kontrola krancowek"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Kontrola hotendu"
 msgstr "Kontrola hotendu"
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Kontrola czujnikow"
 msgstr "Kontrola czujnikow"
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Kontrola osi X"
 msgstr "Kontrola osi X"
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Kontrola osi Y"
 msgstr "Kontrola osi Y"
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Kontrola osi Z"
 msgstr "Kontrola osi Z"
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Przeprowadze teraz kalibracje XYZ. Zajmie ok. 12 min."
 msgstr "Przeprowadze teraz kalibracje XYZ. Zajmie ok. 12 min."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Przeprowadze kalibracje Z."
 msgstr "Przeprowadze kalibracje Z."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Ekran informacyjny"
 msgstr "Ekran informacyjny"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Wprowadz filament"
 msgstr "Wprowadz filament"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Filament jest zaladowany?"
 msgstr "Filament jest zaladowany?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Ostatnie bledy druku"
 msgstr "Ostatnie bledy druku"
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Jesli masz dodatkowe plyty stalowe, to skalibruj ich ustawienia w menu Ustawienia - Ustawienia HW - Plyty stalowe."
 msgstr "Jesli masz dodatkowe plyty stalowe, to skalibruj ich ustawienia w menu Ustawienia - Ustawienia HW - Plyty stalowe."
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Lewy went hotendu?"
 msgstr "Lewy went hotendu?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Lewa"
 msgstr "Lewa"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Lewo [um]"
 msgstr "Lewo [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Korekcja liniowa"
 msgstr "Korekcja liniowa"
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Ustaw. Live Z"
 msgstr "Ustaw. Live Z"
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Wsun filament (nie uzywaj funkcji ladowania) do ekstrudera i nacisnij pokretlo."
 msgstr "Wsun filament (nie uzywaj funkcji ladowania) do ekstrudera i nacisnij pokretlo."
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Ladowanie fil."
 msgstr "Ladowanie fil."
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Czyszcz. koloru"
 msgstr "Czyszcz. koloru"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Laduje filament"
 msgstr "Laduje filament"
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Luzne kolo pasowe"
 msgstr "Luzne kolo pasowe"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "Zaladuj do dyszy"
 msgstr "Zaladuj do dyszy"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Okreslam wysokosc odniesienia punktu kalibracyjnego"
 msgstr "Okreslam wysokosc odniesienia punktu kalibracyjnego"
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr "Poziomowanie stolu wg siatki"
 msgstr "Poziomowanie stolu wg siatki"
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Wznawiam nagrzewanie..."
 msgstr "MMU OK. Wznawiam nagrzewanie..."
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Zmierzony skos"
 msgstr "Zmierzony skos"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr "Tryb"
 msgstr "Tryb"
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr "Wykryto firmware MK3 w drukarce MK3S"
 msgstr "Wykryto firmware MK3 w drukarce MK3S"
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Wysoka wyd."
 msgstr "Wysoka wyd."
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU podlaczone"
 msgstr "MMU podlaczone"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr "Silnik"
 msgstr "Silnik"
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Ruch osi"
 msgstr "Ruch osi"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Ruch osi X"
 msgstr "Ruch osi X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Ruch osi Y"
 msgstr "Ruch osi Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Ruch osi Z"
 msgstr "Ruch osi Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Brak ruchu."
 msgstr "Brak ruchu."
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "Brak karty SD"
 msgstr "Brak karty SD"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr "Nie"
 msgstr "Nie"
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "Nie podlaczono "
 msgstr "Nie podlaczono "
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Nie kreci sie"
 msgstr "Nie kreci sie"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Kalibruje odleglosc miedzy koncowka dyszy a powierzchnia druku."
 msgstr "Kalibruje odleglosc miedzy koncowka dyszy a powierzchnia druku."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Nagrzewam dysze dla PLA."
 msgstr "Nagrzewam dysze dla PLA."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Dysza"
 msgstr "Dysza"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp."
 msgstr "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp."
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Teraz zdejmij wydruk testowy ze stolu."
 msgstr "Teraz zdejmij wydruk testowy ze stolu."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "WentHotend"
 msgstr "WentHotend"
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Wstrzymanie wydruku"
 msgstr "Wstrzymanie wydruku"
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "Kal. PID zakonczona"
 msgstr "Kal. PID zakonczona"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "Kalibracja PID"
 msgstr "Kalibracja PID"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Umiesc kartke papieru na stole roboczym i podczas pomiaru pierwszych 4 punktow. Jesli dysza zahaczy o papier, natychmiast wylacz drukarke."
 msgstr "Umiesc kartke papieru na stole roboczym i podczas pomiaru pierwszych 4 punktow. Jesli dysza zahaczy o papier, natychmiast wylacz drukarke."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Oczysc powierzchnie druku i nacisnij pokretlo."
 msgstr "Oczysc powierzchnie druku i nacisnij pokretlo."
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Dla prawidlowej kalibracji nalezy oczyscic dysze. Potwierdz guzikiem."
 msgstr "Dla prawidlowej kalibracji nalezy oczyscic dysze. Potwierdz guzikiem."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Sprawdz :"
 msgstr "Sprawdz :"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Przeczytaj nasz Podrecznik druku 3D aby naprawic problem. Potem wznow Asystenta przez restart drukarki."
 msgstr "Przeczytaj nasz Podrecznik druku 3D aby naprawic problem. Potem wznow Asystenta przez restart drukarki."
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Prosze odciagnac dzwignie dociskowa ekstrudera i recznie usunac filament."
 msgstr "Prosze odciagnac dzwignie dociskowa ekstrudera i recznie usunac filament."
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Prosze zdjac plyte stalowa z podgrzewanego stolu."
 msgstr "Prosze zdjac plyte stalowa z podgrzewanego stolu."
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Prosze najpierw uruchomic kalibracje XYZ"
 msgstr "Prosze najpierw uruchomic kalibracje XYZ"
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Prosze czekac"
 msgstr "Prosze czekac"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Najpierw usun zabezpieczenia transportowe"
 msgstr "Najpierw usun zabezpieczenia transportowe"
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Nagrzej dysze!"
 msgstr "Nagrzej dysze!"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Grzanie"
 msgstr "Grzanie"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Prosze zaktualizowac."
 msgstr "Prosze zaktualizowac."
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac."
 msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr "Pauza"
 msgstr "Pauza"
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Druk przerwany"
 msgstr "Druk przerwany"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Nagrzew.do ladowania"
 msgstr "Nagrzew.do ladowania"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Nagrzew. do rozlad."
 msgstr "Nagrzew. do rozlad."
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "WentWydruk:"
 msgstr "WentWydruk:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Druk z karty SD"
 msgstr "Druk z karty SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "Wcisnij pokretlo"
 msgstr "Wcisnij pokretlo"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "WentWydruk"
 msgstr "WentWydruk"
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Wsun filament do ekstrudera i nacisnij pokretlo, aby go zaladowac."
 msgstr "Wsun filament do ekstrudera i nacisnij pokretlo, aby go zaladowac."
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Wsun filament do pierwszego kanalu w MMU2 i nacisnij pokretlo, aby go zaladowac."
 msgstr "Wsun filament do pierwszego kanalu w MMU2 i nacisnij pokretlo, aby go zaladowac."
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Najpierw zaladuj filament."
 msgstr "Najpierw zaladuj filament."
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Tyl [um]"
 msgstr "Tyl [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Najpierw rozladuj filament, nastepnie powtorz czynnosc."
 msgstr "Najpierw rozladuj filament, nastepnie powtorz czynnosc."
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "Sprawdz polaczenie czujnika IR, rozladuj filament, jesli zaladowany."
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Wznawianie wydruku  "
 msgstr "Wznawianie wydruku  "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr "Reset kalibr. XYZ"
 msgstr "Reset kalibr. XYZ"
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr ""
 msgstr ""
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Wznowic wydruk"
 msgstr "Wznowic wydruk"
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Wznawianie druku"
 msgstr "Wznawianie druku"
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Prawo [um]"
 msgstr "Prawo [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr "Port RPi"
 msgstr "Port RPi"
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Wlaczenie Asystenta usunie obecne dane kalibracyjne i zacznie od poczatku. Kontynuowac?"
 msgstr "Wlaczenie Asystenta usunie obecne dane kalibracyjne i zacznie od poczatku. Kontynuowac?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Prawa"
 msgstr "Prawa"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Szukam punktu kalibracyjnego na stole"
 msgstr "Szukam punktu kalibracyjnego na stole"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Wybor jezyka"
 msgstr "Wybor jezyka"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr "Selftest OK"
 msgstr "Selftest OK"
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Selftest startuje"
 msgstr "Selftest startuje"
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr "Selftest "
 msgstr "Selftest "
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Blad selftest!"
 msgstr "Blad selftest!"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Selftest nieudany"
 msgstr "Selftest nieudany"
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek"
 msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek"
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu."
 msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu."
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Ustaw temperature:"
 msgstr "Ustaw temperature:"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Ustawienia"
 msgstr "Ustawienia"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Pokaz krancowki"
 msgstr "Pokaz krancowki"
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Stan czujnikow"
 msgstr "Stan czujnikow"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100."
 msgstr "Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100."
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Czas"
 msgstr "Czas"
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Znaczny skos:"
 msgstr "Znaczny skos:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr "Alfab"
 msgstr "Alfab"
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Sortowanie plikow"
 msgstr "Sortowanie plikow"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Glosny"
 msgstr "Glosny"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Lekki skos:"
 msgstr "Lekki skos:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr "Konce f"
 msgstr "Konce f"
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Wykryto problem, wymuszono poziomowanie osi Z."
 msgstr "Wykryto problem, wymuszono poziomowanie osi Z."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "1-raz"
 msgstr "1-raz"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Predkosc"
 msgstr "Predkosc"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Kreci sie"
 msgstr "Kreci sie"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Potrzebna jest stabilna temperatura otoczenia 21-26C i stabilne podloze."
 msgstr "Potrzebna jest stabilna temperatura otoczenia 21-26C i stabilne podloze."
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Statystyki"
 msgstr "Statystyki"
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "ZATRZYMANO."
 msgstr "ZATRZYMANO."
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr "Wsparcie"
 msgstr "Wsparcie"
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Zamieniono"
 msgstr "Zamieniono"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Wybierz filament:"
 msgstr "Wybierz filament:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Kalib. temp."
 msgstr "Kalib. temp."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Wybierz temperature, ktora odpowiada Twojemu filamentowi."
 msgstr "Wybierz temperature, ktora odpowiada Twojemu filamentowi."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Kalibracja temp."
 msgstr "Kalibracja temp."
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Kalibracja temperaturowa nieudana"
 msgstr "Kalibracja temperaturowa nieudana"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "Kalibracja temperaturowa zakonczona i wlaczona. Moze byc wylaczona z menu Ustawienia -> Kalibracja temp."
 msgstr "Kalibracja temperaturowa zakonczona i wlaczona. Moze byc wylaczona z menu Ustawienia -> Kalibracja temp."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Czujnik sprawdzony, wyciagnij filament."
 msgstr "Czujnik sprawdzony, wyciagnij filament."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr "Temperatura"
 msgstr "Temperatura"
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr "Temperatury"
 msgstr "Temperatury"
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Musimy przeprowadzic kalibracje Z. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Kalibracja."
 msgstr "Musimy przeprowadzic kalibracje Z. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Kalibracja."
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Zuzycie filamentu"
 msgstr "Zuzycie filamentu"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Laczny czas druku"
 msgstr "Laczny czas druku"
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Strojenie"
 msgstr "Strojenie"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Suma bledow"
 msgstr "Suma bledow"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "aby zaladow. fil."
 msgstr "aby zaladow. fil."
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "aby rozlad. filament"
 msgstr "aby rozlad. filament"
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr "Suma"
 msgstr "Suma"
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Uzyte podczas druku"
 msgstr "Uzyte podczas druku"
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Napiecia"
 msgstr "Napiecia"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "nieznane"
 msgstr "nieznane"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Czekam na uzytkownika..."
 msgstr "Czekam na uzytkownika..."
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Oczekiwanie na wychlodzenie dyszy i stolu"
 msgstr "Oczekiwanie na wychlodzenie dyszy i stolu"
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "Czekam az spadnie temp. sondy PINDA"
 msgstr "Czekam az spadnie temp. sondy PINDA"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Uzyj opcji Rozladuj jesli filament wystaje z tylnej rurki MMU. Uzyj opcji Wysun jesli wciaz jest w srodku."
 msgstr "Uzyj opcji Rozladuj jesli filament wystaje z tylnej rurki MMU. Uzyj opcji Wysun jesli wciaz jest w srodku."
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Ostrzezenie: typ drukarki i plyta glowna ulegly zmianie."
 msgstr "Ostrzezenie: typ drukarki i plyta glowna ulegly zmianie."
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Ostrzezenie: plyta glowna ulegla zmianie."
 msgstr "Ostrzezenie: plyta glowna ulegla zmianie."
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie"
 msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie"
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "Rozladowanie fil. ok?"
 msgstr "Rozladowanie fil. ok?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Blad polaczenia"
 msgstr "Blad polaczenia"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr "Asystent"
 msgstr "Asystent"
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "Szczegoly kal. XYZ"
 msgstr "Szczegoly kal. XYZ"
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Zawsze mozesz uruchomic Asystenta ponownie przez Kalibracja -> Asystent."
 msgstr "Zawsze mozesz uruchomic Asystenta ponownie przez Kalibracja -> Asystent."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Kalibracja XYZ pomyslna. Skos bedzie automatycznie korygowany."
 msgstr "Kalibracja XYZ pomyslna. Skos bedzie automatycznie korygowany."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Kalibracja XYZ prawidlowa. Osie X/Y lekko skosne. Dobra robota!"
 msgstr "Kalibracja XYZ prawidlowa. Osie X/Y lekko skosne. Dobra robota!"
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr "Wyl. czas."
 msgstr "Wyl. czas."
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "Korekcja-X:"
 msgstr "Korekcja-X:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Kalibracja XYZ ok. Osie X/Y sa prostopadle. Gratulacje!"
 msgstr "Kalibracja XYZ ok. Osie X/Y sa prostopadle. Gratulacje!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne."
 msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny."
 msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Zalad. wszystkie"
 msgstr "Zalad. wszystkie"
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych."
 msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki."
 msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki."
 msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Dystans od 0 w osi Y"
 msgstr "Dystans od 0 w osi Y"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "Drukarka zacznie drukowanie linii w ksztalcie zygzaka. Ustaw optymalna wysokosc obracajac pokretlo. Porownaj z ilustracjami w Podreczniku (rozdzial Kalibracja)."
 msgstr "Drukarka zacznie drukowanie linii w ksztalcie zygzaka. Ustaw optymalna wysokosc obracajac pokretlo. Porownaj z ilustracjami w Podreczniku (rozdzial Kalibracja)."
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "Niepowodzenie sprawdzenia, wyciagnij filament i sprobuj ponownie."
 msgstr "Niepowodzenie sprawdzenia, wyciagnij filament i sprobuj ponownie."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Korekcja-Y:"
 msgstr "Korekcja-Y:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "Wstecz"
 msgstr "Wstecz"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Testy"
 msgstr "Testy"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Falszywy alarm"
 msgstr "Falszywy alarm"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr ""
 msgstr ""
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "Ustawienia HW"
 msgstr "Ustawienia HW"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr ""
 msgstr ""
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr "Siatka"
 msgstr "Siatka"
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr "Poziomowanie stolu"
 msgstr "Poziomowanie stolu"
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "Wykryto firmware MK3S w drukarce MK3"
 msgstr "Wykryto firmware MK3S w drukarce MK3"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "Tryb MMU"
 msgstr "Tryb MMU"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Trwa zmiana trybu..."
 msgstr "Trwa zmiana trybu..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "G-code pociety dla nowszego firmware. Zaktualizuj firmware. Druk anulowany."
 msgstr "G-code pociety dla nowszego firmware. Zaktualizuj firmware. Druk anulowany."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Nagrzew. obciecia"
 msgstr "Nagrzew. obciecia"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Nagrzew. wysuniecia"
 msgstr "Nagrzew. wysuniecia"
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Srednica dyszy rozni sie od tej w G-code. Sprawdz ustawienia. Druk anulowany."
 msgstr "Srednica dyszy rozni sie od tej w G-code. Sprawdz ustawienia. Druk anulowany."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr "Oczekiwano wersji %s"
 msgstr "Oczekiwano wersji %s"
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Zmien nazwe"
 msgstr "Zmien nazwe"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Wybierz"
 msgstr "Wybierz"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Info o sensorach"
 msgstr "Info o sensorach"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr "Asyst."
 msgstr "Asyst."
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Plyty stalowe"
 msgstr "Plyty stalowe"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Korekcja-Z:"
 msgstr "Korekcja-Z:"
 
 

+ 212 - 197
lang/po/new/cs.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: cs\n"
 "Language: cs\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Wed May 13 17:41:02 CEST 2020\n"
-"PO-Revision-Date: Wed May 13 17:41:02 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:22:53 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:22:53 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -20,16 +20,31 @@ msgstr ""
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgstr "[%.7s]Doladeni Z\x0auz nastaveno, pouzit\x0anebo reset od nuly?\x0a%cPokracovat%cReset"
 msgstr "[%.7s]Doladeni Z\x0auz nastaveno, pouzit\x0anebo reset od nuly?\x0a%cPokracovat%cReset"
 
 
-# MSG_03_OR_OLDER c=18
+# MSG_IR_03_OR_OLDER c=18
 #: messages.c:144
 #: messages.c:144
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 nebo starsi"
 msgstr " 0.3 nebo starsi"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS 0.3 nebo starsi"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 nebo novejsi"
 msgstr " 0.4 nebo novejsi"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS 0.4 a novejsi"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "neznamy stav"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " z 9"
 msgstr " z 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "[0;0] odsazeni bodu"
 msgstr "[0;0] odsazeni bodu"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "POZOR:\x0aCrash detekce\x0adeaktivovana ve\x0aStealth modu"
 msgstr "POZOR:\x0aCrash detekce\x0adeaktivovana ve\x0aStealth modu"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Zrusit"
 msgstr ">Zrusit"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Doladeni Z:"
 msgstr "Doladeni Z:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Vse OK "
 msgstr "Vse OK "
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "a stisknete tlacitko"
 msgstr "a stisknete tlacitko"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "Dojely oba Z voziky k~hornimu dorazu?"
 msgstr "Dojely oba Z voziky k~hornimu dorazu?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr ""
 msgstr ""
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "AutoZavedeni fil."
 msgstr "AutoZavedeni fil."
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Automaticke zavadeni filamentu je mozne pouze pri zapnutem filament senzoru..."
 msgstr "Automaticke zavadeni filamentu je mozne pouze pri zapnutem filament senzoru..."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Automaticke zavadeni filamentu aktivni, stisknete tlacitko a vlozte filament..."
 msgstr "Automaticke zavadeni filamentu aktivni, stisknete tlacitko a vlozte filament..."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Delka osy"
 msgstr "Delka osy"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Osa"
 msgstr "Osa"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Podlozka / Topeni"
 msgstr "Podlozka / Topeni"
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Zahrivani bedu"
 msgstr "Zahrivani bedu"
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Korekce podlozky"
 msgstr "Korekce podlozky"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Test remenu      "
 msgstr "Test remenu      "
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Detekovan vypadek proudu.Obnovit tisk?"
 msgstr "Detekovan vypadek proudu.Obnovit tisk?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Kalibruji vychozi poz."
 msgstr "Kalibruji vychozi poz."
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Kalibrace XYZ"
 msgstr "Kalibrace XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Kalibrovat Z"
 msgstr "Kalibrovat Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Zkalibrovat"
 msgstr "Zkalibrovat"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Kalibrace XYZ. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem."
 msgstr "Kalibrace XYZ. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Kalibruji Z"
 msgstr "Kalibruji Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Kalibrace Z. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem."
 msgstr "Kalibrace Z. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr "Kalibrace"
 msgstr "Kalibrace"
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Zrusit"
 msgstr "Zrusit"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "Karta vyjmuta"
 msgstr "Karta vyjmuta"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Barva neni cista"
 msgstr "Barva neni cista"
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Zchladit"
 msgstr "Zchladit"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Kopirovat vybrany jazyk?"
 msgstr "Kopirovat vybrany jazyk?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu"
 msgstr "Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu"
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Detekovan naraz."
 msgstr "Detekovan naraz."
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Detekovan naraz. Obnovit tisk?"
 msgstr "Detekovan naraz. Obnovit tisk?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr "Naraz"
 msgstr "Naraz"
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Pouze aktualni"
 msgstr "Pouze aktualni"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Datum:"
 msgstr "Datum:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Vypnout motory"
 msgstr "Vypnout motory"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr "Pokr."
 msgstr "Pokr."
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Chcete opakovat posledni krok a pozmenit vzdalenost mezi tryskou a podlozkou?"
 msgstr "Chcete opakovat posledni krok a pozmenit vzdalenost mezi tryskou a podlozkou?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "Korekce E:"
 msgstr "Korekce E:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "Vysouvam filament"
 msgstr "Vysouvam filament"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Kon. spinac nesepnut"
 msgstr "Kon. spinac nesepnut"
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr "Koncovy spinac"
 msgstr "Koncovy spinac"
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr "Konc. spinace"
 msgstr "Konc. spinace"
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Chyba - Doslo k prepisu staticke pameti!"
 msgstr "Chyba - Doslo k prepisu staticke pameti!"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Strihani filamentu"
 msgstr "Strihani filamentu"
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte prosim zapojeni."
 msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte prosim zapojeni."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr "CHYBA:"
 msgstr "CHYBA:"
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "Levy vent.:"
 msgstr "Levy vent.:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr ""
 msgstr ""
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "Selhani MMU"
 msgstr "Selhani MMU"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "F. autozav."
 msgstr "F. autozav."
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Selhani"
 msgstr "Selhani"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Test ventilatoru"
 msgstr "Test ventilatoru"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Kontr. vent."
 msgstr "Kontr. vent."
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament vytlacen a spravne barvy?"
 msgstr "Filament vytlacen a spravne barvy?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Filament nezaveden"
 msgstr "Filament nezaveden"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Senzor filamentu"
 msgstr "Senzor filamentu"
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Spotrebovano filam."
 msgstr "Spotrebovano filam."
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Cas tisku"
 msgstr "Cas tisku"
 
 
@@ -460,13 +475,8 @@ msgstr "Cas tisku"
 msgid "FS Action"
 msgid "FS Action"
 msgstr "FS reakce"
 msgstr "FS reakce"
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS v0.4 a novejsi"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "Soubor nekompletni. Pokracovat?"
 msgstr "Soubor nekompletni. Pokracovat?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Kal. prvni vrstvy"
 msgstr "Kal. prvni vrstvy"
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Nejdriv pomoci selftestu zkontoluji nejcastejsi chyby vznikajici pri sestaveni tiskarny."
 msgstr "Nejdriv pomoci selftestu zkontoluji nejcastejsi chyby vznikajici pri sestaveni tiskarny."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Opravte chybu a pote stisknete tlacitko na jednotce MMU."
 msgstr "Opravte chybu a pote stisknete tlacitko na jednotce MMU."
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Prutok"
 msgstr "Prutok"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Predni tiskovy vent?"
 msgstr "Predni tiskovy vent?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Vpredu [um]"
 msgstr "Vpredu [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Predni/levy vent."
 msgstr "Predni/levy vent."
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Topeni/Termistor"
 msgstr "Topeni/Termistor"
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Zahrivani preruseno bezpecnostnim casovacem."
 msgstr "Zahrivani preruseno bezpecnostnim casovacem."
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Zahrivani"
 msgstr "Zahrivani"
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Dobry den, jsem vase tiskarna Original Prusa i3. Chcete abych Vas provedla kalibracnim procesem?"
 msgstr "Dobry den, jsem vase tiskarna Original Prusa i3. Chcete abych Vas provedla kalibracnim procesem?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Vymenit filament"
 msgstr "Vymenit filament"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Zmena uspesna!"
 msgstr "Zmena uspesna!"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Vymena ok?"
 msgstr "Vymena ok?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Kontrola podlozky"
 msgstr "Kontrola podlozky"
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Kontrola endstopu"
 msgstr "Kontrola endstopu"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Kontrola hotend "
 msgstr "Kontrola hotend "
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Kontrola senzoru"
 msgstr "Kontrola senzoru"
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Kontrola osy X"
 msgstr "Kontrola osy X"
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Kontrola osy Y"
 msgstr "Kontrola osy Y"
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Kontrola osy Z"
 msgstr "Kontrola osy Z"
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Nyni provedu xyz kalibraci. Zabere to priblizne 12 min."
 msgstr "Nyni provedu xyz kalibraci. Zabere to priblizne 12 min."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Nyni provedu z kalibraci."
 msgstr "Nyni provedu z kalibraci."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Informace"
 msgstr "Informace"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Vlozte filament"
 msgstr "Vlozte filament"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Je filament zaveden?"
 msgstr "Je filament zaveden?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Selhani posl. tisku"
 msgstr "Selhani posl. tisku"
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Mate-li vice tiskovych platu, kalibrujte je v menu Nastaveni - HW nastaveni - Tiskove platy"
 msgstr "Mate-li vice tiskovych platu, kalibrujte je v menu Nastaveni - HW nastaveni - Tiskove platy"
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Levy vent na trysce?"
 msgstr "Levy vent na trysce?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Vlevo"
 msgstr "Vlevo"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Vlevo [um]"
 msgstr "Vlevo [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Korekce lin."
 msgstr "Korekce lin."
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Doladeni osy Z"
 msgstr "Doladeni osy Z"
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Vlozte filament (nezavadejte) do extruderu a stisknete tlacitko"
 msgstr "Vlozte filament (nezavadejte) do extruderu a stisknete tlacitko"
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Zavest filament"
 msgstr "Zavest filament"
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Cisteni barvy"
 msgstr "Cisteni barvy"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Zavadeni filamentu"
 msgstr "Zavadeni filamentu"
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Uvolnena remenicka"
 msgstr "Uvolnena remenicka"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "Zavest do trysky"
 msgstr "Zavest do trysky"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Merim referencni vysku kalibracniho bodu"
 msgstr "Merim referencni vysku kalibracniho bodu"
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr ""
 msgstr ""
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Pokracuji v nahrivani..."
 msgstr "MMU OK. Pokracuji v nahrivani..."
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Merene zkoseni"
 msgstr "Merene zkoseni"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr "Mod"
 msgstr "Mod"
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr ""
 msgstr ""
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Vys. vykon"
 msgstr "Vys. vykon"
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU2 pripojeno"
 msgstr "MMU2 pripojeno"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Posunout osu"
 msgstr "Posunout osu"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Posunout X"
 msgstr "Posunout X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Posunout Y"
 msgstr "Posunout Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Posunout Z"
 msgstr "Posunout Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Bez pohybu."
 msgstr "Bez pohybu."
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "Zadna SD karta"
 msgstr "Zadna SD karta"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr "Ne"
 msgstr "Ne"
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "Nezapojeno "
 msgstr "Nezapojeno "
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Netoci se"
 msgstr "Netoci se"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Nyni zkalibruji vzdalenost mezi koncem trysky a povrchem podlozky."
 msgstr "Nyni zkalibruji vzdalenost mezi koncem trysky a povrchem podlozky."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Nyni predehreji trysku pro PLA."
 msgstr "Nyni predehreji trysku pro PLA."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Tryska"
 msgstr "Tryska"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd."
 msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd."
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu."
 msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "Vent. trysky"
 msgstr "Vent. trysky"
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Pozastavit tisk"
 msgstr "Pozastavit tisk"
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "PID kal. ukoncena"
 msgstr "PID kal. ukoncena"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "PID kalibrace"
 msgstr "PID kalibrace"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, okamzite vypnete tiskarnu."
 msgstr "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, okamzite vypnete tiskarnu."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Prosim ocistete podlozku a stisknete tlacitko."
 msgstr "Prosim ocistete podlozku a stisknete tlacitko."
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem."
 msgstr "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Zkontrolujte :"
 msgstr "Zkontrolujte :"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Prosim nahlednete do prirucky 3D tiskare a opravte problem. Pote obnovte Pruvodce restartovanim tiskarny."
 msgstr "Prosim nahlednete do prirucky 3D tiskare a opravte problem. Pote obnovte Pruvodce restartovanim tiskarny."
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Prosim otevrete idler a manualne odstrante filament."
 msgstr "Prosim otevrete idler a manualne odstrante filament."
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Odstrante prosim tiskovy plat z podlozky."
 msgstr "Odstrante prosim tiskovy plat z podlozky."
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Nejprve spustte kalibraci XYZ."
 msgstr "Nejprve spustte kalibraci XYZ."
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Prosim cekejte"
 msgstr "Prosim cekejte"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Nejprve prosim sundejte transportni soucastky."
 msgstr "Nejprve prosim sundejte transportni soucastky."
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Predehrejte trysku!"
 msgstr "Predehrejte trysku!"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Predehrev"
 msgstr "Predehrev"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Prosim aktualizujte."
 msgstr "Prosim aktualizujte."
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko."
 msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr ""
 msgstr ""
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Tisk prerusen"
 msgstr "Tisk prerusen"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Predehrev k zavedeni"
 msgstr "Predehrev k zavedeni"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Predehrev k vyjmuti"
 msgstr "Predehrev k vyjmuti"
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "Tiskovy vent.:"
 msgstr "Tiskovy vent.:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Tisk z SD"
 msgstr "Tisk z SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "Stisknete hl. tlacitko"
 msgstr "Stisknete hl. tlacitko"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "Tiskovy vent."
 msgstr "Tiskovy vent."
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Prosim vlozte filament do extruderu a stisknete tlacitko k jeho zavedeni"
 msgstr "Prosim vlozte filament do extruderu a stisknete tlacitko k jeho zavedeni"
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Prosim vlozte filament do prvni trubicky MMU a stisknete tlacitko k jeho zavedeni"
 msgstr "Prosim vlozte filament do prvni trubicky MMU a stisknete tlacitko k jeho zavedeni"
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Prosim nejdriv zavedte filament"
 msgstr "Prosim nejdriv zavedte filament"
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Vzadu [um]"
 msgstr "Vzadu [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Prosim vyjmete filament a zopakujte tuto akci"
 msgstr "Prosim vyjmete filament a zopakujte tuto akci"
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "Prosim zkontrolujte zapojeni IR senzoru a vyjmuty filament"
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Obnovovani tisku    "
 msgstr "Obnovovani tisku    "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr "Reset XYZ kalibr."
 msgstr "Reset XYZ kalibr."
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr ""
 msgstr ""
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Pokracovat"
 msgstr "Pokracovat"
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Obnoveni tisku"
 msgstr "Obnoveni tisku"
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Vpravo [um]"
 msgstr "Vpravo [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Spusteni Pruvodce vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?"
 msgstr "Spusteni Pruvodce vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Vpravo"
 msgstr "Vpravo"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Hledam kalibracni bod podlozky"
 msgstr "Hledam kalibracni bod podlozky"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Vyber jazyka"
 msgstr "Vyber jazyka"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Self test start "
 msgstr "Self test start "
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr "Selftest "
 msgstr "Selftest "
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Chyba Selftestu!"
 msgstr "Chyba Selftestu!"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Selftest selhal "
 msgstr "Selftest selhal "
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest."
 msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest."
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu."
 msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu."
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Nastavte teplotu:"
 msgstr "Nastavte teplotu:"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Nastaveni"
 msgstr "Nastaveni"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Stav konc. spin."
 msgstr "Stav konc. spin."
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Stav senzoru"
 msgstr "Stav senzoru"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100."
 msgstr "Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100."
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Cas"
 msgstr "Cas"
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Tezke zkoseni:"
 msgstr "Tezke zkoseni:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr "Abeceda"
 msgstr "Abeceda"
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Trideni souboru"
 msgstr "Trideni souboru"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Hlasity"
 msgstr "Hlasity"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Lehke zkoseni:"
 msgstr "Lehke zkoseni:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Vyskytl se problem, srovnavam osu Z ..."
 msgstr "Vyskytl se problem, srovnavam osu Z ..."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "Jednou"
 msgstr "Jednou"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Rychlost"
 msgstr "Rychlost"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Toci se"
 msgstr "Toci se"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Je vyzadovana stabilni pokojova teplota 21-26C a pevna podlozka."
 msgstr "Je vyzadovana stabilni pokojova teplota 21-26C a pevna podlozka."
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Statistika "
 msgstr "Statistika "
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "ZASTAVENO."
 msgstr "ZASTAVENO."
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr "Podpora"
 msgstr "Podpora"
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Prohozene"
 msgstr "Prohozene"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Zvolte filament:"
 msgstr "Zvolte filament:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Tepl. kal."
 msgstr "Tepl. kal."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Zvolte teplotu, ktera odpovida vasemu materialu."
 msgstr "Zvolte teplotu, ktera odpovida vasemu materialu."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Teplot. kalibrace"
 msgstr "Teplot. kalibrace"
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Teplotni kalibrace selhala"
 msgstr "Teplotni kalibrace selhala"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "Teplotni kalibrace dokoncena a je nyni aktivni. Teplotni kalibraci je mozno deaktivovat v menu Nastaveni->Tepl. kal."
 msgstr "Teplotni kalibrace dokoncena a je nyni aktivni. Teplotni kalibraci je mozno deaktivovat v menu Nastaveni->Tepl. kal."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Senzor overen, vyjmete filament."
 msgstr "Senzor overen, vyjmete filament."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr "Teplota"
 msgstr "Teplota"
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr "Teploty"
 msgstr "Teploty"
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace."
 msgstr "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace."
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Filament celkem"
 msgstr "Filament celkem"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Celkovy cas tisku"
 msgstr "Celkovy cas tisku"
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Ladit"
 msgstr "Ladit"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Celkem selhani"
 msgstr "Celkem selhani"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "k zavedeni filamentu"
 msgstr "k zavedeni filamentu"
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "k vyjmuti filamentu"
 msgstr "k vyjmuti filamentu"
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr "Celkem"
 msgstr "Celkem"
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Pouzite behem tisku"
 msgstr "Pouzite behem tisku"
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Napeti"
 msgstr "Napeti"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "neznamy"
 msgstr "neznamy"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Ceka se na uzivatele..."
 msgstr "Ceka se na uzivatele..."
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Cekani na zchladnuti trysky a podlozky."
 msgstr "Cekani na zchladnuti trysky a podlozky."
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "Cekani na zchladnuti PINDA"
 msgstr "Cekani na zchladnuti PINDA"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Pouzijte vyjmout pro odstraneni filamentu 1 pokud presahuje z PTFE trubicky za tiskarnou. Pouzijte vysunout, pokud neni videt."
 msgstr "Pouzijte vyjmout pro odstraneni filamentu 1 pokud presahuje z PTFE trubicky za tiskarnou. Pouzijte vysunout, pokud neni videt."
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Varovani: doslo ke zmene typu tiskarny a motherboardu."
 msgstr "Varovani: doslo ke zmene typu tiskarny a motherboardu."
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Varovani: doslo ke zmene typu motherboardu."
 msgstr "Varovani: doslo ke zmene typu motherboardu."
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Varovani: doslo ke zmene typu tiskarny."
 msgstr "Varovani: doslo ke zmene typu tiskarny."
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "Bylo vysunuti filamentu uspesne?"
 msgstr "Bylo vysunuti filamentu uspesne?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Chyba zapojeni"
 msgstr "Chyba zapojeni"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr "Pruvodce"
 msgstr "Pruvodce"
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "Detaily XYZ kal."
 msgstr "Detaily XYZ kal."
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Pruvodce muzete kdykoliv znovu spustit z menu Kalibrace -> Pruvodce"
 msgstr "Pruvodce muzete kdykoliv znovu spustit z menu Kalibrace -> Pruvodce"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku."
 msgstr "Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Kalibrace XYZ v poradku. X/Y osy mirne zkosene. Dobra prace!"
 msgstr "Kalibrace XYZ v poradku. X/Y osy mirne zkosene. Dobra prace!"
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr ""
 msgstr ""
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "Korekce X:"
 msgstr "Korekce X:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Kalibrace XYZ v poradku. X/Y osy jsou kolme. Gratuluji!"
 msgstr "Kalibrace XYZ v poradku. X/Y osy jsou kolme. Gratuluji!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu."
 msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu."
 msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Zavest vse"
 msgstr "Zavest vse"
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen."
 msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu."
 msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu."
 msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Y vzdalenost od min"
 msgstr "Y vzdalenost od min"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "Tiskarna zacne tisknout lomenou caru. Otacenim tlacitka nastavte optimalni vysku. Postupujte podle obrazku v handbooku (kapitola Kalibrace)."
 msgstr "Tiskarna zacne tisknout lomenou caru. Otacenim tlacitka nastavte optimalni vysku. Postupujte podle obrazku v handbooku (kapitola Kalibrace)."
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "Overeni selhalo, vyjmete filament a zkuste znovu."
 msgstr "Overeni selhalo, vyjmete filament a zkuste znovu."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Korekce Y:"
 msgstr "Korekce Y:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "Zpet"
 msgstr "Zpet"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Kontrola"
 msgstr "Kontrola"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Falesne spusteni"
 msgstr "Falesne spusteni"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr ""
 msgstr ""
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "HW nastaveni"
 msgstr "HW nastaveni"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr ""
 msgstr ""
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr "Mesh Bed Leveling"
 msgstr "Mesh Bed Leveling"
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "MK3S firmware detekovan na tiskarne MK3"
 msgstr "MK3S firmware detekovan na tiskarne MK3"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "MMU mod"
 msgstr "MMU mod"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Probiha zmena modu..."
 msgstr "Probiha zmena modu..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "G-code je pripraven pro novejsi firmware. Prosim aktualizujte firmware. Tisk zrusen."
 msgstr "G-code je pripraven pro novejsi firmware. Prosim aktualizujte firmware. Tisk zrusen."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Predehrev ke strihu"
 msgstr "Predehrev ke strihu"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Predehrev k vysunuti"
 msgstr "Predehrev k vysunuti"
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Prumer trysky tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen."
 msgstr "Prumer trysky tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Prejmenovat"
 msgstr "Prejmenovat"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Vybrat"
 msgstr "Vybrat"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Senzor info"
 msgstr "Senzor info"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr "Asist."
 msgstr "Asist."
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Tiskove platy"
 msgstr "Tiskove platy"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Korekce Z:"
 msgstr "Korekce Z:"
 
 

+ 212 - 197
lang/po/new/de.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
 "Language: de\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Fri May 15 16:44:45 CEST 2020\n"
-"PO-Revision-Date: Fri May 15 16:44:45 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:23:29 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:23:29 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -20,16 +20,31 @@ msgstr ""
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgstr "[%.7s]Z Einstell.\x0aWert gesetzt,weiter\x0aoder mit 0 beginnen?\x0a%cWeiter%cNeu beginnen"
 msgstr "[%.7s]Z Einstell.\x0aWert gesetzt,weiter\x0aoder mit 0 beginnen?\x0a%cWeiter%cNeu beginnen"
 
 
-# MSG_03_OR_OLDER c=18
+# MSG_IR_03_OR_OLDER c=18
 #: messages.c:144
 #: messages.c:144
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 oder aelter"
 msgstr " 0.3 oder aelter"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS 0.3 oder aelter"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 oder neuer"
 msgstr " 0.4 oder neuer"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS 0.4 oder neuer"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "Status unbekannt"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " von 9"
 msgstr " von 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "[0;0] Punktversatz"
 msgstr "[0;0] Punktversatz"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "WARNUNG:\x0aCrash Erkennung\x0adeaktiviert im\x0aStealth Modus"
 msgstr "WARNUNG:\x0aCrash Erkennung\x0adeaktiviert im\x0aStealth Modus"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Abbruch"
 msgstr ">Abbruch"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Z Anpassen:"
 msgstr "Z Anpassen:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Alles richtig    "
 msgstr "Alles richtig    "
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "und Knopf druecken"
 msgstr "und Knopf druecken"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "Sind linke+rechte Z- Schlitten ganz oben?"
 msgstr "Sind linke+rechte Z- Schlitten ganz oben?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr "Startposition"
 msgstr "Startposition"
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "AutoLaden Filament"
 msgstr "AutoLaden Filament"
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Automatisches Laden Filament nur bei eingeschaltetem Fil. sensor verfuegbar..."
 msgstr "Automatisches Laden Filament nur bei eingeschaltetem Fil. sensor verfuegbar..."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..."
 msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Achsenlaenge"
 msgstr "Achsenlaenge"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Achse"
 msgstr "Achse"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Bett / Heizung"
 msgstr "Bett / Heizung"
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Bett aufwaermen"
 msgstr "Bett aufwaermen"
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Ausgleich Bett ok"
 msgstr "Ausgleich Bett ok"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Riementest       "
 msgstr "Riementest       "
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Stromausfall! Druck wiederherstellen?"
 msgstr "Stromausfall! Druck wiederherstellen?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Kalibriere Start"
 msgstr "Kalibriere Start"
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Kalibrierung XYZ"
 msgstr "Kalibrierung XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Kalibrierung Z"
 msgstr "Kalibrierung Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Kalibrieren"
 msgstr "Kalibrieren"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "XYZ Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
 msgstr "XYZ Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Kalibrierung Z"
 msgstr "Kalibrierung Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Z Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
 msgstr "Z Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr "Kalibrierung"
 msgstr "Kalibrierung"
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Abbruch"
 msgstr "Abbruch"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "SD Karte entfernt"
 msgstr "SD Karte entfernt"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Falsche Farbe"
 msgstr "Falsche Farbe"
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Abkuehlen"
 msgstr "Abkuehlen"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Gewaehlte Sprache kopieren?"
 msgstr "Gewaehlte Sprache kopieren?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr "Crash Erk."
 msgstr "Crash Erk."
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Waehlen Sie ein Filament fuer Erste Schichtkalibrierung aus und waehlen Sie es im On-Screen-Menu aus."
 msgstr "Waehlen Sie ein Filament fuer Erste Schichtkalibrierung aus und waehlen Sie es im On-Screen-Menu aus."
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Crash erkannt."
 msgstr "Crash erkannt."
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Crash erkannt. Druck fortfuehren?"
 msgstr "Crash erkannt. Druck fortfuehren?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr ""
 msgstr ""
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Aktuelles"
 msgstr "Aktuelles"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Datum:"
 msgstr "Datum:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Motoren aus"
 msgstr "Motoren aus"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Moechten Sie den letzten Schritt wiederholen, um den Abstand zwischen Duese und Druckbett neu einzustellen?"
 msgstr "Moechten Sie den letzten Schritt wiederholen, um den Abstand zwischen Duese und Druckbett neu einzustellen?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "E-Korrektur:"
 msgstr "E-Korrektur:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "werfe Filament aus"
 msgstr "werfe Filament aus"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Ende nicht getroffen"
 msgstr "Ende nicht getroffen"
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr "Endanschlag"
 msgstr "Endanschlag"
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr "Endschalter"
 msgstr "Endschalter"
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Fehler - statischer Speicher wurde ueberschrieben"
 msgstr "Fehler - statischer Speicher wurde ueberschrieben"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Schneide filament"
 msgstr "Schneide filament"
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen."
 msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr "FEHLER:"
 msgstr "FEHLER:"
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "Extruder Luefter:"
 msgstr "Extruder Luefter:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr "Extruder Info"
 msgstr "Extruder Info"
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "MMU-Fehler"
 msgstr "MMU-Fehler"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "F. autoladen"
 msgstr "F. autoladen"
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Fehlerstatistik"
 msgstr "Fehlerstatistik"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Lueftertest"
 msgstr "Lueftertest"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Luefter Chk."
 msgstr "Luefter Chk."
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament extrudiert mit richtiger Farbe?"
 msgstr "Filament extrudiert mit richtiger Farbe?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Fil. nicht geladen"
 msgstr "Fil. nicht geladen"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Filamentsensor"
 msgstr "Filamentsensor"
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Filament benutzt"
 msgstr "Filament benutzt"
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Druckzeit"
 msgstr "Druckzeit"
 
 
@@ -460,13 +475,8 @@ msgstr "Druckzeit"
 msgid "FS Action"
 msgid "FS Action"
 msgstr "FS Aktion"
 msgstr "FS Aktion"
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS v0.4 oder neuer"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "Datei unvollstaendig Trotzdem fortfahren?"
 msgstr "Datei unvollstaendig Trotzdem fortfahren?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Erste-Schicht Kal."
 msgstr "Erste-Schicht Kal."
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Zunaechst fuehre ich den Selbsttest durch, um die haeufigsten Probleme beim Zusammenbau zu ueberpruefen."
 msgstr "Zunaechst fuehre ich den Selbsttest durch, um die haeufigsten Probleme beim Zusammenbau zu ueberpruefen."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU."
 msgstr "Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU."
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Durchfluss"
 msgstr "Durchfluss"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Vorderer Luefter?"
 msgstr "Vorderer Luefter?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Vorne [um]"
 msgstr "Vorne [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Vorderer/linke Luefter"
 msgstr "Vorderer/linke Luefter"
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Heizung/Thermistor"
 msgstr "Heizung/Thermistor"
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Heizung durch Sicherheitstimer deaktiviert."
 msgstr "Heizung durch Sicherheitstimer deaktiviert."
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Aufwaermen"
 msgstr "Aufwaermen"
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Hallo, ich bin Ihr Original Prusa i3 Drucker. Moechten Sie, dass ich Sie durch den Einrich- tungsablauf fuehre?"
 msgstr "Hallo, ich bin Ihr Original Prusa i3 Drucker. Moechten Sie, dass ich Sie durch den Einrich- tungsablauf fuehre?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Filament-Wechsel"
 msgstr "Filament-Wechsel"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Wechsel erfolgr.!"
 msgstr "Wechsel erfolgr.!"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Wechsel ok?"
 msgstr "Wechsel ok?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Pruefe Bett "
 msgstr "Pruefe Bett "
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Pruefe Endschalter"
 msgstr "Pruefe Endschalter"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Pruefe Duese  "
 msgstr "Pruefe Duese  "
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Pruefe Sensoren "
 msgstr "Pruefe Sensoren "
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Pruefe X Achse "
 msgstr "Pruefe X Achse "
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Pruefe Y Achse "
 msgstr "Pruefe Y Achse "
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Pruefe Z Achse "
 msgstr "Pruefe Z Achse "
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Ich werde jetzt die XYZ-Kalibrierung durchfuehren. Es wird ca. 12 Minuten dauern."
 msgstr "Ich werde jetzt die XYZ-Kalibrierung durchfuehren. Es wird ca. 12 Minuten dauern."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Ich werde jetzt die Z Kalibrierung durchfuehren."
 msgstr "Ich werde jetzt die Z Kalibrierung durchfuehren."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Infoanzeige"
 msgstr "Infoanzeige"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Filament einlegen"
 msgstr "Filament einlegen"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Ist das Filament geladen?"
 msgstr "Ist das Filament geladen?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Letzte Druckfehler"
 msgstr "Letzte Druckfehler"
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Wenn Sie zusaetzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche."
 msgstr "Wenn Sie zusaetzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche."
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Linker Luefter?"
 msgstr "Linker Luefter?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Links"
 msgstr "Links"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Links [um]"
 msgstr "Links [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Lineare Korrektur"
 msgstr "Lineare Korrektur"
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Z einstellen"
 msgstr "Z einstellen"
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Stecken Sie das Filament (nicht laden) in den Extruder und druecken Sie dann den Knopf."
 msgstr "Stecken Sie das Filament (nicht laden) in den Extruder und druecken Sie dann den Knopf."
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Filament laden"
 msgstr "Filament laden"
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Lade Farbe"
 msgstr "Lade Farbe"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Filament laedt"
 msgstr "Filament laedt"
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Lose Riemenscheibe"
 msgstr "Lose Riemenscheibe"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "In Druckduese laden"
 msgstr "In Druckduese laden"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Messen der Referenzhoehe des Kalibrierpunktes"
 msgstr "Messen der Referenzhoehe des Kalibrierpunktes"
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr "MeshBett Ausgleich"
 msgstr "MeshBett Ausgleich"
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Temperatur wiederherstellen..."
 msgstr "MMU OK. Temperatur wiederherstellen..."
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Schraeglauf"
 msgstr "Schraeglauf"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr "Modus"
 msgstr "Modus"
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr "MK3-Firmware am MK3S-Drucker erkannt"
 msgstr "MK3-Firmware am MK3S-Drucker erkannt"
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Hohe leist"
 msgstr "Hohe leist"
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU2 verbunden"
 msgstr "MMU2 verbunden"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Achse bewegen"
 msgstr "Achse bewegen"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Bewege X"
 msgstr "Bewege X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Bewege Y"
 msgstr "Bewege Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Bewege Z"
 msgstr "Bewege Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Keine Bewegung."
 msgstr "Keine Bewegung."
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "Keine SD Karte"
 msgstr "Keine SD Karte"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr "Nein"
 msgstr "Nein"
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "Nicht angeschlossen"
 msgstr "Nicht angeschlossen"
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Dreht sich nicht"
 msgstr "Dreht sich nicht"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Jetzt werde ich den Abstand zwischen Duesenspitze und Druckbett kalibrieren."
 msgstr "Jetzt werde ich den Abstand zwischen Duesenspitze und Druckbett kalibrieren."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Jetzt werde ich die Duese fuer PLA vorheizen."
 msgstr "Jetzt werde ich die Duese fuer PLA vorheizen."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Duese"
 msgstr "Duese"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Alte Einstellungen gefunden. Standard PID, E-Steps u.s.w. werden gesetzt."
 msgstr "Alte Einstellungen gefunden. Standard PID, E-Steps u.s.w. werden gesetzt."
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Testdruck jetzt von Stahlblech entfernen."
 msgstr "Testdruck jetzt von Stahlblech entfernen."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "Duesevent."
 msgstr "Duesevent."
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Druck pausieren"
 msgstr "Druck pausieren"
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "PID Kalib. fertig"
 msgstr "PID Kalib. fertig"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "PID Kalibrierung"
 msgstr "PID Kalibrierung"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Legen Sie ein Blatt Papier unter die Duese waehrend der Kalibrierung der ersten 4 Punkte. Wenn die Duese das Papier erfasst, den Drucker sofort ausschalten."
 msgstr "Legen Sie ein Blatt Papier unter die Duese waehrend der Kalibrierung der ersten 4 Punkte. Wenn die Duese das Papier erfasst, den Drucker sofort ausschalten."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf."
 msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf."
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber."
 msgstr "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Bitte pruefe:"
 msgstr "Bitte pruefe:"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Bitte lesen Sie unser Handbuch und beheben Sie das Problem. Fahren Sie dann mit dem Assistenten fort, indem Sie den Drucker neu starten."
 msgstr "Bitte lesen Sie unser Handbuch und beheben Sie das Problem. Fahren Sie dann mit dem Assistenten fort, indem Sie den Drucker neu starten."
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Bitte Spannrolle oeffnen und Fila- ment von Hand entfernen"
 msgstr "Bitte Spannrolle oeffnen und Fila- ment von Hand entfernen"
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Bitte entfernen Sie das Stahlblech vom Heizbett."
 msgstr "Bitte entfernen Sie das Stahlblech vom Heizbett."
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren."
 msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren."
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Bitte warten"
 msgstr "Bitte warten"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Bitte zuerst Transportsicherungen entfernen."
 msgstr "Bitte zuerst Transportsicherungen entfernen."
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Duese vorheizen!"
 msgstr "Duese vorheizen!"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Vorheizen"
 msgstr "Vorheizen"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Bitte aktualisieren."
 msgstr "Bitte aktualisieren."
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
 msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr ""
 msgstr ""
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Druck abgebrochen"
 msgstr "Druck abgebrochen"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Heizen zum Laden"
 msgstr "Heizen zum Laden"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Heizen zum Entladen"
 msgstr "Heizen zum Entladen"
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "Druckvent.:"
 msgstr "Druckvent.:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Drucken von SD"
 msgstr "Drucken von SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "Knopf druecken zum"
 msgstr "Knopf druecken zum"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "Druckvent."
 msgstr "Druckvent."
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Bitte legen Sie das Filament in den Extruder ein und druecken Sie dann den Knopf, um es zu laden."
 msgstr "Bitte legen Sie das Filament in den Extruder ein und druecken Sie dann den Knopf, um es zu laden."
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Bitte stecken Sie das Filament in den ersten Schlauch der MMU und druecken Sie dann den Knopf, um es zu laden."
 msgstr "Bitte stecken Sie das Filament in den ersten Schlauch der MMU und druecken Sie dann den Knopf, um es zu laden."
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Bitte laden Sie zuerst das Filament."
 msgstr "Bitte laden Sie zuerst das Filament."
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Hinten [um]"
 msgstr "Hinten [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal."
 msgstr "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal."
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "Bitte IR Sensor Verbindungen ueber- pruefen und Filament entladen ist."
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Druck wiederherst   "
 msgstr "Druck wiederherst   "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr "Reset XYZ Kalibr."
 msgstr "Reset XYZ Kalibr."
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr "Ruecksetzen"
 msgstr "Ruecksetzen"
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Druck fortsetzen"
 msgstr "Druck fortsetzen"
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Druck fortgesetzt"
 msgstr "Druck fortgesetzt"
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Rechts [um]"
 msgstr "Rechts [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?"
 msgstr "Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Rechts"
 msgstr "Rechts"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Suche Bett Kalibrierpunkt"
 msgstr "Suche Bett Kalibrierpunkt"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Waehle Sprache"
 msgstr "Waehle Sprache"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr "Selbsttest OK"
 msgstr "Selbsttest OK"
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Selbsttest start "
 msgstr "Selbsttest start "
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr "Selbsttest       "
 msgstr "Selbsttest       "
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Selbsttest Fehler!"
 msgstr "Selbsttest Fehler!"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Selbsttest Error "
 msgstr "Selbsttest Error "
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Selbsttest im Gang, um die genaue Rueck- kehr zum Nullpunkt ohne Sensor zu kalibrieren"
 msgstr "Selbsttest im Gang, um die genaue Rueck- kehr zum Nullpunkt ohne Sensor zu kalibrieren"
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht."
 msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht."
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Temp. einstellen:"
 msgstr "Temp. einstellen:"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Einstellungen"
 msgstr "Einstellungen"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Endschalter Status"
 msgstr "Endschalter Status"
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Sensorstatus"
 msgstr "Sensorstatus"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100."
 msgstr "Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100."
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Zeit"
 msgstr "Zeit"
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Schwer.Schr:"
 msgstr "Schwer.Schr:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr ""
 msgstr ""
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Sortiere Dateien"
 msgstr "Sortiere Dateien"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Laut"
 msgstr "Laut"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Leicht.Schr:"
 msgstr "Leicht.Schr:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..."
 msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "Einmal"
 msgstr "Einmal"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Geschwindigkeit"
 msgstr "Geschwindigkeit"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Dreht sich"
 msgstr "Dreht sich"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Stabile Umgebungs- temperatur 21-26C und feste Stand- flaeche erforderlich"
 msgstr "Stabile Umgebungs- temperatur 21-26C und feste Stand- flaeche erforderlich"
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Statistiken "
 msgstr "Statistiken "
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "GESTOPPT."
 msgstr "GESTOPPT."
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Ausgetauscht"
 msgstr "Ausgetauscht"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Filament auswaehlen:"
 msgstr "Filament auswaehlen:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Temp Kalib."
 msgstr "Temp Kalib."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Waehlen Sie die Temperatur, die zu Ihrem Material passt."
 msgstr "Waehlen Sie die Temperatur, die zu Ihrem Material passt."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Temp. kalibrieren"
 msgstr "Temp. kalibrieren"
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Temperaturkalibrierung fehlgeschlagen"
 msgstr "Temperaturkalibrierung fehlgeschlagen"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "Temp.kalibrierung ist fertig + aktiv. Temp.kalibrierung kann ausgeschaltet werden im Menu Einstellungen -> Temp.kal."
 msgstr "Temp.kalibrierung ist fertig + aktiv. Temp.kalibrierung kann ausgeschaltet werden im Menu Einstellungen -> Temp.kal."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Sensor ueberprueft, entladen Sie jetzt das Filament."
 msgstr "Sensor ueberprueft, entladen Sie jetzt das Filament."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr "Temperatur"
 msgstr "Temperatur"
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr "Temperaturen"
 msgstr "Temperaturen"
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Es ist noch not- wendig die Z- Kalibrierung aus- zufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
 msgstr "Es ist noch not- wendig die Z- Kalibrierung aus- zufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Gesamtes Filament"
 msgstr "Gesamtes Filament"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Gesamte Druckzeit"
 msgstr "Gesamte Druckzeit"
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Feineinstellung"
 msgstr "Feineinstellung"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Gesamte Fehler"
 msgstr "Gesamte Fehler"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "Filament laden"
 msgstr "Filament laden"
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "Filament entladen"
 msgstr "Filament entladen"
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr "Gesamt"
 msgstr "Gesamt"
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Beim Druck benutzt"
 msgstr "Beim Druck benutzt"
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Spannungen"
 msgstr "Spannungen"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "unbekannt"
 msgstr "unbekannt"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Warte auf Benutzer.."
 msgstr "Warte auf Benutzer.."
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Warten bis Heizung und Bett abgekuehlt sind"
 msgstr "Warten bis Heizung und Bett abgekuehlt sind"
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "Warten, bis PINDA- Sonde abgekuehlt ist"
 msgstr "Warten, bis PINDA- Sonde abgekuehlt ist"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Entladen Sie das Filament 1, wenn er aus dem hinteren MMU-Rohr herausragt. Verwenden Sie den Auswurf, wenn er im Rohr versteckt ist."
 msgstr "Entladen Sie das Filament 1, wenn er aus dem hinteren MMU-Rohr herausragt. Verwenden Sie den Auswurf, wenn er im Rohr versteckt ist."
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Warnung: Druckertyp und Platinentyp wurden beide geaendert."
 msgstr "Warnung: Druckertyp und Platinentyp wurden beide geaendert."
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Warnung: Platinentyp wurde geaendert."
 msgstr "Warnung: Platinentyp wurde geaendert."
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Warnung: Druckertyp wurde geaendert."
 msgstr "Warnung: Druckertyp wurde geaendert."
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "Konnten Sie das Filament entnehmen?"
 msgstr "Konnten Sie das Filament entnehmen?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Verdrahtungsfehler"
 msgstr "Verdrahtungsfehler"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr "Assistent"
 msgstr "Assistent"
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "XYZ Kal. Details"
 msgstr "XYZ Kal. Details"
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Sie koennen den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent"
 msgstr "Sie koennen den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "XYZ Kalibrierung in Ordnung. Schraeglauf wird automatisch korrigiert."
 msgstr "XYZ Kalibrierung in Ordnung. Schraeglauf wird automatisch korrigiert."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg."
 msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg."
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr "Verzoegerung"
 msgstr "Verzoegerung"
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "X-Korrektur:"
 msgstr "X-Korrektur:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glueckwunsch!"
 msgstr "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glueckwunsch!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichbar."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichbar."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Alle laden"
 msgstr "Alle laden"
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Y Entfernung vom Min"
 msgstr "Y Entfernung vom Min"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "Der Drucker beginnt mit dem Drucken einer Zickzacklinie. Drehen Sie den Knopf, bis Sie die optimale Hoehe erreicht haben. Ueberpruefen Sie die Bilder im Handbuch (Kapitel Kalibrierung)."
 msgstr "Der Drucker beginnt mit dem Drucken einer Zickzacklinie. Drehen Sie den Knopf, bis Sie die optimale Hoehe erreicht haben. Ueberpruefen Sie die Bilder im Handbuch (Kapitel Kalibrierung)."
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut."
 msgstr "Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Y-Korrektur:"
 msgstr "Y-Korrektur:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "Zurueck"
 msgstr "Zurueck"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Kontrolle"
 msgstr "Kontrolle"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Falschtriggerung"
 msgstr "Falschtriggerung"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr ""
 msgstr ""
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "HW Einstellungen"
 msgstr "HW Einstellungen"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr ""
 msgstr ""
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr "Gitter"
 msgstr "Gitter"
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr "MeshBett Ausgleich"
 msgstr "MeshBett Ausgleich"
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "MK3S-Firmware auf MK3-Drucker erkannt"
 msgstr "MK3S-Firmware auf MK3-Drucker erkannt"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "MMU Modus"
 msgstr "MMU Modus"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Moduswechsel erfolgt..."
 msgstr "Moduswechsel erfolgt..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "G-Code ist fuer eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen."
 msgstr "G-Code ist fuer eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Heizen zum Schnitt"
 msgstr "Heizen zum Schnitt"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Heizen zum Auswurf"
 msgstr "Heizen zum Auswurf"
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen."
 msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Umbenennen"
 msgstr "Umbenennen"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Auswahl"
 msgstr "Auswahl"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Sensor Info"
 msgstr "Sensor Info"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr ""
 msgstr ""
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Stahlbleche"
 msgstr "Stahlbleche"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Z-Korrektur:"
 msgstr "Z-Korrektur:"
 
 

+ 212 - 197
lang/po/new/es.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es\n"
 "Language: es\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Wed May 13 17:41:49 CEST 2020\n"
-"PO-Revision-Date: Wed May 13 17:41:49 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:24:02 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:24:02 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -20,16 +20,31 @@ msgstr ""
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgstr "[%.7s]Ajuste Z\x0aAjustado, continuar\x0ao empezar de nuevo?\x0a%cContinuar%cRepetir"
 msgstr "[%.7s]Ajuste Z\x0aAjustado, continuar\x0ao empezar de nuevo?\x0a%cContinuar%cRepetir"
 
 
-# MSG_03_OR_OLDER c=18
+# MSG_IR_03_OR_OLDER c=18
 #: messages.c:144
 #: messages.c:144
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 o mayor"
 msgstr " 0.3 o mayor"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS 0.3 o mayor"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 o mas nueva"
 msgstr " 0.4 o mas nueva"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS 0.4 o mas nueva"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "estado desconocido"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " de 9"
 msgstr " de 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "[0;0] punto offset"
 msgstr "[0;0] punto offset"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "ATENCION:\x0aDec. choque\x0adesactivada en\x0aModo silencio"
 msgstr "ATENCION:\x0aDec. choque\x0adesactivada en\x0aModo silencio"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Cancelar"
 msgstr ">Cancelar"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Ajustar-Z:"
 msgstr "Ajustar-Z:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Todo bien"
 msgstr "Todo bien"
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "Haz clic"
 msgstr "Haz clic"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "Carros Z izq./der. estan arriba maximo?"
 msgstr "Carros Z izq./der. estan arriba maximo?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr "Llevar al origen"
 msgstr "Llevar al origen"
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "Carga auto. filam."
 msgstr "Carga auto. filam."
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "La carga automatica solo funciona si el sensor de filamento esta activado..."
 msgstr "La carga automatica solo funciona si el sensor de filamento esta activado..."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "La carga automatica esta activada, pulse el dial e inserte el filamento..."
 msgstr "La carga automatica esta activada, pulse el dial e inserte el filamento..."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Longitud del eje"
 msgstr "Longitud del eje"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Eje"
 msgstr "Eje"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Base / Calentador"
 msgstr "Base / Calentador"
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Calentando Base"
 msgstr "Calentando Base"
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Corr. de la cama"
 msgstr "Corr. de la cama"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Test cinturon    "
 msgstr "Test cinturon    "
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Se fue la luz. ?Reanudar la impresion?"
 msgstr "Se fue la luz. ?Reanudar la impresion?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Calibrando posicion inicial"
 msgstr "Calibrando posicion inicial"
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Calibrar XYZ"
 msgstr "Calibrar XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Calibrar Z"
 msgstr "Calibrar Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Calibrar"
 msgstr "Calibrar"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibrando XYZ. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic."
 msgstr "Calibrando XYZ. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Calibrando Z"
 msgstr "Calibrando Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibrando Z. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic."
 msgstr "Calibrando Z. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr "Calibracion"
 msgstr "Calibracion"
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Cancelar"
 msgstr "Cancelar"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "Tarjeta retirada"
 msgstr "Tarjeta retirada"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Color no homogeneo"
 msgstr "Color no homogeneo"
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Enfriar"
 msgstr "Enfriar"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Copiar idioma seleccionado?"
 msgstr "Copiar idioma seleccionado?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr "Det. choque"
 msgstr "Det. choque"
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Escoge un filamento para la Calibracion de la Primera Capa y seleccionalo en el menu en pantalla."
 msgstr "Escoge un filamento para la Calibracion de la Primera Capa y seleccionalo en el menu en pantalla."
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Choque detectado."
 msgstr "Choque detectado."
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Choque detectado. Continuar impresion?"
 msgstr "Choque detectado. Continuar impresion?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr "Choque"
 msgstr "Choque"
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Actual"
 msgstr "Actual"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Fecha:"
 msgstr "Fecha:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Apagar motores"
 msgstr "Apagar motores"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Quieres repetir el ultimo paso para reajustar la distancia boquilla-base?"
 msgstr "Quieres repetir el ultimo paso para reajustar la distancia boquilla-base?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "Corregir-E:"
 msgstr "Corregir-E:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "Expulsando filamento"
 msgstr "Expulsando filamento"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Endstop no alcanzado"
 msgstr "Endstop no alcanzado"
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr ""
 msgstr ""
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Error - se ha sobre-escrito la memoria estatica"
 msgstr "Error - se ha sobre-escrito la memoria estatica"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Corte de filament"
 msgstr "Corte de filament"
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion."
 msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "Vent.extrusor:"
 msgstr "Vent.extrusor:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr "Info. del extrusor"
 msgstr "Info. del extrusor"
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr "Extruir"
 msgstr "Extruir"
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "Estadistica de fallos MMU"
 msgstr "Estadistica de fallos MMU"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "Autocarg.fil."
 msgstr "Autocarg.fil."
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Estadistica de fallos"
 msgstr "Estadistica de fallos"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Test ventiladores"
 msgstr "Test ventiladores"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Comprob.vent"
 msgstr "Comprob.vent"
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Es nitido el color nuevo?"
 msgstr "Es nitido el color nuevo?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Fil. no introducido"
 msgstr "Fil. no introducido"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Sensor de filamento"
 msgstr "Sensor de filamento"
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Filamento usado"
 msgstr "Filamento usado"
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Tiempo de imp.:"
 msgstr "Tiempo de imp.:"
 
 
@@ -460,13 +475,8 @@ msgstr "Tiempo de imp.:"
 msgid "FS Action"
 msgid "FS Action"
 msgstr "FS accion"
 msgstr "FS accion"
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS v0.4 o +nueva"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "Archivo incompleto. ?Continuar de todos modos?"
 msgstr "Archivo incompleto. ?Continuar de todos modos?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Cal. primera cap."
 msgstr "Cal. primera cap."
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Primero, hare el Selftest para comprobar los problemas de montaje mas comunes."
 msgstr "Primero, hare el Selftest para comprobar los problemas de montaje mas comunes."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Corrige el problema y pulsa el boton en la unidad MMU."
 msgstr "Corrige el problema y pulsa el boton en la unidad MMU."
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Flujo"
 msgstr "Flujo"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Vent. frontal?"
 msgstr "Vent. frontal?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Frontal [um]"
 msgstr "Frontal [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Ventiladores frontal/izquierdo"
 msgstr "Ventiladores frontal/izquierdo"
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Calentador/Termistor"
 msgstr "Calentador/Termistor"
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Calentadores desactivados por el temporizador de seguridad."
 msgstr "Calentadores desactivados por el temporizador de seguridad."
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Calentando..."
 msgstr "Calentando..."
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Hola, soy tu impresora Original Prusa i3. Quieres que te guie a traves de la configuracion?"
 msgstr "Hola, soy tu impresora Original Prusa i3. Quieres que te guie a traves de la configuracion?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Cambiar filamento"
 msgstr "Cambiar filamento"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Cambio correcto"
 msgstr "Cambio correcto"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Cambio correcto?"
 msgstr "Cambio correcto?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Control base cal."
 msgstr "Control base cal."
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Control endstops"
 msgstr "Control endstops"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Control fusor"
 msgstr "Control fusor"
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Comprobando sensores"
 msgstr "Comprobando sensores"
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Control sensor X"
 msgstr "Control sensor X"
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Control sensor Y"
 msgstr "Control sensor Y"
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Control sensor Z"
 msgstr "Control sensor Z"
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr "Filamento"
 msgstr "Filamento"
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Hare la calibracion XYZ. Tardara 12 min. aproximadamente."
 msgstr "Hare la calibracion XYZ. Tardara 12 min. aproximadamente."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Voy a hacer Calibracion Z ahora."
 msgstr "Voy a hacer Calibracion Z ahora."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Monitorizar"
 msgstr "Monitorizar"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Introducir filamento"
 msgstr "Introducir filamento"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Esta el filamento cargado?"
 msgstr "Esta el filamento cargado?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Ultimas impresiones fallidas"
 msgstr "Ultimas impresiones fallidas"
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Si tienes planchas de acero adicionales, calibra sus ajustes en Ajustes - Ajustes HW - Planchas acero."
 msgstr "Si tienes planchas de acero adicionales, calibra sus ajustes en Ajustes - Ajustes HW - Planchas acero."
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Vent. izquierdo?"
 msgstr "Vent. izquierdo?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Izquierda"
 msgstr "Izquierda"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Izquierda [um]"
 msgstr "Izquierda [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Correccion de Linealidad"
 msgstr "Correccion de Linealidad"
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Micropaso Eje Z"
 msgstr "Micropaso Eje Z"
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Inserte el filamento (no lo cargue) en el extrusor y luego presione el dial."
 msgstr "Inserte el filamento (no lo cargue) en el extrusor y luego presione el dial."
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Introducir filam."
 msgstr "Introducir filam."
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Cambiando color"
 msgstr "Cambiando color"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Introduciendo filam."
 msgstr "Introduciendo filam."
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Polea suelta"
 msgstr "Polea suelta"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "Cargar a la boquilla"
 msgstr "Cargar a la boquilla"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Midiendo altura del punto de calibracion"
 msgstr "Midiendo altura del punto de calibracion"
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr "Nivelacion Mesh Level"
 msgstr "Nivelacion Mesh Level"
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Restaurando temperatura..."
 msgstr "MMU OK. Restaurando temperatura..."
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Desviacion med:"
 msgstr "Desviacion med:"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr "Modo"
 msgstr "Modo"
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr "Firmware MK3 detectado en impresora MK3S"
 msgstr "Firmware MK3 detectado en impresora MK3S"
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Rend.pleno"
 msgstr "Rend.pleno"
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU2 conectado"
 msgstr "MMU2 conectado"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr ""
 msgstr ""
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Mover ejes"
 msgstr "Mover ejes"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Mover X"
 msgstr "Mover X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Mover Y"
 msgstr "Mover Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Mover Z"
 msgstr "Mover Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Sin movimiento"
 msgstr "Sin movimiento"
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "No hay tarjeta SD"
 msgstr "No hay tarjeta SD"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "No hay conexion "
 msgstr "No hay conexion "
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Ventilador no gira"
 msgstr "Ventilador no gira"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Voy a calibrar la distancia entre la punta de la boquilla y la superficie de la base."
 msgstr "Voy a calibrar la distancia entre la punta de la boquilla y la superficie de la base."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Ahora precalentare la boquilla para PLA."
 msgstr "Ahora precalentare la boquilla para PLA."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Boquilla"
 msgstr "Boquilla"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Se han encontrado ajustes anteriores. Se ajustara el PID, los pasos del extrusor, etc"
 msgstr "Se han encontrado ajustes anteriores. Se ajustara el PID, los pasos del extrusor, etc"
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Ahora retira la prueba de la lamina de acero."
 msgstr "Ahora retira la prueba de la lamina de acero."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "Vent. capa"
 msgstr "Vent. capa"
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Pausar impresion"
 msgstr "Pausar impresion"
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "Cal. PID terminada"
 msgstr "Cal. PID terminada"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "Calibracion PID"
 msgstr "Calibracion PID"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Colocar una hoja de papel sobre la superficie de impresion durante la calibracion de los primeros 4 puntos. Si la boquilla mueve el papel, apagar impresora inmediatamente."
 msgstr "Colocar una hoja de papel sobre la superficie de impresion durante la calibracion de los primeros 4 puntos. Si la boquilla mueve el papel, apagar impresora inmediatamente."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Limpia la superficie de la base, por favor, y haz clic"
 msgstr "Limpia la superficie de la base, por favor, y haz clic"
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Limpia boquilla para calibracion. Click cuando acabes."
 msgstr "Limpia boquilla para calibracion. Click cuando acabes."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Controla :"
 msgstr "Controla :"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Lee el manual y resuelve el problema. Despues, reinicia la impresora y continua con el Wizard"
 msgstr "Lee el manual y resuelve el problema. Despues, reinicia la impresora y continua con el Wizard"
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Por favor abate el rodillo de empuje (idler) y retira el filamento manualmente."
 msgstr "Por favor abate el rodillo de empuje (idler) y retira el filamento manualmente."
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Por favor retire la chapa de acero de la base calefactable."
 msgstr "Por favor retire la chapa de acero de la base calefactable."
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Por favor realiza la calibracion XYZ primero."
 msgstr "Por favor realiza la calibracion XYZ primero."
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Por Favor Espere"
 msgstr "Por Favor Espere"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Por favor retira los soportes de envio primero."
 msgstr "Por favor retira los soportes de envio primero."
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Precalienta extrusor"
 msgstr "Precalienta extrusor"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Precalentar"
 msgstr "Precalentar"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Actualize por favor"
 msgstr "Actualize por favor"
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Pulsa el dial para precalentar la boquilla y continue."
 msgstr "Pulsa el dial para precalentar la boquilla y continue."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr "Pausa"
 msgstr "Pausa"
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Impresion cancelada"
 msgstr "Impresion cancelada"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Precalent. cargar"
 msgstr "Precalent. cargar"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Precalent. descargar"
 msgstr "Precalent. descargar"
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "Vent.fusor:"
 msgstr "Vent.fusor:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Menu tarjeta SD"
 msgstr "Menu tarjeta SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "Pulsa el dial"
 msgstr "Pulsa el dial"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "Vent. extr"
 msgstr "Vent. extr"
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Por favor, coloca el filamento en el extrusor, luego presiona el dial para cargarlo."
 msgstr "Por favor, coloca el filamento en el extrusor, luego presiona el dial para cargarlo."
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Por favor, coloca el filamento en el primer tubo de la MMU, luego pulsa el dial para cargarlo."
 msgstr "Por favor, coloca el filamento en el primer tubo de la MMU, luego pulsa el dial para cargarlo."
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Por favor, cargar primero el filamento. "
 msgstr "Por favor, cargar primero el filamento. "
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr "prusa3d.es"
 msgstr "prusa3d.es"
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Trasera [um]"
 msgstr "Trasera [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Primero descargue el filamento, luego repita esta accion."
 msgstr "Primero descargue el filamento, luego repita esta accion."
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "Por favor comprueba la conexion del IR sensor y filamento esta descargado."
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Recuper. impresion  "
 msgstr "Recuper. impresion  "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr ""
 msgstr ""
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Reanudar impres."
 msgstr "Reanudar impres."
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Continuan. impresion"
 msgstr "Continuan. impresion"
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Derecha [um]"
 msgstr "Derecha [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr "Puerto RPi"
 msgstr "Puerto RPi"
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Ejecutar el Wizard borrara los valores de calibracion actuales y comenzara de nuevo. Continuar?"
 msgstr "Ejecutar el Wizard borrara los valores de calibracion actuales y comenzara de nuevo. Continuar?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Derecha"
 msgstr "Derecha"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Buscando punto de calibracion base"
 msgstr "Buscando punto de calibracion base"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Cambiar el idioma"
 msgstr "Cambiar el idioma"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Iniciar Selftest"
 msgstr "Iniciar Selftest"
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Error Selftest !"
 msgstr "Error Selftest !"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Fallo Selftest"
 msgstr "Fallo Selftest"
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Se realizara el auto-test para calibrar con precision la vuelta a la posicion inicial sin sensores."
 msgstr "Se realizara el auto-test para calibrar con precision la vuelta a la posicion inicial sin sensores."
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selecciona la temperatura para precalentar la boquilla que se ajuste a tu material. "
 msgstr "Selecciona la temperatura para precalentar la boquilla que se ajuste a tu material. "
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Establecer temp.:"
 msgstr "Establecer temp.:"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Configuracion"
 msgstr "Configuracion"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Mostrar endstops"
 msgstr "Mostrar endstops"
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Estado del sensor"
 msgstr "Estado del sensor"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. "
 msgstr "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. "
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Fecha"
 msgstr "Fecha"
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Incl.severa:"
 msgstr "Incl.severa:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr "Alfabet"
 msgstr "Alfabet"
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Ordenando archivos"
 msgstr "Ordenando archivos"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Alto"
 msgstr "Alto"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Liger.incl.:"
 msgstr "Liger.incl.:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Problema encontrado, nivelacion Z forzosa ..."
 msgstr "Problema encontrado, nivelacion Z forzosa ..."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "Una vez"
 msgstr "Una vez"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Velocidad"
 msgstr "Velocidad"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Ventilador girando"
 msgstr "Ventilador girando"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Se necesita una temperatura ambiente ente 21 y 26C y un soporte rigido."
 msgstr "Se necesita una temperatura ambiente ente 21 y 26C y un soporte rigido."
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Estadisticas "
 msgstr "Estadisticas "
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "PARADA"
 msgstr "PARADA"
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr "Soporte"
 msgstr "Soporte"
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Intercambiado"
 msgstr "Intercambiado"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Selecciona filamento:"
 msgstr "Selecciona filamento:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Cal. temp."
 msgstr "Cal. temp."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Selecciona la temperatura adecuada a tu material."
 msgstr "Selecciona la temperatura adecuada a tu material."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Calibracion temp."
 msgstr "Calibracion temp."
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Fallo de la calibracion de temperatura"
 msgstr "Fallo de la calibracion de temperatura"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "Calibracion temperatura terminada. Haz clic para continuar."
 msgstr "Calibracion temperatura terminada. Haz clic para continuar."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Sensor verificado, retire el filamento ahora."
 msgstr "Sensor verificado, retire el filamento ahora."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr "Temperatura"
 msgstr "Temperatura"
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr "Temperaturas"
 msgstr "Temperaturas"
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Todavia es necesario hacer una calibracion Z. Por favor siga el manual, capitulo Primeros pasos, seccion Calibracion del flujo."
 msgstr "Todavia es necesario hacer una calibracion Z. Por favor siga el manual, capitulo Primeros pasos, seccion Calibracion del flujo."
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Filamento total"
 msgstr "Filamento total"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Tiempo total"
 msgstr "Tiempo total"
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Ajustar"
 msgstr "Ajustar"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Fallos totales"
 msgstr "Fallos totales"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "para cargar el filamento"
 msgstr "para cargar el filamento"
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "para descargar el filamento"
 msgstr "para descargar el filamento"
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr ""
 msgstr ""
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Usado en impresion"
 msgstr "Usado en impresion"
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Voltajes"
 msgstr "Voltajes"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "desconocido"
 msgstr "desconocido"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Esperando ordenes"
 msgstr "Esperando ordenes"
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Esperando enfriamiento de la base y extrusor."
 msgstr "Esperando enfriamiento de la base y extrusor."
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "Esperando a que se enfrie la sonda PINDA"
 msgstr "Esperando a que se enfrie la sonda PINDA"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Usa unload para retirar el filamento 1 si sobresale por fuera de la parte trasera del tubo MMU. Usa Expulsar si esta escondido dentro del tubo"
 msgstr "Usa unload para retirar el filamento 1 si sobresale por fuera de la parte trasera del tubo MMU. Usa Expulsar si esta escondido dentro del tubo"
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Aviso: tanto el tipo de impresora como el tipo de la placa han cambiado."
 msgstr "Aviso: tanto el tipo de impresora como el tipo de la placa han cambiado."
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Cuidado: el tipo de placa ha cambiado."
 msgstr "Cuidado: el tipo de placa ha cambiado."
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Cuidado: Ha cambiado el tipo de impresora."
 msgstr "Cuidado: Ha cambiado el tipo de impresora."
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "?Se cargocon exito el filamento?"
 msgstr "?Se cargocon exito el filamento?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Error de conexion"
 msgstr "Error de conexion"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr ""
 msgstr ""
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "Detalles cal. XYZ"
 msgstr "Detalles cal. XYZ"
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Siempre puedes acceder al asistente desde Calibracion -> Wizard"
 msgstr "Siempre puedes acceder al asistente desde Calibracion -> Wizard"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Calibracion XYZ correcta. La inclinacion se corregira automaticamente."
 msgstr "Calibracion XYZ correcta. La inclinacion se corregira automaticamente."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Calibracion XYZ correcta. Los ejes X / Y estan ligeramente inclinados. Buen trabajo!"
 msgstr "Calibracion XYZ correcta. Los ejes X / Y estan ligeramente inclinados. Buen trabajo!"
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr "Expirar"
 msgstr "Expirar"
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "Corregir-X:"
 msgstr "Corregir-X:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibracion XYZ ok. Ejes X/Y perpendiculares. Enhorabuena!"
 msgstr "Calibracion XYZ ok. Ejes X/Y perpendiculares. Enhorabuena!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables."
 msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable."
 msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Intr. todos fil."
 msgstr "Intr. todos fil."
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados."
 msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables."
 msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable."
 msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Distancia en Y desde el min"
 msgstr "Distancia en Y desde el min"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "La impresora comenzara a imprimir una linea en zig-zag. Gira el dial hasta que la linea alcance la altura optima. Mira las fotos del manual (Capitulo de calibracion)."
 msgstr "La impresora comenzara a imprimir una linea en zig-zag. Gira el dial hasta que la linea alcance la altura optima. Mira las fotos del manual (Capitulo de calibracion)."
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "La verificacion fallo, retire el filamento e intente nuevamente."
 msgstr "La verificacion fallo, retire el filamento e intente nuevamente."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Corregir-Y:"
 msgstr "Corregir-Y:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "atras"
 msgstr "atras"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Comprobaciones"
 msgstr "Comprobaciones"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Falsa activacion"
 msgstr "Falsa activacion"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr "FINDA:"
 msgstr "FINDA:"
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "Configuracion HW"
 msgstr "Configuracion HW"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr ""
 msgstr ""
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr "Malla"
 msgstr "Malla"
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr "Nivelacion Malla Base"
 msgstr "Nivelacion Malla Base"
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "Firmware MK3S detectado en impresora MK3"
 msgstr "Firmware MK3S detectado en impresora MK3"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "Modo MMU"
 msgstr "Modo MMU"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Cambio de modo progresando ..."
 msgstr "Cambio de modo progresando ..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "Codigo G laminado para nuevo firmware. Por favor actualiza el firmware. Impresion cancelada."
 msgstr "Codigo G laminado para nuevo firmware. Por favor actualiza el firmware. Impresion cancelada."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr "PINDA:"
 msgstr "PINDA:"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Precalent. laminar"
 msgstr "Precalent. laminar"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Precalent. expulsar"
 msgstr "Precalent. expulsar"
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Diametro nozzle Impresora difiere de cod.G. Comprueba los valores en ajustes. Impresion cancelada."
 msgstr "Diametro nozzle Impresora difiere de cod.G. Comprueba los valores en ajustes. Impresion cancelada."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Renombrar"
 msgstr "Renombrar"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Seleccionar"
 msgstr "Seleccionar"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Info sensor"
 msgstr "Info sensor"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr "Asistido"
 msgstr "Asistido"
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Lamina de acero"
 msgstr "Lamina de acero"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Corregir-Z:"
 msgstr "Corregir-Z:"
 
 

+ 212 - 197
lang/po/new/fr.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fr\n"
 "Language: fr\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Wed May 13 17:42:13 CEST 2020\n"
-"PO-Revision-Date: Wed May 13 17:42:13 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:24:37 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:24:37 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -20,16 +20,31 @@ msgstr ""
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgstr "[%.7s]Ajust. du Z\x0aValeur enreg, contin\x0aou depart a zero?\x0a%cContinuer%cReset"
 msgstr "[%.7s]Ajust. du Z\x0aValeur enreg, contin\x0aou depart a zero?\x0a%cContinuer%cReset"
 
 
-# MSG_03_OR_OLDER c=18
+# MSG_IR_03_OR_OLDER c=18
 #: messages.c:144
 #: messages.c:144
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 ou +ancien"
 msgstr " 0.3 ou +ancien"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS v0.3 ou +ancien"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 ou +recent"
 msgstr " 0.4 ou +recent"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS v0.4 ou +recent"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "Etat inconnu"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " de 9"
 msgstr " de 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "Offset point [0;0]"
 msgstr "Offset point [0;0]"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode furtif"
 msgstr "ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode furtif"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Annuler"
 msgstr ">Annuler"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Ajuster Z:"
 msgstr "Ajuster Z:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Tout est correct"
 msgstr "Tout est correct"
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "et appuyez sur le bouton"
 msgstr "et appuyez sur le bouton"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "Z~carriages gauche + droite tout en haut?"
 msgstr "Z~carriages gauche + droite tout en haut?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr "Mise a 0 des axes"
 msgstr "Mise a 0 des axes"
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "Autocharge du fil."
 msgstr "Autocharge du fil."
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Chargement auto du filament uniquement si le capteur de filament est active."
 msgstr "Chargement auto du filament uniquement si le capteur de filament est active."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Chargement auto. du fil. active, appuyez sur le bouton et inserez le fil."
 msgstr "Chargement auto. du fil. active, appuyez sur le bouton et inserez le fil."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Longueur de l'axe"
 msgstr "Longueur de l'axe"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Axe"
 msgstr "Axe"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Lit / Chauffage"
 msgstr "Lit / Chauffage"
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Chauffe du lit"
 msgstr "Chauffe du lit"
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Corr. niveau plateau"
 msgstr "Corr. niveau plateau"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Test de courroie "
 msgstr "Test de courroie "
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Coupure detectee. Reprendre impression?"
 msgstr "Coupure detectee. Reprendre impression?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Calib. mise a 0"
 msgstr "Calib. mise a 0"
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Calibrer XYZ"
 msgstr "Calibrer XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Calibrer Z"
 msgstr "Calibrer Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Calibrer"
 msgstr "Calibrer"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibration de XYZ. Tournez le bouton pour faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait."
 msgstr "Calibration de XYZ. Tournez le bouton pour faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Calibration Z"
 msgstr "Calibration Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibration de Z. Tournez le bouton pour faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait."
 msgstr "Calibration de Z. Tournez le bouton pour faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Annuler"
 msgstr "Annuler"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "Carte retiree"
 msgstr "Carte retiree"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Couleur incorrecte"
 msgstr "Couleur incorrecte"
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Refroidissement"
 msgstr "Refroidissement"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Copier la langue choisie?"
 msgstr "Copier la langue choisie?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr "Detect.crash"
 msgstr "Detect.crash"
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Choisissez un filament pour la Calibration de la Premiere Couche et selectionnez-le depuis le menu a l'ecran."
 msgstr "Choisissez un filament pour la Calibration de la Premiere Couche et selectionnez-le depuis le menu a l'ecran."
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Crash detecte."
 msgstr "Crash detecte."
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Crash detecte. Poursuivre l'impression?"
 msgstr "Crash detecte. Poursuivre l'impression?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr ""
 msgstr ""
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Actuel"
 msgstr "Actuel"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Date:"
 msgstr "Date:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Desactiver moteurs"
 msgstr "Desactiver moteurs"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Voulez-vous refaire l'etape pour reajuster la hauteur entre la buse et le plateau chauffant?"
 msgstr "Voulez-vous refaire l'etape pour reajuster la hauteur entre la buse et le plateau chauffant?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "Correct-E:"
 msgstr "Correct-E:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "Le fil. remonte"
 msgstr "Le fil. remonte"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Butee non atteinte"
 msgstr "Butee non atteinte"
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr "Butee"
 msgstr "Butee"
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr "Butees"
 msgstr "Butees"
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Erreur - la memoire statique a ete ecrasee"
 msgstr "Erreur - la memoire statique a ete ecrasee"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Je coupe filament"
 msgstr "Je coupe filament"
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "ERREUR: Le capteur de filament ne repond pas, verifiez le branchement."
 msgstr "ERREUR: Le capteur de filament ne repond pas, verifiez le branchement."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr "ERREUR:"
 msgstr "ERREUR:"
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "Ventilo extrudeur:"
 msgstr "Ventilo extrudeur:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr "Infos extrudeur"
 msgstr "Infos extrudeur"
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr "Extrudeur"
 msgstr "Extrudeur"
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "Stat. d'echec MMU"
 msgstr "Stat. d'echec MMU"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "F. autocharg."
 msgstr "F. autocharg."
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Stat. d'echec"
 msgstr "Stat. d'echec"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Test du ventilateur"
 msgstr "Test du ventilateur"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Verif vent."
 msgstr "Verif vent."
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament extrude et avec bonne couleur?"
 msgstr "Filament extrude et avec bonne couleur?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Filament non charge"
 msgstr "Filament non charge"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Capteur de filament"
 msgstr "Capteur de filament"
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Filament utilise"
 msgstr "Filament utilise"
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Temps d'impression"
 msgstr "Temps d'impression"
 
 
@@ -460,13 +475,8 @@ msgstr "Temps d'impression"
 msgid "FS Action"
 msgid "FS Action"
 msgstr ""
 msgstr ""
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS v0.4 ou +recent"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "Fichier incomplet. Continuer qd meme?"
 msgstr "Fichier incomplet. Continuer qd meme?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Cal. 1ere couche"
 msgstr "Cal. 1ere couche"
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "D'abord, je vais lancer le Auto-test pour verifier les problemes d'assemblage les plus communs."
 msgstr "D'abord, je vais lancer le Auto-test pour verifier les problemes d'assemblage les plus communs."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Corrigez le probleme et appuyez sur le bouton sur la MMU."
 msgstr "Corrigez le probleme et appuyez sur le bouton sur la MMU."
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Flux"
 msgstr "Flux"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Ventilo impr avant?"
 msgstr "Ventilo impr avant?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Avant [um]"
 msgstr "Avant [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Ventilos avt/gauche"
 msgstr "Ventilos avt/gauche"
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Chauffage/Thermistor"
 msgstr "Chauffage/Thermistor"
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Chauffage desactivee par le compteur de securite."
 msgstr "Chauffage desactivee par le compteur de securite."
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Chauffe"
 msgstr "Chauffe"
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Bonjour, je suis votre imprimante Original Prusa i3. Voulez-vous que je vous guide a travers le processus d'installation?"
 msgstr "Bonjour, je suis votre imprimante Original Prusa i3. Voulez-vous que je vous guide a travers le processus d'installation?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Changer filament"
 msgstr "Changer filament"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Changement reussi!"
 msgstr "Changement reussi!"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Change correctement?"
 msgstr "Change correctement?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Verif. plateau chauf"
 msgstr "Verif. plateau chauf"
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Verification butees"
 msgstr "Verification butees"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Verif. du hotend"
 msgstr "Verif. du hotend"
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Verif. des capteurs"
 msgstr "Verif. des capteurs"
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Verification axe X"
 msgstr "Verification axe X"
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Verification axe Y"
 msgstr "Verification axe Y"
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Verification axe Z"
 msgstr "Verification axe Z"
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Je vais maintenant lancer la calibration XYZ. Cela prendra 12 min environ."
 msgstr "Je vais maintenant lancer la calibration XYZ. Cela prendra 12 min environ."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Je vais maintenant lancer la calibration Z."
 msgstr "Je vais maintenant lancer la calibration Z."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Ecran d'info"
 msgstr "Ecran d'info"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Inserez le filament"
 msgstr "Inserez le filament"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Fil. est-il charge?"
 msgstr "Fil. est-il charge?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Echecs derniere imp."
 msgstr "Echecs derniere imp."
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Si vous avez d'autres feuilles d'acier,  calibrez leurs pre-reglages dans Reglages - Config HW - Plaque en acier."
 msgstr "Si vous avez d'autres feuilles d'acier,  calibrez leurs pre-reglages dans Reglages - Config HW - Plaque en acier."
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Ventilo gauche?"
 msgstr "Ventilo gauche?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Gauche"
 msgstr "Gauche"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Gauche [um]"
 msgstr "Gauche [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Correction lin."
 msgstr "Correction lin."
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Ajuster Z en dir."
 msgstr "Ajuster Z en dir."
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Veuillez inserer le filament ( ne le chargez pas) dans l'extrudeur, puis appuyez sur le bouton."
 msgstr "Veuillez inserer le filament ( ne le chargez pas) dans l'extrudeur, puis appuyez sur le bouton."
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Charger filament"
 msgstr "Charger filament"
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Charg. de la couleur"
 msgstr "Charg. de la couleur"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Chargement du fil."
 msgstr "Chargement du fil."
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Poulie lache"
 msgstr "Poulie lache"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "Charger la buse"
 msgstr "Charger la buse"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Je mesure la hauteur de reference du point de calibrage"
 msgstr "Je mesure la hauteur de reference du point de calibrage"
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr ""
 msgstr ""
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Rechauffage de la buse..."
 msgstr "MMU OK. Rechauffage de la buse..."
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Deviat.mesuree"
 msgstr "Deviat.mesuree"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr ""
 msgstr ""
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr "Firmware MK3 detecte sur imprimante MK3S"
 msgstr "Firmware MK3 detecte sur imprimante MK3S"
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Haute puiss"
 msgstr "Haute puiss"
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU2 connecte"
 msgstr "MMU2 connecte"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr "Moteur"
 msgstr "Moteur"
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Deplacer l'axe"
 msgstr "Deplacer l'axe"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Deplacer X"
 msgstr "Deplacer X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Deplacer Y"
 msgstr "Deplacer Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Deplacer Z"
 msgstr "Deplacer Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Pas de mouvement."
 msgstr "Pas de mouvement."
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "Pas de carte SD"
 msgstr "Pas de carte SD"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr "Non"
 msgstr "Non"
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "Non connecte"
 msgstr "Non connecte"
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Ne tourne pas"
 msgstr "Ne tourne pas"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Maintenant je vais calibrer la distance entre la pointe de la buse et la surface du plateau chauffant."
 msgstr "Maintenant je vais calibrer la distance entre la pointe de la buse et la surface du plateau chauffant."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Maintenant je vais prechauffer la buse pour du PLA."
 msgstr "Maintenant je vais prechauffer la buse pour du PLA."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Buse"
 msgstr "Buse"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront regles"
 msgstr "Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront regles"
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Retirez maintenant l'impression de test de la plaque en acier."
 msgstr "Retirez maintenant l'impression de test de la plaque en acier."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "Vent. buse"
 msgstr "Vent. buse"
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Pause de l'impr."
 msgstr "Pause de l'impr."
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "Calib. PID terminee"
 msgstr "Calib. PID terminee"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "Calibration PID"
 msgstr "Calibration PID"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Placez une feuille de papier sous la buse pendant la calibration des 4 premiers points. Si la buse accroche le papier, eteignez vite l'imprimante."
 msgstr "Placez une feuille de papier sous la buse pendant la calibration des 4 premiers points. Si la buse accroche le papier, eteignez vite l'imprimante."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Nettoyez plateau chauffant en acier et appuyez sur le bouton."
 msgstr "Nettoyez plateau chauffant en acier et appuyez sur le bouton."
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Nettoyez la buse pour la calibration. Cliquez une fois fait."
 msgstr "Nettoyez la buse pour la calibration. Cliquez une fois fait."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Verifiez:"
 msgstr "Verifiez:"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Merci de consulter notre manuel et de corriger le probleme. Poursuivez alors l'assistant en redemarrant l'imprimante."
 msgstr "Merci de consulter notre manuel et de corriger le probleme. Poursuivez alors l'assistant en redemarrant l'imprimante."
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Ouvrez l'idler et retirez le filament manuellement."
 msgstr "Ouvrez l'idler et retirez le filament manuellement."
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Retirez la plaque en acier du plateau chauffant."
 msgstr "Retirez la plaque en acier du plateau chauffant."
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Veuillez d'abord lancer la calibration XYZ."
 msgstr "Veuillez d'abord lancer la calibration XYZ."
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Merci de patienter"
 msgstr "Merci de patienter"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Retirez d'abord les protections de transport."
 msgstr "Retirez d'abord les protections de transport."
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Prechauffez la buse!"
 msgstr "Prechauffez la buse!"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Prechauffage"
 msgstr "Prechauffage"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Mettez a jour le FW."
 msgstr "Mettez a jour le FW."
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Appuyez sur le bouton pour prechauffer la buse et continuer."
 msgstr "Appuyez sur le bouton pour prechauffer la buse et continuer."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr ""
 msgstr ""
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Impression annulee"
 msgstr "Impression annulee"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Chauffe pour charger"
 msgstr "Chauffe pour charger"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Chauf.pour decharger"
 msgstr "Chauf.pour decharger"
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "Vent. impr:"
 msgstr "Vent. impr:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Impr. depuis la SD"
 msgstr "Impr. depuis la SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "App. sur sur bouton"
 msgstr "App. sur sur bouton"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "Vent. impr"
 msgstr "Vent. impr"
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Veuillez inserer le filament dans l'extrudeur, puis appuyez sur le bouton pour le charger."
 msgstr "Veuillez inserer le filament dans l'extrudeur, puis appuyez sur le bouton pour le charger."
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Veuillez inserer le filament dans le premier tube du MMU, puis appuyez sur le bouton pour le charger."
 msgstr "Veuillez inserer le filament dans le premier tube du MMU, puis appuyez sur le bouton pour le charger."
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Veuillez d'abord charger un filament."
 msgstr "Veuillez d'abord charger un filament."
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Arriere [um]"
 msgstr "Arriere [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "SVP, dechargez le filament et reessayez."
 msgstr "SVP, dechargez le filament et reessayez."
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "SVP, verifiez la connexion du capteur IR et si le filament est decharge."
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Recup. impression   "
 msgstr "Recup. impression   "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr "Reinit. calib. XYZ"
 msgstr "Reinit. calib. XYZ"
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr "Reinitialiser"
 msgstr "Reinitialiser"
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Reprendre impression"
 msgstr "Reprendre impression"
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Reprise de l'impr."
 msgstr "Reprise de l'impr."
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Droite [um]"
 msgstr "Droite [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr "Port RPi"
 msgstr "Port RPi"
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Lancement de l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer?"
 msgstr "Lancement de l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr "FlshAir"
 msgstr "FlshAir"
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Droite"
 msgstr "Droite"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Recherche du point de calibration du plateau chauffant"
 msgstr "Recherche du point de calibration du plateau chauffant"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Choisir langue"
 msgstr "Choisir langue"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr "Auto-test OK"
 msgstr "Auto-test OK"
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Debut auto-test"
 msgstr "Debut auto-test"
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr "Auto-test"
 msgstr "Auto-test"
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Erreur auto-test!"
 msgstr "Erreur auto-test!"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Echec de l'auto-test"
 msgstr "Echec de l'auto-test"
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Le Selftest sera lance pour calibrer la remise a zero precise sans capteur"
 msgstr "Le Selftest sera lance pour calibrer la remise a zero precise sans capteur"
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selectionnez la temperature de prechauffage de la buse qui correspond a votre materiau."
 msgstr "Selectionnez la temperature de prechauffage de la buse qui correspond a votre materiau."
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Regler temp.:"
 msgstr "Regler temp.:"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Reglages"
 msgstr "Reglages"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Afficher butees"
 msgstr "Afficher butees"
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Etat capteur"
 msgstr "Etat capteur"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Certains fichiers ne seront pas tries. Max 100 fichiers tries par dossier."
 msgstr "Certains fichiers ne seront pas tries. Max 100 fichiers tries par dossier."
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Heure"
 msgstr "Heure"
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Deviat.sev.:"
 msgstr "Deviat.sev.:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr ""
 msgstr ""
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Tri des fichiers"
 msgstr "Tri des fichiers"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Fort"
 msgstr "Fort"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Deviat.leg.:"
 msgstr "Deviat.leg.:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Probleme rencontre, cliquez sur le bouton pour niveller l'axe Z..."
 msgstr "Probleme rencontre, cliquez sur le bouton pour niveller l'axe Z..."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "Une fois"
 msgstr "Une fois"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Vitesse"
 msgstr "Vitesse"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Tourne"
 msgstr "Tourne"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Une temperature ambiante stable de 21-26C et un support stable sont requis."
 msgstr "Une temperature ambiante stable de 21-26C et un support stable sont requis."
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Statistiques"
 msgstr "Statistiques"
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "ARRETE."
 msgstr "ARRETE."
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Echange"
 msgstr "Echange"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Selectionnez le filament:"
 msgstr "Selectionnez le filament:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Calib. Temp."
 msgstr "Calib. Temp."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Selectionnez la temperature qui correspond a votre materiau."
 msgstr "Selectionnez la temperature qui correspond a votre materiau."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Calibration temp."
 msgstr "Calibration temp."
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Echec de la calibration en temperature"
 msgstr "Echec de la calibration en temperature"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "La calibration en temperature est terminee et activee. La calibration en temperature peut etre desactivee dans le menu Reglages-> Cal. Temp."
 msgstr "La calibration en temperature est terminee et activee. La calibration en temperature peut etre desactivee dans le menu Reglages-> Cal. Temp."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Capteur verifie, retirez le filament maintenant."
 msgstr "Capteur verifie, retirez le filament maintenant."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr ""
 msgstr ""
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr ""
 msgstr ""
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Il faut toujours effectuer la Calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration."
 msgstr "Il faut toujours effectuer la Calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration."
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Filament total"
 msgstr "Filament total"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Temps total impr."
 msgstr "Temps total impr."
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Regler"
 msgstr "Regler"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Total des echecs"
 msgstr "Total des echecs"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "pour charger le fil."
 msgstr "pour charger le fil."
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "pour decharger fil."
 msgstr "pour decharger fil."
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr "Totale"
 msgstr "Totale"
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Utilise pdt impr."
 msgstr "Utilise pdt impr."
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Tensions"
 msgstr "Tensions"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "inconnu"
 msgstr "inconnu"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Attente utilisateur..."
 msgstr "Attente utilisateur..."
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Attente du refroidissement des buse et plateau chauffant"
 msgstr "Attente du refroidissement des buse et plateau chauffant"
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "Attente du refroidissement de la sonde PINDA"
 msgstr "Attente du refroidissement de la sonde PINDA"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Utilisez Remonter le fil. pour retirer le filament 1 s'il depasse du tube arriere du MMU. Utilisez ejecter s'il est cache dans le tube."
 msgstr "Utilisez Remonter le fil. pour retirer le filament 1 s'il depasse du tube arriere du MMU. Utilisez ejecter s'il est cache dans le tube."
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Attention: Types d'imprimante et de carte mere modifies"
 msgstr "Attention: Types d'imprimante et de carte mere modifies"
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Attention: Type de carte mere modifie."
 msgstr "Attention: Type de carte mere modifie."
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Attention: Type d'imprimante modifie"
 msgstr "Attention: Type d'imprimante modifie"
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "Dechargement du filament reussi?"
 msgstr "Dechargement du filament reussi?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Erreur de cablage"
 msgstr "Erreur de cablage"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr "Assistant"
 msgstr "Assistant"
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "Details calib. XYZ"
 msgstr "Details calib. XYZ"
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Vous pouvez toujours relancer l'Assistant dans Calibration > Assistant."
 msgstr "Vous pouvez toujours relancer l'Assistant dans Calibration > Assistant."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Calibration XYZ OK. L'ecart sera corrige automatiquement."
 msgstr "Calibration XYZ OK. L'ecart sera corrige automatiquement."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Calibration XYZ OK. Les axes X/Y sont legerement non perpendiculaires. Bon boulot!"
 msgstr "Calibration XYZ OK. Les axes X/Y sont legerement non perpendiculaires. Bon boulot!"
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr ""
 msgstr ""
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "Correct-X:"
 msgstr "Correct-X:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibration XYZ OK. Les axes X/Y sont perpendiculaires. Felicitations!"
 msgstr "Calibration XYZ OK. Les axes X/Y sont perpendiculaires. Felicitations!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibration XYZ compromise. Les points de calibration en avant ne sont pas atteignables."
 msgstr "Calibration XYZ compromise. Les points de calibration en avant ne sont pas atteignables."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable."
 msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Charger un par un"
 msgstr "Charger un par un"
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Echec calibration XYZ. Le point de calibration du plateau n'a pas ete trouve."
 msgstr "Echec calibration XYZ. Le point de calibration du plateau n'a pas ete trouve."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Echec calibration XYZ. Les points de calibration en avant ne sont pas atteignables."
 msgstr "Echec calibration XYZ. Les points de calibration en avant ne sont pas atteignables."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Echec calibration XYZ. Le point de calibration avant droit n'est pas atteignable."
 msgstr "Echec calibration XYZ. Le point de calibration avant droit n'est pas atteignable."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Distance Y du min"
 msgstr "Distance Y du min"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "L'imprimante commencera a  imprimer une ligne en zig-zag. Tournez le bouton jusqu'a atteindre la hauteur optimale. Consultez les photos dans le manuel (chapitre Calibration)."
 msgstr "L'imprimante commencera a  imprimer une ligne en zig-zag. Tournez le bouton jusqu'a atteindre la hauteur optimale. Consultez les photos dans le manuel (chapitre Calibration)."
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "Verification en echec, retirez le filament et reessayez."
 msgstr "Verification en echec, retirez le filament et reessayez."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Correct-Y:"
 msgstr "Correct-Y:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "Retour"
 msgstr "Retour"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Verifications"
 msgstr "Verifications"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Faux declenchement"
 msgstr "Faux declenchement"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr "FINDA:"
 msgstr "FINDA:"
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "Config HW"
 msgstr "Config HW"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr "IR:"
 msgstr "IR:"
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "Firmware MK3S detecte sur imprimante MK3"
 msgstr "Firmware MK3S detecte sur imprimante MK3"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "Mode MMU"
 msgstr "Mode MMU"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Changement de mode en cours..."
 msgstr "Changement de mode en cours..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "Le G-code a ete prepare pour une version plus recente du firmware. Veuillez mettre a jour le firmware. L'impression annulee."
 msgstr "Le G-code a ete prepare pour une version plus recente du firmware. Veuillez mettre a jour le firmware. L'impression annulee."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr "PINDA:"
 msgstr "PINDA:"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Chauffe pour couper"
 msgstr "Chauffe pour couper"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Chauf. pour remonter"
 msgstr "Chauf. pour remonter"
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Merci de verifier le parametre dans les reglages. Impression annulee."
 msgstr "Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Merci de verifier le parametre dans les reglages. Impression annulee."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Renommer"
 msgstr "Renommer"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Selectionner"
 msgstr "Selectionner"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Info capteur"
 msgstr "Info capteur"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr ""
 msgstr ""
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Plaques en acier"
 msgstr "Plaques en acier"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Correct-Z:"
 msgstr "Correct-Z:"
 
 

+ 211 - 196
lang/po/new/it.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: it\n"
 "Language: it\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Fri May 15 18:16:31 CEST 2020\n"
-"PO-Revision-Date: Fri May 15 18:16:31 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:25:10 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:25:10 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -25,11 +25,26 @@ msgstr "[%.7s]Set valori\x0aComp. Z, continuare\x0ao iniziare da zero?\x0a%cCont
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 o inferiore"
 msgstr " 0.3 o inferiore"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS 0.3 o inferiore"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 o superiore"
 msgstr " 0.4 o superiore"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS 0.4 o superiore"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "stato sconosciuto"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " su 9"
 msgstr " su 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "[0;0] punto offset"
 msgstr "[0;0] punto offset"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "ATTENZIONE:\x0aRilev. impatto\x0adisattivato in\x0aModalita silenziosa"
 msgstr "ATTENZIONE:\x0aRilev. impatto\x0adisattivato in\x0aModalita silenziosa"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Annulla"
 msgstr ">Annulla"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Compensaz. Z:"
 msgstr "Compensaz. Z:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Nessun errore"
 msgstr "Nessun errore"
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "e cliccare manopola"
 msgstr "e cliccare manopola"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "I carrelli Z sin/des sono altezza max?"
 msgstr "I carrelli Z sin/des sono altezza max?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr "Trova origine"
 msgstr "Trova origine"
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "Autocaric. filam."
 msgstr "Autocaric. filam."
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Caricamento auto. filam. disp. solo con il sensore attivo..."
 msgstr "Caricamento auto. filam. disp. solo con il sensore attivo..."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Caricamento automatico attivo, premi la manopola e inserisci il filamento."
 msgstr "Caricamento automatico attivo, premi la manopola e inserisci il filamento."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Lunghezza dell'asse"
 msgstr "Lunghezza dell'asse"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Assi"
 msgstr "Assi"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Piano/Riscald."
 msgstr "Piano/Riscald."
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Riscald. piano"
 msgstr "Riscald. piano"
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Correz. liv.piano"
 msgstr "Correz. liv.piano"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Test cinghie     "
 msgstr "Test cinghie     "
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Blackout rilevato. Recuperare la stampa?"
 msgstr "Blackout rilevato. Recuperare la stampa?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Calibrazione Home"
 msgstr "Calibrazione Home"
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Calibra XYZ"
 msgstr "Calibra XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Calibra Z"
 msgstr "Calibra Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Calibra"
 msgstr "Calibra"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibrazione XYZ. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare."
 msgstr "Calibrazione XYZ. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Calibrando Z"
 msgstr "Calibrando Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibrazione Z. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare."
 msgstr "Calibrazione Z. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr "Calibrazione"
 msgstr "Calibrazione"
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Annulla"
 msgstr "Annulla"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "SD rimossa"
 msgstr "SD rimossa"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Colore non puro"
 msgstr "Colore non puro"
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Raffredda"
 msgstr "Raffredda"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Copiare la lingua selezionata?"
 msgstr "Copiare la lingua selezionata?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr "Rileva.crash"
 msgstr "Rileva.crash"
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Scegli un filamento per la calibrazione del primo strato e selezionalo nel menu sullo schermo."
 msgstr "Scegli un filamento per la calibrazione del primo strato e selezionalo nel menu sullo schermo."
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Rilevato impatto."
 msgstr "Rilevato impatto."
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Scontro rilevato. Riprendere la stampa?"
 msgstr "Scontro rilevato. Riprendere la stampa?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr "Impatto"
 msgstr "Impatto"
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Attuale"
 msgstr "Attuale"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Data:"
 msgstr "Data:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Disabilita motori"
 msgstr "Disabilita motori"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Desideri ripetere l'ultimo passaggio per migliorare la distanza fra ugello e piatto?"
 msgstr "Desideri ripetere l'ultimo passaggio per migliorare la distanza fra ugello e piatto?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "Correzione-E:"
 msgstr "Correzione-E:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "Espellendo filamento"
 msgstr "Espellendo filamento"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Finec. fuori portata"
 msgstr "Finec. fuori portata"
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr "Finecorsa"
 msgstr "Finecorsa"
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr "Finecorsa"
 msgstr "Finecorsa"
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Errore - la memoria statica e' stata sovrascritta"
 msgstr "Errore - la memoria statica e' stata sovrascritta"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Tagliando filam."
 msgstr "Tagliando filam."
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "ERRORE: il sensore filam. non risponde,Controllare conness."
 msgstr "ERRORE: il sensore filam. non risponde,Controllare conness."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr "ERRORE:"
 msgstr "ERRORE:"
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "Ventola estr:"
 msgstr "Ventola estr:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr "Info estrusore"
 msgstr "Info estrusore"
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr "Estrusore"
 msgstr "Estrusore"
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "Stat.fall. MMU"
 msgstr "Stat.fall. MMU"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "Autocar.fil."
 msgstr "Autocar.fil."
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Stat. fallimenti"
 msgstr "Stat. fallimenti"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Test ventola"
 msgstr "Test ventola"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Control.vent"
 msgstr "Control.vent"
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filamento estruso e con colore corretto?"
 msgstr "Filamento estruso e con colore corretto?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Fil. non caricato"
 msgstr "Fil. non caricato"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Sensore filam."
 msgstr "Sensore filam."
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Fil. utilizzato"
 msgstr "Fil. utilizzato"
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Tempo di stampa"
 msgstr "Tempo di stampa"
 
 
@@ -460,13 +475,8 @@ msgstr "Tempo di stampa"
 msgid "FS Action"
 msgid "FS Action"
 msgstr "Azione FS"
 msgstr "Azione FS"
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS 0.4 o superiore"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "File incompleto. Continuare comunque?"
 msgstr "File incompleto. Continuare comunque?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Cal. primo strato"
 msgstr "Cal. primo strato"
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Per primo avviero l'autotest per controllare gli errori di assemblaggio piu comuni."
 msgstr "Per primo avviero l'autotest per controllare gli errori di assemblaggio piu comuni."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Risolvere il problema e premere il bottone sull'unita MMU. "
 msgstr "Risolvere il problema e premere il bottone sull'unita MMU. "
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Flusso"
 msgstr "Flusso"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Ventola frontale?"
 msgstr "Ventola frontale?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Fronte [um]"
 msgstr "Fronte [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Ventola frontale/sinistra"
 msgstr "Ventola frontale/sinistra"
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Riscald./Termist."
 msgstr "Riscald./Termist."
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Riscaldamento fermato dal timer di sicurezza."
 msgstr "Riscaldamento fermato dal timer di sicurezza."
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Riscaldamento..."
 msgstr "Riscaldamento..."
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Ciao, sono la tua stampante Original Prusa i3. Gradiresti un aiuto nel processo di configurazione?"
 msgstr "Ciao, sono la tua stampante Original Prusa i3. Gradiresti un aiuto nel processo di configurazione?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Cambia filamento"
 msgstr "Cambia filamento"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Cambio riuscito!"
 msgstr "Cambio riuscito!"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Cambio corretto?"
 msgstr "Cambio corretto?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Verifica piano"
 msgstr "Verifica piano"
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Verifica finecorsa"
 msgstr "Verifica finecorsa"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Verifica ugello"
 msgstr "Verifica ugello"
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Controllo sensori"
 msgstr "Controllo sensori"
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Verifica asse X"
 msgstr "Verifica asse X"
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Verifica asse Y"
 msgstr "Verifica asse Y"
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Verifica asse Z"
 msgstr "Verifica asse Z"
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr "Filamento"
 msgstr "Filamento"
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Adesso avviero una Calibrazione XYZ. Puo durare circa 12 min."
 msgstr "Adesso avviero una Calibrazione XYZ. Puo durare circa 12 min."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Adesso avviero la Calibrazione Z."
 msgstr "Adesso avviero la Calibrazione Z."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Schermata info"
 msgstr "Schermata info"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Inserire filamento"
 msgstr "Inserire filamento"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Il filamento e' stato caricato?"
 msgstr "Il filamento e' stato caricato?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Fallimenti ultima stampa"
 msgstr "Fallimenti ultima stampa"
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Se hai piastre d'acciaio aggiuntive, calibra i preset in Impostazioni - Setup HW - Piastre in Acciaio."
 msgstr "Se hai piastre d'acciaio aggiuntive, calibra i preset in Impostazioni - Setup HW - Piastre in Acciaio."
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Vent SX hotend?"
 msgstr "Vent SX hotend?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Sinistra"
 msgstr "Sinistra"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Sinistra [um]"
 msgstr "Sinistra [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Correzione lineare"
 msgstr "Correzione lineare"
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Compensazione Z"
 msgstr "Compensazione Z"
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Inserire filamento (senza caricarlo) nell'estrusore e premere la manopola."
 msgstr "Inserire filamento (senza caricarlo) nell'estrusore e premere la manopola."
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Carica filamento"
 msgstr "Carica filamento"
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Caricando colore"
 msgstr "Caricando colore"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Caricando filamento"
 msgstr "Caricando filamento"
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Puleggia lenta"
 msgstr "Puleggia lenta"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "Carica ugello"
 msgstr "Carica ugello"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Misura altezza di rif. del punto di calib."
 msgstr "Misura altezza di rif. del punto di calib."
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr "Liv. grilia piano"
 msgstr "Liv. grilia piano"
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Ripristino temperatura... "
 msgstr "MMU OK. Ripristino temperatura... "
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Deviazione mis"
 msgstr "Deviazione mis"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr "Mod."
 msgstr "Mod."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr "Firmware MK3 rilevato su stampante MK3S"
 msgstr "Firmware MK3 rilevato su stampante MK3S"
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Forte"
 msgstr "Forte"
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU2 connessa"
 msgstr "MMU2 connessa"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr "Motore"
 msgstr "Motore"
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Muovi asse"
 msgstr "Muovi asse"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Sposta X"
 msgstr "Sposta X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Sposta Y"
 msgstr "Sposta Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Sposta Z"
 msgstr "Sposta Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Nessun movimento."
 msgstr "Nessun movimento."
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "Nessuna SD"
 msgstr "Nessuna SD"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr ""
 msgstr ""
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "Non connesso"
 msgstr "Non connesso"
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Non gira"
 msgstr "Non gira"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Adesso calibro la distanza fra ugello e superfice del piatto."
 msgstr "Adesso calibro la distanza fra ugello e superfice del piatto."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Adesso preriscaldero l'ugello per PLA."
 msgstr "Adesso preriscaldero l'ugello per PLA."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Ugello"
 msgstr "Ugello"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Sono state trovate impostazioni vecchie. Verranno impostati i valori predefiniti di PID, Esteps etc."
 msgstr "Sono state trovate impostazioni vecchie. Verranno impostati i valori predefiniti di PID, Esteps etc."
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio."
 msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "Ventola estrusore"
 msgstr "Ventola estrusore"
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Metti in pausa"
 msgstr "Metti in pausa"
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "Calib. PID completa"
 msgstr "Calib. PID completa"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "Calibrazione PID"
 msgstr "Calibrazione PID"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Posizionare un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere subito la stampante."
 msgstr "Posizionare un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere subito la stampante."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Per favore pulisci il piatto, poi premi la manopola."
 msgstr "Per favore pulisci il piatto, poi premi la manopola."
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Pulire l'ugello per la calibrazione, poi fare click."
 msgstr "Pulire l'ugello per la calibrazione, poi fare click."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Verifica:"
 msgstr "Verifica:"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Per favore consulta il nostro manuale per risolvere il problema. Poi riprendi il Wizard dopo aver riavviato la stampante."
 msgstr "Per favore consulta il nostro manuale per risolvere il problema. Poi riprendi il Wizard dopo aver riavviato la stampante."
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Aprire la guida filam. e rimuovere il filam. a mano"
 msgstr "Aprire la guida filam. e rimuovere il filam. a mano"
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Rimuovete la piastra di acciaio dal piano riscaldato"
 msgstr "Rimuovete la piastra di acciaio dal piano riscaldato"
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Esegui la calibrazione XYZ prima. "
 msgstr "Esegui la calibrazione XYZ prima. "
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Attendere"
 msgstr "Attendere"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Per favore rimuovete i materiali da spedizione"
 msgstr "Per favore rimuovete i materiali da spedizione"
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Prerisc. ugello!"
 msgstr "Prerisc. ugello!"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Preriscalda"
 msgstr "Preriscalda"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Prego aggiornare."
 msgstr "Prego aggiornare."
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Premete la manopola per preriscaldare l'ugello e continuare."
 msgstr "Premete la manopola per preriscaldare l'ugello e continuare."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr "Pausa"
 msgstr "Pausa"
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Stampa interrotta"
 msgstr "Stampa interrotta"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Preriscald. carico"
 msgstr "Preriscald. carico"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Preriscald. scarico"
 msgstr "Preriscald. scarico"
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "Vent.stam:"
 msgstr "Vent.stam:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Stampa da SD"
 msgstr "Stampa da SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "Premere la manopola"
 msgstr "Premere la manopola"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "Ventola di stampa"
 msgstr "Ventola di stampa"
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Inserisci il filamento nell'estrusore, poi premi la manopola per caricarlo."
 msgstr "Inserisci il filamento nell'estrusore, poi premi la manopola per caricarlo."
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Per favore inserisci il filamento nel primo tubo del MMU, poi premi la manopola per caricarlo."
 msgstr "Per favore inserisci il filamento nel primo tubo del MMU, poi premi la manopola per caricarlo."
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Per favore prima carica il filamento."
 msgstr "Per favore prima carica il filamento."
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Retro [um]"
 msgstr "Retro [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Scaricare prima il filamento, poi ripetere l'operazione."
 msgstr "Scaricare prima il filamento, poi ripetere l'operazione."
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "Controllare il collegamento al sensore e rimuovere il filamento."
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Recupero stampa     "
 msgstr "Recupero stampa     "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr "Reset calibrazione XYZ."
 msgstr "Reset calibrazione XYZ."
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr ""
 msgstr ""
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Riprendi stampa"
 msgstr "Riprendi stampa"
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Riprendi stampa"
 msgstr "Riprendi stampa"
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Destra [um]"
 msgstr "Destra [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr "Porta RPi"
 msgstr "Porta RPi"
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Se avvi il Wizard perderai la calibrazione preesistente e dovrai ricominciare dall'inizio. Continuare?"
 msgstr "Se avvi il Wizard perderai la calibrazione preesistente e dovrai ricominciare dall'inizio. Continuare?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Destra"
 msgstr "Destra"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Ricerca dei punti di calibrazione del piano"
 msgstr "Ricerca dei punti di calibrazione del piano"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Seleziona lingua"
 msgstr "Seleziona lingua"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr "Autotest OK"
 msgstr "Autotest OK"
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Avvia autotest"
 msgstr "Avvia autotest"
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr "Autotest         "
 msgstr "Autotest         "
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Errore Autotest !"
 msgstr "Errore Autotest !"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Autotest fallito"
 msgstr "Autotest fallito"
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Verra effettuato un self test per calibrare l'homing senza sensori"
 msgstr "Verra effettuato un self test per calibrare l'homing senza sensori"
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale."
 msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale."
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Imposta temperatura"
 msgstr "Imposta temperatura"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Impostazioni"
 msgstr "Impostazioni"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Stato finecorsa"
 msgstr "Stato finecorsa"
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Stato sensore"
 msgstr "Stato sensore"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati."
 msgstr "Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati."
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Cron."
 msgstr "Cron."
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Devia.grave:"
 msgstr "Devia.grave:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr "Alfabeti"
 msgstr "Alfabeti"
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Ordinando i file"
 msgstr "Ordinando i file"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Forte"
 msgstr "Forte"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Devia.lieve:"
 msgstr "Devia.lieve:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr "Esaurim"
 msgstr "Esaurim"
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Sono stati rilevati problemi, avviato livellamento Z ..."
 msgstr "Sono stati rilevati problemi, avviato livellamento Z ..."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "Singolo"
 msgstr "Singolo"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Velocita"
 msgstr "Velocita"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Gira"
 msgstr "Gira"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Sono necessari una temperatura ambiente di 21-26C e una superficie rigida "
 msgstr "Sono necessari una temperatura ambiente di 21-26C e una superficie rigida "
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Statistiche"
 msgstr "Statistiche"
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "ARRESTATO."
 msgstr "ARRESTATO."
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr "Supporto"
 msgstr "Supporto"
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Scambiato"
 msgstr "Scambiato"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Seleziona il filamento:"
 msgstr "Seleziona il filamento:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Calib. temp."
 msgstr "Calib. temp."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Seleziona la temperatura appropriata per il tuo materiale."
 msgstr "Seleziona la temperatura appropriata per il tuo materiale."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Calib. Temp."
 msgstr "Calib. Temp."
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Calibrazione temperatura fallita"
 msgstr "Calibrazione temperatura fallita"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "Calibrazione temperatura completata e attiva. Puo essere disattivata dal menu Impostazioni ->Cal. Temp."
 msgstr "Calibrazione temperatura completata e attiva. Puo essere disattivata dal menu Impostazioni ->Cal. Temp."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Sensore verificato, rimuovere il filamento."
 msgstr "Sensore verificato, rimuovere il filamento."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr ""
 msgstr ""
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr "Temperature"
 msgstr "Temperature"
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione. "
 msgstr "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione. "
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Filamento totale"
 msgstr "Filamento totale"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Tempo stampa totale"
 msgstr "Tempo stampa totale"
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Regola"
 msgstr "Regola"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Totale fallimenti"
 msgstr "Totale fallimenti"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "per caricare il filamento"
 msgstr "per caricare il filamento"
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "per scaricare il filamento"
 msgstr "per scaricare il filamento"
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr "Totale"
 msgstr "Totale"
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Usati nella stampa"
 msgstr "Usati nella stampa"
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Voltaggi"
 msgstr "Voltaggi"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "sconosciuto"
 msgstr "sconosciuto"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Attendendo utente..."
 msgstr "Attendendo utente..."
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "In attesa del raffreddamento dell'ugello e del piano"
 msgstr "In attesa del raffreddamento dell'ugello e del piano"
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "In attesa del raffreddamento della sonda PINDA"
 msgstr "In attesa del raffreddamento della sonda PINDA"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Usate lo scaricamento per rimuovere il filamento 1 se protrude dal retro del tubo posteriore del MMu. Utilizzate l'espulsione se e nascosto nel tubo."
 msgstr "Usate lo scaricamento per rimuovere il filamento 1 se protrude dal retro del tubo posteriore del MMu. Utilizzate l'espulsione se e nascosto nel tubo."
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Attenzione: tipo di stampante e di scheda madre cambiati."
 msgstr "Attenzione: tipo di stampante e di scheda madre cambiati."
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Avviso: tipo di scheda madre cambiato"
 msgstr "Avviso: tipo di scheda madre cambiato"
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Avviso: tipo di stampante cambiato."
 msgstr "Avviso: tipo di stampante cambiato."
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "Filamento scaricato con successo?"
 msgstr "Filamento scaricato con successo?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Errore cablaggio"
 msgstr "Errore cablaggio"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr ""
 msgstr ""
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "XYZ Cal. dettagli"
 msgstr "XYZ Cal. dettagli"
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "E possibile riprendere il Wizard in qualsiasi momento attraverso Calibrazione -> Wizard."
 msgstr "E possibile riprendere il Wizard in qualsiasi momento attraverso Calibrazione -> Wizard."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Calibrazione XYZ corretta. La distorsione verra compensata automaticamente."
 msgstr "Calibrazione XYZ corretta. La distorsione verra compensata automaticamente."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!"
 msgstr "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!"
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr ""
 msgstr ""
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "Correzione-X:"
 msgstr "Correzione-X:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!"
 msgstr "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili."
 msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile."
 msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Caricare tutti"
 msgstr "Caricare tutti"
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul piano non e' stato trovato."
 msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul piano non e' stato trovato."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili."
 msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile."
 msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Distanza Y dal min"
 msgstr "Distanza Y dal min"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "La stampante iniziera a stampare una linea a zig-zag. Gira la manopola fino a che non hai raggiungo l'altezza ottimale. Verifica con le immagini nel manuale (capitolo sulla calibrazione):"
 msgstr "La stampante iniziera a stampare una linea a zig-zag. Gira la manopola fino a che non hai raggiungo l'altezza ottimale. Verifica con le immagini nel manuale (capitolo sulla calibrazione):"
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "Verifica fallita, rimuovere il filamento e riprovare."
 msgstr "Verifica fallita, rimuovere il filamento e riprovare."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Correzione-Y:"
 msgstr "Correzione-Y:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "Indietro"
 msgstr "Indietro"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Controlli"
 msgstr "Controlli"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Falso innesco"
 msgstr "Falso innesco"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr ""
 msgstr ""
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "Impostazioni HW"
 msgstr "Impostazioni HW"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr ""
 msgstr ""
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr "Griglia"
 msgstr "Griglia"
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr "Liv. griglia piano"
 msgstr "Liv. griglia piano"
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "Firmware MK3S rilevato su stampante MK3"
 msgstr "Firmware MK3S rilevato su stampante MK3"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "Mod. MMU"
 msgstr "Mod. MMU"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Cambio modalita in corso ..."
 msgstr "Cambio modalita in corso ..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "G-code processato per un firmware piu recente. Per favore aggiorna il firmware. Stampa annullata."
 msgstr "G-code processato per un firmware piu recente. Per favore aggiorna il firmware. Stampa annullata."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Preriscalda. taglio"
 msgstr "Preriscalda. taglio"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Preriscalda. espuls."
 msgstr "Preriscalda. espuls."
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Diametro ugello diverso dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata."
 msgstr "Diametro ugello diverso dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr "atteso livello %s"
 msgstr "atteso livello %s"
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Rinomina"
 msgstr "Rinomina"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Seleziona"
 msgstr "Seleziona"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Info Sensore"
 msgstr "Info Sensore"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr "Assist."
 msgstr "Assist."
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Piani d'acciaio"
 msgstr "Piani d'acciaio"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Correzione-Z:"
 msgstr "Correzione-Z:"
 
 

+ 212 - 197
lang/po/new/pl.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pl\n"
 "Language: pl\n"
 "Project-Id-Version: Prusa-Firmware\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Fri May 15 18:16:57 CEST 2020\n"
-"PO-Revision-Date: Fri May 15 18:16:57 CEST 2020\n"
+"POT-Creation-Date: Fri Sep 18 15:25:45 CEST 2020\n"
+"PO-Revision-Date: Fri Sep 18 15:25:45 CEST 2020\n"
 "Language-Team: \n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -20,16 +20,31 @@ msgstr ""
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
 msgstr "[%.7s]Live Adj. Z\x0austaw., kontynuowac\x0aczy zaczac od 0?\x0a%cKontynuuj%cReset"
 msgstr "[%.7s]Live Adj. Z\x0austaw., kontynuowac\x0aczy zaczac od 0?\x0a%cKontynuuj%cReset"
 
 
-# MSG_03_OR_OLDER c=18
+# MSG_IR_03_OR_OLDER c=18
 #: messages.c:144
 #: messages.c:144
 msgid " 0.3 or older"
 msgid " 0.3 or older"
 msgstr " 0.3 lub starszy"
 msgstr " 0.3 lub starszy"
 
 
-# MSG_04_OR_NEWER c=18
+#  c=18
+#: Marlin_main.cpp:9463
+msgid "FS v0.3 or older"
+msgstr "FS 0.3 lub starszy"
+
+# MSG_IR_04_OR_NEWER c=18
 #: messages.c:143
 #: messages.c:143
 msgid " 0.4 or newer"
 msgid " 0.4 or newer"
 msgstr " 0.4 lub nowszy"
 msgstr " 0.4 lub nowszy"
 
 
+#  c=18
+#: Marlin_main.cpp:9462
+msgid "FS v0.4 or newer"
+msgstr "FS 0.4 lub nowszy"
+
+# MSG_IR_UNKNOWN c=18
+#: messages.c:145
+msgid "unknown state"
+msgstr "Stan nieznany"
+
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
 #: messages.c:36
 #: messages.c:36
 msgid " of 4"
 msgid " of 4"
@@ -41,7 +56,7 @@ msgid " of 9"
 msgstr " z 9"
 msgstr " z 9"
 
 
 # MSG_MEASURED_OFFSET
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:3064
+#: ultralcd.cpp:3062
 msgid "[0;0] point offset"
 msgid "[0;0] point offset"
 msgstr "[0;0] przesun.punktu"
 msgstr "[0;0] przesun.punktu"
 
 
@@ -56,17 +71,17 @@ msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
 msgstr "UWAGA:\x0aWykrywanie zderzen\x0awylaczone w\x0atrybie Stealth"
 msgstr "UWAGA:\x0aWykrywanie zderzen\x0awylaczone w\x0atrybie Stealth"
 
 
 # 
 # 
-#: ultralcd.cpp:2460
+#: ultralcd.cpp:2451
 msgid ">Cancel"
 msgid ">Cancel"
 msgstr ">Anuluj"
 msgstr ">Anuluj"
 
 
 # MSG_BABYSTEPPING_Z c=15
 # MSG_BABYSTEPPING_Z c=15
-#: ultralcd.cpp:3184
+#: ultralcd.cpp:3182
 msgid "Adjusting Z:"
 msgid "Adjusting Z:"
 msgstr "Ustawianie Z:"
 msgstr "Ustawianie Z:"
 
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8677
+#: ultralcd.cpp:8704
 msgid "All correct      "
 msgid "All correct      "
 msgstr "Wszystko OK "
 msgstr "Wszystko OK "
 
 
@@ -86,12 +101,12 @@ msgid "Auto"
 msgstr ""
 msgstr ""
 
 
 # MSG_PRESS c=20 r=2
 # MSG_PRESS c=20 r=2
-#: ultralcd.cpp:2609
+#: ultralcd.cpp:2607
 msgid "and press the knob"
 msgid "and press the knob"
 msgstr "i nacisnij pokretlo"
 msgstr "i nacisnij pokretlo"
 
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3506
+#: ultralcd.cpp:3504
 msgid "Are left and right Z~carriages all up?"
 msgid "Are left and right Z~carriages all up?"
 msgstr "Obydwa konce osi sa na szczycie?"
 msgstr "Obydwa konce osi sa na szczycie?"
 
 
@@ -106,32 +121,32 @@ msgid "Auto home"
 msgstr "Auto zerowanie"
 msgstr "Auto zerowanie"
 
 
 # MSG_AUTOLOAD_FILAMENT c=18
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6961
+#: ultralcd.cpp:6993
 msgid "AutoLoad filament"
 msgid "AutoLoad filament"
 msgstr "Autoladowanie fil."
 msgstr "Autoladowanie fil."
 
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:4445
+#: ultralcd.cpp:4441
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Autoladowanie fil. dostepne tylko gdy czujnik filamentu jest wlaczony..."
 msgstr "Autoladowanie fil. dostepne tylko gdy czujnik filamentu jest wlaczony..."
 
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2804
+#: ultralcd.cpp:2802
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Autoladowanie filamentu wlaczone, nacisnij pokretlo i wsun filament..."
 msgstr "Autoladowanie filamentu wlaczone, nacisnij pokretlo i wsun filament..."
 
 
 # MSG_SELFTEST_AXIS_LENGTH
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:8325
+#: ultralcd.cpp:8371
 msgid "Axis length"
 msgid "Axis length"
 msgstr "Dlugosc osi"
 msgstr "Dlugosc osi"
 
 
 # MSG_SELFTEST_AXIS
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:8327
+#: ultralcd.cpp:8373
 msgid "Axis"
 msgid "Axis"
 msgstr "Os"
 msgstr "Os"
 
 
 # MSG_SELFTEST_BEDHEATER
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:8269
+#: ultralcd.cpp:8315
 msgid "Bed / Heater"
 msgid "Bed / Heater"
 msgstr "Stol / Grzanie"
 msgstr "Stol / Grzanie"
 
 
@@ -146,12 +161,12 @@ msgid "Bed Heating"
 msgstr "Grzanie stolu.."
 msgstr "Grzanie stolu.."
 
 
 # MSG_BED_CORRECTION_MENU
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:5861
+#: ultralcd.cpp:5889
 msgid "Bed level correct"
 msgid "Bed level correct"
 msgstr "Korekta stolu"
 msgstr "Korekta stolu"
 
 
 # MSG_BELTTEST c=17
 # MSG_BELTTEST c=17
-#: ultralcd.cpp:5841
+#: ultralcd.cpp:5869
 msgid "Belt test        "
 msgid "Belt test        "
 msgstr "Test paskow"
 msgstr "Test paskow"
 
 
@@ -186,12 +201,12 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Wykryto zanik napiecia. Kontynowac?"
 msgstr "Wykryto zanik napiecia. Kontynowac?"
 
 
 # 
 # 
-#: ultralcd.cpp:8679
+#: ultralcd.cpp:8706
 msgid "Calibrating home"
 msgid "Calibrating home"
 msgstr "Zerowanie osi"
 msgstr "Zerowanie osi"
 
 
 # MSG_CALIBRATE_BED
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:5850
+#: ultralcd.cpp:5878
 msgid "Calibrate XYZ"
 msgid "Calibrate XYZ"
 msgstr "Kalibracja XYZ"
 msgstr "Kalibracja XYZ"
 
 
@@ -201,12 +216,12 @@ msgid "Calibrate Z"
 msgstr "Kalibruj Z"
 msgstr "Kalibruj Z"
 
 
 # MSG_CALIBRATE_PINDA c=17 r=1
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4633
 msgid "Calibrate"
 msgid "Calibrate"
 msgstr "Kalibruj"
 msgstr "Kalibruj"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic."
 msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic."
 
 
@@ -216,7 +231,7 @@ msgid "Calibrating Z"
 msgstr "Kalibruje Z"
 msgstr "Kalibruje Z"
 
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3467
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic."
 msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic."
 
 
@@ -231,17 +246,17 @@ msgid "Calibration"
 msgstr "Kalibracja"
 msgstr "Kalibracja"
 
 
 # 
 # 
-#: ultralcd.cpp:4815
+#: ultralcd.cpp:4811
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Anuluj"
 msgstr "Anuluj"
 
 
 # MSG_SD_REMOVED
 # MSG_SD_REMOVED
-#: ultralcd.cpp:9090
+#: ultralcd.cpp:9142
 msgid "Card removed"
 msgid "Card removed"
 msgstr "Karta wyjeta"
 msgstr "Karta wyjeta"
 
 
 # MSG_NOT_COLOR
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2709
+#: ultralcd.cpp:2707
 msgid "Color not correct"
 msgid "Color not correct"
 msgstr "Kolor zanieczysz."
 msgstr "Kolor zanieczysz."
 
 
@@ -251,7 +266,7 @@ msgid "Cooldown"
 msgstr "Chlodzenie"
 msgstr "Chlodzenie"
 
 
 # 
 # 
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4566
 msgid "Copy selected language?"
 msgid "Copy selected language?"
 msgstr "Skopiowac wybrany jezyk?"
 msgstr "Skopiowac wybrany jezyk?"
 
 
@@ -261,7 +276,7 @@ msgid "Crash det."
 msgstr "Wykr.zderzen"
 msgstr "Wykr.zderzen"
 
 
 # 
 # 
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:4946
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
 msgstr "Wybierz filament do Kalibracji Pierwszej Warstwy i potwierdz w menu ekranowym."
 msgstr "Wybierz filament do Kalibracji Pierwszej Warstwy i potwierdz w menu ekranowym."
 
 
@@ -271,7 +286,7 @@ msgid "Crash detected."
 msgstr "Zderzenie wykryte"
 msgstr "Zderzenie wykryte"
 
 
 # 
 # 
-#: Marlin_main.cpp:607
+#: Marlin_main.cpp:605
 msgid "Crash detected. Resume print?"
 msgid "Crash detected. Resume print?"
 msgstr "Wykryto zderzenie. Wznowic druk?"
 msgstr "Wykryto zderzenie. Wznowic druk?"
 
 
@@ -281,17 +296,17 @@ msgid "Crash"
 msgstr "Zderzenie"
 msgstr "Zderzenie"
 
 
 # MSG_CURRENT c=19 r=1
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:6002
+#: ultralcd.cpp:6033
 msgid "Current"
 msgid "Current"
 msgstr "Aktualne"
 msgstr "Aktualne"
 
 
 # MSG_DATE c=17 r=1
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2163
+#: ultralcd.cpp:2164
 msgid "Date:"
 msgid "Date:"
 msgstr "Data:"
 msgstr "Data:"
 
 
 # MSG_DISABLE_STEPPERS
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:5743
+#: ultralcd.cpp:5769
 msgid "Disable steppers"
 msgid "Disable steppers"
 msgstr "Wylacz silniki"
 msgstr "Wylacz silniki"
 
 
@@ -306,12 +321,12 @@ msgid "Cont."
 msgstr "Kont."
 msgstr "Kont."
 
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:5125
+#: ultralcd.cpp:5121
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Chcesz powtorzyc ostatni krok i ponownie ustawic odleglosc miedzy dysza a stolikiem?"
 msgstr "Chcesz powtorzyc ostatni krok i ponownie ustawic odleglosc miedzy dysza a stolikiem?"
 
 
 # MSG_EXTRUDER_CORRECTION c=13
 # MSG_EXTRUDER_CORRECTION c=13
-#: ultralcd.cpp:5194
+#: ultralcd.cpp:5190
 msgid "E-correct:"
 msgid "E-correct:"
 msgstr "Korekcja-E:"
 msgstr "Korekcja-E:"
 
 
@@ -326,22 +341,22 @@ msgid "Ejecting filament"
 msgstr "Wysuwanie filamentu"
 msgstr "Wysuwanie filamentu"
 
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8293
+#: ultralcd.cpp:8339
 msgid "Endstop not hit"
 msgid "Endstop not hit"
 msgstr "Krancowka nie aktyw."
 msgstr "Krancowka nie aktyw."
 
 
 # MSG_SELFTEST_ENDSTOP
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:8287
+#: ultralcd.cpp:8333
 msgid "Endstop"
 msgid "Endstop"
 msgstr "Krancowka"
 msgstr "Krancowka"
 
 
 # MSG_SELFTEST_ENDSTOPS
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:8275
+#: ultralcd.cpp:8321
 msgid "Endstops"
 msgid "Endstops"
 msgstr "Krancowki"
 msgstr "Krancowki"
 
 
 # MSG_STACK_ERROR c=20 r=4
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:6998
+#: ultralcd.cpp:7030
 msgid "Error - static memory has been overwritten"
 msgid "Error - static memory has been overwritten"
 msgstr "Blad - pamiec statyczna zostala nadpisana"
 msgstr "Blad - pamiec statyczna zostala nadpisana"
 
 
@@ -361,7 +376,7 @@ msgid "Cutting filament"
 msgstr "Obcinanie fil."
 msgstr "Obcinanie fil."
 
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4458
+#: ultralcd.cpp:4454
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie."
 msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie."
 
 
@@ -376,12 +391,12 @@ msgid "ERROR:"
 msgstr "BLAD:"
 msgstr "BLAD:"
 
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8686
+#: ultralcd.cpp:8713
 msgid "Extruder fan:"
 msgid "Extruder fan:"
 msgstr "WentHotend:"
 msgstr "WentHotend:"
 
 
 # MSG_INFO_EXTRUDER c=18
 # MSG_INFO_EXTRUDER c=18
-#: ultralcd.cpp:2211
+#: ultralcd.cpp:2201
 msgid "Extruder info"
 msgid "Extruder info"
 msgstr "Ekstruder - info"
 msgstr "Ekstruder - info"
 
 
@@ -391,7 +406,7 @@ msgid "Extruder"
 msgstr "Ekstruder"
 msgstr "Ekstruder"
 
 
 # 
 # 
-#: ultralcd.cpp:6985
+#: ultralcd.cpp:7017
 msgid "Fail stats MMU"
 msgid "Fail stats MMU"
 msgstr "Bledy MMU"
 msgstr "Bledy MMU"
 
 
@@ -401,7 +416,7 @@ msgid "F. autoload"
 msgstr "Autolad. fil."
 msgstr "Autolad. fil."
 
 
 # 
 # 
-#: ultralcd.cpp:6982
+#: ultralcd.cpp:7014
 msgid "Fail stats"
 msgid "Fail stats"
 msgstr "Statystyki bledow"
 msgstr "Statystyki bledow"
 
 
@@ -416,7 +431,7 @@ msgid "Fan test"
 msgstr "Test wentylatora"
 msgstr "Test wentylatora"
 
 
 # MSG_FANS_CHECK
 # MSG_FANS_CHECK
-#: ultralcd.cpp:5751
+#: ultralcd.cpp:5777
 msgid "Fans check"
 msgid "Fans check"
 msgstr "Sprawd.went."
 msgstr "Sprawd.went."
 
 
@@ -436,7 +451,7 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament wychodzi z dyszy,kolor jest ok?"
 msgstr "Filament wychodzi z dyszy,kolor jest ok?"
 
 
 # MSG_NOT_LOADED c=19
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2705
+#: ultralcd.cpp:2703
 msgid "Filament not loaded"
 msgid "Filament not loaded"
 msgstr "Fil. nie zaladowany"
 msgstr "Fil. nie zaladowany"
 
 
@@ -446,12 +461,12 @@ msgid "Filament sensor"
 msgstr "Czujnik filamentu"
 msgstr "Czujnik filamentu"
 
 
 # MSG_FILAMENT_USED c=19
 # MSG_FILAMENT_USED c=19
-#: ultralcd.cpp:2869
+#: ultralcd.cpp:2867
 msgid "Filament used"
 msgid "Filament used"
 msgstr "Uzyty filament"
 msgstr "Uzyty filament"
 
 
 # MSG_PRINT_TIME c=19 r=1
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2870
+#: ultralcd.cpp:2868
 msgid "Print time"
 msgid "Print time"
 msgstr "Czas druku"
 msgstr "Czas druku"
 
 
@@ -460,13 +475,8 @@ msgstr "Czas druku"
 msgid "FS Action"
 msgid "FS Action"
 msgstr "Akcja FS"
 msgstr "Akcja FS"
 
 
-#  c=18
-#: Marlin_main.cpp:9512
-msgid "FS v0.4 or newer"
-msgstr "FS v0.4 lub nowszy"
-
 # MSG_FILE_INCOMPLETE c=20 r=3
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8814
+#: ultralcd.cpp:8841
 msgid "File incomplete. Continue anyway?"
 msgid "File incomplete. Continue anyway?"
 msgstr "Plik niekompletny. Kontynowac?"
 msgstr "Plik niekompletny. Kontynowac?"
 
 
@@ -481,7 +491,7 @@ msgid "First layer cal."
 msgstr "Kal. 1. warstwy"
 msgstr "Kal. 1. warstwy"
 
 
 # MSG_WIZARD_SELFTEST c=20 r=8
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:5046
+#: ultralcd.cpp:5042
 msgid "First, I will run the selftest to check most common assembly problems."
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Najpierw wlacze selftest w celu sprawdzenia najczestszych problemow podczas montazu."
 msgstr "Najpierw wlacze selftest w celu sprawdzenia najczestszych problemow podczas montazu."
 
 
@@ -491,12 +501,12 @@ msgid "Fix the issue and then press button on MMU unit."
 msgstr "Rozwiaz problem i wcisnij przycisk na MMU."
 msgstr "Rozwiaz problem i wcisnij przycisk na MMU."
 
 
 # MSG_FLOW
 # MSG_FLOW
-#: ultralcd.cpp:7125
+#: ultralcd.cpp:7157
 msgid "Flow"
 msgid "Flow"
 msgstr "Przeplyw"
 msgstr "Przeplyw"
 
 
 # MSG_PRUSA3D_FORUM
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2156
+#: ultralcd.cpp:2157
 msgid "forum.prusa3d.com"
 msgid "forum.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -506,22 +516,22 @@ msgid "Front print fan?"
 msgstr "Przedni went. druku?"
 msgstr "Przedni went. druku?"
 
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:3266
+#: ultralcd.cpp:3264
 msgid "Front side[um]"
 msgid "Front side[um]"
 msgstr "Przod [um]"
 msgstr "Przod [um]"
 
 
 # MSG_SELFTEST_FANS
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:8333
+#: ultralcd.cpp:8379
 msgid "Front/left fans"
 msgid "Front/left fans"
 msgstr "Przedni/lewy wentylator"
 msgstr "Przedni/lewy wentylator"
 
 
 # MSG_SELFTEST_HEATERTHERMISTOR
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:8263
+#: ultralcd.cpp:8309
 msgid "Heater/Thermistor"
 msgid "Heater/Thermistor"
 msgstr "Grzalka/Termistor"
 msgstr "Grzalka/Termistor"
 
 
 # MSG_BED_HEATING_SAFETY_DISABLED
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:9440
+#: Marlin_main.cpp:9453
 msgid "Heating disabled by safety timer."
 msgid "Heating disabled by safety timer."
 msgstr "Grzanie wylaczone przez wyl. czasowy"
 msgstr "Grzanie wylaczone przez wyl. czasowy"
 
 
@@ -536,12 +546,12 @@ msgid "Heating"
 msgstr "Grzanie..."
 msgstr "Grzanie..."
 
 
 # MSG_WIZARD_WELCOME c=20 r=7
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:5025
+#: ultralcd.cpp:5021
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Czesc, jestem Twoja drukarka Original Prusa i3. Czy potrzebujesz pomocy z ustawieniem?"
 msgstr "Czesc, jestem Twoja drukarka Original Prusa i3. Czy potrzebujesz pomocy z ustawieniem?"
 
 
 # MSG_PRUSA3D_HOWTO
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2157
+#: ultralcd.cpp:2158
 msgid "howto.prusa3d.com"
 msgid "howto.prusa3d.com"
 msgstr ""
 msgstr ""
 
 
@@ -551,12 +561,12 @@ msgid "Change filament"
 msgstr "Wymiana filamentu"
 msgstr "Wymiana filamentu"
 
 
 # MSG_CHANGE_SUCCESS
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2620
+#: ultralcd.cpp:2618
 msgid "Change success!"
 msgid "Change success!"
 msgstr "Wymiana ok!"
 msgstr "Wymiana ok!"
 
 
 # MSG_CORRECTLY c=20
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2697
+#: ultralcd.cpp:2695
 msgid "Changed correctly?"
 msgid "Changed correctly?"
 msgstr "Wymiana ok?"
 msgstr "Wymiana ok?"
 
 
@@ -566,12 +576,12 @@ msgid "Checking bed     "
 msgstr "Kontrola stolu"
 msgstr "Kontrola stolu"
 
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8668
+#: ultralcd.cpp:8695
 msgid "Checking endstops"
 msgid "Checking endstops"
 msgstr "Kontrola krancowek"
 msgstr "Kontrola krancowek"
 
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8674
+#: ultralcd.cpp:8701
 msgid "Checking hotend  "
 msgid "Checking hotend  "
 msgstr "Kontrola hotendu"
 msgstr "Kontrola hotendu"
 
 
@@ -581,17 +591,17 @@ msgid "Checking sensors "
 msgstr "Kontrola czujnikow"
 msgstr "Kontrola czujnikow"
 
 
 # MSG_SELFTEST_CHECK_X c=20
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7482
+#: ultralcd.cpp:7514
 msgid "Checking X axis  "
 msgid "Checking X axis  "
 msgstr "Kontrola osi X"
 msgstr "Kontrola osi X"
 
 
 # MSG_SELFTEST_CHECK_Y c=20
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7491
+#: ultralcd.cpp:7523
 msgid "Checking Y axis  "
 msgid "Checking Y axis  "
 msgstr "Kontrola osi Y"
 msgstr "Kontrola osi Y"
 
 
 # MSG_SELFTEST_CHECK_Z c=20
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8671
+#: ultralcd.cpp:8698
 msgid "Checking Z axis  "
 msgid "Checking Z axis  "
 msgstr "Kontrola osi Z"
 msgstr "Kontrola osi Z"
 
 
@@ -611,12 +621,12 @@ msgid "Filament"
 msgstr ""
 msgstr ""
 
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:5055
+#: ultralcd.cpp:5051
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Przeprowadze teraz kalibracje XYZ. Zajmie ok. 12 min."
 msgstr "Przeprowadze teraz kalibracje XYZ. Zajmie ok. 12 min."
 
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:5063
+#: ultralcd.cpp:5059
 msgid "I will run z calibration now."
 msgid "I will run z calibration now."
 msgstr "Przeprowadze kalibracje Z."
 msgstr "Przeprowadze kalibracje Z."
 
 
@@ -626,12 +636,12 @@ msgid "Info screen"
 msgstr "Ekran informacyjny"
 msgstr "Ekran informacyjny"
 
 
 # MSG_INSERT_FILAMENT c=20
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2605
+#: ultralcd.cpp:2603
 msgid "Insert filament"
 msgid "Insert filament"
 msgstr "Wprowadz filament"
 msgstr "Wprowadz filament"
 
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4835
+#: ultralcd.cpp:4831
 msgid "Is filament loaded?"
 msgid "Is filament loaded?"
 msgstr "Filament jest zaladowany?"
 msgstr "Filament jest zaladowany?"
 
 
@@ -646,7 +656,7 @@ msgid "Last print failures"
 msgstr "Ostatnie bledy druku"
 msgstr "Ostatnie bledy druku"
 
 
 # 
 # 
-#: ultralcd.cpp:5133
+#: ultralcd.cpp:5129
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
 msgstr "Jesli masz dodatkowe plyty stalowe, to skalibruj ich ustawienia w menu Ustawienia - Ustawienia HW - Plyty stalowe."
 msgstr "Jesli masz dodatkowe plyty stalowe, to skalibruj ich ustawienia w menu Ustawienia - Ustawienia HW - Plyty stalowe."
 
 
@@ -661,17 +671,17 @@ msgid "Left hotend fan?"
 msgstr "Lewy went hotendu?"
 msgstr "Lewy went hotendu?"
 
 
 # 
 # 
-#: ultralcd.cpp:2993
+#: ultralcd.cpp:2991
 msgid "Left"
 msgid "Left"
 msgstr "Lewa"
 msgstr "Lewa"
 
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:3264
+#: ultralcd.cpp:3262
 msgid "Left side [um]"
 msgid "Left side [um]"
 msgstr "Lewo [um]"
 msgstr "Lewo [um]"
 
 
 # 
 # 
-#: ultralcd.cpp:5766
+#: ultralcd.cpp:5792
 msgid "Lin. correction"
 msgid "Lin. correction"
 msgstr "Korekcja liniowa"
 msgstr "Korekcja liniowa"
 
 
@@ -681,7 +691,7 @@ msgid "Live adjust Z"
 msgstr "Ustaw. Live Z"
 msgstr "Ustaw. Live Z"
 
 
 #  c=20 r=6
 #  c=20 r=6
-#: ultralcd.cpp:7527
+#: ultralcd.cpp:7559
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgid "Insert the filament (do not load it) into the extruder and then press the knob."
 msgstr "Wsun filament (nie uzywaj funkcji ladowania) do ekstrudera i nacisnij pokretlo."
 msgstr "Wsun filament (nie uzywaj funkcji ladowania) do ekstrudera i nacisnij pokretlo."
 
 
@@ -691,7 +701,7 @@ msgid "Load filament"
 msgstr "Ladowanie fil."
 msgstr "Ladowanie fil."
 
 
 # MSG_LOADING_COLOR
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2645
+#: ultralcd.cpp:2643
 msgid "Loading color"
 msgid "Loading color"
 msgstr "Czyszcz. koloru"
 msgstr "Czyszcz. koloru"
 
 
@@ -701,12 +711,12 @@ msgid "Loading filament"
 msgstr "Laduje filament"
 msgstr "Laduje filament"
 
 
 # MSG_LOOSE_PULLEY c=20 r=1
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:8317
+#: ultralcd.cpp:8363
 msgid "Loose pulley"
 msgid "Loose pulley"
 msgstr "Luzne kolo pasowe"
 msgstr "Luzne kolo pasowe"
 
 
 # 
 # 
-#: ultralcd.cpp:6944
+#: ultralcd.cpp:6976
 msgid "Load to nozzle"
 msgid "Load to nozzle"
 msgstr "Zaladuj do dyszy"
 msgstr "Zaladuj do dyszy"
 
 
@@ -736,7 +746,7 @@ msgid "Measuring reference height of calibration point"
 msgstr "Okreslam wysokosc odniesienia punktu kalibracyjnego"
 msgstr "Okreslam wysokosc odniesienia punktu kalibracyjnego"
 
 
 # MSG_MESH_BED_LEVELING
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:5884
 msgid "Mesh Bed Leveling"
 msgid "Mesh Bed Leveling"
 msgstr "Poziomowanie stolu wg siatki"
 msgstr "Poziomowanie stolu wg siatki"
 
 
@@ -751,7 +761,7 @@ msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Wznawiam nagrzewanie..."
 msgstr "MMU OK. Wznawiam nagrzewanie..."
 
 
 # 
 # 
-#: ultralcd.cpp:3034
+#: ultralcd.cpp:3032
 msgid "Measured skew"
 msgid "Measured skew"
 msgstr "Zmierzony skos"
 msgstr "Zmierzony skos"
 
 
@@ -781,7 +791,7 @@ msgid "Mode"
 msgstr "Tryb"
 msgstr "Tryb"
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: Marlin_main.cpp:879
+#: Marlin_main.cpp:884
 msgid "MK3 firmware detected on MK3S printer"
 msgid "MK3 firmware detected on MK3S printer"
 msgstr "Wykryto firmware MK3 w drukarce MK3S"
 msgstr "Wykryto firmware MK3 w drukarce MK3S"
 
 
@@ -821,7 +831,7 @@ msgid "High power"
 msgstr "Wysoka wyd."
 msgstr "Wysoka wyd."
 
 
 # 
 # 
-#: ultralcd.cpp:2186
+#: ultralcd.cpp:2176
 msgid "MMU2 connected"
 msgid "MMU2 connected"
 msgstr "MMU podlaczone"
 msgstr "MMU podlaczone"
 
 
@@ -831,32 +841,32 @@ msgid "Motor"
 msgstr "Silnik"
 msgstr "Silnik"
 
 
 # MSG_MOVE_AXIS
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:5741
+#: ultralcd.cpp:5767
 msgid "Move axis"
 msgid "Move axis"
 msgstr "Ruch osi"
 msgstr "Ruch osi"
 
 
 # MSG_MOVE_X
 # MSG_MOVE_X
-#: ultralcd.cpp:4361
+#: ultralcd.cpp:4357
 msgid "Move X"
 msgid "Move X"
 msgstr "Ruch osi X"
 msgstr "Ruch osi X"
 
 
 # MSG_MOVE_Y
 # MSG_MOVE_Y
-#: ultralcd.cpp:4362
+#: ultralcd.cpp:4358
 msgid "Move Y"
 msgid "Move Y"
 msgstr "Ruch osi Y"
 msgstr "Ruch osi Y"
 
 
 # MSG_MOVE_Z
 # MSG_MOVE_Z
-#: ultralcd.cpp:4363
+#: ultralcd.cpp:4359
 msgid "Move Z"
 msgid "Move Z"
 msgstr "Ruch osi Z"
 msgstr "Ruch osi Z"
 
 
 # MSG_NO_MOVE
 # MSG_NO_MOVE
-#: Marlin_main.cpp:5541
+#: Marlin_main.cpp:5555
 msgid "No move."
 msgid "No move."
 msgstr "Brak ruchu."
 msgstr "Brak ruchu."
 
 
 # MSG_NO_CARD
 # MSG_NO_CARD
-#: ultralcd.cpp:6911
+#: ultralcd.cpp:6943
 msgid "No SD card"
 msgid "No SD card"
 msgstr "Brak karty SD"
 msgstr "Brak karty SD"
 
 
@@ -871,7 +881,7 @@ msgid "No"
 msgstr "Nie"
 msgstr "Nie"
 
 
 # MSG_SELFTEST_NOTCONNECTED
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:8265
+#: ultralcd.cpp:8311
 msgid "Not connected"
 msgid "Not connected"
 msgstr "Nie podlaczono "
 msgstr "Nie podlaczono "
 
 
@@ -886,12 +896,12 @@ msgid "Not spinning"
 msgstr "Nie kreci sie"
 msgstr "Nie kreci sie"
 
 
 # MSG_WIZARD_V2_CAL c=20 r=8
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:4942
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Kalibruje odleglosc miedzy koncowka dyszy a powierzchnia druku."
 msgstr "Kalibruje odleglosc miedzy koncowka dyszy a powierzchnia druku."
 
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:5071
+#: ultralcd.cpp:5067
 msgid "Now I will preheat nozzle for PLA."
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Nagrzewam dysze dla PLA."
 msgstr "Nagrzewam dysze dla PLA."
 
 
@@ -901,12 +911,12 @@ msgid "Nozzle"
 msgstr "Dysza"
 msgstr "Dysza"
 
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
-#: Marlin_main.cpp:1518
+#: Marlin_main.cpp:1533
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp."
 msgstr "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp."
 
 
 # 
 # 
-#: ultralcd.cpp:5062
+#: ultralcd.cpp:5058
 msgid "Now remove the test print from steel sheet."
 msgid "Now remove the test print from steel sheet."
 msgstr "Teraz zdejmij wydruk testowy ze stolu."
 msgstr "Teraz zdejmij wydruk testowy ze stolu."
 
 
@@ -916,7 +926,7 @@ msgid "Nozzle FAN"
 msgstr "WentHotend"
 msgstr "WentHotend"
 
 
 # MSG_PAUSE_PRINT
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:6875
+#: ultralcd.cpp:6907
 msgid "Pause print"
 msgid "Pause print"
 msgstr "Wstrzymanie wydruku"
 msgstr "Wstrzymanie wydruku"
 
 
@@ -931,7 +941,7 @@ msgid "PID cal. finished"
 msgstr "Kal. PID zakonczona"
 msgstr "Kal. PID zakonczona"
 
 
 # MSG_PID_EXTRUDER c=17 r=1
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:5862
+#: ultralcd.cpp:5890
 msgid "PID calibration"
 msgid "PID calibration"
 msgstr "Kalibracja PID"
 msgstr "Kalibracja PID"
 
 
@@ -946,7 +956,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr "Umiesc kartke papieru na stole roboczym i podczas pomiaru pierwszych 4 punktow. Jesli dysza zahaczy o papier, natychmiast wylacz drukarke."
 msgstr "Umiesc kartke papieru na stole roboczym i podczas pomiaru pierwszych 4 punktow. Jesli dysza zahaczy o papier, natychmiast wylacz drukarke."
 
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:5128
+#: ultralcd.cpp:5124
 msgid "Please clean heatbed and then press the knob."
 msgid "Please clean heatbed and then press the knob."
 msgstr "Oczysc powierzchnie druku i nacisnij pokretlo."
 msgstr "Oczysc powierzchnie druku i nacisnij pokretlo."
 
 
@@ -956,7 +966,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Dla prawidlowej kalibracji nalezy oczyscic dysze. Potwierdz guzikiem."
 msgstr "Dla prawidlowej kalibracji nalezy oczyscic dysze. Potwierdz guzikiem."
 
 
 # MSG_SELFTEST_PLEASECHECK
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:8257
+#: ultralcd.cpp:8303
 msgid "Please check :"
 msgid "Please check :"
 msgstr "Sprawdz :"
 msgstr "Sprawdz :"
 
 
@@ -966,7 +976,7 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Przeczytaj nasz Podrecznik druku 3D aby naprawic problem. Potem wznow Asystenta przez restart drukarki."
 msgstr "Przeczytaj nasz Podrecznik druku 3D aby naprawic problem. Potem wznow Asystenta przez restart drukarki."
 
 
 # MSG_CHECK_IDLER c=20 r=4
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:3138
+#: Marlin_main.cpp:3152
 msgid "Please open idler and remove filament manually."
 msgid "Please open idler and remove filament manually."
 msgstr "Prosze odciagnac dzwignie dociskowa ekstrudera i recznie usunac filament."
 msgstr "Prosze odciagnac dzwignie dociskowa ekstrudera i recznie usunac filament."
 
 
@@ -996,7 +1006,7 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Prosze zdjac plyte stalowa z podgrzewanego stolu."
 msgstr "Prosze zdjac plyte stalowa z podgrzewanego stolu."
 
 
 # MSG_RUN_XYZ c=20 r=4
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4583
+#: Marlin_main.cpp:4601
 msgid "Please run XYZ calibration first."
 msgid "Please run XYZ calibration first."
 msgstr "Prosze najpierw uruchomic kalibracje XYZ"
 msgstr "Prosze najpierw uruchomic kalibracje XYZ"
 
 
@@ -1011,7 +1021,7 @@ msgid "Please wait"
 msgstr "Prosze czekac"
 msgstr "Prosze czekac"
 
 
 # 
 # 
-#: ultralcd.cpp:5061
+#: ultralcd.cpp:5057
 msgid "Please remove shipping helpers first."
 msgid "Please remove shipping helpers first."
 msgstr "Najpierw usun zabezpieczenia transportowe"
 msgstr "Najpierw usun zabezpieczenia transportowe"
 
 
@@ -1021,7 +1031,7 @@ msgid "Preheat the nozzle!"
 msgstr "Nagrzej dysze!"
 msgstr "Nagrzej dysze!"
 
 
 # MSG_PREHEAT
 # MSG_PREHEAT
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6885
 msgid "Preheat"
 msgid "Preheat"
 msgstr "Grzanie"
 msgstr "Grzanie"
 
 
@@ -1041,12 +1051,12 @@ msgid "Please upgrade."
 msgstr "Prosze zaktualizowac."
 msgstr "Prosze zaktualizowac."
 
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:11526
+#: Marlin_main.cpp:11556
 msgid "Press knob to preheat nozzle and continue."
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac."
 msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac."
 
 
 # MSG_FS_PAUSE c=5
 # MSG_FS_PAUSE c=5
-#: fsensor.cpp:710
+#: fsensor.cpp:730
 msgid "Pause"
 msgid "Pause"
 msgstr "Pauza"
 msgstr "Pauza"
 
 
@@ -1061,17 +1071,17 @@ msgid "Print aborted"
 msgstr "Druk przerwany"
 msgstr "Druk przerwany"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2442
+#: ultralcd.cpp:2433
 msgid "Preheating to load"
 msgid "Preheating to load"
 msgstr "Nagrzew.do ladowania"
 msgstr "Nagrzew.do ladowania"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2446
+#: ultralcd.cpp:2437
 msgid "Preheating to unload"
 msgid "Preheating to unload"
 msgstr "Nagrzew. do rozlad."
 msgstr "Nagrzew. do rozlad."
 
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8689
+#: ultralcd.cpp:8716
 msgid "Print fan:"
 msgid "Print fan:"
 msgstr "WentWydruk:"
 msgstr "WentWydruk:"
 
 
@@ -1081,7 +1091,7 @@ msgid "Print from SD"
 msgstr "Druk z karty SD"
 msgstr "Druk z karty SD"
 
 
 # 
 # 
-#: ultralcd.cpp:2289
+#: ultralcd.cpp:2280
 msgid "Press the knob"
 msgid "Press the knob"
 msgstr "Wcisnij pokretlo"
 msgstr "Wcisnij pokretlo"
 
 
@@ -1106,37 +1116,42 @@ msgid "Print FAN"
 msgstr "WentWydruk"
 msgstr "WentWydruk"
 
 
 # 
 # 
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4922
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgid "Please insert filament into the extruder, then press the knob to load it."
 msgstr "Wsun filament do ekstrudera i nacisnij pokretlo, aby go zaladowac."
 msgstr "Wsun filament do ekstrudera i nacisnij pokretlo, aby go zaladowac."
 
 
 # 
 # 
-#: ultralcd.cpp:4921
+#: ultralcd.cpp:4917
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
 msgstr "Wsun filament do pierwszego kanalu w MMU2 i nacisnij pokretlo, aby go zaladowac."
 msgstr "Wsun filament do pierwszego kanalu w MMU2 i nacisnij pokretlo, aby go zaladowac."
 
 
 # 
 # 
-#: ultralcd.cpp:4843
+#: ultralcd.cpp:4839
 msgid "Please load filament first."
 msgid "Please load filament first."
 msgstr "Najpierw zaladuj filament."
 msgstr "Najpierw zaladuj filament."
 
 
 # MSG_PRUSA3D
 # MSG_PRUSA3D
-#: ultralcd.cpp:2155
+#: ultralcd.cpp:2156
 msgid "prusa3d.com"
 msgid "prusa3d.com"
 msgstr ""
 msgstr ""
 
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:3267
+#: ultralcd.cpp:3265
 msgid "Rear side [um]"
 msgid "Rear side [um]"
 msgstr "Tyl [um]"
 msgstr "Tyl [um]"
 
 
 #  c=20 r=4
 #  c=20 r=4
-#: ultralcd.cpp:7549
+#: ultralcd.cpp:7583
 msgid "Please unload the filament first, then repeat this action."
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Najpierw rozladuj filament, nastepnie powtorz czynnosc."
 msgstr "Najpierw rozladuj filament, nastepnie powtorz czynnosc."
 
 
+#  c=20 r=4
+#: ultralcd.cpp:7586
+msgid "Please check the IR sensor connection, unload filament if present."
+msgstr "Sprawdz polaczenie czujnika IR, rozladuj filament, jesli zaladowany."
+
 # MSG_RECOVERING_PRINT c=20
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:10883
+#: Marlin_main.cpp:10913
 msgid "Recovering print    "
 msgid "Recovering print    "
 msgstr "Wznawianie wydruku  "
 msgstr "Wznawianie wydruku  "
 
 
@@ -1151,17 +1166,17 @@ msgid "Prusa i3 MK3S OK."
 msgstr ""
 msgstr ""
 
 
 # MSG_CALIBRATE_BED_RESET
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:5867
+#: ultralcd.cpp:5895
 msgid "Reset XYZ calibr."
 msgid "Reset XYZ calibr."
 msgstr "Reset kalibr. XYZ"
 msgstr "Reset kalibr. XYZ"
 
 
 # MSG_BED_CORRECTION_RESET
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:3268
+#: ultralcd.cpp:3266
 msgid "Reset"
 msgid "Reset"
 msgstr ""
 msgstr ""
 
 
 # MSG_RESUME_PRINT
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6893
 msgid "Resume print"
 msgid "Resume print"
 msgstr "Wznowic wydruk"
 msgstr "Wznowic wydruk"
 
 
@@ -1171,7 +1186,7 @@ msgid "Resuming print"
 msgstr "Wznawianie druku"
 msgstr "Wznawianie druku"
 
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:3265
+#: ultralcd.cpp:3263
 msgid "Right side[um]"
 msgid "Right side[um]"
 msgstr "Prawo [um]"
 msgstr "Prawo [um]"
 
 
@@ -1181,7 +1196,7 @@ msgid "RPi port"
 msgstr "Port RPi"
 msgstr "Port RPi"
 
 
 # MSG_WIZARD_RERUN c=20 r=7
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4860
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Wlaczenie Asystenta usunie obecne dane kalibracyjne i zacznie od poczatku. Kontynuowac?"
 msgstr "Wlaczenie Asystenta usunie obecne dane kalibracyjne i zacznie od poczatku. Kontynuowac?"
 
 
@@ -1196,7 +1211,7 @@ msgid "FlashAir"
 msgstr ""
 msgstr ""
 
 
 # 
 # 
-#: ultralcd.cpp:2994
+#: ultralcd.cpp:2992
 msgid "Right"
 msgid "Right"
 msgstr "Prawa"
 msgstr "Prawa"
 
 
@@ -1206,27 +1221,27 @@ msgid "Searching bed calibration point"
 msgstr "Szukam punktu kalibracyjnego na stole"
 msgstr "Szukam punktu kalibracyjnego na stole"
 
 
 # MSG_LANGUAGE_SELECT
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:5779
+#: ultralcd.cpp:5807
 msgid "Select language"
 msgid "Select language"
 msgstr "Wybor jezyka"
 msgstr "Wybor jezyka"
 
 
 # MSG_SELFTEST_OK
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:7812
+#: ultralcd.cpp:7858
 msgid "Self test OK"
 msgid "Self test OK"
 msgstr "Selftest OK"
 msgstr "Selftest OK"
 
 
 # MSG_SELFTEST_START c=20
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7582
+#: ultralcd.cpp:7626
 msgid "Self test start  "
 msgid "Self test start  "
 msgstr "Selftest startuje"
 msgstr "Selftest startuje"
 
 
 # MSG_SELFTEST
 # MSG_SELFTEST
-#: ultralcd.cpp:5843
+#: ultralcd.cpp:5871
 msgid "Selftest         "
 msgid "Selftest         "
 msgstr "Selftest "
 msgstr "Selftest "
 
 
 # MSG_SELFTEST_ERROR
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:8255
+#: ultralcd.cpp:8301
 msgid "Selftest error !"
 msgid "Selftest error !"
 msgstr "Blad selftest!"
 msgstr "Blad selftest!"
 
 
@@ -1236,17 +1251,17 @@ msgid "Selftest failed  "
 msgstr "Selftest nieudany"
 msgstr "Selftest nieudany"
 
 
 # MSG_FORCE_SELFTEST c=20 r=8
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1550
+#: Marlin_main.cpp:1565
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek"
 msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek"
 
 
 # 
 # 
-#: ultralcd.cpp:5102
+#: ultralcd.cpp:5098
 msgid "Select nozzle preheat temperature which matches your material."
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu."
 msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu."
 
 
 # MSG_SET_TEMPERATURE c=19 r=1
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:3286
+#: ultralcd.cpp:3284
 msgid "Set temperature:"
 msgid "Set temperature:"
 msgstr "Ustaw temperature:"
 msgstr "Ustaw temperature:"
 
 
@@ -1271,17 +1286,17 @@ msgid "Settings"
 msgstr "Ustawienia"
 msgstr "Ustawienia"
 
 
 # MSG_SHOW_END_STOPS c=18
 # MSG_SHOW_END_STOPS c=18
-#: ultralcd.cpp:5864
+#: ultralcd.cpp:5892
 msgid "Show end stops"
 msgid "Show end stops"
 msgstr "Pokaz krancowki"
 msgstr "Pokaz krancowki"
 
 
 # 
 # 
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4004
 msgid "Sensor state"
 msgid "Sensor state"
 msgstr "Stan czujnikow"
 msgstr "Stan czujnikow"
 
 
 # MSG_FILE_CNT c=20 r=6
 # MSG_FILE_CNT c=20 r=6
-#: cardreader.cpp:738
+#: cardreader.cpp:736
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
 msgstr "Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100."
 msgstr "Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100."
 
 
@@ -1301,7 +1316,7 @@ msgid "Time"
 msgstr "Czas"
 msgstr "Czas"
 
 
 # 
 # 
-#: ultralcd.cpp:3037
+#: ultralcd.cpp:3035
 msgid "Severe skew:"
 msgid "Severe skew:"
 msgstr "Znaczny skos:"
 msgstr "Znaczny skos:"
 
 
@@ -1311,7 +1326,7 @@ msgid "Alphabet"
 msgstr "Alfab"
 msgstr "Alfab"
 
 
 # MSG_SORTING c=20 r=1
 # MSG_SORTING c=20 r=1
-#: cardreader.cpp:745
+#: cardreader.cpp:743
 msgid "Sorting files"
 msgid "Sorting files"
 msgstr "Sortowanie plikow"
 msgstr "Sortowanie plikow"
 
 
@@ -1321,7 +1336,7 @@ msgid "Loud"
 msgstr "Glosny"
 msgstr "Glosny"
 
 
 # 
 # 
-#: ultralcd.cpp:3036
+#: ultralcd.cpp:3034
 msgid "Slight skew:"
 msgid "Slight skew:"
 msgstr "Lekki skos:"
 msgstr "Lekki skos:"
 
 
@@ -1336,7 +1351,7 @@ msgid "Runouts"
 msgstr "Konce f"
 msgstr "Konce f"
 
 
 # 
 # 
-#: Marlin_main.cpp:5101
+#: Marlin_main.cpp:5115
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Wykryto problem, wymuszono poziomowanie osi Z."
 msgstr "Wykryto problem, wymuszono poziomowanie osi Z."
 
 
@@ -1346,7 +1361,7 @@ msgid "Once"
 msgstr "1-raz"
 msgstr "1-raz"
 
 
 # MSG_SPEED
 # MSG_SPEED
-#: ultralcd.cpp:7119
+#: ultralcd.cpp:7151
 msgid "Speed"
 msgid "Speed"
 msgstr "Predkosc"
 msgstr "Predkosc"
 
 
@@ -1356,12 +1371,12 @@ msgid "Spinning"
 msgstr "Kreci sie"
 msgstr "Kreci sie"
 
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4596
+#: Marlin_main.cpp:4614
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Potrzebna jest stabilna temperatura otoczenia 21-26C i stabilne podloze."
 msgstr "Potrzebna jest stabilna temperatura otoczenia 21-26C i stabilne podloze."
 
 
 # MSG_STATISTICS
 # MSG_STATISTICS
-#: ultralcd.cpp:6978
+#: ultralcd.cpp:7010
 msgid "Statistics  "
 msgid "Statistics  "
 msgstr "Statystyki"
 msgstr "Statystyki"
 
 
@@ -1376,17 +1391,17 @@ msgid "STOPPED. "
 msgstr "ZATRZYMANO."
 msgstr "ZATRZYMANO."
 
 
 # MSG_SUPPORT
 # MSG_SUPPORT
-#: ultralcd.cpp:6987
+#: ultralcd.cpp:7019
 msgid "Support"
 msgid "Support"
 msgstr "Wsparcie"
 msgstr "Wsparcie"
 
 
 # MSG_SELFTEST_SWAPPED
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:8335
+#: ultralcd.cpp:8381
 msgid "Swapped"
 msgid "Swapped"
 msgstr "Zamieniono"
 msgstr "Zamieniono"
 
 
 # 
 # 
-#: ultralcd.cpp:4814
+#: ultralcd.cpp:4810
 msgid "Select filament:"
 msgid "Select filament:"
 msgstr "Wybierz filament:"
 msgstr "Wybierz filament:"
 
 
@@ -1396,17 +1411,17 @@ msgid "Temp. cal."
 msgstr "Kalib. temp."
 msgstr "Kalib. temp."
 
 
 # 
 # 
-#: ultralcd.cpp:4955
+#: ultralcd.cpp:4951
 msgid "Select temperature which matches your material."
 msgid "Select temperature which matches your material."
 msgstr "Wybierz temperature, ktora odpowiada Twojemu filamentowi."
 msgstr "Wybierz temperature, ktora odpowiada Twojemu filamentowi."
 
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:5873
+#: ultralcd.cpp:5903
 msgid "Temp. calibration"
 msgid "Temp. calibration"
 msgstr "Kalibracja temp."
 msgstr "Kalibracja temp."
 
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3933
+#: ultralcd.cpp:3930
 msgid "Temperature calibration failed"
 msgid "Temperature calibration failed"
 msgstr "Kalibracja temperaturowa nieudana"
 msgstr "Kalibracja temperaturowa nieudana"
 
 
@@ -1416,17 +1431,17 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "Kalibracja temperaturowa zakonczona i wlaczona. Moze byc wylaczona z menu Ustawienia -> Kalibracja temp."
 msgstr "Kalibracja temperaturowa zakonczona i wlaczona. Moze byc wylaczona z menu Ustawienia -> Kalibracja temp."
 
 
 #  c=20 r=3
 #  c=20 r=3
-#: ultralcd.cpp:7554
+#: ultralcd.cpp:7590
 msgid "Sensor verified, remove the filament now."
 msgid "Sensor verified, remove the filament now."
 msgstr "Czujnik sprawdzony, wyciagnij filament."
 msgstr "Czujnik sprawdzony, wyciagnij filament."
 
 
 # MSG_TEMPERATURE
 # MSG_TEMPERATURE
-#: ultralcd.cpp:5739
+#: ultralcd.cpp:5765
 msgid "Temperature"
 msgid "Temperature"
 msgstr "Temperatura"
 msgstr "Temperatura"
 
 
 # MSG_MENU_TEMPERATURES c=15 r=1
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2218
+#: ultralcd.cpp:2208
 msgid "Temperatures"
 msgid "Temperatures"
 msgstr "Temperatury"
 msgstr "Temperatury"
 
 
@@ -1436,17 +1451,17 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Musimy przeprowadzic kalibracje Z. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Kalibracja."
 msgstr "Musimy przeprowadzic kalibracje Z. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Kalibracja."
 
 
 # 
 # 
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2889
 msgid "Total filament"
 msgid "Total filament"
 msgstr "Zuzycie filamentu"
 msgstr "Zuzycie filamentu"
 
 
 # 
 # 
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2890
 msgid "Total print time"
 msgid "Total print time"
 msgstr "Laczny czas druku"
 msgstr "Laczny czas druku"
 
 
 # MSG_TUNE
 # MSG_TUNE
-#: ultralcd.cpp:6850
+#: ultralcd.cpp:6882
 msgid "Tune"
 msgid "Tune"
 msgstr "Strojenie"
 msgstr "Strojenie"
 
 
@@ -1461,12 +1476,12 @@ msgid "Total failures"
 msgstr "Suma bledow"
 msgstr "Suma bledow"
 
 
 # 
 # 
-#: ultralcd.cpp:2296
+#: ultralcd.cpp:2287
 msgid "to load filament"
 msgid "to load filament"
 msgstr "aby zaladow. fil."
 msgstr "aby zaladow. fil."
 
 
 # 
 # 
-#: ultralcd.cpp:2300
+#: ultralcd.cpp:2291
 msgid "to unload filament"
 msgid "to unload filament"
 msgstr "aby rozlad. filament"
 msgstr "aby rozlad. filament"
 
 
@@ -1486,32 +1501,32 @@ msgid "Total"
 msgstr "Suma"
 msgstr "Suma"
 
 
 # MSG_USED c=19 r=1
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:6001
+#: ultralcd.cpp:6032
 msgid "Used during print"
 msgid "Used during print"
 msgstr "Uzyte podczas druku"
 msgstr "Uzyte podczas druku"
 
 
 # MSG_MENU_VOLTAGES c=15 r=1
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2221
+#: ultralcd.cpp:2211
 msgid "Voltages"
 msgid "Voltages"
 msgstr "Napiecia"
 msgstr "Napiecia"
 
 
 # 
 # 
-#: ultralcd.cpp:2194
+#: ultralcd.cpp:2184
 msgid "unknown"
 msgid "unknown"
 msgstr "nieznane"
 msgstr "nieznane"
 
 
 # MSG_USERWAIT
 # MSG_USERWAIT
-#: Marlin_main.cpp:5511
+#: Marlin_main.cpp:5525
 msgid "Wait for user..."
 msgid "Wait for user..."
 msgstr "Czekam na uzytkownika..."
 msgstr "Czekam na uzytkownika..."
 
 
 # MSG_WAITING_TEMP c=20 r=3
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3434
+#: ultralcd.cpp:3432
 msgid "Waiting for nozzle and bed cooling"
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Oczekiwanie na wychlodzenie dyszy i stolu"
 msgstr "Oczekiwanie na wychlodzenie dyszy i stolu"
 
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3395
+#: ultralcd.cpp:3393
 msgid "Waiting for PINDA probe cooling"
 msgid "Waiting for PINDA probe cooling"
 msgstr "Czekam az spadnie temp. sondy PINDA"
 msgstr "Czekam az spadnie temp. sondy PINDA"
 
 
@@ -1521,22 +1536,22 @@ msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU t
 msgstr "Uzyj opcji Rozladuj jesli filament wystaje z tylnej rurki MMU. Uzyj opcji Wysun jesli wciaz jest w srodku."
 msgstr "Uzyj opcji Rozladuj jesli filament wystaje z tylnej rurki MMU. Uzyj opcji Wysun jesli wciaz jest w srodku."
 
 
 # MSG_CHANGED_BOTH c=20 r=4
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1510
+#: Marlin_main.cpp:1525
 msgid "Warning: both printer type and motherboard type changed."
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Ostrzezenie: typ drukarki i plyta glowna ulegly zmianie."
 msgstr "Ostrzezenie: typ drukarki i plyta glowna ulegly zmianie."
 
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1502
+#: Marlin_main.cpp:1517
 msgid "Warning: motherboard type changed."
 msgid "Warning: motherboard type changed."
 msgstr "Ostrzezenie: plyta glowna ulegla zmianie."
 msgstr "Ostrzezenie: plyta glowna ulegla zmianie."
 
 
 # MSG_CHANGED_PRINTER c=20 r=4
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1506
+#: Marlin_main.cpp:1521
 msgid "Warning: printer type changed."
 msgid "Warning: printer type changed."
 msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie"
 msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie"
 
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:3128
+#: Marlin_main.cpp:3142
 msgid "Was filament unload successful?"
 msgid "Was filament unload successful?"
 msgstr "Rozladowanie fil. ok?"
 msgstr "Rozladowanie fil. ok?"
 
 
@@ -1546,12 +1561,12 @@ msgid "Wiring error"
 msgstr "Blad polaczenia"
 msgstr "Blad polaczenia"
 
 
 # MSG_WIZARD c=17 r=1
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5862
 msgid "Wizard"
 msgid "Wizard"
 msgstr "Asystent"
 msgstr "Asystent"
 
 
 # MSG_XYZ_DETAILS c=18
 # MSG_XYZ_DETAILS c=18
-#: ultralcd.cpp:2210
+#: ultralcd.cpp:2200
 msgid "XYZ cal. details"
 msgid "XYZ cal. details"
 msgstr "Szczegoly kal. XYZ"
 msgstr "Szczegoly kal. XYZ"
 
 
@@ -1571,12 +1586,12 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Zawsze mozesz uruchomic Asystenta ponownie przez Kalibracja -> Asystent."
 msgstr "Zawsze mozesz uruchomic Asystenta ponownie przez Kalibracja -> Asystent."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3904
+#: ultralcd.cpp:3902
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Kalibracja XYZ pomyslna. Skos bedzie automatycznie korygowany."
 msgstr "Kalibracja XYZ pomyslna. Skos bedzie automatycznie korygowany."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3901
+#: ultralcd.cpp:3899
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Kalibracja XYZ prawidlowa. Osie X/Y lekko skosne. Dobra robota!"
 msgstr "Kalibracja XYZ prawidlowa. Osie X/Y lekko skosne. Dobra robota!"
 
 
@@ -1586,62 +1601,62 @@ msgid "Timeout"
 msgstr "Wyl. czas."
 msgstr "Wyl. czas."
 
 
 # MSG_X_CORRECTION c=13
 # MSG_X_CORRECTION c=13
-#: ultralcd.cpp:5190
+#: ultralcd.cpp:5186
 msgid "X-correct:"
 msgid "X-correct:"
 msgstr "Korekcja-X:"
 msgstr "Korekcja-X:"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3898
+#: ultralcd.cpp:3896
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Kalibracja XYZ ok. Osie X/Y sa prostopadle. Gratulacje!"
 msgstr "Kalibracja XYZ ok. Osie X/Y sa prostopadle. Gratulacje!"
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3882
+#: ultralcd.cpp:3880
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne."
 msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne."
 
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3885
+#: ultralcd.cpp:3883
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny."
 msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny."
 
 
 # MSG_LOAD_ALL c=17
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:6261
+#: ultralcd.cpp:6292
 msgid "Load all"
 msgid "Load all"
 msgstr "Zalad. wszystkie"
 msgstr "Zalad. wszystkie"
 
 
 # 
 # 
-#: ultralcd.cpp:3864
+#: ultralcd.cpp:3862
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych."
 msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych."
 
 
 # 
 # 
-#: ultralcd.cpp:3870
+#: ultralcd.cpp:3868
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki."
 msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki."
 
 
 # 
 # 
-#: ultralcd.cpp:3873
+#: ultralcd.cpp:3871
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki."
 msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki."
 
 
 # 
 # 
-#: ultralcd.cpp:2991
+#: ultralcd.cpp:2989
 msgid "Y distance from min"
 msgid "Y distance from min"
 msgstr "Dystans od 0 w osi Y"
 msgstr "Dystans od 0 w osi Y"
 
 
 # 
 # 
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4954
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
 msgstr "Drukarka zacznie drukowanie linii w ksztalcie zygzaka. Ustaw optymalna wysokosc obracajac pokretlo. Porownaj z ilustracjami w Podreczniku (rozdzial Kalibracja)."
 msgstr "Drukarka zacznie drukowanie linii w ksztalcie zygzaka. Ustaw optymalna wysokosc obracajac pokretlo. Porownaj z ilustracjami w Podreczniku (rozdzial Kalibracja)."
 
 
 #  c=20 r=5
 #  c=20 r=5
-#: ultralcd.cpp:7558
+#: ultralcd.cpp:7594
 msgid "Verification failed, remove the filament and try again."
 msgid "Verification failed, remove the filament and try again."
 msgstr "Niepowodzenie sprawdzenia, wyciagnij filament i sprobuj ponownie."
 msgstr "Niepowodzenie sprawdzenia, wyciagnij filament i sprobuj ponownie."
 
 
 # MSG_Y_CORRECTION c=13
 # MSG_Y_CORRECTION c=13
-#: ultralcd.cpp:5191
+#: ultralcd.cpp:5187
 msgid "Y-correct:"
 msgid "Y-correct:"
 msgstr "Korekcja-Y:"
 msgstr "Korekcja-Y:"
 
 
@@ -1661,17 +1676,17 @@ msgid "Back"
 msgstr "Wstecz"
 msgstr "Wstecz"
 
 
 # 
 # 
-#: ultralcd.cpp:5724
+#: ultralcd.cpp:5742
 msgid "Checks"
 msgid "Checks"
 msgstr "Testy"
 msgstr "Testy"
 
 
 # 
 # 
-#: ultralcd.cpp:8349
+#: ultralcd.cpp:8395
 msgid "False triggering"
 msgid "False triggering"
 msgstr "Falszywy alarm"
 msgstr "Falszywy alarm"
 
 
 # 
 # 
-#: ultralcd.cpp:4013
+#: ultralcd.cpp:4009
 msgid "FINDA:"
 msgid "FINDA:"
 msgstr ""
 msgstr ""
 
 
@@ -1696,7 +1711,7 @@ msgid "HW Setup"
 msgstr "Ustawienia HW"
 msgstr "Ustawienia HW"
 
 
 # 
 # 
-#: ultralcd.cpp:4017
+#: ultralcd.cpp:4013
 msgid "IR:"
 msgid "IR:"
 msgstr ""
 msgstr ""
 
 
@@ -1711,12 +1726,12 @@ msgid "Mesh"
 msgstr "Siatka"
 msgstr "Siatka"
 
 
 # 
 # 
-#: ultralcd.cpp:5763
+#: ultralcd.cpp:5789
 msgid "Mesh bed leveling"
 msgid "Mesh bed leveling"
 msgstr "Poziomowanie stolu"
 msgstr "Poziomowanie stolu"
 
 
 # 
 # 
-#: Marlin_main.cpp:872
+#: Marlin_main.cpp:877
 msgid "MK3S firmware detected on MK3 printer"
 msgid "MK3S firmware detected on MK3 printer"
 msgstr "Wykryto firmware MK3S w drukarce MK3"
 msgstr "Wykryto firmware MK3S w drukarce MK3"
 
 
@@ -1726,7 +1741,7 @@ msgid "MMU Mode"
 msgstr "Tryb MMU"
 msgstr "Tryb MMU"
 
 
 # 
 # 
-#: ultralcd.cpp:4494
+#: ultralcd.cpp:4490
 msgid "Mode change in progress ..."
 msgid "Mode change in progress ..."
 msgstr "Trwa zmiana trybu..."
 msgstr "Trwa zmiana trybu..."
 
 
@@ -1771,17 +1786,17 @@ msgid "G-code sliced for a newer firmware. Please update the firmware. Print can
 msgstr "G-code pociety dla nowszego firmware. Zaktualizuj firmware. Druk anulowany."
 msgstr "G-code pociety dla nowszego firmware. Zaktualizuj firmware. Druk anulowany."
 
 
 # 
 # 
-#: ultralcd.cpp:4009
+#: ultralcd.cpp:4005
 msgid "PINDA:"
 msgid "PINDA:"
 msgstr ""
 msgstr ""
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2452
+#: ultralcd.cpp:2443
 msgid "Preheating to cut"
 msgid "Preheating to cut"
 msgstr "Nagrzew. obciecia"
 msgstr "Nagrzew. obciecia"
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:2449
+#: ultralcd.cpp:2440
 msgid "Preheating to eject"
 msgid "Preheating to eject"
 msgstr "Nagrzew. wysuniecia"
 msgstr "Nagrzew. wysuniecia"
 
 
@@ -1796,22 +1811,22 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
 msgstr "Srednica dyszy rozni sie od tej w G-code. Sprawdz ustawienia. Druk anulowany."
 msgstr "Srednica dyszy rozni sie od tej w G-code. Sprawdz ustawienia. Druk anulowany."
 
 
 #  c=20
 #  c=20
-#: ultralcd.cpp:8355
+#: ultralcd.cpp:8401
 msgid "%s level expected"
 msgid "%s level expected"
 msgstr "Oczekiwano wersji %s"
 msgstr "Oczekiwano wersji %s"
 
 
 # 
 # 
-#: ultralcd.cpp:6814
+#: ultralcd.cpp:6846
 msgid "Rename"
 msgid "Rename"
 msgstr "Zmien nazwe"
 msgstr "Zmien nazwe"
 
 
 # 
 # 
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6839
 msgid "Select"
 msgid "Select"
 msgstr "Wybierz"
 msgstr "Wybierz"
 
 
 # 
 # 
-#: ultralcd.cpp:2212
+#: ultralcd.cpp:2202
 msgid "Sensor info"
 msgid "Sensor info"
 msgstr "Info o sensorach"
 msgstr "Info o sensorach"
 
 
@@ -1826,12 +1841,12 @@ msgid "Assist"
 msgstr "Asyst."
 msgstr "Asyst."
 
 
 #  c=18
 #  c=18
-#: ultralcd.cpp:5722
+#: ultralcd.cpp:5740
 msgid "Steel sheets"
 msgid "Steel sheets"
 msgstr "Plyty stalowe"
 msgstr "Plyty stalowe"
 
 
 # MSG_Z_CORRECTION c=13
 # MSG_Z_CORRECTION c=13
-#: ultralcd.cpp:5192
+#: ultralcd.cpp:5188
 msgid "Z-correct:"
 msgid "Z-correct:"
 msgstr "Korekcja-Z:"
 msgstr "Korekcja-Z:"