Forráskód Böngészése

Merge branch 'MK3' into PFW-210

MRprusa3d 5 éve
szülő
commit
80c3420a12
58 módosított fájl, 6709 hozzáadás és 4203 törlés
  1. 20 0
      .gitignore
  2. 4 3
      Firmware/Configuration.h
  3. 16 4
      Firmware/Marlin.h
  4. 166 142
      Firmware/Marlin_main.cpp
  5. 9 9
      Firmware/Sd2Card.cpp
  6. 3 3
      Firmware/Timer.cpp
  7. 2 1
      Firmware/TimerRemaining.h
  8. 4 4
      Firmware/cardreader.cpp
  9. 6 6
      Firmware/cmdqueue.cpp
  10. 103 60
      Firmware/fsensor.cpp
  11. 3 1
      Firmware/fsensor.h
  12. 1 1
      Firmware/lcd.cpp
  13. 2 1
      Firmware/menu.cpp
  14. 1 1
      Firmware/messages.c
  15. 47 38
      Firmware/mmu.cpp
  16. 2 2
      Firmware/mmu.h
  17. 2 5
      Firmware/pins_Einsy_1_0.h
  18. 1 1
      Firmware/pins_Rambo_1_0.h
  19. 1 1
      Firmware/pins_Rambo_1_3.h
  20. 9 3
      Firmware/planner.cpp
  21. 2 0
      Firmware/printers.h
  22. 1 1
      Firmware/stepper.cpp
  23. 25 0
      Firmware/system_timer.h
  24. 136 45
      Firmware/temperature.cpp
  25. 15 0
      Firmware/temperature.h
  26. 168 0
      Firmware/timer02.c
  27. 36 0
      Firmware/timer02.h
  28. 4 4
      Firmware/tmc2130.cpp
  29. 160 106
      Firmware/ultralcd.cpp
  30. 4 4
      Firmware/util.cpp
  31. 3 0
      Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h
  32. 3 0
      Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h
  33. 5 1
      Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h
  34. 5 1
      Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h
  35. 4 2
      Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h
  36. 2 2
      Firmware/xyzcal.cpp
  37. 5 0
      Tests/Timer_test.cpp
  38. 1 1
      lang/lang-add.sh
  39. 48 0
      lang/lang_en.txt
  40. 81 17
      lang/lang_en_cz.txt
  41. 77 13
      lang/lang_en_de.txt
  42. 80 16
      lang/lang_en_es.txt
  43. 147 83
      lang/lang_en_fr.txt
  44. 81 17
      lang/lang_en_it.txt
  45. 78 14
      lang/lang_en_pl.txt
  46. 311 231
      lang/po/Firmware.pot
  47. 311 231
      lang/po/Firmware_cs.po
  48. 311 231
      lang/po/Firmware_de.po
  49. 311 231
      lang/po/Firmware_es.po
  50. 311 231
      lang/po/Firmware_fr.po
  51. 311 231
      lang/po/Firmware_it.po
  52. 311 231
      lang/po/Firmware_pl.po
  53. 466 301
      lang/po/new/cs.po
  54. 504 340
      lang/po/new/de.po
  55. 492 328
      lang/po/new/es.po
  56. 514 350
      lang/po/new/fr.po
  57. 500 335
      lang/po/new/it.po
  58. 483 319
      lang/po/new/pl.po

+ 20 - 0
.gitignore

@@ -16,6 +16,25 @@ Firmware/Doc
 /html
 /latex
 /Doxyfile
+/Firmware/builds/1_75mm_MK3-EINY04-E3Dv6full
+/Firmware/Configuration_prusa.h.bak
+/Firmware/Configuration_prusa_backup.h
+/Firmware/ultralcd_implementation_hitachi_HD44780.h.bak
+/Firmware/ultralcd.cpp.bak
+/Firmware/temperature.cpp.bak
+/Firmware/pins.h.bak
+/Firmware/Marlin_main.cpp.bak
+/Firmware/language_pl.h.bak
+/Firmware/language_it.h.bak
+/Firmware/language_es.h.bak
+/Firmware/language_en.h.bak
+/Firmware/language_de.h.bak
+/Firmware/language_cz.h.bak
+/Firmware/variants/1_75mm_MK2-MultiMaterial-RAMBo13a-E3Dv6full.h
+/Firmware/variants/1_75mm_MK2-MultiMaterial-RAMBo10a-E3Dv6full.h
+/Firmware/variants/1_75mm_MK2-EINY01-E3Dv6full.h.bak
+/Firmware/variants/1_75mm_MK1-RAMBo13a-E3Dv6full.h
+/Firmware/variants/1_75mm_MK1-RAMBo10a-E3Dv6full.h
 /lang/*.bin
 /lang/*.hex
 /lang/*.dat
@@ -30,3 +49,4 @@ Firmware/Doc
 /lang/text.sym
 /lang/textaddr.txt
 /build-env/
+/Firmware/Firmware.vcxproj

+ 4 - 3
Firmware/Configuration.h

@@ -7,8 +7,8 @@
 #define STR(x) STR_HELPER(x)
 
 // Firmware version
-#define FW_VERSION "3.5.1"
-#define FW_COMMIT_NR   1778
+#define FW_VERSION "3.5.2"
+#define FW_COMMIT_NR   1999
 // FW_VERSION_UNKNOWN means this is an unofficial build.
 // The firmware should only be checked into github with this symbol.
 #define FW_DEV_VERSION FW_VERSION_UNKNOWN
@@ -475,7 +475,8 @@ your extruder heater takes 2 minutes to hit the target on heating.
 // Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
 // which is not ass annoying as with the hardware PWM. On the other hand, if this frequency
 // is too low, you should also increment SOFT_PWM_SCALE.
-//#define FAN_SOFT_PWM
+#define FAN_SOFT_PWM
+#define FAN_SOFT_PWM_BITS 4 //PWM bit resolution = 4bits, freq = 62.5Hz
 
 // Incrementing this by 1 will double the software PWM frequency,
 // affecting heaters, and the fan if FAN_SOFT_PWM is enabled.

+ 16 - 4
Firmware/Marlin.h

@@ -16,8 +16,7 @@
 #include <avr/pgmspace.h>
 #include <avr/eeprom.h>
 #include <avr/interrupt.h>
-
-
+#include "system_timer.h"
 #include "fastio.h"
 #include "Configuration.h"
 #include "pins.h"
@@ -259,10 +258,22 @@ void refresh_cmd_timeout(void);
 // The standard Arduino timer() function returns this value atomically
 // by disabling / enabling interrupts. This is costly, if the interrupts are known
 // to be disabled.
+#ifdef SYSTEM_TIMER_2
+extern volatile unsigned long timer2_millis;
+#else //SYSTEM_TIMER_2
 extern volatile unsigned long timer0_millis;
-// An unsynchronized equivalent to a standard Arduino millis() function.
+#endif //SYSTEM_TIMER_2
+
+// An unsynchronized equivalent to a standard Arduino _millis() function.
 // To be used inside an interrupt routine.
-FORCE_INLINE unsigned long millis_nc() { return timer0_millis; }
+
+FORCE_INLINE unsigned long millis_nc() { 
+#ifdef SYSTEM_TIMER_2
+	return timer2_millis;
+#else //SYSTEM_TIMER_2
+	return timer0_millis;
+#endif //SYSTEM_TIMER_2
+}
 
 #ifdef FAST_PWM_FAN
 void setPwmFrequency(uint8_t pin, int val);
@@ -372,6 +383,7 @@ extern LongTimer safetyTimer;
 
 #define PRINT_PERCENT_DONE_INIT   0xff
 #define PRINTER_ACTIVE (IS_SD_PRINTING || is_usb_printing || isPrintPaused || (custom_message_type == CUSTOM_MSG_TYPE_TEMCAL) || saved_printing || (lcd_commands_type == LCD_COMMAND_V2_CAL) || card.paused || mmu_print_saved)
+#define CHECK_FSENSOR ((IS_SD_PRINTING || is_usb_printing) && (mcode_in_progress != 600) && !saved_printing && e_active())
 
 extern void calculate_extruder_multipliers();
 

+ 166 - 142
Firmware/Marlin_main.cpp

@@ -142,6 +142,7 @@
 
 #define PRINTING_TYPE_SD 0
 #define PRINTING_TYPE_USB 1
+#define PRINTING_TYPE_NONE 2
 
 //filament types 
 #define FILAMENT_DEFAULT 0
@@ -163,7 +164,7 @@
 CardReader card;
 #endif
 
-unsigned long PingTime = millis();
+unsigned long PingTime = _millis();
 unsigned long NcTime;
 
 
@@ -196,15 +197,15 @@ bool homing_flag = false;
 
 bool temp_cal_active = false;
 
-unsigned long kicktime = millis()+100000;
+unsigned long kicktime = _millis()+100000;
 
 unsigned int  usb_printing_counter;
 
 int8_t lcd_change_fil_state = 0;
 
 unsigned long pause_time = 0;
-unsigned long start_pause_print = millis();
-unsigned long t_fan_rising_edge = millis();
+unsigned long start_pause_print = _millis();
+unsigned long t_fan_rising_edge = _millis();
 LongTimer safetyTimer;
 static LongTimer crashDetTimer;
 
@@ -912,7 +913,7 @@ void update_sec_lang_from_external_flash()
 		{
 			fputs_P(PSTR(ESC_H(1,3) "Language update."), lcdout);
 			for (uint8_t i = 0; i < state; i++) fputc('.', lcdout);
-			delay(100);
+			_delay(100);
 			boot_reserved = (state + 1) | (lang << 4);
 			if ((state * LANGBOOT_BLOCKSIZE) < header.size)
 			{
@@ -991,6 +992,10 @@ void setup()
 	
 	ultralcd_init();
 
+#if (LCD_BL_PIN != -1) && defined (LCD_BL_PIN)
+	analogWrite(LCD_BL_PIN, 255); //set full brightnes
+#endif //(LCD_BL_PIN != -1) && defined (LCD_BL_PIN)
+
 	spi_init();
 
 	lcd_splash();
@@ -1310,9 +1315,9 @@ void setup()
     for (uint16_t phase = (tmc2130_rd_MSCNT(Z_AXIS) + 8) >> 4; phase > 0; -- phase) {
       // Until the phase counter is reset to zero.
       WRITE(Z_STEP_PIN, !INVERT_Z_STEP_PIN);
-      delay(2);
+      _delay(2);
       WRITE(Z_STEP_PIN, INVERT_Z_STEP_PIN);
-      delay(2);
+      _delay(2);
     }
   }
 #endif //TMC2130
@@ -1358,16 +1363,16 @@ void setup()
 		uint32_t sumw = 0;
 		for (int i = 0; i < 1024; i++)
 		{
-			uint32_t u = micros();
+			uint32_t u = _micros();
 			bool res = card.card.readBlock(i, buff);
-			u = micros() - u;
+			u = _micros() - u;
 			if (res)
 			{
 				printf_P(PSTR("readBlock %4d 512 bytes %lu us\n"), i, u);
 				sumr += u;
-				u = micros();
+				u = _micros();
 				res = card.card.writeBlock(i, buff);
-				u = micros() - u;
+				u = _micros() - u;
 				if (res)
 				{
 					printf_P(PSTR("writeBlock %4d 512 bytes %lu us\n"), i, u);
@@ -1478,9 +1483,9 @@ void setup()
 	setup_fan_interrupt();
 #endif //DEBUG_DISABLE_FANCHECK
 
-#ifdef FILAMENT_SENSOR
+#ifdef PAT9125
 	fsensor_setup_interrupt();
-#endif //FILAMENT_SENSOR
+#endif //PAT9125
 	for (int i = 0; i<4; i++) EEPROM_read_B(EEPROM_BOWDEN_LENGTH + i * 2, &bowden_length[i]); 
 	
 #ifndef DEBUG_DISABLE_STARTMSGS
@@ -1612,7 +1617,6 @@ void setup()
 	   
   }
 #endif //UVLO_SUPPORT
-
   KEEPALIVE_STATE(NOT_BUSY);
 #ifdef WATCHDOG
   wdt_enable(WDTO_4S);
@@ -1700,7 +1704,7 @@ void serial_read_stream() {
 */
 void host_keepalive() {
   if (farm_mode) return;
-  long ms = millis();
+  long ms = _millis();
   if (host_keepalive_interval && busy_state != NOT_BUSY) {
     if ((ms - prev_busy_signal_ms) < (long)(1000L * host_keepalive_interval)) return;
      switch (busy_state) {
@@ -1731,11 +1735,11 @@ void loop()
 {
 	KEEPALIVE_STATE(NOT_BUSY);
 
-	if ((usb_printing_counter > 0) && ((millis()-_usb_timer) > 1000))
+	if ((usb_printing_counter > 0) && ((_millis()-_usb_timer) > 1000))
 	{
 		is_usb_printing = true;
 		usb_printing_counter--;
-		_usb_timer = millis();
+		_usb_timer = _millis();
 	}
 	if (usb_printing_counter == 0)
 	{
@@ -1887,7 +1891,7 @@ static int setup_for_endstop_move(bool enable_endstops_now = true) {
     saved_feedrate = feedrate;
     int l_feedmultiply = feedmultiply;
     feedmultiply = 100;
-    previous_millis_cmd = millis();
+    previous_millis_cmd = _millis();
     
     enable_endstops(enable_endstops_now);
     return l_feedmultiply;
@@ -1901,7 +1905,7 @@ static void clean_up_after_endstop_move(int original_feedmultiply) {
     
     feedrate = saved_feedrate;
     feedmultiply = original_feedmultiply;
-    previous_millis_cmd = millis();
+    previous_millis_cmd = _millis();
 }
 
 
@@ -2089,8 +2093,8 @@ bool calibrate_z_auto()
 {
 	//lcd_display_message_fullscreen_P(_T(MSG_CALIBRATE_Z_AUTO));
 	lcd_clear();
-	lcd_puts_at_P(0,1, _T(MSG_CALIBRATE_Z_AUTO));
-	bool endstops_enabled  = enable_endstops(true);
+	lcd_puts_at_P(0, 1, _T(MSG_CALIBRATE_Z_AUTO));
+	bool endstops_enabled = enable_endstops(true);
 	int axis_up_dir = -home_dir(Z_AXIS);
 	tmc2130_home_enter(Z_AXIS_MASK);
 	current_position[Z_AXIS] = 0;
@@ -2098,21 +2102,26 @@ bool calibrate_z_auto()
 	set_destination_to_current();
 	destination[Z_AXIS] += (1.1 * max_length(Z_AXIS) * axis_up_dir);
 	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(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate / 60, active_extruder);
 	st_synchronize();
-//	current_position[axis] = 0;
-//	plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+	//	current_position[axis] = 0;
+	//	plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
 	tmc2130_home_exit();
-    enable_endstops(false);
+	enable_endstops(false);
 	current_position[Z_AXIS] = 0;
 	plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
 	set_destination_to_current();
 	destination[Z_AXIS] += 10 * axis_up_dir; //10mm up
 	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(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate / 60, active_extruder);
 	st_synchronize();
-    enable_endstops(endstops_enabled);
-    current_position[Z_AXIS] = Z_MAX_POS+2.0;
+	enable_endstops(endstops_enabled);
+	if (PRINTER_TYPE == PRINTER_MK3) {
+		current_position[Z_AXIS] = Z_MAX_POS + 2.0;
+	}
+	else {
+		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]);
 	return true;
 }
@@ -2276,7 +2285,7 @@ void home_xy()
 
 void refresh_cmd_timeout(void)
 {
-  previous_millis_cmd = millis();
+  previous_millis_cmd = _millis();
 }
 
 #ifdef FWRETRACT
@@ -2316,10 +2325,10 @@ void refresh_cmd_timeout(void)
 
 void trace() {
 //if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
-    tone(BEEPER, 440);
-    delay(25);
-    noTone(BEEPER);
-    delay(20);
+    _tone(BEEPER, 440);
+    _delay(25);
+    _noTone(BEEPER);
+    _delay(20);
 }
 /*
 void ramming() {
@@ -2380,7 +2389,7 @@ void ramming() {
 		//plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600/60, active_extruder); //delay
 		//current_position[X_AXIS] -= 23; //delay
 		//plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600/60, active_extruder); //delay
-		delay(4700);
+		_delay(4700);
 		max_feedrate[E_AXIS] = 80;
 		current_position[E_AXIS] -= 92;
 		plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 9900 / 60, active_extruder);
@@ -2487,7 +2496,7 @@ void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, long home_
       saved_feedrate = feedrate;
       int l_feedmultiply = feedmultiply;
       feedmultiply = 100;
-      previous_millis_cmd = millis();
+      previous_millis_cmd = _millis();
 
       enable_endstops(true);
 
@@ -2675,7 +2684,7 @@ void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, long home_
 
       feedrate = saved_feedrate;
       feedmultiply = l_feedmultiply;
-      previous_millis_cmd = millis();
+      previous_millis_cmd = _millis();
       endstops_hit_on_purpose();
 #ifndef MESH_BED_LEVELING
       // If MESH_BED_LEVELING is not active, then it is the original Prusa i3.
@@ -3073,6 +3082,11 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float
     sprintf_P(cmd, PSTR("M220 S%i"), feedmultiplyBckp);
     enquecommand(cmd);
 
+#ifdef IR_SENSOR
+	//this will set fsensor_watch_autoload to correct value and prevent possible M701 gcode enqueuing when M600 is finished
+	fsensor_check_autoload();
+#endif //IR_SENSOR
+
     lcd_setstatuspgm(_T(WELCOME_MSG));
     custom_message_type = CUSTOM_MSG_TYPE_STATUS;
 }
@@ -3110,9 +3124,9 @@ void gcode_M701()
 		load_filament_final_feed(); //slow sequence
 		st_synchronize();
 
-		if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE)) tone(BEEPER, 500);
+		if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE)) _tone(BEEPER, 500);
 		delay_keep_alive(50);
-		noTone(BEEPER);
+		_noTone(BEEPER);
 
 		if (!farm_mode && loading_flag) {
 			lcd_load_filament_color_check();
@@ -3175,10 +3189,10 @@ static void gcode_PRUSA_SN()
         putchar('\n');
 #if 0
         for (int b = 0; b < 3; b++) {
-            tone(BEEPER, 110);
-            delay(50);
-            noTone(BEEPER);
-            delay(50);
+            _tone(BEEPER, 110);
+            _delay(50);
+            _noTone(BEEPER);
+            _delay(50);
         }
 #endif
     } else {
@@ -3450,15 +3464,15 @@ void process_commands()
 	}
 #endif //BACKLASH_Y
 #endif //TMC2130
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
 	else if (code_seen("FSENSOR_RECOVER")) { //! FSENSOR_RECOVER
 		fsensor_restore_print_and_continue();
   }
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
   else if(code_seen("PRUSA")){
 		if (code_seen("Ping")) {  //! PRUSA Ping
 			if (farm_mode) {
-				PingTime = millis();
+				PingTime = _millis();
 				//MYSERIAL.print(farm_no); MYSERIAL.println(": OK");
 			}	  
 		}
@@ -3544,7 +3558,7 @@ void process_commands()
 
 	} else if(code_seen("Beat")) { //! PRUSA Beat
         // Kick farm link timer
-        kicktime = millis();
+        kicktime = _millis();
 
     } else if(code_seen("FR")) { //! PRUSA FR
         // Factory full reset
@@ -3611,7 +3625,7 @@ void process_commands()
                         disable_e0();
                         disable_e1();
                         disable_e2();
-                        delay(100);
+                        _delay(100);
                         
                         //LCD_ALERTMESSAGEPGM(_T(MSG_FILAMENTCHANGE));
                         uint8_t cnt=0;
@@ -3778,9 +3792,9 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
       if(code_seen('S')) codenum = code_value() * 1000; // seconds to wait
 	  if(codenum != 0) LCD_MESSAGERPGM(_n("Sleep..."));////MSG_DWELL c=0 r=0
       st_synchronize();
-      codenum += millis();  // keep track of when we started waiting
-      previous_millis_cmd = millis();
-      while(millis() < codenum) {
+      codenum += _millis();  // keep track of when we started waiting
+      previous_millis_cmd = _millis();
+      while(_millis() < codenum) {
         manage_heater();
         manage_inactivity();
         lcd_update(0);
@@ -4606,14 +4620,15 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 			}
 			if (correction == 0)
 				continue;
-			float offset = float(correction) * 0.001f;
-			if (fabs(offset) > 0.101f) {
+			
+			if (labs(correction) > BED_ADJUSTMENT_UM_MAX) {
 				SERIAL_ERROR_START;
 				SERIAL_ECHOPGM("Excessive bed leveling correction: ");
-				SERIAL_ECHO(offset);
+				SERIAL_ECHO(correction);
 				SERIAL_ECHOLNPGM(" microns");
 			}
 			else {
+				float offset = float(correction) * 0.001f;
 				switch (i) {
 				case 0:
 					for (uint8_t row = 0; row < 3; ++row) {
@@ -4798,7 +4813,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 
 	case 98: //! G98 (activate farm mode)
 		farm_mode = 1;
-		PingTime = millis();
+		PingTime = _millis();
 		eeprom_update_byte((unsigned char *)EEPROM_FARM_MODE, farm_mode);
 		EEPROM_save_B(EEPROM_FARM_NUMBER, &farm_no);
           SilentModeMenu = SILENT_MODE_OFF;
@@ -4863,11 +4878,11 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 
       lcd_ignore_click();				//call lcd_ignore_click aslo for else ???
       st_synchronize();
-      previous_millis_cmd = millis();
+      previous_millis_cmd = _millis();
       if (codenum > 0){
-        codenum += millis();  // keep track of when we started waiting
+        codenum += _millis();  // keep track of when we started waiting
 		KEEPALIVE_STATE(PAUSED_FOR_USER);
-        while(millis() < codenum && !lcd_clicked()){
+        while(_millis() < codenum && !lcd_clicked()){
           manage_heater();
           manage_inactivity(true);
           lcd_update(0);
@@ -4924,7 +4939,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 	  if (!card.paused) 
 		failstats_reset_print();
       card.startFileprint();
-      starttime=millis();
+      starttime=_millis();
 	  break;
     case 25: //M25 - Pause SD print
       card.pauseSDPrint();
@@ -4994,7 +5009,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
             card.setIndex(code_value_long());
         card.startFileprint();
         if(!call_procedure)
-          starttime=millis(); //procedure calls count as normal print time.
+          starttime=_millis(); //procedure calls count as normal print time.
       }
     } break;
     case 928: //M928 - Start SD write
@@ -5011,7 +5026,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 
     case 31: //M31 take time since the start of the SD print or an M109 command
       {
-      stoptime=millis();
+      stoptime=_millis();
       char time[30];
       unsigned long t=(stoptime-starttime)/1000;
       int sec,min;
@@ -5287,9 +5302,9 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 		double radius=0.0, theta=0.0, x_sweep, y_sweep;
 		int rotational_direction, l;
 
-			rotational_direction = (unsigned long) millis() & 0x0001;			// clockwise or counter clockwise
-			radius = (unsigned long) millis() % (long) (X_MAX_LENGTH/4); 			// limit how far out to go 
-			theta = (float) ((unsigned long) millis() % (long) 360) / (360./(2*3.1415926));	// turn into radians
+			rotational_direction = (unsigned long) _millis() & 0x0001;			// clockwise or counter clockwise
+			radius = (unsigned long) _millis() % (long) (X_MAX_LENGTH/4); 			// limit how far out to go 
+			theta = (float) ((unsigned long) _millis() % (long) 360) / (360./(2*3.1415926));	// turn into radians
 
 //SERIAL_ECHOPAIR("starting radius: ",radius);
 //SERIAL_ECHOPAIR("   theta: ",theta);
@@ -5298,11 +5313,11 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 
 			for( l=0; l<n_legs-1; l++) {
 				if (rotational_direction==1)
-					theta += (float) ((unsigned long) millis() % (long) 20) / (360.0/(2*3.1415926)); // turn into radians
+					theta += (float) ((unsigned long) _millis() % (long) 20) / (360.0/(2*3.1415926)); // turn into radians
 				else
-					theta -= (float) ((unsigned long) millis() % (long) 20) / (360.0/(2*3.1415926)); // turn into radians
+					theta -= (float) ((unsigned long) _millis() % (long) 20) / (360.0/(2*3.1415926)); // turn into radians
 
-				radius += (float) ( ((long) ((unsigned long) millis() % (long) 10)) - 5);
+				radius += (float) ( ((long) ((unsigned long) _millis() % (long) 10)) - 5);
 				if ( radius<0.0 )
 					radius = -radius;
 
@@ -5379,7 +5394,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 
 	}
 
-	delay(1000);
+	_delay(1000);
 
     clean_up_after_endstop_move(l_feedmultiply);
 
@@ -5557,7 +5572,7 @@ Sigma_Exit:
       #endif
 
       setWatch();
-      codenum = millis();
+      codenum = _millis();
 
       /* See if we are heating up or cooling down */
       target_direction = isHeatingHotend(extruder); // true if heating, false if cooling
@@ -5573,8 +5588,8 @@ Sigma_Exit:
 		heating_status = 2;
 		if (farm_mode) { prusa_statistics(2); };
         
-        //starttime=millis();
-        previous_millis_cmd = millis();
+        //starttime=_millis();
+        previous_millis_cmd = _millis();
       }
       break;
     case 190: // M190 - Wait for bed heater to reach target.
@@ -5592,7 +5607,7 @@ Sigma_Exit:
           setTargetBed(code_value());
           CooldownNoWait = false;
         }
-        codenum = millis();
+        codenum = _millis();
         
         cancel_heatup = false;
         target_direction = isHeatingBed(); // true if heating, false if cooling
@@ -5600,7 +5615,7 @@ Sigma_Exit:
 		KEEPALIVE_STATE(NOT_BUSY);
         while ( (target_direction)&&(!cancel_heatup) ? (isHeatingBed()) : (isCoolingBed()&&(CooldownNoWait==false)) )
         {
-          if(( millis() - codenum) > 1000 ) //Print Temp Reading every 1 second while heating up.
+          if(( _millis() - codenum) > 1000 ) //Print Temp Reading every 1 second while heating up.
           {
 			  if (!farm_mode) {
 				  float tt = degHotend(active_extruder);
@@ -5612,7 +5627,7 @@ Sigma_Exit:
 				  SERIAL_PROTOCOL_F(degBed(), 1);
 				  SERIAL_PROTOCOLLN("");
 			  }
-				  codenum = millis();
+				  codenum = _millis();
 			  
           }
           manage_heater();
@@ -5623,7 +5638,7 @@ Sigma_Exit:
 		KEEPALIVE_STATE(IN_HANDLER);
 		heating_status = 4;
 
-        previous_millis_cmd = millis();
+        previous_millis_cmd = _millis();
     #endif
         break;
 
@@ -5668,7 +5683,7 @@ Sigma_Exit:
         disable_e2();
         finishAndDisableSteppers();
         fanSpeed = 0;
-        delay(1000); // Wait a little before to switch off
+        _delay(1000); // Wait a little before to switch off
       #if defined(SUICIDE_PIN) && SUICIDE_PIN > -1
         st_synchronize();
         suicide();
@@ -6221,7 +6236,7 @@ Sigma_Exit:
 #endif
             servos[servo_index].write(servo_position);
 #if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
-              delay(PROBE_SERVO_DEACTIVATION_DELAY);
+              _delay(PROBE_SERVO_DEACTIVATION_DELAY);
               servos[servo_index].detach();
 #endif
           }
@@ -6253,14 +6268,14 @@ Sigma_Exit:
       {
         #if BEEPER > 0
 if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
-          tone(BEEPER, beepS);
-          delay(beepP);
-          noTone(BEEPER);
+          _tone(BEEPER, beepS);
+          _delay(beepP);
+          _noTone(BEEPER);
         #endif
       }
       else
       {
-        delay(beepP);
+        _delay(beepP);
       }
     }
     break;
@@ -6319,7 +6334,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
        
          SET_OUTPUT(CHDK);
          WRITE(CHDK, HIGH);
-         chdkHigh = millis();
+         chdkHigh = _millis();
          chdkActive = true;
        
        #else
@@ -6333,7 +6348,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
         WRITE(PHOTOGRAPH_PIN, LOW);
         _delay_ms(PULSE_LENGTH);
         }
-        delay(7.33);
+        _delay(7.33);
         for(int i=0; i < NUM_PULSES; i++) {
         WRITE(PHOTOGRAPH_PIN, HIGH);
         _delay_ms(PULSE_LENGTH);
@@ -6567,7 +6582,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 		SERIAL_PROTOCOL(set_target_pinda);
 		SERIAL_PROTOCOLLN("");
 
-		codenum = millis();
+		codenum = _millis();
 		cancel_heatup = false;
 
 		bool is_pinda_cooling = false;
@@ -6576,14 +6591,14 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 		}
 
 		while ( ((!is_pinda_cooling) && (!cancel_heatup) && (current_temperature_pinda < set_target_pinda)) || (is_pinda_cooling && (current_temperature_pinda > set_target_pinda)) ) {
-			if ((millis() - codenum) > 1000) //Print Temp Reading every 1 second while waiting.
+			if ((_millis() - codenum) > 1000) //Print Temp Reading every 1 second while waiting.
 			{
 				SERIAL_PROTOCOLPGM("P:");
 				SERIAL_PROTOCOL_F(current_temperature_pinda, 1);
 				SERIAL_PROTOCOLPGM("/");
 				SERIAL_PROTOCOL(set_target_pinda);
 				SERIAL_PROTOCOLLN("");
-				codenum = millis();
+				codenum = _millis();
 			}
 			manage_heater();
 			manage_inactivity();
@@ -6982,7 +6997,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
               mmu_extruder = tmp_extruder;
 
 
-              delay(100);
+              _delay(100);
 
               disable_e0();
               disable_e1();
@@ -6991,7 +7006,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
               pinMode(E_MUX0_PIN, OUTPUT);
               pinMode(E_MUX1_PIN, OUTPUT);
 
-              delay(100);
+              _delay(100);
               SERIAL_ECHO_START;
               SERIAL_ECHO("T:");
               SERIAL_ECHOLN((int)tmp_extruder);
@@ -7017,7 +7032,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 
                   break;
               }
-              delay(100);
+              _delay(100);
 
 #else //SNMM
               if (tmp_extruder >= EXTRUDERS) {
@@ -7105,7 +7120,6 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 		dcode_8(); break;
 	case 9: //! D9 - Read/Write ADC
 		dcode_9(); break;
-
 	case 10: //! D10 - XYZ calibration = OK
 		dcode_10(); break;
     
@@ -7146,7 +7160,7 @@ void FlushSerialRequestResend()
 // Execution of a command from a SD card will not be confirmed.
 void ClearToSend()
 {
-    previous_millis_cmd = millis();
+    previous_millis_cmd = _millis();
 	if ((CMDBUFFER_CURRENT_TYPE == CMDBUFFER_CURRENT_TYPE_USB) || (CMDBUFFER_CURRENT_TYPE == CMDBUFFER_CURRENT_TYPE_USB_WITH_LINENR)) 
 		SERIAL_PROTOCOLLNRPGM(MSG_OK);
 }
@@ -7317,7 +7331,7 @@ void clamp_to_software_endstops(float target[3])
 void prepare_move()
 {
   clamp_to_software_endstops(destination);
-  previous_millis_cmd = millis();
+  previous_millis_cmd = _millis();
 
   // 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])) {
@@ -7348,7 +7362,7 @@ void prepare_arc_move(char isclockwise) {
   for(int8_t i=0; i < NUM_AXIS; i++) {
     current_position[i] = destination[i];
   }
-  previous_millis_cmd = millis();
+  previous_millis_cmd = _millis();
 }
 
 #if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1
@@ -7364,9 +7378,9 @@ unsigned long lastMotorCheck = 0;
 
 void controllerFan()
 {
-  if ((millis() - lastMotorCheck) >= 2500) //Not a time critical function, so we only check every 2500ms
+  if ((_millis() - lastMotorCheck) >= 2500) //Not a time critical function, so we only check every 2500ms
   {
-    lastMotorCheck = millis();
+    lastMotorCheck = _millis();
 
     if(!READ(X_ENABLE_PIN) || !READ(Y_ENABLE_PIN) || !READ(Z_ENABLE_PIN) || (soft_pwm_bed > 0)
     #if EXTRUDERS > 2
@@ -7380,10 +7394,10 @@ void controllerFan()
     #endif
        || !READ(E0_ENABLE_PIN)) //If any of the drivers are enabled...
     {
-      lastMotor = millis(); //... set time to NOW so the fan will turn on
+      lastMotor = _millis(); //... set time to NOW so the fan will turn on
     }
 
-    if ((millis() - lastMotor) >= (CONTROLLERFAN_SECS*1000UL) || lastMotor == 0) //If the last time any driver was enabled, is longer since than CONTROLLERSEC...
+    if ((_millis() - lastMotor) >= (CONTROLLERFAN_SECS*1000UL) || lastMotor == 0) //If the last time any driver was enabled, is longer since than CONTROLLERSEC...
     {
         digitalWrite(CONTROLLERFAN_PIN, 0);
         analogWrite(CONTROLLERFAN_PIN, 0);
@@ -7405,7 +7419,7 @@ static uint32_t stat_update = 0;
 
 void handle_status_leds(void) {
   float max_temp = 0.0;
-  if(millis() > stat_update) {
+  if(_millis() > stat_update) {
     stat_update += 500; // Update every 0.5s
     for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder) {
        max_temp = max(max_temp, degHotend(cur_extruder));
@@ -7474,13 +7488,15 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument s
 			{
 				if (fsensor_check_autoload())
 				{
+#ifdef PAT9125
 					fsensor_autoload_check_stop();
+#endif //PAT9125
 					if (degHotend0() > EXTRUDE_MINTEMP)
 					{
 						if ((eSoundMode == e_SOUND_MODE_LOUD) || (eSoundMode == e_SOUND_MODE_ONCE))
-							tone(BEEPER, 1000);
+							_tone(BEEPER, 1000);
 						delay_keep_alive(50);
-						noTone(BEEPER);
+						_noTone(BEEPER);
 						loading_flag = true;
 						enquecommand_front_P((PSTR("M701")));
 					}
@@ -7503,7 +7519,9 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument s
 			}
 			else
 			{
+#ifdef PAT9125
 				fsensor_autoload_check_stop();
+#endif //PAT9125
 				fsensor_update();
 			}
 		}
@@ -7523,11 +7541,11 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument s
         get_command();
     }
 
-  if( (millis() - previous_millis_cmd) >  max_inactive_time )
+  if( (_millis() - previous_millis_cmd) >  max_inactive_time )
     if(max_inactive_time)
       kill(_n(""), 4);
   if(stepper_inactive_time)  {
-    if( (millis() - previous_millis_cmd) >  stepper_inactive_time )
+    if( (_millis() - previous_millis_cmd) >  stepper_inactive_time )
     {
       if(blocks_queued() == false && ignore_stepper_queue == false) {
         disable_x();
@@ -7541,7 +7559,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument s
   }
   
   #ifdef CHDK //Check if pin should be set to LOW after M240 set it to HIGH
-    if (chdkActive && (millis() - chdkHigh > CHDK_DELAY))
+    if (chdkActive && (_millis() - chdkHigh > CHDK_DELAY))
     {
       chdkActive = false;
       WRITE(CHDK, LOW);
@@ -7574,7 +7592,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument s
     controllerFan(); //Check if fan should be turned on to cool stepper drivers down
   #endif
   #ifdef EXTRUDER_RUNOUT_PREVENT
-    if( (millis() - previous_millis_cmd) >  EXTRUDER_RUNOUT_SECONDS*1000 )
+    if( (_millis() - previous_millis_cmd) >  EXTRUDER_RUNOUT_SECONDS*1000 )
     if(degHotend(active_extruder)>EXTRUDER_RUNOUT_MINTEMP)
     {
      bool oldstatus=READ(E0_ENABLE_PIN);
@@ -7587,7 +7605,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument s
      current_position[E_AXIS]=oldepos;
      destination[E_AXIS]=oldedes;
      plan_set_e_position(oldepos);
-     previous_millis_cmd=millis();
+     previous_millis_cmd=_millis();
      st_synchronize();
      WRITE(E0_ENABLE_PIN,oldstatus);
     }
@@ -7630,7 +7648,7 @@ void kill(const char *full_screen_message, unsigned char id)
   sei();   // enable interrupts
   for ( int i=5; i--; lcd_update(0))
   {
-     delay(200);	
+     _delay(200);	
   }
   cli();   // disable interrupts
   suicide();
@@ -7818,10 +7836,10 @@ void delay_keep_alive(unsigned int ms)
         if (ms == 0)
             break;
         else if (ms >= 50) {
-            delay(50);
+            _delay(50);
             ms -= 50;
         } else {
-            delay(ms);
+			_delay(ms);
             ms = 0;
         }
     }
@@ -7835,11 +7853,11 @@ static void wait_for_heater(long codenum, uint8_t extruder) {
 	/* continue to loop until we have reached the target temp
 	_and_ until TEMP_RESIDENCY_TIME hasn't passed since we reached it */
 	while ((!cancel_heatup) && ((residencyStart == -1) ||
-		(residencyStart >= 0 && (((unsigned int)(millis() - residencyStart)) < (TEMP_RESIDENCY_TIME * 1000UL))))) {
+		(residencyStart >= 0 && (((unsigned int)(_millis() - residencyStart)) < (TEMP_RESIDENCY_TIME * 1000UL))))) {
 #else
 	while (target_direction ? (isHeatingHotend(tmp_extruder)) : (isCoolingHotend(tmp_extruder) && (CooldownNoWait == false))) {
 #endif //TEMP_RESIDENCY_TIME
-		if ((millis() - codenum) > 1000UL)
+		if ((_millis() - codenum) > 1000UL)
 		{ //Print Temp Reading and remaining time every 1 second while heating up/cooling down
 			if (!farm_mode) {
 				SERIAL_PROTOCOLPGM("T:");
@@ -7851,7 +7869,7 @@ static void wait_for_heater(long codenum, uint8_t extruder) {
 				SERIAL_PROTOCOLPGM(" W:");
 				if (residencyStart > -1)
 				{
-					codenum = ((TEMP_RESIDENCY_TIME * 1000UL) - (millis() - residencyStart)) / 1000UL;
+					codenum = ((TEMP_RESIDENCY_TIME * 1000UL) - (_millis() - residencyStart)) / 1000UL;
 					SERIAL_PROTOCOLLN(codenum);
 				}
 				else
@@ -7862,7 +7880,7 @@ static void wait_for_heater(long codenum, uint8_t extruder) {
 #else
 				SERIAL_PROTOCOLLN("");
 #endif
-				codenum = millis();
+				codenum = _millis();
 		}
 			manage_heater();
 			manage_inactivity(true); //do not disable steppers
@@ -7874,7 +7892,7 @@ static void wait_for_heater(long codenum, uint8_t extruder) {
 				(residencyStart == -1 && !target_direction && (degHotend(extruder) <= (degTargetHotend(extruder) + TEMP_WINDOW))) ||
 				(residencyStart > -1 && labs(degHotend(extruder) - degTargetHotend(extruder)) > TEMP_HYSTERESIS))
 			{
-				residencyStart = millis();
+				residencyStart = _millis();
 			}
 #endif //TEMP_RESIDENCY_TIME
 	}
@@ -8037,9 +8055,9 @@ void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_
 
 		
 		//MYSERIAL.println(data_wldsd);
-		//delay(1000);
-		//delay(3000);
-		//t1 = millis();
+		//_delay(1000);
+		//_delay(3000);
+		//t1 = _millis();
 		
 		//while (digitalRead(D_DATACLOCK) == LOW) {}
 		//while (digitalRead(D_DATACLOCK) == HIGH) {}
@@ -8049,14 +8067,14 @@ void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_
 		
 		for (int i = 0; i<13; i++)
 		{
-			//t1 = millis();
+			//t1 = _millis();
 			for (int j = 0; j < 4; j++)
 			{
 				while (digitalRead(D_DATACLOCK) == LOW) {}				
 				while (digitalRead(D_DATACLOCK) == HIGH) {}
 				bitWrite(digit[i], j, digitalRead(D_DATA));
 			}
-			//t_delay = (millis() - t1);
+			//t_delay = (_millis() - t1);
 			//SERIAL_PROTOCOLPGM(" ");
 			//SERIAL_PROTOCOL_F(t_delay, 5);
 			//SERIAL_PROTOCOLPGM(" ");
@@ -8257,7 +8275,7 @@ void long_pause() //long pause print
 {
 	st_synchronize();
 	
-	start_pause_print = millis();
+	start_pause_print = _millis();
 
 	//retract
 	current_position[E_AXIS] -= default_retraction;
@@ -8296,7 +8314,7 @@ extern uint32_t sdpos_atomic;
 
 void uvlo_() 
 {
-	unsigned long time_start = millis();
+	unsigned long time_start = _millis();
 	bool sd_print = card.sdprinting;
     // Conserve power as soon as possible.
     disable_x();
@@ -8338,8 +8356,8 @@ void uvlo_()
     // are in action.
     planner_abort_hard();
 
-    // Store the current extruder position.
-    eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION_E), st_get_position_mm(E_AXIS));
+	// Store the current extruder position.
+	eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION_E), st_get_position_mm(E_AXIS));
 	eeprom_update_byte((uint8_t*)EEPROM_UVLO_E_ABS, axis_relative_modes[3]?0:1);
 
     // Clean the input command queue.
@@ -8426,7 +8444,7 @@ void uvlo_()
 	eeprom_update_byte((uint8_t*)EEPROM_POWER_COUNT, eeprom_read_byte((uint8_t*)EEPROM_POWER_COUNT) + 1);
 	eeprom_update_word((uint16_t*)EEPROM_POWER_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_POWER_COUNT_TOT) + 1);
     
-		printf_P(_N("UVLO - end %d\n"), millis() - time_start);
+		printf_P(_N("UVLO - end %d\n"), _millis() - time_start);
     
 #if 0
     // Move the print head to the side of the print until all the power stored in the power supply capacitors is depleted.
@@ -8510,8 +8528,12 @@ void setup_fan_interrupt() {
 // and it takes 4.24 us to process (the interrupt invocation overhead not taken into account).
 ISR(INT7_vect) {
 	//measuring speed now works for fanSpeed > 18 (approximately), which is sufficient because MIN_PRINT_FAN_SPEED is higher
-
+#ifdef FAN_SOFT_PWM
+	if (!fan_measuring || (fanSpeedSoftPwm < MIN_PRINT_FAN_SPEED)) return;
+#else //FAN_SOFT_PWM
 	if (fanSpeed < MIN_PRINT_FAN_SPEED) return;
+#endif //FAN_SOFT_PWM
+
 	if ((1 << 6) & EICRB) { //interrupt was triggered by rising edge
 		t_fan_rising_edge = millis_nc();
 	}
@@ -8695,8 +8717,7 @@ void restore_print_from_eeprom() {
 	enquecommand(cmd);
 	uint32_t position = eeprom_read_dword((uint32_t*)(EEPROM_FILE_POSITION));
 	SERIAL_ECHOPGM("Position read from eeprom:");
-	MYSERIAL.println(position);
-
+	MYSERIAL.println(position);	
   // E axis relative mode.
 	enquecommand_P(PSTR("M83"));
   // Move to the XY print position in logical coordinates, where the print has been killed.
@@ -8771,7 +8792,8 @@ void stop_and_save_print_to_ram(float z_move, float e_move)
 		 saved_printing_type = PRINTING_TYPE_USB;
 	}
 	else {
-		//not sd printing nor usb printing
+		 saved_printing_type = PRINTING_TYPE_NONE;
+		 //not sd printing nor usb printing
 	}
 
 #if 0
@@ -8936,10 +8958,12 @@ void restore_print_from_ram_and_continue(float e_move)
 //	for (int axis = X_AXIS; axis <= E_AXIS; axis++)
 //	    current_position[axis] = st_get_position_mm(axis);
 	active_extruder = saved_active_extruder; //restore active_extruder
-	setTargetHotendSafe(saved_extruder_temperature,saved_active_extruder);
-	heating_status = 1;
-	wait_for_heater(millis(),saved_active_extruder);
-	heating_status = 2;
+	if (saved_extruder_temperature) {
+		setTargetHotendSafe(saved_extruder_temperature, saved_active_extruder);
+		heating_status = 1;
+		wait_for_heater(_millis(), saved_active_extruder);
+		heating_status = 2;
+	}
 	feedrate = saved_feedrate2; //restore feedrate
 	axis_relative_modes[E_AXIS] = saved_extruder_relative_mode;
 	fanSpeed = saved_fanSpeed;
@@ -9089,7 +9113,7 @@ void M600_wait_for_user(float HotendTempBckp) {
 		KEEPALIVE_STATE(PAUSED_FOR_USER);
 
 		int counterBeep = 0;
-		unsigned long waiting_start_time = millis();
+		unsigned long waiting_start_time = _millis();
 		uint8_t wait_for_user_state = 0;
 		lcd_display_message_fullscreen_P(_T(MSG_PRESS_TO_UNLOAD));
 		bool bFirst=true;
@@ -9121,7 +9145,7 @@ void M600_wait_for_user(float HotendTempBckp) {
 			case 0: //nozzle is hot, waiting for user to press the knob to unload filament
 				delay_keep_alive(4);
 
-				if (millis() > waiting_start_time + (unsigned long)M600_TIMEOUT * 1000) {
+				if (_millis() > waiting_start_time + (unsigned long)M600_TIMEOUT * 1000) {
 					lcd_display_message_fullscreen_P(_i("Press knob to preheat nozzle and continue."));////MSG_PRESS_TO_PREHEAT c=20 r=4
 					wait_for_user_state = 1;
 					setAllTargetHotends(0);
@@ -9145,7 +9169,7 @@ void M600_wait_for_user(float HotendTempBckp) {
 
 				if (abs(degTargetHotend(active_extruder) - degHotend(active_extruder)) < 1) {
 					lcd_display_message_fullscreen_P(_T(MSG_PRESS_TO_UNLOAD));
-					waiting_start_time = millis();
+					waiting_start_time = _millis();
 					wait_for_user_state = 0;
 				}
 				else {
@@ -9194,12 +9218,12 @@ void M600_load_filament() {
 	//load filament for single material and SNMM 
 	lcd_wait_interact();
 
-	//load_filament_time = millis();
+	//load_filament_time = _millis();
 	KEEPALIVE_STATE(PAUSED_FOR_USER);
 
-#ifdef FILAMENT_SENSOR
+#ifdef PAT9125
 	fsensor_autoload_check_start();
-#endif //FILAMENT_SENSOR
+#endif //PAT9125
 	while(!lcd_clicked())
 	{
 		manage_heater();
@@ -9208,16 +9232,16 @@ void M600_load_filament() {
 		if (fsensor_check_autoload())
 		{
 if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
-			tone(BEEPER, 1000);
+			_tone(BEEPER, 1000);
 			delay_keep_alive(50);
-			noTone(BEEPER);
+			_noTone(BEEPER);
 			break;
 		}
 #endif //FILAMENT_SENSOR
 	}
-#ifdef FILAMENT_SENSOR
+#ifdef PAT9125
 	fsensor_autoload_check_stop();
-#endif //FILAMENT_SENSOR
+#endif //PAT9125
 	KEEPALIVE_STATE(IN_HANDLER);
 
 #ifdef FSENSOR_QUALITY
@@ -9227,9 +9251,9 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 	M600_load_filament_movements();
 
 if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
-	tone(BEEPER, 500);
+	_tone(BEEPER, 500);
 	delay_keep_alive(50);
-	noTone(BEEPER);
+	_noTone(BEEPER);
 
 #ifdef FSENSOR_QUALITY
 	fsensor_oq_meassure_stop();

+ 9 - 9
Firmware/Sd2Card.cpp

@@ -287,7 +287,7 @@ bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
   errorCode_ = type_ = 0;
   chipSelectPin_ = chipSelectPin;
   // 16-bit init start time allows over a minute
-  uint16_t t0 = (uint16_t)millis();
+  uint16_t t0 = (uint16_t)_millis();
   uint32_t arg;
 
   // set pin modes
@@ -314,7 +314,7 @@ bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
 
   // command to go idle in SPI mode
   while ((status_ = cardCommand(CMD0, 0)) != R1_IDLE_STATE) {
-    if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) {
+    if (((uint16_t)_millis() - t0) > SD_INIT_TIMEOUT) {
       error(SD_CARD_ERROR_CMD0);
       goto fail;
     }
@@ -336,7 +336,7 @@ bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
 
   while ((status_ = cardAcmd(ACMD41, arg)) != R1_READY_STATE) {
     // check for timeout
-    if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) {
+    if (((uint16_t)_millis() - t0) > SD_INIT_TIMEOUT) {
       error(SD_CARD_ERROR_ACMD41);
       goto fail;
     }
@@ -469,9 +469,9 @@ static uint16_t CRC_CCITT(const uint8_t* data, size_t n) {
 //------------------------------------------------------------------------------
 bool Sd2Card::readData(uint8_t* dst, uint16_t count) {
   // wait for start block token
-  uint16_t t0 = millis();
+  uint16_t t0 = _millis();
   while ((status_ = spiRec()) == 0XFF) {
-    if (((uint16_t)millis() - t0) > SD_READ_TIMEOUT) {
+    if (((uint16_t)_millis() - t0) > SD_READ_TIMEOUT) {
       error(SD_CARD_ERROR_READ_TIMEOUT);
       goto fail;
     }
@@ -593,9 +593,9 @@ bool Sd2Card::setSckRate(uint8_t sckRateID) {
 //------------------------------------------------------------------------------
 // wait for card to go not busy
 bool Sd2Card::waitNotBusy(uint16_t timeoutMillis) {
-  uint16_t t0 = millis();
+  uint16_t t0 = _millis();
   while (spiRec() != 0XFF) {
-    if (((uint16_t)millis() - t0) >= timeoutMillis) goto fail;
+    if (((uint16_t)_millis() - t0) >= timeoutMillis) goto fail;
   }
   return true;
 
@@ -731,9 +731,9 @@ bool Sd2Card::writeStop() {
 //FIXME Vojtech: Copied from a current version of Sd2Card Arduino code.
 // We shall likely upgrade the rest of the Sd2Card.
 uint8_t Sd2Card::waitStartBlock(void) {
-  uint16_t t0 = millis();
+  uint16_t t0 = _millis();
   while ((status_ = spiRec()) == 0XFF) {
-    if (((uint16_t)millis() - t0) > SD_READ_TIMEOUT) {
+    if (((uint16_t)_millis() - t0) > SD_READ_TIMEOUT) {
       error(SD_CARD_ERROR_READ_TIMEOUT);
       goto fail;
     }

+ 3 - 3
Firmware/Timer.cpp

@@ -4,7 +4,7 @@
  */
 
 #include "Timer.h"
-#include "Arduino.h"
+#include "system_timer.h"
 
 /**
  * @brief construct Timer
@@ -23,7 +23,7 @@ Timer<T>::Timer() : m_isRunning(false), m_started()
 template<typename T>
 void Timer<T>::start()
 {
-    m_started = millis();
+    m_started = _millis();
     m_isRunning = true;
 }
 
@@ -45,7 +45,7 @@ bool Timer<T>::expired(T msPeriod)
 {
     if (!m_isRunning) return false;
     bool expired = false;
-    const T now = millis();
+    const T now = _millis();
     if (m_started <=  m_started + msPeriod)
     {
         if ((now >= m_started + msPeriod) || (now < m_started))

+ 2 - 1
Firmware/TimerRemaining.h

@@ -8,6 +8,7 @@
 
 #include "Timer.h"
 #include "Arduino.h"
+#include "system_timer.h"
 #include <limits.h>
 
 class TimerRemaining : public LongTimer
@@ -36,7 +37,7 @@ public:
     {
       if (!running()) return 0;
       if (expired()) return 0;
-      const unsigned long now = millis();
+      const unsigned long now = _millis();
       return (started() + m_period - now);
     }
     /**

+ 4 - 4
Firmware/cardreader.cpp

@@ -41,7 +41,7 @@ CardReader::CardReader()
     WRITE(SDPOWER,HIGH);
   #endif //SDPOWER
   
-  autostart_atmillis=millis()+5000;
+  autostart_atmillis=_millis()+5000;
 }
 
 char *createFilename(char *buffer,const dir_t &p) //buffer>12characters
@@ -497,7 +497,7 @@ void CardReader::getStatus()
     SERIAL_PROTOCOL(sdpos);
     SERIAL_PROTOCOLPGM("/");
     SERIAL_PROTOCOLLN(filesize);
-    uint16_t time = millis()/60000 - starttime/60000;
+    uint16_t time = _millis()/60000 - starttime/60000;
     SERIAL_PROTOCOL(itostr2(time/60));
     SERIAL_PROTOCOL(':');
     SERIAL_PROTOCOL(itostr2(time%60));
@@ -556,7 +556,7 @@ void CardReader::checkautostart(bool force)
   {
     if(!autostart_stilltocheck)
       return;
-    if(autostart_atmillis<millis())
+    if(autostart_atmillis<_millis())
       return;
   }
   autostart_stilltocheck=false;
@@ -954,7 +954,7 @@ void CardReader::presort() {
 		lcd_set_cursor(column, 2);
 		lcd_print('\x01'); //simple progress bar
 	}
-	delay(300);
+	_delay(300);
 	lcd_set_degree();
 	lcd_clear();
 #endif

+ 6 - 6
Firmware/cmdqueue.cpp

@@ -22,8 +22,8 @@ int serial_count = 0;  //index of character read from serial line
 boolean comment_mode = false;
 char *strchr_pointer; // just a pointer to find chars in the command string like X, Y, Z, E, etc
 
-unsigned long TimeSent = millis();
-unsigned long TimeNow = millis();
+unsigned long TimeSent = _millis();
+unsigned long TimeNow = _millis();
 
 long gcode_N = 0;
 long gcode_LastN = 0;
@@ -391,8 +391,8 @@ void get_command()
         MYSERIAL.write(serial_char); // for debuging serial line 2 in farm_mode
         selectedSerialPort = 1; 
     } */ //RP - removed
-      TimeSent = millis();
-      TimeNow = millis();
+      TimeSent = _millis();
+      TimeNow = _millis();
 
     if (serial_char < 0)
         // Ignore extended ASCII characters. These characters have no meaning in the G-code apart from the file names
@@ -527,7 +527,7 @@ void get_command()
   } // end of serial line processing loop
 
     if(farm_mode){
-        TimeNow = millis();
+        TimeNow = _millis();
         if ( ((TimeNow - TimeSent) > 800) && (serial_count > 0) ) {
             cmdbuffer[bufindw+serial_count+CMDHDRSIZE] = 0;
             
@@ -576,7 +576,7 @@ void get_command()
     {
       if(card.eof()){
         SERIAL_PROTOCOLLNRPGM(_n("Done printing file"));////MSG_FILE_PRINTED c=0 r=0
-        stoptime=millis();
+        stoptime=_millis();
         char time[30];
         unsigned long t=(stoptime-starttime-pause_time)/1000;
         pause_time = 0;

+ 103 - 60
Firmware/fsensor.cpp

@@ -13,6 +13,7 @@
 #include "ultralcd.h"
 #include "ConfigurationStore.h"
 #include "mmu.h"
+#include "cardreader.h"
 
 //! @name Basic parameters
 //! @{
@@ -120,17 +121,20 @@ void fsensor_stop_and_save_print(void)
 void fsensor_restore_print_and_continue(void)
 {
     printf_P(PSTR("fsensor_restore_print_and_continue\n"));
-    fsensor_watch_runout = true;
-    fsensor_err_cnt = 0;
+	fsensor_watch_runout = true;
+	fsensor_err_cnt = 0;
     restore_print_from_ram_and_continue(0); //XYZ = orig, E - no change
 }
 
 void fsensor_init(void)
 {
+#ifdef PAT9125
 	uint8_t pat9125 = pat9125_init();
     printf_P(PSTR("PAT9125_init:%hhu\n"), pat9125);
+#endif //PAT9125
 	uint8_t fsensor = eeprom_read_byte((uint8_t*)EEPROM_FSENSOR);
 	fsensor_autoload_enabled=eeprom_read_byte((uint8_t*)EEPROM_FSENS_AUTOLOAD_ENABLED);
+#ifdef PAT9125
 	uint8_t oq_meassure_enabled = eeprom_read_byte((uint8_t*)EEPROM_FSENS_OQ_MEASS_ENABLED);
 	fsensor_oq_meassure_enabled = (oq_meassure_enabled == 1)?true:false;
 	fsensor_chunk_len = (int16_t)(FSENSOR_CHUNK_LEN * cs.axis_steps_per_unit[E_AXIS]);
@@ -142,15 +146,19 @@ void fsensor_init(void)
 	}
 	else
 		fsensor_not_responding = false;
+#endif //PAT9125
 	if (fsensor)
 		fsensor_enable();
 	else
 		fsensor_disable();
 	printf_P(PSTR("FSensor %S\n"), (fsensor_enabled?PSTR("ENABLED"):PSTR("DISABLED\n")));
+	if (check_for_ir_sensor()) ir_sensor_detected = true;
+
 }
 
 bool fsensor_enable(void)
 {
+#ifdef PAT9125
 	if (mmu_enabled == false) { //filament sensor is pat9125, enable only if it is working
 		uint8_t pat9125 = pat9125_init();
 		printf_P(PSTR("PAT9125_init:%hhu\n"), pat9125);
@@ -172,6 +180,11 @@ bool fsensor_enable(void)
 		eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, 0x01);
 		FSensorStateMenu = 1;
 	}
+#else // PAT9125
+	fsensor_enabled = true;
+	eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, 0x01);
+	FSensorStateMenu = 1;
+#endif // PAT9125
 	return fsensor_enabled;
 }
 
@@ -184,7 +197,9 @@ void fsensor_disable(void)
 
 void fsensor_autoload_set(bool State)
 {
+#ifdef PAT9125
 	if (!State) fsensor_autoload_check_stop();
+#endif //PAT9125
 	fsensor_autoload_enabled = State;
 	eeprom_update_byte((unsigned char *)EEPROM_FSENS_AUTOLOAD_ENABLED, fsensor_autoload_enabled);
 }
@@ -197,6 +212,7 @@ void pciSetup(byte pin)
 	PCICR |= bit (digitalPinToPCICRbit(pin)); // enable interrupt for the group 
 }
 
+#ifdef PAT9125
 void fsensor_autoload_check_start(void)
 {
 //	puts_P(_N("fsensor_autoload_check_start\n"));
@@ -215,7 +231,7 @@ void fsensor_autoload_check_start(void)
 	fsensor_autoload_y = pat9125_y; //save current y value
 	fsensor_autoload_c = 0; //reset number of changes counter
 	fsensor_autoload_sum = 0;
-	fsensor_autoload_last_millis = millis();
+	fsensor_autoload_last_millis = _millis();
 	fsensor_watch_runout = false;
 	fsensor_watch_autoload = true;
 	fsensor_err_cnt = 0;
@@ -223,6 +239,7 @@ void fsensor_autoload_check_start(void)
 
 void fsensor_autoload_check_stop(void)
 {
+
 //	puts_P(_N("fsensor_autoload_check_stop\n"));
 	if (!fsensor_enabled) return;
 //	puts_P(_N("fsensor_autoload_check_stop 1\n"));
@@ -235,11 +252,22 @@ void fsensor_autoload_check_stop(void)
 	fsensor_watch_runout = true;
 	fsensor_err_cnt = 0;
 }
+#endif //PAT9125
 
 bool fsensor_check_autoload(void)
 {
 	if (!fsensor_enabled) return false;
 	if (!fsensor_autoload_enabled) return false;
+	if (ir_sensor_detected) {
+		if (digitalRead(IR_SENSOR_PIN) == 1) {
+			fsensor_watch_autoload = true;
+		}
+		else if (fsensor_watch_autoload == true) {
+			fsensor_watch_autoload = false;
+			return true;
+		}
+	}
+#ifdef PAT9125
 	if (!fsensor_watch_autoload)
 	{
 		fsensor_autoload_check_start();
@@ -248,8 +276,8 @@ bool fsensor_check_autoload(void)
 #if 0
 	uint8_t fsensor_autoload_c_old = fsensor_autoload_c;
 #endif
-	if ((millis() - fsensor_autoload_last_millis) < 25) return false;
-	fsensor_autoload_last_millis = millis();
+	if ((_millis() - fsensor_autoload_last_millis) < 25) return false;
+	fsensor_autoload_last_millis = _millis();
 	if (!pat9125_update_y()) //update sensor
 	{
 		fsensor_disable();
@@ -283,6 +311,7 @@ bool fsensor_check_autoload(void)
 //		puts_P(_N("fsensor_check_autoload = true !!!\n"));
 		return true;
 	}
+#endif //PAT9125
 	return false;
 }
 
@@ -359,10 +388,10 @@ bool fsensor_oq_result(void)
 	printf_P(_N("fsensor_oq_result %S\n"), (res?_OK:_NG));
 	return res;
 }
-
+#ifdef PAT9125
 ISR(FSENSOR_INT_PIN_VECT)
 {
-	if (mmu_enabled) return;
+	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;
 	static bool _lock = false;
@@ -446,6 +475,23 @@ ISR(FSENSOR_INT_PIN_VECT)
 	return;
 }
 
+void fsensor_setup_interrupt(void)
+{
+
+	pinMode(FSENSOR_INT_PIN, OUTPUT);
+	digitalWrite(FSENSOR_INT_PIN, LOW);
+	fsensor_int_pin_old = 0;
+
+	//pciSetup(FSENSOR_INT_PIN);
+// !!! "pciSetup()" does not provide the correct results for some MCU pins
+// so interrupt registers settings:
+     FSENSOR_INT_PIN_PCMSK_REG |= bit(FSENSOR_INT_PIN_PCMSK_BIT); // enable corresponding PinChangeInterrupt (individual pin)
+     PCIFR |= bit(FSENSOR_INT_PIN_PCICR_BIT);     // clear previous occasional interrupt (set of pins)
+     PCICR |= bit(FSENSOR_INT_PIN_PCICR_BIT);     // enable corresponding PinChangeInterrupt (set of pins)
+}
+
+#endif //PAT9125
+
 void fsensor_st_block_begin(block_t* bl)
 {
 	if (!fsensor_enabled) return;
@@ -477,17 +523,18 @@ void fsensor_st_block_chunk(block_t* bl, int cnt)
 //! If there is still no plausible signal from filament sensor plans M600 (Filament change).
 void fsensor_update(void)
 {
-	if (fsensor_enabled && fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX))
-	{
-        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;
+#ifdef PAT9125
+		if (fsensor_enabled && fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX))
+		{
+			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;
 
-        fsensor_stop_and_save_print();
+			fsensor_stop_and_save_print();
 
-        fsensor_err_cnt = 0;
-        fsensor_oq_meassure_start(0);
+			fsensor_err_cnt = 0;
+			fsensor_oq_meassure_start(0);
 
 			enquecommand_front_P((PSTR("G1 E-3 F200")));
 			process_commands();
@@ -495,51 +542,47 @@ void fsensor_update(void)
 			cmdqueue_pop_front();
 			st_synchronize();
 
-        enquecommand_front_P((PSTR("G1 E3 F200")));
-        process_commands();
-		KEEPALIVE_STATE(IN_HANDLER);
-        cmdqueue_pop_front();
-        st_synchronize();
-
-		uint8_t err_cnt = fsensor_err_cnt;
-        fsensor_oq_meassure_stop();
-
-        bool err = false;
-        err |= (err_cnt > 1);
-
-		err |= (fsensor_oq_er_sum > 2);
-		err |= (fsensor_oq_yd_sum < (4 * FSENSOR_OQ_MIN_YD));
-
-		if (!err)
-        {
-            printf_P(PSTR("fsensor_err_cnt = 0\n"));
-            fsensor_restore_print_and_continue();
-        }
-        else
-        {
-            printf_P(PSTR("fsensor_update - M600\n"));
-            eeprom_update_byte((uint8_t*)EEPROM_FERROR_COUNT, eeprom_read_byte((uint8_t*)EEPROM_FERROR_COUNT) + 1);
-            eeprom_update_word((uint16_t*)EEPROM_FERROR_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_FERROR_COUNT_TOT) + 1);
-            enquecommand_front_P(PSTR("FSENSOR_RECOVER"));
-            enquecommand_front_P((PSTR("M600")));
-            fsensor_watch_runout = false;
-        }
-        fsensor_autoload_enabled = autoload_enabled_tmp;
-		fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp;
-	}
-}
+			enquecommand_front_P((PSTR("G1 E3 F200")));
+			process_commands();
+			KEEPALIVE_STATE(IN_HANDLER);
+			cmdqueue_pop_front();
+			st_synchronize();
 
-void fsensor_setup_interrupt(void)
-{
+			uint8_t err_cnt = fsensor_err_cnt;
+			fsensor_oq_meassure_stop();
 
-	pinMode(FSENSOR_INT_PIN, OUTPUT);
-	digitalWrite(FSENSOR_INT_PIN, LOW);
-	fsensor_int_pin_old = 0;
+			bool err = false;
+			err |= (err_cnt > 1);
 
-	//pciSetup(FSENSOR_INT_PIN);
-// !!! "pciSetup()" does not provide the correct results for some MCU pins
-// so interrupt registers settings:
-     FSENSOR_INT_PIN_PCMSK_REG |= bit(FSENSOR_INT_PIN_PCMSK_BIT); // enable corresponding PinChangeInterrupt (individual pin)
-     PCIFR |= bit(FSENSOR_INT_PIN_PCICR_BIT);     // clear previous occasional interrupt (set of pins)
-     PCICR |= bit(FSENSOR_INT_PIN_PCICR_BIT);     // enable corresponding PinChangeInterrupt (set of pins)
+			err |= (fsensor_oq_er_sum > 2);
+			err |= (fsensor_oq_yd_sum < (4 * FSENSOR_OQ_MIN_YD));
+
+			if (!err)
+			{
+				printf_P(PSTR("fsensor_err_cnt = 0\n"));
+				fsensor_restore_print_and_continue();
+			}
+			else
+			{
+				printf_P(PSTR("fsensor_update - M600\n"));
+				eeprom_update_byte((uint8_t*)EEPROM_FERROR_COUNT, eeprom_read_byte((uint8_t*)EEPROM_FERROR_COUNT) + 1);
+				eeprom_update_word((uint16_t*)EEPROM_FERROR_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_FERROR_COUNT_TOT) + 1);
+				enquecommand_front_P(PSTR("FSENSOR_RECOVER"));
+				enquecommand_front_P((PSTR("M600")));
+				fsensor_watch_runout = false;
+			}
+			fsensor_autoload_enabled = autoload_enabled_tmp;
+			fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp;
+		}
+#else //PAT9125
+		if ((digitalRead(IR_SENSOR_PIN) == 1) && CHECK_FSENSOR && fsensor_enabled && ir_sensor_detected)
+		{
+			fsensor_stop_and_save_print();
+			printf_P(PSTR("fsensor_update - M600\n"));
+			eeprom_update_byte((uint8_t*)EEPROM_FERROR_COUNT, eeprom_read_byte((uint8_t*)EEPROM_FERROR_COUNT) + 1);
+			eeprom_update_word((uint16_t*)EEPROM_FERROR_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_FERROR_COUNT_TOT) + 1);
+			enquecommand_front_P(PSTR("FSENSOR_RECOVER"));
+			enquecommand_front_P((PSTR("M600")));
+		}
+#endif //PAT9125
 }

+ 3 - 1
Firmware/fsensor.h

@@ -35,14 +35,16 @@ extern bool fsensor_autoload_enabled;
 extern void fsensor_autoload_set(bool State);
 
 extern void fsensor_update(void);
-
+#ifdef PAT9125
 //! setup pin-change interrupt
 extern void fsensor_setup_interrupt(void);
 
 //! @name autoload support
 //! @{
+
 extern void fsensor_autoload_check_start(void);
 extern void fsensor_autoload_check_stop(void);
+#endif //PAT9125
 extern bool fsensor_check_autoload(void);
 //! @}
 

+ 1 - 1
Firmware/lcd.cpp

@@ -755,7 +755,7 @@ void lcd_update_enable(uint8_t enabled)
 			// Reset the timeout interval.
 			lcd_timeoutToStatus.start();
 			// Force the keypad update now.
-			lcd_next_update_millis = millis() - 1;
+			lcd_next_update_millis = _millis() - 1;
 			// Full update.
 			lcd_clear();
 			if (lcd_charsetup_func)

+ 2 - 1
Firmware/menu.cpp

@@ -284,7 +284,8 @@ void menu_draw_P<int16_t*>(char chr, const char* str, int16_t val)
 	if (text_len > 15) text_len = 15;
 	char spaces[21];
 	strcpy_P(spaces, menu_20x_space);
-	spaces[15 - text_len] = 0;
+	if (val <= -100) spaces[15 - text_len - 1] = 0;
+	else spaces[15 - text_len] = 0;
 	lcd_printf_P(menu_fmt_int3, chr, str, spaces, val);
 }
 

+ 1 - 1
Firmware/messages.c

@@ -96,7 +96,7 @@ const char MSG_WIZARD_DONE[] PROGMEM_I1 = ISTR("All is done. Happy printing!");
 const char MSG_WIZARD_HEATING[] PROGMEM_I1 = ISTR("Preheating nozzle. Please wait."); ////c=20 r=3
 const char MSG_WIZARD_QUIT[] PROGMEM_I1 = ISTR("You can always resume the Wizard from Calibration -> Wizard."); ////c=20 r=8
 const char MSG_YES[] PROGMEM_I1 = ISTR("Yes"); ////c=0 r=0
-const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " ready."); ////c=20 r=0
+const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " OK."); ////c=20 r=0
 //not internationalized messages
 const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; ////c=0 r=0
 const char MSG_BROWNOUT_RESET[] PROGMEM_N1 = " Brown out Reset"; ////c=0 r=0

+ 47 - 38
Firmware/mmu.cpp

@@ -20,8 +20,6 @@
 #include "tmc2130.h"
 #endif //TMC2130
 
-#define CHECK_FINDA ((IS_SD_PRINTING || is_usb_printing) && (mcode_in_progress != 600) && !saved_printing && e_active())
-
 #define MMU_TODELAY 100
 #define MMU_TIMEOUT 10
 #define MMU_CMD_TIMEOUT 45000ul //5min timeout for mmu commands (except P0)
@@ -42,7 +40,7 @@ uint8_t mmu_cmd = 0;
 
 //idler ir sensor
 uint8_t mmu_idl_sens = 0;
-bool mmu_idler_sensor_detected = false; 
+bool ir_sensor_detected = false; 
 bool mmu_loading_flag = false;
 
 uint8_t mmu_extruder = MMU_FILAMENT_UNKNOWN;
@@ -74,7 +72,7 @@ int mmu_puts_P(const char* str)
 {
 	mmu_clr_rx_buf();                          //clear rx buffer
     int r = fputs_P(str, uart2io);             //send command
-	mmu_last_request = millis();
+	mmu_last_request = _millis();
 	return r;
 }
 
@@ -86,7 +84,7 @@ int mmu_printf_P(const char* format, ...)
 	mmu_clr_rx_buf();                          //clear rx buffer
 	int r = vfprintf_P(uart2io, format, args); //send command
 	va_end(args);
-	mmu_last_request = millis();
+	mmu_last_request = _millis();
 	return r;
 }
 
@@ -94,7 +92,7 @@ int mmu_printf_P(const char* format, ...)
 int8_t mmu_rx_ok(void)
 {
 	int8_t res = uart2_rx_str_P(PSTR("ok\n"));
-	if (res == 1) mmu_last_response = millis();
+	if (res == 1) mmu_last_response = _millis();
 	return res;
 }
 
@@ -102,7 +100,7 @@ int8_t mmu_rx_ok(void)
 int8_t mmu_rx_start(void)
 {
 	int8_t res = uart2_rx_str_P(PSTR("start\n"));
-	if (res == 1) mmu_last_response = millis();
+	if (res == 1) mmu_last_response = _millis();
 	return res;
 }
 
@@ -117,25 +115,36 @@ void mmu_init(void)
 	_delay_ms(10);                             //wait 10ms for sure
 	mmu_reset();                               //reset mmu (HW or SW), do not wait for response
 	mmu_state = -1;
-	PIN_INP(MMU_IDLER_SENSOR_PIN); //input mode
-	PIN_SET(MMU_IDLER_SENSOR_PIN); //pullup
+	PIN_INP(IR_SENSOR_PIN); //input mode
+	PIN_SET(IR_SENSOR_PIN); //pullup
 }
 
-//returns true if idler IR sensor was detected, otherwise returns false
-bool check_for_idler_sensor() 
+
+//if IR_SENSOR defined, always returns true
+//otherwise check for ir sensor and returns true if idler IR sensor was detected, otherwise returns false
+bool check_for_ir_sensor() 
 {
+#ifdef IR_SENSOR
+	return true;
+#else //IR_SENSOR
+
 	bool detected = false;
-	//if MMU_IDLER_SENSOR_PIN input is low and pat9125sensor is not present we detected idler sensor
-	if ((PIN_GET(MMU_IDLER_SENSOR_PIN) == 0) && fsensor_not_responding) 
-	{
-		  detected = true;
-		  //printf_P(PSTR("Idler IR sensor detected\n"));
+	//if IR_SENSOR_PIN input is low and pat9125sensor is not present we detected idler sensor
+	if ((PIN_GET(IR_SENSOR_PIN) == 0) 
+#ifdef PAT9125
+		&& fsensor_not_responding
+#endif //PAT9125
+	) 
+	{		
+		detected = true;
+		//printf_P(PSTR("Idler IR sensor detected\n"));
 	}
 	else
 	{
-		  //printf_P(PSTR("Idler IR sensor not detected\n"));
+		//printf_P(PSTR("Idler IR sensor not detected\n"));
 	}
 	return detected;
+#endif //IR_SENSOR
 }
 
 //mmu main loop - state machine processing
@@ -158,7 +167,7 @@ void mmu_loop(void)
 		    mmu_puts_P(PSTR("S1\n")); //send 'read version' request
 			mmu_state = -2;
 		}
-		else if (millis() > 30000) //30sec after reset disable mmu
+		else if (_millis() > 30000) //30sec after reset disable mmu
 		{
 			puts_P(PSTR("MMU not responding - DISABLED"));
 			mmu_state = 0;
@@ -225,8 +234,6 @@ void mmu_loop(void)
 #endif //MMU_DEBUG && MMU_FINDA_DEBUG
 			puts_P(PSTR("MMU - ENABLED"));
 			mmu_enabled = true;
-			//if we have filament loaded into the nozzle, we can decide if printer has idler sensor right now; otherwise we will will wait till start of T-code so it will be detected on beginning of second T-code
-			if(check_for_idler_sensor()) mmu_idler_sensor_detected = true;
 			mmu_state = 1;
 		}
 		return;
@@ -300,9 +307,11 @@ void mmu_loop(void)
 			mmu_last_cmd = mmu_cmd;
 			mmu_cmd = 0;
 		}
-		else if ((mmu_last_response + 300) < millis()) //request every 300ms
+		else if ((mmu_last_response + 300) < _millis()) //request every 300ms
 		{
-			if(check_for_idler_sensor()) mmu_idler_sensor_detected = true;
+#ifndef IR_SENSOR
+			if(check_for_ir_sensor()) ir_sensor_detected = true;
+#endif //IR_SENSOR not defined
 #if defined MMU_DEBUG && defined MMU_FINDA_DEBUG
 			puts_P(PSTR("MMU <= 'P0'"));
 #endif //MMU_DEBUG && MMU_FINDA_DEBUG
@@ -318,7 +327,7 @@ void mmu_loop(void)
 			printf_P(PSTR("MMU => '%dok'\n"), mmu_finda);
 #endif //MMU_DEBUG && MMU_FINDA_DEBUG
 			//printf_P(PSTR("Eact: %d\n"), int(e_active()));
-			if (!mmu_finda && CHECK_FINDA && fsensor_enabled) {
+			if (!mmu_finda && CHECK_FSENSOR && fsensor_enabled) {
 				fsensor_stop_and_save_print();
 				enquecommand_front_P(PSTR("FSENSOR_RECOVER")); //then recover
 				ad_markDepleted(mmu_extruder);
@@ -335,7 +344,7 @@ void mmu_loop(void)
 			if (mmu_cmd == 0)
 				mmu_ready = true;
 		}
-		else if ((mmu_last_request + MMU_P0_TIMEOUT) < millis())
+		else if ((mmu_last_request + MMU_P0_TIMEOUT) < _millis())
 		{ //resend request after timeout (30s)
 			mmu_state = 1;
 		}
@@ -343,7 +352,7 @@ void mmu_loop(void)
 	case 3: //response to mmu commands
         if (mmu_idl_sens)
         {
-            if (PIN_GET(MMU_IDLER_SENSOR_PIN) == 0 && mmu_loading_flag)
+            if (PIN_GET(IR_SENSOR_PIN) == 0 && mmu_loading_flag)
             {
 #ifdef MMU_DEBUG
                 printf_P(PSTR("MMU <= 'A'\n"));
@@ -365,7 +374,7 @@ void mmu_loop(void)
 			mmu_ready = true;
 			mmu_state = 1;
 		}
-		else if ((mmu_last_request + MMU_CMD_TIMEOUT) < millis())
+		else if ((mmu_last_request + MMU_CMD_TIMEOUT) < _millis())
 		{ //resend request after timeout (5 min)
 			if (mmu_last_cmd)
 			{
@@ -395,7 +404,7 @@ void mmu_loop(void)
 			mmu_ready = true;
 			mmu_state = 1;
 		}
-		else if ((mmu_last_request + MMU_CMD_TIMEOUT) < millis())
+		else if ((mmu_last_request + MMU_CMD_TIMEOUT) < _millis())
 		{ //resend request after timeout (5 min)
 			mmu_state = 1;
 		}
@@ -471,7 +480,7 @@ void mmu_load_step(bool synchronize)
 //!         off E-stepper to prevent over-heating and allow filament pull-out if necessary
 bool can_extrude()
 {
-    if ((degHotend(active_extruder) < EXTRUDE_MINTEMP) || !mmu_idler_sensor_detected)
+    if ((degHotend(active_extruder) < EXTRUDE_MINTEMP) || !ir_sensor_detected)
     {
         disable_e0();
         delay_keep_alive(100);
@@ -501,10 +510,10 @@ bool mmu_get_response(uint8_t move)
 			    mmu_loading_flag = true;
 				if (can_extrude()) mmu_load_step();
 				//don't rely on "ok" signal from mmu unit; if filament detected by idler sensor during loading stop loading movements to prevent infinite loading
-				if (PIN_GET(MMU_IDLER_SENSOR_PIN) == 0) move = MMU_NO_MOVE;
+				if (PIN_GET(IR_SENSOR_PIN) == 0) move = MMU_NO_MOVE;
 				break;
 			case MMU_UNLOAD_MOVE:
-				if (PIN_GET(MMU_IDLER_SENSOR_PIN) == 0) //filament is still detected by idler sensor, printer helps with unlading 
+				if (PIN_GET(IR_SENSOR_PIN) == 0) //filament is still detected by idler sensor, printer helps with unlading 
 				{
 				    if (can_extrude())
 				    {
@@ -522,7 +531,7 @@ bool mmu_get_response(uint8_t move)
 				}
 				break;
 			case MMU_TCODE_MOVE: //first do unload and then continue with infinite loading movements
-				if (PIN_GET(MMU_IDLER_SENSOR_PIN) == 0) //filament detected by idler sensor, we must unload first 
+				if (PIN_GET(IR_SENSOR_PIN) == 0) //filament detected by idler sensor, we must unload first 
 				{
                     if (can_extrude())
                     {
@@ -700,7 +709,7 @@ void mmu_load_to_nozzle()
 	
 	bool saved_e_relative_mode = axis_relative_modes[E_AXIS];
 	if (!saved_e_relative_mode) axis_relative_modes[E_AXIS] = true;
-	if (mmu_idler_sensor_detected)
+	if (ir_sensor_detected)
 	{
 		current_position[E_AXIS] += 3.0f;
 	}
@@ -815,7 +824,7 @@ void change_extr(int
         ) { //switches multiplexer for extruders
 #ifdef SNMM
 	st_synchronize();
-	delay(100);
+	_delay(100);
 
 	disable_e0();
 	disable_e1();
@@ -848,7 +857,7 @@ void change_extr(int
 		
 		break;
 	}
-	delay(100);
+	_delay(100);
 #endif
 }
 
@@ -1362,16 +1371,16 @@ void mmu_eject_filament(uint8_t filament, bool recover)
 void mmu_continue_loading() 
 {
 
-	if (mmu_idler_sensor_detected) {
+	if (ir_sensor_detected) {
 		for (uint8_t i = 0; i < MMU_IDLER_SENSOR_ATTEMPTS_NR; i++) {
-			if (PIN_GET(MMU_IDLER_SENSOR_PIN) == 0) return;
+			if (PIN_GET(IR_SENSOR_PIN) == 0) return;
 #ifdef MMU_DEBUG
 			printf_P(PSTR("Additional load attempt nr. %d\n"), i);
 #endif // MMU_DEBUG
 			mmu_command(MMU_CMD_C0);
 			manage_response(true, true, MMU_LOAD_MOVE);
 		}
-		if (PIN_GET(MMU_IDLER_SENSOR_PIN) != 0) {
+		if (PIN_GET(IR_SENSOR_PIN) != 0) {
 			uint8_t mmu_load_fail = eeprom_read_byte((uint8_t*)EEPROM_MMU_LOAD_FAIL);
 			uint16_t mmu_load_fail_tot = eeprom_read_word((uint16_t*)EEPROM_MMU_LOAD_FAIL_TOT);
 			if(mmu_load_fail < 255) eeprom_update_byte((uint8_t*)EEPROM_MMU_LOAD_FAIL, mmu_load_fail + 1);
@@ -1398,7 +1407,7 @@ void mmu_continue_loading()
 			isPrintPaused = true;
 		}
 	}
-	else { //mmu_idler_sensor_detected == false
+	else { //mmu_ir_sensor_detected == false
 		mmu_command(MMU_CMD_C0);
 	}
 }

+ 2 - 2
Firmware/mmu.h

@@ -14,7 +14,7 @@ extern uint8_t mmu_extruder;
 extern uint8_t tmp_extruder;
 
 extern int8_t mmu_finda;
-extern bool mmu_idler_sensor_detected;
+extern bool ir_sensor_detected;
 extern bool mmu_loading_flag;
 
 extern int16_t mmu_version;
@@ -59,7 +59,7 @@ extern int mmu_printf_P(const char* format, ...);
 
 extern int8_t mmu_rx_ok(void);
 
-extern bool check_for_idler_sensor();
+extern bool check_for_ir_sensor();
 
 extern void mmu_init(void);
 

+ 2 - 5
Firmware/pins_Einsy_1_0.h

@@ -99,10 +99,7 @@
 
 //#define KILL_PIN            32
 
-
-//#define LCD_PWM_PIN         -1//32  // lcd backlight brightnes pwm control pin
-//#define LCD_PWM_MAX       0x0f  // lcd pwm maximum value (0x07=64Hz, 0x0f=32Hz, 0x1f=16Hz)
-
+//#define LCD_BL_PIN          5   //backlight control pin
 #define BEEPER              84  // Beeper on AUX-4
 #define LCD_PINS_RS         82
 #define LCD_PINS_ENABLE     61 // !!! changed from 18 (EINY03)
@@ -121,7 +118,7 @@
 #define TACH_0                 79 // !!! changed from 81 (EINY03)
 #define TACH_1                 80 
 
-#define MMU_IDLER_SENSOR_PIN 62 //idler sensor @PK0 (digital pin 62/A8)
+#define IR_SENSOR_PIN 62 //idler sensor @PK0 (digital pin 62/A8)
 
 // Support for an 8 bit logic analyzer, for example the Saleae.
 // Channels 0-2 are fast, they could generate 2.667Mhz waveform with a software loop.

+ 1 - 1
Firmware/pins_Rambo_1_0.h

@@ -102,7 +102,7 @@
 
 #define SDCARDDETECT           72
 
-#define MMU_IDLER_SENSOR_PIN 62 //idler sensor @PK0 (digital pin 62/A8)
+#define IR_SENSOR_PIN 62 //idler sensor @PK0 (digital pin 62/A8)
 
 // Support for an 8 bit logic analyzer, for example the Saleae.
 // Channels 0-2 are fast, they could generate 2.667Mhz waveform with a software loop.

+ 1 - 1
Firmware/pins_Rambo_1_3.h

@@ -102,7 +102,7 @@
 
 #define SDCARDDETECT           15
 
-#define MMU_IDLER_SENSOR_PIN 62 //idler sensor @PK0 (digital pin 62/A8)
+#define IR_SENSOR_PIN 23 // idler sensor @PA1 (digital pin 23, "Z-MAX" connector)
 
 // Support for an 8 bit logic analyzer, for example the Saleae.
 // Channels 0-2 are fast, they could generate 2.667Mhz waveform with a software loop.

+ 9 - 3
Firmware/planner.cpp

@@ -535,9 +535,9 @@ void check_axes_activity()
     if (tail_fan_speed) {
       if (fan_kick_end == 0) {
         // Just starting up fan - run at full power.
-        fan_kick_end = millis() + FAN_KICKSTART_TIME;
+        fan_kick_end = _millis() + FAN_KICKSTART_TIME;
         tail_fan_speed = 255;
-      } else if (fan_kick_end > millis())
+      } else if (fan_kick_end > _millis())
         // Fan still spinning up.
         tail_fan_speed = 255;
     } else {
@@ -545,7 +545,13 @@ void check_axes_activity()
     }
   #endif//FAN_KICKSTART_TIME
   #ifdef FAN_SOFT_PWM
-  fanSpeedSoftPwm = tail_fan_speed;
+	if (fan_measuring) { //if measurement is currently in process, fanSpeedSoftPwm must remain set to 255, but we must update fanSpeedBckp value
+		fanSpeedBckp = tail_fan_speed;
+	}
+	else {
+		fanSpeedSoftPwm = tail_fan_speed;
+	}
+  //printf_P(PSTR("fanspeedsoftPWM %d \n"), fanSpeedSoftPwm);
   #else
   analogWrite(FAN_PIN,tail_fan_speed);
   #endif//!FAN_SOFT_PWM

+ 2 - 0
Firmware/printers.h

@@ -8,7 +8,9 @@
 #define PRINTER_MK2_SNMM    201
 #define PRINTER_MK25        250
 #define PRINTER_MK25_SNMM   251
+#define PRINTER_MK25S		252
 #define PRINTER_MK3         300
 #define PRINTER_MK3_SNMM    301
+#define PRINTER_MK3S		302
 
 #endif //PRINTERS_H

+ 1 - 1
Firmware/stepper.cpp

@@ -1537,7 +1537,7 @@ void digitalPotWrite(int address, int value) // From Arduino DigitalPotControl e
     SPI.transfer(address); //  send in the address and value via SPI:
     SPI.transfer(value);
     digitalWrite(DIGIPOTSS_PIN,HIGH); // take the SS pin high to de-select the chip:
-    //delay(10);
+    //_delay(10);
 }
 #endif
 

+ 25 - 0
Firmware/system_timer.h

@@ -0,0 +1,25 @@
+//! @file
+
+#ifndef FIRMWARE_SYSTEM_TIMER_H_
+#define FIRMWARE_SYSTEM_TIMER_H_
+
+#include "Arduino.h"
+#define SYSTEM_TIMER_2
+
+#ifdef SYSTEM_TIMER_2
+#include "timer02.h"
+#define _millis millis2
+#define _micros micros2
+#define _delay delay2
+#define _tone tone2
+#define _noTone noTone2
+#else //SYSTEM_TIMER_2
+#define _millis millis
+#define _micros micros
+#define _delay delay
+#define _tone tone
+#define _noTone noTone
+#define timer02_set_pwm0(pwm0)
+#endif //SYSTEM_TIMER_2
+
+#endif /* FIRMWARE_SYSTEM_TIMER_H_ */

+ 136 - 45
Firmware/temperature.cpp

@@ -45,6 +45,7 @@
 #include "Configuration_prusa.h"
 
 
+
 //===========================================================================
 //=============================public variables============================
 //===========================================================================
@@ -141,7 +142,10 @@ static volatile bool temp_meas_ready = false;
 #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)
-  static unsigned long extruder_autofan_last_check;
+  unsigned long extruder_autofan_last_check = _millis();
+  uint8_t fanSpeedBckp = 255;
+  bool fan_measuring = false;
+
 #endif  
 
 
@@ -220,7 +224,7 @@ static void temp_runaway_stop(bool isPreheat, bool isBed);
   pid_cycle=0;
   bool heating = true;
 
-  unsigned long temp_millis = millis();
+  unsigned long temp_millis = _millis();
   unsigned long t1=temp_millis;
   unsigned long t2=temp_millis;
   long t_high = 0;
@@ -236,7 +240,7 @@ static void temp_runaway_stop(bool isPreheat, bool isBed);
 #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)
-  unsigned long extruder_autofan_last_check = millis();
+  unsigned long extruder_autofan_last_check = _millis();
 #endif
 
   if ((extruder >= EXTRUDERS)
@@ -257,6 +261,7 @@ static void temp_runaway_stop(bool isPreheat, bool isBed);
   if (extruder<0)
   {
      soft_pwm_bed = (MAX_BED_POWER)/2;
+	 timer02_set_pwm0(soft_pwm_bed << 1);
      bias = d = (MAX_BED_POWER)/2;
    }
    else
@@ -283,28 +288,31 @@ static void temp_runaway_stop(bool isPreheat, bool isBed);
       #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(millis() - extruder_autofan_last_check > 2500) {
+      if(_millis() - extruder_autofan_last_check > 2500) {
         checkExtruderAutoFans();
-        extruder_autofan_last_check = millis();
+        extruder_autofan_last_check = _millis();
       }
       #endif
 
       if(heating == true && input > temp) {
-        if(millis() - t2 > 5000) { 
+        if(_millis() - t2 > 5000) { 
           heating=false;
           if (extruder<0)
+		  {
             soft_pwm_bed = (bias - d) >> 1;
+			timer02_set_pwm0(soft_pwm_bed << 1);
+		  }
           else
             soft_pwm[extruder] = (bias - d) >> 1;
-          t1=millis();
+          t1=_millis();
           t_high=t1 - t2;
           max=temp;
         }
       }
       if(heating == false && input < temp) {
-        if(millis() - t1 > 5000) {
+        if(_millis() - t1 > 5000) {
           heating=true;
-          t2=millis();
+          t2=_millis();
           t_low=t2 - t1;
           if(pid_cycle > 0) {
             bias += (d*(t_high - t_low))/(t_low + t_high);
@@ -347,7 +355,10 @@ static void temp_runaway_stop(bool isPreheat, bool isBed);
             }
           }
           if (extruder<0)
+		  {
             soft_pwm_bed = (bias + d) >> 1;
+			timer02_set_pwm0(soft_pwm_bed << 1);
+		  }
           else
             soft_pwm[extruder] = (bias + d) >> 1;
           pid_cycle++;
@@ -361,7 +372,7 @@ static void temp_runaway_stop(bool isPreheat, bool isBed);
 	  pid_cycle = 0;
       return;
     }
-    if(millis() - temp_millis > 2000) {
+    if(_millis() - temp_millis > 2000) {
       int p;
       if (extruder<0){
         p=soft_pwm_bed;       
@@ -396,9 +407,9 @@ static void temp_runaway_stop(bool isPreheat, bool isBed);
 				return;
 			}
 		}
-      temp_millis = millis();
+      temp_millis = _millis();
     }
-    if(((millis() - t1) + (millis() - t2)) > (10L*60L*1000L*2L)) {
+    if(((_millis() - t1) + (_millis() - t2)) > (10L*60L*1000L*2L)) {
       SERIAL_PROTOCOLLNPGM("PID Autotune failed! timeout");
 	  pid_tuning_finished = true;
 	  pid_cycle = 0;
@@ -454,7 +465,7 @@ void setExtruderAutoFanState(int pin, bool state)
   // this idiom allows both digital and PWM fan outputs (see M42 handling).
   pinMode(pin, OUTPUT);
   digitalWrite(pin, newFanSpeed);
-  analogWrite(pin, newFanSpeed);
+  //analogWrite(pin, newFanSpeed);
 }
 
 #if (defined(FANCHECK) && (((defined(TACH_0) && (TACH_0 >-1)) || (defined(TACH_1) && (TACH_1 > -1)))))
@@ -462,9 +473,9 @@ void setExtruderAutoFanState(int pin, bool state)
 void countFanSpeed()
 {
 	//SERIAL_ECHOPGM("edge counter 1:"); MYSERIAL.println(fan_edge_counter[1]);
-	fan_speed[0] = (fan_edge_counter[0] * (float(250) / (millis() - extruder_autofan_last_check)));
-	fan_speed[1] = (fan_edge_counter[1] * (float(250) / (millis() - extruder_autofan_last_check)));
-	/*SERIAL_ECHOPGM("time interval: "); MYSERIAL.println(millis() - extruder_autofan_last_check);
+	fan_speed[0] = (fan_edge_counter[0] * (float(250) / (_millis() - extruder_autofan_last_check)));
+	fan_speed[1] = (fan_edge_counter[1] * (float(250) / (_millis() - extruder_autofan_last_check)));
+	/*SERIAL_ECHOPGM("time interval: "); MYSERIAL.println(_millis() - extruder_autofan_last_check);
 	SERIAL_ECHOPGM("extruder fan speed:"); MYSERIAL.print(fan_speed[0]); SERIAL_ECHOPGM("; edge counter:"); MYSERIAL.println(fan_edge_counter[0]);
 	SERIAL_ECHOPGM("print fan speed:"); MYSERIAL.print(fan_speed[1]); SERIAL_ECHOPGM("; edge counter:"); MYSERIAL.println(fan_edge_counter[1]);
 	SERIAL_ECHOLNPGM(" ");*/
@@ -476,6 +487,16 @@ extern bool fans_check_enabled;
 
 void checkFanSpeed()
 {
+	uint8_t max_print_fan_errors = 0;
+	uint8_t max_extruder_fan_errors = 0;
+#ifdef FAN_SOFT_PWM
+	max_print_fan_errors = 3; //15 seconds
+	max_extruder_fan_errors = 2; //10seconds
+#else //FAN_SOFT_PWM
+	max_print_fan_errors = 15; //15 seconds
+	max_extruder_fan_errors = 5; //5 seconds
+#endif //FAN_SOFT_PWM
+
 	fans_check_enabled = (eeprom_read_byte((uint8_t*)EEPROM_FAN_CHECK_ENABLED) > 0);
 	static unsigned char fan_speed_errors[2] = { 0,0 };
 #if (defined(FANCHECK) && defined(TACH_0) && (TACH_0 >-1))
@@ -483,15 +504,15 @@ void checkFanSpeed()
 	else fan_speed_errors[0] = 0;
 #endif
 #if (defined(FANCHECK) && defined(TACH_1) && (TACH_1 >-1))
-	if ((fan_speed[1] == 0) && ((blocks_queued() ? block_buffer[block_buffer_tail].fan_speed : fanSpeed) > MIN_PRINT_FAN_SPEED)) fan_speed_errors[1]++;
+	if ((fan_speed[1] < 5) && ((blocks_queued() ? block_buffer[block_buffer_tail].fan_speed : fanSpeed) > MIN_PRINT_FAN_SPEED)) fan_speed_errors[1]++;
 	else fan_speed_errors[1] = 0;
 #endif
 
-	if ((fan_speed_errors[0] > 5) && fans_check_enabled) {
+	if ((fan_speed_errors[0] > max_extruder_fan_errors) && fans_check_enabled) {
 		fan_speed_errors[0] = 0;
 		fanSpeedError(0); //extruder fan
 	}
-	if ((fan_speed_errors[1] > 15) && fans_check_enabled) {
+	if ((fan_speed_errors[1] > max_print_fan_errors) && fans_check_enabled) {
 		fan_speed_errors[1] = 0;
 		fanSpeedError(1); //print fan
 	}
@@ -698,7 +719,7 @@ void manage_heater()
     }
 
     #ifdef WATCH_TEMP_PERIOD
-    if(watchmillis[e] && millis() - watchmillis[e] > WATCH_TEMP_PERIOD)
+    if(watchmillis[e] && _millis() - watchmillis[e] > WATCH_TEMP_PERIOD)
     {
         if(degHotend(e) < watch_start_temp[e] + WATCH_TEMP_INCREASE)
         {
@@ -726,26 +747,56 @@ void manage_heater()
     #endif
   } // End extruder for loop
 
+#define FAN_CHECK_PERIOD 5000 //5s
+#define FAN_CHECK_DURATION 100 //100ms
+
 #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(millis() - extruder_autofan_last_check > 1000)  // only need to check fan state very infrequently
+
+#ifdef FAN_SOFT_PWM
+#ifdef FANCHECK
+  if ((_millis() - extruder_autofan_last_check > FAN_CHECK_PERIOD) && (!fan_measuring)) {
+	  extruder_autofan_last_check = _millis();
+	  fanSpeedBckp = fanSpeedSoftPwm;
+	  
+	  if (fanSpeedSoftPwm >= MIN_PRINT_FAN_SPEED) { //if we are in rage where we are doing fan check, set full PWM range for a short time to measure fan RPM by reading tacho signal without modulation by PWM signal
+		//  printf_P(PSTR("fanSpeedSoftPwm 1: %d\n"), fanSpeedSoftPwm);
+		  fanSpeedSoftPwm = 255;
+	  }
+	  fan_measuring = true;
+  }
+  if ((_millis() - extruder_autofan_last_check > FAN_CHECK_DURATION) && (fan_measuring)) {
+	  countFanSpeed();
+	  checkFanSpeed();
+	  //printf_P(PSTR("fanSpeedSoftPwm 1: %d\n"), fanSpeedSoftPwm);
+	  fanSpeedSoftPwm = fanSpeedBckp;
+	  //printf_P(PSTR("fan PWM: %d; extr fanSpeed measured: %d; print fan speed measured: %d \n"), fanSpeedBckp, fan_speed[0], fan_speed[1]);
+	  extruder_autofan_last_check = _millis();
+	  fan_measuring = false;
+  }
+#endif //FANCHECK
+  checkExtruderAutoFans();
+#else //FAN_SOFT_PWM
+  if(_millis() - extruder_autofan_last_check > 1000)  // only need to check fan state very infrequently
   {
 #if (defined(FANCHECK) && ((defined(TACH_0) && (TACH_0 >-1)) || (defined(TACH_1) && (TACH_1 > -1))))
 	countFanSpeed();
 	checkFanSpeed();
 #endif //(defined(TACH_0) && TACH_0 >-1) || (defined(TACH_1) && TACH_1 > -1)
     checkExtruderAutoFans();
-    extruder_autofan_last_check = millis();
+    extruder_autofan_last_check = _millis();
   }  
-  #endif       
+#endif //FAN_SOFT_PWM
+
+  #endif  
 #endif //DEBUG_DISABLE_FANCHECK
   
   #ifndef PIDTEMPBED
-  if(millis() - previous_millis_bed_heater < BED_CHECK_INTERVAL)
+  if(_millis() - previous_millis_bed_heater < BED_CHECK_INTERVAL)
     return;
-  previous_millis_bed_heater = millis();
+  previous_millis_bed_heater = _millis();
   #endif
 
   #if TEMP_SENSOR_BED != 0
@@ -781,9 +832,11 @@ void manage_heater()
 	  if(current_temperature_bed < BED_MAXTEMP)
 	  {
 	    soft_pwm_bed = (int)pid_output >> 1;
+		timer02_set_pwm0(soft_pwm_bed << 1);
 	  }
 	  else {
 	    soft_pwm_bed = 0;
+		timer02_set_pwm0(soft_pwm_bed << 1);
 	  }
 
     #elif !defined(BED_LIMIT_SWITCHING)
@@ -793,15 +846,18 @@ void manage_heater()
         if(current_temperature_bed >= target_temperature_bed)
         {
           soft_pwm_bed = 0;
+		  timer02_set_pwm0(soft_pwm_bed << 1);
         }
         else 
         {
           soft_pwm_bed = MAX_BED_POWER>>1;
+		  timer02_set_pwm0(soft_pwm_bed << 1);
         }
       }
       else
       {
         soft_pwm_bed = 0;
+		timer02_set_pwm0(soft_pwm_bed << 1);
         WRITE(HEATER_BED_PIN,LOW);
       }
     #else //#ifdef BED_LIMIT_SWITCHING
@@ -811,20 +867,26 @@ void manage_heater()
         if(current_temperature_bed > target_temperature_bed + BED_HYSTERESIS)
         {
           soft_pwm_bed = 0;
+		  timer02_set_pwm0(soft_pwm_bed << 1);
         }
         else if(current_temperature_bed <= target_temperature_bed - BED_HYSTERESIS)
         {
           soft_pwm_bed = MAX_BED_POWER>>1;
+          timer02_set_pwm0(soft_pwm_bed << 1);
         }
       }
       else
       {
         soft_pwm_bed = 0;
+		timer02_set_pwm0(soft_pwm_bed << 1);
         WRITE(HEATER_BED_PIN,LOW);
       }
     #endif
       if(target_temperature_bed==0)
+	  {
         soft_pwm_bed = 0;
+		timer02_set_pwm0(soft_pwm_bed << 1);
+	  }
   #endif
   
 #ifdef HOST_KEEPALIVE_FEATURE
@@ -996,7 +1058,6 @@ static void updateTemperaturesFromRawValues()
     CRITICAL_SECTION_END;
 }
 
-
 void tp_init()
 {
 #if MB(RUMBA) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1))
@@ -1037,7 +1098,7 @@ void tp_init()
     setPwmFrequency(FAN_PIN, 1); // No prescaling. Pwm frequency = F_CPU/256/8
     #endif
     #ifdef FAN_SOFT_PWM
-    soft_pwm_fan = fanSpeedSoftPwm / 2;
+    soft_pwm_fan = fanSpeedSoftPwm / (1 << (8 - FAN_SOFT_PWM_BITS));
     #endif
   #endif
 
@@ -1063,13 +1124,21 @@ void tp_init()
 
   adc_init();
 
+#ifdef SYSTEM_TIMER_2
+  timer02_init();
+  OCR2B = 128;
+  TIMSK2 |= (1<<OCIE2B);  
+#else //SYSTEM_TIMER_2
   // Use timer0 for temperature measurement
   // Interleave temperature interrupt with millies interrupt
   OCR0B = 128;
   TIMSK0 |= (1<<OCIE0B);  
+#endif //SYSTEM_TIMER_2
+
+
   
   // Wait for temperature measurement to settle
-  delay(250);
+  _delay(250);
 
 #ifdef HEATER_0_MINTEMP
   minttemp[0] = HEATER_0_MINTEMP;
@@ -1164,7 +1233,7 @@ void setWatch()
     if(degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE * 2))
     {
       watch_start_temp[e] = degHotend(e);
-      watchmillis[e] = millis();
+      watchmillis[e] = _millis();
     } 
   }
 #endif 
@@ -1181,7 +1250,7 @@ void temp_runaway_check(int _heater_id, float _target_temperature, float _curren
 	static int __preheat_errors[2] = { 0,0};
 		
 
-	if (millis() - temp_runaway_timer[_heater_id] > 2000)
+	if (_millis() - temp_runaway_timer[_heater_id] > 2000)
 	{
 
 #ifdef 	TEMP_RUNAWAY_BED_TIMEOUT
@@ -1199,7 +1268,7 @@ void temp_runaway_check(int _heater_id, float _target_temperature, float _curren
           }
 #endif
 
-		temp_runaway_timer[_heater_id] = millis();
+		temp_runaway_timer[_heater_id] = _millis();
 		if (_output == 0)
 		{
 			temp_runaway_check_active = false;
@@ -1329,7 +1398,12 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE)||(eSoundMode
 		SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN);
 		SET_OUTPUT(FAN_PIN);
 		WRITE(EXTRUDER_0_AUTO_FAN_PIN, 1);
+#ifdef FAN_SOFT_PWM
+		fanSpeedSoftPwm = 255;
+#else //FAN_SOFT_PWM
 		analogWrite(FAN_PIN, 255);
+#endif //FAN_SOFT_PWM
+
 		fanSpeed = 255;
 		delayMicroseconds(2000);
 	}
@@ -1374,6 +1448,7 @@ void disable_heater()
   #if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1
     target_temperature_bed=0;
     soft_pwm_bed=0;
+	timer02_set_pwm0(soft_pwm_bed << 1);
     #if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1  
       WRITE(HEATER_BED_PIN,LOW);
     #endif
@@ -1465,10 +1540,10 @@ int max6675_temp = 2000;
 
 int read_max6675()
 {
-  if (millis() - max6675_previous_millis < MAX6675_HEAT_INTERVAL) 
+  if (_millis() - max6675_previous_millis < MAX6675_HEAT_INTERVAL) 
     return max6675_temp;
   
-  max6675_previous_millis = millis();
+  max6675_previous_millis = _millis();
   max6675_temp = 0;
     
   #ifdef	PRR
@@ -1515,9 +1590,9 @@ int read_max6675()
 #endif
 
 
-
 extern "C" {
 
+
 void adc_ready(void) //callback from adc when sampling finished
 {
 	current_temperature_raw[0] = adc_values[ADC_PIN_IDX(TEMP_0_PIN)]; //heater
@@ -1538,8 +1613,12 @@ void adc_ready(void) //callback from adc when sampling finished
 } // extern "C"
 
 
-// Timer 0 is shared with millies
-ISR(TIMER0_COMPB_vect)                            // @ 1kHz ~ 1ms
+// 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) return;
@@ -1606,13 +1685,18 @@ ISR(TIMER0_COMPB_vect)                            // @ 1kHz ~ 1ms
 #endif
 #if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1
     soft_pwm_b = soft_pwm_bed;
-    if(soft_pwm_b > 0) WRITE(HEATER_BED_PIN,1); else WRITE(HEATER_BED_PIN,0);
+#ifndef SYSTEM_TIMER_2
+	if(soft_pwm_b > 0) WRITE(HEATER_BED_PIN,1); else WRITE(HEATER_BED_PIN,0);
+#endif //SYSTEM_TIMER_2
 #endif
+  }
 #ifdef FAN_SOFT_PWM
-    soft_pwm_fan = fanSpeedSoftPwm / 2;
+  if ((pwm_count & ((1 << FAN_SOFT_PWM_BITS) - 1)) == 0)
+  {
+    soft_pwm_fan = fanSpeedSoftPwm / (1 << (8 - FAN_SOFT_PWM_BITS));
     if(soft_pwm_fan > 0) WRITE(FAN_PIN,1); else WRITE(FAN_PIN,0);
-#endif
   }
+#endif
   if(soft_pwm_0 < pwm_count)
   { 
     WRITE(HEATER_0_PIN,0);
@@ -1631,7 +1715,7 @@ ISR(TIMER0_COMPB_vect)                            // @ 1kHz ~ 1ms
   if(soft_pwm_b < pwm_count) WRITE(HEATER_BED_PIN,0);
 #endif
 #ifdef FAN_SOFT_PWM
-  if(soft_pwm_fan < pwm_count) WRITE(FAN_PIN,0);
+  if (soft_pwm_fan < (pwm_count & ((1 << FAN_SOFT_PWM_BITS) - 1))) WRITE(FAN_PIN,0);
 #endif
   
   pwm_count += (1 << SOFT_PWM_SCALE);
@@ -1740,7 +1824,7 @@ ISR(TIMER0_COMPB_vect)                            // @ 1kHz ~ 1ms
 	  state_timer_heater_b = MIN_STATE_TIME;
 	}
 	state_heater_b = 1;
-	WRITE(HEATER_BED_PIN, 1);
+	//WRITE(HEATER_BED_PIN, 1);
       }
     } else {
       // turn OFF heather only if the minimum time is up 
@@ -1818,8 +1902,8 @@ ISR(TIMER0_COMPB_vect)                            // @ 1kHz ~ 1ms
 #endif
   
 #ifdef FAN_SOFT_PWM
-  if (pwm_count == 0){
-    soft_pwm_fan = fanSpeedSoftPwm / 2;
+  if ((pwm_count & ((1 << FAN_SOFT_PWM_BITS) - 1)) == 0)
+    soft_pwm_fan = fanSpeedSoftPwm / (1 << (8 - FAN_SOFT_PWM_BITS));
     if (soft_pwm_fan > 0) WRITE(FAN_PIN,1); else WRITE(FAN_PIN,0);
   }
   if (soft_pwm_fan < pwm_count) WRITE(FAN_PIN,0);
@@ -1949,7 +2033,7 @@ if(current_temperature_raw_ambient>(OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW)) // the
 // * nozzle checking
 if(target_temperature[active_extruder]>minttemp[active_extruder])
      {                                            // ~ nozzle heating is on
-     bCheckingOnHeater=bCheckingOnHeater||(current_temperature[active_extruder]>=minttemp[active_extruder]); // for eventually delay cutting
+     bCheckingOnHeater=bCheckingOnHeater||(current_temperature[active_extruder]>(minttemp[active_extruder]+TEMP_HYSTERESIS)); // for eventually delay cutting
      if(oTimer4minTempHeater.expired(HEATER_MINTEMP_DELAY)||(!oTimer4minTempHeater.running())||bCheckingOnHeater)
           {
           bCheckingOnHeater=true;                 // not necessary
@@ -1963,7 +2047,7 @@ else {                                            // ~ nozzle heating is off
 // * bed checking
 if(target_temperature_bed>BED_MINTEMP)
      {                                            // ~ bed heating is on
-     bCheckingOnBed=bCheckingOnBed||(current_temperature_bed>=BED_MINTEMP); // for eventually delay cutting
+     bCheckingOnBed=bCheckingOnBed||(current_temperature_bed>(BED_MINTEMP+TEMP_HYSTERESIS)); // for eventually delay cutting
      if(oTimer4minTempBed.expired(BED_MINTEMP_DELAY)||(!oTimer4minTempBed.running())||bCheckingOnBed)
           {
           bCheckingOnBed=true;                    // not necessary
@@ -1986,10 +2070,17 @@ else {                                            // ambient temperature is stan
  
 #if (defined(FANCHECK) && defined(TACH_0) && (TACH_0 > -1))
 void check_fans() {
+#ifdef FAN_SOFT_PWM
+	if (READ(TACH_0) != fan_state[0]) {
+		if(fan_measuring) fan_edge_counter[0] ++;
+		fan_state[0] = !fan_state[0];
+	}
+#else //FAN_SOFT_PWM
 	if (READ(TACH_0) != fan_state[0]) {
 		fan_edge_counter[0] ++;
 		fan_state[0] = !fan_state[0];
 	}
+#endif
 	//if (READ(TACH_1) != fan_state[1]) {
 	//	fan_edge_counter[1] ++;
 	//	fan_state[1] = !fan_state[1];

+ 15 - 0
Firmware/temperature.h

@@ -27,9 +27,20 @@
   #include "stepper.h"
 #endif
 
+
+#ifdef SYSTEM_TIMER_2
+
+#define ENABLE_TEMPERATURE_INTERRUPT()  TIMSK2 |= (1<<OCIE2B)
+#define DISABLE_TEMPERATURE_INTERRUPT() TIMSK2 &= ~(1<<OCIE2B)
+
+#else //SYSTEM_TIMER_2
+
 #define ENABLE_TEMPERATURE_INTERRUPT()  TIMSK0 |= (1<<OCIE0B)
 #define DISABLE_TEMPERATURE_INTERRUPT() TIMSK0 &= ~(1<<OCIE0B)
 
+#endif //SYSTEM_TIMER_2
+
+
 // public functions
 void tp_init();  //initialize the heating
 void manage_heater(); //it is critical that this is called periodically.
@@ -241,3 +252,7 @@ void check_max_temp();
 
 #endif
 
+extern unsigned long extruder_autofan_last_check;
+extern uint8_t fanSpeedBckp;
+extern bool fan_measuring;
+

+ 168 - 0
Firmware/timer02.c

@@ -0,0 +1,168 @@
+//timer02.c
+// use atmega timer2 as main system timer instead of timer0
+// timer0 is used for fast pwm (OC0B output)
+// original OVF handler is disabled
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include "Arduino.h"
+#include "io_atmega2560.h"
+
+#define BEEPER              84
+
+uint8_t timer02_pwm0 = 0;
+
+void timer02_set_pwm0(uint8_t pwm0)
+{
+	if (timer02_pwm0 == pwm0) return;
+	if (pwm0)
+	{
+		TCCR0A |= (2 << COM0B0);
+		OCR0B = pwm0 - 1;
+	}
+	else
+	{
+		TCCR0A &= ~(2 << COM0B0);
+		OCR0B = 0;
+	}
+	timer02_pwm0 = pwm0;
+}
+
+void timer02_init(void)
+{
+	//save sreg
+	uint8_t _sreg = SREG;
+	//disable interrupts for sure
+	cli();
+	//mask timer0 interrupts - disable all
+	TIMSK0 &= ~(1<<TOIE0);
+	TIMSK0 &= ~(1<<OCIE0A);
+	TIMSK0 &= ~(1<<OCIE0B);
+	//setup timer0
+	TCCR0A = 0x00; //COM_A-B=00, WGM_0-1=00
+	TCCR0B = (1 << CS00); //WGM_2=0, CS_0-2=011
+	//switch timer0 to fast pwm mode
+	TCCR0A |= (3 << WGM00); //WGM_0-1=11
+	//set OCR0B register to zero
+	OCR0B = 0;
+	//disable OCR0B output (will be enabled in timer02_set_pwm0)
+	TCCR0A &= ~(2 << COM0B0);
+	//setup timer2
+	TCCR2A = 0x00; //COM_A-B=00, WGM_0-1=00
+	TCCR2B = (4 << CS20); //WGM_2=0, CS_0-2=011
+	//mask timer2 interrupts - enable OVF, disable others
+	TIMSK2 |= (1<<TOIE2);
+	TIMSK2 &= ~(1<<OCIE2A);
+	TIMSK2 &= ~(1<<OCIE2B);
+	//set timer2 OCR registers (OCRB interrupt generated 0.5ms after OVF interrupt)
+	OCR2A = 0;
+	OCR2B = 128;
+	//restore sreg (enable interrupts)
+	SREG = _sreg;
+}
+
+
+//following code is OVF handler for timer 2
+//it is copy-paste from wiring.c and modified for timer2
+//variables timer0_overflow_count and timer0_millis are declared in wiring.c
+
+
+
+// the prescaler is set so that timer0 ticks every 64 clock cycles, and the
+// the overflow handler is called every 256 ticks.
+#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256))
+
+// the whole number of milliseconds per timer0 overflow
+#define MILLIS_INC (MICROSECONDS_PER_TIMER0_OVERFLOW / 1000)
+
+// the fractional number of milliseconds per timer0 overflow. we shift right
+// by three to fit these numbers into a byte. (for the clock speeds we care
+// about - 8 and 16 MHz - this doesn't lose precision.)
+#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3)
+#define FRACT_MAX (1000 >> 3)
+
+//extern volatile unsigned long timer0_overflow_count;
+//extern volatile unsigned long timer0_millis;
+//unsigned char timer0_fract = 0;
+volatile unsigned long timer2_overflow_count;
+volatile unsigned long timer2_millis;
+unsigned char timer2_fract = 0;
+
+ISR(TIMER2_OVF_vect)
+{
+	// copy these to local variables so they can be stored in registers
+	// (volatile variables must be read from memory on every access)
+	unsigned long m = timer2_millis;
+	unsigned char f = timer2_fract;
+	m += MILLIS_INC;
+	f += FRACT_INC;
+	if (f >= FRACT_MAX)
+	{
+		f -= FRACT_MAX;
+		m += 1;
+	}
+	timer2_fract = f;
+	timer2_millis = m;
+	timer2_overflow_count++;
+}
+
+unsigned long millis2(void)
+{
+	unsigned long m;
+	uint8_t oldSREG = SREG;
+
+	// disable interrupts while we read timer0_millis or we might get an
+	// inconsistent value (e.g. in the middle of a write to timer0_millis)
+	cli();
+	m = timer2_millis;
+	SREG = oldSREG;
+
+	return m;
+}
+
+unsigned long micros2(void)
+{
+	unsigned long m;
+	uint8_t oldSREG = SREG, t;
+	cli();
+	m = timer2_overflow_count;
+#if defined(TCNT2)
+	t = TCNT2;
+#elif defined(TCNT2L)
+	t = TCNT2L;
+#else
+	#error TIMER 2 not defined
+#endif
+#ifdef TIFR2
+	if ((TIFR2 & _BV(TOV2)) && (t < 255))
+		m++;
+#else
+	if ((TIFR & _BV(TOV2)) && (t < 255))
+		m++;
+#endif
+	SREG = oldSREG;	
+	return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond());
+}
+
+void delay2(unsigned long ms)
+{
+	uint32_t start = micros2();
+	while (ms > 0)
+	{
+		yield();
+		while ( ms > 0 && (micros2() - start) >= 1000)
+		{
+			ms--;
+			start += 1000;
+		}
+	}
+}
+
+void tone2(uint8_t _pin, unsigned int frequency/*, unsigned long duration*/)
+{
+	PIN_SET(BEEPER);
+}
+
+void noTone2(uint8_t _pin)
+{
+	PIN_CLR(BEEPER);
+}

+ 36 - 0
Firmware/timer02.h

@@ -0,0 +1,36 @@
+//timer02.h
+// use atmega timer2 as main system timer instead of timer0
+// timer0 is used for fast pwm (OC0B output)
+// original OVF handler is disabled
+#ifndef TIMER02_H
+#define TIMER02_H
+
+#include <inttypes.h>
+
+#if defined(__cplusplus)
+extern "C" {
+#endif //defined(__cplusplus)
+
+
+extern uint8_t timer02_pwm0;
+
+extern void timer02_set_pwm0(uint8_t pwm0);
+
+extern void timer02_init(void);
+
+extern unsigned long millis2(void);
+
+extern unsigned long micros2(void);
+
+extern void delay2(unsigned long ms);
+
+extern void tone2(uint8_t _pin, unsigned int frequency/*, unsigned long duration*/);
+
+extern void noTone2(uint8_t _pin);
+
+
+#if defined(__cplusplus)
+}
+#endif //defined(__cplusplus)
+
+#endif //TIMER02_H

+ 4 - 4
Firmware/tmc2130.cpp

@@ -381,7 +381,7 @@ bool tmc2130_wait_standstill_xy(int timeout)
 void tmc2130_check_overtemp()
 {
 	static uint32_t checktime = 0;
-	if (millis() - checktime > 1000 )
+	if (_millis() - checktime > 1000 )
 	{
 		for (int i = 0; i < 4; i++)
 		{
@@ -398,7 +398,7 @@ void tmc2130_check_overtemp()
 			}
 
 		}
-		checktime = millis();
+		checktime = _millis();
 		tmc2130_sg_change = true;
 	}
 #ifdef DEBUG_CRASHDET_COUNTERS
@@ -697,9 +697,9 @@ uint16_t tmc2130_get_res(uint8_t axis)
 void tmc2130_set_res(uint8_t axis, uint16_t res)
 {
 	tmc2130_mres[axis] = tmc2130_usteps2mres(res);
-//	uint32_t u = micros();
+//	uint32_t u = _micros();
 	tmc2130_setup_chopper(axis, tmc2130_mres[axis], tmc2130_current_h[axis], tmc2130_current_r[axis]);
-//	u = micros() - u;
+//	u = _micros() - u;
 //	printf_P(PSTR("tmc2130_setup_chopper %c %lu us"), "XYZE"[axis], u);
 }
 

+ 160 - 106
Firmware/ultralcd.cpp

@@ -9,6 +9,7 @@
 #include "temperature.h"
 #include "stepper.h"
 #include "ConfigurationStore.h"
+#include "printers.h"
 #include <string.h>
 
 
@@ -183,7 +184,9 @@ enum class testScreen
 static int  lcd_selftest_screen(testScreen screen, int _progress, int _progress_scale, bool _clear, int _delay);
 static void lcd_selftest_screen_step(int _row, int _col, int _state, const char *_name, const char *_indicator);
 static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite);
+#ifdef FANCHECK
 static bool lcd_selftest_fan_dialog(int _fan);
+#endif //FANCHECK
 static bool lcd_selftest_fsensor();
 static bool selftest_irsensor();
 static void lcd_selftest_error(int _error_no, const char *_error_1, const char *_error_2);
@@ -303,8 +306,8 @@ static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, char* longF
 				j = 0;
 				break;
             }else{
-				if (j == 1) delay(3);	//wait around 1.2 s to start scrolling text
-				delay(1);				//then scroll with redrawing every 300 ms 
+				if (j == 1) _delay_ms(3);	//wait around 1.2 s to start scrolling text
+				_delay_ms(1);				//then scroll with redrawing every 300 ms 
             }
 
           }
@@ -598,7 +601,7 @@ void lcdui_print_farm(void)
         
         // Beat display
         lcd_set_cursor(LCD_WIDTH - 1, 0);
-        if ( (millis() - kicktime) < 60000 ) {
+        if ( (_millis() - kicktime) < 60000 ) {
         
             lcd_puts_P(PSTR("L"));
         
@@ -639,7 +642,7 @@ void lcdui_print_time(void)
 	if (print_time_remaining_normal != PRINT_TIME_REMAINING_INIT)
 		print_t = print_time_remaining();
 	else if(starttime != 0)
-		print_t = millis() / 60000 - starttime / 60000;
+		print_t = _millis() / 60000 - starttime / 60000;
 	int chars = 0;
 	if ((PRINTER_ACTIVE) && ((print_time_remaining_normal != PRINT_TIME_REMAINING_INIT) || (starttime != 0)))
 	{
@@ -1758,10 +1761,10 @@ void lcd_commands()
 			else {
 				SERIAL_ECHOPGM("Invalid PID cal. results. Not stored to EEPROM.");
 			}
-			display_time = millis();
+			display_time = _millis();
 			lcd_commands_step = 1;
 		}
-		if ((lcd_commands_step == 1) && ((millis()- display_time)>2000)) { //calibration finished message
+		if ((lcd_commands_step == 1) && ((_millis()- display_time)>2000)) { //calibration finished message
 			lcd_setstatuspgm(_T(WELCOME_MSG));
 			custom_message_type = CUSTOM_MSG_TYPE_STATUS;
 			pid_temp = DEFAULT_PID_TEMP;
@@ -1922,7 +1925,7 @@ static void lcd_menu_extruder_info()
 	 fan_speed_RPM[1]
 	);
 
-#ifdef FILAMENT_SENSOR
+#ifdef PAT9125
 	// Display X and Y difference from Filament sensor    
     // Display Light intensity from Filament sensor
     //  Frame_Avg register represents the average brightness of all pixels within a frame (324 pixels). This
@@ -1948,7 +1951,7 @@ static void lcd_menu_extruder_info()
 			);
 		}
 	}
-#endif //FILAMENT_SENSOR
+#endif //PAT9125
     
     menu_back_if_clicked();
 }
@@ -2264,7 +2267,7 @@ static void lcd_support_menu()
   MENU_ITEM_BACK_P(STR_SEPARATOR);
   MENU_ITEM_SUBMENU_P(_i("XYZ cal. details"), lcd_menu_xyz_y_min);////MSG_XYZ_DETAILS c=19 r=1
   MENU_ITEM_SUBMENU_P(_i("Extruder info"), lcd_menu_extruder_info);////MSG_INFO_EXTRUDER c=18 r=1
-  MENU_ITEM_SUBMENU_P(_i("Show sensors"), lcd_menu_show_sensors_state);////MSG_INFO_SENSORS c=18 r=1
+  MENU_ITEM_SUBMENU_P(_i("Sensor info"), lcd_menu_show_sensors_state);////MSG_INFO_SENSORS c=18 r=1
 
 #ifdef TMC2130
   MENU_ITEM_SUBMENU_P(_i("Belt status"), lcd_menu_belt_status);////MSG_MENU_BELT_STATUS c=18 r=1
@@ -2495,9 +2498,10 @@ void lcd_wait_interact() {
 #else
   lcd_puts_P(_i("Insert filament"));////MSG_INSERT_FILAMENT c=20 r=0
 #endif
-  lcd_set_cursor(0, 2);
-  lcd_puts_P(_i("and press the knob"));////MSG_PRESS c=20 r=0
-
+  if (!fsensor_autoload_enabled) {
+	  lcd_set_cursor(0, 2);
+	  lcd_puts_P(_i("and press the knob"));////MSG_PRESS c=20 r=0
+  }
 }
 
 
@@ -2558,7 +2562,7 @@ void lcd_loading_filament() {
       manage_heater();
       manage_inactivity(true);
 
-      delay(153);
+      _delay(153);
     }
 
 
@@ -2638,7 +2642,7 @@ void lcd_alright() {
         lcd_set_cursor(0, cursor_pos);
         lcd_print(">");
         enc_dif = lcd_encoder_diff;
-        delay(100);
+        _delay(100);
       }
 
     }
@@ -2647,7 +2651,7 @@ void lcd_alright() {
     if (lcd_clicked()) {
 
       lcd_change_fil_state = cursor_pos;
-      delay(500);
+      _delay(500);
 
     }
 
@@ -2668,7 +2672,7 @@ void show_preheat_nozzle_warning()
     lcd_puts_P(_T(MSG_ERROR));
     lcd_set_cursor(0, 2);
     lcd_puts_P(_T(MSG_PREHEAT_NOZZLE));
-    delay(2000);
+    _delay(2000);
     lcd_clear();
 }
 
@@ -2746,7 +2750,7 @@ void lcd_menu_statistics()
 	if (IS_SD_PRINTING)
 	{
 		const float _met = ((float)total_filament_used) / (100000.f);
-		const uint32_t _t = (millis() - starttime) / 1000ul;
+		const uint32_t _t = (_millis() - starttime) / 1000ul;
 		const int _h = _t / 3600;
 		const int _m = (_t - (_h * 3600ul)) / 60ul;
 		const int _s = _t - ((_h * 3600ul) + (_m * 60ul));
@@ -2795,7 +2799,7 @@ void lcd_menu_statistics()
 		{
 			manage_heater();
 			manage_inactivity(true);
-			delay(100);
+			_delay(100);
 		}
 		KEEPALIVE_STATE(NOT_BUSY);
 		lcd_quick_feedback();
@@ -3053,7 +3057,7 @@ static void _lcd_babystep(int axis, const char *msg)
 			}
 		}
 		_md->babystepMemMM[axis] = _md->babystepMem[axis]/cs.axis_steps_per_unit[axis]; 
-		delay(50);
+		_delay(50);
 		lcd_encoder = 0;
 		lcd_draw_update = 1;
 	}
@@ -3102,8 +3106,6 @@ void lcd_adjust_bed_reset(void)
 	_md->status = 0;
 }
 
-#define BED_ADJUSTMENT_UM_MAX 50
-
 void lcd_adjust_bed(void)
 {
 	_menu_data_adjust_bed_t* _md = (_menu_data_adjust_bed_t*)&(menu_data[0]);
@@ -3216,7 +3218,7 @@ void lcd_adjust_z() {
         lcd_set_cursor(0, cursor_pos);
         lcd_print(">");
         enc_dif = lcd_encoder_diff;
-        delay(100);
+        _delay(100);
       }
 
     }
@@ -3236,7 +3238,7 @@ void lcd_adjust_z() {
         EEPROM_save_B(EEPROM_BABYSTEP_Y, &zero);
         EEPROM_save_B(EEPROM_BABYSTEP_Z, &zero);
       }
-      delay(500);
+      _delay(500);
     }
   };
 
@@ -3324,22 +3326,22 @@ bool lcd_calibrate_z_end_stop_manual(bool only_z)
 
     // Until confirmed by the confirmation dialog.
     for (;;) {
-        unsigned long previous_millis_cmd = millis();
+        unsigned long previous_millis_cmd = _millis();
         const char   *msg                 = only_z ? _i("Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done.") : _i("Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done.");////MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8////MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
         const char   *msg_next            = lcd_display_message_fullscreen_P(msg);
         const bool    multi_screen        = msg_next != NULL;
-        unsigned long previous_millis_msg = millis();
+        unsigned long previous_millis_msg = _millis();
         // Until the user finishes the z up movement.
         lcd_encoder_diff = 0;
         lcd_encoder = 0;
         for (;;) {
-//          if (millis() - previous_millis_cmd > LCD_TIMEOUT_TO_STATUS)
+//          if (_millis() - previous_millis_cmd > LCD_TIMEOUT_TO_STATUS)
 //             goto canceled;
             manage_heater();
             manage_inactivity(true);
             if (abs(lcd_encoder_diff) >= ENCODER_PULSES_PER_STEP) {
-                delay(50);
-                previous_millis_cmd = millis();
+                _delay(50);
+                previous_millis_cmd = _millis();
                 lcd_encoder += abs(lcd_encoder_diff / ENCODER_PULSES_PER_STEP);
                 lcd_encoder_diff = 0;
                 if (! planner_queue_full()) {
@@ -3353,15 +3355,15 @@ bool lcd_calibrate_z_end_stop_manual(bool only_z)
                 // Abort a move if in progress.
                 planner_abort_hard();
                 while (lcd_clicked()) ;
-                delay(10);
+                _delay(10);
                 while (lcd_clicked()) ;
                 break;
             }
-            if (multi_screen && millis() - previous_millis_msg > 5000) {
+            if (multi_screen && _millis() - previous_millis_msg > 5000) {
                 if (msg_next == NULL)
                     msg_next = msg;
                 msg_next = lcd_display_message_fullscreen_P(msg_next);
-                previous_millis_msg = millis();
+                previous_millis_msg = _millis();
             }
         }
         // Let the user confirm, that the Z carriage is at the top end stoppers.
@@ -3376,7 +3378,12 @@ bool lcd_calibrate_z_end_stop_manual(bool only_z)
 calibrated:
     // Let the machine think the Z axis is a bit higher than it is, so it will not home into the bed
     // during the search for the induction points.
-    current_position[Z_AXIS] = Z_MAX_POS-3.f;
+	if ((PRINTER_TYPE == PRINTER_MK25) || (PRINTER_TYPE == PRINTER_MK2) || (PRINTER_TYPE == PRINTER_MK2_SNMM)) {
+		current_position[Z_AXIS] = Z_MAX_POS-3.f;
+	}
+	else {
+		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]);
     return true;
 
@@ -3531,13 +3538,13 @@ bool lcd_wait_for_click_delay(uint16_t nDelay)
 // true ~ clicked, false ~ delayed
 {
 bool bDelayed;
-long nTime0 = millis()/1000;
+long nTime0 = _millis()/1000;
 	lcd_consume_click();
 	KEEPALIVE_STATE(PAUSED_FOR_USER);
     for (;;) {
         manage_heater();
         manage_inactivity(true);
-        bDelayed = ((millis()/1000-nTime0) > nDelay);
+        bDelayed = ((_millis()/1000-nTime0) > nDelay);
         bDelayed = (bDelayed && (nDelay != 0));   // 0 ~ no timeout, always waiting for click
         if (lcd_clicked() || bDelayed) {
 			KEEPALIVE_STATE(IN_HANDLER);
@@ -3579,14 +3586,14 @@ int8_t lcd_show_multiscreen_message_two_choices_and_wait_P(const char *msg, bool
 	bool yes = default_first ? true : false;
 
 	// Wait for user confirmation or a timeout.
-	unsigned long previous_millis_cmd = millis();
+	unsigned long previous_millis_cmd = _millis();
 	int8_t        enc_dif = lcd_encoder_diff;
 	lcd_consume_click();
 	//KEEPALIVE_STATE(PAUSED_FOR_USER);
 	for (;;) {
 		for (uint8_t i = 0; i < 100; ++i) {
 			delay_keep_alive(50);
-			if (allow_timeouting && millis() - previous_millis_cmd > LCD_TIMEOUT_TO_STATUS)
+			if (allow_timeouting && _millis() - previous_millis_cmd > LCD_TIMEOUT_TO_STATUS)
 				return -1;
 			manage_heater();
 			manage_inactivity(true);
@@ -3669,12 +3676,12 @@ int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow
 	bool yes = default_yes ? true : false;
 
 	// Wait for user confirmation or a timeout.
-	unsigned long previous_millis_cmd = millis();
+	unsigned long previous_millis_cmd = _millis();
 	int8_t        enc_dif = lcd_encoder_diff;
 	lcd_consume_click();
 	KEEPALIVE_STATE(PAUSED_FOR_USER);
 	for (;;) {
-		if (allow_timeouting && millis() - previous_millis_cmd > LCD_TIMEOUT_TO_STATUS)
+		if (allow_timeouting && _millis() - previous_millis_cmd > LCD_TIMEOUT_TO_STATUS)
 			return -1;
 		manage_heater();
 		manage_inactivity(true);
@@ -3823,10 +3830,10 @@ static void lcd_print_state(uint8_t state)
 {
 	switch (state) {
 		case STATE_ON:
-			lcd_puts_P(_i("On "));
+			lcd_puts_P(_i("  1"));
 		break;
 		case STATE_OFF:
-			lcd_puts_P(_i("Off"));
+			lcd_puts_P(_i("  0"));
 		break;
 		default: 
 			lcd_puts_P(_i("N/A"));
@@ -3846,8 +3853,8 @@ static void lcd_show_sensors_state()
 	if (mmu_enabled) {
 		finda_state = mmu_finda;
 	}
-	if (mmu_idler_sensor_detected) {
-		idler_state = !PIN_GET(MMU_IDLER_SENSOR_PIN);
+	if (ir_sensor_detected) {
+		idler_state = !PIN_GET(IR_SENSOR_PIN);
 	}
 	lcd_puts_at_P(0, 0, _i("Sensor state"));
 	lcd_puts_at_P(1, 1, _i("PINDA:"));
@@ -4076,7 +4083,7 @@ static void prusa_stat_printinfo()
 	SERIAL_ECHO("][TIM:");
 	if (starttime != 0)
 	{
-		SERIAL_ECHO(millis() / 1000 - starttime / 1000);
+		SERIAL_ECHO(_millis() / 1000 - starttime / 1000);
 	}
 	else
 	{
@@ -4170,7 +4177,7 @@ void lcd_pick_babystep(){
                 
    
                 enc_dif = lcd_encoder_diff;
-                delay(100);
+                _delay(100);
             }
             
         }
@@ -4181,7 +4188,7 @@ void lcd_pick_babystep(){
             EEPROM_read_B(EEPROM_BABYSTEP_Z0+((fsm-1)*2),&babyStepZ);
             EEPROM_save_B(EEPROM_BABYSTEP_Z,&babyStepZ);
             calibration_status_store(CALIBRATION_STATUS_CALIBRATED);
-            delay(500);
+            _delay(500);
             
         }
     };
@@ -4247,10 +4254,10 @@ static void lcd_crash_mode_info()
 {
 	lcd_update_enable(true);
 	static uint32_t tim = 0;
-	if ((tim + 1000) < millis())
+	if ((tim + 1000) < _millis())
 	{
 		fputs_P(_i("\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode"), lcdout);////MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-		tim = millis();
+		tim = _millis();
 	}
     menu_back_if_clicked();
 }
@@ -4259,10 +4266,10 @@ static void lcd_crash_mode_info2()
 {
 	lcd_update_enable(true);
 	static uint32_t tim = 0;
-	if ((tim + 1000) < millis())
+	if ((tim + 1000) < _millis())
 	{
 		fputs_P(_i("\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"), lcdout);////MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-		tim = millis();
+		tim = _millis();
 	}
     menu_back_if_clicked();
 }
@@ -4274,10 +4281,10 @@ static void lcd_filament_autoload_info()
 uint8_t nlines;
 	lcd_update_enable(true);
 	static uint32_t tim = 0;
-	if ((tim + 1000) < millis())
+	if ((tim + 1000) < _millis())
 	{
           lcd_display_message_fullscreen_nonBlocking_P(_i("Autoloading filament available only when filament sensor is turned on..."), nlines); ////MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-		tim = millis();
+		tim = _millis();
 	}
     menu_back_if_clicked();
 }
@@ -4287,10 +4294,10 @@ static void lcd_fsensor_fail()
 uint8_t nlines;
 	lcd_update_enable(true);
 	static uint32_t tim = 0;
-	if ((tim + 1000) < millis())
+	if ((tim + 1000) < _millis())
 	{
           lcd_display_message_fullscreen_nonBlocking_P(_i("ERROR: Filament sensor is not responding, please check connection."), nlines);////MSG_FSENS_NOT_RESPONDING c=20 r=4
-		tim = millis();
+		tim = _millis();
 	}
     menu_back_if_clicked();
 }
@@ -4511,20 +4518,20 @@ void lcd_calibrate_pinda() {
 		st_synchronize();
 
 		lcd_display_message_fullscreen_P(msg_e_cal_knob);
-		msg_millis = millis();
+		msg_millis = _millis();
 		while (!LCD_CLICKED) {
-			if (multi_screen && millis() - msg_millis > 5000) {
+			if (multi_screen && _millis() - msg_millis > 5000) {
 				if (msg_next_e_cal_knob == NULL)
 					msg_next_e_cal_knob = msg_e_cal_knob;
 					msg_next_e_cal_knob = lcd_display_message_fullscreen_P(msg_next_e_cal_knob);
-					msg_millis = millis();
+					msg_millis = _millis();
 			}
 
 			//manage_inactivity(true);
 			manage_heater();
 			if (abs(lcd_encoder_diff) >= ENCODER_PULSES_PER_STEP) {						//adjusting mark by knob rotation
 				delay_keep_alive(50);
-				//previous_millis_cmd = millis();
+				//previous_millis_cmd = _millis();
 				lcd_encoder += (lcd_encoder_diff / ENCODER_PULSES_PER_STEP);
 				lcd_encoder_diff = 0;
 				if (!planner_queue_full()) {
@@ -4635,7 +4642,7 @@ void lcd_language()
 	lcd_draw_update = 2;
 	while ((menu_menu != lcd_status_screen) && (!lang_is_selected()))
 	{
-		delay(50);
+		_delay(50);
 		lcd_update(0);
 		manage_heater();
 		manage_inactivity(true);
@@ -5298,7 +5305,7 @@ void bowden_menu() {
 				lcd_print(">");
 
 				enc_dif = lcd_encoder_diff;
-				delay(100);
+				_delay(100);
 		}
 
 		if (lcd_clicked()) {
@@ -5331,7 +5338,7 @@ void bowden_menu() {
 							enc_dif = lcd_encoder_diff;
 						}
 				}
-				delay(100);
+				_delay(100);
 				if (lcd_clicked()) {
 					EEPROM_save_B(EEPROM_BOWDEN_LENGTH + cursor_pos * 2, &bowden_length[cursor_pos]);
 					if (lcd_show_fullscreen_message_yes_no_and_wait_P(PSTR("Continue with another bowden?"))) {
@@ -5390,7 +5397,7 @@ static char snmm_stop_print_menu() { //menu for choosing which filaments will be
 				lcd_set_cursor(0, cursor_pos);
 				lcd_print(">");
 				enc_dif = lcd_encoder_diff;
-				delay(100);
+				_delay(100);
 			}
 		}
 		if (lcd_clicked()) {
@@ -5491,7 +5498,7 @@ uint8_t choose_menu_P(const char *header, const char *item, const char *last_ite
         lcd_set_cursor(0, cursor_pos);
         lcd_print(">");
 
-        delay(100);
+        _delay(100);
 
 		if (lcd_clicked())
 		{
@@ -5573,7 +5580,7 @@ char reset_menu() {
 				lcd_set_cursor(0, cursor_pos);
 				lcd_print(">");
 				enc_dif = lcd_encoder_diff;
-				delay(100);
+				_delay(100);
 			}
 
 		}
@@ -5721,7 +5728,7 @@ void unload_filament()
 	disable_e0();
 	disable_e1();
 	disable_e2();
-	delay(100);
+	_delay(100);
 
 	Sound_MakeSound(e_SOUND_TYPE_StandardPrompt);
 	uint8_t counterBeep = 0;
@@ -5786,11 +5793,11 @@ static void lcd_farm_no()
 
 		lcd_set_cursor(step, 3);
 		lcd_print("^");
-		delay(100);
+		_delay(100);
 
 		if (lcd_clicked())
 		{
-			delay(200);
+			_delay(200);
 			step++;
 			if(step == 3) {
 				_ret = 1;
@@ -5871,7 +5878,7 @@ unsigned char lcd_choose_color() {
 				lcd_set_cursor(0, cursor_pos);
 				lcd_print(">");
 				enc_dif = lcd_encoder_diff;
-				delay(100);
+				_delay(100);
 
 		}
 
@@ -5925,7 +5932,7 @@ void lcd_confirm_print()
 		lcd_puts_P(_T(MSG_NO));
 		lcd_set_cursor(0, 1 + cursor_pos);
 		lcd_print(">");
-		delay(100);
+		_delay(100);
 
 		_t = _t + 1;
 		if (_t>100)
@@ -5943,7 +5950,7 @@ void lcd_confirm_print()
 				no_response = true; //we need confirmation by recieving PRUSA thx
 				important_status = 4;
 				saved_filament_type = filament_type;
-				NcTime = millis();
+				NcTime = _millis();
 			}
 			if (cursor_pos == 2)
 			{
@@ -5953,7 +5960,7 @@ void lcd_confirm_print()
 				no_response = true; //we need confirmation by recieving PRUSA thx
 				important_status = 5;				
 				saved_filament_type = filament_type;
-				NcTime = millis();
+				NcTime = _millis();
 			}
 		}
 
@@ -5986,7 +5993,7 @@ void lcd_resume_print()
     lcd_setstatuspgm(_T(MSG_RESUMING_PRINT));
     lcd_reset_alert_level(); //for fan speed error
     restore_print_from_ram_and_continue(0.0);
-    pause_time += (millis() - start_pause_print); //accumulate time when print is paused for correct statistics calculation
+    pause_time += (_millis() - start_pause_print); //accumulate time when print is paused for correct statistics calculation
     refresh_cmd_timeout();
     isPrintPaused = false;
 }
@@ -6018,7 +6025,7 @@ static void lcd_main_menu()
     
         int tempScrool = 0;
         if (lcd_draw_update == 0 && LCD_CLICKED == 0)
-            //delay(100);
+            //_delay(100);
             return; // nothing to do (so don't thrash the SD card)
         uint16_t fileCnt = card.getnrfilenames();
         
@@ -6135,8 +6142,8 @@ static void lcd_main_menu()
 	{
 		MENU_ITEM_SUBMENU_P(_T(MSG_LOAD_FILAMENT), fil_load_menu);
 		MENU_ITEM_SUBMENU_P(_i("Load to nozzle"), mmu_load_to_nozzle_menu);
+    MENU_ITEM_FUNCTION_P(_T(MSG_UNLOAD_FILAMENT), extr_unload);
 		MENU_ITEM_SUBMENU_P(_i("Eject filament"), mmu_fil_eject_menu);
-          MENU_ITEM_FUNCTION_P(_T(MSG_UNLOAD_FILAMENT), extr_unload);
 	}
 	else
 	{
@@ -6185,7 +6192,7 @@ void stack_error() {
 	SET_OUTPUT(BEEPER);
 if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE)||(eSoundMode==e_SOUND_MODE_SILENT))
 	WRITE(BEEPER, HIGH);
-	delay(1000);
+	_delay(1000);
 	WRITE(BEEPER, LOW);
 	lcd_display_message_fullscreen_P(_i("Error - static memory has been overwritten"));////MSG_STACK_ERROR c=20 r=4
 	//err_triggered = 1;
@@ -6389,7 +6396,7 @@ void lcd_print_stop()
 	lcd_setstatuspgm(_T(MSG_PRINT_ABORTED));
 	card.sdprinting = false;
 	card.closefile();
-	stoptime = millis();
+	stoptime = _millis();
 	unsigned long t = (stoptime - starttime - pause_time) / 1000; //time in s
 	pause_time = 0;
 	save_statistics(total_filament_used, t);
@@ -6444,7 +6451,7 @@ void lcd_sdcard_menu()
 	  card.presort();
   }
   if (lcd_draw_update == 0 && LCD_CLICKED == 0)
-    //delay(100);
+    //_delay(100);
     return; // nothing to do (so don't thrash the SD card)
   uint16_t fileCnt = card.getnrfilenames();
 
@@ -6508,7 +6515,7 @@ bool lcd_selftest()
 	#ifdef TMC2130
 	  FORCE_HIGH_POWER_START;
 	#endif // TMC2130
-	delay(2000);
+	_delay(2000);
 	KEEPALIVE_STATE(IN_HANDLER);
 
 	_progress = lcd_selftest_screen(testScreen::extruderFan, _progress, 3, true, 2000);
@@ -6647,25 +6654,31 @@ bool lcd_selftest()
 	{
 		_progress = lcd_selftest_screen(testScreen::hotendOk, _progress, 3, true, 2000); //nozzle ok
 	}
-
 #ifdef FILAMENT_SENSOR
     if (_result)
     {
-        _progress = lcd_selftest_screen(testScreen::fsensor, _progress, 3, true, 2000); //check filaments sensor
+
         if (mmu_enabled)
-        {
+        {        
+			_progress = lcd_selftest_screen(testScreen::fsensor, _progress, 3, true, 2000); //check filaments sensor
             _result = selftest_irsensor();
+		    if (_result)
+			{
+				_progress = lcd_selftest_screen(testScreen::fsensorOk, _progress, 3, true, 2000); //fil sensor OK
+			}
         } else
         {
+#ifdef PAT9125
+			_progress = lcd_selftest_screen(testScreen::fsensor, _progress, 3, true, 2000); //check filaments sensor
             _result = lcd_selftest_fsensor();
+			if (_result)
+			{
+				_progress = lcd_selftest_screen(testScreen::fsensorOk, _progress, 3, true, 2000); //fil sensor OK
+			}
+#endif //PAT9125
         }
     }
-    if (_result)
-    {
-        _progress = lcd_selftest_screen(testScreen::fsensorOk, _progress, 3, true, 2000); //fil sensor OK
-    }
-#endif // FILAMENT_SENSOR
-
+#endif //FILAMENT_SENSOR
 	if (_result)
 	{
 		_progress = lcd_selftest_screen(testScreen::allCorrect, _progress, 3, true, 5000); //all correct
@@ -6886,7 +6899,7 @@ static bool lcd_selfcheck_axis(int _axis, int _travel)
 		manage_heater();
 		manage_inactivity(true);
 
-		//delay(100);
+		//_delay(100);
 		(_travel_done <= _travel) ? _travel_done++ : _stepdone = true;
 
 	} while (!_stepdone);
@@ -6959,7 +6972,7 @@ static bool lcd_selfcheck_pulleys(int axis)
 			return(false);
 		}
 	}
-	timeout_counter = millis() + 2500;
+	timeout_counter = _millis() + 2500;
 	endstop_triggered = false;
 	manage_inactivity(true);
 	while (!endstop_triggered) {
@@ -6981,7 +6994,7 @@ static bool lcd_selfcheck_pulleys(int axis)
 			current_position[axis] -= 1;
 			plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[3], manual_feedrate[0] / 60, active_extruder);
 			st_synchronize();
-			if (millis() > timeout_counter) {
+			if (_millis() > timeout_counter) {
 				lcd_selftest_error(8, (axis == 0) ? "X" : "Y", "");
 				return(false);
 			}
@@ -7004,7 +7017,7 @@ static bool lcd_selfcheck_endstops()
 		if ((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1) current_position[2] += 10;
 	}
 	plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[0] / 60, active_extruder);
-	delay(500);
+	_delay(500);
 
 	if (((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) ||
 		((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1) ||
@@ -7199,11 +7212,11 @@ static void lcd_selftest_error(int _error_no, const char *_error_1, const char *
 		break;
 	}
 
-	delay(1000);
+	_delay(1000);
 	lcd_beeper_quick_feedback();
 
 	do {
-		delay(100);
+		_delay(100);
 		manage_heater();
 		manage_inactivity();
 	} while (!lcd_clicked());
@@ -7233,7 +7246,7 @@ static bool lcd_selftest_fsensor(void)
 //!  * Pre-heat to PLA extrude temperature.
 //!  * Unload filament possibly present.
 //!  * Move extruder idler same way as during filament load
-//!    and sample MMU_IDLER_SENSOR_PIN.
+//!    and sample IR_SENSOR_PIN.
 //!  * Check that pin doesn't go low.
 //!
 //! @retval true passed
@@ -7270,7 +7283,7 @@ static bool selftest_irsensor()
         mmu_load_step(false);
         while (blocks_queued())
         {
-            if (PIN_GET(MMU_IDLER_SENSOR_PIN) == 0) return false;
+            if (PIN_GET(IR_SENSOR_PIN) == 0) return false;
 #ifdef TMC2130
             manage_heater();
             // Vojtech: Don't disable motors inside the planner!
@@ -7313,10 +7326,15 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite)
 		if (check_opposite == true) lcd_puts_P(_T(MSG_SELFTEST_EXTRUDER_FAN));
 		else lcd_puts_P(_T(MSG_SELFTEST_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;
 	}
-	delay(500);
+	_delay(500);
 
 	lcd_set_cursor(1, 2); lcd_puts_P(_T(MSG_SELFTEST_FAN_YES));
 	lcd_set_cursor(0, 3); lcd_print(">");
@@ -7338,7 +7356,11 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite)
 		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;
 		}
 
@@ -7364,15 +7386,18 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite)
 
 
 		manage_heater();
-		delay(100);
+		_delay(100);
 
 	} while (!lcd_clicked());
 	KEEPALIVE_STATE(IN_HANDLER);
 	SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN);
 	WRITE(EXTRUDER_0_AUTO_FAN_PIN, 0);
 	SET_OUTPUT(FAN_PIN);
+#ifdef FAN_SOFT_PWM
+	fanSpeedSoftPwm = 0;
+#else //FAN_SOFT_PWM
 	analogWrite(FAN_PIN, 0);
-
+#endif //FAN_SOFT_PWM
 	fanSpeed = 0;
 	manage_heater();
 
@@ -7380,20 +7405,29 @@ static bool lcd_selftest_manual_fan_check(int _fan, bool check_opposite)
 
 }
 
-
+#ifdef FANCHECK
 static bool lcd_selftest_fan_dialog(int _fan)
 {
 	bool _result = true;
 	int _errno = 7;
-
 	switch (_fan) {
 	case 0:
 		fanSpeed = 0;
 		manage_heater();			//turn off fan
 		setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, 1); //extruder fan
-		delay(2000);				//delay_keep_alive would turn off extruder fan, because temerature is too low
+#ifdef FAN_SOFT_PWM
+		extruder_autofan_last_check = _millis();
+		fan_measuring = true;
+#endif //FAN_SOFT_PWM
+		_delay(2000);				//delay_keep_alive would turn off extruder fan, because temerature is too low
+
 		manage_heater();			//count average fan speed from 2s delay and turn off fans
 		if (!fan_speed[0]) _result = false;
+
+		
+		printf_P(PSTR("Test 1:\n"));
+		printf_P(PSTR("Print fan speed: %d \n"), fan_speed[1]);
+		printf_P(PSTR("Extr fan speed: %d \n"), fan_speed[0]);
 		//SERIAL_ECHOPGM("Extruder fan speed: ");
 		//MYSERIAL.println(fan_speed[0]);
 		//SERIAL_ECHOPGM("Print fan speed: ");
@@ -7402,7 +7436,14 @@ static bool lcd_selftest_fan_dialog(int _fan)
 
 	case 1:
 		//will it work with Thotend > 50 C ?
+#ifdef FAN_SOFT_PWM		
+		fanSpeed = 255;	
+		fanSpeedSoftPwm = 255;	
+		extruder_autofan_last_check = _millis(); //store time when measurement starts
+		fan_measuring = true; //start fan measuring, rest is on manage_heater
+#else //FAN_SOFT_PWM
 		fanSpeed = 150;				//print fan
+#endif //FAN_SOFT_PWM
 		for (uint8_t i = 0; i < 5; i++) {
 			delay_keep_alive(1000);
 			lcd_set_cursor(18, 3);
@@ -7411,15 +7452,26 @@ static bool lcd_selftest_fan_dialog(int _fan)
 			lcd_set_cursor(18, 3);
 			lcd_print("|");
 		}
+#ifdef FAN_SOFT_PWM
+		fanSpeed = 0;
+		fanSpeedSoftPwm = 0;	
+#else //FAN_SOFT_PWM
 		fanSpeed = 0;
 		manage_heater();			//turn off fan
 		manage_inactivity(true);	//to turn off print fan
+#endif //FAN_SOFT_PWM
+		printf_P(PSTR("Test 2:\n"));
+		printf_P(PSTR("Print fan speed: %d \n"), fan_speed[1]);
+		printf_P(PSTR("Extr fan speed: %d \n"), fan_speed[0]);
 		if (!fan_speed[1]) {
 			_result = false; _errno = 6; //print fan not spinning
 		}
+#ifdef FAN_SOFT_PWM 
+		else {
+#else //FAN_SOFT_PWM
 		else if (fan_speed[1] < 34) { //fan is spinning, but measured RPM are too low for print fan, it must be left extruder fan
+#endif //FAN_SOFT_PWM
 			//check fans manually
-
 			_result = lcd_selftest_manual_fan_check(1, true); //turn on print fan and check that left extruder fan is not spinning
 			if (_result) {
 				_result = lcd_selftest_manual_fan_check(1, false); //print fan is stil turned on; check that it is spinning
@@ -7443,6 +7495,8 @@ static bool lcd_selftest_fan_dialog(int _fan)
 	return _result;
 }
 
+#endif //FANCHECK
+
 static int lcd_selftest_screen(testScreen screen, int _progress, int _progress_scale, bool _clear, int _delay)
 {
 
@@ -7668,10 +7722,10 @@ void lcd_printer_connected() {
 }
 
 static void lcd_send_status() {
-	if (farm_mode && no_response && ((millis() - NcTime) > (NC_TIME * 1000))) {
+	if (farm_mode && no_response && ((_millis() - NcTime) > (NC_TIME * 1000))) {
 		//send important status messages periodicaly
 		prusa_statistics(important_status, saved_filament_type);
-		NcTime = millis();
+		NcTime = _millis();
 #ifdef FARM_CONNECT_MESSAGE
 		lcd_connect_printer();
 #endif //FARM_CONNECT_MESSAGE
@@ -7716,7 +7770,7 @@ static void lcd_connect_printer() {
 void lcd_ping() { //chceck if printer is connected to monitoring when in farm mode
 	if (farm_mode) {
 		bool empty = is_buffer_empty();
-		if ((millis() - PingTime) * 0.001 > (empty ? PING_TIME : PING_TIME_LONG)) { //if commands buffer is empty use shorter time period
+		if ((_millis() - PingTime) * 0.001 > (empty ? PING_TIME : PING_TIME_LONG)) { //if commands buffer is empty use shorter time period
 																							  //if there are comamnds in buffer, some long gcodes can delay execution of ping command
 																							  //therefore longer period is used
 			printer_connected = false;
@@ -7831,7 +7885,7 @@ void menu_lcd_lcdupdate_func(void)
 		}
 	}
 #endif//CARDINSERTED
-	if (lcd_next_update_millis < millis())
+	if (lcd_next_update_millis < _millis())
 	{
 		if (abs(lcd_encoder_diff) >= ENCODER_PULSES_PER_STEP)
 		{
@@ -7863,7 +7917,7 @@ void menu_lcd_lcdupdate_func(void)
 		}
 		if (lcd_draw_update == 2) lcd_clear();
 		if (lcd_draw_update) lcd_draw_update--;
-		lcd_next_update_millis = millis() + LCD_UPDATE_INTERVAL;
+		lcd_next_update_millis = _millis() + LCD_UPDATE_INTERVAL;
 	}
 	if (!SdFatUtil::test_stack_integrity()) stack_error();
 	lcd_ping(); //check that we have received ping command if we are in farm mode

+ 4 - 4
Firmware/util.cpp

@@ -296,14 +296,14 @@ bool show_upgrade_dialog_if_version_newer(const char *version_string)
             lcd_putc(*c);
         lcd_puts_at_P(0, 3, _i("Please upgrade."));////MSG_NEW_FIRMWARE_PLEASE_UPGRADE c=20 r=0
 if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
-        tone(BEEPER, 1000);
+        _tone(BEEPER, 1000);
         delay_keep_alive(50);
-        noTone(BEEPER);
+        _noTone(BEEPER);
         delay_keep_alive(500);
 if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
-        tone(BEEPER, 1000);
+        _tone(BEEPER, 1000);
         delay_keep_alive(50);
-        noTone(BEEPER);
+        _noTone(BEEPER);
         lcd_wait_for_click();
         lcd_update_enable(true);
         lcd_clear();

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

@@ -246,6 +246,9 @@ BED SETTINGS
 #define MESH_MEAS_NUM_X_POINTS 3
 #define MESH_MEAS_NUM_Y_POINTS 3
 
+// Maximum bed level correction value
+#define BED_ADJUSTMENT_UM_MAX 100
+
 #define MESH_HOME_Z_CALIB 0.2
 #define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc.
 

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

@@ -246,6 +246,9 @@ BED SETTINGS
 #define MESH_MEAS_NUM_X_POINTS 3
 #define MESH_MEAS_NUM_Y_POINTS 3
 
+// Maximum bed level correction value
+#define BED_ADJUSTMENT_UM_MAX 100
+
 #define MESH_HOME_Z_CALIB 0.2
 #define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc.
 

+ 5 - 1
Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h

@@ -111,8 +111,9 @@
 #define DEFAULT_SAFETYTIMER_TIME_MINS 30
 
 // Filament sensor
-#define PAT9125
 #define FILAMENT_SENSOR
+#define PAT9125
+
 
 #define DEBUG_DCODE3
 
@@ -301,6 +302,9 @@
 #define MESH_MEAS_NUM_X_POINTS 3
 #define MESH_MEAS_NUM_Y_POINTS 3
 
+// Maximum bed level correction value
+#define BED_ADJUSTMENT_UM_MAX 100
+
 #define MESH_HOME_Z_CALIB 0.2
 #define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc.
 

+ 5 - 1
Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h

@@ -112,8 +112,9 @@
 #define DEFAULT_SAFETYTIMER_TIME_MINS 30
 
 // Filament sensor
-#define PAT9125
 #define FILAMENT_SENSOR
+#define PAT9125
+
 
 #define DEBUG_DCODE3
 
@@ -302,6 +303,9 @@
 #define MESH_MEAS_NUM_X_POINTS 3
 #define MESH_MEAS_NUM_Y_POINTS 3
 
+// Maximum bed level correction value
+#define BED_ADJUSTMENT_UM_MAX 100
+
 #define MESH_HOME_Z_CALIB 0.2
 #define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc.
 

+ 4 - 2
Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h

@@ -133,8 +133,8 @@
 #define DEFAULT_SAFETYTIMER_TIME_MINS 30
 
 // Filament sensor
-#define PAT9125
 #define FILAMENT_SENSOR
+#define PAT9125
 
 // Backlash - 
 //#define BACKLASH_X
@@ -412,6 +412,9 @@
 #define MESH_MEAS_NUM_X_POINTS 3
 #define MESH_MEAS_NUM_Y_POINTS 3
 
+// Maximum bed level correction value
+#define BED_ADJUSTMENT_UM_MAX 100
+
 #define MESH_HOME_Z_CALIB 0.2
 #define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc.
 
@@ -623,7 +626,6 @@
 #define MMU_REQUIRED_FW_BUILDNR 83
 #define MMU_HWRESET
 #define MMU_DEBUG //print communication between MMU2 and printer on serial
-
 #define MMU_IDLER_SENSOR_ATTEMPTS_NR 21 //max. number of attempts to load filament if first load failed; value for max bowden length and case when loading fails right at the beginning
 
 #endif //__CONFIGURATION_PRUSA_H

+ 2 - 2
Firmware/xyzcal.cpp

@@ -152,9 +152,9 @@ bool xyzcal_lineXYZ_to(int16_t x, int16_t y, int16_t z, uint16_t delay_us, int8_
 	sm4_set_dir_bits(xyzcal_dm);
 	sm4_stop_cb = check_pinda?((check_pinda<0)?check_pinda_0:check_pinda_1):0;
 	xyzcal_sm4_delay = delay_us;
-//	uint32_t u = micros();
+//	uint32_t u = _micros();
 	bool ret = sm4_line_xyze_ui(abs(x), abs(y), abs(z), 0)?true:false;
-//	u = micros() - u;
+//	u = _micros() - u;
 	return ret;
 }
 

+ 5 - 0
Tests/Timer_test.cpp

@@ -15,6 +15,11 @@ unsigned long millis()
     return now;
 }
 
+unsigned long millis2()
+{
+    return now;
+}
+
 static void basicTimer()
 {
     LongTimer timer;

+ 1 - 1
lang/lang-add.sh

@@ -34,7 +34,7 @@ insert_xx()
 	#replace '[' and ']' in string with '\[' and '\]'
 	str=$(echo "$1" | sed "s/\[/\\\[/g;s/\]/\\\]/g")
 	# extract english texts, merge new text, grep line number
-	ln=$((cat lang_en_$2.txt; echo $1) | sed "/^$/d;/^#/d" | sed -n 'p;n' | sort | grep -n "$str" | sed "s/:.*//")
+	ln=$((cat lang_en_$2.txt; echo "$1") | sed "/^$/d;/^#/d" | sed -n 'p;n' | sort | grep -n "$str" | sed "s/:.*//")
 	# calculate position for insertion
 	ln=$((4*(ln-2)+1))
 	# insert new text

+ 48 - 0
lang/lang_en.txt

@@ -13,6 +13,9 @@
 #MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
 "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 
+#
+">Cancel"
+
 #MSG_BABYSTEPPING_Z c=20 r=0
 "Adjusting Z"
 
@@ -88,6 +91,9 @@
 #MSG_RECOVER_PRINT c=20 r=2
 "Blackout occurred. Recover print?"
 
+#
+"Calibrating home"
+
 #MSG_CALIBRATE_BED c=0 r=0
 "Calibrate XYZ"
 
@@ -232,6 +238,9 @@
 #MSG_MOVE_E c=0 r=0
 "Extruder"
 
+#
+"Fail stats MMU"
+
 #MSG_FSENS_AUTOLOAD_ON c=17 r=1
 "F. autoload  [on]"
 
@@ -484,6 +493,15 @@
 #
 "Measured skew"
 
+#
+"MMU fails"
+
+#
+"MMU load failed     "
+
+#
+"MMU load fails"
+
 #MSG_MMU_OK_RESUMING c=20 r=4
 "MMU OK. Resuming..."
 
@@ -496,6 +514,9 @@
 #
 "MMU needs user attention."
 
+#
+"MMU power fails"
+
 #MSG_STEALTH_MODE_ON c=0 r=0
 "Mode    [Stealth]"
 
@@ -529,6 +550,9 @@
 #MSG_NO_CARD c=0 r=0
 "No SD card"
 
+#
+"N/A"
+
 #MSG_NO c=0 r=0
 "No"
 
@@ -652,12 +676,21 @@
 #MSG_PRINT_ABORTED c=20 r=0
 "Print aborted"
 
+#
+"Preheating to load"
+
+#
+"Preheating to unload"
+
 #MSG_SELFTEST_PRINT_FAN_SPEED c=18 r=0
 "Print fan:"
 
 #MSG_CARD_MENU c=0 r=0
 "Print from SD"
 
+#
+"Press the knob"
+
 #MSG_PRINT_PAUSED c=20 r=1
 "Print paused"
 
@@ -688,6 +721,9 @@
 #MSG_REMOVE_OLD_FILAMENT c=20 r=4
 "Remove old filament and press the knob to start loading new filament."
 
+#
+"Prusa i3 MK3S OK."
+
 #
 "Prusa i3 MK2 ready."
 
@@ -763,6 +799,12 @@
 #MSG_SHOW_END_STOPS c=17 r=1
 "Show end stops"
 
+#
+"Sensor state"
+
+#
+"Sensors info"
+
 #
 "Show pinda state"
 
@@ -871,6 +913,12 @@
 #
 "Total failures"
 
+#
+"to load filament"
+
+#
+"to unload filament"
+
 #MSG_UNLOAD_FILAMENT c=17 r=0
 "Unload filament"
 

+ 81 - 17
lang/lang_en_cz.txt

@@ -18,6 +18,10 @@
 "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 "\x1b[2JPOZOR:\x1b[1;0HCrash detekce\x1b[2;0Hdeaktivovana ve\x1b[3;0HStealth modu"
 
+#
+">Cancel"
+">Zrusit"
+
 #MSG_BABYSTEPPING_Z c=20 r=0
 "Adjusting Z"
 "Dostavovani Z"
@@ -32,7 +36,7 @@
 
 #
 "Ambient"
-"\x00"
+"Okoli"
 
 #MSG_PRESS c=20 r=0
 "and press the knob"
@@ -48,7 +52,7 @@
 
 #
 "SpoolJoin   [N/A]"
-"SpoolJoin   [N/A]"
+"\x00"
 
 # MSG_AUTO_DEPLETE_OFF c=17 r=1
 "SpoolJoin   [off]"
@@ -118,6 +122,10 @@
 "Blackout occurred. Recover print?"
 "Detekovan vypadek proudu.Obnovit tisk?"
 
+#
+"Calibrating home"
+"Kalibruji vychozi poz."
+
 #MSG_CALIBRATE_BED c=0 r=0
 "Calibrate XYZ"
 "Kalibrace XYZ"
@@ -180,7 +188,7 @@
 
 #MSG_CRASHDETECT_NA c=0 r=0
 "Crash det.  [N/A]"
-"Crash det.  [N/A]"
+"\x00"
 
 #MSG_CRASHDETECT_OFF c=0 r=0
 "Crash det.  [off]"
@@ -196,7 +204,7 @@
 
 #
 "Crash"
-"\x00"
+"Naraz"
 
 #MSG_CURRENT c=19 r=1
 "Current"
@@ -310,6 +318,10 @@
 "Extruder"
 "\x00"
 
+#
+"Fail stats MMU"
+"Selhani MMU"
+
 #MSG_FSENS_AUTOLOAD_ON c=17 r=1
 "F. autoload  [on]"
 "F. autozav. [zap]"
@@ -324,7 +336,7 @@
 
 #
 "Fail stats"
-"\x00"
+"Selhani"
 
 #MSG_FAN_SPEED c=14 r=0
 "Fan speed"
@@ -360,7 +372,7 @@
 
 #
 "Filam. runouts"
-"\x00"
+"Vypadky filamentu"
 
 #MSG_FILAMENT_CLEAN c=20 r=2
 "Filament extruding & with correct color?"
@@ -572,11 +584,11 @@
 
 #
 "Last print failures"
-"\x00"
+"Selhani posl. tisku"
 
 #
 "Last print"
-"\x00"
+"Posledni tisk"
 
 #MSG_SELFTEST_EXTRUDER_FAN c=20 r=0
 "Left hotend fan?"
@@ -646,6 +658,18 @@
 "Measured skew"
 "Merene zkoseni"
 
+#
+"MMU fails"
+"Selhani MMU"
+
+#
+"MMU load failed     "
+"Zavedeni MMU selhalo"
+
+#
+"MMU load fails"
+"MMU selhani zavadeni"
+
 #MSG_MMU_OK_RESUMING c=20 r=4
 "MMU OK. Resuming..."
 "MMU OK. Pokracuji..."
@@ -662,6 +686,10 @@
 "MMU needs user attention."
 "MMU potrebuje zasah uzivatele."
 
+#
+"MMU power fails"
+"MMU vypadky proudu"
+
 #MSG_STEALTH_MODE_ON c=0 r=0
 "Mode    [Stealth]"
 "Mod       [tichy]"
@@ -676,7 +704,7 @@
 
 #
 "MMU2 connected"
-"\x00"
+"MMU2 pripojeno"
 
 #MSG_SELFTEST_MOTOR c=0 r=0
 "Motor"
@@ -706,6 +734,10 @@
 "No SD card"
 "Zadna SD karta"
 
+#
+"N/A"
+"\x00"
+
 #MSG_NO c=0 r=0
 "No"
 "Ne"
@@ -748,7 +780,7 @@
 
 #
 "Nozzle FAN"
-"\x00"
+"Trysk. vent."
 
 #MSG_PAUSE_PRINT c=0 r=0
 "Pause print"
@@ -864,12 +896,20 @@
 
 #
 "Power failures"
-"\x00"
+"Vypadky proudu"
 
 #MSG_PRINT_ABORTED c=20 r=0
 "Print aborted"
 "Tisk prerusen"
 
+#
+"Preheating to load"
+"Predehrivam k zavedeni"
+
+#
+"Preheating to unload"
+"Predehrivam k vyjmuti"
+
 #MSG_SELFTEST_PRINT_FAN_SPEED c=18 r=0
 "Print fan:"
 "Tiskovy vent.:"
@@ -878,6 +918,10 @@
 "Print from SD"
 "Tisk z SD"
 
+#
+"Press the knob"
+"Stisknete hl. tlacitko"
+
 #MSG_PRINT_PAUSED c=20 r=1
 "Print paused"
 "Tisk pozastaven"
@@ -892,7 +936,7 @@
 
 #
 "Print FAN"
-"\x00"
+"Tiskovy vent."
 
 #WELCOME_MSG c=20 r=0
 "Prusa i3 MK2.5 ready."
@@ -918,6 +962,10 @@
 "Remove old filament and press the knob to start loading new filament."
 "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho."
 
+#
+"Prusa i3 MK3S OK."
+"\x00"
+
 #
 "Prusa i3 MK2 ready."
 "Prusa i3 MK2 ok."
@@ -956,7 +1004,7 @@
 
 #MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
 "SD card  [normal]"
-"SD card  [normal]"
+"\x00"
 
 #MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
 "SD card [flshAir]"
@@ -1018,6 +1066,14 @@
 "Show end stops"
 "Stav konc. spin."
 
+#
+"Sensor state"
+"Stav senzoru"
+
+#
+"Sensors info"
+"Senzor info"
+
 #
 "Show pinda state"
 "Zobrazit stav PINDA"
@@ -1160,7 +1216,15 @@
 
 #
 "Total failures"
-"\x00"
+"Celkem selhani"
+
+#
+"to load filament"
+"k zavedeni filamentu"
+
+#
+"to unload filament"
+"k vyjmuti filamentu"
 
 #MSG_UNLOAD_FILAMENT c=17 r=0
 "Unload filament"
@@ -1172,7 +1236,7 @@
 
 #
 "Total"
-"\x00"
+"Celkem"
 
 #MSG_USED c=19 r=1
 "Used during print"
@@ -1184,7 +1248,7 @@
 
 #
 "unknown"
-"\x00"
+"neznamy"
 
 #MSG_USERWAIT c=0 r=0
 "Wait for user..."
@@ -1320,4 +1384,4 @@
 
 #MSG_OFF c=0 r=0
 " [off]"
-" [vyp]"
+"\x00"

+ 77 - 13
lang/lang_en_de.txt

@@ -18,6 +18,10 @@
 "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 "\x1b[2JWARNUNG:\x1b[1;0HCrash Erkennung\x1b[2;0Hdeaktiviert im\x1b[3;0HStealth Modus"
 
+#
+">Cancel"
+">Abbruch"
+
 #MSG_BABYSTEPPING_Z c=20 r=0
 "Adjusting Z"
 "Z wurde eingestellt"
@@ -32,7 +36,7 @@
 
 #
 "Ambient"
-"\x00"
+"Raumtemp."
 
 #MSG_PRESS c=20 r=0
 "and press the knob"
@@ -118,6 +122,10 @@
 "Blackout occurred. Recover print?"
 "Stromausfall! Druck wiederherstellen?"
 
+#
+"Calibrating home"
+"Kalibriere Start"
+
 #MSG_CALIBRATE_BED c=0 r=0
 "Calibrate XYZ"
 "Kalibrierung XYZ"
@@ -310,6 +318,10 @@
 "Extruder"
 "\x00"
 
+#
+"Fail stats MMU"
+"MMU-Fehler"
+
 #MSG_FSENS_AUTOLOAD_ON c=17 r=1
 "F. autoload  [on]"
 "F.Autoladen  [an]"
@@ -324,7 +336,7 @@
 
 #
 "Fail stats"
-"\x00"
+"Fehlerstatistik"
 
 #MSG_FAN_SPEED c=14 r=0
 "Fan speed"
@@ -360,7 +372,7 @@
 
 #
 "Filam. runouts"
-"\x00"
+"Filam. Maengel"
 
 #MSG_FILAMENT_CLEAN c=20 r=2
 "Filament extruding & with correct color?"
@@ -572,11 +584,11 @@
 
 #
 "Last print failures"
-"\x00"
+"Letzte Druckfehler"
 
 #
 "Last print"
-"\x00"
+"Letzter Druck"
 
 #MSG_SELFTEST_EXTRUDER_FAN c=20 r=0
 "Left hotend fan?"
@@ -646,6 +658,18 @@
 "Measured skew"
 "Schraeglauf"
 
+#
+"MMU fails"
+"MMU Fehler"
+
+#
+"MMU load failed     "
+"MMU Ladefehler"
+
+#
+"MMU load fails"
+"MMU Ladefehler"
+
 #MSG_MMU_OK_RESUMING c=20 r=4
 "MMU OK. Resuming..."
 "MMU OK.  Weiterdrucken..."
@@ -662,6 +686,10 @@
 "MMU needs user attention."
 "MMU erfordert Benutzereingriff."
 
+#
+"MMU power fails"
+"MMU Netzfehler"
+
 #MSG_STEALTH_MODE_ON c=0 r=0
 "Mode    [Stealth]"
 "Modus   [Stealth]"
@@ -676,7 +704,7 @@
 
 #
 "MMU2 connected"
-"\x00"
+"MMU2 verbunden"
 
 #MSG_SELFTEST_MOTOR c=0 r=0
 "Motor"
@@ -706,6 +734,10 @@
 "No SD card"
 "Keine SD Karte"
 
+#
+"N/A"
+"N.V."
+
 #MSG_NO c=0 r=0
 "No"
 "Nein"
@@ -748,7 +780,7 @@
 
 #
 "Nozzle FAN"
-"\x00"
+"Duesen Luefter"
 
 #MSG_PAUSE_PRINT c=0 r=0
 "Pause print"
@@ -864,12 +896,20 @@
 
 #
 "Power failures"
-"\x00"
+"Netzfehler"
 
 #MSG_PRINT_ABORTED c=20 r=0
 "Print aborted"
 "Druck abgebrochen"
 
+#
+"Preheating to load"
+"Heizen zum Laden"
+
+#
+"Preheating to unload"
+"Heizen zum Entladen"
+
 #MSG_SELFTEST_PRINT_FAN_SPEED c=18 r=0
 "Print fan:"
 "Druckvent.:"
@@ -878,6 +918,10 @@
 "Print from SD"
 "Drucken von SD"
 
+#
+"Press the knob"
+"Knopf druecken"
+
 #MSG_PRINT_PAUSED c=20 r=1
 "Print paused"
 "Druck pausiert"
@@ -892,7 +936,7 @@
 
 #
 "Print FAN"
-"\x00"
+"Druckluefter"
 
 #WELCOME_MSG c=20 r=0
 "Prusa i3 MK2.5 ready."
@@ -918,6 +962,10 @@
 "Remove old filament and press the knob to start loading new filament."
 "Entfernen Sie das alte Filament und druecken Sie den Knopf, um das neue zu laden."
 
+#
+"Prusa i3 MK3S OK."
+"\x00"
+
 #
 "Prusa i3 MK2 ready."
 "Prusa i3 MK2 bereit."
@@ -1018,6 +1066,14 @@
 "Show end stops"
 "Endschalter Status"
 
+#
+"Sensor state"
+"Sensorstatus"
+
+#
+"Sensors info"
+"Sensoren Info"
+
 #
 "Show pinda state"
 "Pinda-Status anzeigen"
@@ -1160,7 +1216,15 @@
 
 #
 "Total failures"
-"\x00"
+"Gesamte Fehler"
+
+#
+"to load filament"
+"zum Filament laden"
+
+#
+"to unload filament"
+"zum Filament entladen"
 
 #MSG_UNLOAD_FILAMENT c=17 r=0
 "Unload filament"
@@ -1172,7 +1236,7 @@
 
 #
 "Total"
-"\x00"
+"Gesamt"
 
 #MSG_USED c=19 r=1
 "Used during print"
@@ -1184,7 +1248,7 @@
 
 #
 "unknown"
-"\x00"
+"unbekannt"
 
 #MSG_USERWAIT c=0 r=0
 "Wait for user..."
@@ -1320,4 +1384,4 @@
 
 #MSG_OFF c=0 r=0
 " [off]"
-" [AUS]"
+"\x00"

+ 80 - 16
lang/lang_en_es.txt

@@ -18,6 +18,10 @@
 "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 "\x1b[2JATENCION:\x1b[1;0HDec. choque\x1b[2;0Hdesactivada en\x1b[3;0HModo silencio"
 
+#
+">Cancel"
+">Cancelar"
+
 #MSG_BABYSTEPPING_Z c=20 r=0
 "Adjusting Z"
 "Ajustar Z"
@@ -32,7 +36,7 @@
 
 #
 "Ambient"
-"\x00"
+"Ambiente"
 
 #MSG_PRESS c=20 r=0
 "and press the knob"
@@ -44,15 +48,15 @@
 
 #MSG_AUTO_DEPLETE_ON c=17 r=1
 "SpoolJoin    [on]"
-"SpoolJoin    [on]"
+"\x00"
 
 #
 "SpoolJoin   [N/A]"
-"SpoolJoin   [N/A]"
+"\x00"
 
 # MSG_AUTO_DEPLETE_OFF c=17 r=1
 "SpoolJoin   [off]"
-"SpoolJoin   [off]"
+"\x00"
 
 #MSG_AUTO_HOME c=0 r=0
 "Auto home"
@@ -118,6 +122,10 @@
 "Blackout occurred. Recover print?"
 "Se fue la luz. ?Reanudar la impresion?"
 
+#
+"Calibrating home"
+"Calibrando posicion inicial"
+
 #MSG_CALIBRATE_BED c=0 r=0
 "Calibrate XYZ"
 "Calibrar XYZ"
@@ -196,7 +204,7 @@
 
 #
 "Crash"
-"\x00"
+"Choque"
 
 #MSG_CURRENT c=19 r=1
 "Current"
@@ -310,6 +318,10 @@
 "Extruder"
 "Extruir"
 
+#
+"Fail stats MMU"
+"Estadistica de fallos MMU"
+
 #MSG_FSENS_AUTOLOAD_ON c=17 r=1
 "F. autoload  [on]"
 "Autocarg.Fil[act]"
@@ -324,7 +336,7 @@
 
 #
 "Fail stats"
-"\x00"
+"Estadistica de fallos"
 
 #MSG_FAN_SPEED c=14 r=0
 "Fan speed"
@@ -360,7 +372,7 @@
 
 #
 "Filam. runouts"
-"\x00"
+"Filam. acabado"
 
 #MSG_FILAMENT_CLEAN c=20 r=2
 "Filament extruding & with correct color?"
@@ -572,11 +584,11 @@
 
 #
 "Last print failures"
-"\x00"
+"Ultimas impresiones fallidas"
 
 #
 "Last print"
-"\x00"
+"Ultima impresion"
 
 #MSG_SELFTEST_EXTRUDER_FAN c=20 r=0
 "Left hotend fan?"
@@ -646,6 +658,18 @@
 "Measured skew"
 "Desviacion medida:"
 
+#
+"MMU fails"
+"Fallos MMU"
+
+#
+"MMU load failed     "
+"Carga MMU fallida"
+
+#
+"MMU load fails"
+"Carga MMU falla"
+
 #MSG_MMU_OK_RESUMING c=20 r=4
 "MMU OK. Resuming..."
 "MMU OK. Resumiendo..."
@@ -662,6 +686,10 @@
 "MMU needs user attention."
 "MMU necesita atencion del usuario."
 
+#
+"MMU power fails"
+"Fallo de energia en MMU"
+
 #MSG_STEALTH_MODE_ON c=0 r=0
 "Mode    [Stealth]"
 "Modo   [Silencio]"
@@ -676,7 +704,7 @@
 
 #
 "MMU2 connected"
-"\x00"
+"MMU2 conectado"
 
 #MSG_SELFTEST_MOTOR c=0 r=0
 "Motor"
@@ -706,6 +734,10 @@
 "No SD card"
 "No hay tarjeta SD"
 
+#
+"N/A"
+"No disponible"
+
 #MSG_NO c=0 r=0
 "No"
 "\x00"
@@ -748,7 +780,7 @@
 
 #
 "Nozzle FAN"
-"\x00"
+"Ventilador de capa"
 
 #MSG_PAUSE_PRINT c=0 r=0
 "Pause print"
@@ -864,12 +896,20 @@
 
 #
 "Power failures"
-"\x00"
+"Cortes de energia"
 
 #MSG_PRINT_ABORTED c=20 r=0
 "Print aborted"
 "Impresion cancelada"
 
+#
+"Preheating to load"
+"Precalentar para cargar"
+
+#
+"Preheating to unload"
+"Precalentar para descargar"
+
 #MSG_SELFTEST_PRINT_FAN_SPEED c=18 r=0
 "Print fan:"
 "Ventilador del fusor:"
@@ -878,6 +918,10 @@
 "Print from SD"
 "Menu tarjeta SD"
 
+#
+"Press the knob"
+"Pulsa el dial"
+
 #MSG_PRINT_PAUSED c=20 r=1
 "Print paused"
 "Impresion en pausa"
@@ -892,7 +936,7 @@
 
 #
 "Print FAN"
-"\x00"
+"Ventilador del extrusor"
 
 #WELCOME_MSG c=20 r=0
 "Prusa i3 MK2.5 ready."
@@ -918,6 +962,10 @@
 "Remove old filament and press the knob to start loading new filament."
 "Retire el filamento viejo y presione el dial para comenzar a cargar el nuevo filamento."
 
+#
+"Prusa i3 MK3S OK."
+"\x00"
+
 #
 "Prusa i3 MK2 ready."
 "Preparado para i3 MK2."
@@ -1018,6 +1066,14 @@
 "Show end stops"
 "Mostrar endstops"
 
+#
+"Sensor state"
+"Estado del sensor"
+
+#
+"Sensors info"
+"Informacion sensores"
+
 #
 "Show pinda state"
 "Mostrar estado pinda"
@@ -1160,7 +1216,15 @@
 
 #
 "Total failures"
-"\x00"
+"Fallos totales"
+
+#
+"to load filament"
+"para cargar el filamento"
+
+#
+"to unload filament"
+"para descargar el filamento"
 
 #MSG_UNLOAD_FILAMENT c=17 r=0
 "Unload filament"
@@ -1184,7 +1248,7 @@
 
 #
 "unknown"
-"\x00"
+"desconocido"
 
 #MSG_USERWAIT c=0 r=0
 "Wait for user..."
@@ -1320,4 +1384,4 @@
 
 #MSG_OFF c=0 r=0
 " [off]"
-" [OFF]"
+"\x00"

+ 147 - 83
lang/lang_en_fr.txt

@@ -12,11 +12,15 @@
 
 #MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
 "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode"
-"\x1b[2JLa detection de crash\x1b[1;0Hpeut etre active\x1b[2;0Hqu'en mode Normal"
+"\x1b[2JLa detection de crash peut etre\x1b[1;0Hactive seulement\x1b[2;0Hen mode Normal"
 
 #MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
 "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
-"\x1b[2JATTENTION :\x1b[1;0H Detection de crash\x1b[2;0H desactivee en mode\x1b[3;0H Furtif"
+"\x1b[2JATTENTION :\x1b[1;0HDetection de crash\x1b[2;0H desactivee en\x1b[3;0Hmode Furtif"
+
+#
+">Cancel"
+">Annuler"
 
 #MSG_BABYSTEPPING_Z c=20 r=0
 "Adjusting Z"
@@ -28,7 +32,7 @@
 
 #MSG_WIZARD_DONE c=20 r=8
 "All is done. Happy printing!"
-"Tout est termine. Bonne impression !"
+"Tout est pret. Bonne impression !"
 
 #
 "Ambient"
@@ -40,19 +44,19 @@
 
 #MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 "Are left and right Z~carriages all up?"
-"Chariots Z gauche et droite tout en haut?"
+"Z~carriages gauche + droite tout en haut?"
 
 #MSG_AUTO_DEPLETE_ON c=17 r=1
 "SpoolJoin    [on]"
-"SpoolJoin    [on]"
+"\x00"
 
 #
 "SpoolJoin   [N/A]"
-"SpoolJoin   [N/A]"
+"\x00"
 
 # MSG_AUTO_DEPLETE_OFF c=17 r=1
 "SpoolJoin   [off]"
-"SpoolJoin   [off]"
+"\x00"
 
 #MSG_AUTO_HOME c=0 r=0
 "Auto home"
@@ -64,11 +68,11 @@
 
 #MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 "Autoloading filament available only when filament sensor is turned on..."
-"AutoCharge du filament uniquement si le capteur de filament est active."
+"Chargement auto du filament uniquement si le capteur de filament est active."
 
 #MSG_AUTOLOADING_ENABLED c=20 r=4
 "Autoloading filament is active, just press the knob and insert filament..."
-"AutoCharge actif, appuyez sur le bouton et inserez le filament."
+"Chargement auto du filament actif, appuyez sur le btn et inserez le fil."
 
 #MSG_SELFTEST_AXIS_LENGTH c=0 r=0
 "Axis length"
@@ -84,7 +88,7 @@
 
 #MSG_BED_DONE c=0 r=0
 "Bed done"
-"Lit termine"
+"Plateau termine"
 
 #MSG_BED_HEATING c=0 r=0
 "Bed Heating"
@@ -92,19 +96,19 @@
 
 #MSG_BED_CORRECTION_MENU c=0 r=0
 "Bed level correct"
-"Cor courbure du lit"
+"Corr. niveau plateau"
 
 #MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4
 "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset."
-"Echec du nivellement. Capt. non declenche. Debris sur buse ? En attente d'un reset."
+"Echec bed leveling. Capt. non declenche. Debris sur buse ? En attente d'un reset."
 
 #MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
 "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
-"Echec du nivellement. Capteur deconnecte ou cable casse. En attente d'un reset."
+"Echec du nivellement Capteur deconnecte ou cable casse. En attente d'un reset."
 
 #MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
 "Bed leveling failed. Sensor triggered too high. Waiting for reset."
-"Echec du nivellement. Capt. declenche trop trop haut. En attente d'un reset."
+"Echec bed leveling. Capt. declenche trop trop haut. En attente d'un reset."
 
 #MSG_BED c=0 r=0
 "Bed"
@@ -118,6 +122,10 @@
 "Blackout occurred. Recover print?"
 "Coupure detectee. Recup. impression ?"
 
+#
+"Calibrating home"
+"Calib. mise a 0"
+
 #MSG_CALIBRATE_BED c=0 r=0
 "Calibrate XYZ"
 "Calibrer XYZ"
@@ -148,7 +156,7 @@
 
 #MSG_MENU_CALIBRATION c=0 r=0
 "Calibration"
-"Calibration"
+"\x00"
 
 #
 "Cancel"
@@ -172,7 +180,7 @@
 
 #
 "Copy selected language?"
-"Copier la langue selectionne?"
+"Copier la langue selectionne ?"
 
 #MSG_CRASHDETECT_ON c=0 r=0
 "Crash det.   [on]"
@@ -180,11 +188,11 @@
 
 #MSG_CRASHDETECT_NA c=0 r=0
 "Crash det.  [N/A]"
-"Detect.crash[N/A]"
+"Detect. crash [N/A]"
 
 #MSG_CRASHDETECT_OFF c=0 r=0
 "Crash det.  [off]"
-"Detect.crash[off]"
+"Detect. crash[off]"
 
 #MSG_CRASH_DETECTED c=20 r=1
 "Crash detected."
@@ -196,7 +204,7 @@
 
 #
 "Crash"
-"Colision"
+"\x00"
 
 #MSG_CURRENT c=19 r=1
 "Current"
@@ -212,11 +220,11 @@
 
 #MSG_BABYSTEP_Z_NOT_SET c=20 r=12
 "Distance between tip of the nozzle and the bed surface has not been set yet. Please follow the manual, chapter First steps, section First layer calibration."
-"La distance entre la pointe de la buse et la surface du lit n'a pas encore ete reglee. Suivez le manuel, chapitre Premiers pas, section Calibration de la premiere couche."
+"La distance entre la pointe de la buse et la surface du plateau n'a pas encore ete reglee. Suivez le manuel, chapitre Premiers pas, section Calibration de la premiere couche."
 
 #MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
-"Voulez-vous repeter la derniere etape pour reajuster la distance entre la buse et le lit chauffant ?"
+"Voulez-vous repeter la derniere etape pour reajuster la distance entre la buse et le plateau chauffant ?"
 
 #MSG_EXTRUDER_CORRECTION c=9 r=0
 "E-correct"
@@ -224,7 +232,7 @@
 
 #MSG_EJECT_FILAMENT c=17 r=1
 "Eject filament"
-"Ejecter le fil"
+"Ejecter le fil."
 
 #MSG_EJECT_FILAMENT1 c=17 r=1
 "Eject filament 1"
@@ -252,7 +260,7 @@
 
 #MSG_EJECTING_FILAMENT c=20 r=1
 "Ejecting filament"
-"Filament en cours d'ejection"
+"Ejection filament"
 
 #MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
 "Endstop not hit"
@@ -272,7 +280,7 @@
 
 #MSG_FSENS_NOT_RESPONDING c=20 r=4
 "ERROR: Filament sensor is not responding, please check connection."
-"ERREUR : Le capteur de filament ne repond pas, verifiez la connexion."
+"ERREUR : Le capteur de filament ne repond pas, verifiez le branchement."
 
 #MSG_ERROR c=0 r=0
 "ERROR:"
@@ -310,9 +318,13 @@
 "Extruder"
 "Extrudeur"
 
+#
+"Fail stats MMU"
+"Stat. echecs MMU"
+
 #MSG_FSENS_AUTOLOAD_ON c=17 r=1
 "F. autoload  [on]"
-"AutoCharg F  [on]"
+"ChargAuto f. [on]"
 
 #MSG_FSENS_AUTOLOAD_NA c=17 r=1
 "F. autoload [N/A]"
@@ -336,7 +348,7 @@
 
 #MSG_FANS_CHECK_ON c=17 r=1
 "Fans check   [on]"
-"Verif venti  [on]"
+"Verif ventilo[on]"
 
 #MSG_FANS_CHECK_OFF c=17 r=1
 "Fans check  [off]"
@@ -348,11 +360,11 @@
 
 #MSG_RESPONSE_POOR c=20 r=2
 "Fil. sensor response is poor, disable it?"
-"La reponse du capteur de fil. est pauvre, le desactiver ?"
+"Capteur de fil. non precis, desactiver ?"
 
 #MSG_FSENSOR_NA c=0 r=0
 "Fil. sensor [N/A]"
-"Capteur Fil.[N/A]"
+"Capteur Fil. [N/A]"
 
 #MSG_FSENSOR_OFF c=0 r=0
 "Fil. sensor [off]"
@@ -360,7 +372,7 @@
 
 #
 "Filam. runouts"
-"Manque de flm"
+"Fins de filament"
 
 #MSG_FILAMENT_CLEAN c=20 r=2
 "Filament extruding & with correct color?"
@@ -400,7 +412,7 @@
 
 #MSG_WIZARD_SELFTEST c=20 r=8
 "First, I will run the selftest to check most common assembly problems."
-"D'abord, je vais lancer l'autotest pour verifier les problemes d'assemblage les plus communs."
+"D'abord, je vais lancer le Selftest pour verifier les problemes d'assemblage les plus communs."
 
 #
 "Fix the issue and then press button on MMU unit."
@@ -516,7 +528,7 @@
 
 #MSG_WIZARD_V2_CAL_2 c=20 r=12
 "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
-"Je vais commencer a imprimer une ligne et vous baisserez au fur et a mesure la buse en tournant le bouton jusqu'a atteindre la hauteur optimale. Regardez les photos dans notre manuel au chapitre Calibration."
+"Je vais commencer a imprimer une ligne et vous baisserez au fur et a mesure la buse en tournant le bouton jusqu'a atteindre la hauteur optimale. Regardez les photos dans notre manuel au chapitre Calibration"
 
 #MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 c=60 r=0
 "Improving bed calibration point"
@@ -528,19 +540,19 @@
 
 #MSG_FILAMENT_LOADING_T0 c=20 r=4
 "Insert filament into extruder 1. Click when done."
-"Inserez le filament dans l'extrudeur 1. Cliquez une fois fait."
+"Inserez le filament dans l'extrudeur 1. Cliquez une fois pret."
 
 #MSG_FILAMENT_LOADING_T1 c=20 r=4
 "Insert filament into extruder 2. Click when done."
-"Inserez le filament dans l'extrudeur 2. Cliquez une fois fait."
+"Inserez le filament dans l'extrudeur 2. Cliquez une fois pret."
 
 #MSG_FILAMENT_LOADING_T2 c=20 r=4
 "Insert filament into extruder 3. Click when done."
-"Inserez le filament dans l'extrudeur 3. Cliquez une fois fait."
+"Inserez le filament dans l'extrudeur 3. Cliquez une fois pret."
 
 #MSG_FILAMENT_LOADING_T3 c=20 r=4
 "Insert filament into extruder 4. Click when done."
-"Inserez le filament dans l'extrudeur 4. Cliquez une fois fait."
+"Inserez le filament dans l'extrudeur 4. Cliquez une fois pret."
 
 #
 "Is filament 1 loaded?"
@@ -564,7 +576,7 @@
 
 #MSG_STEEL_SHEET_CHECK c=20 r=2
 "Is steel sheet on heatbed?"
-"Feuille d'acier sur le lit chauffant ?"
+"Feuille d'acier sur plateau chauffant ?"
 
 #MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20 r=0
 "Iteration "
@@ -572,11 +584,11 @@
 
 #
 "Last print failures"
-"Echecs d'impr. dern."
+"Echecs derniere impr"
 
 #
 "Last print"
-"Derniere impress."
+"Derniere impression"
 
 #MSG_SELFTEST_EXTRUDER_FAN c=20 r=0
 "Left hotend fan?"
@@ -596,7 +608,7 @@
 
 #MSG_BABYSTEP_Z c=0 r=0
 "Live adjust Z"
-"Ajuster Z en dir"
+"Ajuster Z en direct"
 
 #MSG_LOAD_FILAMENT c=17 r=0
 "Load filament"
@@ -616,7 +628,7 @@
 
 #
 "Load to nozzle"
-"Charger le fil"
+"Charger dans la buse"
 
 #MSG_M117_V2_CALIBRATION c=25 r=1
 "M117 First layer cal."
@@ -632,7 +644,7 @@
 
 #MSG_MESH_BED_LEVELING c=0 r=0
 "Mesh Bed Leveling"
-"Nivelage du lit"
+"\x00"
 
 #MSG_MMU_OK_RESUMING_POSITION c=20 r=4
 "MMU OK. Resuming position..."
@@ -640,19 +652,31 @@
 
 #MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
 "MMU OK. Resuming temperature..."
-"MMU OK. Reprise de la temperature ..."
+"MMU OK. Remontee en temperature..."
 
 #
 "Measured skew"
 "Deviation mesuree"
 
+#
+"MMU fails"
+"Echec MMU"
+
+#
+"MMU load failed     "
+"Echec chargement MMU"
+
+#
+"MMU load fails"
+"Echecs charg. MMU"
+
 #MSG_MMU_OK_RESUMING c=20 r=4
 "MMU OK. Resuming..."
 "MMU OK. Reprise ..."
 
 #MSG_STEALTH_MODE_OFF c=0 r=0
 "Mode     [Normal]"
-"Mode     [Normal]"
+"\x00"
 
 #MSG_SILENT_MODE_ON c=0 r=0
 "Mode     [silent]"
@@ -662,21 +686,25 @@
 "MMU needs user attention."
 "Le MMU necessite l'attention de l'utilisateur."
 
+#
+"MMU power fails"
+"Echecs alim. MMU"
+
 #MSG_STEALTH_MODE_ON c=0 r=0
 "Mode    [Stealth]"
-"Mode     [Furtif]"
+"Mode [Furtif]"
 
 #MSG_AUTO_MODE_ON c=0 r=0
 "Mode [auto power]"
-"Mode[puissan.aut]"
+"Mode [puiss.auto]"
 
 #MSG_SILENT_MODE_OFF c=0 r=0
 "Mode [high power]"
-"Mode[haute puiss]"
+"Mode [haute puiss]"
 
 #
 "MMU2 connected"
-"MMU2 connectée"
+"MMU2 connecte"
 
 #MSG_SELFTEST_MOTOR c=0 r=0
 "Motor"
@@ -706,6 +734,10 @@
 "No SD card"
 "Pas de carte SD"
 
+#
+"N/A"
+"\x00"
+
 #MSG_NO c=0 r=0
 "No"
 "Non"
@@ -716,7 +748,7 @@
 
 #
 "New firmware version available:"
-"Nouvelle version de firmware disponible :"
+"Nouvelle version de firmware disponible:"
 
 #
 "No "
@@ -728,7 +760,7 @@
 
 #MSG_WIZARD_V2_CAL c=20 r=8
 "Now I will calibrate distance between tip of the nozzle and heatbed surface."
-"Maintenant je vais calibrer la distance entre la pointe de la buse et le surface du lit chauffant."
+"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
 "Now I will preheat nozzle for PLA."
@@ -740,7 +772,7 @@
 
 #MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
 "Old settings found. Default PID, Esteps etc. will be set."
-"Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront pris."
+"Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront regles"
 
 #
 "Now remove the test print from steel sheet."
@@ -748,11 +780,11 @@
 
 #
 "Nozzle FAN"
-"Vent buse"
+"Ventilateur buse"
 
 #MSG_PAUSE_PRINT c=0 r=0
 "Pause print"
-"Pause de l'impres"
+"Pause de l'impr."
 
 #MSG_PID_RUNNING c=20 r=1
 "PID cal.           "
@@ -772,11 +804,11 @@
 
 #MSG_PAPER c=20 r=8
 "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."
-"Placez une feuille de papier sous la buse pendant la calibration des 4 premiers points. Si la buse accroche le papier, eteignez de suite l'imprimante."
+"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
 "Please clean heatbed and then press the knob."
-"Nettoyez le lit chauffant et appuyez sur le bouton."
+"Nettoyez le plateau chauffant et appuyez sur le bouton."
 
 #MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8
 "Please clean the nozzle for calibration. Click when done."
@@ -792,7 +824,7 @@
 
 #MSG_WIZARD_LOAD_FILAMENT c=20 r=8
 "Please insert PLA filament to the extruder, then press knob to load it."
-"Inserez du filament PLA dans l'extrudeur, puis appuyez sur le bouton pour le charger."
+"Inserez du filament PLA dans l'extrudeur puis appuyez sur le bouton pour le charger."
 
 #MSG_PLEASE_LOAD_PLA c=20 r=4
 "Please load PLA filament first."
@@ -800,11 +832,11 @@
 
 #MSG_CHECK_IDLER c=20 r=4
 "Please open idler and remove filament manually."
-"Ouvrez le support de poulie et retirez le filament manuellement."
+"Ouvrez l'idler et retirez le filament manuellement."
 
 #MSG_PLACE_STEEL_SHEET c=20 r=4
 "Please place steel sheet on heatbed."
-"Placez la feuille d'acier sur le lit chauffant."
+"Placez la feuille d'acier sur le plateau chauffant."
 
 #MSG_PRESS_TO_UNLOAD c=20 r=4
 "Please press the knob to unload filament"
@@ -824,7 +856,7 @@
 
 #MSG_REMOVE_STEEL_SHEET c=20 r=4
 "Please remove steel sheet from heatbed."
-"Retirez la feuille d'acier du lit chauffant"
+"Retirez la feuille d'acier du plateau chauffant."
 
 #MSG_RUN_XYZ c=20 r=4
 "Please run XYZ calibration first."
@@ -864,12 +896,20 @@
 
 #
 "Power failures"
-"Coupures"
+"Coupures de courant"
 
 #MSG_PRINT_ABORTED c=20 r=0
 "Print aborted"
 "Impression annulee"
 
+#
+"Preheating to load"
+"Chauffe pour charger"
+
+#
+"Preheating to unload"
+"Chauffe pr decharger"
+
 #MSG_SELFTEST_PRINT_FAN_SPEED c=18 r=0
 "Print fan:"
 "Ventilo impr. :"
@@ -878,6 +918,10 @@
 "Print from SD"
 "Impr depuis la SD"
 
+#
+"Press the knob"
+"App. sur sur bouton"
+
 #MSG_PRINT_PAUSED c=20 r=1
 "Print paused"
 "Impression en pause"
@@ -888,11 +932,11 @@
 
 #MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
 "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."
-"L'imprimante n'a pas encore ete calibree. Suivez le manuel, chapitre Premiers pas, section Processus de calibration"
+"L'imprimante n'a pas encore ete calibree. Suivez le manuel, chapitre Premiers pas, section Processus de calibration."
 
 #
 "Print FAN"
-"Vent extru"
+"Ventilo impression"
 
 #WELCOME_MSG c=20 r=0
 "Prusa i3 MK2.5 ready."
@@ -918,6 +962,10 @@
 "Remove old filament and press the knob to start loading new filament."
 "Retirez l'ancien filament puis appuyez sur le bouton pour charger le nouveau."
 
+#
+"Prusa i3 MK3S OK."
+"\x00"
+
 #
 "Prusa i3 MK2 ready."
 "Prusa i3 MK2 prete."
@@ -944,11 +992,11 @@
 
 #MSG_SECOND_SERIAL_ON c=17 r=1
 "RPi port     [on]"
-"Port RPi     [on]"
+"Port RPi [on]"
 
 #MSG_SECOND_SERIAL_OFF c=17 r=1
 "RPi port    [off]"
-"Port RPi    [off]"
+"Port RPi [off]"
 
 #MSG_WIZARD_RERUN c=20 r=7
 "Running Wizard will delete current calibration results and start from the beginning. Continue?"
@@ -960,7 +1008,7 @@
 
 #MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
 "SD card [flshAir]"
-"Carte SD[flshAir]"
+"Carte SD [flashAir]"
 
 #
 "Right"
@@ -996,7 +1044,7 @@
 
 #MSG_FORCE_SELFTEST c=20 r=8
 "Selftest will be run to calibrate accurate sensorless rehoming."
-"L'auto-test sera lance pour calibrer la remise a zero precise sans capteur."
+"Le Selftest sera lance pour calibrer la remise a zero precise sans capteur"
 
 #
 "Select nozzle preheat temperature which matches your material."
@@ -1018,6 +1066,14 @@
 "Show end stops"
 "Afficher butees"
 
+#
+"Sensor state"
+"Etat capteur"
+
+#
+"Sensors info"
+"Infos capteurs"
+
 #
 "Show pinda state"
 "Etat de la PINDA"
@@ -1040,7 +1096,7 @@
 
 #MSG_SORT_ALPHA c=17 r=1
 "Sort:  [alphabet]"
-"Tri :  [alphabet]"
+"Tri : [alphabet]"
 
 #MSG_SORTING c=20 r=1
 "Sorting files"
@@ -1048,7 +1104,7 @@
 
 #MSG_SOUND_LOUD c=17 r=1
 "Sound      [loud]"
-"Son        [fort]"
+"Son [fort]"
 
 #
 "Slight skew"
@@ -1056,7 +1112,7 @@
 
 #MSG_SOUND_MUTE c=17 r=1
 "Sound      [mute]"
-"Son        [muet]"
+"Son [muet]"
 
 #
 "Some problem encountered, Z-leveling enforced ..."
@@ -1064,11 +1120,11 @@
 
 #MSG_SOUND_ONCE c=17 r=1
 "Sound      [once]"
-"Son    [une fois]"
+"Son [une fois]"
 
 #MSG_SOUND_SILENT c=17 r=1
 "Sound    [silent]"
-"Son  [silencieux]"
+"Son [silencieux]"
 
 #MSG_SPEED c=0 r=0
 "Speed"
@@ -1080,7 +1136,7 @@
 
 #MSG_TEMP_CAL_WARNING c=20 r=4
 "Stable ambient temperature 21-26C is needed a rigid stand is required."
-"Une temperature ambiante stable de 21-26C et une base stable sont requis."
+"Une temperature ambiante stable de 21-26C et un support stable sont requis."
 
 #MSG_STATISTICS c=0 r=0
 "Statistics  "
@@ -1120,11 +1176,11 @@
 
 #MSG_TEMP_CAL_FAILED c=20 r=8
 "Temperature calibration failed"
-"Echec calibration en temperature"
+"Echec de la calibration en temperature"
 
 #MSG_TEMP_CALIBRATION_DONE c=20 r=12
 "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal."
-"La calibration en temperature est terminee et active. La calibration en temperature peut etre desactivee dans le menu Reglages->Cal. Temp."
+"La calibration en temperature est terminee et activee. La calibration en temperature peut etre desactivee dans le menu Reglages-> Cal. Temp."
 
 #MSG_TEMPERATURE c=0 r=0
 "Temperature"
@@ -1144,7 +1200,7 @@
 
 #
 "Total print time"
-"Temps total"
+"Temps total impr."
 
 #MSG_TUNE c=0 r=0
 "Tune"
@@ -1160,7 +1216,15 @@
 
 #
 "Total failures"
-"Echecs au total"
+"Total des echecs"
+
+#
+"to load filament"
+"pour charger le fil."
+
+#
+"to unload filament"
+"pour decharger fil."
 
 #MSG_UNLOAD_FILAMENT c=17 r=0
 "Unload filament"
@@ -1172,7 +1236,7 @@
 
 #
 "Total"
-"Total"
+"\x00"
 
 #MSG_USED c=19 r=1
 "Used during print"
@@ -1184,7 +1248,7 @@
 
 #
 "unknown"
-"\x00"
+"inconnu"
 
 #MSG_USERWAIT c=0 r=0
 "Wait for user..."
@@ -1192,7 +1256,7 @@
 
 #MSG_WAITING_TEMP c=20 r=3
 "Waiting for nozzle and bed cooling"
-"Attente du refroidissement de la buse et du lit"
+"Attente du refroidissement des buse et plateau"
 
 #MSG_WAITING_TEMP_PINDA c=20 r=3
 "Waiting for PINDA probe cooling"
@@ -1240,7 +1304,7 @@
 
 #MSG_WIZARD_QUIT c=20 r=8
 "You can always resume the Wizard from Calibration -> Wizard."
-"Vous pouvez toujours poursuivre l'assistant dans Calibration-> Assistant."
+"Vous pouvez toujours relancer l'assistant dans Calibration-> Assistant."
 
 #MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 "XYZ calibration all right. Skew will be corrected automatically."
@@ -1264,11 +1328,11 @@
 
 #MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 "XYZ calibration compromised. Right front calibration point not reachable."
-"Calibration XYZ compromise. Le point de calibration avant droite n'est pas atteignable."
+"Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable."
 
 #MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
 "XYZ calibration compromised. Left front calibration point not reachable."
-"Calibration XYZ compromise. Le point de calibration avant gauche n'est pas atteignable."
+"Calibration XYZ compromise. Le point  de calibration  avant gauche n'est  pas atteignable."
 
 #MSG_LOAD_ALL c=17 r=0
 "Load all"
@@ -1280,7 +1344,7 @@
 
 #
 "XYZ calibration failed. Bed calibration point was not found."
-"Echec calibration XYZ. Le point de calibration du lit n'a pas ete trouve."
+"Echec calibration XYZ. Le point de calibration du plateau n'a pas ete trouve."
 
 #
 "XYZ calibration failed. Front calibration points not reachable."
@@ -1296,7 +1360,7 @@
 
 #
 "XYZ calibration failed. Right front calibration point not reachable."
-"Echec calibration XYZ. Le point de calibration avant droite n'est pas atteignable."
+"Echec calibration XYZ. Le point de calibration avant droit n'est pas atteignable."
 
 #MSG_LOAD_FILAMENT_3 c=17 r=0
 "Load filament 3"

+ 81 - 17
lang/lang_en_it.txt

@@ -18,6 +18,10 @@
 "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 "\x1b[2JATTENZIONE:\x1b[1;0HRilev. impatto\x1b[2;0Hdisattivato in\x1b[3;0HModalita silenziosa"
 
+#
+">Cancel"
+">Annulla"
+
 #MSG_BABYSTEPPING_Z c=20 r=0
 "Adjusting Z"
 "Compensazione Z"
@@ -32,7 +36,7 @@
 
 #
 "Ambient"
-"\x00"
+"Ambiente"
 
 #MSG_PRESS c=20 r=0
 "and press the knob"
@@ -44,15 +48,15 @@
 
 #MSG_AUTO_DEPLETE_ON c=17 r=1
 "SpoolJoin    [on]"
-"SpoolJoin    [on]"
+"\x00"
 
 #
 "SpoolJoin   [N/A]"
-"SpoolJoin   [N/A]"
+"\x00"
 
 # MSG_AUTO_DEPLETE_OFF c=17 r=1
 "SpoolJoin   [off]"
-"SpoolJoin   [off]"
+"\x00"
 
 #MSG_AUTO_HOME c=0 r=0
 "Auto home"
@@ -118,6 +122,10 @@
 "Blackout occurred. Recover print?"
 "C'e stato un Blackout. Recuperare la stampa?"
 
+#
+"Calibrating home"
+"Calibrazione Home"
+
 #MSG_CALIBRATE_BED c=0 r=0
 "Calibrate XYZ"
 "Calibra XYZ"
@@ -196,7 +204,7 @@
 
 #
 "Crash"
-"\x00"
+"Impatto"
 
 #MSG_CURRENT c=19 r=1
 "Current"
@@ -310,6 +318,10 @@
 "Extruder"
 "Estrusore"
 
+#
+"Fail stats MMU"
+"Statistiche fallimenti MMU"
+
 #MSG_FSENS_AUTOLOAD_ON c=17 r=1
 "F. autoload  [on]"
 "Autocar.filam[on]"
@@ -324,7 +336,7 @@
 
 #
 "Fail stats"
-"\x00"
+"Statistiche fallimenti"
 
 #MSG_FAN_SPEED c=14 r=0
 "Fan speed"
@@ -360,7 +372,7 @@
 
 #
 "Filam. runouts"
-"\x00"
+"Filam. esauriti"
 
 #MSG_FILAMENT_CLEAN c=20 r=2
 "Filament extruding & with correct color?"
@@ -572,11 +584,11 @@
 
 #
 "Last print failures"
-"\x00"
+"Fallimenti ultima stampa"
 
 #
 "Last print"
-"\x00"
+"Ultima stampa"
 
 #MSG_SELFTEST_EXTRUDER_FAN c=20 r=0
 "Left hotend fan?"
@@ -646,6 +658,18 @@
 "Measured skew"
 "Disassamento misurato"
 
+#
+"MMU fails"
+"Fallimenti MMU"
+
+#
+"MMU load failed     "
+"Caricamento MMU fallito"
+
+#
+"MMU load fails"
+"Caricamenti MMU falliti"
+
 #MSG_MMU_OK_RESUMING c=20 r=4
 "MMU OK. Resuming..."
 "MMU OK. Riprendendo... "
@@ -662,6 +686,10 @@
 "MMU needs user attention."
 "Il MMU richiede attenzione dall'utente."
 
+#
+"MMU power fails"
+"Mancanza corrente MMU"
+
 #MSG_STEALTH_MODE_ON c=0 r=0
 "Mode    [Stealth]"
 "Modo [Silenziosa]"
@@ -676,7 +704,7 @@
 
 #
 "MMU2 connected"
-"\x00"
+"MMU2 connessa"
 
 #MSG_SELFTEST_MOTOR c=0 r=0
 "Motor"
@@ -706,6 +734,10 @@
 "No SD card"
 "Nessuna SD"
 
+#
+"N/A"
+"\x00"
+
 #MSG_NO c=0 r=0
 "No"
 "\x00"
@@ -748,7 +780,7 @@
 
 #
 "Nozzle FAN"
-"\x00"
+"Ventola estrusore"
 
 #MSG_PAUSE_PRINT c=0 r=0
 "Pause print"
@@ -864,12 +896,20 @@
 
 #
 "Power failures"
-"\x00"
+"Mancanza corrente"
 
 #MSG_PRINT_ABORTED c=20 r=0
 "Print aborted"
 "Stampa interrotta"
 
+#
+"Preheating to load"
+"Preriscaldamento per caricare"
+
+#
+"Preheating to unload"
+"Preriscaldamento per scaricare"
+
 #MSG_SELFTEST_PRINT_FAN_SPEED c=18 r=0
 "Print fan:"
 "Ventola di stampa:"
@@ -878,6 +918,10 @@
 "Print from SD"
 "Stampa da SD"
 
+#
+"Press the knob"
+"Premere la manopola"
+
 #MSG_PRINT_PAUSED c=20 r=1
 "Print paused"
 "Stampa in pausa"
@@ -892,7 +936,7 @@
 
 #
 "Print FAN"
-"\x00"
+"Ventola di stampa"
 
 #WELCOME_MSG c=20 r=0
 "Prusa i3 MK2.5 ready."
@@ -918,6 +962,10 @@
 "Remove old filament and press the knob to start loading new filament."
 "Rimuovi il filamento precedente e premi la manopola per caricare il nuovo filamento. "
 
+#
+"Prusa i3 MK3S OK."
+"\x00"
+
 #
 "Prusa i3 MK2 ready."
 "Prusa i3 MK2 pronta."
@@ -1018,6 +1066,14 @@
 "Show end stops"
 "Stato finecorsa"
 
+#
+"Sensor state"
+"Stato sensore"
+
+#
+"Sensors info"
+"Info Sensori"
+
 #
 "Show pinda state"
 "Mostra stato pinda"
@@ -1160,7 +1216,15 @@
 
 #
 "Total failures"
-"\x00"
+"Totale fallimenti"
+
+#
+"to load filament"
+"per caricare il filamento"
+
+#
+"to unload filament"
+"per scaricare il filamento"
 
 #MSG_UNLOAD_FILAMENT c=17 r=0
 "Unload filament"
@@ -1172,7 +1236,7 @@
 
 #
 "Total"
-"\x00"
+"Totale"
 
 #MSG_USED c=19 r=1
 "Used during print"
@@ -1184,7 +1248,7 @@
 
 #
 "unknown"
-"\x00"
+"sconosciuto"
 
 #MSG_USERWAIT c=0 r=0
 "Wait for user..."
@@ -1320,4 +1384,4 @@
 
 #MSG_OFF c=0 r=0
 " [off]"
-" [OFF]"
+"\x00"

+ 78 - 14
lang/lang_en_pl.txt

@@ -18,6 +18,10 @@
 "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 "\x1b[2JUWAGA:\x1b[1;0HWykrywanie zderzen\x1b[2;0Hwylaczone w\x1b[3;0Htrybie Stealth"
 
+#
+">Cancel"
+">Anuluj"
+
 #MSG_BABYSTEPPING_Z c=20 r=0
 "Adjusting Z"
 "Dostrajanie Z"
@@ -32,7 +36,7 @@
 
 #
 "Ambient"
-"\x00"
+"Otoczenie"
 
 #MSG_PRESS c=20 r=0
 "and press the knob"
@@ -118,6 +122,10 @@
 "Blackout occurred. Recover print?"
 "Wykryto zanik napiecia. Kontynowac?"
 
+#
+"Calibrating home"
+"Zerowanie osi"
+
 #MSG_CALIBRATE_BED c=0 r=0
 "Calibrate XYZ"
 "Kalibracja XYZ"
@@ -196,7 +204,7 @@
 
 #
 "Crash"
-"\x00"
+"Zderzenie"
 
 #MSG_CURRENT c=19 r=1
 "Current"
@@ -310,6 +318,10 @@
 "Extruder"
 "Ekstruder"
 
+#
+"Fail stats MMU"
+"Bledy MMU"
+
 #MSG_FSENS_AUTOLOAD_ON c=17 r=1
 "F. autoload  [on]"
 "Autolad. fil [wl]"
@@ -324,7 +336,7 @@
 
 #
 "Fail stats"
-"\x00"
+"Statystyki bledow"
 
 #MSG_FAN_SPEED c=14 r=0
 "Fan speed"
@@ -360,7 +372,7 @@
 
 #
 "Filam. runouts"
-"\x00"
+"Konc. filamentu"
 
 #MSG_FILAMENT_CLEAN c=20 r=2
 "Filament extruding & with correct color?"
@@ -572,11 +584,11 @@
 
 #
 "Last print failures"
-"\x00"
+"Ostatnie bledy druku"
 
 #
 "Last print"
-"\x00"
+"Ost. wydruk"
 
 #MSG_SELFTEST_EXTRUDER_FAN c=20 r=0
 "Left hotend fan?"
@@ -646,6 +658,18 @@
 "Measured skew"
 "Zmierzony skos"
 
+#
+"MMU fails"
+"Bledy MMU"
+
+#
+"MMU load failed     "
+"Blad ladowania MMU"
+
+#
+"MMU load fails"
+"Bledy ladow. MMU"
+
 #MSG_MMU_OK_RESUMING c=20 r=4
 "MMU OK. Resuming..."
 "MMU OK. Wznawianie..."
@@ -662,6 +686,10 @@
 "MMU needs user attention."
 "MMU wymaga uwagi uzytkownika."
 
+#
+"MMU power fails"
+"Zaniki zasil. MMU"
+
 #MSG_STEALTH_MODE_ON c=0 r=0
 "Mode    [Stealth]"
 "Tryb    [Stealth]"
@@ -676,7 +704,7 @@
 
 #
 "MMU2 connected"
-"\x00"
+"MMU podlaczone"
 
 #MSG_SELFTEST_MOTOR c=0 r=0
 "Motor"
@@ -706,6 +734,10 @@
 "No SD card"
 "Brak karty SD"
 
+#
+"N/A"
+"N/D"
+
 #MSG_NO c=0 r=0
 "No"
 "Nie"
@@ -748,7 +780,7 @@
 
 #
 "Nozzle FAN"
-"\x00"
+"Went. hotendu"
 
 #MSG_PAUSE_PRINT c=0 r=0
 "Pause print"
@@ -864,12 +896,20 @@
 
 #
 "Power failures"
-"\x00"
+"Zaniki zasilania"
 
 #MSG_PRINT_ABORTED c=20 r=0
 "Print aborted"
 "Druk przerwany"
 
+#
+"Preheating to load"
+"Nagrzew. do ladowania"
+
+#
+"Preheating to unload"
+"Nagrzew. do rozlad."
+
 #MSG_SELFTEST_PRINT_FAN_SPEED c=18 r=0
 "Print fan:"
 "Went. wydruku:"
@@ -878,6 +918,10 @@
 "Print from SD"
 "Druk z karty SD"
 
+#
+"Press the knob"
+"Wcisnij pokretlo"
+
 #MSG_PRINT_PAUSED c=20 r=1
 "Print paused"
 "Druk wstrzymany"
@@ -892,7 +936,7 @@
 
 #
 "Print FAN"
-"\x00"
+"Went. wydruku"
 
 #WELCOME_MSG c=20 r=0
 "Prusa i3 MK2.5 ready."
@@ -918,6 +962,10 @@
 "Remove old filament and press the knob to start loading new filament."
 "Wyciagnij poprzedni filament i nacisnij pokretlo aby zaladowac nowy."
 
+#
+"Prusa i3 MK3S OK."
+"Prusa i3 MK3S OK"
+
 #
 "Prusa i3 MK2 ready."
 "Prusa i3 MK2 gotowa"
@@ -1018,6 +1066,14 @@
 "Show end stops"
 "Pokaz krancowki"
 
+#
+"Sensor state"
+"Stan czujnikow"
+
+#
+"Sensors info"
+"Info o czujnikach"
+
 #
 "Show pinda state"
 "Stan sondy PINDA"
@@ -1160,7 +1216,15 @@
 
 #
 "Total failures"
-"\x00"
+"Suma bledow"
+
+#
+"to load filament"
+"aby zaladow. fil."
+
+#
+"to unload filament"
+"aby rozlad. filament"
 
 #MSG_UNLOAD_FILAMENT c=17 r=0
 "Unload filament"
@@ -1172,7 +1236,7 @@
 
 #
 "Total"
-"\x00"
+"Suma"
 
 #MSG_USED c=19 r=1
 "Used during print"
@@ -1184,7 +1248,7 @@
 
 #
 "unknown"
-"\x00"
+"nieznane"
 
 #MSG_USERWAIT c=0 r=0
 "Wait for user..."
@@ -1320,4 +1384,4 @@
 
 #MSG_OFF c=0 r=0
 " [off]"
-" [wyl]"
+"\x00"

+ 311 - 231
lang/po/Firmware.pot

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: en\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 30. lis 2018 18:45:02\n"
-"PO-Revision-Date: pá 30. lis 2018 18:45:02\n"
+"POT-Creation-Date: čt 7. úno 2019 14:41:39\n"
+"PO-Revision-Date: čt 7. úno 2019 14:41:39\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -26,27 +26,32 @@ msgid " of 9"
 msgstr ""
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2702
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr ""
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3968
+#: ultralcd.cpp:4219
 msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode"
 msgstr ""
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3980
+#: ultralcd.cpp:4231
 msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ""
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2831
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr ""
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7074
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr ""
 
@@ -56,32 +61,32 @@ msgid "All is done. Happy printing!"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2026
+#: ultralcd.cpp:2109
 msgid "Ambient"
 msgstr ""
 
 # MSG_PRESS c=20
-#: ultralcd.cpp:2245
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr ""
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3120
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
 msgstr ""
 
 # MSG_AUTO_DEPLETE_ON c=17 r=1
-#: ultralcd.cpp:4707
+#: ultralcd.cpp:4959
 msgid "SpoolJoin    [on]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4703
+#: ultralcd.cpp:4955
 msgid "SpoolJoin   [N/A]"
 msgstr ""
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4711
+#: ultralcd.cpp:4963
 msgid "SpoolJoin   [off]"
 msgstr ""
 
@@ -91,32 +96,32 @@ msgid "Auto home"
 msgstr ""
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5836
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr ""
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3995
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr ""
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2439
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr ""
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr ""
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6849
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr ""
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6791
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr ""
 
@@ -131,7 +136,7 @@ msgid "Bed Heating"
 msgstr ""
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr ""
 
@@ -141,12 +146,12 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr ""
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4466
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 msgstr ""
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4470
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr ""
 
@@ -156,7 +161,7 @@ msgid "Bed"
 msgstr ""
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2052
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr ""
 
@@ -165,8 +170,13 @@ msgstr ""
 msgid "Blackout occurred. Recover print?"
 msgstr ""
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr ""
+
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4934
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr ""
 
@@ -176,12 +186,12 @@ msgid "Calibrate Z"
 msgstr ""
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4176
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr ""
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr ""
 
@@ -191,12 +201,12 @@ msgid "Calibrating Z"
 msgstr ""
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr ""
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr ""
 
@@ -206,22 +216,22 @@ msgid "Calibration"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr ""
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7425
+#: 
 msgid "Card inserted"
 msgstr ""
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7431
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr ""
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr ""
 
@@ -231,7 +241,7 @@ msgid "Cooldown"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4109
+#: ultralcd.cpp:4360
 msgid "Copy selected language?"
 msgstr ""
 
@@ -256,27 +266,27 @@ msgid "Crash detected."
 msgstr ""
 
 # 
-#: Marlin_main.cpp:603
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr ""
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Crash"
 msgstr ""
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5085
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr ""
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2152
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr ""
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4841
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr ""
 
@@ -286,77 +296,77 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr ""
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4576
+#: ultralcd.cpp:4828
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr ""
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr ""
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5825
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr ""
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr ""
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr ""
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr ""
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr ""
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5356
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr ""
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1128
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr ""
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6815
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr ""
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6809
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr ""
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6797
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr ""
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5871
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
 msgstr ""
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr ""
 
@@ -366,37 +376,37 @@ msgid "ERROR:"
 msgstr ""
 
 # 
-#: Marlin_main.cpp:984
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr ""
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5385
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7083
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr ""
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2183
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr ""
 
@@ -405,8 +415,13 @@ msgstr ""
 msgid "Extruder"
 msgstr ""
 
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr ""
+
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4675
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
 msgstr ""
 
@@ -416,12 +431,12 @@ msgid "F. autoload [N/A]"
 msgstr ""
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4677
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5853
+#: ultralcd.cpp:6112
 msgid "Fail stats"
 msgstr ""
 
@@ -436,12 +451,12 @@ msgid "Fan test"
 msgstr ""
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4848
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
 msgstr ""
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4850
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
 msgstr ""
 
@@ -451,12 +466,12 @@ msgid "Fil. sensor  [on]"
 msgstr ""
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3104
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
 msgstr ""
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4655
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
 msgstr ""
 
@@ -466,7 +481,7 @@ msgid "Fil. sensor [off]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Filam. runouts"
 msgstr ""
 
@@ -476,32 +491,32 @@ msgid "Filament extruding & with correct color?"
 msgstr ""
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr ""
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6863
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr ""
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7092
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr ""
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2513
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr ""
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2515
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr ""
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7209
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
 msgstr ""
 
@@ -511,27 +526,27 @@ msgid "Finishing movements"
 msgstr ""
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4925
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr ""
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4488
+#: ultralcd.cpp:4740
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr ""
 
 # 
-#: mmu.cpp:436
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
 msgstr ""
 
 # MSG_FLOW
-#: ultralcd.cpp:5944
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr ""
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2145
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr ""
 
@@ -541,22 +556,22 @@ msgid "Front print fan?"
 msgstr ""
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr ""
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr ""
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr ""
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7400
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr ""
 
@@ -571,17 +586,17 @@ msgid "Heating"
 msgstr ""
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4467
+#: ultralcd.cpp:4719
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr ""
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2146
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5832
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr ""
 
@@ -591,12 +606,12 @@ msgid "Change filament"
 msgstr ""
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2256
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr ""
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr ""
 
@@ -606,12 +621,12 @@ msgid "Checking bed     "
 msgstr ""
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr ""
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr ""
 
@@ -621,17 +636,17 @@ msgid "Checking sensors "
 msgstr ""
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr ""
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7068
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr ""
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7069
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr ""
 
@@ -651,17 +666,17 @@ msgid "Filament"
 msgstr ""
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4497
+#: ultralcd.cpp:4749
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr ""
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4505
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr ""
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr ""
 
@@ -696,27 +711,27 @@ msgid "Insert filament into extruder 4. Click when done."
 msgstr ""
 
 # 
-#: ultralcd.cpp:4530
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
 msgstr ""
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2242
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr ""
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4533
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr ""
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4564
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr ""
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4310
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr ""
 
@@ -731,12 +746,12 @@ msgid "Iteration "
 msgstr ""
 
 # 
-#: ultralcd.cpp:1949
+#: ultralcd.cpp:1976
 msgid "Last print failures"
 msgstr ""
 
 # 
-#: ultralcd.cpp:1964
+#: ultralcd.cpp:1960
 msgid "Last print"
 msgstr ""
 
@@ -746,17 +761,17 @@ msgid "Left hotend fan?"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr ""
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4855
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr ""
 
@@ -771,7 +786,7 @@ msgid "Load filament"
 msgstr ""
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2281
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr ""
 
@@ -781,12 +796,12 @@ msgid "Loading filament"
 msgstr ""
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6839
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5824
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr ""
 
@@ -806,27 +821,42 @@ msgid "Measuring reference height of calibration point"
 msgstr ""
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4940
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
 msgstr ""
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:474
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr ""
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:463
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr ""
 
 # 
-#: ultralcd.cpp:2684
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr ""
 
+# 
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr ""
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr ""
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr ""
+
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:485
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr ""
 
@@ -841,10 +871,15 @@ msgid "Mode     [silent]"
 msgstr ""
 
 # 
-#: mmu.cpp:431
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr ""
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr ""
+
 # MSG_STEALTH_MODE_ON
 #: messages.c:85
 msgid "Mode    [Stealth]"
@@ -861,7 +896,7 @@ msgid "Mode [high power]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2158
+#: ultralcd.cpp:2241
 msgid "MMU2 connected"
 msgstr ""
 
@@ -871,42 +906,47 @@ msgid "Motor"
 msgstr ""
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4839
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr ""
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr ""
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr ""
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3915
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr ""
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr ""
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5804
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr ""
+
 # MSG_NO
 #: messages.c:58
 msgid "No"
 msgstr ""
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6787
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr ""
 
@@ -926,12 +966,12 @@ msgid "Not spinning"
 msgstr ""
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4821
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr ""
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4513
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr ""
 
@@ -941,42 +981,42 @@ msgid "Nozzle"
 msgstr ""
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1488
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr ""
 
 # 
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr ""
 
 # 
-#: ultralcd.cpp:1880
+#: ultralcd.cpp:1919
 msgid "Nozzle FAN"
 msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5778
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr ""
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr ""
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr ""
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr ""
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr ""
 
@@ -986,7 +1026,7 @@ msgid "Place a sheet of paper under the nozzle during the calibration of first 4
 msgstr ""
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4578
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr ""
 
@@ -996,7 +1036,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr ""
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6779
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr ""
 
@@ -1006,17 +1046,17 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr ""
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4412
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr ""
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4315
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr ""
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2988
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
 msgstr ""
 
@@ -1031,7 +1071,7 @@ msgid "Please press the knob to unload filament"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4408
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr ""
 
@@ -1041,7 +1081,7 @@ msgid "Please pull out filament immediately"
 msgstr ""
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1136
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr ""
 
@@ -1051,12 +1091,12 @@ msgid "Please remove steel sheet from heatbed."
 msgstr ""
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4010
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr ""
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1082
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr ""
 
@@ -1066,7 +1106,7 @@ msgid "Please wait"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr ""
 
@@ -1076,7 +1116,7 @@ msgid "Preheat the nozzle!"
 msgstr ""
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5767
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr ""
 
@@ -1091,12 +1131,12 @@ msgid "Please upgrade."
 msgstr ""
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9054
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr ""
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Power failures"
 msgstr ""
 
@@ -1105,8 +1145,18 @@ msgstr ""
 msgid "Print aborted"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr ""
+
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7086
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr ""
 
@@ -1115,13 +1165,18 @@ msgstr ""
 msgid "Print from SD"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr ""
+
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr ""
 
 # 
-#: mmu.cpp:435
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr ""
 
@@ -1131,7 +1186,7 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi
 msgstr ""
 
 # 
-#: ultralcd.cpp:1882
+#: ultralcd.cpp:1921
 msgid "Print FAN"
 msgstr ""
 
@@ -1146,42 +1201,47 @@ msgid "Prusa i3 MK3 ready."
 msgstr ""
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2144
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr ""
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8481
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr ""
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:535
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr ""
 
+# 
+#: 
+msgid "Prusa i3 MK3S OK."
+msgstr ""
+
 # 
 #: 
 msgid "Prusa i3 MK2 ready."
 msgstr ""
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4953
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr ""
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2893
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr ""
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5782
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr ""
 
@@ -1191,37 +1251,37 @@ msgid "Resuming print"
 msgstr ""
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr ""
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4867
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
 msgstr ""
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4865
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
 msgstr ""
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4331
+#: ultralcd.cpp:4583
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr ""
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4781
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
 msgstr ""
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4779
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2650
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr ""
 
@@ -1231,27 +1291,27 @@ msgid "Searching bed calibration point"
 msgstr ""
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4874
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr ""
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6351
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr ""
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6184
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr ""
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4927
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr ""
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr ""
 
@@ -1261,22 +1321,22 @@ msgid "Selftest failed  "
 msgstr ""
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1520
+#: Marlin_main.cpp:1548
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr ""
 
 # 
-#: ultralcd.cpp:4551
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr ""
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr ""
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2901
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr ""
 
@@ -1286,12 +1346,22 @@ msgid "Settings"
 msgstr ""
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4948
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr ""
+
+# 
+#: 
+msgid "Sensors info"
+msgstr ""
+
+# 
+#: 
 msgid "Show pinda state"
 msgstr ""
 
@@ -1301,22 +1371,22 @@ msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting
 msgstr ""
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4791
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
 msgstr ""
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2687
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr ""
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
 msgstr ""
 
@@ -1331,7 +1401,7 @@ msgid "Sound      [loud]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr ""
 
@@ -1341,7 +1411,7 @@ msgid "Sound      [mute]"
 msgstr ""
 
 # 
-#: Marlin_main.cpp:4518
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr ""
 
@@ -1356,7 +1426,7 @@ msgid "Sound    [silent]"
 msgstr ""
 
 # MSG_SPEED
-#: ultralcd.cpp:5938
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr ""
 
@@ -1366,12 +1436,12 @@ msgid "Spinning"
 msgstr ""
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4023
+#: Marlin_main.cpp:4065
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr ""
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5849
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr ""
 
@@ -1386,12 +1456,12 @@ msgid "STOPPED. "
 msgstr ""
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr ""
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6857
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr ""
 
@@ -1401,22 +1471,22 @@ msgid "Temp. cal.          "
 msgstr ""
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4861
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
 msgstr ""
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4859
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
 msgstr ""
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4959
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr ""
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3526
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr ""
 
@@ -1426,12 +1496,12 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr ""
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4837
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr ""
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2189
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr ""
 
@@ -1441,35 +1511,45 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr ""
 
 # 
-#: ultralcd.cpp:2540
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2542
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr ""
 
 # MSG_TUNE
-#: ultralcd.cpp:5764
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5366
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr ""
 
 # 
-#: ultralcd.cpp:1931
+#: ultralcd.cpp:1994
 msgid "Total failures"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr ""
+
 # MSG_UNLOAD_FILAMENT c=17
 #: messages.c:91
 msgid "Unload filament"
@@ -1481,62 +1561,62 @@ msgid "Unloading filament"
 msgstr ""
 
 # 
-#: ultralcd.cpp:1965
+#: ultralcd.cpp:1961
 msgid "Total"
 msgstr ""
 
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr ""
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2192
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2166
+#: ultralcd.cpp:2249
 msgid "unknown"
 msgstr ""
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr ""
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3045
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
 msgstr ""
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3009
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
 msgstr ""
 
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1480
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr ""
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1472
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr ""
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1476
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr ""
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2977
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
 msgstr ""
 
@@ -1546,12 +1626,12 @@ msgid "Wiring error"
 msgstr ""
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr ""
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2182
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr ""
 
@@ -1571,97 +1651,97 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr ""
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3497
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr ""
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3494
+#: ultralcd.cpp:3712
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr ""
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3491
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr ""
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3475
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr ""
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3478
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr ""
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3481
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr ""
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr ""
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr ""
 
 # 
-#: ultralcd.cpp:3457
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr ""
 
 # 
-#: ultralcd.cpp:3463
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr ""
 
 # 
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr ""
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr ""
 
 # 
-#: ultralcd.cpp:3466
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr ""
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2647
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4634
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr ""
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5328
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr ""
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5331
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr ""
 

+ 311 - 231
lang/po/Firmware_cs.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: cs\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 30. lis 2018 18:46:46\n"
-"PO-Revision-Date: pá 30. lis 2018 18:46:46\n"
+"POT-Creation-Date: čt 7. úno 2019 14:43:00\n"
+"PO-Revision-Date: čt 7. úno 2019 14:43:00\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -26,27 +26,32 @@ msgid " of 9"
 msgstr " z 9"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2702
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "[0;0] odsazeni bodu"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3968
+#: ultralcd.cpp:4219
 msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode"
 msgstr "\x1b[2JCrash detekce muze\x1b[1;0Hbyt zapnuta pouze v\x1b[2;0HNormal modu"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3980
+#: ultralcd.cpp:4231
 msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 msgstr "\x1b[2JPOZOR:\x1b[1;0HCrash detekce\x1b[2;0Hdeaktivovana ve\x1b[3;0HStealth modu"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ""
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2831
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Dostavovani Z"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7074
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Vse OK "
 
@@ -56,32 +61,32 @@ msgid "All is done. Happy printing!"
 msgstr "Vse je hotovo."
 
 # 
-#: ultralcd.cpp:2026
+#: ultralcd.cpp:2109
 msgid "Ambient"
 msgstr ""
 
 # MSG_PRESS c=20
-#: ultralcd.cpp:2245
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "a stisknete tlacitko"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3120
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
 msgstr "Dojely oba Z voziky k~hornimu dorazu?"
 
 # MSG_AUTO_DEPLETE_ON c=17 r=1
-#: ultralcd.cpp:4707
+#: ultralcd.cpp:4959
 msgid "SpoolJoin    [on]"
 msgstr "SpoolJoin   [zap]"
 
 # 
-#: ultralcd.cpp:4703
+#: ultralcd.cpp:4955
 msgid "SpoolJoin   [N/A]"
 msgstr "SpoolJoin   [N/A]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4711
+#: ultralcd.cpp:4963
 msgid "SpoolJoin   [off]"
 msgstr "SpoolJoin   [vyp]"
 
@@ -91,32 +96,32 @@ msgid "Auto home"
 msgstr ""
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5836
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "AutoZavedeni fil."
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3995
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Automaticke zavadeni filamentu je dostupne pouze pri zapnutem filament senzoru..."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2439
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Automaticke zavadeni filamentu aktivni, stisknete tlacitko a vlozte filament..."
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Delka osy"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6849
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Osa"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6791
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Podlozka / Topeni"
 
@@ -131,7 +136,7 @@ msgid "Bed Heating"
 msgstr "Zahrivani bed"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr "Korekce podlozky"
 
@@ -141,12 +146,12 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr "Kalibrace Z selhala. Sensor nesepnul. Znecistena tryska? Cekam na reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4466
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 msgstr "Kalibrace Z selhala. Sensor je odpojeny nebo preruseny kabel. Cekam na reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4470
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Kalibrace Z selhala. Sensor sepnul prilis vysoko. Cekam na reset."
 
@@ -156,7 +161,7 @@ msgid "Bed"
 msgstr "Podlozka"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2052
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Stav remenu"
 
@@ -165,8 +170,13 @@ msgstr "Stav remenu"
 msgid "Blackout occurred. Recover print?"
 msgstr "Detekovan vypadek proudu.Obnovit tisk?"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr ""
+
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4934
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Kalibrace XYZ"
 
@@ -176,12 +186,12 @@ msgid "Calibrate Z"
 msgstr "Kalibrovat Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4176
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Zkalibrovat"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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."
 
@@ -191,12 +201,12 @@ msgid "Calibrating Z"
 msgstr "Kalibruji Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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."
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Kalibrace OK"
 
@@ -206,22 +216,22 @@ msgid "Calibration"
 msgstr "Kalibrace"
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Zrusit"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7425
+#: 
 msgid "Card inserted"
 msgstr "Karta vlozena"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7431
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "Karta vyjmuta"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Barva neni cista"
 
@@ -231,7 +241,7 @@ msgid "Cooldown"
 msgstr "Zchladit"
 
 # 
-#: ultralcd.cpp:4109
+#: ultralcd.cpp:4360
 msgid "Copy selected language?"
 msgstr "Kopirovat vybrany jazyk?"
 
@@ -256,27 +266,27 @@ msgid "Crash detected."
 msgstr "Detekovan naraz."
 
 # 
-#: Marlin_main.cpp:603
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Detekovan naraz. Obnovit tisk?"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Crash"
 msgstr ""
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5085
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Pouze aktualni"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2152
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Datum:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4841
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Vypnout motory"
 
@@ -286,77 +296,77 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr "Neni zkalibrovana vzdalenost trysky od tiskove podlozky. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Nastaveni prvni vrstvy."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4576
+#: ultralcd.cpp:4828
 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?"
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "Korekce E"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5825
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr "Vysunout filament"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr "Vysunout filament 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Vysunout filament 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Vysunout filament 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Vysunout filament 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5356
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Vysunout filament 5"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Vysunout"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1128
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr "Vysouvam filament"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6815
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr "Kon. spinac nesepnut"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6809
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr "Koncovy spinac"
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6797
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr "Konc. spinace"
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5871
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
 msgstr "Chyba - Doslo k prepisu staticke pameti!"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte zapojeni."
 
@@ -366,37 +376,37 @@ msgid "ERROR:"
 msgstr "CHYBA:"
 
 # 
-#: Marlin_main.cpp:984
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "Externi SPI flash W25X20CL neodpovida."
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5385
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7083
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Levy vent.:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2183
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr ""
 
@@ -405,8 +415,13 @@ msgstr ""
 msgid "Extruder"
 msgstr ""
 
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr ""
+
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4675
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
 msgstr "F. autozav. [zap]"
 
@@ -416,12 +431,12 @@ msgid "F. autoload [N/A]"
 msgstr "F. autozav. [N/A]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4677
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
 msgstr "F. autozav. [vyp]"
 
 # 
-#: ultralcd.cpp:5853
+#: ultralcd.cpp:6112
 msgid "Fail stats"
 msgstr ""
 
@@ -436,12 +451,12 @@ msgid "Fan test"
 msgstr "Test ventilatoru"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4848
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
 msgstr "Kontr. vent.[zap]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4850
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
 msgstr "Kontr. vent.[vyp]"
 
@@ -451,12 +466,12 @@ msgid "Fil. sensor  [on]"
 msgstr "Fil. senzor [zap]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3104
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "Senzor nerozpoznal filament, vypnout?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4655
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
 msgstr "Fil. senzor [N/A]"
 
@@ -466,7 +481,7 @@ msgid "Fil. sensor [off]"
 msgstr "Fil. senzor [vyp]"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Filam. runouts"
 msgstr ""
 
@@ -476,32 +491,32 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament vytlacen a spravne barvy?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Filament nezaveden"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6863
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Senzor filamentu"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7092
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Senzor filamentu:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2513
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr "Spotrebovano filamentu"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2515
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Cas tisku"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7209
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
 msgstr "Soubor nekompletni. Pokracovat?"
 
@@ -511,27 +526,27 @@ msgid "Finishing movements"
 msgstr "Dokoncovani pohybu"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4925
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Kal. prvni vrstvy"
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4488
+#: ultralcd.cpp:4740
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Nejdriv pomoci selftestu zkontoluji nejcastejsi chyby vznikajici pri sestaveni tiskarny."
 
 # 
-#: mmu.cpp:436
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
 msgstr "Opravte chybu a pote stisknete tlacitko na jednotce MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5944
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Prutok"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2145
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr ""
 
@@ -541,22 +556,22 @@ msgid "Front print fan?"
 msgstr "Predni tiskovy vent?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Vpredu [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Predni/levy vent."
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Topeni/Termistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7400
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr "Zahrivani preruseno bezpecnostnim casovacem."
 
@@ -571,17 +586,17 @@ msgid "Heating"
 msgstr "Zahrivani"
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4467
+#: ultralcd.cpp:4719
 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?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2146
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5832
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Zmenit extruder"
 
@@ -591,12 +606,12 @@ msgid "Change filament"
 msgstr "Vymenit filament"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2256
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Zmena uspesna!"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Vymena ok?"
 
@@ -606,12 +621,12 @@ msgid "Checking bed     "
 msgstr "Kontrola podlozky"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Kontrola endstopu"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Kontrola hotend "
 
@@ -621,17 +636,17 @@ msgid "Checking sensors "
 msgstr "Kontrola senzoru"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Kontrola osy X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7068
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Kontrola osy Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7069
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Kontrola osy Z"
 
@@ -651,17 +666,17 @@ msgid "Filament"
 msgstr ""
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4497
+#: ultralcd.cpp:4749
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Nyni provedu xyz kalibraci. Zabere to priblizne 12 min."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4505
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr "Nyni provedu z kalibraci."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr "Zacnu tisknout linku a Vy budete postupne snizovat trysku otacenim tlacitka dokud nedosahnete optimalni vysky. Prohlednete si obrazky v nasi prirucce v kapitole Kalibrace."
 
@@ -696,27 +711,27 @@ msgid "Insert filament into extruder 4. Click when done."
 msgstr "Vlozte filament do extruderu 4. Potvrdte tlacitkem."
 
 # 
-#: ultralcd.cpp:4530
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
 msgstr "Je filament 1 zaveden?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2242
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Vlozte filament"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4533
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Je filament zaveden?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4564
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "Je to PLA filament?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4310
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "Je PLA filament zaveden?"
 
@@ -731,12 +746,12 @@ msgid "Iteration "
 msgstr "Iterace "
 
 # 
-#: ultralcd.cpp:1949
+#: ultralcd.cpp:1976
 msgid "Last print failures"
 msgstr ""
 
 # 
-#: ultralcd.cpp:1964
+#: ultralcd.cpp:1960
 msgid "Last print"
 msgstr ""
 
@@ -746,17 +761,17 @@ msgid "Left hotend fan?"
 msgstr "Levy vent na trysce?"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Vlevo:"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Vlevo [um]"
 
 # 
-#: ultralcd.cpp:4855
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr "Korekce lin."
 
@@ -771,7 +786,7 @@ msgid "Load filament"
 msgstr "Zavest filament"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2281
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Cisteni barvy"
 
@@ -781,12 +796,12 @@ msgid "Loading filament"
 msgstr "Zavadeni filamentu"
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6839
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Uvolnena remenicka"
 
 # 
-#: ultralcd.cpp:5824
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr "Zavest do trysky"
 
@@ -806,27 +821,42 @@ msgid "Measuring reference height of calibration point"
 msgstr "Merim referencni vysku kalibracniho bodu"
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4940
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
 msgstr ""
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:474
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Pokracuji v tisku..."
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:463
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Pokracuji v nahrivani..."
 
 # 
-#: ultralcd.cpp:2684
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Merene zkoseni"
 
+# 
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr ""
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr ""
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr ""
+
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:485
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Pokracuji..."
 
@@ -841,10 +871,15 @@ msgid "Mode     [silent]"
 msgstr "Mod       [tichy]"
 
 # 
-#: mmu.cpp:431
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "MMU potrebuje zasah uzivatele."
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr ""
+
 # MSG_STEALTH_MODE_ON
 #: messages.c:85
 msgid "Mode    [Stealth]"
@@ -861,7 +896,7 @@ msgid "Mode [high power]"
 msgstr "Mod  [vys. vykon]"
 
 # 
-#: ultralcd.cpp:2158
+#: ultralcd.cpp:2241
 msgid "MMU2 connected"
 msgstr ""
 
@@ -871,42 +906,47 @@ msgid "Motor"
 msgstr ""
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4839
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Posunout osu"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Posunout X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Posunout Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3915
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Posunout Z"
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Bez pohybu."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5804
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "Zadna SD karta"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr ""
+
 # MSG_NO
 #: messages.c:58
 msgid "No"
 msgstr "Ne"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6787
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "Nezapojeno "
 
@@ -926,12 +966,12 @@ msgid "Not spinning"
 msgstr "Netoci se"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4821
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Nyni zkalibruji vzdalenost mezi koncem trysky a povrchem podlozky."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4513
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Nyni predehreji trysku pro PLA."
 
@@ -941,42 +981,42 @@ msgid "Nozzle"
 msgstr "Tryska"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1488
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd."
 
 # 
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu."
 
 # 
-#: ultralcd.cpp:1880
+#: ultralcd.cpp:1919
 msgid "Nozzle FAN"
 msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5778
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr "Pozastavit tisk"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "PID kal. "
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "PID kal. ukoncena"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "PID kalibrace"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "Nahrivani PINDA"
 
@@ -986,7 +1026,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."
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4578
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr "Prosim ocistete podlozku a stisknete tlacitko."
 
@@ -996,7 +1036,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem."
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6779
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Zkontrolujte :"
 
@@ -1006,17 +1046,17 @@ 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."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4412
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr "Prosim vlozte PLA filament do extruderu, pote stisknete tlacitko pro zavedeni filamentu."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4315
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Nejdrive prosim zavedte PLA filament."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2988
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
 msgstr "Prosim otevrete idler a manualne odstrante filament."
 
@@ -1031,7 +1071,7 @@ msgid "Please press the knob to unload filament"
 msgstr "Pro vysunuti filamentu stisknete prosim tlacitko"
 
 # 
-#: ultralcd.cpp:4408
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Prosim vlozte PLA filament do trubicky MMU, pote stisknete tlacitko pro zavedeni filamentu."
 
@@ -1041,7 +1081,7 @@ msgid "Please pull out filament immediately"
 msgstr "Prosim vyjmete urychlene filament"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1136
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr "Prosim vyjmete filament a pote stisknete tlacitko."
 
@@ -1051,12 +1091,12 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Odstrante prosim tiskovy plat z podlozky."
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4010
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr "Nejprve spustte kalibraci XYZ."
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1082
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Prosim aktualizujte firmware ve vasi MMU2 jednotce. Cekam na reset."
 
@@ -1066,7 +1106,7 @@ msgid "Please wait"
 msgstr "Prosim cekejte"
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Nejprve prosim sundejte transportni soucastky."
 
@@ -1076,7 +1116,7 @@ msgid "Preheat the nozzle!"
 msgstr "Predehrejte trysku!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5767
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Predehrev"
 
@@ -1091,12 +1131,12 @@ msgid "Please upgrade."
 msgstr "Prosim aktualizujte."
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9054
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko."
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Power failures"
 msgstr ""
 
@@ -1105,8 +1145,18 @@ msgstr ""
 msgid "Print aborted"
 msgstr "Tisk prerusen"
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr ""
+
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7086
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Tiskovy vent.:"
 
@@ -1115,13 +1165,18 @@ msgstr "Tiskovy vent.:"
 msgid "Print from SD"
 msgstr "Tisk z SD"
 
+# 
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr ""
+
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Tisk pozastaven"
 
 # 
-#: mmu.cpp:435
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Pro pokracovani nahrivani trysky stisknete tlacitko."
 
@@ -1131,7 +1186,7 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi
 msgstr "Tiskarna nebyla jeste zkalibrovana. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Postup kalibrace."
 
 # 
-#: ultralcd.cpp:1882
+#: ultralcd.cpp:1921
 msgid "Print FAN"
 msgstr ""
 
@@ -1146,42 +1201,47 @@ msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 ok."
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2144
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Vzadu [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8481
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr "Obnovovani tisku "
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:535
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho."
 
+# 
+#: 
+msgid "Prusa i3 MK3S OK."
+msgstr ""
+
 # 
 #: 
 msgid "Prusa i3 MK2 ready."
 msgstr "Prusa i3 MK2 ok."
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4953
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr "Reset XYZ kalibr."
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2893
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr ""
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5782
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Pokracovat"
 
@@ -1191,37 +1251,37 @@ msgid "Resuming print"
 msgstr "Obnoveni tisku"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Vpravo [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4867
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
 msgstr "RPi port    [zap]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4865
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
 msgstr "RPi port    [vyp]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4331
+#: ultralcd.cpp:4583
 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?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4781
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
 msgstr "SD card  [normal]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4779
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
 msgstr "SD card [FlshAir]"
 
 # 
-#: ultralcd.cpp:2650
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Vpravo"
 
@@ -1231,27 +1291,27 @@ msgid "Searching bed calibration point"
 msgstr "Hledam kalibracni bod podlozky"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4874
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Vyber jazyka"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6351
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr ""
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6184
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Self test start "
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4927
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Selftest "
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Chyba Selftestu!"
 
@@ -1261,22 +1321,22 @@ msgid "Selftest failed  "
 msgstr "Selftest selhal "
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1520
+#: Marlin_main.cpp:1548
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest."
 
 # 
-#: ultralcd.cpp:4551
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu."
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "Vyberte PLA filament:"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2901
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Nastavte teplotu:"
 
@@ -1286,12 +1346,22 @@ msgid "Settings"
 msgstr "Nastaveni"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Stav konc. spin."
 
 # 
-#: ultralcd.cpp:4948
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr ""
+
+# 
+#: 
+msgid "Sensors info"
+msgstr ""
+
+# 
+#: 
 msgid "Show pinda state"
 msgstr "Zobrazit stav PINDA"
 
@@ -1301,22 +1371,22 @@ msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting
 msgstr "Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100."
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4791
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
 msgstr "Trideni   [Zadne]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
 msgstr "Trideni:    [cas]"
 
 # 
-#: ultralcd.cpp:2687
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr "Tezke zkoseni"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
 msgstr "Trideni [Abeceda]"
 
@@ -1331,7 +1401,7 @@ msgid "Sound      [loud]"
 msgstr "Zvuk    [hlasity]"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Lehke zkoseni"
 
@@ -1341,7 +1411,7 @@ msgid "Sound      [mute]"
 msgstr "Zvuk    [vypnuto]"
 
 # 
-#: Marlin_main.cpp:4518
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Vyskytl se problem, srovnavam osu Z ..."
 
@@ -1356,7 +1426,7 @@ msgid "Sound    [silent]"
 msgstr "Zvuk      [tichy]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5938
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr "Rychlost"
 
@@ -1366,12 +1436,12 @@ msgid "Spinning"
 msgstr "Toci se"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4023
+#: Marlin_main.cpp:4065
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Je vyzadovana stabilni pokojova teplota 21-26C a pevna podlozka."
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5849
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Statistika "
 
@@ -1386,12 +1456,12 @@ msgid "STOPPED. "
 msgstr "ZASTAVENO."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr "Podpora"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6857
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Prohozene"
 
@@ -1401,22 +1471,22 @@ msgid "Temp. cal.          "
 msgstr "Tepl. kal. "
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4861
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
 msgstr "Tepl. kal.  [zap]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4859
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
 msgstr "Tepl. kal.  [vyp]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4959
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Teplot. kalibrace"
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3526
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr "Teplotni kalibrace selhala"
 
@@ -1426,12 +1496,12 @@ 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."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4837
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr "Teplota"
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2189
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr "Teploty"
 
@@ -1441,35 +1511,45 @@ 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."
 
 # 
-#: ultralcd.cpp:2540
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Filament celkem"
 
 # 
-#: ultralcd.cpp:2542
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr "Celkovy cas tisku"
 
 # MSG_TUNE
-#: ultralcd.cpp:5764
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Ladit"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Vysunout"
 
 # 
-#: ultralcd.cpp:5366
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Vyjmout vse"
 
 # 
-#: ultralcd.cpp:1931
+#: ultralcd.cpp:1994
 msgid "Total failures"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr ""
+
 # MSG_UNLOAD_FILAMENT c=17
 #: messages.c:91
 msgid "Unload filament"
@@ -1481,62 +1561,62 @@ msgid "Unloading filament"
 msgstr "Vysouvam filament"
 
 # 
-#: ultralcd.cpp:1965
+#: ultralcd.cpp:1961
 msgid "Total"
 msgstr ""
 
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Pouzite behem tisku"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2192
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Napeti"
 
 # 
-#: ultralcd.cpp:2166
+#: ultralcd.cpp:2249
 msgid "unknown"
 msgstr ""
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Ceka se na uzivatele..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3045
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Cekani na zchladnuti trysky a podlozky."
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3009
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
 msgstr "Cekani na zchladnuti PINDA"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
 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
-#: Marlin_main.cpp:1480
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Varovani: doslo ke zmene typu tiskarny a motherboardu."
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1472
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr "Varovani: doslo ke zmene typu motherboardu."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1476
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr "Varovani: doslo ke zmene typu tiskarny."
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2977
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
 msgstr "Bylo vysunuti filamentu uspesne?"
 
@@ -1546,12 +1626,12 @@ msgid "Wiring error"
 msgstr "Chyba zapojeni"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr "Pruvodce"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2182
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "Detaily XYZ kal."
 
@@ -1571,97 +1651,97 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Pruvodce muzete kdykoliv znovu spustit z menu Kalibrace -> Pruvodce"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3497
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3494
+#: ultralcd.cpp:3712
 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!"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "Korekce X"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3491
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Kalibrace XYZ v poradku. X/Y osy jsou kolme. Gratuluji!"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3475
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3478
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3481
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr "Kalibrace XYZ nepresna. Levy predni bod moc vpredu."
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Zavest vse"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Zavest filament 1"
 
 # 
-#: ultralcd.cpp:3457
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen."
 
 # 
-#: ultralcd.cpp:3463
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu."
 
 # 
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "Kalibrace XYZ selhala. Levy predni bod moc vpredu. Srovnejte tiskarnu."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Zavest filament 2"
 
 # 
-#: ultralcd.cpp:3466
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Zavest filament 3"
 
 # 
-#: ultralcd.cpp:2647
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Y vzdalenost od min"
 
 # 
-#: ultralcd.cpp:4634
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Korekce Y"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5328
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Zavest filament 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5331
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Zavest filament 5"
 

+ 311 - 231
lang/po/Firmware_de.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 30. lis 2018 18:48:22\n"
-"PO-Revision-Date: pá 30. lis 2018 18:48:22\n"
+"POT-Creation-Date: čt 7. úno 2019 14:44:19\n"
+"PO-Revision-Date: čt 7. úno 2019 14:44:19\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -26,27 +26,32 @@ msgid " of 9"
 msgstr " von 9"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2702
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "[0;0] Punktversatz"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3968
+#: ultralcd.cpp:4219
 msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode"
 msgstr "\x1b[2JCrash Erkennung kann\x1b[1;0Hnur im Modus Normal\x1b[2;0Hgenutzt werden"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3980
+#: ultralcd.cpp:4231
 msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 msgstr "\x1b[2JWARNUNG:\x1b[1;0HCrash Erkennung\x1b[2;0Hdeaktiviert im\x1b[3;0HStealth Modus"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ""
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2831
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Z wurde eingestellt"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7074
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Alles richtig "
 
@@ -56,32 +61,32 @@ msgid "All is done. Happy printing!"
 msgstr "Alles abgeschlossen. Viel Spass beim Drucken!"
 
 # 
-#: ultralcd.cpp:2026
+#: ultralcd.cpp:2109
 msgid "Ambient"
 msgstr ""
 
 # MSG_PRESS c=20
-#: ultralcd.cpp:2245
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "und Knopf druecken"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3120
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
 msgstr "Sind linke+rechte Z- Schlitten ganz oben?"
 
 # MSG_AUTO_DEPLETE_ON c=17 r=1
-#: ultralcd.cpp:4707
+#: ultralcd.cpp:4959
 msgid "SpoolJoin    [on]"
 msgstr "SpoolJoin    [an]"
 
 # 
-#: ultralcd.cpp:4703
+#: ultralcd.cpp:4955
 msgid "SpoolJoin   [N/A]"
 msgstr "SpoolJoin   [N/V]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4711
+#: ultralcd.cpp:4963
 msgid "SpoolJoin   [off]"
 msgstr "SpoolJoin   [aus]"
 
@@ -91,32 +96,32 @@ msgid "Auto home"
 msgstr "Startposition"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5836
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "Auto-Laden Filament"
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3995
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Automatisches Laden Filament nur bei einge schaltetem Filament- sensor verfuegbar..."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2439
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..."
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Achsenlaenge"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6849
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Achse"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6791
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Bett / Heizung"
 
@@ -131,7 +136,7 @@ msgid "Bed Heating"
 msgstr "Bett aufwaermen"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr "Ausgleich Bett ok"
 
@@ -141,12 +146,12 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr "Z-Kal. fehlgeschlg. Sensor nicht ausgeloest. Schmutzige Duese? Warte auf Reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4466
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 msgstr "Z-Kalibrierung fehl- geschlagen. Sensor getrennt/Kabelbruch? Warte auf Reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4470
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Z-Kalibrierung fehl- geschlagen. Sensor zu hoch ausgeloest. Warte auf Reset."
 
@@ -156,7 +161,7 @@ msgid "Bed"
 msgstr "Bett"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2052
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Gurtstatus"
 
@@ -165,8 +170,13 @@ msgstr "Gurtstatus"
 msgid "Blackout occurred. Recover print?"
 msgstr "Stromausfall! Druck wiederherstellen?"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr ""
+
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4934
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Kalibrierung XYZ"
 
@@ -176,12 +186,12 @@ msgid "Calibrate Z"
 msgstr "Kalibrierung Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4176
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Kalibrieren"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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."
 
@@ -191,12 +201,12 @@ msgid "Calibrating Z"
 msgstr "Kalibrierung Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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."
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Kalibrierung OK"
 
@@ -206,22 +216,22 @@ msgid "Calibration"
 msgstr "Kalibrierung"
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Abbruch"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7425
+#: 
 msgid "Card inserted"
 msgstr "SD Karte eingesetzt"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7431
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "SD Karte entfernt"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Falsche Farbe"
 
@@ -231,7 +241,7 @@ msgid "Cooldown"
 msgstr "Abkuehlen"
 
 # 
-#: ultralcd.cpp:4109
+#: ultralcd.cpp:4360
 msgid "Copy selected language?"
 msgstr "Gewaehlte Sprache kopieren?"
 
@@ -256,27 +266,27 @@ msgid "Crash detected."
 msgstr "Crash erkannt."
 
 # 
-#: Marlin_main.cpp:603
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Crash erkannt. Druck fortfuehren?"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Crash"
 msgstr ""
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5085
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Aktuelles"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2152
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Datum:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4841
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Motoren aus"
 
@@ -286,77 +296,77 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr "Der Abstand zwischen der Spitze der Duese und dem Bett ist noch nicht eingestellt. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Erste Schicht Kalibrierung."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4576
+#: ultralcd.cpp:4828
 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?"
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "E-Korrektur"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5825
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr "Filamentauswurf"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr "Filamentauswurf 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Fil.2 auswerfen"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Fil.3 auswerfen"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Fil.4 auswerfen"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5356
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Fil.5 auswerfen"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Auswurf"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1128
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr "werfe Filament aus"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6815
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr "Ende nicht getroffen"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6809
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr "Endanschlag"
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6797
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr "Endschalter"
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5871
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
 msgstr "Fehler - statischer Speicher wurde ueberschrieben"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen."
 
@@ -366,37 +376,37 @@ msgid "ERROR:"
 msgstr "FEHLER:"
 
 # 
-#: Marlin_main.cpp:984
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "Der externe SPI Flash W25X20CL antwortet nicht."
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5385
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7083
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Extruder Luefter:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2183
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr "Extruder Info"
 
@@ -405,8 +415,13 @@ msgstr "Extruder Info"
 msgid "Extruder"
 msgstr ""
 
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr ""
+
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4675
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
 msgstr "F.Autoladen  [an]"
 
@@ -416,12 +431,12 @@ msgid "F. autoload [N/A]"
 msgstr "F. Autoload  [nv]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4677
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
 msgstr "F. Autoload [aus]"
 
 # 
-#: ultralcd.cpp:5853
+#: ultralcd.cpp:6112
 msgid "Fail stats"
 msgstr ""
 
@@ -436,12 +451,12 @@ msgid "Fan test"
 msgstr "Lueftertest"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4848
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
 msgstr "Luefter Chk. [an]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4850
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
 msgstr "Luefter Chk.[aus]"
 
@@ -451,12 +466,12 @@ msgid "Fil. sensor  [on]"
 msgstr "Fil. Sensor  [an]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3104
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "Fil. Sensorsignal ist schlecht, ausschalten?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4655
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
 msgstr "Fil. Sensor  [nv]"
 
@@ -466,7 +481,7 @@ msgid "Fil. sensor [off]"
 msgstr "Fil. Sensor [aus]"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Filam. runouts"
 msgstr ""
 
@@ -476,32 +491,32 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament extrudiert + richtige Farbe?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Fil. nicht geladen"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6863
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Filamentsensor"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7092
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Filamentsensor:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2513
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr "Filament benutzt"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2515
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Druckzeit"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7209
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
 msgstr "Datei unvollstaendig Trotzdem fortfahren?"
 
@@ -511,27 +526,27 @@ msgid "Finishing movements"
 msgstr "Bewegung beenden"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4925
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Erste-Schicht Kal."
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4488
+#: ultralcd.cpp:4740
 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."
 
 # 
-#: mmu.cpp:436
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
 msgstr "Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5944
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Durchfluss"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2145
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr ""
 
@@ -541,22 +556,22 @@ msgid "Front print fan?"
 msgstr "Vorderer Luefter?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Vorne [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Vorderer/linke Luefter"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Heizung/Thermistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7400
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr "Heizung durch Sicherheitstimer deaktiviert."
 
@@ -571,17 +586,17 @@ msgid "Heating"
 msgstr "Aufwaermen"
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4467
+#: ultralcd.cpp:4719
 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?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2146
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5832
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Wechsel Extruder"
 
@@ -591,12 +606,12 @@ msgid "Change filament"
 msgstr "Filament-Wechsel"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2256
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Wechsel erfolgr.!"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Wechsel ok?"
 
@@ -606,12 +621,12 @@ msgid "Checking bed     "
 msgstr "Pruefe Bett "
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Pruefe Endschalter"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Pruefe Duese  "
 
@@ -621,17 +636,17 @@ msgid "Checking sensors "
 msgstr "Pruefe Sensoren "
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Pruefe X Achse "
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7068
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Pruefe Y Achse "
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7069
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Pruefe Z Achse "
 
@@ -651,17 +666,17 @@ msgid "Filament"
 msgstr ""
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4497
+#: ultralcd.cpp:4749
 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."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4505
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr "Ich werde jetzt die Z Kalibrierung durchfuehren."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr "Ich werde jetzt eine Linie drucken. Waehrend des Druckes koennen Sie die Duese allmaehlich senken, indem Sie den Knopf drehen, bis Sie die optimale Hoehe erreichen. Sehen Sie sich die Bilder in unserem Handbuch im Kapitel Kalibrierung an."
 
@@ -696,27 +711,27 @@ msgid "Insert filament into extruder 4. Click when done."
 msgstr "Filament in Extruder 4 einlegen. Klicken wenn fertig."
 
 # 
-#: ultralcd.cpp:4530
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
 msgstr "Wurde Filament 1 geladen?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2242
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Filament einlegen"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4533
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Ist das Filament geladen?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4564
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "Ist es wirklich PLA Filament?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4310
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "Ist PLA Filament geladen?"
 
@@ -731,12 +746,12 @@ msgid "Iteration "
 msgstr ""
 
 # 
-#: ultralcd.cpp:1949
+#: ultralcd.cpp:1976
 msgid "Last print failures"
 msgstr ""
 
 # 
-#: ultralcd.cpp:1964
+#: ultralcd.cpp:1960
 msgid "Last print"
 msgstr ""
 
@@ -746,17 +761,17 @@ msgid "Left hotend fan?"
 msgstr "Linker Luefter?"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Links"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Links [um]"
 
 # 
-#: ultralcd.cpp:4855
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr "Lineare Korrektur"
 
@@ -771,7 +786,7 @@ msgid "Load filament"
 msgstr "Filament laden"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2281
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Lade Farbe"
 
@@ -781,12 +796,12 @@ msgid "Loading filament"
 msgstr "Filament laedt"
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6839
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Lose Riemenscheibe"
 
 # 
-#: ultralcd.cpp:5824
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr "In Druckduese laden"
 
@@ -806,27 +821,42 @@ msgid "Measuring reference height of calibration point"
 msgstr "Messen der Referenzhoehe des Kalibrierpunktes"
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4940
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
 msgstr "Mesh Bett Ausgleich"
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:474
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Position    wiederherstellen... "
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:463
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Temperatur wiederherstellen..."
 
 # 
-#: ultralcd.cpp:2684
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Schraeglauf"
 
+# 
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr ""
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr ""
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr ""
+
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:485
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK.  Weiterdrucken..."
 
@@ -841,10 +871,15 @@ msgid "Mode     [silent]"
 msgstr "Modus     [leise]"
 
 # 
-#: mmu.cpp:431
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "MMU erfordert Benutzereingriff."
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr ""
+
 # MSG_STEALTH_MODE_ON
 #: messages.c:85
 msgid "Mode    [Stealth]"
@@ -861,7 +896,7 @@ msgid "Mode [high power]"
 msgstr "Modus[Hohe Leist]"
 
 # 
-#: ultralcd.cpp:2158
+#: ultralcd.cpp:2241
 msgid "MMU2 connected"
 msgstr ""
 
@@ -871,42 +906,47 @@ msgid "Motor"
 msgstr ""
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4839
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Achse bewegen"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Bewege X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Bewege Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3915
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Bewege Z"
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Keine Bewegung."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5804
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "Keine SD Karte"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr ""
+
 # MSG_NO
 #: messages.c:58
 msgid "No"
 msgstr "Nein"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6787
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "Nicht angeschlossen"
 
@@ -926,12 +966,12 @@ msgid "Not spinning"
 msgstr "Dreht sich nicht"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4821
 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."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4513
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Jetzt werde ich die Duese fuer PLA vorheizen."
 
@@ -941,42 +981,42 @@ msgid "Nozzle"
 msgstr "Duese"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1488
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Alte Einstellungen gefunden. Standard PID, E-Steps u.s.w. werden gesetzt."
 
 # 
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr "Testdruck jetzt von Stahlblech entfernen."
 
 # 
-#: ultralcd.cpp:1880
+#: ultralcd.cpp:1919
 msgid "Nozzle FAN"
 msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5778
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr "Druck pausieren"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "PID Kal.           "
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "PID Kalib. fertig"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "PID Kalibrierung"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "PINDA erwaermen"
 
@@ -986,7 +1026,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."
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4578
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf."
 
@@ -996,7 +1036,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber."
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6779
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Bitte pruefe:"
 
@@ -1006,17 +1046,17 @@ 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."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4412
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr "Legen Sie bitte PLA Filament in den Extruder und druecken Sie den Knopf,  um es zu laden."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4315
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Bitte laden Sie zuerst PLA Filament."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2988
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
 msgstr "Bitte Spannrolle oeffnen und Fila- ment von Hand entfernen"
 
@@ -1031,7 +1071,7 @@ msgid "Please press the knob to unload filament"
 msgstr "Bitte druecken Sie den Knopf um das Filament zu entladen."
 
 # 
-#: ultralcd.cpp:4408
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Legen Sie bitte PLA Filament in den ersten Schlauch der MMU und druecken Sie den Knopf,  um es zu laden."
 
@@ -1041,7 +1081,7 @@ msgid "Please pull out filament immediately"
 msgstr "Bitte ziehen Sie das Filament sofort heraus"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1136
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr "Bitte Filament entfernen und dann den Knopf druecken"
 
@@ -1051,12 +1091,12 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Bitte entfernen Sie das Stahlblech vom Heizbett."
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4010
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren."
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1082
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Bitte aktualisieren Sie die Firmware in der MMU2. Warte auf Reset."
 
@@ -1066,7 +1106,7 @@ msgid "Please wait"
 msgstr "Bitte warten"
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Bitte zuerst Transportsicherungen entfernen."
 
@@ -1076,7 +1116,7 @@ msgid "Preheat the nozzle!"
 msgstr "Duese vorheizen!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5767
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Vorheizen"
 
@@ -1091,12 +1131,12 @@ msgid "Please upgrade."
 msgstr "Bitte aktualisieren."
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9054
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Power failures"
 msgstr ""
 
@@ -1105,8 +1145,18 @@ msgstr ""
 msgid "Print aborted"
 msgstr "Druck abgebrochen"
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr ""
+
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7086
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Druckvent.:"
 
@@ -1115,13 +1165,18 @@ msgstr "Druckvent.:"
 msgid "Print from SD"
 msgstr "Drucken von SD"
 
+# 
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr ""
+
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Druck pausiert"
 
 # 
-#: mmu.cpp:435
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Druecken Sie den Knopf um die Duesentemperatur wiederherzustellen"
 
@@ -1131,7 +1186,7 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi
 msgstr "Drucker wurde noch nicht kalibriert. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrie- rungsablauf."
 
 # 
-#: ultralcd.cpp:1882
+#: ultralcd.cpp:1921
 msgid "Print FAN"
 msgstr ""
 
@@ -1146,42 +1201,47 @@ msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 bereit."
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2144
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Hinten [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8481
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr "Druck wiederherst    "
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:535
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr "Entfernen Sie das alte Filament und druecken Sie den Knopf, um das neue zu laden."
 
+# 
+#: 
+msgid "Prusa i3 MK3S OK."
+msgstr ""
+
 # 
 #: 
 msgid "Prusa i3 MK2 ready."
 msgstr "Prusa i3 MK2 bereit."
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4953
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr "XYZ Kalibr. zuruecksetzen."
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2893
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr "Ruecksetzen"
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5782
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Druck fortsetzen"
 
@@ -1191,37 +1251,37 @@ msgid "Resuming print"
 msgstr "Druck fortgesetzt"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Rechts [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4867
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
 msgstr "RPi Port     [an]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4865
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
 msgstr "RPi Port    [aus]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4331
+#: ultralcd.cpp:4583
 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?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4781
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
 msgstr "SD Karte [normal]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4779
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
 msgstr "SD Karte[flshAir]"
 
 # 
-#: ultralcd.cpp:2650
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Rechts"
 
@@ -1231,27 +1291,27 @@ msgid "Searching bed calibration point"
 msgstr "Suche Bett Kalibrierpunkt"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4874
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Waehle Sprache"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6351
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr "Selbsttest OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6184
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Selbsttest start "
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4927
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Selbsttest "
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Selbsttest Fehler!"
 
@@ -1261,22 +1321,22 @@ msgid "Selftest failed  "
 msgstr "Selbsttest misslung  "
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1520
+#: Marlin_main.cpp:1548
 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"
 
 # 
-#: ultralcd.cpp:4551
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht."
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "PLA Filament auswaehlen:"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2901
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Temp. einstellen:"
 
@@ -1286,12 +1346,22 @@ msgid "Settings"
 msgstr "Einstellungen"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Endschalter Status"
 
 # 
-#: ultralcd.cpp:4948
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr ""
+
+# 
+#: 
+msgid "Sensors info"
+msgstr ""
+
+# 
+#: 
 msgid "Show pinda state"
 msgstr "Pinda-Status anzeigen"
 
@@ -1301,22 +1371,22 @@ msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting
 msgstr "Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100."
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4791
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
 msgstr "Sort.:    [Keine]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
 msgstr "Sort.:     [Zeit]"
 
 # 
-#: ultralcd.cpp:2687
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr "Schwerer Schraeglauf"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
 msgstr "Sort.: [Alphabet]"
 
@@ -1331,7 +1401,7 @@ msgid "Sound      [loud]"
 msgstr "Sound      [laut]"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Leichter Schraeglauf"
 
@@ -1341,7 +1411,7 @@ msgid "Sound      [mute]"
 msgstr "Sound     [stumm]"
 
 # 
-#: Marlin_main.cpp:4518
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..."
 
@@ -1356,7 +1426,7 @@ msgid "Sound    [silent]"
 msgstr "Sound     [leise]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5938
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr "Geschwindigkeit"
 
@@ -1366,12 +1436,12 @@ msgid "Spinning"
 msgstr "Dreht sich"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4023
+#: Marlin_main.cpp:4065
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Stabile Umgebungs- temperatur 21-26C und feste Stand- flaeche erforderlich"
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5849
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Statistiken "
 
@@ -1386,12 +1456,12 @@ msgid "STOPPED. "
 msgstr "GESTOPPT. "
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr ""
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6857
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Ausgetauscht"
 
@@ -1401,22 +1471,22 @@ msgid "Temp. cal.          "
 msgstr "Temp Kalib. "
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4861
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
 msgstr "Temp. Kal.   [AN]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4859
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
 msgstr "Temp. Kal.  [AUS]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4959
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Temp. kalibrieren"
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3526
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr "Temperaturkalibrierung fehlgeschlagen"
 
@@ -1426,12 +1496,12 @@ 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."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4837
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr "Temperatur"
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2189
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr "Temperaturen"
 
@@ -1441,35 +1511,45 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Es ist noch notwendig die Z-Kalibrierung auszufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
 
 # 
-#: ultralcd.cpp:2540
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Gesamtes Filament"
 
 # 
-#: ultralcd.cpp:2542
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr "Gesamte Druckzeit"
 
 # MSG_TUNE
-#: ultralcd.cpp:5764
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Feineinstellung"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Entladen"
 
 # 
-#: ultralcd.cpp:5366
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Alles entladen"
 
 # 
-#: ultralcd.cpp:1931
+#: ultralcd.cpp:1994
 msgid "Total failures"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr ""
+
 # MSG_UNLOAD_FILAMENT c=17
 #: messages.c:91
 msgid "Unload filament"
@@ -1481,62 +1561,62 @@ msgid "Unloading filament"
 msgstr "Filament auswerfen"
 
 # 
-#: ultralcd.cpp:1965
+#: ultralcd.cpp:1961
 msgid "Total"
 msgstr ""
 
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Beim Druck benutzt"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2192
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Spannungen"
 
 # 
-#: ultralcd.cpp:2166
+#: ultralcd.cpp:2249
 msgid "unknown"
 msgstr ""
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Warte auf Benutzer.."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3045
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Warten bis Heizung und Bett abgekuehlt sind"
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3009
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
 msgstr "Warten, bis PINDA- Sonde abgekuehlt ist"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
 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
-#: Marlin_main.cpp:1480
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Warnung: Druckertyp und Platinentyp wurden beide geaendert."
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1472
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr "Warnung: Platinentyp wurde geaendert."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1476
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr "Warnung: Druckertyp wurde geaendert."
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2977
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
 msgstr "Konnten Sie das Filament entnehmen?"
 
@@ -1546,12 +1626,12 @@ msgid "Wiring error"
 msgstr "Verdrahtungsfehler"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr "Assistent"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2182
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "XYZ Kal. Details"
 
@@ -1571,97 +1651,97 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Sie koennen den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3497
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "XYZ Kalibrierung in Ordnung. Schraeglauf wird automatisch korrigiert."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3494
+#: ultralcd.cpp:3712
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg."
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "X-Korrektur"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3491
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glueckwunsch!"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3475
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichbar."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3478
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3481
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Linker vorderer Kalibrierpunkt nicht erreichbar."
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Alle laden"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Filament 1 laden"
 
 # 
-#: ultralcd.cpp:3457
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden."
 
 # 
-#: ultralcd.cpp:3463
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar."
 
 # 
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Linker vorderer Kalibrierpunkt nicht erreichbar."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Filament 2 laden"
 
 # 
-#: ultralcd.cpp:3466
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Filament 3 laden"
 
 # 
-#: ultralcd.cpp:2647
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Y Entfernung vom Min"
 
 # 
-#: ultralcd.cpp:4634
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Y-Korrektur"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5328
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Filament 4 laden"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5331
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Filament 5 laden"
 

+ 311 - 231
lang/po/Firmware_es.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 30. lis 2018 18:50:02\n"
-"PO-Revision-Date: pá 30. lis 2018 18:50:02\n"
+"POT-Creation-Date: čt 7. úno 2019 14:45:41\n"
+"PO-Revision-Date: čt 7. úno 2019 14:45:41\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -26,27 +26,32 @@ msgid " of 9"
 msgstr " de 9"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2702
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "[0;0] punto offset"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3968
+#: ultralcd.cpp:4219
 msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode"
 msgstr "\x1b[2JDec. choque\x1b[1;0Hpuede ser activada solo en\x1b[2;0HModo normal"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3980
+#: ultralcd.cpp:4231
 msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 msgstr "\x1b[2JATENCION:\x1b[1;0HDec. choque\x1b[2;0Hdesactivada en\x1b[3;0HModo silencio"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ""
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2831
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Ajustar Z"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7074
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Todo bien"
 
@@ -56,32 +61,32 @@ msgid "All is done. Happy printing!"
 msgstr "Terminado! Feliz impresion!"
 
 # 
-#: ultralcd.cpp:2026
+#: ultralcd.cpp:2109
 msgid "Ambient"
 msgstr ""
 
 # MSG_PRESS c=20
-#: ultralcd.cpp:2245
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "Haz clic"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3120
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
 msgstr "Carros Z izq./der. estan arriba maximo?"
 
 # MSG_AUTO_DEPLETE_ON c=17 r=1
-#: ultralcd.cpp:4707
+#: ultralcd.cpp:4959
 msgid "SpoolJoin    [on]"
 msgstr "SpoolJoin    [on]"
 
 # 
-#: ultralcd.cpp:4703
+#: ultralcd.cpp:4955
 msgid "SpoolJoin   [N/A]"
 msgstr "SpoolJoin   [N/A]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4711
+#: ultralcd.cpp:4963
 msgid "SpoolJoin   [off]"
 msgstr "SpoolJoin   [off]"
 
@@ -91,32 +96,32 @@ msgid "Auto home"
 msgstr "Llevar al origen"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5836
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "Carga automatica de filamento"
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3995
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "La carga automatica de filamento solo funciona si el sensor de filamento esta activado..."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2439
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "La carga automatica de filamento esta activada, pulse el dial e inserte el filamento..."
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Longitud del eje"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6849
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Eje"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6791
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Base / Calentador"
 
@@ -131,7 +136,7 @@ msgid "Bed Heating"
 msgstr "Calentando Base"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr "Corr. de la cama"
 
@@ -141,12 +146,12 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr "Nivelacion fallada. Sensor no funciona. Restos en boquilla? Esperando reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4466
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 msgstr "Nivelacion fallada. Sensor desconectado o cables danados. Esperando reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4470
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Nivelacion fallada. Sensor funciona demasiado pronto. Esperando reset."
 
@@ -156,7 +161,7 @@ msgid "Bed"
 msgstr "Base calefactable "
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2052
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Estado de la correa"
 
@@ -165,8 +170,13 @@ msgstr "Estado de la correa"
 msgid "Blackout occurred. Recover print?"
 msgstr "Se fue la luz. ?Reanudar la impresion?"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr ""
+
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4934
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Calibrar XYZ"
 
@@ -176,12 +186,12 @@ msgid "Calibrate Z"
 msgstr "Calibrar Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4176
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Calibrar"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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."
 
@@ -191,12 +201,12 @@ msgid "Calibrating Z"
 msgstr "Calibrando Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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."
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Calibracion OK"
 
@@ -206,22 +216,22 @@ msgid "Calibration"
 msgstr "Calibracion"
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Cancelar"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7425
+#: 
 msgid "Card inserted"
 msgstr "Tarjeta insertada"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7431
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "Tarjeta retirada"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Color no homogeneo"
 
@@ -231,7 +241,7 @@ msgid "Cooldown"
 msgstr "Enfriar"
 
 # 
-#: ultralcd.cpp:4109
+#: ultralcd.cpp:4360
 msgid "Copy selected language?"
 msgstr "Copiar idioma seleccionado?"
 
@@ -256,27 +266,27 @@ msgid "Crash detected."
 msgstr "Choque detectado."
 
 # 
-#: Marlin_main.cpp:603
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Choque detectado. Continuar impresion?"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Crash"
 msgstr ""
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5085
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Actual"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2152
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Fecha:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4841
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Apagar motores"
 
@@ -286,77 +296,77 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr "Distancia entre la punta del boquilla y la superficie de la base aun no fijada. Por favor siga el manual, capitulo Primeros Pasos, Calibracion primera capa."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4576
+#: ultralcd.cpp:4828
 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?"
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "E-correcion"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5825
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr "Expulsar filamento"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr "Expulsar filamento 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Expulsar filamento 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Expulsar filamento 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Expulsar filamento 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5356
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Expulsar filamento 5"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Expulsar"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1128
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr "Expulsando filamento"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6815
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr "Endstop no alcanzado"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6809
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr ""
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6797
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr ""
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5871
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
 msgstr "Error - se ha sobre-escrito la memoria estatica"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion."
 
@@ -366,37 +376,37 @@ msgid "ERROR:"
 msgstr ""
 
 # 
-#: Marlin_main.cpp:984
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "No responde el flasheo externo SPI W25X20CL"
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr "Extrusor 1"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr "Extrusor 2"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr "Extrusor 3"
 
 # 
-#: ultralcd.cpp:5385
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr "Extrusor 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7083
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Ventilador del extrusor:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2183
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr "Informacion del extrusor"
 
@@ -405,8 +415,13 @@ msgstr "Informacion del extrusor"
 msgid "Extruder"
 msgstr "Extruir"
 
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr ""
+
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4675
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
 msgstr "Autocarg.Fil[act]"
 
@@ -416,12 +431,12 @@ msgid "F. autoload [N/A]"
 msgstr "Autocarg.Fil[N/D]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4677
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
 msgstr "Autocarg.Fil[ina]"
 
 # 
-#: ultralcd.cpp:5853
+#: ultralcd.cpp:6112
 msgid "Fail stats"
 msgstr ""
 
@@ -436,12 +451,12 @@ msgid "Fan test"
 msgstr "Test ventiladores"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4848
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
 msgstr "Comprob.vent[act]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4850
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
 msgstr "Comprob.vent[ina]"
 
@@ -451,12 +466,12 @@ msgid "Fil. sensor  [on]"
 msgstr "Sensor Fil. [act]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3104
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "La respuesta del sensor de fil es deficiente, ?desactivarlo?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4655
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
 msgstr "Sensor Fil. [N/D]"
 
@@ -466,7 +481,7 @@ msgid "Fil. sensor [off]"
 msgstr "Sensor Fil. [ina]"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Filam. runouts"
 msgstr ""
 
@@ -476,32 +491,32 @@ msgid "Filament extruding & with correct color?"
 msgstr "Es nitido el color nuevo?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Fil. no introducido"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6863
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Sensor de filamento"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7092
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Sensor de filamento:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2513
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr "Filamento usado"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2515
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Tiempo de imp.:"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7209
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
 msgstr "Archivo incompleto. ?Continuar de todos modos?"
 
@@ -511,27 +526,27 @@ msgid "Finishing movements"
 msgstr "Term. movimientos"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4925
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Cal. primera cap."
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4488
+#: ultralcd.cpp:4740
 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."
 
 # 
-#: mmu.cpp:436
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
 msgstr "Corrige el problema y pulsa el boton en la unidad MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5944
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Flujo"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2145
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr ""
 
@@ -541,22 +556,22 @@ msgid "Front print fan?"
 msgstr "Vent. frontal?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Frontal [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Ventiladores frontal/izquierdo"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Calentador/Termistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7400
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr "Calentadores desactivados por el temporizador de seguridad."
 
@@ -571,17 +586,17 @@ msgid "Heating"
 msgstr "Calentando..."
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4467
+#: ultralcd.cpp:4719
 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?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2146
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5832
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Cambiar extrusor."
 
@@ -591,12 +606,12 @@ msgid "Change filament"
 msgstr "Cambiar filamento"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2256
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Cambio correcto"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Cambio correcto?"
 
@@ -606,12 +621,12 @@ msgid "Checking bed     "
 msgstr "Control base cal."
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Control endstops"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Control fusor"
 
@@ -621,17 +636,17 @@ msgid "Checking sensors "
 msgstr "Comprobando los sensores"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Control sensor X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7068
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Control sensor Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7069
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Control sensor Z"
 
@@ -651,17 +666,17 @@ msgid "Filament"
 msgstr "Filamento"
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4497
+#: ultralcd.cpp:4749
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Hare la calibracion XYZ. Tardara 12 min. aproximadamente."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4505
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr "Voy a hacer Calibracion Z ahora."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr "Voy a comenzar a imprimir la linea y tu bajaras el nozzle gradualmente al rotar el dial, hasta que llegues a la altura optima. Mira las imagenes del capitulo Calibracion en el manual."
 
@@ -696,27 +711,27 @@ msgid "Insert filament into extruder 4. Click when done."
 msgstr "Insertar filamento en el extrusor 4. Haz clic una vez terminado."
 
 # 
-#: ultralcd.cpp:4530
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
 msgstr "?Esta cargado el filamento 1?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2242
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Introducir filamento"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4533
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Esta el filamento cargado?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4564
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "Es el filamento PLA?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4310
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "Esta el filamento PLA cargado?"
 
@@ -731,12 +746,12 @@ msgid "Iteration "
 msgstr "Reiteracion "
 
 # 
-#: ultralcd.cpp:1949
+#: ultralcd.cpp:1976
 msgid "Last print failures"
 msgstr ""
 
 # 
-#: ultralcd.cpp:1964
+#: ultralcd.cpp:1960
 msgid "Last print"
 msgstr ""
 
@@ -746,17 +761,17 @@ msgid "Left hotend fan?"
 msgstr "Vent. izquierdo?"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Izquierda"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Izquierda [um]"
 
 # 
-#: ultralcd.cpp:4855
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr "Correccion de Linealidad"
 
@@ -771,7 +786,7 @@ msgid "Load filament"
 msgstr "Introducir filam."
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2281
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Cambiando color"
 
@@ -781,12 +796,12 @@ msgid "Loading filament"
 msgstr "Introduciendo filam."
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6839
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Polea suelta"
 
 # 
-#: ultralcd.cpp:5824
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr "Cargar a la boquilla"
 
@@ -806,27 +821,42 @@ msgid "Measuring reference height of calibration point"
 msgstr "Midiendo altura del punto de calibracion"
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4940
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
 msgstr "Nivelacion Mesh Level"
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:474
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Restaurando posicion..."
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:463
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Restaurando temperatura..."
 
 # 
-#: ultralcd.cpp:2684
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Desviacion medida:"
 
+# 
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr ""
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr ""
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr ""
+
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:485
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Resumiendo..."
 
@@ -841,10 +871,15 @@ msgid "Mode     [silent]"
 msgstr "Modo   [silencio]"
 
 # 
-#: mmu.cpp:431
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "MMU necesita atencion del usuario."
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr ""
+
 # MSG_STEALTH_MODE_ON
 #: messages.c:85
 msgid "Mode    [Stealth]"
@@ -861,7 +896,7 @@ msgid "Mode [high power]"
 msgstr "Modo [rend.pleno]"
 
 # 
-#: ultralcd.cpp:2158
+#: ultralcd.cpp:2241
 msgid "MMU2 connected"
 msgstr ""
 
@@ -871,42 +906,47 @@ msgid "Motor"
 msgstr ""
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4839
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Mover ejes"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Mover X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Mover Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3915
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Mover Z"
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Sin movimiento"
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5804
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "No hay tarjeta SD"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr ""
+
 # MSG_NO
 #: messages.c:58
 msgid "No"
 msgstr ""
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6787
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "No hay conexion "
 
@@ -926,12 +966,12 @@ msgid "Not spinning"
 msgstr "Ventilador no gira"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4821
 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."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4513
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Voy a precalentar la boquilla para PLA ahora."
 
@@ -941,42 +981,42 @@ msgid "Nozzle"
 msgstr "Boquilla"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1488
+#: Marlin_main.cpp:1516
 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"
 
 # 
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr "Ahora retira la prueba de la lamina de acero."
 
 # 
-#: ultralcd.cpp:1880
+#: ultralcd.cpp:1919
 msgid "Nozzle FAN"
 msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5778
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr "Pausar impresion"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "Cal. PID "
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "Cal. PID terminada"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "Calibracion PID"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "Calentando PINDA"
 
@@ -986,7 +1026,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."
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4578
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr "Limpia la superficie de la base, por favor, y haz clic"
 
@@ -996,7 +1036,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Limpia boquilla para calibracion. Click cuando acabes."
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6779
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Controla :"
 
@@ -1006,17 +1046,17 @@ 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"
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4412
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr "Inserta, por favor, filamento PLA en el extrusor. Despues haz clic para cargarlo."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4315
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Carga el filamento PLA primero por favor."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2988
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
 msgstr "Por favor abate el rodillo de empuje (idler) y retira el filamento manualmente."
 
@@ -1031,7 +1071,7 @@ msgid "Please press the knob to unload filament"
 msgstr "Por favor, pulsa el dial para descargar el filamento"
 
 # 
-#: ultralcd.cpp:4408
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Por favor introduce el filamento al primer tubo MMU, despues presiona el dial para imprimirlo."
 
@@ -1041,7 +1081,7 @@ msgid "Please pull out filament immediately"
 msgstr "Por favor retire el filamento de inmediato"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1136
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr "Por favor quite el filamento y luego presione el dial."
 
@@ -1051,12 +1091,12 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Por favor retire la chapa de acero de la base calefactable."
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4010
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr "Por favor realiza la calibracion XYZ primero."
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1082
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Por favor actualice el firmware en tu MMU2. Esperando el reseteo."
 
@@ -1066,7 +1106,7 @@ msgid "Please wait"
 msgstr "Por Favor Espere"
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Por favor retira los soportes de envio primero."
 
@@ -1076,7 +1116,7 @@ msgid "Preheat the nozzle!"
 msgstr "Precalienta extrusor!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5767
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Precalentar"
 
@@ -1091,12 +1131,12 @@ msgid "Please upgrade."
 msgstr "Actualize por favor"
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9054
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Pulsa el dial para precalentar la boquilla y continue."
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Power failures"
 msgstr ""
 
@@ -1105,8 +1145,18 @@ msgstr ""
 msgid "Print aborted"
 msgstr "Impresion cancelada"
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr ""
+
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7086
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Ventilador del fusor:"
 
@@ -1115,13 +1165,18 @@ msgstr "Ventilador del fusor:"
 msgid "Print from SD"
 msgstr "Menu tarjeta SD"
 
+# 
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr ""
+
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Impresion en pausa"
 
 # 
-#: mmu.cpp:435
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Presiona el dial para continuar con la temperatura de la boquilla."
 
@@ -1131,7 +1186,7 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi
 msgstr "Impresora no esta calibrada todavia. Por favor usa el manual capitulo Primeros pasos Calibracion flujo."
 
 # 
-#: ultralcd.cpp:1882
+#: ultralcd.cpp:1921
 msgid "Print FAN"
 msgstr ""
 
@@ -1146,42 +1201,47 @@ msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 prep."
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2144
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr "prusa3d.es"
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Trasera [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8481
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr "Recuperando impresion"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:535
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr "Retire el filamento viejo y presione el dial para comenzar a cargar el nuevo filamento."
 
+# 
+#: 
+msgid "Prusa i3 MK3S OK."
+msgstr ""
+
 # 
 #: 
 msgid "Prusa i3 MK2 ready."
 msgstr "Preparado para i3 MK2."
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4953
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr ""
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2893
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr ""
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5782
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Reanudar impres."
 
@@ -1191,37 +1251,37 @@ msgid "Resuming print"
 msgstr "Resumiendo impresion"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Derecha [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4867
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
 msgstr "Puerto RPi  [act]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4865
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
 msgstr "Puerto RPi  [ina]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4331
+#: ultralcd.cpp:4583
 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?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4781
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
 msgstr "Tarj. SD [normal]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4779
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
 msgstr "Tarj. SD[FlshAir]"
 
 # 
-#: ultralcd.cpp:2650
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Derecha"
 
@@ -1231,27 +1291,27 @@ msgid "Searching bed calibration point"
 msgstr "Buscando punto de calibracion base"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4874
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Cambiar el idioma"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6351
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr ""
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6184
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Iniciar Selftest"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4927
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Selftest"
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Error Selftest !"
 
@@ -1261,22 +1321,22 @@ msgid "Selftest failed  "
 msgstr "Fallo Selftest"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1520
+#: Marlin_main.cpp:1548
 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."
 
 # 
-#: ultralcd.cpp:4551
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selecciona la temperatura para precalentar la boquilla que se ajuste a tu material. "
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "Seleccionar filamento PLA:"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2901
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Establecer temp.:"
 
@@ -1286,12 +1346,22 @@ msgid "Settings"
 msgstr "Configuracion"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Mostrar endstops"
 
 # 
-#: ultralcd.cpp:4948
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr ""
+
+# 
+#: 
+msgid "Sensors info"
+msgstr ""
+
+# 
+#: 
 msgid "Show pinda state"
 msgstr "Mostrar estado pinda"
 
@@ -1301,22 +1371,22 @@ msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting
 msgstr "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. "
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4791
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
 msgstr "Ordenar:   [nada]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
 msgstr "Orden:    [Fecha]"
 
 # 
-#: ultralcd.cpp:2687
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr "Inclinacion severa"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
 msgstr "Ordenar:[alfabet]"
 
@@ -1331,7 +1401,7 @@ msgid "Sound      [loud]"
 msgstr "Sonido     [alto]"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Ligeramente inclinado"
 
@@ -1341,7 +1411,7 @@ msgid "Sound      [mute]"
 msgstr "Sonido[silenciad]"
 
 # 
-#: Marlin_main.cpp:4518
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Problema encontrado, nivelacion Z forzosa ..."
 
@@ -1356,7 +1426,7 @@ msgid "Sound    [silent]"
 msgstr "Sonido[silencios]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5938
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr "Velocidad"
 
@@ -1366,12 +1436,12 @@ msgid "Spinning"
 msgstr "Ventilador girando"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4023
+#: Marlin_main.cpp:4065
 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."
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5849
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Estadisticas "
 
@@ -1386,12 +1456,12 @@ msgid "STOPPED. "
 msgstr "PARADA"
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr "Soporte"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6857
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Intercambiado"
 
@@ -1401,22 +1471,22 @@ msgid "Temp. cal.          "
 msgstr "Cal. temp. "
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4861
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
 msgstr "Cal. temp.   [ON]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4859
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
 msgstr "Cal. temp.  [OFF]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4959
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Calibracion temp."
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3526
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr "Fallo de la calibracion de temperatura"
 
@@ -1426,12 +1496,12 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "Calibracion temperatura terminada. Haz clic para continuar."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4837
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr "Temperatura"
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2189
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr "Temperaturas"
 
@@ -1441,35 +1511,45 @@ 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."
 
 # 
-#: ultralcd.cpp:2540
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Filamento total:"
 
 # 
-#: ultralcd.cpp:2542
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr "Tiempo total :"
 
 # MSG_TUNE
-#: ultralcd.cpp:5764
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Ajustar"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Descargar"
 
 # 
-#: ultralcd.cpp:5366
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Soltar todos fil."
 
 # 
-#: ultralcd.cpp:1931
+#: ultralcd.cpp:1994
 msgid "Total failures"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr ""
+
 # MSG_UNLOAD_FILAMENT c=17
 #: messages.c:91
 msgid "Unload filament"
@@ -1481,62 +1561,62 @@ msgid "Unloading filament"
 msgstr "Soltando filamento"
 
 # 
-#: ultralcd.cpp:1965
+#: ultralcd.cpp:1961
 msgid "Total"
 msgstr ""
 
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Usado en impresion"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2192
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Voltajes"
 
 # 
-#: ultralcd.cpp:2166
+#: ultralcd.cpp:2249
 msgid "unknown"
 msgstr ""
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Esperando ordenes"
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3045
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Esperando enfriamiento de la base y extrusor."
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3009
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
 msgstr "Esperando a que se enfrie la sonda PINDA"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
 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
-#: Marlin_main.cpp:1480
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Aviso: tanto el tipo de impresora como el tipo de la placa han cambiado."
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1472
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr "Cuidado: el tipo de placa ha cambiado."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1476
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr "Cuidado: Ha cambiado el tipo de impresora."
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2977
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
 msgstr "?Se cargocon exito el filamento?"
 
@@ -1546,12 +1626,12 @@ msgid "Wiring error"
 msgstr "Error de conexion"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr ""
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2182
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "Detalles de calibracion XYZ"
 
@@ -1571,97 +1651,97 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Siempre puedes acceder al asistente desde Calibracion -> Wizard"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3497
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Calibracion XYZ correcta. La inclinacion se corregira automaticamente."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3494
+#: ultralcd.cpp:3712
 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!"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "X-correcion"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3491
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibracion XYZ ok. Ejes X/Y perpendiculares. Enhorabuena!"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3475
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3478
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3481
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr "Calibrazion XYZ comprometida. Punto frontal izquierdo no alcanzable."
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Intr. todos fil."
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Introducir fil. 1"
 
 # 
-#: ultralcd.cpp:3457
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados."
 
 # 
-#: ultralcd.cpp:3463
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables."
 
 # 
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "Calibracion XYZ fallada. Punto frontal izquierdo no alcanzable."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Introducir fil. 2"
 
 # 
-#: ultralcd.cpp:3466
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Introducir fil. 3"
 
 # 
-#: ultralcd.cpp:2647
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Distancia en Y desde el min"
 
 # 
-#: ultralcd.cpp:4634
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Y-correcion"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5328
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Introducir fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5331
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Cargar filamento 5"
 

+ 311 - 231
lang/po/Firmware_fr.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fr\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 30. lis 2018 18:51:36\n"
-"PO-Revision-Date: pá 30. lis 2018 18:51:36\n"
+"POT-Creation-Date: �t 7. úno 2019 14:47:01\n"
+"PO-Revision-Date: �t 7. úno 2019 14:47:01\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -26,27 +26,32 @@ msgid " of 9"
 msgstr "de 9"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2702
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "Offset point [0;0]"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3968
+#: ultralcd.cpp:4219
 msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode"
 msgstr "\x1b[2JLa detection de crash\x1b[1;0Hpeut etre active\x1b[2;0Hqu'en mode Normal"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3980
+#: ultralcd.cpp:4231
 msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 msgstr "\x1b[2JATTENTION :\x1b[1;0H Detection de crash\x1b[2;0H desactivee en mode\x1b[3;0H Furtif"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ""
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2831
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Ajustement de Z"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7074
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Tout est correct"
 
@@ -56,32 +61,32 @@ msgid "All is done. Happy printing!"
 msgstr "Tout est termine. Bonne impression !"
 
 # 
-#: ultralcd.cpp:2026
+#: ultralcd.cpp:2109
 msgid "Ambient"
 msgstr "Ambiant"
 
 # MSG_PRESS c=20
-#: ultralcd.cpp:2245
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "et pressez le bouton"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3120
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
 msgstr "Chariots Z gauche et droite tout en haut?"
 
 # MSG_AUTO_DEPLETE_ON c=17 r=1
-#: ultralcd.cpp:4707
+#: ultralcd.cpp:4959
 msgid "SpoolJoin    [on]"
 msgstr "SpoolJoin    [on]"
 
 # 
-#: ultralcd.cpp:4703
+#: ultralcd.cpp:4955
 msgid "SpoolJoin   [N/A]"
 msgstr "SpoolJoin   [N/A]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4711
+#: ultralcd.cpp:4963
 msgid "SpoolJoin   [off]"
 msgstr "SpoolJoin   [off]"
 
@@ -91,32 +96,32 @@ msgid "Auto home"
 msgstr "Mise a 0 des axes"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5836
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "AutoCharge du filament"
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3995
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "AutoCharge du filament uniquement si le capteur de filament est active."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2439
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "AutoCharge actif, appuyez sur le bouton et inserez le filament."
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Longueur de l'axe"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6849
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Axe"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6791
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Lit / Chauffage"
 
@@ -131,7 +136,7 @@ msgid "Bed Heating"
 msgstr "Chauffe du lit"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr "Cor courbure du lit"
 
@@ -141,12 +146,12 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr "Echec du nivellement. Capt. non declenche. Debris sur buse ? En attente d'un reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4466
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 msgstr "Echec du nivellement. Capteur deconnecte ou cable casse. En attente d'un reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4470
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Echec du nivellement. Capt. declenche trop trop haut. En attente d'un reset."
 
@@ -156,7 +161,7 @@ msgid "Bed"
 msgstr "Lit"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2052
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Statut courroie"
 
@@ -165,8 +170,13 @@ msgstr "Statut courroie"
 msgid "Blackout occurred. Recover print?"
 msgstr "Coupure detectee. Recup. impression ?"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr ""
+
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4934
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Calibrer XYZ"
 
@@ -176,12 +186,12 @@ msgid "Calibrate Z"
 msgstr "Calibrer Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4176
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Calibrer"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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 monter le chariot de l'axe Z jusqu'aux butees. Cliquez une fois fait."
 
@@ -191,12 +201,12 @@ msgid "Calibrating Z"
 msgstr "Calibration de Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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 monter le chariot de l'axe Z jusqu'aux butees. Cliquez une fois fait."
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Calibration terminee"
 
@@ -206,22 +216,22 @@ msgid "Calibration"
 msgstr "Calibration"
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Annuler"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7425
+#: 
 msgid "Card inserted"
 msgstr "Carte  inseree"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7431
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "Carte retiree"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Couleur incorrecte"
 
@@ -231,7 +241,7 @@ msgid "Cooldown"
 msgstr "Refroidissement"
 
 # 
-#: ultralcd.cpp:4109
+#: ultralcd.cpp:4360
 msgid "Copy selected language?"
 msgstr "Copier la langue selectionne?"
 
@@ -256,27 +266,27 @@ msgid "Crash detected."
 msgstr "Crash detecte."
 
 # 
-#: Marlin_main.cpp:603
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Crash detecte. Poursuivre l'impression ?"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Crash"
 msgstr "Colision"
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5085
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Actuel"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2152
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Date :"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4841
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Desactiver moteurs"
 
@@ -286,77 +296,77 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr "La distance entre la pointe de la buse et la surface du lit n'a pas encore ete reglee. Suivez le manuel, chapitre Premiers pas, section Calibration de la premiere couche."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4576
+#: ultralcd.cpp:4828
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr "Voulez-vous repeter la derniere etape pour reajuster la distance entre la buse et le lit chauffant ?"
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "Correct-E"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5825
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr "Ejecter le fil"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr "Ejecter fil. 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Ejecter fil. 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Ejecter fil. 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Ejecter fil. 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5356
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Ejecter fil. 5"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Ejecter"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1128
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr "Filament en cours d'ejection"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6815
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr "Butee non atteinte"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6809
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr "Butee"
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6797
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr "Butees"
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5871
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
 msgstr "Erreur - la memoire statique a ete ecrasee"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "ERREUR : Le capteur de filament ne repond pas, verifiez la connexion."
 
@@ -366,37 +376,37 @@ msgid "ERROR:"
 msgstr "ERREUR :"
 
 # 
-#: Marlin_main.cpp:984
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "La Flash SPI externe W25X20CL ne repond pas."
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr "Extrudeur 1"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr "Extrudeur 2"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr "Extrudeur 3"
 
 # 
-#: ultralcd.cpp:5385
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr "Extrudeur 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7083
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Ventilo extrudeur:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2183
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr "Infos extrudeur"
 
@@ -405,8 +415,13 @@ msgstr "Infos extrudeur"
 msgid "Extruder"
 msgstr "Extrudeur"
 
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr ""
+
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4675
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
 msgstr "AutoCharg F  [on]"
 
@@ -416,12 +431,12 @@ msgid "F. autoload [N/A]"
 msgstr "AutoCharg F [N/A]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4677
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
 msgstr "AutoCharg F [off]"
 
 # 
-#: ultralcd.cpp:5853
+#: ultralcd.cpp:6112
 msgid "Fail stats"
 msgstr "Statist. d'echec"
 
@@ -436,12 +451,12 @@ msgid "Fan test"
 msgstr "Test ventilateur"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4848
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
 msgstr "Verif venti  [on]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4850
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
 msgstr "Verif venti [off]"
 
@@ -451,12 +466,12 @@ msgid "Fil. sensor  [on]"
 msgstr "Capteur Fil. [on]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3104
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "La reponse du capteur de fil. est pauvre, le desactiver ?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4655
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
 msgstr "Capteur Fil.[N/A]"
 
@@ -466,7 +481,7 @@ msgid "Fil. sensor [off]"
 msgstr "Capteur Fil.[off]"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Filam. runouts"
 msgstr "Manque de flm"
 
@@ -476,32 +491,32 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament extrude et avec bonne couleur ?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Filament non charge"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6863
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Capteur de filament"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7092
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Capteur filament :"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2513
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr "Filament utilise"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2515
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Temps d'impression"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7209
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
 msgstr "Fichier incomplet. Continuer qd meme ?"
 
@@ -511,27 +526,27 @@ msgid "Finishing movements"
 msgstr "Mouvements de fin"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4925
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Cal. 1ere couche"
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4488
+#: ultralcd.cpp:4740
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "D'abord, je vais lancer l'autotest pour verifier les problemes d'assemblage les plus communs."
 
 # 
-#: mmu.cpp:436
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
 msgstr "Corrigez le probleme et appuyez sur le bouton de l'unite MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5944
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Flux"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2145
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr ""
 
@@ -541,22 +556,22 @@ msgid "Front print fan?"
 msgstr "Ventilo impr avant ?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Avant [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Ventilos avt/gauche"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Chauffage/Thermistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7400
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr "Chauffe desactivee par le compteur de securite."
 
@@ -571,17 +586,17 @@ msgid "Heating"
 msgstr "Chauffe"
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4467
+#: ultralcd.cpp:4719
 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 ?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2146
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5832
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Changer extrudeur"
 
@@ -591,12 +606,12 @@ msgid "Change filament"
 msgstr "Changer filament"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2256
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Changement reussi!"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Change correctement?"
 
@@ -606,12 +621,12 @@ msgid "Checking bed     "
 msgstr "Verification du lit"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Verifications butees"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Verif. tete impr."
 
@@ -621,17 +636,17 @@ msgid "Checking sensors "
 msgstr "Verif. des capteurs"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Verification axe X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7068
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Verification axe Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7069
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Verification axe Z"
 
@@ -651,17 +666,17 @@ msgid "Filament"
 msgstr ""
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4497
+#: ultralcd.cpp:4749
 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."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4505
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr "Je vais maintenant lancer la calibration z."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr "Je vais commencer a imprimer une ligne et vous baisserez au fur et a mesure la buse en tournant le bouton jusqu'a atteindre la hauteur optimale. Regardez les photos dans notre manuel au chapitre Calibration."
 
@@ -696,27 +711,27 @@ msgid "Insert filament into extruder 4. Click when done."
 msgstr "Inserez le filament dans l'extrudeur 4. Cliquez une fois fait."
 
 # 
-#: ultralcd.cpp:4530
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
 msgstr "Le filament 1 est-il charge ?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2242
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Inserez le filament"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4533
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Le filament est-il charge ?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4564
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "Est-ce du filament PLA ?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4310
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "Le filament PLA est-il charge ?"
 
@@ -731,12 +746,12 @@ msgid "Iteration "
 msgstr ""
 
 # 
-#: ultralcd.cpp:1949
+#: ultralcd.cpp:1976
 msgid "Last print failures"
 msgstr "Echecs d'impr. dern."
 
 # 
-#: ultralcd.cpp:1964
+#: ultralcd.cpp:1960
 msgid "Last print"
 msgstr "Derniere impress."
 
@@ -746,17 +761,17 @@ msgid "Left hotend fan?"
 msgstr "Ventilo tete gauche?"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Gauche"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Gauche [um]"
 
 # 
-#: ultralcd.cpp:4855
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr "Correction lin."
 
@@ -771,7 +786,7 @@ msgid "Load filament"
 msgstr "Charger filament"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2281
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Chargement couleur"
 
@@ -781,12 +796,12 @@ msgid "Loading filament"
 msgstr "Chargement filament"
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6839
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Poulie lache"
 
 # 
-#: ultralcd.cpp:5824
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr "Charger le fil"
 
@@ -806,27 +821,42 @@ msgid "Measuring reference height of calibration point"
 msgstr "Mesure de la hauteur de reference du point de calibration"
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4940
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
 msgstr "Nivelage du lit"
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:474
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Reprise de la position ..."
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:463
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Reprise de la temperature ..."
 
 # 
-#: ultralcd.cpp:2684
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Deviation mesuree"
 
+# 
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr ""
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr ""
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr ""
+
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:485
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Reprise ..."
 
@@ -841,10 +871,15 @@ msgid "Mode     [silent]"
 msgstr "Mode [silencieux]"
 
 # 
-#: mmu.cpp:431
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "Le MMU necessite l'attention de l'utilisateur."
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr ""
+
 # MSG_STEALTH_MODE_ON
 #: messages.c:85
 msgid "Mode    [Stealth]"
@@ -861,7 +896,7 @@ msgid "Mode [high power]"
 msgstr "Mode[haute puiss]"
 
 # 
-#: ultralcd.cpp:2158
+#: ultralcd.cpp:2241
 msgid "MMU2 connected"
 msgstr "MMU2 connectée"
 
@@ -871,42 +906,47 @@ msgid "Motor"
 msgstr "Moteur"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4839
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Deplacer l'axe"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Deplacer X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Deplacer Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3915
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Deplacer Z"
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Pas de mouvement."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5804
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "Pas de carte SD"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr ""
+
 # MSG_NO
 #: messages.c:58
 msgid "No"
 msgstr "Non"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6787
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "Non connecte"
 
@@ -926,12 +966,12 @@ msgid "Not spinning"
 msgstr "Ne tourne pas"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4821
 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 le surface du lit chauffant."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4513
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Maintenant je vais prechauffer la buse pour du PLA."
 
@@ -941,42 +981,42 @@ msgid "Nozzle"
 msgstr "Buse"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1488
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront pris."
 
 # 
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr "Retirez maintenant l'impression de test de la feuille d'acier."
 
 # 
-#: ultralcd.cpp:1880
+#: ultralcd.cpp:1919
 msgid "Nozzle FAN"
 msgstr "Vent buse"
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5778
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr "Pause de l'impres"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "Calib. PID"
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "Calib. PID terminee"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "Calibration PID"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "Chauffe de la PINDA"
 
@@ -986,7 +1026,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 de suite l'imprimante."
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4578
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr "Nettoyez le lit chauffant et appuyez sur le bouton."
 
@@ -996,7 +1036,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Nettoyez la buse pour la calibration. Cliquez une fois fait."
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6779
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Verifiez :"
 
@@ -1006,17 +1046,17 @@ msgid "Please check our handbook and fix the problem. Then resume the Wizard by
 msgstr "Merci de verifier notre manuel et de corriger le probleme. Poursuivez alors l'assistant en redemarrant l'imprimante."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4412
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr "Inserez du filament PLA dans l'extrudeur, puis appuyez sur le bouton pour le charger."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4315
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Chargez d'abord le filament PLA."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2988
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
 msgstr "Ouvrez le support de poulie et retirez le filament manuellement."
 
@@ -1031,7 +1071,7 @@ msgid "Please press the knob to unload filament"
 msgstr "Appuyez sur le bouton pour decharger le filament"
 
 # 
-#: ultralcd.cpp:4408
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Veuillez inserer du filament PLA dans le premier tube du MMU, et pressez sur le bouton pour le charger."
 
@@ -1041,7 +1081,7 @@ msgid "Please pull out filament immediately"
 msgstr "Retirez immediatement le filament"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1136
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr "Veuillez retirer le filament puis appuyez sur le bouton."
 
@@ -1051,12 +1091,12 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Retirez la feuille d'acier du lit chauffant"
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4010
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr "Veuillez d'abord lancer la calibration XYZ."
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1082
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Veuillez mettre a jour le firmware de votre MMU2. En attente d'un reset."
 
@@ -1066,7 +1106,7 @@ msgid "Please wait"
 msgstr "Merci de patienter"
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Veuillez retirer d'abord les protections d'envoi."
 
@@ -1076,7 +1116,7 @@ msgid "Preheat the nozzle!"
 msgstr "Prechauffez la buse!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5767
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Prechauffage"
 
@@ -1091,12 +1131,12 @@ msgid "Please upgrade."
 msgstr "Mettez a jour le FW."
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9054
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Appuyez sur le bouton pour prechauffer la buse et continuer."
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Power failures"
 msgstr "Coupures"
 
@@ -1105,8 +1145,18 @@ msgstr "Coupures"
 msgid "Print aborted"
 msgstr "Impression annulee"
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr ""
+
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7086
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Ventilo impr. :"
 
@@ -1115,13 +1165,18 @@ msgstr "Ventilo impr. :"
 msgid "Print from SD"
 msgstr "Impr depuis la SD"
 
+# 
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr ""
+
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Impression en pause"
 
 # 
-#: mmu.cpp:435
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Appuyez sur le bouton pour poursuivre la mise en temperature de la buse."
 
@@ -1131,7 +1186,7 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi
 msgstr "L'imprimante n'a pas encore ete calibree. Suivez le manuel, chapitre Premiers pas, section Processus de calibration"
 
 # 
-#: ultralcd.cpp:1882
+#: ultralcd.cpp:1921
 msgid "Print FAN"
 msgstr "Vent extru"
 
@@ -1146,42 +1201,47 @@ msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 prete."
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2144
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Arriere [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8481
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr "Recup. impression"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:535
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr "Retirez l'ancien filament puis appuyez sur le bouton pour charger le nouveau."
 
+# 
+#: 
+msgid "Prusa i3 MK3S OK."
+msgstr ""
+
 # 
 #: 
 msgid "Prusa i3 MK2 ready."
 msgstr "Prusa i3 MK2 prete."
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4953
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr "Reinit. calibr. XYZ"
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2893
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr "Reinitialiser"
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5782
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Reprendre impression"
 
@@ -1191,37 +1251,37 @@ msgid "Resuming print"
 msgstr "Reprise de l'impr."
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Droite [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4867
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
 msgstr "Port RPi     [on]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4865
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
 msgstr "Port RPi    [off]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4331
+#: ultralcd.cpp:4583
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Lancer l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer ?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4781
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
 msgstr "Carte SD [normal]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4779
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
 msgstr "Carte SD[flshAir]"
 
 # 
-#: ultralcd.cpp:2650
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Droite"
 
@@ -1231,27 +1291,27 @@ msgid "Searching bed calibration point"
 msgstr "Recherche du point de calibration du lit"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4874
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Choisir langue"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6351
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr "Auto-test OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6184
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Debut auto-test"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4927
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Auto-test"
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Erreur auto-test !"
 
@@ -1261,22 +1321,22 @@ msgid "Selftest failed  "
 msgstr "Echec de l'auto-test"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1520
+#: Marlin_main.cpp:1548
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "L'auto-test sera lance pour calibrer la remise a zero precise sans capteur."
 
 # 
-#: ultralcd.cpp:4551
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selectionnez la temperature de prechauffage de la buse qui correspond a votre materiau."
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "Selectionnez le filament PLA :"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2901
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Regler temp. :"
 
@@ -1286,12 +1346,22 @@ msgid "Settings"
 msgstr "Reglages"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Afficher butees"
 
 # 
-#: ultralcd.cpp:4948
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr ""
+
+# 
+#: 
+msgid "Sensors info"
+msgstr ""
+
+# 
+#: 
 msgid "Show pinda state"
 msgstr "Etat de la PINDA"
 
@@ -1301,22 +1371,22 @@ msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting
 msgstr "Certains fichiers ne seront pas tries. Max 100 fichiers tries par dossier."
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4791
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
 msgstr "Tri :     [aucun]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
 msgstr "Tri :     [heure]"
 
 # 
-#: ultralcd.cpp:2687
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr "Deviation severe"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
 msgstr "Tri :  [alphabet]"
 
@@ -1331,7 +1401,7 @@ msgid "Sound      [loud]"
 msgstr "Son        [fort]"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Deviation legere"
 
@@ -1341,7 +1411,7 @@ msgid "Sound      [mute]"
 msgstr "Son        [muet]"
 
 # 
-#: Marlin_main.cpp:4518
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Problemes rencontres, nivellement de l'axe Z applique..."
 
@@ -1356,7 +1426,7 @@ msgid "Sound    [silent]"
 msgstr "Son  [silencieux]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5938
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr "Vitesse"
 
@@ -1366,12 +1436,12 @@ msgid "Spinning"
 msgstr "Tourne"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4023
+#: Marlin_main.cpp:4065
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Une temperature ambiante stable de 21-26C et une base stable sont requis."
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5849
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Statistiques"
 
@@ -1386,12 +1456,12 @@ msgid "STOPPED. "
 msgstr "ARRETE."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr ""
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6857
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Echange"
 
@@ -1401,22 +1471,22 @@ msgid "Temp. cal.          "
 msgstr "Calib. Temp."
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4861
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
 msgstr "Calib. Temp. [on]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4859
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
 msgstr "Calib. Temp.[off]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4959
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Calibration temp."
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3526
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr "Echec calibration en temperature"
 
@@ -1426,12 +1496,12 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
 msgstr "La calibration en temperature est terminee et active. La calibration en temperature peut etre desactivee dans le menu Reglages->Cal. Temp."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4837
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr ""
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2189
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr ""
 
@@ -1441,35 +1511,45 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch
 msgstr "Il y a encore besoin d'effectuer la calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration."
 
 # 
-#: ultralcd.cpp:2540
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Filament total"
 
 # 
-#: ultralcd.cpp:2542
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr "Temps total"
 
 # MSG_TUNE
-#: ultralcd.cpp:5764
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Regler"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Decharger"
 
 # 
-#: ultralcd.cpp:5366
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Decharger tout"
 
 # 
-#: ultralcd.cpp:1931
+#: ultralcd.cpp:1994
 msgid "Total failures"
 msgstr "Echecs au total"
 
+# 
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr ""
+
 # MSG_UNLOAD_FILAMENT c=17
 #: messages.c:91
 msgid "Unload filament"
@@ -1481,62 +1561,62 @@ msgid "Unloading filament"
 msgstr "Dechargement fil."
 
 # 
-#: ultralcd.cpp:1965
+#: ultralcd.cpp:1961
 msgid "Total"
 msgstr "Total"
 
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Utilise pdt impr."
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2192
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Tensions"
 
 # 
-#: ultralcd.cpp:2166
+#: ultralcd.cpp:2249
 msgid "unknown"
 msgstr ""
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Attente utilisateur..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3045
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Attente du refroidissement de la buse et du lit"
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3009
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
 msgstr "Attente du refroidissement de la sonde PINDA"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
 msgstr "Utilisez decharger 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
-#: Marlin_main.cpp:1480
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Attention : Types d'imprimante et de carte mere modifies"
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1472
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr "Attention : Type de carte mere modifie."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1476
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr "Attention : Type d'imprimante modifie"
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2977
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
 msgstr "Dechargement du filament reussi ?"
 
@@ -1546,12 +1626,12 @@ msgid "Wiring error"
 msgstr "Erreur de cablage"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr "Assistant"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2182
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "Details calib. XYZ"
 
@@ -1571,97 +1651,97 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Vous pouvez toujours poursuivre l'assistant dans Calibration-> Assistant."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3497
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Calibration XYZ OK. L'ecart sera corrige automatiquement."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3494
+#: ultralcd.cpp:3712
 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 !"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "Correction-X"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3491
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibration XYZ OK. Les axes X/Y sont perpendiculaires. Felicitations !"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3475
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibration XYZ compromise. Les points de calibration avant ne sont pas atteignables."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3478
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Calibration XYZ compromise. Le point de calibration avant droite n'est pas atteignable."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3481
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr "Calibration XYZ compromise. Le point de calibration avant gauche n'est pas atteignable."
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Tout charger"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Charger fil. 1"
 
 # 
-#: ultralcd.cpp:3457
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Echec calibration XYZ. Le point de calibration du lit n'a pas ete trouve."
 
 # 
-#: ultralcd.cpp:3463
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Echec calibration XYZ. Les points de calibration avant ne sont pas atteignables."
 
 # 
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "Echec calibration XYZ. Le point de calibration avant gauche n'est pas atteignable."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Charger fil. 2"
 
 # 
-#: ultralcd.cpp:3466
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Echec calibration XYZ. Le point de calibration avant droite n'est pas atteignable."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Charger fil. 3"
 
 # 
-#: ultralcd.cpp:2647
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Distance Y du min"
 
 # 
-#: ultralcd.cpp:4634
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Correction-Y"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5328
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Charger fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5331
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Charger fil. 5"
 

+ 311 - 231
lang/po/Firmware_it.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: it\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 30. lis 2018 18:53:14\n"
-"PO-Revision-Date: pá 30. lis 2018 18:53:14\n"
+"POT-Creation-Date: čt 7. úno 2019 14:48:23\n"
+"PO-Revision-Date: čt 7. úno 2019 14:48:23\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -26,27 +26,32 @@ msgid " of 9"
 msgstr "su 9"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2702
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "[0;0] punto offset"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3968
+#: ultralcd.cpp:4219
 msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode"
 msgstr "\x1b[2JRilev. impatto\x1b[1;0Hattivabile solo\x1b[2;0Hin Modalita normale"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3980
+#: ultralcd.cpp:4231
 msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 msgstr "\x1b[2JATTENZIONE:\x1b[1;0HRilev. impatto\x1b[2;0Hdisattivato in\x1b[3;0HModalita silenziosa"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ""
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2831
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Compensazione Z"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7074
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Nessun errore"
 
@@ -56,32 +61,32 @@ msgid "All is done. Happy printing!"
 msgstr "Tutto fatto. Buona stampa!"
 
 # 
-#: ultralcd.cpp:2026
+#: ultralcd.cpp:2109
 msgid "Ambient"
 msgstr ""
 
 # MSG_PRESS c=20
-#: ultralcd.cpp:2245
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "e cliccare manopola"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3120
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
 msgstr "I carrelli Z sin/des sono altezza max?"
 
 # MSG_AUTO_DEPLETE_ON c=17 r=1
-#: ultralcd.cpp:4707
+#: ultralcd.cpp:4959
 msgid "SpoolJoin    [on]"
 msgstr "SpoolJoin    [on]"
 
 # 
-#: ultralcd.cpp:4703
+#: ultralcd.cpp:4955
 msgid "SpoolJoin   [N/A]"
 msgstr "SpoolJoin   [N/A]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4711
+#: ultralcd.cpp:4963
 msgid "SpoolJoin   [off]"
 msgstr "SpoolJoin   [off]"
 
@@ -91,32 +96,32 @@ msgid "Auto home"
 msgstr "Trova origine"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5836
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "Autocaric. filam."
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3995
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Caricamento auto. filam. disp. solo con il sensore attivo..."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2439
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Il caricamento automatico e attivo, premete la manopola e inserite il filamento..."
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Lunghezza dell'asse"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6849
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Assi"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6791
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Letto/Riscald."
 
@@ -131,7 +136,7 @@ msgid "Bed Heating"
 msgstr "Riscald. letto"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr "Correz. liv.letto"
 
@@ -141,12 +146,12 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr "Livellamento letto fallito.NoRispSensore.Residui su ugello? In attesa di reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4466
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 msgstr "Livellamento piano fallito. Sensore disconnesso o Cavo Danneggiato. In attesa di reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4470
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Livellamento piano fallito. Risposta sensore troppo presto. In attesa di reset."
 
@@ -156,7 +161,7 @@ msgid "Bed"
 msgstr "Letto"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2052
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Stato delle cinghie"
 
@@ -165,8 +170,13 @@ msgstr "Stato delle cinghie"
 msgid "Blackout occurred. Recover print?"
 msgstr "C'e stato un Blackout. Recuperare la stampa?"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr ""
+
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4934
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Calibra XYZ"
 
@@ -176,12 +186,12 @@ msgid "Calibrate Z"
 msgstr "Calibra Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4176
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Calibra"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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."
 
@@ -191,12 +201,12 @@ msgid "Calibrating Z"
 msgstr "Calibrando Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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."
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Calibrazione completa"
 
@@ -206,22 +216,22 @@ msgid "Calibration"
 msgstr "Calibrazione"
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Annulla"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7425
+#: 
 msgid "Card inserted"
 msgstr "SD inserita"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7431
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "SD rimossa"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Colore non puro"
 
@@ -231,7 +241,7 @@ msgid "Cooldown"
 msgstr "Raffredda"
 
 # 
-#: ultralcd.cpp:4109
+#: ultralcd.cpp:4360
 msgid "Copy selected language?"
 msgstr "Copiare la lingua selezionata?"
 
@@ -256,27 +266,27 @@ msgid "Crash detected."
 msgstr "Rilevato impatto."
 
 # 
-#: Marlin_main.cpp:603
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Scontro rilevato. Riprendere la stampa?"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Crash"
 msgstr ""
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5085
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Attuale"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2152
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Data:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4841
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Disabilita motori"
 
@@ -286,77 +296,77 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr "Distanza tra la punta dell'ugello e la superficie del letto non ancora imposta. Si prega di seguire il manuale, capitolo Primi Passi, sezione Calibrazione primo layer."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4576
+#: ultralcd.cpp:4828
 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?"
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "Correzione-E"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5825
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr "Espelli filamento "
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr "Espelli filamento 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Espellere filamento 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Espelli filamento 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Espellere filamento 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5356
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Espelli filamento 5"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Espellere"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1128
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr "Espellendo filamento "
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6815
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr "Finecorsa fuori portata"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6809
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr "Finecorsa"
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6797
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr "Finecorsa"
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5871
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
 msgstr "Errore - la memoria statica e stata sovrascritta"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "ERRORE: il sensore filam. non risponde,Controllare conness."
 
@@ -366,37 +376,37 @@ msgid "ERROR:"
 msgstr "ERRORE:"
 
 # 
-#: Marlin_main.cpp:984
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "Flash SPI W25X20CL esterno non risponde."
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr "Estrusore 1"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr "Estrusore 2"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr "Estrusore 3"
 
 # 
-#: ultralcd.cpp:5385
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr "Estrusore 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7083
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Ventola estrusore:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2183
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr "Info estrusore"
 
@@ -405,8 +415,13 @@ msgstr "Info estrusore"
 msgid "Extruder"
 msgstr "Estrusore"
 
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr ""
+
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4675
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
 msgstr "Autocar.filam[on]"
 
@@ -416,12 +431,12 @@ msgid "F. autoload [N/A]"
 msgstr "Autocar.fil.[N/A]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4677
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
 msgstr "Autocar.fil.[off]"
 
 # 
-#: ultralcd.cpp:5853
+#: ultralcd.cpp:6112
 msgid "Fail stats"
 msgstr ""
 
@@ -436,12 +451,12 @@ msgid "Fan test"
 msgstr "Test ventola"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4848
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
 msgstr "Controllo ventole [on]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4850
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
 msgstr "Control.vent[off]"
 
@@ -451,12 +466,12 @@ msgid "Fil. sensor  [on]"
 msgstr "Sensor filam.[On]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3104
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "Risposta Sens. Fil. debole, disattivare? "
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4655
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
 msgstr "Sensor filam[N/A]"
 
@@ -466,7 +481,7 @@ msgid "Fil. sensor [off]"
 msgstr "Sensor filam[off]"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Filam. runouts"
 msgstr ""
 
@@ -476,32 +491,32 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filamento estruso & con il giusto colore?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Fil. non caricato"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6863
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Sensore filam."
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7092
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Sensore filam.:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2513
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr "Filamento utilizzato"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2515
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Tempo di stampa"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7209
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
 msgstr "File incompleto. Continuare comunque?"
 
@@ -511,27 +526,27 @@ msgid "Finishing movements"
 msgstr "Finalizzando gli spostamenti"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4925
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Calibrazione primo layer."
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4488
+#: ultralcd.cpp:4740
 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."
 
 # 
-#: mmu.cpp:436
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
 msgstr "Risolvi il problema e quindi premi il bottone sull'unita MMU. "
 
 # MSG_FLOW
-#: ultralcd.cpp:5944
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Flusso"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2145
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr ""
 
@@ -541,22 +556,22 @@ msgid "Front print fan?"
 msgstr "Ventola frontale?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Fronte [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Ventola frontale/sinistra"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Riscald./Termist."
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7400
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr "Riscaldamento fermato dal timer di sicurezza."
 
@@ -571,17 +586,17 @@ msgid "Heating"
 msgstr "Riscaldamento..."
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4467
+#: ultralcd.cpp:4719
 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?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2146
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5832
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Cambio estrusore"
 
@@ -591,12 +606,12 @@ msgid "Change filament"
 msgstr "Cambia filamento"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2256
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Cambio riuscito!"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Cambiato correttamente?"
 
@@ -606,12 +621,12 @@ msgid "Checking bed     "
 msgstr "Verifica piano"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Verifica finecorsa"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Verifica ugello"
 
@@ -621,17 +636,17 @@ msgid "Checking sensors "
 msgstr "Controllo sensori"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Verifica asse X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7068
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Verifica asse Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7069
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Verifica asse Z"
 
@@ -651,17 +666,17 @@ msgid "Filament"
 msgstr "Filamento"
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4497
+#: ultralcd.cpp:4749
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Adesso avviero una Calibrazione XYZ. Puo durare circa 12 min."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4505
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr "Adesso avviero la Calibrazione Z."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr "Adesso iniziero a stampare una linea e tu dovrai abbassare l'ugello poco per volta ruotando la manopola sino a raggiungere una altezza ottimale. Per favore dai uno sguardo all'immagine del nostro manuale, cap.Calibrazione."
 
@@ -696,27 +711,27 @@ msgid "Insert filament into extruder 4. Click when done."
 msgstr "Inserire filamento nell'estrusore 4. Click per continuare"
 
 # 
-#: ultralcd.cpp:4530
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
 msgstr "Il filamento 1 e caricato?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2242
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Inserire filamento"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4533
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Il filamento e stato caricato?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4564
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "E' un filamento di PLA?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4310
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "E' stato caricato il filamento di PLA?"
 
@@ -731,12 +746,12 @@ msgid "Iteration "
 msgstr "Iterazione"
 
 # 
-#: ultralcd.cpp:1949
+#: ultralcd.cpp:1976
 msgid "Last print failures"
 msgstr ""
 
 # 
-#: ultralcd.cpp:1964
+#: ultralcd.cpp:1960
 msgid "Last print"
 msgstr ""
 
@@ -746,17 +761,17 @@ msgid "Left hotend fan?"
 msgstr "Vent SX hotend?"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Sinistra"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Lato sinistro [um]"
 
 # 
-#: ultralcd.cpp:4855
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr "Correzione lin."
 
@@ -771,7 +786,7 @@ msgid "Load filament"
 msgstr "Carica filamento"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2281
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Caricando colore"
 
@@ -781,12 +796,12 @@ msgid "Loading filament"
 msgstr "Caricando filamento"
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6839
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Puleggia lenta"
 
 # 
-#: ultralcd.cpp:5824
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr "Carica ugello"
 
@@ -806,27 +821,42 @@ msgid "Measuring reference height of calibration point"
 msgstr "Misura altezza di rif. del punto di calib."
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4940
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
 msgstr "Mesh livel. letto"
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:474
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. riprendendo la posizione... "
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:463
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Ripristino temperatura... "
 
 # 
-#: ultralcd.cpp:2684
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Disassamento misurato"
 
+# 
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr ""
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr ""
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr ""
+
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:485
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Riprendendo... "
 
@@ -841,10 +871,15 @@ msgid "Mode     [silent]"
 msgstr "Modo [silenzioso]"
 
 # 
-#: mmu.cpp:431
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "Il MMU richiede attenzione dall'utente."
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr ""
+
 # MSG_STEALTH_MODE_ON
 #: messages.c:85
 msgid "Mode    [Stealth]"
@@ -861,7 +896,7 @@ msgid "Mode [high power]"
 msgstr "Mode      [forte]"
 
 # 
-#: ultralcd.cpp:2158
+#: ultralcd.cpp:2241
 msgid "MMU2 connected"
 msgstr ""
 
@@ -871,42 +906,47 @@ msgid "Motor"
 msgstr "Motore"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4839
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Muovi asse"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Muovi X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Muovi Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3915
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Muovi Z"
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Nessun movimento."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5804
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "Nessuna SD"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr ""
+
 # MSG_NO
 #: messages.c:58
 msgid "No"
 msgstr ""
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6787
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "Non connesso"
 
@@ -926,12 +966,12 @@ msgid "Not spinning"
 msgstr "Non gira"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4821
 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."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4513
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Adesso preriscaldero l'ugello per PLA."
 
@@ -941,42 +981,42 @@ msgid "Nozzle"
 msgstr "Ugello"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1488
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Sono state trovate impostazioni vecchie. I valori di default di PID, Esteps etc. saranno impostati"
 
 # 
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio."
 
 # 
-#: ultralcd.cpp:1880
+#: ultralcd.cpp:1919
 msgid "Nozzle FAN"
 msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5778
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr "Metti in pausa"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "Calibrazione PID"
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "Calib. PID completa"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "Calibrazione PID"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "Riscaldamento PINDA"
 
@@ -986,7 +1026,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."
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4578
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr "Per favore pulisci il piatto, poi premi la manopola."
 
@@ -996,7 +1036,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Pulire l'ugello per la calibrazione, poi fare click."
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6779
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Verifica:"
 
@@ -1006,17 +1046,17 @@ 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."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4412
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr "Per favore inserisci il filamento di PLA nell'estrusore, poi premi la manopola per caricare."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4315
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Per favore prima carica il filamento di PLA."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2988
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
 msgstr "Aprire la guida filam. e rimuovere il filam. a mano"
 
@@ -1031,7 +1071,7 @@ msgid "Please press the knob to unload filament"
 msgstr "Premete la manopola per scaricare il filamento "
 
 # 
-#: ultralcd.cpp:4408
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Per favore inserite del filamento PLA nel primo tubo del MMU, poi premete la manopola per caricarlo."
 
@@ -1041,7 +1081,7 @@ msgid "Please pull out filament immediately"
 msgstr "Estrarre il filamento immediatamente"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1136
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr "Rimuovi il filamento e quindi premi la manopola. "
 
@@ -1051,12 +1091,12 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Rimuovete la piastra di acciaio dal piano riscaldato"
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4010
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr "Esegui la calibrazione XYZ prima. "
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1082
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Aggiorna il firmware sul tuo MMU2. In attesa di reset. "
 
@@ -1066,7 +1106,7 @@ msgid "Please wait"
 msgstr "Attendere"
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Per favore rimuovete i materiali da spedizione"
 
@@ -1076,7 +1116,7 @@ msgid "Preheat the nozzle!"
 msgstr "Prerisc. ugello!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5767
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Preriscalda"
 
@@ -1091,12 +1131,12 @@ msgid "Please upgrade."
 msgstr "Prego aggiornare."
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9054
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Premete la manopola per preriscaldare l'ugello e continuare."
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Power failures"
 msgstr ""
 
@@ -1105,8 +1145,18 @@ msgstr ""
 msgid "Print aborted"
 msgstr "Stampa interrotta"
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr ""
+
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7086
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Ventola di stampa:"
 
@@ -1115,13 +1165,18 @@ msgstr "Ventola di stampa:"
 msgid "Print from SD"
 msgstr "Stampa da SD"
 
+# 
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr ""
+
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Stampa in pausa"
 
 # 
-#: mmu.cpp:435
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Premete la manopola per recuperare la temperatura dell'ugello."
 
@@ -1131,7 +1186,7 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi
 msgstr "Stampante non ancora calibrata. Si prega di seguire il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione."
 
 # 
-#: ultralcd.cpp:1882
+#: ultralcd.cpp:1921
 msgid "Print FAN"
 msgstr ""
 
@@ -1146,42 +1201,47 @@ msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 pronta."
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2144
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Retro [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8481
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr "Recupero stampa"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:535
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr "Rimuovi il filamento precedente e premi la manopola per caricare il nuovo filamento. "
 
+# 
+#: 
+msgid "Prusa i3 MK3S OK."
+msgstr ""
+
 # 
 #: 
 msgid "Prusa i3 MK2 ready."
 msgstr "Prusa i3 MK2 pronta."
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4953
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr "Reset calibrazione XYZ."
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2893
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr ""
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5782
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Riprendi stampa"
 
@@ -1191,37 +1251,37 @@ msgid "Resuming print"
 msgstr "Riprendi stampa"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Destra [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4867
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
 msgstr "Porta RPi    [on]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4865
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
 msgstr "Porta RPi   [off]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4331
+#: ultralcd.cpp:4583
 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?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4781
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
 msgstr "Mem. SD [normale]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4779
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
 msgstr "Mem. SD [flshAir]"
 
 # 
-#: ultralcd.cpp:2650
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Destra"
 
@@ -1231,27 +1291,27 @@ msgid "Searching bed calibration point"
 msgstr "Ricerca dei punti di calibrazione del piano"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4874
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Seleziona lingua"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6351
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr "Autotest OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6184
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Avvia autotest"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4927
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Autotest"
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Errore Autotest !"
 
@@ -1261,22 +1321,22 @@ msgid "Selftest failed  "
 msgstr "Autotest fallito"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1520
+#: Marlin_main.cpp:1548
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Verra effettuato un self test per calibrare l'homing senza sensori"
 
 # 
-#: ultralcd.cpp:4551
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale."
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "Selezionate filamento PLA:"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2901
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Imposta temperatura:"
 
@@ -1286,12 +1346,22 @@ msgid "Settings"
 msgstr "Impostazioni"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Stato finecorsa"
 
 # 
-#: ultralcd.cpp:4948
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr ""
+
+# 
+#: 
+msgid "Sensors info"
+msgstr ""
+
+# 
+#: 
 msgid "Show pinda state"
 msgstr "Mostra stato pinda"
 
@@ -1301,22 +1371,22 @@ msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting
 msgstr "Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati."
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4791
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
 msgstr "Ordina:    [none]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
 msgstr "Ordina:    [time]"
 
 # 
-#: ultralcd.cpp:2687
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr "Disassamento grave"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
 msgstr "Ordine: [alfabet]"
 
@@ -1331,7 +1401,7 @@ msgid "Sound      [loud]"
 msgstr "Suono     [forte]"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Disassamento lieve"
 
@@ -1341,7 +1411,7 @@ msgid "Sound      [mute]"
 msgstr "Suono      [mute]"
 
 # 
-#: Marlin_main.cpp:4518
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Sono stati rilevati problemi, avviato livellamento Z ..."
 
@@ -1356,7 +1426,7 @@ msgid "Sound    [silent]"
 msgstr "Suono[silenzioso]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5938
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr "Velocita"
 
@@ -1366,12 +1436,12 @@ msgid "Spinning"
 msgstr "Gira"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4023
+#: Marlin_main.cpp:4065
 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 "
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5849
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Statistiche"
 
@@ -1386,12 +1456,12 @@ msgid "STOPPED. "
 msgstr "ARRESTATO."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr "Supporto"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6857
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Scambiato"
 
@@ -1401,22 +1471,22 @@ msgid "Temp. cal.          "
 msgstr "Calib. temp. "
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4861
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
 msgstr "Calib. temp. [ON]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4859
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
 msgstr "Calib. temp.[OFF]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4959
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Calib. Temp."
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3526
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr "Calibrazione temperatura fallita"
 
@@ -1426,12 +1496,12 @@ 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."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4837
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr ""
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2189
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr "Temperature"
 
@@ -1441,35 +1511,45 @@ 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. "
 
 # 
-#: ultralcd.cpp:2540
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Filamento totale"
 
 # 
-#: ultralcd.cpp:2542
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr "Tempo di stampa totale"
 
 # MSG_TUNE
-#: ultralcd.cpp:5764
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Regola"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Scarica"
 
 # 
-#: ultralcd.cpp:5366
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Rilasciare tutti"
 
 # 
-#: ultralcd.cpp:1931
+#: ultralcd.cpp:1994
 msgid "Total failures"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr ""
+
 # MSG_UNLOAD_FILAMENT c=17
 #: messages.c:91
 msgid "Unload filament"
@@ -1481,62 +1561,62 @@ msgid "Unloading filament"
 msgstr "Scaricando filamento"
 
 # 
-#: ultralcd.cpp:1965
+#: ultralcd.cpp:1961
 msgid "Total"
 msgstr ""
 
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Usati nella stampa"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2192
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Voltaggi"
 
 # 
-#: ultralcd.cpp:2166
+#: ultralcd.cpp:2249
 msgid "unknown"
 msgstr ""
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Attendendo utente..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3045
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
 msgstr "In attesa del raffreddamento dell'ugello e del piano"
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3009
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
 msgstr "In attesa del raffreddamento della sonda PINDA"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
 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
-#: Marlin_main.cpp:1480
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Attenzione: tipo di stampante e di scheda madre cambiati."
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1472
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr "Avviso: tipo di scheda madre cambiato"
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1476
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr "Avviso: tipo di stampante cambiato."
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2977
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
 msgstr "Filamento scaricato con successo?"
 
@@ -1546,12 +1626,12 @@ msgid "Wiring error"
 msgstr "Errore cablaggio"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr ""
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2182
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "XYZ Cal. dettagli"
 
@@ -1571,97 +1651,97 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "E possibile riprendere il Wizard in qualsiasi momento attraverso Calibrazione -> Wizard."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3497
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Calibrazione XYZ corretta. La distorsione verra compensata automaticamente."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3494
+#: ultralcd.cpp:3712
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "Correzione-X"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3491
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3475
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3478
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3481
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr "Calibrazione XYZ compromessa. Punto anteriore sinistro non raggiungibile."
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Caricare tutti"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Caricare fil. 1"
 
 # 
-#: ultralcd.cpp:3457
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul letto non e' stato trovato."
 
 # 
-#: ultralcd.cpp:3463
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili."
 
 # 
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "Calibrazione XYZ fallita. Punto anteriore sinistro non raggiungibile."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Caricare fil. 2"
 
 # 
-#: ultralcd.cpp:3466
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Carica fil. 3"
 
 # 
-#: ultralcd.cpp:2647
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Distanza Y dal min"
 
 # 
-#: ultralcd.cpp:4634
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Correzione-Y"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5328
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Caricare fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5331
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Caricare fil. 5"
 

+ 311 - 231
lang/po/Firmware_pl.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pl\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 30. lis 2018 18:54:49\n"
-"PO-Revision-Date: pá 30. lis 2018 18:54:49\n"
+"POT-Creation-Date: čt 7. úno 2019 14:49:46\n"
+"PO-Revision-Date: čt 7. úno 2019 14:49:46\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -26,27 +26,32 @@ msgid " of 9"
 msgstr " z 9"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2702
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "[0;0] przesuniecie punktu"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3968
+#: ultralcd.cpp:4219
 msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode"
 msgstr "\x1b[2JWykrywanie zderzen moze\x1b[1;0Hbyc wlaczone tylko w\x1b[2;0Htrybie Normalnym"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3980
+#: ultralcd.cpp:4231
 msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 msgstr "\x1b[2JUWAGA:\x1b[1;0HWykrywanie zderzen\x1b[2;0Hwylaczone w\x1b[3;0Htrybie Stealth"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ""
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2831
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Dostrajanie Z"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7074
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Wszystko OK "
 
@@ -56,32 +61,32 @@ msgid "All is done. Happy printing!"
 msgstr "Gotowe. Udanego drukowania!"
 
 # 
-#: ultralcd.cpp:2026
+#: ultralcd.cpp:2109
 msgid "Ambient"
 msgstr ""
 
 # MSG_PRESS c=20
-#: ultralcd.cpp:2245
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "i nacisnij pokretlo"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3120
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
 msgstr "Obydwa konce osi dojechaly do gornych ogranicznikow?"
 
 # MSG_AUTO_DEPLETE_ON c=17 r=1
-#: ultralcd.cpp:4707
+#: ultralcd.cpp:4959
 msgid "SpoolJoin    [on]"
 msgstr "SpoolJoin    [wl]"
 
 # 
-#: ultralcd.cpp:4703
+#: ultralcd.cpp:4955
 msgid "SpoolJoin   [N/A]"
 msgstr "SpoolJoin    [nd]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4711
+#: ultralcd.cpp:4963
 msgid "SpoolJoin   [off]"
 msgstr "SpoolJoin   [wyl]"
 
@@ -91,32 +96,32 @@ msgid "Auto home"
 msgstr "Auto zerowanie"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5836
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "AutoLadowanie fil."
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3995
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Autoladowanie filamentu dostepne tylko gdy czujnik filamentu jest wlaczony..."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2439
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Autoladowanie filamentu wlaczone, nacisnij pokretlo i wsun filament..."
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Dlugosc osi"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6849
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Os"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6791
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Stol / Grzanie"
 
@@ -131,7 +136,7 @@ msgid "Bed Heating"
 msgstr "Grzanie stolu.."
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr "Korekta poziomowania stolu"
 
@@ -141,12 +146,12 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr "Kalibracja nieudana. Sensor nie aktywowal sie. Zanieczysz. dysza? Czekam na reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4466
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 msgstr "Poziomowanie stolu nieudane. Sensor odlacz. lub uszkodz. przewod. Czekam na reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4470
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Kalibracja Z nieudana. Sensor aktywowal za wysoko. Czekam na reset."
 
@@ -156,7 +161,7 @@ msgid "Bed"
 msgstr "Stol"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2052
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Stan paskow"
 
@@ -165,8 +170,13 @@ msgstr "Stan paskow"
 msgid "Blackout occurred. Recover print?"
 msgstr "Wykryto zanik napiecia. Kontynowac?"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr ""
+
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4934
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Kalibracja XYZ"
 
@@ -176,12 +186,12 @@ msgid "Calibrate Z"
 msgstr "Kalibruj Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4176
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Kalibruj"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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."
 
@@ -191,12 +201,12 @@ msgid "Calibrating Z"
 msgstr "Kalibruje Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3080
+#: ultralcd.cpp:3290
 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."
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Kalibracja OK"
 
@@ -206,22 +216,22 @@ msgid "Calibration"
 msgstr "Kalibracja"
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Anuluj"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7425
+#: 
 msgid "Card inserted"
 msgstr "Karta wlozona"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7431
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "Karta wyjeta"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Kolor zanieczysz."
 
@@ -231,7 +241,7 @@ msgid "Cooldown"
 msgstr "Chlodzenie"
 
 # 
-#: ultralcd.cpp:4109
+#: ultralcd.cpp:4360
 msgid "Copy selected language?"
 msgstr "Skopiowac wybrany jezyk?"
 
@@ -256,27 +266,27 @@ msgid "Crash detected."
 msgstr "Zderzenie wykryte"
 
 # 
-#: Marlin_main.cpp:603
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Wykryto zderzenie. Wznowic druk?"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Crash"
 msgstr ""
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5085
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Aktualne"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2152
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Data:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4841
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Wylaczenie silnikow"
 
@@ -286,77 +296,77 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr "Odleglosc dyszy od powierzchni druku nie jest skalibrowana. Postepuj zgodnie z instrukcja: rozdzial Wprowadzenie - Kalibracja pierwszej warstwy."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4576
+#: ultralcd.cpp:4828
 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?"
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4637
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "Korekcja E"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5825
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr "Wysun filament"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr "Wysun filament 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Wysun filament 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Wysun filament 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Wysun filament 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5356
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Wysun filament 5"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Wysun"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1128
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr "Wysuwanie filamentu"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6815
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr "Krancowka nie aktyw."
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6809
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr "Krancowka"
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6797
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr "Krancowki"
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5871
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
 msgstr "Blad - pamiec statyczna zostala nadpisana"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4008
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie."
 
@@ -366,37 +376,37 @@ msgid "ERROR:"
 msgstr "BLAD:"
 
 # 
-#: Marlin_main.cpp:984
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "Zewnetrzna pamiec flash SPI W25X20CL nie odpowiada."
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr "Ekstruder 1"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr "Ekstruder 2"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr "Ekstruder 3"
 
 # 
-#: ultralcd.cpp:5385
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr "Ekstruder 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7083
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Went. ekstrudera:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2183
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr "Informacje o ekstruderze"
 
@@ -405,8 +415,13 @@ msgstr "Informacje o ekstruderze"
 msgid "Extruder"
 msgstr "Ekstruder"
 
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr ""
+
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4675
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
 msgstr "Autolad. fil [wl]"
 
@@ -416,12 +431,12 @@ msgid "F. autoload [N/A]"
 msgstr "Autolad.fil.[N/D]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4677
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
 msgstr "Autolad.fil.[wyl]"
 
 # 
-#: ultralcd.cpp:5853
+#: ultralcd.cpp:6112
 msgid "Fail stats"
 msgstr ""
 
@@ -436,12 +451,12 @@ msgid "Fan test"
 msgstr "Test wentylatora"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4848
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
 msgstr "Sprawd.went. [wl]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4850
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
 msgstr "Sprawd.went.[wyl]"
 
@@ -451,12 +466,12 @@ msgid "Fil. sensor  [on]"
 msgstr "Czuj. filam. [wl]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3104
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "Reakcja czujnika slaba, wylaczyc?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4655
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
 msgstr "Czuj. filam.[N/D]"
 
@@ -466,7 +481,7 @@ msgid "Fil. sensor [off]"
 msgstr "Czuj. filam.[wyl]"
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Filam. runouts"
 msgstr ""
 
@@ -476,32 +491,32 @@ msgid "Filament extruding & with correct color?"
 msgstr "Filament wychodzi z dyszy a kolor jest czysty?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Fil. nie zaladowany"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6863
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Czujnik filamentu"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7092
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Czujnik filamentu:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2513
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr "Uzyty filament"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2515
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Czas druku"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7209
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
 msgstr "Plik niekompletny. Kontynowac?"
 
@@ -511,27 +526,27 @@ msgid "Finishing movements"
 msgstr "Konczenie druku"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4925
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Kal. 1. warstwy"
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4488
+#: ultralcd.cpp:4740
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Najpierw wlacze selftest w celu sprawdzenia najczestszych problemow podczas montazu."
 
 # 
-#: mmu.cpp:436
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
 msgstr "Rozwiaz problem i wcisnij przycisk na MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5944
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Przeplyw"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2145
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr ""
 
@@ -541,22 +556,22 @@ msgid "Front print fan?"
 msgstr "Przedni went. druku?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Przod [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Przedni/lewy wentylator"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Grzalka/Termistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7400
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr "Grzanie wylaczone przez wyl. czasowy"
 
@@ -571,17 +586,17 @@ msgid "Heating"
 msgstr "Grzanie..."
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4467
+#: ultralcd.cpp:4719
 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?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2146
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5832
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Zmiana ekstrudera"
 
@@ -591,12 +606,12 @@ msgid "Change filament"
 msgstr "Wymiana filamentu"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2256
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Wymiana ok!"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Wymiana ok?"
 
@@ -606,12 +621,12 @@ msgid "Checking bed     "
 msgstr "Kontrola stolu"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Kontrola krancowek"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Kontrola hotendu"
 
@@ -621,17 +636,17 @@ msgid "Checking sensors "
 msgstr "Sprawdzanie czujnikow"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Kontrola osi X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7068
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Kontrola osi Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7069
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Kontrola osi Z"
 
@@ -651,17 +666,17 @@ msgid "Filament"
 msgstr ""
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4497
+#: ultralcd.cpp:4749
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Przeprowadze teraz kalibracje XYZ. Zajmie ok. 12 min."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4505
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr "Przeprowadze kalibracje Z."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4570
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr "Zaczne drukowac linie. Stopniowo opuszczaj dysze przekrecajac pokretlo, poki nie uzyskasz optymalnej wysokosci. Sprawdz obrazki w naszym Podreczniku w rozdz. Kalibracja"
 
@@ -696,27 +711,27 @@ msgid "Insert filament into extruder 4. Click when done."
 msgstr "Wloz filament do ekstrudera 4. Potwierdz naciskajac pokretlo."
 
 # 
-#: ultralcd.cpp:4530
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
 msgstr "Filament 1 zaladowany?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2242
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Wprowadz filament"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4533
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Filament jest zaladowany?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4564
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "Czy to filament PLA?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4310
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "Fialment PLA jest zaladowany?"
 
@@ -731,12 +746,12 @@ msgid "Iteration "
 msgstr "Iteracja "
 
 # 
-#: ultralcd.cpp:1949
+#: ultralcd.cpp:1976
 msgid "Last print failures"
 msgstr ""
 
 # 
-#: ultralcd.cpp:1964
+#: ultralcd.cpp:1960
 msgid "Last print"
 msgstr ""
 
@@ -746,17 +761,17 @@ msgid "Left hotend fan?"
 msgstr "Lewy went hotendu?"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Lewa"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Lewo [um]"
 
 # 
-#: ultralcd.cpp:4855
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr "Korekcja lin."
 
@@ -771,7 +786,7 @@ msgid "Load filament"
 msgstr "Ladowanie fil."
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2281
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Czyszcz. koloru"
 
@@ -781,12 +796,12 @@ msgid "Loading filament"
 msgstr "Laduje filament"
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6839
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Luzne kolo pasowe"
 
 # 
-#: ultralcd.cpp:5824
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr "Zaladuj do dyszy"
 
@@ -806,27 +821,42 @@ msgid "Measuring reference height of calibration point"
 msgstr "Okreslam wysokosc odniesienia punktu kalibracyjnego"
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4940
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
 msgstr "Poziomowanie stolu wg siatki"
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:474
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Wznawianie pozycji."
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:463
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Wznawiam nagrzewanie..."
 
 # 
-#: ultralcd.cpp:2684
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Zmierzony skos"
 
+# 
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr ""
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr ""
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr ""
+
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:485
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Wznawianie..."
 
@@ -841,10 +871,15 @@ msgid "Mode     [silent]"
 msgstr "Tryb      [cichy]"
 
 # 
-#: mmu.cpp:431
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "MMU wymaga uwagi uzytkownika."
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr ""
+
 # MSG_STEALTH_MODE_ON
 #: messages.c:85
 msgid "Mode    [Stealth]"
@@ -861,7 +896,7 @@ msgid "Mode [high power]"
 msgstr "Tryb[wysoka wyd.]"
 
 # 
-#: ultralcd.cpp:2158
+#: ultralcd.cpp:2241
 msgid "MMU2 connected"
 msgstr ""
 
@@ -871,42 +906,47 @@ msgid "Motor"
 msgstr "Silnik"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4839
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Ruch osi"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Ruch osi X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Ruch osi Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3915
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Ruch osi Z"
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Brak ruchu."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5804
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "Brak karty SD"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr ""
+
 # MSG_NO
 #: messages.c:58
 msgid "No"
 msgstr "Nie"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6787
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "Nie podlaczono "
 
@@ -926,12 +966,12 @@ msgid "Not spinning"
 msgstr "Nie kreci sie"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4821
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Kalibruje odleglosc miedzy koncowka dyszy a powierzchnia druku."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4513
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Nagrzewam dysze dla PLA."
 
@@ -941,42 +981,42 @@ msgid "Nozzle"
 msgstr "Dysza"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1488
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp."
 
 # 
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr "Teraz zdejmij wydruk testowy ze stolu."
 
 # 
-#: ultralcd.cpp:1880
+#: ultralcd.cpp:1919
 msgid "Nozzle FAN"
 msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5778
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr "Wstrzymanie wydruku"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "Kalibracja PID"
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "Kal. PID zakonczona"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4946
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "Kalibracja PID"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "Grzanie sondy PINDA"
 
@@ -986,7 +1026,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."
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4578
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr "Oczysc powierzchnie druku i nacisnij pokretlo."
 
@@ -996,7 +1036,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Dla prawidl. kalibracji nalezy oczyscic dysze. Potw. guzikiem."
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6779
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Sprawdz :"
 
@@ -1006,17 +1046,17 @@ 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."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4412
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr "Umiesc filament PLA w ekstruderze i nacisnij pokretlo, aby zaladowac."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4315
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Najpierw zaladuj filament PLA."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2988
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
 msgstr "Prosze odciagnac dzwignie dociskowa ekstrudera i recznie usunac filament."
 
@@ -1031,7 +1071,7 @@ msgid "Please press the knob to unload filament"
 msgstr "Nacisnij pokretlo aby rozladowac filament"
 
 # 
-#: ultralcd.cpp:4408
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Wsun filament PLA do pierwszej rurki MMU i nacisnij pokretlo aby go zaladowac."
 
@@ -1041,7 +1081,7 @@ msgid "Please pull out filament immediately"
 msgstr "Wyciagnij filament teraz"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1136
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr "Wyciagnij filament i wcisnij pokretlo."
 
@@ -1051,12 +1091,12 @@ msgid "Please remove steel sheet from heatbed."
 msgstr "Prosze zdjac plyte stalowa z podgrzewanego stolu."
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4010
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr "Prosze najpierw uruchomic kalibracje XYZ"
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1082
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Prosze zaktualizowac Firmware MMU2. Czekam na reset."
 
@@ -1066,7 +1106,7 @@ msgid "Please wait"
 msgstr "Prosze czekac"
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Najpierw usun zabezpieczenia transportowe"
 
@@ -1076,7 +1116,7 @@ msgid "Preheat the nozzle!"
 msgstr "Nagrzej dysze!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5767
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Grzanie"
 
@@ -1091,12 +1131,12 @@ msgid "Please upgrade."
 msgstr "Prosze zaktualizowac."
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9054
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac."
 
 # 
-#: ultralcd.cpp:1932
+#: ultralcd.cpp:2013
 msgid "Power failures"
 msgstr ""
 
@@ -1105,8 +1145,18 @@ msgstr ""
 msgid "Print aborted"
 msgstr "Druk przerwany"
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr ""
+
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7086
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Went. wydruku:"
 
@@ -1115,13 +1165,18 @@ msgstr "Went. wydruku:"
 msgid "Print from SD"
 msgstr "Druk z karty SD"
 
+# 
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr ""
+
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Druk wstrzymany"
 
 # 
-#: mmu.cpp:435
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Wcisnij pokretlo aby wznowic podgrzewanie dyszy."
 
@@ -1131,7 +1186,7 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi
 msgstr "Drukarka nie zostala jeszcze skalibrowana. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Konfiguracja przed drukowaniem."
 
 # 
-#: ultralcd.cpp:1882
+#: ultralcd.cpp:1921
 msgid "Print FAN"
 msgstr ""
 
@@ -1146,42 +1201,47 @@ msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 gotowa"
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2144
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Tyl [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8481
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr "Wznawianie wydruku"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:535
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr "Wyciagnij poprzedni filament i nacisnij pokretlo aby zaladowac nowy."
 
+# 
+#: 
+msgid "Prusa i3 MK3S OK."
+msgstr ""
+
 # 
 #: 
 msgid "Prusa i3 MK2 ready."
 msgstr "Prusa i3 MK2 gotowa"
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4953
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr "Reset kalibr. XYZ"
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2893
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr ""
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5782
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Wznowic wydruk"
 
@@ -1191,37 +1251,37 @@ msgid "Resuming print"
 msgstr "Wznawianie druku"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Prawo [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4867
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
 msgstr "Port RPi     [wl]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4865
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
 msgstr "Port RPi    [wyl]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4331
+#: ultralcd.cpp:4583
 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?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4781
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
 msgstr "Karta SD [normal]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4779
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
 msgstr "Karta SD[FlshAir]"
 
 # 
-#: ultralcd.cpp:2650
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Prawa"
 
@@ -1231,27 +1291,27 @@ msgid "Searching bed calibration point"
 msgstr "Szukam punktu kalibracyjnego na stole"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4874
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Wybor jezyka"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6351
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr "Selftest OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6184
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Rozpoczynanie Selftestu"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4927
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Selftest "
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Blad selftest !"
 
@@ -1261,22 +1321,22 @@ msgid "Selftest failed  "
 msgstr "Selftest nieudany"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1520
+#: Marlin_main.cpp:1548
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek"
 
 # 
-#: ultralcd.cpp:4551
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu."
 
 # 
-#: ultralcd.cpp:4301
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "Wybierz filament PLA:"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2901
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Ustaw. temperatury:"
 
@@ -1286,12 +1346,22 @@ msgid "Settings"
 msgstr "Ustawienia"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4950
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Pokaz krancowki"
 
 # 
-#: ultralcd.cpp:4948
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr ""
+
+# 
+#: 
+msgid "Sensors info"
+msgstr ""
+
+# 
+#: 
 msgid "Show pinda state"
 msgstr "Stan sondy PINDA"
 
@@ -1301,22 +1371,22 @@ msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting
 msgstr "Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100."
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4791
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
 msgstr "Sortuj:    [brak]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
 msgstr "Sortuj:    [czas]"
 
 # 
-#: ultralcd.cpp:2687
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr "Znaczny skos"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
 msgstr "Sortuj: [alfabet]"
 
@@ -1331,7 +1401,7 @@ msgid "Sound      [loud]"
 msgstr "Dzwiek   [Glosny]"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Lekki skos"
 
@@ -1341,7 +1411,7 @@ msgid "Sound      [mute]"
 msgstr "Dzwiek[Wylaczony]"
 
 # 
-#: Marlin_main.cpp:4518
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Wykryto problem, wymuszono poziomowanie osi Z ..."
 
@@ -1356,7 +1426,7 @@ msgid "Sound    [silent]"
 msgstr "Dzwiek    [Cichy]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5938
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr "Predkosc"
 
@@ -1366,12 +1436,12 @@ msgid "Spinning"
 msgstr "Kreci sie"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4023
+#: Marlin_main.cpp:4065
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Potrzebna jest stabilna temperatura otoczenia 21-26C i stabilne podloze."
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5849
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Statystyki"
 
@@ -1386,12 +1456,12 @@ msgid "STOPPED. "
 msgstr "ZATRZYMANO."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5856
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr "Wsparcie"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6857
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Zamieniono"
 
@@ -1401,22 +1471,22 @@ msgid "Temp. cal.          "
 msgstr "Kalibracja temp."
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4861
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
 msgstr "Kalibr. temp.[wl]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4859
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
 msgstr "Kalibr.temp.[wyl]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4959
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Kalibracja temp."
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3526
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr "Kalibracja temperaturowa nieudana"
 
@@ -1426,12 +1496,12 @@ 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."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4837
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr "Temperatura"
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2189
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr "Temperatury"
 
@@ -1441,35 +1511,45 @@ 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."
 
 # 
-#: ultralcd.cpp:2540
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Calkowita dlugosc filamentu"
 
 # 
-#: ultralcd.cpp:2542
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr "Calkowity czas druku"
 
 # MSG_TUNE
-#: ultralcd.cpp:5764
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Strojenie"
 
 # 
-#: ultralcd.cpp:4388
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Rozladuj"
 
 # 
-#: ultralcd.cpp:5366
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Rozladuj wszystkie"
 
 # 
-#: ultralcd.cpp:1931
+#: ultralcd.cpp:1994
 msgid "Total failures"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr ""
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr ""
+
 # MSG_UNLOAD_FILAMENT c=17
 #: messages.c:91
 msgid "Unload filament"
@@ -1481,62 +1561,62 @@ msgid "Unloading filament"
 msgstr "Rozladowuje filament"
 
 # 
-#: ultralcd.cpp:1965
+#: ultralcd.cpp:1961
 msgid "Total"
 msgstr ""
 
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Uzyte podczas druku"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2192
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Napiecia"
 
 # 
-#: ultralcd.cpp:2166
+#: ultralcd.cpp:2249
 msgid "unknown"
 msgstr ""
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Czekam na uzytkownika..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3045
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Oczekiwanie na wychlodzenie dyszy i stolu"
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3009
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
 msgstr "Czekam az spadnie temp. sondy PINDA"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
 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
-#: Marlin_main.cpp:1480
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Ostrzezenie: typ drukarki i plyta glowna ulegly zmianie."
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1472
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr "Ostrzezenie: plyta glowna ulegla zmianie."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1476
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie"
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2977
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
 msgstr "Rozladowanie fil. ok?"
 
@@ -1546,12 +1626,12 @@ msgid "Wiring error"
 msgstr "Blad polaczenia"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr "Asystent"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2182
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "Szczegoly kal. XYZ"
 
@@ -1571,97 +1651,97 @@ msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Zawsze mozesz uruchomic Asystenta ponownie przez Kalibracja -> Asystent."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3497
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Kalibracja XYZ pomyslna. Skos bedzie automatycznie korygowany."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3494
+#: ultralcd.cpp:3712
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Kalibracja XYZ prawidlowa. Osie X/Y lekko skosne. Dobra robota!"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "Korekcja X"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3491
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Kalibracja XYZ ok. Osie X/Y sa prostopadle. Gratulacje!"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3475
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3478
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3481
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr "Kalibracja XYZ niedokladna. Lewy przedni punkt nieosiagalny."
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Zalad. wszystkie"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Zaladuj fil. 1"
 
 # 
-#: ultralcd.cpp:3457
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych."
 
 # 
-#: ultralcd.cpp:3463
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki."
 
 # 
-#: ultralcd.cpp:3469
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "Kalibr. XYZ nieudana. Lewy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Zaladuj fil. 2"
 
 # 
-#: ultralcd.cpp:3466
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Zaladuj fil. 3"
 
 # 
-#: ultralcd.cpp:2647
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Dystans od 0 w osi Y"
 
 # 
-#: ultralcd.cpp:4634
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Korekcja Y"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5328
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Zaladuj fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5331
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Laduj filament 5"
 

+ 466 - 301
lang/po/new/cs.po

@@ -8,12 +8,12 @@ msgstr ""
 "X-Generator: PhraseApp (phraseapp.com)\n"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:4219
 msgid "\e[2JCrash detection can\e[1;0Hbe turned on only in\e[2;0HNormal mode"
 msgstr "\e[2JCrash detekce muze\e[1;0Hbyt zapnuta pouze v\e[2;0HNormal modu"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3979
+#: ultralcd.cpp:4231
 msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode"
 msgstr "\e[2JPOZOR:\e[1;0HCrash detekce\e[2;0Hdeaktivovana ve\e[3;0HStealth modu"
 
@@ -43,12 +43,12 @@ msgid " Last Updated: "
 msgstr "Naposledy aktualizovano:"
 
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
-#: messages.c:44
+#: messages.c:39
 msgid " of 4"
 msgstr " z 4"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14
-#: messages.c:61
+#: messages.c:56
 msgid " of 9"
 msgstr " z 9"
 
@@ -67,8 +67,13 @@ msgstr " \002 Max"
 msgid " \002 Min"
 msgstr " \002 Min"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ">Zrusit"
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Dostavovani Z"
 
@@ -78,22 +83,27 @@ msgid "All"
 msgstr "Vse"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Vse OK "
 
 # MSG_WIZARD_DONE c=20 r=8
-#: messages.c:104
+#: messages.c:95
 msgid "All is done. Happy printing!"
 msgstr "Vse je hotovo."
 
+# 
+#: ultralcd.cpp:2109
+msgid "Ambient"
+msgstr "Okoli"
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "a stisknete tlacitko"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
 msgstr "Dojely oba Z voziky k~hornimu dorazu?"
 
@@ -123,27 +133,27 @@ msgid "Auto home"
 msgstr "Auto home"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "AutoZavedeni fil."
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Automaticke zavadeni filamentu je dostupne pouze pri zapnutem filament senzoru..."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2438
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Automaticke zavadeni filamentu aktivni, stisknete tlacitko a vlozte filament..."
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Osa"
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6845
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Delka osy"
 
@@ -163,7 +173,7 @@ msgid "Bed"
 msgstr "Podlozka"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Podlozka / Topeni"
 
@@ -178,7 +188,7 @@ msgid "Bed Heating"
 msgstr "Zahrivani bed"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr "Korekce podlozky"
 
@@ -188,12 +198,12 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr "Kalibrace Z selhala. Sensor nesepnul. Znecistena tryska? Cekam na reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4467
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 msgstr "Kalibrace Z selhala. Sensor je odpojeny nebo preruseny kabel. Cekam na reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4471
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Kalibrace Z selhala. Sensor sepnul prilis vysoko. Cekam na reset."
 
@@ -203,17 +213,17 @@ msgid "Begin file list"
 msgstr "Pocatek seznamu souboru"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Stav remenu"
 
 # MSG_RECOVER_PRINT c=20 r=2
-#: messages.c:74
+#: messages.c:67
 msgid "Blackout occurred. Recover print?"
 msgstr "Detekovan vypadek proudu.Obnovit tisk?"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Zkalibrovat"
 
@@ -223,17 +233,22 @@ msgid "Calibrate E"
 msgstr "Kalibrovat E"
 
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Kalibrace XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Kalibrovat Z"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr "Kalibruji vychozi poz."
+
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 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."
 
@@ -243,22 +258,22 @@ msgid "Calibrating Z"
 msgstr "Kalibruji Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 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."
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr "Kalibrace"
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Kalibrace OK"
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Zrusit"
 
@@ -273,22 +288,22 @@ msgid "Cannot open subdir"
 msgstr "Nelze otevrit slozku"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#:
 msgid "Card inserted"
 msgstr "Karta vlozena"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "Karta vyjmuta"
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Zmenit extruder"
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Vymenit filament"
 
@@ -298,12 +313,12 @@ msgid "Change SD card"
 msgstr "Vymenit SD"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Zmena uspesna!"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Vymena ok?"
 
@@ -313,37 +328,37 @@ msgid "Changing filament!"
 msgstr "Vymena filamentu!"
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
 msgstr "Kontrola podlozky"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Kontrola endstopu"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Kontrola hotend "
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
-#: messages.c:87
+#: messages.c:78
 msgid "Checking sensors "
 msgstr "Kontrola senzoru"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Kontrola osy X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Kontrola osy Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Kontrola osy Z"
 
@@ -353,17 +368,17 @@ msgid "checksum mismatch, Last Line: "
 msgstr "neplatny kontrolni soucet, posl. radek:\n"
 
 # MSG_CHOOSE_EXTRUDER c=20 r=1
-#: messages.c:54
+#: messages.c:49
 msgid "Choose extruder:"
 msgstr "Vyberte extruder:"
 
 # MSG_CHOOSE_FILAMENT c=20 r=1
-#: messages.c:55
+#: messages.c:50
 msgid "Choose filament:"
 msgstr "Vyber filament:"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Barva neni cista"
 
@@ -377,20 +392,30 @@ msgstr "Zchladit"
 msgid "Copy selected language from XFLASH?"
 msgstr "Kopirovat vybrany jazyk do XFLASH?"
 
+# 
+#: ultralcd.cpp:4360
+msgid "Copy selected language?"
+msgstr "Kopirovat vybrany jazyk?"
+
+# 
+#: ultralcd.cpp:2013
+msgid "Crash"
+msgstr "Naraz"
+
 # MSG_CRASHDETECT_ON
 #: messages.c:27
 msgid "Crash det.   [on]"
-msgstr "Crash det. [zap]"
+msgstr "Crash det.  [zap]"
 
 # MSG_CRASHDETECT_NA
 #: messages.c:25
 msgid "Crash det.  [N/A]"
-msgstr "Crash det. [N/A]"
+msgstr "Crash det.  [N/A]"
 
 # MSG_CRASHDETECT_OFF
 #: messages.c:26
 msgid "Crash det.  [off]"
-msgstr "Crash det. [vyp]"
+msgstr "Crash det.  [vyp]"
 
 # MSG_CRASH_DETECTED c=20 r=1
 #: messages.c:24
@@ -398,22 +423,22 @@ msgid "Crash detected."
 msgstr "Detekovan naraz."
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Detekovan naraz. Obnovit tisk?"
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Pouze aktualni"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Datum:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Vypnout motory"
 
@@ -423,7 +448,7 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr "Neni zkalibrovana vzdalenost trysky od tiskove podlozky. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Nastaveni prvni vrstvy."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4575
+#: ultralcd.cpp:4828
 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?"
 
@@ -433,47 +458,47 @@ msgid "E calibration finished. Please clean the nozzle. Click when done."
 msgstr "E kalibrace ukoncena. Prosim ocistete trysku. Pote potvrdte tlacitkem."
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4636
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "Korekce E"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Vysunout"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr "Vysunout filament"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr "Vysunout filament 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Vysunout filament 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Vysunout filament 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Vysunout filament 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Vysunout filament 5"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr "Vysouvam filament"
 
@@ -483,17 +508,17 @@ msgid "End file list"
 msgstr "Konec sezn. souboru"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr "Koncovy spinac"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr "Kon. spinac nesepnut"
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr "Konc. spinace"
 
@@ -513,7 +538,7 @@ msgid "enqueing \""
 msgstr "zarazovani \""
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
 msgstr "Chyba - Doslo k prepisu staticke pameti!"
 
@@ -523,137 +548,152 @@ msgid "error writing to file"
 msgstr "chyba zapisu do souboru"
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr "CHYBA:"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte zapojeni."
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "Externi SPI flash W25X20CL neodpovida."
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr "Extruder"
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr "Extruder 1"
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr "Extruder 2"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr "Extruder 3"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr "Extruder 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Levy vent.:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr "Extruder info"
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
 msgstr "F. autozav. [zap]"
 
 # MSG_FSENS_AUTOLOAD_NA c=17 r=1
-#: messages.c:48
+#: messages.c:43
 msgid "F. autoload [N/A]"
 msgstr "F. autozav. [N/A]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4676
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
 msgstr "F. autozav. [vyp]"
 
+# 
+#: ultralcd.cpp:6112
+msgid "Fail stats"
+msgstr "Selhani"
+
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr "Selhani MMU"
+
 # MSG_FAN_SPEED c=14
-#: messages.c:36
+#: messages.c:31
 msgid "Fan speed"
 msgstr "Rychlost vent."
 
 # MSG_SELFTEST_FAN c=20
-#: messages.c:83
+#: messages.c:74
 msgid "Fan test"
 msgstr "Test ventilatoru"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4847
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
 msgstr "Kontr. vent.[zap]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
 msgstr "Kontr. vent.[vyp]"
 
 # MSG_FSENSOR_ON
-#: messages.c:50
+#: messages.c:45
 msgid "Fil. sensor  [on]"
 msgstr "Fil. senzor [zap]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3105
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "Senzor nerozpoznal filament, vypnout?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
 msgstr "Fil. senzor [N/A]"
 
 # MSG_FSENSOR_OFF
-#: messages.c:49
+#: messages.c:44
 msgid "Fil. sensor [off]"
 msgstr "Fil. senzor [vyp]"
 
+# 
+#: ultralcd.cpp:2013
+msgid "Filam. runouts"
+msgstr "Vypadky filamentu"
+
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
 msgstr "Filament"
 
 # MSG_FILAMENT_CLEAN c=20 r=2
-#: messages.c:37
+#: messages.c:32
 msgid "Filament extruding & with correct color?"
 msgstr "Filament vytlacen a spravne barvy?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Filament nezaveden"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Senzor filamentu"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Senzor filamentu:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr "Spotrebovano filamentu"
 
@@ -663,7 +703,7 @@ msgid "Filament used:  "
 msgstr "Filament : "
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
 msgstr "Soubor nekompletni. Pokracovat?"
 
@@ -678,92 +718,92 @@ msgid "File selected"
 msgstr "Soubor vybran"
 
 # MSG_FINISHING_MOVEMENTS c=20 r=1
-#: messages.c:45
+#: messages.c:40
 msgid "Finishing movements"
 msgstr "Dokoncovani pohybu"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Kal. prvni vrstvy"
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4740
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Nejdriv pomoci selftestu zkontoluji nejcastejsi chyby vznikajici pri sestaveni tiskarny."
 
 # 
-#: mmu.cpp:423
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
 msgstr "Opravte chybu a pote stisknete tlacitko na jednotce MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Prutok"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr "forum.prusa3d.com"
 
 # MSG_SELFTEST_COOLING_FAN c=20
-#: messages.c:80
+#: messages.c:71
 msgid "Front print fan?"
 msgstr "Predni tiskovy vent?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Vpredu [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Predni/levy vent."
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Topeni/Termistor"
 
 # MSG_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
 msgstr "Zahrivani"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr "Zahrivani preruseno bezpecnostnim casovacem."
 
 # MSG_HEATING_COMPLETE c=20
-#: messages.c:52
+#: messages.c:47
 msgid "Heating done."
 msgstr "Zahrivani OK."
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4719
 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?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2142
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr "howto.prusa3d.com"
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4749
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Nyni provedu xyz kalibraci. Zabere to priblizne 12 min."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr "Nyni provedu z kalibraci."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr "Zacnu tisknout linku a Vy budete postupne snizovat trysku otacenim tlacitka dokud nedosahnete optimalni vysky. Prohlednete si obrazky v nasi prirucce v kapitole Kalibrace."
 
@@ -773,7 +813,7 @@ msgid "Improving bed calibration point"
 msgstr "Zlepsuji presnost kalibracniho bodu"
 
 # MSG_WATCH
-#: messages.c:102
+#: messages.c:93
 msgid "Info screen"
 msgstr "Informace"
 
@@ -783,52 +823,52 @@ msgid "Init. SD card"
 msgstr "Inic. SD"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Vlozte filament"
 
 # MSG_FILAMENT_LOADING_T0 c=20 r=4
-#: messages.c:38
+#: messages.c:33
 msgid "Insert filament into extruder 1. Click when done."
 msgstr "Vlozte filament do extruderu 1. Potvrdte tlacitkem."
 
 # MSG_FILAMENT_LOADING_T1 c=20 r=4
-#: messages.c:39
+#: messages.c:34
 msgid "Insert filament into extruder 2. Click when done."
 msgstr "Vlozte filament do extruderu 2. Potvrdte tlacitkem."
 
 # MSG_FILAMENT_LOADING_T2 c=20 r=4
-#: messages.c:40
+#: messages.c:35
 msgid "Insert filament into extruder 3. Click when done."
 msgstr "Vlozte filament do extruderu 3. Potvrdte tlacitkem."
 
 # MSG_FILAMENT_LOADING_T3 c=20 r=4
-#: messages.c:41
+#: messages.c:36
 msgid "Insert filament into extruder 4. Click when done."
 msgstr "Vlozte filament do extruderu 4. Potvrdte tlacitkem."
 
 # 
-#: ultralcd.cpp:4529
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
 msgstr "Je filament 1 zaveden?"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Je filament zaveden?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "Je to PLA filament?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "Je PLA filament zaveden?"
 
 # MSG_STEEL_SHEET_CHECK c=20 r=2
-#: messages.c:95
+#: messages.c:86
 msgid "Is steel sheet on heatbed?"
 msgstr "Je tiskovy plat na podlozce?"
 
@@ -843,17 +883,27 @@ msgid "KILLED. "
 msgstr "ZRUSENO."
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:1960
+msgid "Last print"
+msgstr "Posledni tisk"
+
+# 
+#: ultralcd.cpp:1976
+msgid "Last print failures"
+msgstr "Selhani posl. tisku"
+
+# 
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Vlevo:"
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Levy vent na trysce?"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Vlevo [um]"
 
@@ -863,7 +913,7 @@ msgid "Left:"
 msgstr "Vlevo:"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr "Korekce lin."
 
@@ -873,57 +923,57 @@ msgid "Live adjust Z"
 msgstr "Doladeni osy Z"
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5323
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Zavest vse"
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr "Zavest filament"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Zavest filament 1"
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Zavest filament 2"
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Zavest filament 3"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Zavest filament 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Zavest filament 5"
 
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr "Zavest do trysky"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Cisteni barvy"
 
 # MSG_LOADING_FILAMENT c=20
-#: messages.c:57
+#: messages.c:52
 msgid "Loading filament"
 msgstr "Zavadeni filamentu"
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6837
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Uvolnena remenicka"
 
@@ -943,7 +993,7 @@ msgid "M109 Invalid extruder "
 msgstr "M109 Neplatny extruder "
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Kal. prvni vrstvy"
 
@@ -963,7 +1013,7 @@ msgid "M221 Invalid extruder "
 msgstr "M221 Neplatny extruder "
 
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Hlavni nabidka"
 
@@ -973,7 +1023,7 @@ msgid "Mark filament 100mm from extruder body. Click when done."
 msgstr "Oznacte filament 100 mm od tela extruderu a pote potvrdte tlacitkem."
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Merene zkoseni"
 
@@ -983,17 +1033,32 @@ msgid "Measured skew:"
 msgstr "Merene zkoseni:"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60
-#: messages.c:60
+#: messages.c:55
 msgid "Measuring reference height of calibration point"
 msgstr "Merim referencni vysku kalibracniho bodu"
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4939
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
 msgstr "Mesh Bed Leveling"
 
 # 
-#: mmu.cpp:418
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr "Selhani MMU"
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr "Zavedeni MMU selhalo"
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr "MMU selhani zavadeni"
+
+# 
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "MMU potrebuje zasah uzivatele."
 
@@ -1003,34 +1068,44 @@ msgid "MMU needs user attention. Fix the issue and then press button on MMU unit
 msgstr "MMU potrebuje zasah uzivatele. Opravte chybu a pote stisknete tlacitko na jednotce MMU."
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Pokracuji v tisku..."
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:450
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Pokracuji v nahrivani..."
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Pokracuji..."
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr "MMU vypadky proudu"
+
+# 
+#: ultralcd.cpp:2241
+msgid "MMU2 connected"
+msgstr "MMU2 pripojeno"
+
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
-msgstr "Mod [Normal]"
+msgstr "Mod      [Normal]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
-msgstr "Mod [tichy]"
+msgstr "Mod       [tichy]"
 
 # MSG_STEALTH_MODE_ON
-#: messages.c:94
+#: messages.c:85
 msgid "Mode    [Stealth]"
-msgstr "Mod [tichy]"
+msgstr "Mod       [tichy]"
 
 # MSG_AUTO_MODE_ON
 #: messages.c:12
@@ -1038,42 +1113,47 @@ msgid "Mode [auto power]"
 msgstr "Mod [automaticky]"
 
 # MSG_SILENT_MODE_OFF
-#: messages.c:91
+#: messages.c:82
 msgid "Mode [high power]"
-msgstr "Mod [vys. vykon]"
+msgstr "Mod  [vys. vykon]"
 
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr "Motor"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Posunout osu"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Posunout X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Posunout Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Posunout Z"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr "N/A"
+
 # 
 #: util.cpp:293
 msgid "New firmware version available:"
 msgstr "Vysla nova verze firmware:"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr "Ne"
 
@@ -1088,12 +1168,12 @@ msgid "No Checksum with line number, Last Line: "
 msgstr "Zadny kontrolni soucet s cislem radku, Posl. radek:"
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Bez pohybu."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "Zadna SD karta"
 
@@ -1103,35 +1183,40 @@ msgid "No thermistors - no temperature"
 msgstr "Bez termistoru - bez odectu teploty"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "Nezapojeno "
 
 # MSG_SELFTEST_FAN_NO c=19
-#: messages.c:84
+#: messages.c:75
 msgid "Not spinning"
 msgstr "Netoci se"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4568
+#: ultralcd.cpp:4821
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Nyni zkalibruji vzdalenost mezi koncem trysky a povrchem podlozky."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4512
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Nyni predehreji trysku pro PLA."
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Tryska"
 
+# 
+#: ultralcd.cpp:1919
+msgid "Nozzle FAN"
+msgstr "Trysk. vent."
+
 # MSG_INFO_NOZZLE_FAN c=11 r=1
 #: ultralcd.cpp:1537
 msgid "Nozzle FAN:"
@@ -1153,7 +1238,7 @@ msgid "ok"
 msgstr "ok"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd."
 
@@ -1173,7 +1258,7 @@ msgid "openRoot failed"
 msgstr "openRoot selhal"
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr "Pozastavit tisk"
 
@@ -1183,42 +1268,42 @@ msgid "Pick print"
 msgstr "Vyberte vytisk"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "PID kal. "
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "PID kal. ukoncena"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "PID kalibrace"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "Nahrivani PINDA"
 
 # MSG_PAPER c=20 r=8
-#: messages.c:66
+#: messages.c:60
 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."
 msgstr "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, okamzite vypnete tiskarnu."
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Zkontrolujte :"
 
 # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
-#: messages.c:103
+#: messages.c:94
 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
 msgstr "Prosim nahlednete do prirucky 3D tiskare a opravte problem. Pote obnovte Pruvodce restartovanim tiskarny."
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr "Prosim ocistete podlozku a stisknete tlacitko."
 
@@ -1228,12 +1313,12 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4411
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr "Prosim vlozte PLA filament do extruderu, pote stisknete tlacitko pro zavedeni filamentu."
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Prosim vlozte PLA filament do trubicky MMU, pote stisknete tlacitko pro zavedeni filamentu."
 
@@ -1243,52 +1328,52 @@ msgid "Please load PLA filament and then resume Wizard by rebooting the printer.
 msgstr "Prosim zavedte PLA filament a po te obnovte Pruvodce stisknutim reset tlacitka."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4314
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Nejdrive prosim zavedte PLA filament."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2989
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
 msgstr "Prosim otevrete idler a manualne odstrante filament."
 
 # MSG_PLACE_STEEL_SHEET c=20 r=4
-#: messages.c:67
+#: messages.c:61
 msgid "Please place steel sheet on heatbed."
 msgstr "Umistete prosim tiskovy plat na podlozku"
 
 # MSG_PRESS_TO_UNLOAD c=20 r=4
-#: messages.c:71
+#: messages.c:64
 msgid "Please press the knob to unload filament"
 msgstr "Pro vysunuti filamentu stisknete prosim tlacitko"
 
 # MSG_PULL_OUT_FILAMENT c=20 r=4
-#: messages.c:73
+#: messages.c:66
 msgid "Please pull out filament immediately"
 msgstr "Prosim vyjmete urychlene filament"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1114
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr "Prosim vyjmete filament a pote stisknete tlacitko."
 
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Nejprve prosim sundejte transportni soucastky."
 
 # MSG_REMOVE_STEEL_SHEET c=20 r=4
-#: messages.c:77
+#: messages.c:70
 msgid "Please remove steel sheet from heatbed."
 msgstr "Odstrante prosim tiskovy plat z podlozky."
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4011
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr "Nejprve spustte kalibraci XYZ."
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Prosim aktualizujte firmware ve vasi MMU2 jednotce. Cekam na reset."
 
@@ -1298,57 +1383,82 @@ msgid "Please upgrade."
 msgstr "Prosim aktualizujte."
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Prosim cekejte"
 
+# 
+#: ultralcd.cpp:2013
+msgid "Power failures"
+msgstr "Vypadky proudu"
+
 # MSG_POWERUP
 #: messages.c:69
 msgid "PowerUp"
 msgstr "Zapnuti"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Predehrev"
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Predehrejte trysku!"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr "Predehrivam trysku. Prosim cekejte."
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr "Predehrivam k zavedeni"
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr "Predehrivam k vyjmuti"
+
 # MSG_PREPARE_FILAMENT c=20 r=1
 #: ultralcd.cpp:1911
 msgid "Prepare new filament"
 msgstr "Pripravte filament"
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko."
 
 # 
-#: mmu.cpp:422
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr "Stisknete hl. tlacitko"
+
+# 
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Pro pokracovani nahrivani trysky stisknete tlacitko."
 
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Tisk prerusen"
 
+# 
+#: ultralcd.cpp:1921
+msgid "Print FAN"
+msgstr "Tiskovy vent."
+
 # MSG_INFO_PRINT_FAN c=11 r=1
 #: ultralcd.cpp:1549
 msgid "Print FAN: "
 msgstr "Tisk. vent:"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Tiskovy vent.:"
 
@@ -1358,12 +1468,12 @@ msgid "Print from SD"
 msgstr "Tisk z SD"
 
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Tisk pozastaven"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Cas tisku"
 
@@ -1383,7 +1493,7 @@ msgid "Printer halted. kill() called!"
 msgstr "Tiskarna zastavena. Volano kill()!"
 
 # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
-#: messages.c:46
+#: messages.c:41
 msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."
 msgstr "Tiskarna nebyla jeste zkalibrovana. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Postup kalibrace."
 
@@ -1407,18 +1517,23 @@ msgstr "Prusa i3 MK2.5 ok."
 msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 ok."
 
+# 
+#:
+msgid "Prusa i3 MK3S OK."
+msgstr "Prusa i3 MK3S OK."
+
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr "prusa3d.com"
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Vzadu [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr "Obnovovani tisku "
 
@@ -1428,7 +1543,7 @@ msgid "Refresh"
 msgstr "Obnovit"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho."
 
@@ -1448,32 +1563,32 @@ msgid "Resend: "
 msgstr "Poslat znovu: "
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr "Reset"
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr "Reset XYZ kalibr."
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Pokracovat"
 
 # MSG_RESUMING_PRINT c=20 r=1
-#: messages.c:76
+#: messages.c:69
 msgid "Resuming print"
 msgstr "Obnoveni tisku"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Vpravo"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Vpravo [um]"
 
@@ -1488,24 +1603,24 @@ msgid "Rotate knob until mark reaches extruder body. Click when done."
 msgstr "Otacejte tlacitkem dokud znacka nedosahne tela extruderu. Potvrdte tlacitkem."
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
-msgstr "RPi port [zap]"
+msgstr "RPi port    [zap]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
-msgstr "RPi port [vyp]"
+msgstr "RPi port    [vyp]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4583
 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?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4780
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
-msgstr "SD card [normal]"
+msgstr "SD card  [normal]"
 
 # MSG_SD_CARD_OK
 #: cardreader.cpp:202
@@ -1518,7 +1633,7 @@ msgid "SD card [FlshAir]"
 msgstr "SD card [FlshAir]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
 msgstr "SD card [FlshAir]"
 
@@ -1533,67 +1648,77 @@ msgid "SD printing byte "
 msgstr "SD printing byte "
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60
-#: messages.c:43
+#: messages.c:38
 msgid "Searching bed calibration point"
 msgstr "Hledam kalibracni bod podlozky"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4873
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Vyber jazyka"
 
 # 
-#: ultralcd.cpp:4550
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu."
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "Vyberte PLA filament:"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr "Self test OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Self test start "
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Selftest "
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Chyba Selftestu!"
 
 # MSG_SELFTEST_FAILED c=20
-#: messages.c:82
+#: messages.c:73
 msgid "Selftest failed  "
 msgstr "Selftest selhal "
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1521
+#: Marlin_main.cpp:1548
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest."
 
+# 
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr "Stav senzoru"
+
+# 
+#:
+msgid "Sensors info"
+msgstr "Senzor info"
+
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Nastavte teplotu:"
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Nastaveni"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr "Tezke zkoseni"
 
@@ -1603,12 +1728,12 @@ msgid "Severe skew:"
 msgstr "Tezke zkoseni:"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Stav konc. spin."
 
 # 
-#: ultralcd.cpp:4947
+#:
 msgid "Show pinda state"
 msgstr "Zobrazit stav PINDA"
 
@@ -1618,7 +1743,7 @@ msgid "Sleep..."
 msgstr "Spankovy rezim..."
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Lehke zkoseni"
 
@@ -1633,7 +1758,7 @@ msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting
 msgstr "Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100."
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Vyskytl se problem, srovnavam osu Z ..."
 
@@ -1643,9 +1768,9 @@ msgid "Sort:      [None]"
 msgstr "Trideni [Zadne]"
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
-msgstr "Trideni [Zadne]"
+msgstr "Trideni   [Zadne]"
 
 # MSG_SORT_TIME c=17 r=1
 #: ultralcd.cpp:4248
@@ -1653,9 +1778,9 @@ msgid "Sort:      [Time]"
 msgstr "Trideni [Cas]\n"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
-msgstr "Trideni: [cas]"
+msgstr "Trideni:    [cas]"
 
 # MSG_SORT_ALPHA c=17 r=1
 #: ultralcd.cpp:4249
@@ -1663,7 +1788,7 @@ msgid "Sort:  [Alphabet]"
 msgstr "Trideni [Abeceda]"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
 msgstr "Trideni [Abeceda]"
 
@@ -1685,40 +1810,55 @@ msgstr "Trideni souboru"
 # MSG_SOUND_LOUD c=17 r=1
 #: sound.h:5
 msgid "Sound      [loud]"
-msgstr "Zvuk [hlasity]"
+msgstr "Zvuk    [hlasity]"
 
 # MSG_SOUND_MUTE c=17 r=1
 #: sound.h:8
 msgid "Sound      [mute]"
-msgstr "Zvuk [vypnuto]"
+msgstr "Zvuk    [vypnuto]"
 
 # MSG_SOUND_ONCE c=17 r=1
 #: sound.h:6
 msgid "Sound      [once]"
-msgstr "Zvuk [jednou]"
+msgstr "Zvuk     [jednou]"
 
 # MSG_SOUND_SILENT c=17 r=1
 #: sound.h:7
 msgid "Sound    [silent]"
-msgstr "Zvuk [tichy]"
+msgstr "Zvuk      [tichy]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr "Rychlost"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Toci se"
 
+# MSG_AUTO_DEPLETE_ON c=17 r=1
+#: ultralcd.cpp:4959
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin   [zap]"
+
+# 
+#: ultralcd.cpp:4955
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin   [N/A]"
+
+# MSG_AUTO_DEPLETE_OFF c=17 r=1
+#: ultralcd.cpp:4963
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [vyp]"
+
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4065
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Je vyzadovana stabilni pokojova teplota 21-26C a pevna podlozka."
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5847
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Statistika "
 
@@ -1728,52 +1868,52 @@ msgid "Steprate too high: "
 msgstr "Krokovani prilis vysoko:"
 
 # MSG_STOP_PRINT
-#: messages.c:96
+#: messages.c:87
 msgid "Stop print"
 msgstr "Zastavit tisk"
 
 # MSG_STOPPED
-#: messages.c:97
+#: messages.c:88
 msgid "STOPPED. "
 msgstr "ZASTAVENO."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr "Podpora"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Prohozene"
 
 # MSG_TEMP_CALIBRATION c=20 r=1
-#: messages.c:98
+#: messages.c:89
 msgid "Temp. cal.          "
 msgstr "Tepl. kal. "
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4860
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
-msgstr "Tepl. kal. [zap]"
+msgstr "Tepl. kal.  [zap]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
-msgstr "Tepl. kal. [vyp]"
+msgstr "Tepl. kal.  [vyp]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Teplot. kalibrace"
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr "Teplota"
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr "Teplotni kalibrace selhala"
 
@@ -1783,22 +1923,42 @@ msgid "Temperature calibration has not been run yet"
 msgstr "Tiskarna nebyla teplotne zkalibrovana"
 
 # MSG_TEMP_CALIBRATION_DONE c=20 r=12
-#: messages.c:99
+#: messages.c:90
 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal."
 msgstr "Teplotni kalibrace dokoncena a je nyni aktivni. Teplotni kalibraci je mozno deaktivovat v menu Nastaveni->Tepl. kal."
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr "Teploty"
 
 # MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4
-#: messages.c:47
+#: messages.c:42
 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."
 msgstr "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace."
 
 # 
-#: ultralcd.cpp:2539
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr "k zavedeni filamentu"
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr "k vyjmuti filamentu"
+
+# 
+#: ultralcd.cpp:1961
+msgid "Total"
+msgstr "Celkem"
+
+# 
+#: ultralcd.cpp:1994
+msgid "Total failures"
+msgstr "Celkem selhani"
+
+# 
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Filament celkem"
 
@@ -1808,7 +1968,7 @@ msgid "Total filament :"
 msgstr "Filament celkem :"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr "Celkovy cas tisku"
 
@@ -1823,22 +1983,27 @@ msgid "TRIGGERED"
 msgstr "AKTIVNI"
 
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Ladit"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:2249
+msgid "unknown"
+msgstr "neznamy"
+
+# 
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Vysunout"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Vyjmout vse"
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr "Vyjmout filament"
 
@@ -1863,22 +2028,22 @@ msgid "Unload filament 4"
 msgstr "Vyjmout filam. 4"
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Vysouvam filament"
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
-msgstr "Použijte vyjmout pro odstranění filamentu 1 pokud přesahuje z PTFE trubičky za tiskárnou. Použijte vysunout, pokud není vidět."
+msgstr "Pouzijte vyjmout pro odstraneni filamentu 1 pokud presahuje z PTFE trubicky za tiskarnou. Pouzijte vysunout, pokud neni videt."
 
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Pouzite behem tisku"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Napeti"
 
@@ -1888,32 +2053,32 @@ msgid "volume.init failed"
 msgstr "volume.init selhalo"
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Ceka se na uzivatele..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Cekani na zchladnuti trysky a podlozky."
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3008
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
 msgstr "Cekani na zchladnuti PINDA"
 
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1481
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Varovani: doslo ke zmene typu tiskarny a motherboardu."
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1473
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr "Varovani: doslo ke zmene typu motherboardu."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1477
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr "Varovani: doslo ke zmene typu tiskarny."
 
@@ -1923,17 +2088,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!"
 msgstr "VAROVANI: Neznama, nepodporovana verze firmware. Pouziti na vlastni nebezpeci!"
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
 msgstr "Bylo vysunuti filamentu uspesne?"
 
 # MSG_SELFTEST_WIRINGERROR
-#: messages.c:89
+#: messages.c:80
 msgid "Wiring error"
 msgstr "Chyba zapojeni"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4923
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr "Pruvodce"
 
@@ -1948,52 +2113,52 @@ msgid "Writing to file: "
 msgstr "Zapis do souboru:"
 
 # 
-#: ultralcd.cpp:4632
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "Korekce X"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "Detaily XYZ kal."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3496
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3493
+#: ultralcd.cpp:3712
 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!"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3474
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3480
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr "Kalibrace XYZ nepresna. Levy predni bod moc vpredu."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3477
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu."
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "Kalibrace XYZ selhala. Levy predni bod moc vpredu. Srovnejte tiskarnu."
 
@@ -2003,17 +2168,17 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "Kalibrace XYZ selhala. Nahlednete do manualu."
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Kalibrace XYZ v poradku. X/Y osy jsou kolme. Gratuluji!"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Y vzdalenost od min"
 
@@ -2023,12 +2188,12 @@ msgid "Y distance from min:"
 msgstr "Y vzdalenost od min:"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Korekce Y"
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Ano"
 
@@ -2043,11 +2208,11 @@ msgid "You are using firmware beta version. This is development version. Using t
 msgstr "Pouzivate beta verzi firmwaru. Jedna se o vyvojovou verzi. Pouzivani teto verze firmware neni doporuceno a muze zpusobit poskozeni tiskarny."
 
 # MSG_WIZARD_QUIT c=20 r=8
-#: messages.c:106
+#: messages.c:97
 msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Pruvodce muzete kdykoliv znovu spustit z menu Kalibrace -> Pruvodce"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "[0;0] odsazeni bodu"

+ 504 - 340
lang/po/new/de.po

@@ -8,12 +8,12 @@ msgstr ""
 "X-Generator: PhraseApp (phraseapp.com)\n"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:4219
 msgid "\e[2JCrash detection can\e[1;0Hbe turned on only in\e[2;0HNormal mode"
 msgstr "\e[2JCrash Erkennung kann\e[1;0Hnur im Modus Normal\e[2;0Hgenutzt werden"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3979
+#: ultralcd.cpp:4231
 msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode"
 msgstr "\e[2JWARNUNG:\e[1;0HCrash Erkennung\e[2;0Hdeaktiviert im\e[3;0HStealth Modus"
 
@@ -43,12 +43,12 @@ msgid " Last Updated: "
 msgstr " Letztes Update: "
 
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
-#: messages.c:44
+#: messages.c:39
 msgid " of 4"
 msgstr " von 4"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14
-#: messages.c:61
+#: messages.c:56
 msgid " of 9"
 msgstr " von 9"
 
@@ -67,8 +67,13 @@ msgstr " \002 Max"
 msgid " \002 Min"
 msgstr " \002 Min"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ">Abbruch"
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Z wurde eingestellt"
 
@@ -78,24 +83,29 @@ msgid "All"
 msgstr "Alle"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Alles richtig "
 
 # MSG_WIZARD_DONE c=20 r=8
-#: messages.c:104
+#: messages.c:95
 msgid "All is done. Happy printing!"
 msgstr "Alles abgeschlossen. Viel Spass beim Drucken!"
 
+# 
+#: ultralcd.cpp:2109
+msgid "Ambient"
+msgstr "Raumtemp."
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "und Knopf druecken"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
-msgstr "Sind linke+rechte Z-\nSchlitten ganz oben?"
+msgstr "Sind linke+rechte Z- Schlitten ganz oben?"
 
 # MSG_ADJUSTZ
 #: ultralcd.cpp:2600
@@ -123,27 +133,27 @@ msgid "Auto home"
 msgstr "Startposition"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "Auto-Laden Filament"
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
-msgstr "Automatisches Laden\nFilament nur bei einge\nschaltetem Filament-\nsensor verfuegbar..."
+msgstr "Automatisches Laden Filament nur bei einge schaltetem Filament- sensor verfuegbar..."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2438
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
-msgstr "Automatisches Laden\nFilament ist aktiv,\nKnopf druecken und \nFilament einlegen..."
+msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..."
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Achse"
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6845
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Achsenlaenge"
 
@@ -163,7 +173,7 @@ msgid "Bed"
 msgstr "Bett"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Bett / Heizung"
 
@@ -178,7 +188,7 @@ msgid "Bed Heating"
 msgstr "Bett aufwaermen"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr "Ausgleich Bett ok"
 
@@ -188,14 +198,14 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr "Z-Kal. fehlgeschlg. Sensor nicht ausgeloest. Schmutzige Duese? Warte auf Reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4467
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
-msgstr "Z-Kalibrierung fehl-\ngeschlagen. Sensor\ngetrennt/Kabelbruch?\nWarte auf Reset."
+msgstr "Z-Kalibrierung fehl- geschlagen. Sensor getrennt/Kabelbruch? Warte auf Reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4471
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
-msgstr "Z-Kalibrierung fehl-\ngeschlagen. Sensor\nzu hoch ausgeloest.\nWarte auf Reset."
+msgstr "Z-Kalibrierung fehl- geschlagen. Sensor zu hoch ausgeloest. Warte auf Reset."
 
 # MSG_BEGIN_FILE_LIST
 #: Marlin_main.cpp:4405
@@ -203,17 +213,17 @@ msgid "Begin file list"
 msgstr "Beginn Dateiliste"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Gurtstatus"
 
 # MSG_RECOVER_PRINT c=20 r=2
-#: messages.c:74
+#: messages.c:67
 msgid "Blackout occurred. Recover print?"
-msgstr "Stromausfall!\nDruck\nwiederherstellen?"
+msgstr "Stromausfall! Druck wiederherstellen?"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Kalibrieren"
 
@@ -223,17 +233,22 @@ msgid "Calibrate E"
 msgstr "Kalibrierung E"
 
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Kalibrierung XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Kalibrierung Z"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr "Kalibriere Start"
+
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 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."
 
@@ -243,22 +258,22 @@ msgid "Calibrating Z"
 msgstr "Kalibrierung Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 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."
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr "Kalibrierung"
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Kalibrierung OK"
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Abbruch"
 
@@ -273,22 +288,22 @@ msgid "Cannot open subdir"
 msgstr "Kann Unterverz. nicht oeffnen"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#:
 msgid "Card inserted"
 msgstr "SD Karte eingesetzt"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "SD Karte entfernt"
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Wechsel Extruder"
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Filament-Wechsel"
 
@@ -298,12 +313,12 @@ msgid "Change SD card"
 msgstr "Wechsel SD Karte"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Wechsel erfolgr.!"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Wechsel ok?"
 
@@ -313,37 +328,37 @@ msgid "Changing filament!"
 msgstr "Filament-Wechsel!"
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
 msgstr "Pruefe Bett "
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Pruefe Endschalter"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Pruefe Duese  "
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
-#: messages.c:87
+#: messages.c:78
 msgid "Checking sensors "
 msgstr "Pruefe Sensoren "
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Pruefe X Achse "
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Pruefe Y Achse "
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Pruefe Z Achse "
 
@@ -353,17 +368,17 @@ msgid "checksum mismatch, Last Line: "
 msgstr "Pruefsummenfehler, Letzte Zeile: "
 
 # MSG_CHOOSE_EXTRUDER c=20 r=1
-#: messages.c:54
+#: messages.c:49
 msgid "Choose extruder:"
 msgstr "Extruder waehlen:"
 
 # MSG_CHOOSE_FILAMENT c=20 r=1
-#: messages.c:55
+#: messages.c:50
 msgid "Choose filament:"
-msgstr "Wähle Filament:"
+msgstr "Waehle Filament:"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Falsche Farbe"
 
@@ -377,6 +392,16 @@ msgstr "Abkuehlen"
 msgid "Copy selected language from XFLASH?"
 msgstr "Gewaehlte Sprache vom Xflash kopieren?"
 
+# 
+#: ultralcd.cpp:4360
+msgid "Copy selected language?"
+msgstr "Gewaehlte Sprache kopieren?"
+
+# 
+#: ultralcd.cpp:2013
+msgid "Crash"
+msgstr "Crash"
+
 # MSG_CRASHDETECT_ON
 #: messages.c:27
 msgid "Crash det.   [on]"
@@ -385,7 +410,7 @@ msgstr "Crash Erk.   [an]"
 # MSG_CRASHDETECT_NA
 #: messages.c:25
 msgid "Crash det.  [N/A]"
-msgstr "Crash Erk.  [nv]"
+msgstr "Crash Erk.   [nv]"
 
 # MSG_CRASHDETECT_OFF
 #: messages.c:26
@@ -398,22 +423,22 @@ msgid "Crash detected."
 msgstr "Crash erkannt."
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Crash erkannt. Druck fortfuehren?"
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Aktuelles"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Datum:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Motoren aus"
 
@@ -423,7 +448,7 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr "Der Abstand zwischen der Spitze der Duese und dem Bett ist noch nicht eingestellt. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Erste Schicht Kalibrierung."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4575
+#: ultralcd.cpp:4828
 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?"
 
@@ -433,47 +458,47 @@ msgid "E calibration finished. Please clean the nozzle. Click when done."
 msgstr "E-Kalibrierung beendet. Bitte reinigen Sie die Duese. Klicken wenn fertig."
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4636
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "E-Korrektur"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Auswurf"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr "Filamentauswurf"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr "Filamentauswurf 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Fil.2 auswerfen"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Fil.3 auswerfen"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Fil.4 auswerfen"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Fil.5 auswerfen"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr "werfe Filament aus"
 
@@ -483,17 +508,17 @@ msgid "End file list"
 msgstr "Ende Dateiliste"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr "Endanschlag"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr "Ende nicht getroffen"
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr "Endschalter"
 
@@ -513,9 +538,9 @@ msgid "enqueing \""
 msgstr "In Warteschlange \""
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
-msgstr "Fehler - statischer\nSpeicher wurde\nueberschrieben"
+msgstr "Fehler - statischer Speicher wurde ueberschrieben"
 
 # MSG_SD_ERR_WRITE_TO_FILE
 #: messages.c:78
@@ -523,137 +548,152 @@ msgid "error writing to file"
 msgstr "Fehler beim Schreiben in Datei"
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr "FEHLER:"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
-msgstr "FEHLER: Filament-\nsensor reagiert\nnicht, bitte \nVerbindung pruefen."
+msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen."
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "Der externe SPI Flash W25X20CL antwortet nicht."
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr "Extruder"
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr "Extruder 1"
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr "Extruder 2"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr "Extruder 3"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr "Extruder 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Extruder Luefter:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr "Extruder Info"
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
-msgstr "F.Autoladen[an]"
+msgstr "F.Autoladen  [an]"
 
 # MSG_FSENS_AUTOLOAD_NA c=17 r=1
-#: messages.c:48
+#: messages.c:43
 msgid "F. autoload [N/A]"
-msgstr "F. Autoload [nv]"
+msgstr "F. Autoload  [nv]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4676
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
 msgstr "F. Autoload [aus]"
 
+# 
+#: ultralcd.cpp:6112
+msgid "Fail stats"
+msgstr "Fehlerstatistik"
+
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr "MMU-Fehler"
+
 # MSG_FAN_SPEED c=14
-#: messages.c:36
+#: messages.c:31
 msgid "Fan speed"
 msgstr "Luefter-Tempo"
 
 # MSG_SELFTEST_FAN c=20
-#: messages.c:83
+#: messages.c:74
 msgid "Fan test"
 msgstr "Lueftertest"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4847
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
-msgstr "Luefter Chk.[an]"
+msgstr "Luefter Chk. [an]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
-msgstr "Luefter Chk. [aus]"
+msgstr "Luefter Chk.[aus]"
 
 # MSG_FSENSOR_ON
-#: messages.c:50
+#: messages.c:45
 msgid "Fil. sensor  [on]"
 msgstr "Fil. Sensor  [an]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3105
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "Fil. Sensorsignal ist schlecht, ausschalten?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
-msgstr "Fil. Sensor [nv]"
+msgstr "Fil. Sensor  [nv]"
 
 # MSG_FSENSOR_OFF
-#: messages.c:49
+#: messages.c:44
 msgid "Fil. sensor [off]"
 msgstr "Fil. Sensor [aus]"
 
+# 
+#: ultralcd.cpp:2013
+msgid "Filam. runouts"
+msgstr "Filam. Maengel"
+
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
 msgstr "Filament"
 
 # MSG_FILAMENT_CLEAN c=20 r=2
-#: messages.c:37
+#: messages.c:32
 msgid "Filament extruding & with correct color?"
-msgstr "Filament extrudiert\n+ richtige Farbe?"
+msgstr "Filament extrudiert + richtige Farbe?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Fil. nicht geladen"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Filamentsensor"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Filamentsensor:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr "Filament benutzt"
 
@@ -663,9 +703,9 @@ msgid "Filament used:  "
 msgstr "Filamentverbrauch:  "
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
-msgstr "Datei unvollstaendig\nTrotzdem fortfahren?"
+msgstr "Datei unvollstaendig Trotzdem fortfahren?"
 
 # MSG_SD_FILE_OPENED
 #: cardreader.cpp:395
@@ -678,92 +718,92 @@ msgid "File selected"
 msgstr "Datei ausgewaehlt"
 
 # MSG_FINISHING_MOVEMENTS c=20 r=1
-#: messages.c:45
+#: messages.c:40
 msgid "Finishing movements"
 msgstr "Bewegung beenden"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Erste-Schicht Kal."
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4740
 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."
 
 # 
-#: mmu.cpp:423
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
 msgstr "Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Durchfluss"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr "forum.prusa3d.com"
 
 # MSG_SELFTEST_COOLING_FAN c=20
-#: messages.c:80
+#: messages.c:71
 msgid "Front print fan?"
 msgstr "Vorderer Luefter?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Vorne [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Vorderer/linke Luefter"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Heizung/Thermistor"
 
 # MSG_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
 msgstr "Aufwaermen"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
-msgstr "Heizung durch\nSicherheitstimer\ndeaktiviert."
+msgstr "Heizung durch Sicherheitstimer deaktiviert."
 
 # MSG_HEATING_COMPLETE c=20
-#: messages.c:52
+#: messages.c:47
 msgid "Heating done."
 msgstr "Aufwaermen OK."
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4719
 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\nOriginal Prusa i3\nDrucker. Moechten\nSie, dass ich Sie\ndurch den Einrich-\ntungsablauf fuehre?"
+msgstr "Hallo, ich bin Ihr Original Prusa i3 Drucker. Moechten Sie, dass ich Sie durch den Einrich- tungsablauf fuehre?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2142
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr "howto.prusa3d.com"
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4749
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
-msgstr "Ich werde jetzt die\nXYZ-Kalibrierung\ndurchfuehren. Es\nwird ca. 12 Minuten\ndauern."
+msgstr "Ich werde jetzt die XYZ-Kalibrierung durchfuehren. Es wird ca. 12 Minuten dauern."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr "Ich werde jetzt die Z Kalibrierung durchfuehren."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr "Ich werde jetzt eine Linie drucken. Waehrend des Druckes koennen Sie die Duese allmaehlich senken, indem Sie den Knopf drehen, bis Sie die optimale Hoehe erreichen. Sehen Sie sich die Bilder in unserem Handbuch im Kapitel Kalibrierung an."
 
@@ -773,7 +813,7 @@ msgid "Improving bed calibration point"
 msgstr "Verbessere Bett Kalibrierpunkt"
 
 # MSG_WATCH
-#: messages.c:102
+#: messages.c:93
 msgid "Info screen"
 msgstr "Infoanzeige"
 
@@ -783,54 +823,54 @@ msgid "Init. SD card"
 msgstr "Init. SD Karte"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Filament einlegen"
 
 # MSG_FILAMENT_LOADING_T0 c=20 r=4
-#: messages.c:38
+#: messages.c:33
 msgid "Insert filament into extruder 1. Click when done."
 msgstr "Filament in Extruder 1 einlegen. Klicken wenn fertig."
 
 # MSG_FILAMENT_LOADING_T1 c=20 r=4
-#: messages.c:39
+#: messages.c:34
 msgid "Insert filament into extruder 2. Click when done."
 msgstr "Filament in Extruder 2 einlegen. Klicken wenn fertig."
 
 # MSG_FILAMENT_LOADING_T2 c=20 r=4
-#: messages.c:40
+#: messages.c:35
 msgid "Insert filament into extruder 3. Click when done."
 msgstr "Filament in Extruder 3 einlegen. Klicken wenn fertig."
 
 # MSG_FILAMENT_LOADING_T3 c=20 r=4
-#: messages.c:41
+#: messages.c:36
 msgid "Insert filament into extruder 4. Click when done."
 msgstr "Filament in Extruder 4 einlegen. Klicken wenn fertig."
 
 # 
-#: ultralcd.cpp:4529
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
 msgstr "Wurde Filament 1 geladen?"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Ist das Filament geladen?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "Ist es wirklich PLA Filament?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "Ist PLA Filament geladen?"
 
 # MSG_STEEL_SHEET_CHECK c=20 r=2
-#: messages.c:95
+#: messages.c:86
 msgid "Is steel sheet on heatbed?"
-msgstr "Liegt das Stahlblech\nauf dem Heizbett?"
+msgstr "Liegt das Stahlblech auf dem Heizbett?"
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20
 #: mesh_bed_calibration.cpp:2223
@@ -843,17 +883,27 @@ msgid "KILLED. "
 msgstr "ABGEBROCHEN. "
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:1960
+msgid "Last print"
+msgstr "Letzter Druck"
+
+# 
+#: ultralcd.cpp:1976
+msgid "Last print failures"
+msgstr "Letzte Druckfehler"
+
+# 
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Links"
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Linker Luefter?"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Links [um]"
 
@@ -863,7 +913,7 @@ msgid "Left:"
 msgstr "Links:"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr "Lineare Korrektur"
 
@@ -873,57 +923,57 @@ msgid "Live adjust Z"
 msgstr "Z einstellen"
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5323
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Alle laden"
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr "Filament laden"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Filament 1 laden"
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Filament 2 laden"
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Filament 3 laden"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Filament 4 laden"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Filament 5 laden"
 
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
-msgstr "In Druckdüse laden"
+msgstr "In Druckduese laden"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Lade Farbe"
 
 # MSG_LOADING_FILAMENT c=20
-#: messages.c:57
+#: messages.c:52
 msgid "Loading filament"
 msgstr "Filament laedt"
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6837
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Lose Riemenscheibe"
 
@@ -943,7 +993,7 @@ msgid "M109 Invalid extruder "
 msgstr "M109 Falscher Extruder "
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Erste-Schicht Kal."
 
@@ -963,7 +1013,7 @@ msgid "M221 Invalid extruder "
 msgstr "M221 Falscher Extruder "
 
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Hauptmenue"
 
@@ -973,7 +1023,7 @@ msgid "Mark filament 100mm from extruder body. Click when done."
 msgstr "Filament 100mm vom Extrudergehaeuse markieren. Klicken wenn Fertig."
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Schraeglauf"
 
@@ -983,17 +1033,32 @@ msgid "Measured skew:"
 msgstr "Schraeglauf:"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60
-#: messages.c:60
+#: messages.c:55
 msgid "Measuring reference height of calibration point"
 msgstr "Messen der Referenzhoehe des Kalibrierpunktes"
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4939
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
 msgstr "Mesh Bett Ausgleich"
 
 # 
-#: mmu.cpp:418
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr "MMU Fehler"
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr "MMU Ladefehler"
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr "MMU Ladefehler"
+
+# 
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "MMU erfordert Benutzereingriff."
 
@@ -1003,77 +1068,92 @@ msgid "MMU needs user attention. Fix the issue and then press button on MMU unit
 msgstr "MMU hat eine Störung. Beseitigen Sie das Problem und drücken Sie den Knopf an der MMU."
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Position    wiederherstellen... "
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:450
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Temperatur wiederherstellen..."
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK.  Weiterdrucken..."
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr "MMU Netzfehler"
+
+# 
+#: ultralcd.cpp:2241
+msgid "MMU2 connected"
+msgstr "MMU2 verbunden"
+
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
-msgstr "Modus [Normal]"
+msgstr "Modus    [Normal]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
-msgstr "Modus [leise]"
+msgstr "Modus     [leise]"
 
 # MSG_STEALTH_MODE_ON
-#: messages.c:94
+#: messages.c:85
 msgid "Mode    [Stealth]"
 msgstr "Modus   [Stealth]"
 
 # MSG_AUTO_MODE_ON
 #: messages.c:12
 msgid "Mode [auto power]"
-msgstr "Modus [Auto Power]"
+msgstr "Modus[Auto Power]"
 
 # MSG_SILENT_MODE_OFF
-#: messages.c:91
+#: messages.c:82
 msgid "Mode [high power]"
-msgstr "Modus[Hohe Leistung]"
+msgstr "Modus[Hohe Leist]"
 
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr "Motor"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Achse bewegen"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Bewege X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Bewege Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Bewege Z"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr "N.V."
+
 # 
 #: util.cpp:293
 msgid "New firmware version available:"
-msgstr "Neue Firmware-\nVersion verfuegbar:"
+msgstr "Neue Firmware- Version verfuegbar:"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr "Nein"
 
@@ -1088,12 +1168,12 @@ msgid "No Checksum with line number, Last Line: "
 msgstr "Keine Pruefsumme mit Zeilennummer, Letzte Zeile: "
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Keine Bewegung."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "Keine SD Karte"
 
@@ -1103,35 +1183,40 @@ msgid "No thermistors - no temperature"
 msgstr "Keine Thermistoren - keine Temperatur"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "Nicht angeschlossen"
 
 # MSG_SELFTEST_FAN_NO c=19
-#: messages.c:84
+#: messages.c:75
 msgid "Not spinning"
 msgstr "Dreht sich nicht"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4568
+#: ultralcd.cpp:4821
 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."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4512
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Jetzt werde ich die Duese fuer PLA vorheizen."
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr "Testdruck jetzt von Stahlblech entfernen."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Duese"
 
+# 
+#: ultralcd.cpp:1919
+msgid "Nozzle FAN"
+msgstr "Duesen Luefter"
+
 # MSG_INFO_NOZZLE_FAN c=11 r=1
 #: ultralcd.cpp:1537
 msgid "Nozzle FAN:"
@@ -1153,9 +1238,9 @@ msgid "ok"
 msgstr "ok"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
-msgstr "Alte Einstellungen\ngefunden. Standard\nPID, E-Steps u.s.w.\nwerden gesetzt."
+msgstr "Alte Einstellungen gefunden. Standard PID, E-Steps u.s.w. werden gesetzt."
 
 # MSG_ENDSTOP_OPEN
 #: messages.c:29
@@ -1173,7 +1258,7 @@ msgid "openRoot failed"
 msgstr "Zugriff auf Hauptverzeichnis misslungen"
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr "Druck pausieren"
 
@@ -1183,42 +1268,42 @@ msgid "Pick print"
 msgstr "Druck auswaehlen"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "PID Kal.           "
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "PID Kalib. fertig"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "PID Kalibrierung"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "PINDA erwaermen"
 
 # MSG_PAPER c=20 r=8
-#: messages.c:66
+#: messages.c:60
 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."
 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_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Bitte pruefe:"
 
 # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
-#: messages.c:103
+#: messages.c:94
 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
 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_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf."
 
@@ -1228,12 +1313,12 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4411
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr "Legen Sie bitte PLA Filament in den Extruder und druecken Sie den Knopf,  um es zu laden."
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Legen Sie bitte PLA Filament in den ersten Schlauch der MMU und druecken Sie den Knopf,  um es zu laden."
 
@@ -1243,52 +1328,52 @@ msgid "Please load PLA filament and then resume Wizard by rebooting the printer.
 msgstr "Bitte PLA-Filament\nladen und Assistent\nfortsetzen, indem\nSie den Drucker neu\nstarten."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4314
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Bitte laden Sie zuerst PLA Filament."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2989
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
-msgstr "Bitte Spannrolle\noeffnen und Fila-\nment von Hand\nentfernen"
+msgstr "Bitte Spannrolle oeffnen und Fila- ment von Hand entfernen"
 
 # MSG_PLACE_STEEL_SHEET c=20 r=4
-#: messages.c:67
+#: messages.c:61
 msgid "Please place steel sheet on heatbed."
-msgstr "Bitte legen Sie das\nStahlblech auf das\nHeizbett."
+msgstr "Bitte legen Sie das Stahlblech auf das Heizbett."
 
 # MSG_PRESS_TO_UNLOAD c=20 r=4
-#: messages.c:71
+#: messages.c:64
 msgid "Please press the knob to unload filament"
-msgstr "Bitte druecken Sie\nden Knopf um das \nFilament zu\nentladen."
+msgstr "Bitte druecken Sie den Knopf um das Filament zu entladen."
 
 # MSG_PULL_OUT_FILAMENT c=20 r=4
-#: messages.c:73
+#: messages.c:66
 msgid "Please pull out filament immediately"
-msgstr "Bitte ziehen Sie\ndas Filament sofort\nheraus"
+msgstr "Bitte ziehen Sie das Filament sofort heraus"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1114
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
-msgstr "Bitte Filament      entfernen und dann  den Knopf drücken"
+msgstr "Bitte Filament entfernen und dann den Knopf druecken"
 
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Bitte zuerst Transportsicherungen entfernen."
 
 # MSG_REMOVE_STEEL_SHEET c=20 r=4
-#: messages.c:77
+#: messages.c:70
 msgid "Please remove steel sheet from heatbed."
-msgstr "Bitte entfernen Sie\ndas Stahlblech vom\nHeizbett."
+msgstr "Bitte entfernen Sie das Stahlblech vom Heizbett."
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4011
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
-msgstr "Bitte zuerst XYZ Kalibrierung ausführen."
+msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren."
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Bitte aktualisieren Sie die Firmware in der MMU2. Warte auf Reset."
 
@@ -1298,29 +1383,44 @@ msgid "Please upgrade."
 msgstr "Bitte aktualisieren."
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Bitte warten"
 
+# 
+#: ultralcd.cpp:2013
+msgid "Power failures"
+msgstr "Netzfehler"
+
 # MSG_POWERUP
 #: messages.c:69
 msgid "PowerUp"
 msgstr "Einschalten"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Vorheizen"
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Duese vorheizen!"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
-msgstr "Vorheizen der Duese.\nBitte warten."
+msgstr "Vorheizen der Duese. Bitte warten."
+
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr "Heizen zum Laden"
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr "Heizen zum Entladen"
 
 # MSG_PREPARE_FILAMENT c=20 r=1
 #: ultralcd.cpp:1911
@@ -1328,27 +1428,37 @@ msgid "Prepare new filament"
 msgstr "Filam. bereithalten"
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
-msgstr "Bitte druecken Sie\nden Knopf um die \nDuese vorzuheizen\nund fortzufahren."
+msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
 
 # 
-#: mmu.cpp:422
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr "Knopf druecken"
+
+# 
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Druecken Sie den Knopf um die Duesentemperatur wiederherzustellen"
 
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Druck abgebrochen"
 
+# 
+#: ultralcd.cpp:1921
+msgid "Print FAN"
+msgstr "Druckluefter"
+
 # MSG_INFO_PRINT_FAN c=11 r=1
 #: ultralcd.cpp:1549
 msgid "Print FAN: "
 msgstr "Druckvent.: "
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Druckvent.:"
 
@@ -1358,12 +1468,12 @@ msgid "Print from SD"
 msgstr "Drucken von SD"
 
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Druck pausiert"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Druckzeit"
 
@@ -1383,9 +1493,9 @@ msgid "Printer halted. kill() called!"
 msgstr "Printer gestoppt. kill() aufgerufen!"
 
 # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
-#: messages.c:46
+#: messages.c:41
 msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."
-msgstr "Drucker wurde noch \nnicht kalibriert.\nBitte folgen Sie dem\nHandbuch, Kapitel\nErste Schritte,\nAbschnitt Kalibrie-\nrungsablauf."
+msgstr "Drucker wurde noch nicht kalibriert. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrie- rungsablauf."
 
 # MSG_ERR_STOPPED
 #: messages.c:32
@@ -1407,18 +1517,23 @@ msgstr "Prusa i3 MK2.5 bereit."
 msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 bereit."
 
+# 
+#:
+msgid "Prusa i3 MK3S OK."
+msgstr "Prusa i3 MK3S OK."
+
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr "prusa3d.com"
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Hinten [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr "Druck wiederherst    "
 
@@ -1428,9 +1543,9 @@ msgid "Refresh"
 msgstr "Erneuern"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
-msgstr "Entfernen Sie das alte Filament und drücken Sie den Knopf, um das neue zu laden."
+msgstr "Entfernen Sie das alte Filament und druecken Sie den Knopf, um das neue zu laden."
 
 # MSG_M119_REPORT
 #: Marlin_main.cpp:5297
@@ -1448,32 +1563,32 @@ msgid "Resend: "
 msgstr "Wiederholen: "
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr "Ruecksetzen"
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr "XYZ Kalibr. zuruecksetzen."
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Druck fortsetzen"
 
 # MSG_RESUMING_PRINT c=20 r=1
-#: messages.c:76
+#: messages.c:69
 msgid "Resuming print"
 msgstr "Druck fortgesetzt"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Rechts"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Rechts [um]"
 
@@ -1488,22 +1603,22 @@ msgid "Rotate knob until mark reaches extruder body. Click when done."
 msgstr "Knopf drehen bis die Markierung das Extrudergehaeuse erreicht. Klicken wenn fertig."
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
 msgstr "RPi Port     [an]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
 msgstr "RPi Port    [aus]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4583
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
-msgstr "Der Assistent wird\ndie aktuellen\nKalibrierungsdaten\nloeschen und von\nvorne beginnen.\nWeiterfahren?"
+msgstr "Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4780
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
 msgstr "SD Karte [normal]"
 
@@ -1518,9 +1633,9 @@ msgid "SD card [FlshAir]"
 msgstr "SD Karte [FlashAir]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
-msgstr "SD Karte [flshAir]"
+msgstr "SD Karte[flshAir]"
 
 # MSG_SD_INIT_FAIL
 #: cardreader.cpp:186
@@ -1533,67 +1648,77 @@ msgid "SD printing byte "
 msgstr "SD drucke Byte "
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60
-#: messages.c:43
+#: messages.c:38
 msgid "Searching bed calibration point"
 msgstr "Suche Bett Kalibrierpunkt"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4873
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Waehle Sprache"
 
 # 
-#: ultralcd.cpp:4550
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht."
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "PLA Filament auswaehlen:"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr "Selbsttest OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Selbsttest start "
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Selbsttest "
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Selbsttest Fehler!"
 
 # MSG_SELFTEST_FAILED c=20
-#: messages.c:82
+#: messages.c:73
 msgid "Selftest failed  "
 msgstr "Selbsttest misslung  "
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1521
+#: Marlin_main.cpp:1548
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
-msgstr "Selbsttest im Gang,\num die genaue Rueck-\nkehr zum Nullpunkt\nohne Sensor zu\nkalibrieren"
+msgstr "Selbsttest im Gang, um die genaue Rueck- kehr zum Nullpunkt ohne Sensor zu kalibrieren"
+
+# 
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr "Sensorstatus"
+
+# 
+#:
+msgid "Sensors info"
+msgstr "Sensoren Info"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Temp. einstellen:"
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Einstellungen"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr "Schwerer Schraeglauf"
 
@@ -1603,12 +1728,12 @@ msgid "Severe skew:"
 msgstr "Schwerer Verzug:"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Endschalter Status"
 
 # 
-#: ultralcd.cpp:4947
+#:
 msgid "Show pinda state"
 msgstr "Pinda-Status anzeigen"
 
@@ -1618,7 +1743,7 @@ msgid "Sleep..."
 msgstr "Schlafzustand..."
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Leichter Schraeglauf"
 
@@ -1630,10 +1755,10 @@ msgstr "Etwas verzogen:"
 # MSG_FILE_CNT c=20 r=4
 #: cardreader.cpp:738
 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
-msgstr "Einige Dateien wur-\nden nicht sortiert.\nMax. Dateien pro\nVerzeichnis = 100."
+msgstr "Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100."
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..."
 
@@ -1643,7 +1768,7 @@ msgid "Sort:      [None]"
 msgstr "Sort.:    [Keine]"
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
 msgstr "Sort.:    [Keine]"
 
@@ -1653,9 +1778,9 @@ msgid "Sort:      [Time]"
 msgstr "Sort.: [Zeit]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
-msgstr "Sort.: [Zeit]"
+msgstr "Sort.:     [Zeit]"
 
 # MSG_SORT_ALPHA c=17 r=1
 #: ultralcd.cpp:4249
@@ -1663,7 +1788,7 @@ msgid "Sort:  [Alphabet]"
 msgstr "Sort.: [Alphab.]"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
 msgstr "Sort.: [Alphabet]"
 
@@ -1703,22 +1828,37 @@ msgid "Sound    [silent]"
 msgstr "Sound     [leise]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr "Geschwindigkeit"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Dreht sich"
 
+# MSG_AUTO_DEPLETE_ON c=17 r=1
+#: ultralcd.cpp:4959
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin    [an]"
+
+# 
+#: ultralcd.cpp:4955
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin   [N/V]"
+
+# MSG_AUTO_DEPLETE_OFF c=17 r=1
+#: ultralcd.cpp:4963
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [aus]"
+
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4065
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
-msgstr "Stabile Umgebungs-\ntemperatur 21-26C\nund feste Stand-\nflaeche erforderlich"
+msgstr "Stabile Umgebungs- temperatur 21-26C und feste Stand- flaeche erforderlich"
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5847
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Statistiken "
 
@@ -1728,52 +1868,52 @@ msgid "Steprate too high: "
 msgstr "Schrittrate zu hoch: "
 
 # MSG_STOP_PRINT
-#: messages.c:96
+#: messages.c:87
 msgid "Stop print"
 msgstr "Druck abbrechen"
 
 # MSG_STOPPED
-#: messages.c:97
+#: messages.c:88
 msgid "STOPPED. "
 msgstr "GESTOPPT. "
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr "Support"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Ausgetauscht"
 
 # MSG_TEMP_CALIBRATION c=20 r=1
-#: messages.c:98
+#: messages.c:89
 msgid "Temp. cal.          "
 msgstr "Temp Kalib. "
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4860
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
-msgstr "Temp. Kal. [AN]"
+msgstr "Temp. Kal.   [AN]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
-msgstr "Temp. Kal. [AUS]"
+msgstr "Temp. Kal.  [AUS]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Temp. kalibrieren"
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr "Temperatur"
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr "Temperaturkalibrierung fehlgeschlagen"
 
@@ -1783,22 +1923,42 @@ msgid "Temperature calibration has not been run yet"
 msgstr "Temperatur wurde\nnoch nicht\nkalibriert"
 
 # MSG_TEMP_CALIBRATION_DONE c=20 r=12
-#: messages.c:99
+#: messages.c:90
 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal."
-msgstr "Temp.kalibrierung\nist fertig + aktiv.\nTemp.kalibrierung\nkann ausgeschaltet\nwerden im Menu\nEinstellungen ->\nTemp.kal."
+msgstr "Temp.kalibrierung ist fertig + aktiv. Temp.kalibrierung kann ausgeschaltet werden im Menu Einstellungen -> Temp.kal."
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr "Temperaturen"
 
 # MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4
-#: messages.c:47
+#: messages.c:42
 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."
-msgstr "Es ist noch notwendig die Z-Kalibrierung auszuführen. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
+msgstr "Es ist noch notwendig die Z-Kalibrierung auszufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
+
+# 
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr "zum Filament laden"
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr "zum Filament entladen"
 
 # 
-#: ultralcd.cpp:2539
+#: ultralcd.cpp:1961
+msgid "Total"
+msgstr "Gesamt"
+
+# 
+#: ultralcd.cpp:1994
+msgid "Total failures"
+msgstr "Gesamte Fehler"
+
+# 
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Gesamtes Filament"
 
@@ -1808,7 +1968,7 @@ msgid "Total filament :"
 msgstr "Gesamtes Filament:"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr "Gesamte Druckzeit"
 
@@ -1823,22 +1983,27 @@ msgid "TRIGGERED"
 msgstr "AUSGELOEST"
 
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Feineinstellung"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:2249
+msgid "unknown"
+msgstr "unbekannt"
+
+# 
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Entladen"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Alles entladen"
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr "Filament entladen"
 
@@ -1863,22 +2028,22 @@ msgid "Unload filament 4"
 msgstr "Filam. 4 entladen"
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Filament auswerfen"
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
 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_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Beim Druck benutzt"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Spannungen"
 
@@ -1888,34 +2053,34 @@ msgid "volume.init failed"
 msgstr "Dateisystem Init fehlerhaft"
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Warte auf Benutzer.."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
-msgstr "Warten bis Heizung\nund Bett abgekuehlt\nsind"
+msgstr "Warten bis Heizung und Bett abgekuehlt sind"
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3008
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
-msgstr "Warten, bis PINDA-\nSonde abgekuehlt ist"
+msgstr "Warten, bis PINDA- Sonde abgekuehlt ist"
 
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1481
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
-msgstr "Warnung: Druckertyp\nund Platinentyp\nwurden beide\ngeaendert."
+msgstr "Warnung: Druckertyp und Platinentyp wurden beide geaendert."
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1473
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
-msgstr "Warnung: Platinentyp\nwurde geaendert."
+msgstr "Warnung: Platinentyp wurde geaendert."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1477
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
-msgstr "Warnung: Druckertyp\nwurde geaendert."
+msgstr "Warnung: Druckertyp wurde geaendert."
 
 # MSG_FW_VERSION_UNKNOWN c=20 r=8
 #: Marlin_main.cpp:946
@@ -1923,17 +2088,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!"
 msgstr "WARNUNG: Dies ist\neine inoffizielle,\nnicht unterstuetzte\nVersion. Benutzung\nauf eigene Gefahr!"
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
-msgstr "Konnten Sie das\nFilament entnehmen?"
+msgstr "Konnten Sie das Filament entnehmen?"
 
 # MSG_SELFTEST_WIRINGERROR
-#: messages.c:89
+#: messages.c:80
 msgid "Wiring error"
 msgstr "Verdrahtungsfehler"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4923
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr "Assistent"
 
@@ -1944,57 +2109,56 @@ msgstr "Arbeitsverzeichnis oeffnen misslungen"
 
 # MSG_SD_WRITE_TO_FILE
 #: cardreader.cpp:424
-#, fuzzy
 msgid "Writing to file: "
 msgstr "Schreibe in Datei: "
 
 # 
-#: ultralcd.cpp:4632
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "X-Korrektur"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "XYZ Kal. Details"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3496
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "XYZ Kalibrierung in Ordnung. Schraeglauf wird automatisch korrigiert."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3493
+#: ultralcd.cpp:3712
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3474
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichbar."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3480
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Linker vorderer Kalibrierpunkt nicht erreichbar."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3477
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Linker vorderer Kalibrierpunkt nicht erreichbar."
 
@@ -2004,17 +2168,17 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Bitte schauen Sie in das Handbuch."
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
-msgstr "XYZ-Kalibrierung ok.\nX/Y-Achsen sind \nsenkrecht zueinander\nGlueckwunsch!"
+msgstr "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glueckwunsch!"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Y Entfernung vom Min"
 
@@ -2024,12 +2188,12 @@ msgid "Y distance from min:"
 msgstr "Y Entfernung vom Min:"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Y-Korrektur"
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Ja"
 
@@ -2044,11 +2208,11 @@ msgid "You are using firmware beta version. This is development version. Using t
 msgstr "Sie benutzen eine\nBeta Firmware\nVersion. Dies ist\neine Entwicklungs-\nversion. Die Ver-\nwendung ist nicht\nempfohlen und kann\nzu Schaeden fuehren."
 
 # MSG_WIZARD_QUIT c=20 r=8
-#: messages.c:106
+#: messages.c:97
 msgid "You can always resume the Wizard from Calibration -> Wizard."
-msgstr "Sie koennen den\nAssistenten immer\nim Menu neu starten:\nKalibrierung ->\nAssistent"
+msgstr "Sie koennen den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "[0;0] Punktversatz"

+ 492 - 328
lang/po/new/es.po

@@ -8,12 +8,12 @@ msgstr ""
 "X-Generator: PhraseApp (phraseapp.com)\n"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:4219
 msgid "\e[2JCrash detection can\e[1;0Hbe turned on only in\e[2;0HNormal mode"
 msgstr "\e[2JDec. choque\e[1;0Hpuede ser activada solo en\e[2;0HModo normal"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3979
+#: ultralcd.cpp:4231
 msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode"
 msgstr "\e[2JATENCION:\e[1;0HDec. choque\e[2;0Hdesactivada en\e[3;0HModo silencio"
 
@@ -43,12 +43,12 @@ msgid " Last Updated: "
 msgstr "Ultima actualizacion: "
 
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
-#: messages.c:44
+#: messages.c:39
 msgid " of 4"
 msgstr " de 4"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14
-#: messages.c:61
+#: messages.c:56
 msgid " of 9"
 msgstr " de 9"
 
@@ -67,8 +67,13 @@ msgstr " \002 Max"
 msgid " \002 Min"
 msgstr " \002 Min"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ">Cancelar"
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Ajustar Z"
 
@@ -78,22 +83,27 @@ msgid "All"
 msgstr "Todos"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Todo bien"
 
 # MSG_WIZARD_DONE c=20 r=8
-#: messages.c:104
+#: messages.c:95
 msgid "All is done. Happy printing!"
 msgstr "Terminado! Feliz impresion!"
 
+# 
+#: ultralcd.cpp:2109
+msgid "Ambient"
+msgstr "Ambiente"
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "Haz clic"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
 msgstr "Carros Z izq./der. estan arriba maximo?"
 
@@ -123,27 +133,27 @@ msgid "Auto home"
 msgstr "Llevar al origen"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "Carga automatica de filamento"
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
-msgstr "La carga automatica de filamento solo funciona si el sensor de filamento está activado..."
+msgstr "La carga automatica de filamento solo funciona si el sensor de filamento esta activado..."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2438
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "La carga automatica de filamento esta activada, pulse el dial e inserte el filamento..."
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Eje"
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6845
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Longitud del eje"
 
@@ -163,7 +173,7 @@ msgid "Bed"
 msgstr "Base calefactable "
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Base / Calentador"
 
@@ -178,7 +188,7 @@ msgid "Bed Heating"
 msgstr "Calentando Base"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr "Corr. de la cama"
 
@@ -188,12 +198,12 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr "Nivelacion fallada. Sensor no funciona. Restos en boquilla? Esperando reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4467
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 msgstr "Nivelacion fallada. Sensor desconectado o cables danados. Esperando reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4471
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Nivelacion fallada. Sensor funciona demasiado pronto. Esperando reset."
 
@@ -203,17 +213,17 @@ msgid "Begin file list"
 msgstr "Comienzo lista arch. "
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Estado de la correa"
 
 # MSG_RECOVER_PRINT c=20 r=2
-#: messages.c:74
+#: messages.c:67
 msgid "Blackout occurred. Recover print?"
-msgstr "Se fue la luz. ¿Reanudar la impresion?"
+msgstr "Se fue la luz. ?Reanudar la impresion?"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Calibrar"
 
@@ -223,17 +233,22 @@ msgid "Calibrate E"
 msgstr "Calibrar E"
 
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Calibrar XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Calibrar Z"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr "Calibrando posicion inicial"
+
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 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."
 
@@ -243,22 +258,22 @@ msgid "Calibrating Z"
 msgstr "Calibrando Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 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."
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr "Calibracion"
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Calibracion OK"
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Cancelar"
 
@@ -273,22 +288,22 @@ msgid "Cannot open subdir"
 msgstr "No se puede abrir subdir"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#:
 msgid "Card inserted"
 msgstr "Tarjeta insertada"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "Tarjeta retirada"
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Cambiar extrusor."
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Cambiar filamento"
 
@@ -298,12 +313,12 @@ msgid "Change SD card"
 msgstr "Cambiar tarjeta SD"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Cambio correcto"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Cambio correcto?"
 
@@ -313,37 +328,37 @@ msgid "Changing filament!"
 msgstr "Cambiando filamento"
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
 msgstr "Control base cal."
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Control endstops"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Control fusor"
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
-#: messages.c:87
+#: messages.c:78
 msgid "Checking sensors "
 msgstr "Comprobando los sensores"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Control sensor X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Control sensor Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Control sensor Z"
 
@@ -353,17 +368,17 @@ msgid "checksum mismatch, Last Line: "
 msgstr "inconcluencia checksum, Ult. Linea: "
 
 # MSG_CHOOSE_EXTRUDER c=20 r=1
-#: messages.c:54
+#: messages.c:49
 msgid "Choose extruder:"
 msgstr "Elegir extrusor:"
 
 # MSG_CHOOSE_FILAMENT c=20 r=1
-#: messages.c:55
+#: messages.c:50
 msgid "Choose filament:"
 msgstr "Elije filamento:"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Color no homogeneo"
 
@@ -377,10 +392,20 @@ msgstr "Enfriar"
 msgid "Copy selected language from XFLASH?"
 msgstr "Copiar idioma seleccionado desde XFLASH?"
 
+# 
+#: ultralcd.cpp:4360
+msgid "Copy selected language?"
+msgstr "Copiar idioma seleccionado?"
+
+# 
+#: ultralcd.cpp:2013
+msgid "Crash"
+msgstr "Choque"
+
 # MSG_CRASHDETECT_ON
 #: messages.c:27
 msgid "Crash det.   [on]"
-msgstr "Det. choque [activo]"
+msgstr "Det. choque [act]"
 
 # MSG_CRASHDETECT_NA
 #: messages.c:25
@@ -390,7 +415,7 @@ msgstr "Dec. choque [N/D]"
 # MSG_CRASHDETECT_OFF
 #: messages.c:26
 msgid "Crash det.  [off]"
-msgstr "Det. choque [inactivo]"
+msgstr "Det. choque [ina]"
 
 # MSG_CRASH_DETECTED c=20 r=1
 #: messages.c:24
@@ -398,22 +423,22 @@ msgid "Crash detected."
 msgstr "Choque detectado."
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Choque detectado. Continuar impresion?"
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Actual"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Fecha:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Apagar motores"
 
@@ -423,7 +448,7 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr "Distancia entre la punta del boquilla y la superficie de la base aun no fijada. Por favor siga el manual, capitulo Primeros Pasos, Calibracion primera capa."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4575
+#: ultralcd.cpp:4828
 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?"
 
@@ -433,47 +458,47 @@ msgid "E calibration finished. Please clean the nozzle. Click when done."
 msgstr "E calibrado. Limpia nozzle. Haz clic una vez terminado."
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4636
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "E-correcion"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Expulsar"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr "Expulsar filamento"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr "Expulsar filamento 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Expulsar filamento 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Expulsar filamento 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Expulsar filamento 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Expulsar filamento 5"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr "Expulsando filamento"
 
@@ -483,17 +508,17 @@ msgid "End file list"
 msgstr "Fin lista arch. "
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr "Endstop"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr "Endstop no alcanzado"
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr "Endstops"
 
@@ -513,9 +538,9 @@ msgid "enqueing \""
 msgstr "en cola \""
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
-msgstr "Error - se ha sobre-escrito la memoria estática"
+msgstr "Error - se ha sobre-escrito la memoria estatica"
 
 # MSG_SD_ERR_WRITE_TO_FILE
 #: messages.c:78
@@ -523,137 +548,152 @@ msgid "error writing to file"
 msgstr "error al escribir arch."
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr "ERROR:"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
-msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexión."
+msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion."
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "No responde el flasheo externo SPI W25X20CL"
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr "Extruir"
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr "Extrusor 1"
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr "Extrusor 2"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr "Extrusor 3"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr "Extrusor 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Ventilador del extrusor:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr "Informacion del extrusor"
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
-msgstr "Autocarga Fil. [activo]"
+msgstr "Autocarg.Fil[act]"
 
 # MSG_FSENS_AUTOLOAD_NA c=17 r=1
-#: messages.c:48
+#: messages.c:43
 msgid "F. autoload [N/A]"
-msgstr "Autocarga Fil. [N/D]"
+msgstr "Autocarg.Fil[N/D]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4676
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
-msgstr "Autocarga f. [inactiva]"
+msgstr "Autocarg.Fil[ina]"
+
+# 
+#: ultralcd.cpp:6112
+msgid "Fail stats"
+msgstr "Estadistica de fallos"
+
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr "Estadistica de fallos MMU"
 
 # MSG_FAN_SPEED c=14
-#: messages.c:36
+#: messages.c:31
 msgid "Fan speed"
 msgstr "Velocidad Vent."
 
 # MSG_SELFTEST_FAN c=20
-#: messages.c:83
+#: messages.c:74
 msgid "Fan test"
 msgstr "Test ventiladores"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4847
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
-msgstr "Comprobación de ventiladores [activo]"
+msgstr "Comprob.vent[act]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
-msgstr "Comprobación de ventiladores [inactiva]"
+msgstr "Comprob.vent[ina]"
 
 # MSG_FSENSOR_ON
-#: messages.c:50
+#: messages.c:45
 msgid "Fil. sensor  [on]"
-msgstr "Sensor Fil. [activo]"
+msgstr "Sensor Fil. [act]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3105
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
-msgstr "La respuesta del sensor de fil es deficiente, ¿desactivarlo?"
+msgstr "La respuesta del sensor de fil es deficiente, ?desactivarlo?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
 msgstr "Sensor Fil. [N/D]"
 
 # MSG_FSENSOR_OFF
-#: messages.c:49
+#: messages.c:44
 msgid "Fil. sensor [off]"
-msgstr "Sensor de Fil. [inactivo]"
+msgstr "Sensor Fil. [ina]"
+
+# 
+#: ultralcd.cpp:2013
+msgid "Filam. runouts"
+msgstr "Filam. acabado"
 
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
 msgstr "Filamento"
 
 # MSG_FILAMENT_CLEAN c=20 r=2
-#: messages.c:37
+#: messages.c:32
 msgid "Filament extruding & with correct color?"
 msgstr "Es nitido el color nuevo?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Fil. no introducido"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Sensor de filamento"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Sensor de filamento:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr "Filamento usado"
 
@@ -663,9 +703,9 @@ msgid "Filament used:  "
 msgstr "Filamento usado: "
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
-msgstr "Archivo incompleto. ¿Continuar de todos modos?"
+msgstr "Archivo incompleto. ?Continuar de todos modos?"
 
 # MSG_SD_FILE_OPENED
 #: cardreader.cpp:395
@@ -678,92 +718,92 @@ msgid "File selected"
 msgstr "Arch. elegido"
 
 # MSG_FINISHING_MOVEMENTS c=20 r=1
-#: messages.c:45
+#: messages.c:40
 msgid "Finishing movements"
 msgstr "Term. movimientos"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Cal. primera cap."
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4740
 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."
 
 # 
-#: mmu.cpp:423
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
-msgstr "Corrige el problema y pulsa el botón en la unidad MMU."
+msgstr "Corrige el problema y pulsa el boton en la unidad MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Flujo"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr "forum.prusa3d.com"
 
 # MSG_SELFTEST_COOLING_FAN c=20
-#: messages.c:80
+#: messages.c:71
 msgid "Front print fan?"
 msgstr "Vent. frontal?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Frontal [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Ventiladores frontal/izquierdo"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Calentador/Termistor"
 
 # MSG_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
 msgstr "Calentando..."
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr "Calentadores desactivados por el temporizador de seguridad."
 
 # MSG_HEATING_COMPLETE c=20
-#: messages.c:52
+#: messages.c:47
 msgid "Heating done."
 msgstr "Calentamiento acabado."
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4719
 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?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2142
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr "howto.prusa3d.com"
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4749
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Hare la calibracion XYZ. Tardara 12 min. aproximadamente."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr "Voy a hacer Calibracion Z ahora."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr "Voy a comenzar a imprimir la linea y tu bajaras el nozzle gradualmente al rotar el dial, hasta que llegues a la altura optima. Mira las imagenes del capitulo Calibracion en el manual."
 
@@ -773,7 +813,7 @@ msgid "Improving bed calibration point"
 msgstr "Mejorando punto de calibracion base"
 
 # MSG_WATCH
-#: messages.c:102
+#: messages.c:93
 msgid "Info screen"
 msgstr "Monitorizar"
 
@@ -783,54 +823,54 @@ msgid "Init. SD card"
 msgstr "Iniciar tarj. SD"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Introducir filamento"
 
 # MSG_FILAMENT_LOADING_T0 c=20 r=4
-#: messages.c:38
+#: messages.c:33
 msgid "Insert filament into extruder 1. Click when done."
 msgstr "Insertar filamento en el extrusor 1. Haz clic una vez terminado."
 
 # MSG_FILAMENT_LOADING_T1 c=20 r=4
-#: messages.c:39
+#: messages.c:34
 msgid "Insert filament into extruder 2. Click when done."
 msgstr "Insertar filamento en el extrusor 2. Haz clic una vez terminado."
 
 # MSG_FILAMENT_LOADING_T2 c=20 r=4
-#: messages.c:40
+#: messages.c:35
 msgid "Insert filament into extruder 3. Click when done."
 msgstr "Insertar filamento en el extrusor 3. Haz clic una vez terminado."
 
 # MSG_FILAMENT_LOADING_T3 c=20 r=4
-#: messages.c:41
+#: messages.c:36
 msgid "Insert filament into extruder 4. Click when done."
 msgstr "Insertar filamento en el extrusor 4. Haz clic una vez terminado."
 
 # 
-#: ultralcd.cpp:4529
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
-msgstr "¿Está cargado el filamento 1?"
+msgstr "?Esta cargado el filamento 1?"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Esta el filamento cargado?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "Es el filamento PLA?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "Esta el filamento PLA cargado?"
 
 # MSG_STEEL_SHEET_CHECK c=20 r=2
-#: messages.c:95
+#: messages.c:86
 msgid "Is steel sheet on heatbed?"
-msgstr "¿Esta colocada la lamina de acero sobre la base?"
+msgstr "?Esta colocada la lamina de acero sobre la base?"
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20
 #: mesh_bed_calibration.cpp:2223
@@ -843,17 +883,27 @@ msgid "KILLED. "
 msgstr "PARADA DE EMERGENCIA"
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:1960
+msgid "Last print"
+msgstr "Ultima impresion"
+
+# 
+#: ultralcd.cpp:1976
+msgid "Last print failures"
+msgstr "Ultimas impresiones fallidas"
+
+# 
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Izquierda"
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Vent. izquierdo?"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Izquierda [um]"
 
@@ -863,9 +913,9 @@ msgid "Left:"
 msgstr "Izda:"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
-msgstr "Corrección de Linealidad"
+msgstr "Correccion de Linealidad"
 
 # MSG_BABYSTEP_Z
 #: messages.c:13
@@ -873,57 +923,57 @@ msgid "Live adjust Z"
 msgstr "Micropaso Eje Z"
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5323
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Intr. todos fil."
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr "Introducir filam."
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Introducir fil. 1"
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Introducir fil. 2"
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Introducir fil. 3"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Introducir fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Cargar filamento 5"
 
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr "Cargar a la boquilla"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Cambiando color"
 
 # MSG_LOADING_FILAMENT c=20
-#: messages.c:57
+#: messages.c:52
 msgid "Loading filament"
 msgstr "Introduciendo filam."
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6837
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Polea suelta"
 
@@ -943,7 +993,7 @@ msgid "M109 Invalid extruder "
 msgstr "M109 Extrusor invalido"
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Cal. primera cap."
 
@@ -963,7 +1013,7 @@ msgid "M221 Invalid extruder "
 msgstr "M221 Extrusor invalido"
 
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Menu principal"
 
@@ -973,7 +1023,7 @@ msgid "Mark filament 100mm from extruder body. Click when done."
 msgstr "Marque el filamento 100 mm por encima del final del extrusor. Haz clic una vez terminado."
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Desviacion medida:"
 
@@ -983,17 +1033,32 @@ msgid "Measured skew:"
 msgstr "Desviación medida:"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60
-#: messages.c:60
+#: messages.c:55
 msgid "Measuring reference height of calibration point"
 msgstr "Midiendo altura del punto de calibracion"
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4939
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
-msgstr "Nivelación Mesh Level"
+msgstr "Nivelacion Mesh Level"
 
 # 
-#: mmu.cpp:418
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr "Fallos MMU"
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr "Carga MMU fallida"
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr "Carga MMU falla"
+
+# 
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "MMU necesita atencion del usuario."
 
@@ -1003,77 +1068,92 @@ msgid "MMU needs user attention. Fix the issue and then press button on MMU unit
 msgstr "MMU necesita atencion del usuario. Corrija el problema y luego presione el boton en la unidad MMU."
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Restaurando posicion..."
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:450
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Restaurando temperatura..."
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Resumiendo..."
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr "Fallo de energia en MMU"
+
+# 
+#: ultralcd.cpp:2241
+msgid "MMU2 connected"
+msgstr "MMU2 conectado"
+
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
-msgstr "Modo [Normal]"
+msgstr "Modo     [Normal]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
-msgstr "Modo [silencio]"
+msgstr "Modo   [silencio]"
 
 # MSG_STEALTH_MODE_ON
-#: messages.c:94
+#: messages.c:85
 msgid "Mode    [Stealth]"
-msgstr "Modo [Silencio]"
+msgstr "Modo   [Silencio]"
 
 # MSG_AUTO_MODE_ON
 #: messages.c:12
 msgid "Mode [auto power]"
-msgstr "Modo [fuerza auto]"
+msgstr "Modo[fuerza auto]"
 
 # MSG_SILENT_MODE_OFF
-#: messages.c:91
+#: messages.c:82
 msgid "Mode [high power]"
 msgstr "Modo [rend.pleno]"
 
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr "Motor"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Mover ejes"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Mover X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Mover Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Mover Z"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr "No disponible"
+
 # 
 #: util.cpp:293
 msgid "New firmware version available:"
 msgstr "Nuevo firmware disponible:"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr "No"
 
@@ -1088,12 +1168,12 @@ msgid "No Checksum with line number, Last Line: "
 msgstr "Sin Checksum con linea numero, Ult. Linea: "
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Sin movimiento"
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "No hay tarjeta SD"
 
@@ -1103,35 +1183,40 @@ msgid "No thermistors - no temperature"
 msgstr "Sin termistores - sin temperatura"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "No hay conexion "
 
 # MSG_SELFTEST_FAN_NO c=19
-#: messages.c:84
+#: messages.c:75
 msgid "Not spinning"
 msgstr "Ventilador no gira"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4568
+#: ultralcd.cpp:4821
 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."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4512
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Voy a precalentar la boquilla para PLA ahora."
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
-msgstr "Ahora retira la prueba de la lámina de acero."
+msgstr "Ahora retira la prueba de la lamina de acero."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Boquilla"
 
+# 
+#: ultralcd.cpp:1919
+msgid "Nozzle FAN"
+msgstr "Ventilador de capa"
+
 # MSG_INFO_NOZZLE_FAN c=11 r=1
 #: ultralcd.cpp:1537
 msgid "Nozzle FAN:"
@@ -1153,9 +1238,9 @@ msgid "ok"
 msgstr "ok"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
-msgstr "Se han encontrado ajustes anteriores. Se ajustará el PID, los pasos del extrusor, etc"
+msgstr "Se han encontrado ajustes anteriores. Se ajustara el PID, los pasos del extrusor, etc"
 
 # MSG_ENDSTOP_OPEN
 #: messages.c:29
@@ -1173,7 +1258,7 @@ msgid "openRoot failed"
 msgstr "fallo openRoot "
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr "Pausar impresion"
 
@@ -1183,42 +1268,42 @@ msgid "Pick print"
 msgstr "Esc. Modelo Adecuado"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "Cal. PID "
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "Cal. PID terminada"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "Calibracion PID"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "Calentando PINDA"
 
 # MSG_PAPER c=20 r=8
-#: messages.c:66
+#: messages.c:60
 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."
 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_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Controla :"
 
 # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
-#: messages.c:103
+#: messages.c:94
 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
 msgstr "Lee el manual y resuelve el problema. Despues, reinicia la impresora y continua con el Wizard"
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr "Limpia la superficie de la base, por favor, y haz clic"
 
@@ -1228,12 +1313,12 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Limpia boquilla para calibracion. Click cuando acabes."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4411
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr "Inserta, por favor, filamento PLA en el extrusor. Despues haz clic para cargarlo."
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Por favor introduce el filamento al primer tubo MMU, despues presiona el dial para imprimirlo."
 
@@ -1243,52 +1328,52 @@ msgid "Please load PLA filament and then resume Wizard by rebooting the printer.
 msgstr "Carga filamento PLA, por favor, y reinicia la impresora para continuar con el Wizard"
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4314
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Carga el filamento PLA primero por favor."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2989
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
 msgstr "Por favor abate el rodillo de empuje (idler) y retira el filamento manualmente."
 
 # MSG_PLACE_STEEL_SHEET c=20 r=4
-#: messages.c:67
+#: messages.c:61
 msgid "Please place steel sheet on heatbed."
 msgstr "Por favor coloca la chapa de acero en la base calefactable."
 
 # MSG_PRESS_TO_UNLOAD c=20 r=4
-#: messages.c:71
+#: messages.c:64
 msgid "Please press the knob to unload filament"
 msgstr "Por favor, pulsa el dial para descargar el filamento"
 
 # MSG_PULL_OUT_FILAMENT c=20 r=4
-#: messages.c:73
+#: messages.c:66
 msgid "Please pull out filament immediately"
 msgstr "Por favor retire el filamento de inmediato"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1114
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr "Por favor quite el filamento y luego presione el dial."
 
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Por favor retira los soportes de envio primero."
 
 # MSG_REMOVE_STEEL_SHEET c=20 r=4
-#: messages.c:77
+#: messages.c:70
 msgid "Please remove steel sheet from heatbed."
 msgstr "Por favor retire la chapa de acero de la base calefactable."
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4011
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr "Por favor realiza la calibracion XYZ primero."
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Por favor actualice el firmware en tu MMU2. Esperando el reseteo."
 
@@ -1298,52 +1383,77 @@ msgid "Please upgrade."
 msgstr "Actualize por favor"
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Por Favor Espere"
 
+# 
+#: ultralcd.cpp:2013
+msgid "Power failures"
+msgstr "Cortes de energia"
+
 # MSG_POWERUP
 #: messages.c:69
 msgid "PowerUp"
 msgstr "Encendido"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Precalentar"
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Precalienta extrusor!"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr "Precalentando nozzle. Espera por favor."
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr "Precalentar para cargar"
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr "Precalentar para descargar"
+
 # MSG_PREPARE_FILAMENT c=20 r=1
 #: ultralcd.cpp:1911
 msgid "Prepare new filament"
 msgstr "Preparar filamento"
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Pulsa el dial para precalentar la boquilla y continue."
 
 # 
-#: mmu.cpp:422
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr "Pulsa el dial"
+
+# 
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Presiona el dial para continuar con la temperatura de la boquilla."
 
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Impresion cancelada"
 
+# 
+#: ultralcd.cpp:1921
+msgid "Print FAN"
+msgstr "Ventilador del extrusor"
+
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Ventilador del fusor:"
 
@@ -1358,12 +1468,12 @@ msgid "Print from SD"
 msgstr "Menu tarjeta SD"
 
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Impresion en pausa"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Tiempo de imp.:"
 
@@ -1383,9 +1493,9 @@ msgid "Printer halted. kill() called!"
 msgstr "Impresora detenida. kill() activado!"
 
 # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
-#: messages.c:46
+#: messages.c:41
 msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."
-msgstr "Impresora no esta \ncalibrada todavia. \nPor favor usa el manual\ncapitulo Primeros pasos\nCalibracion flujo."
+msgstr "Impresora no esta calibrada todavia. Por favor usa el manual capitulo Primeros pasos Calibracion flujo."
 
 # MSG_ERR_STOPPED
 #: messages.c:32
@@ -1407,20 +1517,25 @@ msgstr "Preparado para Prusa i3 MK2.5."
 msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 prep."
 
+# 
+#:
+msgid "Prusa i3 MK3S OK."
+msgstr "Prusa i3 MK3S OK."
+
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr "prusa3d.es"
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Trasera [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
-msgstr "Recuperando impresión"
+msgstr "Recuperando impresion"
 
 # MSG_REFRESH
 #:
@@ -1428,7 +1543,7 @@ msgid "Refresh"
 msgstr "Refrescar"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr "Retire el filamento viejo y presione el dial para comenzar a cargar el nuevo filamento."
 
@@ -1448,32 +1563,32 @@ msgid "Resend: "
 msgstr "Reenviar: "
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr "Reset"
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr "Reset XYZ calibr."
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Reanudar impres."
 
 # MSG_RESUMING_PRINT c=20 r=1
-#: messages.c:76
+#: messages.c:69
 msgid "Resuming print"
 msgstr "Resumiendo impresion"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Derecha"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Derecha [um]"
 
@@ -1488,22 +1603,22 @@ msgid "Rotate knob until mark reaches extruder body. Click when done."
 msgstr "Rotar el dial hasta que la marca llegue al cuerpo del extrusor. Haz clic una vez terminado."
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
-msgstr "Puerto RPi [activo]"
+msgstr "Puerto RPi  [act]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
-msgstr "Puerto RPi [inactivo]"
+msgstr "Puerto RPi  [ina]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4583
 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?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4780
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
 msgstr "Tarj. SD [normal]"
 
@@ -1518,9 +1633,9 @@ msgid "SD card [FlshAir]"
 msgstr "Tarj. SD [FlshAir]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
-msgstr "Tarj. SD [FlshAir]"
+msgstr "Tarj. SD[FlshAir]"
 
 # MSG_SD_INIT_FAIL
 #: cardreader.cpp:186
@@ -1533,69 +1648,79 @@ msgid "SD printing byte "
 msgstr "SD byte impresion"
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60
-#: messages.c:43
+#: messages.c:38
 msgid "Searching bed calibration point"
 msgstr "Buscando punto de calibracion base"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4873
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Cambiar el idioma"
 
 # 
-#: ultralcd.cpp:4550
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selecciona la temperatura para precalentar la boquilla que se ajuste a tu material. "
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "Seleccionar filamento PLA:"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr "Self test OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Iniciar Selftest"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Selftest"
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Error Selftest !"
 
 # MSG_SELFTEST_FAILED c=20
-#: messages.c:82
+#: messages.c:73
 msgid "Selftest failed  "
 msgstr "Fallo Selftest"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1521
+#: Marlin_main.cpp:1548
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
-msgstr "Se realizará el auto-test para calibrar con precisión la vuelta a la posición inicial sin sensores."
+msgstr "Se realizara el auto-test para calibrar con precision la vuelta a la posicion inicial sin sensores."
+
+# 
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr "Estado del sensor"
+
+# 
+#:
+msgid "Sensors info"
+msgstr "Informacion sensores"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Establecer temp.:"
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Configuracion"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2899
 msgid "Severe skew"
-msgstr "Inclinación severa"
+msgstr "Inclinacion severa"
 
 # MSG_SEVERE_SKEW c=15 r=1
 #: ultralcd.cpp:2346
@@ -1603,12 +1728,12 @@ msgid "Severe skew:"
 msgstr "Inclinación severa:"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Mostrar endstops"
 
 # 
-#: ultralcd.cpp:4947
+#:
 msgid "Show pinda state"
 msgstr "Mostrar estado pinda"
 
@@ -1618,7 +1743,7 @@ msgid "Sleep..."
 msgstr "En reposo..."
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Ligeramente inclinado"
 
@@ -1633,9 +1758,9 @@ msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting
 msgstr "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. "
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
-msgstr "Problema encontrado, nivelación Z forzosa ..."
+msgstr "Problema encontrado, nivelacion Z forzosa ..."
 
 # MSG_SORT_NONE c=17 r=1
 #: ultralcd.cpp:4250
@@ -1643,9 +1768,9 @@ msgid "Sort:      [None]"
 msgstr "Ordena: [Ninguno]"
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
-msgstr "Ordenar: [nada]"
+msgstr "Ordenar:   [nada]"
 
 # MSG_SORT_TIME c=17 r=1
 #: ultralcd.cpp:4248
@@ -1653,9 +1778,9 @@ msgid "Sort:      [Time]"
 msgstr "Orden: [Fecha]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
-msgstr "Orden: [Fecha]"
+msgstr "Orden:    [Fecha]"
 
 # MSG_SORT_ALPHA c=17 r=1
 #: ultralcd.cpp:4249
@@ -1663,9 +1788,9 @@ msgid "Sort:  [Alphabet]"
 msgstr "Orden: [Alfabético]"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
-msgstr "Ordenar: [alfabeto]"
+msgstr "Ordenar:[alfabet]"
 
 # MSG_SORT_NONE c=17 r=1
 #:
@@ -1685,40 +1810,55 @@ msgstr "Ordenando archivos"
 # MSG_SOUND_LOUD c=17 r=1
 #: sound.h:5
 msgid "Sound      [loud]"
-msgstr "Sonido [alto]"
+msgstr "Sonido     [alto]"
 
 # MSG_SOUND_MUTE c=17 r=1
 #: sound.h:8
 msgid "Sound      [mute]"
-msgstr "Sonido [silenciado]"
+msgstr "Sonido[silenciad]"
 
 # MSG_SOUND_ONCE c=17 r=1
 #: sound.h:6
 msgid "Sound      [once]"
-msgstr "Sonido [una vez]"
+msgstr "Sonido  [una vez]"
 
 # MSG_SOUND_SILENT c=17 r=1
 #: sound.h:7
 msgid "Sound    [silent]"
-msgstr "Sonido [silencioso]"
+msgstr "Sonido[silencios]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr "Velocidad"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Ventilador girando"
 
+# MSG_AUTO_DEPLETE_ON c=17 r=1
+#: ultralcd.cpp:4959
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin    [on]"
+
+# 
+#: ultralcd.cpp:4955
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin   [N/A]"
+
+# MSG_AUTO_DEPLETE_OFF c=17 r=1
+#: ultralcd.cpp:4963
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [off]"
+
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4065
 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."
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5847
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Estadisticas "
 
@@ -1728,52 +1868,52 @@ msgid "Steprate too high: "
 msgstr "Pasos muy altos: "
 
 # MSG_STOP_PRINT
-#: messages.c:96
+#: messages.c:87
 msgid "Stop print"
 msgstr "Detener impresion"
 
 # MSG_STOPPED
-#: messages.c:97
+#: messages.c:88
 msgid "STOPPED. "
 msgstr "PARADA"
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr "Soporte"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Intercambiado"
 
 # MSG_TEMP_CALIBRATION c=20 r=1
-#: messages.c:98
+#: messages.c:89
 msgid "Temp. cal.          "
 msgstr "Cal. temp. "
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4860
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
-msgstr "Cal. temp. [ON]"
+msgstr "Cal. temp.   [ON]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
-msgstr "Cal. temp. [OFF]"
+msgstr "Cal. temp.  [OFF]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Calibracion temp."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr "Temperatura"
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr "Fallo de la calibracion de temperatura"
 
@@ -1783,22 +1923,42 @@ msgid "Temperature calibration has not been run yet"
 msgstr "La temperatura de calibracion no ha sido ajustada"
 
 # MSG_TEMP_CALIBRATION_DONE c=20 r=12
-#: messages.c:99
+#: messages.c:90
 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal."
 msgstr "Calibracion temperatura terminada. Haz clic para continuar."
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr "Temperaturas"
 
 # MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4
-#: messages.c:47
+#: messages.c:42
 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."
 msgstr "Todavia es necesario hacer una calibracion Z. Por favor siga el manual, capitulo Primeros pasos, seccion Calibracion del flujo."
 
 # 
-#: ultralcd.cpp:2539
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr "para cargar el filamento"
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr "para descargar el filamento"
+
+# 
+#: ultralcd.cpp:1961
+msgid "Total"
+msgstr "Total"
+
+# 
+#: ultralcd.cpp:1994
+msgid "Total failures"
+msgstr "Fallos totales"
+
+# 
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Filamento total:"
 
@@ -1808,7 +1968,7 @@ msgid "Total filament :"
 msgstr "Filamento total:"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr "Tiempo total :"
 
@@ -1823,22 +1983,27 @@ msgid "TRIGGERED"
 msgstr "ACTIVADO"
 
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Ajustar"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:2249
+msgid "unknown"
+msgstr "desconocido"
+
+# 
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Descargar"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Soltar todos fil."
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr "Soltar filamento"
 
@@ -1863,22 +2028,22 @@ msgid "Unload filament 4"
 msgstr "Soltar fil. 4"
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Soltando filamento"
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
 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_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Usado en impresion"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Voltajes"
 
@@ -1888,32 +2053,32 @@ msgid "volume.init failed"
 msgstr "fallo volume.init \n"
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Esperando ordenes"
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Esperando enfriamiento de la base y extrusor."
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3008
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
-msgstr "Esperando a que se enfríe la sonda PINDA"
+msgstr "Esperando a que se enfrie la sonda PINDA"
 
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1481
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Aviso: tanto el tipo de impresora como el tipo de la placa han cambiado."
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1473
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr "Cuidado: el tipo de placa ha cambiado."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1477
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr "Cuidado: Ha cambiado el tipo de impresora."
 
@@ -1923,17 +2088,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!"
 msgstr "CUIDADO: Esta es una version no-oficial y sin soporte. ¡Usala bajo tu responsabilidad!"
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
-msgstr "¿Se cargocon exito el filamento?"
+msgstr "?Se cargocon exito el filamento?"
 
 # MSG_SELFTEST_WIRINGERROR
-#: messages.c:89
+#: messages.c:80
 msgid "Wiring error"
 msgstr "Error de conexion"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4923
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr "Wizard"
 
@@ -1944,57 +2109,56 @@ msgstr "error al abrir workDir"
 
 # MSG_SD_WRITE_TO_FILE
 #: cardreader.cpp:424
-#, fuzzy
 msgid "Writing to file: "
 msgstr "Escribiendo al arch.: "
 
 # 
-#: ultralcd.cpp:4632
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "X-correcion"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "Detalles de calibracion XYZ"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3496
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Calibracion XYZ correcta. La inclinacion se corregira automaticamente."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3493
+#: ultralcd.cpp:3712
 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!"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3474
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3480
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr "Calibrazion XYZ comprometida. Punto frontal izquierdo no alcanzable."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3477
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable."
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "Calibracion XYZ fallada. Punto frontal izquierdo no alcanzable."
 
@@ -2004,17 +2168,17 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "Calibracion XYZ fallada. Consulta el manual por favor."
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibracion XYZ ok. Ejes X/Y perpendiculares. Enhorabuena!"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Distancia en Y desde el min"
 
@@ -2024,12 +2188,12 @@ msgid "Y distance from min:"
 msgstr "Distancia en Y desde el min:"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Y-correcion"
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Si"
 
@@ -2044,11 +2208,11 @@ msgid "You are using firmware beta version. This is development version. Using t
 msgstr "Estás usando una versión beta de firmware. Es una versión en desarrollo. No recomendamos que la uses y podría causar daños a la impresora."
 
 # MSG_WIZARD_QUIT c=20 r=8
-#: messages.c:106
+#: messages.c:97
 msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Siempre puedes acceder al asistente desde Calibracion -> Wizard"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "[0;0] punto offset"

+ 514 - 350
lang/po/new/fr.po

@@ -8,14 +8,14 @@ msgstr ""
 "X-Generator: PhraseApp (phraseapp.com)\n"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:4219
 msgid "\e[2JCrash detection can\e[1;0Hbe turned on only in\e[2;0HNormal mode"
-msgstr "\e[2JLa detection de \ncrash\e[1;0Hpeut etre\nactive\e[2;0Hqu'en mode\nNormal"
+msgstr "\e[2JLa detection de crash peut etre\e[1;0Hactive seulement\e[2;0Hen mode Normal"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3979
+#: ultralcd.cpp:4231
 msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode"
-msgstr "\e[2JATTENTION :\e[1;0H\nDetection de crash\e[2;0H\ndesactivee en mode\e[3;0H\nFurtif"
+msgstr "\e[2JATTENTION :\e[1;0HDetection de crash\e[2;0H desactivee en\e[3;0Hmode Furtif"
 
 # MSG_PLANNER_BUFFER_BYTES
 #: Marlin_main.cpp:1184
@@ -43,12 +43,12 @@ msgid " Last Updated: "
 msgstr "Derniere MAJ :"
 
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
-#: messages.c:44
+#: messages.c:39
 msgid " of 4"
 msgstr "de 4"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14
-#: messages.c:61
+#: messages.c:56
 msgid " of 9"
 msgstr "de 9"
 
@@ -67,8 +67,13 @@ msgstr " \002 Max"
 msgid " \002 Min"
 msgstr " \002 Min"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ">Annuler"
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Ajustement de Z"
 
@@ -78,24 +83,29 @@ msgid "All"
 msgstr "Tous"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Tout est correct"
 
 # MSG_WIZARD_DONE c=20 r=8
-#: messages.c:104
+#: messages.c:95
 msgid "All is done. Happy printing!"
-msgstr "Tout est termine. \nBonne impression !"
+msgstr "Tout est pret. Bonne\nimpression !"
+
+# 
+#: ultralcd.cpp:2109
+msgid "Ambient"
+msgstr "Ambiant"
 
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "et pressez le bouton"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
-msgstr "Chariots Z gauche et\ndroite tout en haut?"
+msgstr "Z~carriages gauche +\ndroite tout en haut?"
 
 # MSG_ADJUSTZ
 #: ultralcd.cpp:2600
@@ -120,30 +130,30 @@ msgstr "Purge auto [off]"
 # MSG_AUTO_HOME
 #: messages.c:11
 msgid "Auto home"
-msgstr "Origine automatique"
+msgstr "Mise a 0 des axes"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "AutoCharge du filament"
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
-msgstr "AutoCharge du\nfilament uniquement\nsi le capteur de\nfilament est active."
+msgstr "Chargement auto du\nfilament uniquement\nsi le capteur de\nfilament est active."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2438
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
-msgstr "AutoCharge actif,\nappuyez sur le\nbouton et inserez\nle filament."
+msgstr "Chargement auto du\nfilament actif,\nappuyez sur le btn\net inserez le fil."
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Axe"
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6845
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Longueur de l'axe"
 
@@ -163,14 +173,14 @@ msgid "Bed"
 msgstr "Lit"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Lit / Chauffage"
 
 # MSG_BED_DONE
 #: messages.c:16
 msgid "Bed done"
-msgstr "Lit terminé"
+msgstr "Plateau termine"
 
 # MSG_BED_HEATING
 #: messages.c:17
@@ -178,24 +188,24 @@ msgid "Bed Heating"
 msgstr "Chauffe du lit"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
-msgstr "Correction niveau lit"
+msgstr "Corr. niveau plateau"
 
 # MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4
 #: messages.c:18
 msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset."
-msgstr "Echec du nivellement.\nCapt. non declenche.\nDebris sur buse ? En \nattente d'un reset."
+msgstr "Echec bed leveling.\nCapt. non declenche.\nDebris sur buse ? En\nattente d'un reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4467
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
-msgstr "Echec du nivellement.\nCapteur deconnecte\nou cable casse. En \nattente d'un reset."
+msgstr "Echec du nivellement\nCapteur deconnecte\nou cable casse. En\nattente d'un reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4471
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
-msgstr "Echec du nivellement.\nCapt. declenche trop\ntrop haut. En\nattente d'un reset."
+msgstr "Echec bed leveling.\nCapt. declenche\ntrop trop haut. En\nattente d'un reset."
 
 # MSG_BEGIN_FILE_LIST
 #: Marlin_main.cpp:4405
@@ -203,17 +213,17 @@ msgid "Begin file list"
 msgstr "Debut liste fichiers"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Statut courroie"
 
 # MSG_RECOVER_PRINT c=20 r=2
-#: messages.c:74
+#: messages.c:67
 msgid "Blackout occurred. Recover print?"
 msgstr "Coupure detectee.\nRecup. impression ?"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Calibrer"
 
@@ -223,17 +233,22 @@ msgid "Calibrate E"
 msgstr "Calibrer E"
 
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Calibrer XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Calibrer Z"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr "Calib. mise a 0"
+
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibration de XYZ.\nTournez le bouton\npour monter le\nchariot de l'axe Z\njusqu'aux butees.\nCliquez une fois\nfait."
 
@@ -243,22 +258,22 @@ msgid "Calibrating Z"
 msgstr "Calibration de Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr "Calibration de Z.\nTournez le bouton\npour monter le\nchariot de l'axe Z\njusqu'aux butees.\nCliquez une fois\nfait."
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr "Calibration"
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Calibration terminee"
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Annuler"
 
@@ -273,22 +288,22 @@ msgid "Cannot open subdir"
 msgstr "Impossible d'ouvrir\nle repertoire"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#:
 msgid "Card inserted"
 msgstr "Carte  inseree"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "Carte retiree"
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Changer extrudeur"
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Changer filament"
 
@@ -298,12 +313,12 @@ msgid "Change SD card"
 msgstr "Changer carte SD"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Changement reussi!"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Change correctement?"
 
@@ -313,37 +328,37 @@ msgid "Changing filament!"
 msgstr "Changement filament!"
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
 msgstr "Verification du lit"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Verifications butees"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Verif. tete impr."
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
-#: messages.c:87
+#: messages.c:78
 msgid "Checking sensors "
 msgstr "Verif. des capteurs"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Verification axe X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Verification axe Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Verification axe Z"
 
@@ -353,17 +368,17 @@ msgid "checksum mismatch, Last Line: "
 msgstr "dissemblance du checksum, Derniere Ligne :"
 
 # MSG_CHOOSE_EXTRUDER c=20 r=1
-#: messages.c:54
+#: messages.c:49
 msgid "Choose extruder:"
 msgstr "Choisir extrudeur :"
 
 # MSG_CHOOSE_FILAMENT c=20 r=1
-#: messages.c:55
+#: messages.c:50
 msgid "Choose filament:"
 msgstr "Choix du filament :"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Couleur incorrecte"
 
@@ -377,10 +392,20 @@ msgstr "Refroidissement"
 msgid "Copy selected language from XFLASH?"
 msgstr "Copier la langue selectionne depuis la XFLASH ?"
 
+# 
+#: ultralcd.cpp:4360
+msgid "Copy selected language?"
+msgstr "Copier la langue\nselectionne ?"
+
+# 
+#: ultralcd.cpp:2013
+msgid "Crash"
+msgstr "Crash"
+
 # MSG_CRASHDETECT_ON
 #: messages.c:27
 msgid "Crash det.   [on]"
-msgstr "Detect. crash [on]"
+msgstr "Detect. crash[on]"
 
 # MSG_CRASHDETECT_NA
 #: messages.c:25
@@ -390,7 +415,7 @@ msgstr "Detect. crash [N/A]"
 # MSG_CRASHDETECT_OFF
 #: messages.c:26
 msgid "Crash det.  [off]"
-msgstr "Detect. crash [off]"
+msgstr "Detect. crash[off]"
 
 # MSG_CRASH_DETECTED c=20 r=1
 #: messages.c:24
@@ -398,34 +423,34 @@ msgid "Crash detected."
 msgstr "Crash detecte."
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Crash detecte. Poursuivre l'impression ?"
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Actuel"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Date :"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Desactiver moteurs"
 
 # MSG_BABYSTEP_Z_NOT_SET c=20 r=12
 #: messages.c:14
 msgid "Distance between tip of the nozzle and the bed surface has not been set yet. Please follow the manual, chapter First steps, section First layer calibration."
-msgstr "La distance entre\nla pointe de la\nbuse et la surface\ndu lit n'a pas\nencore ete reglee.\nSuivez le manuel,\nchapitre Premiers\npas, section\nCalibration de la\npremiere couche."
+msgstr "La distance entre la\npointe de la buse et\nla surface du\nplateau n'a pas\nencore ete reglee.\nSuivez le manuel,\nchapitre Premiers\npas, section\nCalibration de la\npremiere couche."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4575
+#: ultralcd.cpp:4828
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
-msgstr "Voulez-vous repeter\nla derniere etape\npour reajuster la\ndistance entre la\nbuse et le lit\nchauffant ?"
+msgstr "Voulez-vous repeter\nla derniere etape\npour reajuster la\ndistance entre la\nbuse et le plateau\nchauffant ?"
 
 # MSG_CLEAN_NOZZLE_E c=20 r=8
 #: ultralcd.cpp:3890
@@ -433,49 +458,49 @@ msgid "E calibration finished. Please clean the nozzle. Click when done."
 msgstr "Calibration de E\nterminee. Nettoyez\nla buse. Cliquez une\nfois fait."
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4636
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "Correct-E"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Ejecter"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:6081
 msgid "Eject filament"
-msgstr "Éjecter le filament"
+msgstr "Ejecter le fil."
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
-msgstr "Éjecter le filament 1"
+msgstr "Ejecter fil. 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Ejecter fil. 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Ejecter fil. 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Ejecter fil. 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Ejecter fil. 5"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1339
 msgid "Ejecting filament"
-msgstr "Filament en cours d'éjection"
+msgstr "Ejection filament"
 
 # MSG_END_FILE_LIST
 #: Marlin_main.cpp:4407
@@ -483,17 +508,17 @@ msgid "End file list"
 msgstr "Fin liste fichiers"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr "Butee"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr "Butee non atteinte"
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr "Butees"
 
@@ -513,7 +538,7 @@ msgid "enqueing \""
 msgstr "mise en file \""
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
 msgstr "Erreur - la memoire\nstatique a ete\necrasee"
 
@@ -523,139 +548,154 @@ msgid "error writing to file"
 msgstr "erreur d'ecriture du fichier"
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr "ERREUR :"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
-msgstr "ERREUR : Le capteur\nde filament ne\nrepond pas, verifiez\nla connexion."
+msgstr "ERREUR : Le capteur\nde filament ne\nrepond pas, verifiez\nle branchement."
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "La Flash SPI externe W25X20CL ne repond pas."
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr "Extrudeur"
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr "Extrudeur 1"
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr "Extrudeur 2"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr "Extrudeur 3"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr "Extrudeur 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Ventilo extrudeur:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr "Infos extrudeur"
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
-msgstr "AutoCharg F [on]"
+msgstr "ChargAuto f. [on]"
 
 # MSG_FSENS_AUTOLOAD_NA c=17 r=1
-#: messages.c:48
+#: messages.c:43
 msgid "F. autoload [N/A]"
 msgstr "AutoCharg F [N/A]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4676
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
 msgstr "AutoCharg F [off]"
 
+# 
+#: ultralcd.cpp:6112
+msgid "Fail stats"
+msgstr "Statist. d'echec"
+
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr "Stat. echecs MMU"
+
 # MSG_FAN_SPEED c=14
-#: messages.c:36
+#: messages.c:31
 msgid "Fan speed"
 msgstr "Vitesse ventil"
 
 # MSG_SELFTEST_FAN c=20
-#: messages.c:83
+#: messages.c:74
 msgid "Fan test"
 msgstr "Test ventilateur"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4847
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
-msgstr "Verif venti [on]"
+msgstr "Verif ventilo[on]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
 msgstr "Verif venti [off]"
 
 # MSG_FSENSOR_ON
-#: messages.c:50
+#: messages.c:45
 msgid "Fil. sensor  [on]"
 msgstr "Capteur Fil. [on]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3105
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
-msgstr "La réponse du capteur de fil. est pauvre, le désactiver ?"
+msgstr "Capteur de fil. non\nprecis, desactiver ?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
 msgstr "Capteur Fil. [N/A]"
 
 # MSG_FSENSOR_OFF
-#: messages.c:49
+#: messages.c:44
 msgid "Fil. sensor [off]"
-msgstr "Capteur Fil. [off]"
+msgstr "Capteur Fil.[off]"
+
+# 
+#: ultralcd.cpp:2013
+msgid "Filam. runouts"
+msgstr "Fins de filament"
 
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
 msgstr "Filament"
 
 # MSG_FILAMENT_CLEAN c=20 r=2
-#: messages.c:37
+#: messages.c:32
 msgid "Filament extruding & with correct color?"
 msgstr "Filament extrude et\navec bonne couleur ?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Filament non charge"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Capteur de filament"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Capteur filament :"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2725
 msgid "Filament used"
-msgstr "Filament utilisé"
+msgstr "Filament utilise"
 
 # MSG_STATS_FILAMENTUSED c=20
 #: ultralcd.cpp:2142
@@ -663,7 +703,7 @@ msgid "Filament used:  "
 msgstr "Filament utilise :"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
 msgstr "Fichier incomplet.\nContinuer qd meme ?"
 
@@ -678,94 +718,94 @@ msgid "File selected"
 msgstr "Fichier selectionne"
 
 # MSG_FINISHING_MOVEMENTS c=20 r=1
-#: messages.c:45
+#: messages.c:40
 msgid "Finishing movements"
 msgstr "Mouvements de fin"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Cal. 1ere couche"
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4740
 msgid "First, I will run the selftest to check most common assembly problems."
-msgstr "D'abord, je vais\nlancer l'autotest\npour verifier les\nproblemes\nd'assemblage les\nplus communs."
+msgstr "D'abord, je vais\nlancer le Selftest\npour verifier les\nproblemes\nd'assemblage les\nplus communs."
 
 # 
-#: mmu.cpp:423
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
 msgstr "Corrigez le probleme et appuyez sur le bouton de l'unite MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Flux"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr "forum.prusa3d.com"
 
 # MSG_SELFTEST_COOLING_FAN c=20
-#: messages.c:80
+#: messages.c:71
 msgid "Front print fan?"
 msgstr "Ventilo impr avant ?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Avant [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Ventilos avt/gauche"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Chauffage/Thermistor"
 
 # MSG_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
 msgstr "Chauffe"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr "Chauffe desactivee\npar le compteur de\nsecurite."
 
 # MSG_HEATING_COMPLETE c=20
-#: messages.c:52
+#: messages.c:47
 msgid "Heating done."
 msgstr "Chauffe terminee."
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4719
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
 msgstr "Bonjour, je suis\nvotre imprimante\nOriginal Prusa i3.\nVoulez-vous que je\nvous guide a travers\nle processus\nd'installation ?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2142
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr "howto.prusa3d.com"
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4749
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Je vais maintenant\nlancer la\ncalibration xyz.\nCela prendra 12 min\nenviron."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr "Je vais maintenant\nlancer la\ncalibration z."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
-msgstr "Je vais commencer a\nimprimer une ligne\net vous baisserez au\nfur et a mesure la\nbuse en tournant le\nbouton jusqu'a\natteindre la hauteur\noptimale. Regardez\nles photos dans notre\nmanuel au chapitre\nCalibration."
+msgstr "Je vais commencer a \nimprimer une ligne\net vous baisserez au\nfur et a mesure la\nbuse en tournant le\nbouton jusqu'a\natteindre la hauteur\noptimale. Regardez\nles photos dans\nnotre manuel au\nchapitre Calibration"
 
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 c=60
 #: mesh_bed_calibration.cpp:2481
@@ -773,9 +813,9 @@ msgid "Improving bed calibration point"
 msgstr "Amelioration du point de calibration du lit"
 
 # MSG_WATCH
-#: messages.c:102
+#: messages.c:93
 msgid "Info screen"
-msgstr "Ecran d'informations"
+msgstr "Ecran d'info"
 
 # MSG_INIT_SDCARD
 #: ultralcd.cpp:5785
@@ -783,54 +823,54 @@ msgid "Init. SD card"
 msgstr "Init. carte SD"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Inserez le filament"
 
 # MSG_FILAMENT_LOADING_T0 c=20 r=4
-#: messages.c:38
+#: messages.c:33
 msgid "Insert filament into extruder 1. Click when done."
-msgstr "Inserez le filament\ndans l'extrudeur 1.\nCliquez une fois\nfait."
+msgstr "Inserez le filament\ndans l'extrudeur 1.\nCliquez une fois\npret."
 
 # MSG_FILAMENT_LOADING_T1 c=20 r=4
-#: messages.c:39
+#: messages.c:34
 msgid "Insert filament into extruder 2. Click when done."
-msgstr "Inserez le filament\ndans l'extrudeur 2.\nCliquez une fois\nfait."
+msgstr "Inserez le filament\ndans l'extrudeur 2.\nCliquez une fois\npret."
 
 # MSG_FILAMENT_LOADING_T2 c=20 r=4
-#: messages.c:40
+#: messages.c:35
 msgid "Insert filament into extruder 3. Click when done."
-msgstr "Inserez le filament\ndans l'extrudeur 3.\nCliquez une fois\nfait."
+msgstr "Inserez le filament\ndans l'extrudeur 3.\nCliquez une fois\npret."
 
 # MSG_FILAMENT_LOADING_T3 c=20 r=4
-#: messages.c:41
+#: messages.c:36
 msgid "Insert filament into extruder 4. Click when done."
-msgstr "Inserez le filament\ndans l'extrudeur 4.\nCliquez une fois\nfait."
+msgstr "Inserez le filament\ndans l'extrudeur 4.\nCliquez une fois\npret."
 
 # 
-#: ultralcd.cpp:4529
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
 msgstr "Le filament 1 est-il charge ?"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Le filament est-il\ncharge ?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "Est-ce du filament\nPLA ?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "Le filament PLA\nest-il charge ?"
 
 # MSG_STEEL_SHEET_CHECK c=20 r=2
-#: messages.c:95
+#: messages.c:86
 msgid "Is steel sheet on heatbed?"
-msgstr "Feuille d'acier sur\nle lit chauffant ?"
+msgstr "Feuille d'acier sur\nplateau chauffant ?"
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20
 #: mesh_bed_calibration.cpp:2223
@@ -843,17 +883,27 @@ msgid "KILLED. "
 msgstr "TUE."
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:1960
+msgid "Last print"
+msgstr "Derniere impression"
+
+# 
+#: ultralcd.cpp:1976
+msgid "Last print failures"
+msgstr "Echecs derniere impr"
+
+# 
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Gauche"
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Ventilo tete gauche?"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Gauche [um]"
 
@@ -863,67 +913,67 @@ msgid "Left:"
 msgstr "Gauche :"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr "Correction lin."
 
 # MSG_BABYSTEP_Z
 #: messages.c:13
 msgid "Live adjust Z"
-msgstr "Ajustement Z en direct"
+msgstr "Ajuster Z en direct"
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5323
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Tout charger"
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr "Charger filament"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Charger fil. 1"
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Charger fil. 2"
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Charger fil. 3"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Charger fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Charger fil. 5"
 
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr "Charger dans la buse"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Chargement couleur"
 
 # MSG_LOADING_FILAMENT c=20
-#: messages.c:57
+#: messages.c:52
 msgid "Loading filament"
 msgstr "Chargement filament"
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6837
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Poulie lache"
 
@@ -943,7 +993,7 @@ msgid "M109 Invalid extruder "
 msgstr "M109 extrudeur invalide"
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Cal. 1ere couche"
 
@@ -963,7 +1013,7 @@ msgid "M221 Invalid extruder "
 msgstr "M221 extrudeur invalide"
 
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Principal"
 
@@ -973,7 +1023,7 @@ msgid "Mark filament 100mm from extruder body. Click when done."
 msgstr "Marquez le filament\na 100 mm du corps de\nl'extrudeur. Cliquez\nune fois fait."
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Deviation mesuree"
 
@@ -983,17 +1033,32 @@ msgid "Measured skew:"
 msgstr "Ecart mesure :"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60
-#: messages.c:60
+#: messages.c:55
 msgid "Measuring reference height of calibration point"
 msgstr "Mesure de la hauteur de reference du point de calibration"
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4939
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
-msgstr "Nivelage du lit par maillage"
+msgstr "Mesh Bed Leveling"
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr "Echec MMU"
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr "Echec chargement MMU"
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr "Echecs charg. MMU"
 
 # 
-#: mmu.cpp:418
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "Le MMU necessite l'attention de l'utilisateur."
 
@@ -1003,77 +1068,92 @@ msgid "MMU needs user attention. Fix the issue and then press button on MMU unit
 msgstr "La MMU requiert votre attention. Réglez le problème puis appuyez sur le bouton on sur l'unité MMU."
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Reprise de la position ..."
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:450
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
-msgstr "MMU OK. Reprise de la température ..."
+msgstr "MMU OK. Remontee en\ntemperature..."
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Reprise ..."
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr "Echecs alim. MMU"
+
+# 
+#: ultralcd.cpp:2241
+msgid "MMU2 connected"
+msgstr "MMU2 connecte"
+
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
-msgstr "Mode [Normal]"
+msgstr "Mode     [Normal]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
 msgstr "Mode [silencieux]"
 
 # MSG_STEALTH_MODE_ON
-#: messages.c:94
+#: messages.c:85
 msgid "Mode    [Stealth]"
 msgstr "Mode [Furtif]"
 
 # MSG_AUTO_MODE_ON
 #: messages.c:12
 msgid "Mode [auto power]"
-msgstr "Mode [puissance auto]"
+msgstr "Mode [puiss.auto]"
 
 # MSG_SILENT_MODE_OFF
-#: messages.c:91
+#: messages.c:82
 msgid "Mode [high power]"
-msgstr "Mode [haute puissance]"
+msgstr "Mode [haute puiss]"
 
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr "Moteur"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Deplacer l'axe"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Deplacer X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Deplacer Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Deplacer Z"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr "N/A"
+
 # 
 #: util.cpp:293
 msgid "New firmware version available:"
-msgstr "Nouvelle version de\nfirmware disponible :"
+msgstr "Nouvelle version de\nfirmware disponible:"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr "Non"
 
@@ -1088,12 +1168,12 @@ msgid "No Checksum with line number, Last Line: "
 msgstr "Pas de checksum avec\nnumero de ligne, \nDerniere ligne :"
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Pas de mouvement."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "Pas de carte SD"
 
@@ -1103,35 +1183,40 @@ msgid "No thermistors - no temperature"
 msgstr "Pas de thermistors\n- pas de temperature"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "Non connecte"
 
 # MSG_SELFTEST_FAN_NO c=19
-#: messages.c:84
+#: messages.c:75
 msgid "Not spinning"
 msgstr "Ne tourne pas"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4568
+#: ultralcd.cpp:4821
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
-msgstr "Maintenant je vais\ncalibrer la distance\nentre la pointe de la\nbuse et le surface du\nlit chauffant."
+msgstr "Maintenant je vais\ncalibrer la distance \nentre la pointe de\nla buse et la\nsurface du plateau\nchauffant."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4512
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Maintenant je vais\nprechauffer la buse\npour du PLA."
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr "Retirez maintenant l'impression de test de la feuille d'acier."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Buse"
 
+# 
+#: ultralcd.cpp:1919
+msgid "Nozzle FAN"
+msgstr "Ventilateur buse"
+
 # MSG_INFO_NOZZLE_FAN c=11 r=1
 #: ultralcd.cpp:1537
 msgid "Nozzle FAN:"
@@ -1153,9 +1238,9 @@ msgid "ok"
 msgstr "ok"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
-msgstr "Anciens reglages\ntrouves. Le PID, les\nEsteps etc. par\ndefaut seront pris."
+msgstr "Anciens reglages\ntrouves. Le PID, les\nEsteps etc. par\ndefaut seront regles"
 
 # MSG_ENDSTOP_OPEN
 #: messages.c:29
@@ -1173,9 +1258,9 @@ msgid "openRoot failed"
 msgstr "Echec openRoot"
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:6029
 msgid "Pause print"
-msgstr "Mettre en pause l'impression"
+msgstr "Pause de l'impr."
 
 # MSG_PICK_Z
 #: ultralcd.cpp:3463
@@ -1183,44 +1268,44 @@ msgid "Pick print"
 msgstr "Choisir impression"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "Calib. PID"
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "Calib. PID terminee"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "Calibration PID"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "Chauffe de la PINDA"
 
 # MSG_PAPER c=20 r=8
-#: messages.c:66
+#: messages.c:60
 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."
-msgstr "Placez une feuille\nde papier sous la\nbuse pendant la\ncalibration des 4\npremiers points. Si\nla buse accroche le\npapier, eteignez de\nsuite l'imprimante."
+msgstr "Placez une feuille\nde papier sous la\nbuse pendant la\ncalibration des 4\npremiers points.\nSi la buse accroche\nle papier, eteignez\nvite l'imprimante."
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Verifiez :"
 
 # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
-#: messages.c:103
+#: messages.c:94
 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
-msgstr "Merci de verifier\nnotre manuel et de\ncorriger le \nprobleme. Poursuivez\nalors l'assistant en\nredemarrant\nl'imprimante."
+msgstr "Merci de verifier\nnotre manuel et de\ncorriger le\nprobleme. Poursuivez\nalors l'assistant en\nredemarrant\nl'imprimante."
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
-msgstr "Nettoyez le lit\nchauffant et appuyez\nsur le bouton."
+msgstr "Nettoyez le plateau\nchauffant et appuyez\nsur le bouton."
 
 # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8
 #: messages.c:22
@@ -1228,12 +1313,12 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Nettoyez la buse\npour la calibration.\nCliquez une fois\nfait."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4411
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
-msgstr "Inserez du filament\nPLA dans\nl'extrudeur, puis\nappuyez sur le\nbouton pour le\ncharger."
+msgstr "Inserez du filament\nPLA dans l'extrudeur\npuis appuyez sur le\nbouton pour le\ncharger."
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Veuillez inserer du filament PLA dans le premier tube du MMU, et pressez sur le bouton pour le charger."
 
@@ -1243,54 +1328,54 @@ msgid "Please load PLA filament and then resume Wizard by rebooting the printer.
 msgstr "Chargez le filament\nPLA et poursuivez\nl'assistant en\nredemarrant\nl'imprimante."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4314
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Chargez d'abord le\nfilament PLA."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2989
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
-msgstr "Ouvrez le support de\npoulie et retirez le\nfilament\nmanuellement."
+msgstr "Ouvrez l'idler et\nretirez le filament\nmanuellement."
 
 # MSG_PLACE_STEEL_SHEET c=20 r=4
-#: messages.c:67
+#: messages.c:61
 msgid "Please place steel sheet on heatbed."
-msgstr "Placez la feuille\nd'acier sur le lit\nchauffant."
+msgstr "Placez la feuille\nd'acier sur le\nplateau chauffant."
 
 # MSG_PRESS_TO_UNLOAD c=20 r=4
-#: messages.c:71
+#: messages.c:64
 msgid "Please press the knob to unload filament"
-msgstr "Appuyez sur le \nbouton pour \ndecharger le \nfilament"
+msgstr "Appuyez sur le\nbouton pour \ndecharger le \nfilament"
 
 # MSG_PULL_OUT_FILAMENT c=20 r=4
-#: messages.c:73
+#: messages.c:66
 msgid "Please pull out filament immediately"
 msgstr "Retirez\nimmediatement le\nfilament"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1114
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr "Veuillez retirer le filament puis appuyez sur le bouton."
 
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Veuillez retirer d'abord les protections d'envoi."
 
 # MSG_REMOVE_STEEL_SHEET c=20 r=4
-#: messages.c:77
+#: messages.c:70
 msgid "Please remove steel sheet from heatbed."
-msgstr "Retirez la feuille\nd'acier du lit\nchauffant"
+msgstr "Retirez la feuille\nd'acier du plateau\nchauffant."
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4011
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr "Veuillez d'abord lancer la calibration XYZ."
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
-msgstr "Veuillez mettre à jour le firmware de votre MMU2. En attente d'un reset."
+msgstr "Veuillez mettre a\njour le firmware de\nvotre MMU2. En\nattente d'un reset."
 
 # 
 #: util.cpp:297
@@ -1298,72 +1383,97 @@ msgid "Please upgrade."
 msgstr "Mettez a jour le FW."
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Merci de patienter"
 
+# 
+#: ultralcd.cpp:2013
+msgid "Power failures"
+msgstr "Coupures de courant"
+
 # MSG_POWERUP
 #: messages.c:69
 msgid "PowerUp"
 msgstr "Demarrage"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Prechauffage"
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Prechauffez la buse!"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr "Prechauffage de la\nbuse. Merci de\npatienter."
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr "Chauffe pour charger"
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr "Chauffe pr decharger"
+
 # MSG_PREPARE_FILAMENT c=20 r=1
 #: ultralcd.cpp:1911
 msgid "Prepare new filament"
 msgstr "Preparez le filament"
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Appuyez sur le\nbouton pour\nprechauffer la buse\net continuer."
 
 # 
-#: mmu.cpp:422
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr "App. sur sur bouton"
+
+# 
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Appuyez sur le bouton pour poursuivre la mise en temperature de la buse."
 
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Impression annulee"
 
+# 
+#: ultralcd.cpp:1921
+msgid "Print FAN"
+msgstr "Ventilo impression"
+
 # MSG_INFO_PRINT_FAN c=11 r=1
 #: ultralcd.cpp:1549
 msgid "Print FAN: "
 msgstr "Vent impr :"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Ventilo impr. :"
 
 # MSG_CARD_MENU
 #: messages.c:21
 msgid "Print from SD"
-msgstr "Imprimer depuis la SD"
+msgstr "Impr depuis la SD"
 
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Impression en pause"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Temps d'impression"
 
@@ -1383,9 +1493,9 @@ msgid "Printer halted. kill() called!"
 msgstr "Imprimante stoppee.\nkill() appelee !"
 
 # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
-#: messages.c:46
+#: messages.c:41
 msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."
-msgstr "L'imprimante n'a pas\nencore ete calibree.\nSuivez le manuel,\nchapitre Premiers\npas, section\nProcessus de\ncalibration"
+msgstr "L'imprimante n'a pas\nencore ete calibree.\nSuivez le manuel,\nchapitre Premiers\npas, section\nProcessus de\ncalibration."
 
 # MSG_ERR_STOPPED
 #: messages.c:32
@@ -1407,18 +1517,23 @@ msgstr "Prusa i3 MK2.5 prete."
 msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 prete."
 
+# 
+#:
+msgid "Prusa i3 MK3S OK."
+msgstr "Prusa i3 MK3S OK."
+
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr "prusa3d.com"
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Arriere [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr "Recup. impression"
 
@@ -1428,7 +1543,7 @@ msgid "Refresh"
 msgstr "Rafraichir"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr "Retirez l'ancien filament puis appuyez sur le bouton pour charger le nouveau."
 
@@ -1448,32 +1563,32 @@ msgid "Resend: "
 msgstr "Renvoi :"
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr "Reinitialiser"
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr "Reinit. calibr. XYZ"
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Reprendre impression"
 
 # MSG_RESUMING_PRINT c=20 r=1
-#: messages.c:76
+#: messages.c:69
 msgid "Resuming print"
 msgstr "Reprise de l'impr."
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Droite"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Droite [um]"
 
@@ -1488,22 +1603,22 @@ msgid "Rotate knob until mark reaches extruder body. Click when done."
 msgstr "Tournez le bouton\njusqu'a ce que la\nmarque atteigne le\ncorps de\nl'extrudeur. Cliquez\nune fois fait."
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
 msgstr "Port RPi [on]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
 msgstr "Port RPi [off]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4583
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
 msgstr "Lancer l'Assistant\nsupprimera les\nresultats actuels de\ncalibration et\ncommencera du debut.\nContinuer ?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4780
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
 msgstr "Carte SD [normal]"
 
@@ -1518,7 +1633,7 @@ msgid "SD card [FlshAir]"
 msgstr "Carte SD [FlashAir]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
 msgstr "Carte SD [flashAir]"
 
@@ -1533,67 +1648,77 @@ msgid "SD printing byte "
 msgstr "Octet d'impression de la SD"
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60
-#: messages.c:43
+#: messages.c:38
 msgid "Searching bed calibration point"
 msgstr "Recherche du point de calibration du lit"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4873
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Choisir langue"
 
 # 
-#: ultralcd.cpp:4550
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selectionnez la temperature de prechauffage de la buse qui correspond a votre materiau."
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "Selectionnez le filament PLA :"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr "Auto-test OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Debut auto-test"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Auto-test"
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Erreur auto-test !"
 
 # MSG_SELFTEST_FAILED c=20
-#: messages.c:82
+#: messages.c:73
 msgid "Selftest failed  "
 msgstr "Echec de l'auto-test"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1521
+#: Marlin_main.cpp:1548
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
-msgstr "L'auto-test sera\nlance pour calibrer\nla remise a zero\nprecise sans\ncapteur."
+msgstr "Le Selftest sera\nlance pour calibrer\nla remise a zero\nprecise sans capteur"
+
+# 
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr "Etat capteur"
+
+# 
+#:
+msgid "Sensors info"
+msgstr "Infos capteurs"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Regler temp. :"
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Reglages"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr "Deviation severe"
 
@@ -1603,14 +1728,14 @@ msgid "Severe skew:"
 msgstr "Ecart severe :"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Afficher butees"
 
 # 
-#: ultralcd.cpp:4947
+#:
 msgid "Show pinda state"
-msgstr "Afficher l'etat de la pinda"
+msgstr "Etat de la PINDA"
 
 # MSG_DWELL
 #: Marlin_main.cpp:3752
@@ -1618,7 +1743,7 @@ msgid "Sleep..."
 msgstr "Repos..."
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Deviation legere"
 
@@ -1633,7 +1758,7 @@ msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting
 msgstr "Certains fichiers ne\nseront pas tries.\nMax 100 fichiers\ntries par dossier."
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Problemes rencontres, nivellement de l'axe Z applique..."
 
@@ -1643,7 +1768,7 @@ msgid "Sort:      [None]"
 msgstr "Tri : [Aucun]"
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
 msgstr "Tri :     [aucun]"
 
@@ -1653,7 +1778,7 @@ msgid "Sort:      [Time]"
 msgstr "Tri : [Heure]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
 msgstr "Tri :     [heure]"
 
@@ -1663,7 +1788,7 @@ msgid "Sort:  [Alphabet]"
 msgstr "Tri : [Alphabet]"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
 msgstr "Tri : [alphabet]"
 
@@ -1703,22 +1828,37 @@ msgid "Sound    [silent]"
 msgstr "Son [silencieux]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr "Vitesse"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Tourne"
 
+# MSG_AUTO_DEPLETE_ON c=17 r=1
+#: ultralcd.cpp:4959
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin    [on]"
+
+# 
+#: ultralcd.cpp:4955
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin   [N/A]"
+
+# MSG_AUTO_DEPLETE_OFF c=17 r=1
+#: ultralcd.cpp:4963
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [off]"
+
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4065
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
-msgstr "Une temperature\nambiante stable de\n21-26C et une base \nstable sont requis."
+msgstr "Une temperature\nambiante stable de\n21-26C et un support\nstable sont requis."
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5847
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Statistiques"
 
@@ -1728,54 +1868,54 @@ msgid "Steprate too high: "
 msgstr "Nombre de pas trop eleve :"
 
 # MSG_STOP_PRINT
-#: messages.c:96
+#: messages.c:87
 msgid "Stop print"
 msgstr "Arreter impression"
 
 # MSG_STOPPED
-#: messages.c:97
+#: messages.c:88
 msgid "STOPPED. "
 msgstr "ARRETE."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr "Support"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Echange"
 
 # MSG_TEMP_CALIBRATION c=20 r=1
-#: messages.c:98
+#: messages.c:89
 msgid "Temp. cal.          "
 msgstr "Calib. Temp."
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4860
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
 msgstr "Calib. Temp. [on]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
-msgstr "Calib. Temp. [off]"
+msgstr "Calib. Temp.[off]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Calibration temp."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr "Temperature"
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
-msgstr "Echec calibration en\ntemperature"
+msgstr "Echec de la\ncalibration en\ntemperature"
 
 # MSG_PINDA_NOT_CALIBRATED c=20 r=4
 #: Marlin_main.cpp:1403
@@ -1783,22 +1923,42 @@ msgid "Temperature calibration has not been run yet"
 msgstr "La calibration en\ntemperature n'a pas\nencore ete lancee"
 
 # MSG_TEMP_CALIBRATION_DONE c=20 r=12
-#: messages.c:99
+#: messages.c:90
 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal."
-msgstr "La calibration en\ntemperature est\nterminee et active.\nLa calibration en\ntemperature peut\netre desactivee dans\nle menu\nReglages->Cal. Temp."
+msgstr "La calibration en\ntemperature est\nterminee et activee.\nLa calibration en\ntemperature peut\netre desactivee dans\nle menu Reglages->\nCal. Temp."
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr "Temperatures"
 
 # MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4
-#: messages.c:47
+#: messages.c:42
 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."
 msgstr "Il y a encore besoin d'effectuer la calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration."
 
 # 
-#: ultralcd.cpp:2539
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr "pour charger le fil."
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr "pour decharger fil."
+
+# 
+#: ultralcd.cpp:1961
+msgid "Total"
+msgstr "Total"
+
+# 
+#: ultralcd.cpp:1994
+msgid "Total failures"
+msgstr "Total des echecs"
+
+# 
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Filament total"
 
@@ -1808,9 +1968,9 @@ msgid "Total filament :"
 msgstr "Total filament :"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2754
 msgid "Total print time"
-msgstr "Temps d'impression total"
+msgstr "Temps total impr."
 
 # MSG_STATS_TOTALPRINTTIME c=20
 #: ultralcd.cpp:2203
@@ -1823,22 +1983,27 @@ msgid "TRIGGERED"
 msgstr "ACTIVE"
 
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Regler"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:2249
+msgid "unknown"
+msgstr "inconnu"
+
+# 
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Decharger"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Decharger tout"
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr "Decharger fil."
 
@@ -1863,22 +2028,22 @@ msgid "Unload filament 4"
 msgstr "Decharger fil. 4"
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Dechargement fil."
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
 msgstr "Utilisez decharger pour retirer le filament 1 s'il depasse du  tube arriere du MMU. Utilisez ejecter s'il est cache dans le tube."
 
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Utilise pdt impr."
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Tensions"
 
@@ -1888,32 +2053,32 @@ msgid "volume.init failed"
 msgstr "Echec volume.init"
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Attente utilisateur..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
-msgstr "Attente du\nrefroidissement de\nla buse et du lit"
+msgstr "Attente du\nrefroidissement des\nbuse et plateau"
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3008
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
 msgstr "Attente du\nrefroidissement de\nla sonde PINDA"
 
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1481
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Attention : Types\nd'imprimante et de\ncarte mere modifies"
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1473
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr "Attention : Type de\ncarte mere modifie."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1477
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr "Attention : Type\nd'imprimante modifie"
 
@@ -1923,17 +2088,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!"
 msgstr "ATTENTION : ceci est\nune build non\nofficielle et non\nsupportee. Utilisez\nla a votre propre\nrisque !"
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
 msgstr "Dechargement du\nfilament reussi ?"
 
 # MSG_SELFTEST_WIRINGERROR
-#: messages.c:89
+#: messages.c:80
 msgid "Wiring error"
 msgstr "Erreur de cablage"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4923
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr "Assistant"
 
@@ -1944,57 +2109,56 @@ msgstr "Echec ouverture workDir"
 
 # MSG_SD_WRITE_TO_FILE
 #: cardreader.cpp:424
-#, fuzzy
 msgid "Writing to file: "
 msgstr "Ecriture dans le fichier :"
 
 # 
-#: ultralcd.cpp:4632
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "Correction-X"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "Details calib. XYZ"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3496
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Calibration XYZ OK.\nL'ecart sera corrige\nautomatiquement."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3493
+#: ultralcd.cpp:3712
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Calibration XYZ OK.\nLes axes X/Y sont\nlegerement non\nperpendiculaires.\nBon boulot !"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3474
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibration XYZ\ncompromise. Les\npoints de\ncalibration avant ne\nsont pas\natteignables."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3480
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
-msgstr "Calibration XYZ\ncompromise. Le\npoint de calibration\navant gauche n'est\npas atteignable."
+msgstr "Calibration XYZ\ncompromise. Le point\n de calibration\n avant gauche n'est\n pas atteignable."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3477
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
-msgstr "Calibration XYZ\ncompromise. Le\npoint de calibration\navant droite n'est\npas atteignable."
+msgstr "Calibration XYZ\ncompromise. Le point\nde calibration avant\ndroit n'est pas\natteignable."
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
-msgstr "Echec calibration\nXYZ. Le point de\ncalibration du lit\nn'a pas ete trouve."
+msgstr "Echec calibration\nXYZ. Le point de\ncalibration du\nplateau n'a pas ete\ntrouve."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Echec calibration\nXYZ. Les points de\ncalibration avant ne\nsont pas\natteignables."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "Echec calibration\nXYZ. Le point de\ncalibration avant\ngauche n'est pas\natteignable."
 
@@ -2004,17 +2168,17 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "Echec calibration\nXYZ. Consultez le\nmanuel."
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
-msgstr "Echec calibration\nXYZ. Le point de\ncalibration avant\ndroite n'est pas\natteignable."
+msgstr "Echec calibration\nXYZ. Le point de\ncalibration avant\ndroit n'est pas\natteignable."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibration XYZ OK.\nLes axes X/Y sont\nperpendiculaires.\nFelicitations !"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Distance Y du min"
 
@@ -2024,12 +2188,12 @@ msgid "Y distance from min:"
 msgstr "Distance Y du mini :"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Correction-Y"
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Oui"
 
@@ -2044,11 +2208,11 @@ msgid "You are using firmware beta version. This is development version. Using t
 msgstr "Vous utilisez un\nfirmware en version\nbeta. C'est une\nversion de dev.\nCeci n'est pas\nrecommande et peut\nendommager\nl'imprimante."
 
 # MSG_WIZARD_QUIT c=20 r=8
-#: messages.c:106
+#: messages.c:97
 msgid "You can always resume the Wizard from Calibration -> Wizard."
-msgstr "Vous pouvez toujours\npoursuivre\nl'assistant dans\nCalibration->\nAssistant."
+msgstr "Vous pouvez toujours\nrelancer l'assistant\ndans Calibration->\nAssistant."
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "Offset point [0;0]"

+ 500 - 335
lang/po/new/it.po

@@ -8,14 +8,14 @@ msgstr ""
 "X-Generator: PhraseApp (phraseapp.com)\n"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:4219
 msgid "\e[2JCrash detection can\e[1;0Hbe turned on only in\e[2;0HNormal mode"
-msgstr "[2JRilev. impatto \n[1;0Hattivabile solo\n[2;0Hin Modalità\nnormale"
+msgstr "\e[2JRilev. impatto\e[1;0Hattivabile solo\e[2;0Hin Modalita normale"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3979
+#: ultralcd.cpp:4231
 msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode"
-msgstr "[2JATTENZIONE:\n[1;0HRilev. impatto \n[2;0Hdisattivato in\n[3;0HModalità silenziosa"
+msgstr "\e[2JATTENZIONE:\e[1;0HRilev. impatto\e[2;0Hdisattivato in\e[3;0HModalita silenziosa"
 
 # MSG_PLANNER_BUFFER_BYTES
 #: Marlin_main.cpp:1184
@@ -43,12 +43,12 @@ msgid " Last Updated: "
 msgstr "Ultimo aggiornamento: "
 
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
-#: messages.c:44
+#: messages.c:39
 msgid " of 4"
 msgstr " su 4"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14
-#: messages.c:61
+#: messages.c:56
 msgid " of 9"
 msgstr "su 9"
 
@@ -67,8 +67,13 @@ msgstr " \002 Max"
 msgid " \002 Min"
 msgstr " \002 Min"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ">Annulla"
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Compensazione Z"
 
@@ -78,22 +83,27 @@ msgid "All"
 msgstr "Tutti"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Nessun errore"
 
 # MSG_WIZARD_DONE c=20 r=8
-#: messages.c:104
+#: messages.c:95
 msgid "All is done. Happy printing!"
 msgstr "Tutto fatto. Buona stampa!"
 
+# 
+#: ultralcd.cpp:2109
+msgid "Ambient"
+msgstr "Ambiente"
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "e cliccare manopola"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
 msgstr "I carrelli Z sin/des sono altezza max?"
 
@@ -123,27 +133,27 @@ msgid "Auto home"
 msgstr "Trova origine"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "Autocaric. filam."
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
-msgstr "Caricamento auto. \nfilam. disp. solo \ncon il \nsensore attivo..."
+msgstr "Caricamento auto. filam. disp. solo con il sensore attivo..."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2438
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
-msgstr "Il caricamento automatico è attivo, premete la manopola e inserite il filamento..."
+msgstr "Il caricamento automatico e attivo, premete la manopola e inserite il filamento..."
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Assi"
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6845
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Lunghezza dell'asse"
 
@@ -163,7 +173,7 @@ msgid "Bed"
 msgstr "Letto"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Letto/Riscald."
 
@@ -178,7 +188,7 @@ msgid "Bed Heating"
 msgstr "Riscald. letto"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr "Correz. liv.letto"
 
@@ -188,12 +198,12 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr "Livellamento letto fallito.NoRispSensore.Residui su ugello? In attesa di reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4467
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 msgstr "Livellamento piano fallito. Sensore disconnesso o Cavo Danneggiato. In attesa di reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4471
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Livellamento piano fallito. Risposta sensore troppo presto. In attesa di reset."
 
@@ -203,17 +213,17 @@ msgid "Begin file list"
 msgstr "Inizio lista file"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Stato delle cinghie"
 
 # MSG_RECOVER_PRINT c=20 r=2
-#: messages.c:74
+#: messages.c:67
 msgid "Blackout occurred. Recover print?"
-msgstr "C'è stato un Blackout. Recuperare la stampa?"
+msgstr "C'e stato un Blackout. Recuperare la stampa?"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Calibra"
 
@@ -223,17 +233,22 @@ msgid "Calibrate E"
 msgstr "Calibra E"
 
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Calibra XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Calibra Z"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr "Calibrazione Home"
+
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 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."
 
@@ -243,22 +258,22 @@ msgid "Calibrating Z"
 msgstr "Calibrando Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 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."
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr "Calibrazione"
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Calibrazione completa"
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Annulla"
 
@@ -273,22 +288,22 @@ msgid "Cannot open subdir"
 msgstr "Impossibile aprire la subdir"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#:
 msgid "Card inserted"
 msgstr "SD inserita"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "SD rimossa"
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Cambio estrusore"
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Cambia filamento"
 
@@ -298,12 +313,12 @@ msgid "Change SD card"
 msgstr "Cambia memoria SD"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Cambio riuscito!"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Cambiato correttamente?"
 
@@ -313,37 +328,37 @@ msgid "Changing filament!"
 msgstr "Cambiando filam."
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
 msgstr "Verifica piano"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Verifica finecorsa"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Verifica ugello"
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
-#: messages.c:87
+#: messages.c:78
 msgid "Checking sensors "
 msgstr "Controllo sensori"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Verifica asse X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Verifica asse Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Verifica asse Z"
 
@@ -353,17 +368,17 @@ msgid "checksum mismatch, Last Line: "
 msgstr "mancata corrispondenza di checksum, ultima riga:"
 
 # MSG_CHOOSE_EXTRUDER c=20 r=1
-#: messages.c:54
+#: messages.c:49
 msgid "Choose extruder:"
 msgstr "Seleziona estrusore:"
 
 # MSG_CHOOSE_FILAMENT c=20 r=1
-#: messages.c:55
+#: messages.c:50
 msgid "Choose filament:"
 msgstr "Scegliere filamento:"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Colore non puro"
 
@@ -377,20 +392,30 @@ msgstr "Raffredda"
 msgid "Copy selected language from XFLASH?"
 msgstr "Copiare la lingua selezionata da XFLASH?"
 
+# 
+#: ultralcd.cpp:4360
+msgid "Copy selected language?"
+msgstr "Copiare la lingua selezionata?"
+
+# 
+#: ultralcd.cpp:2013
+msgid "Crash"
+msgstr "Impatto"
+
 # MSG_CRASHDETECT_ON
 #: messages.c:27
 msgid "Crash det.   [on]"
-msgstr "Rilevamento imp. [on]"
+msgstr "Rilevam.imp. [on]"
 
 # MSG_CRASHDETECT_NA
 #: messages.c:25
 msgid "Crash det.  [N/A]"
-msgstr "Rilevamento imp. [N/A]"
+msgstr "Rilevam.imp.[N/A]"
 
 # MSG_CRASHDETECT_OFF
 #: messages.c:26
 msgid "Crash det.  [off]"
-msgstr "Rilevamento imp. [off]"
+msgstr "Rilevam.imp.[off]"
 
 # MSG_CRASH_DETECTED c=20 r=1
 #: messages.c:24
@@ -398,22 +423,22 @@ msgid "Crash detected."
 msgstr "Rilevato impatto."
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Scontro rilevato. Riprendere la stampa?"
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Attuale"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Data:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Disabilita motori"
 
@@ -423,7 +448,7 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr "Distanza tra la punta dell'ugello e la superficie del letto non ancora imposta. Si prega di seguire il manuale, capitolo Primi Passi, sezione Calibrazione primo layer."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4575
+#: ultralcd.cpp:4828
 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?"
 
@@ -433,47 +458,47 @@ msgid "E calibration finished. Please clean the nozzle. Click when done."
 msgstr "Calibrazione E terminata. Si prega di pulire l'ugello. Click per continuare."
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4636
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "Correzione-E"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Espellere"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr "Espelli filamento "
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr "Espelli filamento 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Espellere filamento 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Espelli filamento 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Espellere filamento 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Espelli filamento 5"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr "Espellendo filamento "
 
@@ -483,17 +508,17 @@ msgid "End file list"
 msgstr "Fine lista file"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr "Finecorsa"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
-msgstr "Finecorsa\nfuori portata"
+msgstr "Finecorsa fuori portata"
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr "Finecorsa"
 
@@ -513,9 +538,9 @@ msgid "enqueing \""
 msgstr "accodamento\""
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
-msgstr "Errore - la memoria \nstatica è stata \nsovrascritta"
+msgstr "Errore - la memoria statica e stata sovrascritta"
 
 # MSG_SD_ERR_WRITE_TO_FILE
 #: messages.c:78
@@ -523,137 +548,152 @@ msgid "error writing to file"
 msgstr "errore scrittura sul file"
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr "ERRORE:"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
-msgstr "ERRORE: il sensore \nfilam. non risponde,\nControllare conness."
+msgstr "ERRORE: il sensore filam. non risponde,Controllare conness."
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "Flash SPI W25X20CL esterno non risponde."
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr "Estrusore"
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr "Estrusore 1"
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr "Estrusore 2"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr "Estrusore 3"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr "Estrusore 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Ventola estrusore:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr "Info estrusore"
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
-msgstr "Autocaric. filam. [on]"
+msgstr "Autocar.filam[on]"
 
 # MSG_FSENS_AUTOLOAD_NA c=17 r=1
-#: messages.c:48
+#: messages.c:43
 msgid "F. autoload [N/A]"
-msgstr "Autocaric. filam.[N/A]"
+msgstr "Autocar.fil.[N/A]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4676
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
-msgstr "Autocaric. filam. [off]"
+msgstr "Autocar.fil.[off]"
+
+# 
+#: ultralcd.cpp:6112
+msgid "Fail stats"
+msgstr "Statistiche fallimenti"
+
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr "Statistiche fallimenti MMU"
 
 # MSG_FAN_SPEED c=14
-#: messages.c:36
+#: messages.c:31
 msgid "Fan speed"
-msgstr "Velocità ventola"
+msgstr "Velocita ventola"
 
 # MSG_SELFTEST_FAN c=20
-#: messages.c:83
+#: messages.c:74
 msgid "Fan test"
 msgstr "Test ventola"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4847
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
 msgstr "Controllo ventole [on]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
-msgstr "Controllo ventole [off]"
+msgstr "Control.vent[off]"
 
 # MSG_FSENSOR_ON
-#: messages.c:50
+#: messages.c:45
 msgid "Fil. sensor  [on]"
-msgstr "Sensore filam. [On]"
+msgstr "Sensor filam.[On]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3105
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "Risposta Sens. Fil. debole, disattivare? "
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
-msgstr "Sensore filam. [N/A]"
+msgstr "Sensor filam[N/A]"
 
 # MSG_FSENSOR_OFF
-#: messages.c:49
+#: messages.c:44
 msgid "Fil. sensor [off]"
-msgstr "Sensore filam. [off]"
+msgstr "Sensor filam[off]"
+
+# 
+#: ultralcd.cpp:2013
+msgid "Filam. runouts"
+msgstr "Filam. esauriti"
 
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
 msgstr "Filamento"
 
 # MSG_FILAMENT_CLEAN c=20 r=2
-#: messages.c:37
+#: messages.c:32
 msgid "Filament extruding & with correct color?"
 msgstr "Filamento estruso & con il giusto colore?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Fil. non caricato"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Sensore filam."
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Sensore filam.:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr "Filamento utilizzato"
 
@@ -663,7 +703,7 @@ msgid "Filament used:  "
 msgstr "Filamento usato:"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
 msgstr "File incompleto. Continuare comunque?"
 
@@ -678,92 +718,92 @@ msgid "File selected"
 msgstr "File selezionato"
 
 # MSG_FINISHING_MOVEMENTS c=20 r=1
-#: messages.c:45
+#: messages.c:40
 msgid "Finishing movements"
 msgstr "Finalizzando gli spostamenti"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Calibrazione primo layer."
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4740
 msgid "First, I will run the selftest to check most common assembly problems."
-msgstr "Per primo avvierò l'autotest per controllare gli errori di assemblaggio più comuni."
+msgstr "Per primo avviero l'autotest per controllare gli errori di assemblaggio piu comuni."
 
 # 
-#: mmu.cpp:423
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
-msgstr "Risolvi il problema e quindi premi il bottone sull'unità MMU. "
+msgstr "Risolvi il problema e quindi premi il bottone sull'unita MMU. "
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Flusso"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr "forum.prusa3d.com"
 
 # MSG_SELFTEST_COOLING_FAN c=20
-#: messages.c:80
+#: messages.c:71
 msgid "Front print fan?"
 msgstr "Ventola frontale?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Fronte [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Ventola frontale/sinistra"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Riscald./Termist."
 
 # MSG_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
 msgstr "Riscaldamento..."
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr "Riscaldamento fermato dal timer di sicurezza."
 
 # MSG_HEATING_COMPLETE c=20
-#: messages.c:52
+#: messages.c:47
 msgid "Heating done."
 msgstr "Riscald. completo"
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4719
 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?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2142
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr "howto.prusa3d.com"
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4749
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
-msgstr "Adesso avviero una Calibrazione XYZ. Può durare circa 12 min."
+msgstr "Adesso avviero una Calibrazione XYZ. Puo durare circa 12 min."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
-msgstr "Adesso avvierò la Calibrazione Z."
+msgstr "Adesso avviero la Calibrazione Z."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr "Adesso iniziero a stampare una linea e tu dovrai abbassare l'ugello poco per volta ruotando la manopola sino a raggiungere una altezza ottimale. Per favore dai uno sguardo all'immagine del nostro manuale, cap.Calibrazione."
 
@@ -773,7 +813,7 @@ msgid "Improving bed calibration point"
 msgstr "Perfezion. punto di calibraz. letto"
 
 # MSG_WATCH
-#: messages.c:102
+#: messages.c:93
 msgid "Info screen"
 msgstr "Schermata info"
 
@@ -783,54 +823,54 @@ msgid "Init. SD card"
 msgstr "Inizializza scheda SD"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Inserire filamento"
 
 # MSG_FILAMENT_LOADING_T0 c=20 r=4
-#: messages.c:38
+#: messages.c:33
 msgid "Insert filament into extruder 1. Click when done."
-msgstr "Inserire filamento \nnell'estrusore 1. \nClick per continuare"
+msgstr "Inserire filamento nell'estrusore 1. Click per continuare"
 
 # MSG_FILAMENT_LOADING_T1 c=20 r=4
-#: messages.c:39
+#: messages.c:34
 msgid "Insert filament into extruder 2. Click when done."
-msgstr "Inserire filamento \nnell'estrusore 2. \nClick per continuare"
+msgstr "Inserire filamento nell'estrusore 2. Click per continuare"
 
 # MSG_FILAMENT_LOADING_T2 c=20 r=4
-#: messages.c:40
+#: messages.c:35
 msgid "Insert filament into extruder 3. Click when done."
-msgstr "Inserire filamento \nnell'estrusore 3. \nClick per continuare"
+msgstr "Inserire filamento nell'estrusore 3. Click per continuare"
 
 # MSG_FILAMENT_LOADING_T3 c=20 r=4
-#: messages.c:41
+#: messages.c:36
 msgid "Insert filament into extruder 4. Click when done."
-msgstr "Inserire filamento \nnell'estrusore 4. \nClick per continuare"
+msgstr "Inserire filamento nell'estrusore 4. Click per continuare"
 
 # 
-#: ultralcd.cpp:4529
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
-msgstr "Il filamento 1 è caricato?"
+msgstr "Il filamento 1 e caricato?"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Il filamento e stato caricato?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "E' un filamento di PLA?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "E' stato caricato il filamento di PLA?"
 
 # MSG_STEEL_SHEET_CHECK c=20 r=2
-#: messages.c:95
+#: messages.c:86
 msgid "Is steel sheet on heatbed?"
-msgstr "La piastra d'acciaio è sul piano riscaldato?"
+msgstr "La piastra d'acciaio e sul piano riscaldato?"
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20
 #: mesh_bed_calibration.cpp:2223
@@ -843,17 +883,27 @@ msgid "KILLED. "
 msgstr "IN TILT."
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:1960
+msgid "Last print"
+msgstr "Ultima stampa"
+
+# 
+#: ultralcd.cpp:1976
+msgid "Last print failures"
+msgstr "Fallimenti ultima stampa"
+
+# 
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Sinistra"
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Vent SX hotend?"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Lato sinistro [um]"
 
@@ -863,7 +913,7 @@ msgid "Left:"
 msgstr "Sinistra:"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr "Correzione lin."
 
@@ -873,57 +923,57 @@ msgid "Live adjust Z"
 msgstr "Compensazione Z"
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5323
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Caricare tutti"
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr "Carica filamento"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Caricare fil. 1"
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Caricare fil. 2"
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Carica fil. 3"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Caricare fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Caricare fil. 5"
 
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr "Carica ugello"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Caricando colore"
 
 # MSG_LOADING_FILAMENT c=20
-#: messages.c:57
+#: messages.c:52
 msgid "Loading filament"
 msgstr "Caricando filamento"
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6837
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Puleggia lenta"
 
@@ -943,7 +993,7 @@ msgid "M109 Invalid extruder "
 msgstr "M109 Estrusore non valido"
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Calibrazione primo layer."
 
@@ -963,7 +1013,7 @@ msgid "M221 Invalid extruder "
 msgstr "M221 Estrusore non valido"
 
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Menu principale"
 
@@ -973,7 +1023,7 @@ msgid "Mark filament 100mm from extruder body. Click when done."
 msgstr "Segnare il filamento a 100 mm di distanza dal corpo dell'estrusore. Click per continuare."
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Disassamento misurato"
 
@@ -983,17 +1033,32 @@ msgid "Measured skew:"
 msgstr "Distorsione misurata:"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60
-#: messages.c:60
+#: messages.c:55
 msgid "Measuring reference height of calibration point"
 msgstr "Misura altezza di rif. del punto di calib."
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4939
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
 msgstr "Mesh livel. letto"
 
 # 
-#: mmu.cpp:418
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr "Fallimenti MMU"
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr "Caricamento MMU fallito"
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr "Caricamenti MMU falliti"
+
+# 
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "Il MMU richiede attenzione dall'utente."
 
@@ -1003,77 +1068,92 @@ msgid "MMU needs user attention. Fix the issue and then press button on MMU unit
 msgstr "MMU richiede l'attenzione dell'utente. Risolvi il problema e quindi premi il bottone sull'unità MMU. "
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. riprendendo la posizione... "
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:450
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Ripristino temperatura... "
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Riprendendo... "
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr "Mancanza corrente MMU"
+
+# 
+#: ultralcd.cpp:2241
+msgid "MMU2 connected"
+msgstr "MMU2 connessa"
+
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
-msgstr "Modo [normale]"
+msgstr "Modo    [normale]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
 msgstr "Modo [silenzioso]"
 
 # MSG_STEALTH_MODE_ON
-#: messages.c:94
+#: messages.c:85
 msgid "Mode    [Stealth]"
 msgstr "Modo [Silenziosa]"
 
 # MSG_AUTO_MODE_ON
 #: messages.c:12
 msgid "Mode [auto power]"
-msgstr "Modo [auto]"
+msgstr "Modo       [auto]"
 
 # MSG_SILENT_MODE_OFF
-#: messages.c:91
+#: messages.c:82
 msgid "Mode [high power]"
-msgstr "Mode [forte]"
+msgstr "Mode      [forte]"
 
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr "Motore"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Muovi asse"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Muovi X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Muovi Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Muovi Z"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr "N/A"
+
 # 
 #: util.cpp:293
 msgid "New firmware version available:"
 msgstr "Nuova versione firmware disponibile:"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr "No"
 
@@ -1088,12 +1168,12 @@ msgid "No Checksum with line number, Last Line: "
 msgstr "Nessun checksum con numero di riga, ultima riga:"
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Nessun movimento."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "Nessuna SD"
 
@@ -1103,35 +1183,40 @@ msgid "No thermistors - no temperature"
 msgstr "No termistore - no temperatura"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "Non connesso"
 
 # MSG_SELFTEST_FAN_NO c=19
-#: messages.c:84
+#: messages.c:75
 msgid "Not spinning"
 msgstr "Non gira"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4568
+#: ultralcd.cpp:4821
 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."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4512
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
-msgstr "Adesso preriscalderò l'ugello per PLA."
+msgstr "Adesso preriscaldero l'ugello per PLA."
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Ugello"
 
+# 
+#: ultralcd.cpp:1919
+msgid "Nozzle FAN"
+msgstr "Ventola estrusore"
+
 # MSG_INFO_NOZZLE_FAN c=11 r=1
 #: ultralcd.cpp:1537
 msgid "Nozzle FAN:"
@@ -1153,7 +1238,7 @@ msgid "ok"
 msgstr "ok"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Sono state trovate impostazioni vecchie. I valori di default di PID, Esteps etc. saranno impostati"
 
@@ -1173,7 +1258,7 @@ msgid "openRoot failed"
 msgstr "openRoot fallito"
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr "Metti in pausa"
 
@@ -1183,42 +1268,42 @@ msgid "Pick print"
 msgstr "Scegli stampa"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "Calibrazione PID"
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "Calib. PID completa"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "Calibrazione PID"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "Riscaldamento PINDA"
 
 # MSG_PAPER c=20 r=8
-#: messages.c:66
+#: messages.c:60
 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."
 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_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Verifica:"
 
 # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
-#: messages.c:103
+#: messages.c:94
 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
 msgstr "Per favore consulta il nostro manuale per risolvere il problema. Poi riprendi il Wizard dopo aver riavviato la stampante."
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr "Per favore pulisci il piatto, poi premi la manopola."
 
@@ -1228,12 +1313,12 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Pulire l'ugello per la calibrazione, poi fare click."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4411
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr "Per favore inserisci il filamento di PLA nell'estrusore, poi premi la manopola per caricare."
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Per favore inserite del filamento PLA nel primo tubo del MMU, poi premete la manopola per caricarlo."
 
@@ -1243,52 +1328,52 @@ msgid "Please load PLA filament and then resume Wizard by rebooting the printer.
 msgstr "Per favore carica filamento di PLA e riprendi il Wizard dopo aver riavviato la stampante."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4314
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Per favore prima carica il filamento di PLA."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2989
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
-msgstr "Aprire la guida\nfilam. e rimuovere \nil filam. a mano"
+msgstr "Aprire la guida filam. e rimuovere il filam. a mano"
 
 # MSG_PLACE_STEEL_SHEET c=20 r=4
-#: messages.c:67
+#: messages.c:61
 msgid "Please place steel sheet on heatbed."
 msgstr "Per favore posizionate la piastra d'acciaio sul piano riscaldato."
 
 # MSG_PRESS_TO_UNLOAD c=20 r=4
-#: messages.c:71
+#: messages.c:64
 msgid "Please press the knob to unload filament"
-msgstr "Premete la manopola \nper scaricare \nil filamento "
+msgstr "Premete la manopola per scaricare il filamento "
 
 # MSG_PULL_OUT_FILAMENT c=20 r=4
-#: messages.c:73
+#: messages.c:66
 msgid "Please pull out filament immediately"
 msgstr "Estrarre il filamento immediatamente"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1114
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr "Rimuovi il filamento e quindi premi la manopola. "
 
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Per favore rimuovete i materiali da spedizione"
 
 # MSG_REMOVE_STEEL_SHEET c=20 r=4
-#: messages.c:77
+#: messages.c:70
 msgid "Please remove steel sheet from heatbed."
 msgstr "Rimuovete la piastra di acciaio dal piano riscaldato"
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4011
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr "Esegui la calibrazione XYZ prima. "
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Aggiorna il firmware sul tuo MMU2. In attesa di reset. "
 
@@ -1298,57 +1383,82 @@ msgid "Please upgrade."
 msgstr "Prego aggiornare."
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Attendere"
 
+# 
+#: ultralcd.cpp:2013
+msgid "Power failures"
+msgstr "Mancanza corrente"
+
 # MSG_POWERUP
 #: messages.c:69
 msgid "PowerUp"
 msgstr "Accendi"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Preriscalda"
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Prerisc. ugello!"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr "Preriscaldando l'ugello. Attendere prego."
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr "Preriscaldamento per caricare"
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr "Preriscaldamento per scaricare"
+
 # MSG_PREPARE_FILAMENT c=20 r=1
 #: ultralcd.cpp:1911
 msgid "Prepare new filament"
 msgstr "Preparare il nuovo filamento"
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Premete la manopola per preriscaldare l'ugello e continuare."
 
 # 
-#: mmu.cpp:422
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr "Premere la manopola"
+
+# 
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Premete la manopola per recuperare la temperatura dell'ugello."
 
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Stampa interrotta"
 
+# 
+#: ultralcd.cpp:1921
+msgid "Print FAN"
+msgstr "Ventola di stampa"
+
 # MSG_INFO_PRINT_FAN c=11 r=1
 #: ultralcd.cpp:1549
 msgid "Print FAN: "
 msgstr "Ventola di stampa:"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Ventola di stampa:"
 
@@ -1358,12 +1468,12 @@ msgid "Print from SD"
 msgstr "Stampa da SD"
 
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Stampa in pausa"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Tempo di stampa"
 
@@ -1383,7 +1493,7 @@ msgid "Printer halted. kill() called!"
 msgstr "Stampante ferma. kill () chiamato!"
 
 # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
-#: messages.c:46
+#: messages.c:41
 msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."
 msgstr "Stampante non ancora calibrata. Si prega di seguire il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione."
 
@@ -1407,18 +1517,23 @@ msgstr "Prusa i3 MK2.5 ready."
 msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 pronta."
 
+# 
+#:
+msgid "Prusa i3 MK3S OK."
+msgstr "Prusa i3 MK3S OK."
+
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr "prusa3d.com"
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Retro [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr "Recupero stampa"
 
@@ -1428,7 +1543,7 @@ msgid "Refresh"
 msgstr "Refresh"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr "Rimuovi il filamento precedente e premi la manopola per caricare il nuovo filamento. "
 
@@ -1448,32 +1563,32 @@ msgid "Resend: "
 msgstr "Invia di nuovo: "
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr "Reset"
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr "Reset calibrazione XYZ."
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Riprendi stampa"
 
 # MSG_RESUMING_PRINT c=20 r=1
-#: messages.c:76
+#: messages.c:69
 msgid "Resuming print"
 msgstr "Riprendi stampa"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Destra"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Destra [um]"
 
@@ -1488,22 +1603,22 @@ msgid "Rotate knob until mark reaches extruder body. Click when done."
 msgstr "Ruota la manopola finchè il segno raggiunga il corpo dell'estrusore. Clicca per continuare."
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
-msgstr "Porta RPi [on]"
+msgstr "Porta RPi    [on]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
-msgstr "Porta RPi [off]"
+msgstr "Porta RPi   [off]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4583
 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?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4780
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
 msgstr "Mem. SD [normale]"
 
@@ -1518,9 +1633,9 @@ msgid "SD card [FlshAir]"
 msgstr "Mem. SD [FlashAir]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
-msgstr "scheda SD [flshAir]"
+msgstr "Mem. SD [flshAir]"
 
 # MSG_SD_INIT_FAIL
 #: cardreader.cpp:186
@@ -1533,67 +1648,77 @@ msgid "SD printing byte "
 msgstr "SD stampa byte "
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60
-#: messages.c:43
+#: messages.c:38
 msgid "Searching bed calibration point"
 msgstr "Ricerca dei punti di calibrazione del piano"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4873
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Seleziona lingua"
 
 # 
-#: ultralcd.cpp:4550
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale."
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "Selezionate filamento PLA:"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr "Autotest OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Avvia autotest"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Autotest"
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Errore Autotest !"
 
 # MSG_SELFTEST_FAILED c=20
-#: messages.c:82
+#: messages.c:73
 msgid "Selftest failed  "
 msgstr "Autotest fallito"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1521
+#: Marlin_main.cpp:1548
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
-msgstr "Verrà effettuato un self test per calibrare l'homing senza sensori"
+msgstr "Verra effettuato un self test per calibrare l'homing senza sensori"
+
+# 
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr "Stato sensore"
+
+# 
+#:
+msgid "Sensors info"
+msgstr "Info Sensori"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Imposta temperatura:"
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Impostazioni"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr "Disassamento grave"
 
@@ -1603,12 +1728,12 @@ msgid "Severe skew:"
 msgstr "Distorsione grave:"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Stato finecorsa"
 
 # 
-#: ultralcd.cpp:4947
+#:
 msgid "Show pinda state"
 msgstr "Mostra stato pinda"
 
@@ -1618,7 +1743,7 @@ msgid "Sleep..."
 msgstr "Sospensione..."
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Disassamento lieve"
 
@@ -1630,10 +1755,10 @@ msgstr "Distorsione leggera:"
 # MSG_FILE_CNT c=20 r=4
 #: cardreader.cpp:738
 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 è 100 perché siano ordinati."
+msgstr "Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati."
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Sono stati rilevati problemi, avviato livellamento Z ..."
 
@@ -1643,9 +1768,9 @@ msgid "Sort:      [None]"
 msgstr "Ordine: [Nessuno]"
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
-msgstr "Ordina: [none]"
+msgstr "Ordina:    [none]"
 
 # MSG_SORT_TIME c=17 r=1
 #: ultralcd.cpp:4248
@@ -1653,9 +1778,9 @@ msgid "Sort:      [Time]"
 msgstr "Ordine: [Tempo]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
-msgstr "Ordina: [time]"
+msgstr "Ordina:    [time]"
 
 # MSG_SORT_ALPHA c=17 r=1
 #: ultralcd.cpp:4249
@@ -1663,9 +1788,9 @@ msgid "Sort:  [Alphabet]"
 msgstr "Ordine: [Alfabetico]"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
-msgstr "Ordine:[alfabetico]"
+msgstr "Ordine: [alfabet]"
 
 # MSG_SORT_NONE c=17 r=1
 #:
@@ -1685,40 +1810,55 @@ msgstr "Ordinando i file"
 # MSG_SOUND_LOUD c=17 r=1
 #: sound.h:5
 msgid "Sound      [loud]"
-msgstr "Suono [forte]"
+msgstr "Suono     [forte]"
 
 # MSG_SOUND_MUTE c=17 r=1
 #: sound.h:8
 msgid "Sound      [mute]"
-msgstr "Suono [mute]"
+msgstr "Suono      [mute]"
 
 # MSG_SOUND_ONCE c=17 r=1
 #: sound.h:6
 msgid "Sound      [once]"
-msgstr "Suono [singolo]"
+msgstr "Suono   [singolo]"
 
 # MSG_SOUND_SILENT c=17 r=1
 #: sound.h:7
 msgid "Sound    [silent]"
-msgstr "Suono [silenzioso]"
+msgstr "Suono[silenzioso]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:6199
 msgid "Speed"
-msgstr "Velocità"
+msgstr "Velocita"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Gira"
 
+# MSG_AUTO_DEPLETE_ON c=17 r=1
+#: ultralcd.cpp:4959
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin    [on]"
+
+# 
+#: ultralcd.cpp:4955
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin   [N/A]"
+
+# MSG_AUTO_DEPLETE_OFF c=17 r=1
+#: ultralcd.cpp:4963
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [off]"
+
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4065
 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 "
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5847
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Statistiche"
 
@@ -1728,52 +1868,52 @@ msgid "Steprate too high: "
 msgstr "Velocità passo troppo alta: "
 
 # MSG_STOP_PRINT
-#: messages.c:96
+#: messages.c:87
 msgid "Stop print"
 msgstr "Arresta stampa"
 
 # MSG_STOPPED
-#: messages.c:97
+#: messages.c:88
 msgid "STOPPED. "
 msgstr "ARRESTATO."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr "Supporto"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Scambiato"
 
 # MSG_TEMP_CALIBRATION c=20 r=1
-#: messages.c:98
+#: messages.c:89
 msgid "Temp. cal.          "
 msgstr "Calib. temp. "
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4860
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
 msgstr "Calib. temp. [ON]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
-msgstr "Calib. temp. [OFF]"
+msgstr "Calib. temp.[OFF]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Calib. Temp."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr "Temperatura"
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr "Calibrazione temperatura fallita"
 
@@ -1783,22 +1923,42 @@ msgid "Temperature calibration has not been run yet"
 msgstr "Calibrazione della temperatura non ancora eseguita"
 
 # MSG_TEMP_CALIBRATION_DONE c=20 r=12
-#: messages.c:99
+#: messages.c:90
 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal."
-msgstr "Calibrazione temperatura completata e attiva. Può essere disattivata dal menù Impostazioni ->Cal. Temp."
+msgstr "Calibrazione temperatura completata e attiva. Puo essere disattivata dal menu Impostazioni ->Cal. Temp."
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr "Temperature"
 
 # MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4
-#: messages.c:47
+#: messages.c:42
 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."
-msgstr "È 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:2316
+msgid "to load filament"
+msgstr "per caricare il filamento"
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr "per scaricare il filamento"
 
 # 
-#: ultralcd.cpp:2539
+#: ultralcd.cpp:1961
+msgid "Total"
+msgstr "Totale"
+
+# 
+#: ultralcd.cpp:1994
+msgid "Total failures"
+msgstr "Totale fallimenti"
+
+# 
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Filamento totale"
 
@@ -1808,7 +1968,7 @@ msgid "Total filament :"
 msgstr "Filamento tot:"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr "Tempo di stampa totale"
 
@@ -1823,22 +1983,27 @@ msgid "TRIGGERED"
 msgstr "ATTIVATO"
 
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Regola"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:2249
+msgid "unknown"
+msgstr "sconosciuto"
+
+# 
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Scarica"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Rilasciare tutti"
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr "Scarica filam."
 
@@ -1863,22 +2028,22 @@ msgid "Unload filament 4"
 msgstr "Scarica filam. 4"
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Scaricando filamento"
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
-msgstr "Usate lo scaricamento per rimuovere il filamento 1 se protrude dal retro del tubo posteriore del MMu. Utilizzate l'espulsione se è 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_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Usati nella stampa"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Voltaggi"
 
@@ -1888,32 +2053,32 @@ msgid "volume.init failed"
 msgstr "volume.init fallito"
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Attendendo utente..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
 msgstr "In attesa del raffreddamento dell'ugello e del piano"
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3008
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
 msgstr "In attesa del raffreddamento della sonda PINDA"
 
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1481
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Attenzione: tipo di stampante e di scheda madre cambiati."
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1473
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr "Avviso: tipo di scheda madre cambiato"
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1477
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr "Avviso: tipo di stampante cambiato."
 
@@ -1923,17 +2088,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!"
 msgstr "ATTENZIONE: Questo è un build non ufficiale, non supportato. Utilizzatelo a vostro rischio!"
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
 msgstr "Filamento scaricato con successo?"
 
 # MSG_SELFTEST_WIRINGERROR
-#: messages.c:89
+#: messages.c:80
 msgid "Wiring error"
 msgstr "Errore cablaggio"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4923
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr "Wizard"
 
@@ -1948,52 +2113,52 @@ msgid "Writing to file: "
 msgstr "Scrittura su file: "
 
 # 
-#: ultralcd.cpp:4632
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "Correzione-X"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "XYZ Cal. dettagli"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3496
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
-msgstr "Calibrazione XYZ corretta. La distorsione verrà compensata automaticamente."
+msgstr "Calibrazione XYZ corretta. La distorsione verra compensata automaticamente."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3493
+#: ultralcd.cpp:3712
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3474
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3480
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr "Calibrazione XYZ compromessa. Punto anteriore sinistro non raggiungibile."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3477
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile."
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul letto non e' stato trovato."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "Calibrazione XYZ fallita. Punto anteriore sinistro non raggiungibile."
 
@@ -2003,17 +2168,17 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "Calibrazione XYZ fallita. Si prega di consultare il manuale."
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Distanza Y dal min"
 
@@ -2023,12 +2188,12 @@ msgid "Y distance from min:"
 msgstr "Distanza Y da min:"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Correzione-Y"
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Si"
 
@@ -2043,11 +2208,11 @@ msgid "You are using firmware beta version. This is development version. Using t
 msgstr "State utilizzando una versione beta del firmware. Questa versione è in via di sviluppo. L'utilizzo non è raccomandato e potrebbe causare danni alla stampante."
 
 # MSG_WIZARD_QUIT c=20 r=8
-#: messages.c:106
+#: messages.c:97
 msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "E possibile riprendere il Wizard in qualsiasi momento attraverso Calibrazione -> Wizard."
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "[0;0] punto offset"

+ 483 - 319
lang/po/new/pl.po

@@ -8,14 +8,14 @@ msgstr ""
 "X-Generator: PhraseApp (phraseapp.com)\n"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:4219
 msgid "\e[2JCrash detection can\e[1;0Hbe turned on only in\e[2;0HNormal mode"
-msgstr "[2JWykrywanie zderzen moze [1;0Hbyc wlaczone tylko w [2;0Htrybie Normalnym"
+msgstr "\e[2JWykrywanie zderzen moze\e[1;0Hbyc wlaczone tylko w\e[2;0Htrybie Normalnym"
 
 # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
-#: ultralcd.cpp:3979
+#: ultralcd.cpp:4231
 msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode"
-msgstr "[2JUWAGA:[1;0HWykrywanie zderzen[2;0Hwylaczone w[3;0Htrybie Stealth"
+msgstr "\e[2JUWAGA:\e[1;0HWykrywanie zderzen\e[2;0Hwylaczone w\e[3;0Htrybie Stealth"
 
 # MSG_PLANNER_BUFFER_BYTES
 #: Marlin_main.cpp:1184
@@ -40,15 +40,15 @@ msgstr " Wolna pamiec:"
 # MSG_CONFIGURATION_VER
 #: Marlin_main.cpp:1172
 msgid " Last Updated: "
-msgstr " Ostatnia aktualizacja: "
+msgstr "Ostatnia aktualizacja: "
 
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
-#: messages.c:44
+#: messages.c:39
 msgid " of 4"
 msgstr " z 4"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14
-#: messages.c:61
+#: messages.c:56
 msgid " of 9"
 msgstr " z 9"
 
@@ -67,8 +67,13 @@ msgstr " \002 Max"
 msgid " \002 Min"
 msgstr " \002 Min"
 
+# 
+#: ultralcd.cpp:2353
+msgid ">Cancel"
+msgstr ">Anuluj"
+
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:3043
 msgid "Adjusting Z"
 msgstr "Dostrajanie Z"
 
@@ -78,22 +83,27 @@ msgid "All"
 msgstr "Wszystko"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7459
 msgid "All correct      "
 msgstr "Wszystko OK "
 
 # MSG_WIZARD_DONE c=20 r=8
-#: messages.c:104
+#: messages.c:95
 msgid "All is done. Happy printing!"
 msgstr "Gotowe. Udanego drukowania!"
 
+# 
+#: ultralcd.cpp:2109
+msgid "Ambient"
+msgstr "Otoczenie"
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2463
 msgid "and press the knob"
 msgstr "i nacisnij pokretlo"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3330
 msgid "Are left and right Z~carriages all up?"
 msgstr "Obydwa konce osi dojechaly do gornych ogranicznikow?"
 
@@ -105,17 +115,17 @@ msgstr "Autodostroic Z?"
 # MSG_AUTO_DEPLETE_ON c=17 r=1
 #: ultralcd.cpp:4706
 msgid "Auto deplete [on]"
-msgstr "Dok. resztek[wl]"
+msgstr "SpoolJoin [wl]"
 
 # 
 #: ultralcd.cpp:4702
 msgid "Auto deplete[N/A]"
-msgstr "Wykorzyst. reszt.[nd]"
+msgstr "SpoolJoin [nd]"
 
 # MSG_AUTO_DEPLETE_OFF c=17 r=1
 #: ultralcd.cpp:4710
 msgid "Auto deplete[off]"
-msgstr "Dok. resztek[wyl]"
+msgstr "SpoolJoin [wyl]"
 
 # MSG_AUTO_HOME
 #: messages.c:11
@@ -123,27 +133,27 @@ msgid "Auto home"
 msgstr "Auto zerowanie"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:6091
 msgid "AutoLoad filament"
 msgstr "AutoLadowanie fil."
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:4246
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr "Autoladowanie filamentu dostepne tylko gdy czujnik filamentu jest wlaczony..."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2438
+#: ultralcd.cpp:2655
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr "Autoladowanie filamentu wlaczone, nacisnij pokretlo i wsun filament..."
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:7130
 msgid "Axis"
 msgstr "Os"
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6845
+#: ultralcd.cpp:7128
 msgid "Axis length"
 msgstr "Dlugosc osi"
 
@@ -163,7 +173,7 @@ msgid "Bed"
 msgstr "Stol"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:7072
 msgid "Bed / Heater"
 msgstr "Stol / Grzanie"
 
@@ -178,7 +188,7 @@ msgid "Bed Heating"
 msgstr "Grzanie stolu.."
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:5197
 msgid "Bed level correct"
 msgstr "Korekta poziomowania stolu"
 
@@ -188,12 +198,12 @@ msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for
 msgstr "Kalibracja nieudana. Sensor nie aktywowal sie. Zanieczysz. dysza? Czekam na reset."
 
 # MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4
-#: Marlin_main.cpp:4467
+#: Marlin_main.cpp:4508
 msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 msgstr "Poziomowanie stolu nieudane. Sensor odlacz. lub uszkodz. przewod. Czekam na reset."
 
 # MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4
-#: Marlin_main.cpp:4471
+#: Marlin_main.cpp:4512
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Kalibracja Z nieudana. Sensor aktywowal za wysoko. Czekam na reset."
 
@@ -203,17 +213,17 @@ msgid "Begin file list"
 msgstr "Poczatek listy plikowogranicznikow"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2135
 msgid "Belt status"
 msgstr "Stan paskow"
 
 # MSG_RECOVER_PRINT c=20 r=2
-#: messages.c:74
+#: messages.c:67
 msgid "Blackout occurred. Recover print?"
 msgstr "Wykryto zanik napiecia. Kontynowac?"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4427
 msgid "Calibrate"
 msgstr "Kalibruj"
 
@@ -223,17 +233,22 @@ msgid "Calibrate E"
 msgstr "Kalibruj E"
 
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:5186
 msgid "Calibrate XYZ"
 msgstr "Kalibracja XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Kalibruj Z"
 
+# 
+#: ultralcd.cpp:7461
+msgid "Calibrating home"
+msgstr "Zerowanie osi"
+
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 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."
 
@@ -243,22 +258,22 @@ msgid "Calibrating Z"
 msgstr "Kalibruje Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3290
 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."
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr "Kalibracja"
 
 # MSG_HOMEYZ_DONE
-#: ultralcd.cpp:740
+#: ultralcd.cpp:778
 msgid "Calibration done"
 msgstr "Kalibracja OK"
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Cancel"
 msgstr "Anuluj"
 
@@ -273,22 +288,22 @@ msgid "Cannot open subdir"
 msgstr "Nie moge otworzyc subdir"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#:
 msgid "Card inserted"
 msgstr "Karta wlozona"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7819
 msgid "Card removed"
 msgstr "Karta wyjeta"
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:6087
 msgid "Change extruder"
 msgstr "Zmiana ekstrudera"
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Wymiana filamentu"
 
@@ -298,12 +313,12 @@ msgid "Change SD card"
 msgstr "Wymien karte SD"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2474
 msgid "Change success!"
 msgstr "Wymiana ok!"
 
 # MSG_CORRECTLY c=20
-#: ultralcd.cpp:2333
+#: ultralcd.cpp:2551
 msgid "Changed correctly?"
 msgstr "Wymiana ok?"
 
@@ -313,37 +328,37 @@ msgid "Changing filament!"
 msgstr "Wymiana filamentu!"
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
 msgstr "Kontrola stolu"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7450
 msgid "Checking endstops"
 msgstr "Kontrola krancowek"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7456
 msgid "Checking hotend  "
 msgstr "Kontrola hotendu"
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
-#: messages.c:87
+#: messages.c:78
 msgid "Checking sensors "
 msgstr "Sprawdzanie czujnikow"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7451
 msgid "Checking X axis  "
 msgstr "Kontrola osi X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7452
 msgid "Checking Y axis  "
 msgstr "Kontrola osi Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7453
 msgid "Checking Z axis  "
 msgstr "Kontrola osi Z"
 
@@ -353,17 +368,17 @@ msgid "checksum mismatch, Last Line: "
 msgstr "suma kontrolna niezgodna, ostatnia linia:"
 
 # MSG_CHOOSE_EXTRUDER c=20 r=1
-#: messages.c:54
+#: messages.c:49
 msgid "Choose extruder:"
 msgstr "Wybierz ekstruder:"
 
 # MSG_CHOOSE_FILAMENT c=20 r=1
-#: messages.c:55
+#: messages.c:50
 msgid "Choose filament:"
 msgstr "Wybierz filament:"
 
 # MSG_NOT_COLOR
-#: ultralcd.cpp:2345
+#: ultralcd.cpp:2563
 msgid "Color not correct"
 msgstr "Kolor zanieczysz."
 
@@ -377,20 +392,30 @@ msgstr "Chlodzenie"
 msgid "Copy selected language from XFLASH?"
 msgstr "Skopiowac wybrany jezyk z XFLASH?"
 
+# 
+#: ultralcd.cpp:4360
+msgid "Copy selected language?"
+msgstr "Skopiowac wybrany jezyk?"
+
+# 
+#: ultralcd.cpp:2013
+msgid "Crash"
+msgstr "Zderzenie"
+
 # MSG_CRASHDETECT_ON
 #: messages.c:27
 msgid "Crash det.   [on]"
-msgstr "Wykr. zderzen [wl]"
+msgstr "Wykr.zderzen [wl]"
 
 # MSG_CRASHDETECT_NA
 #: messages.c:25
 msgid "Crash det.  [N/A]"
-msgstr "Wykr. zderzen [n/d]"
+msgstr "Wykr.zderzen[n/d]"
 
 # MSG_CRASHDETECT_OFF
 #: messages.c:26
 msgid "Crash det.  [off]"
-msgstr "Wykr. zderzen [wyl]"
+msgstr "Wykr.zderzen[wyl]"
 
 # MSG_CRASH_DETECTED c=20 r=1
 #: messages.c:24
@@ -398,22 +423,22 @@ msgid "Crash detected."
 msgstr "Zderzenie wykryte"
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:608
 msgid "Crash detected. Resume print?"
 msgstr "Wykryto zderzenie. Wznowic druk?"
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5335
 msgid "Current"
 msgstr "Aktualne"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2235
 msgid "Date:"
 msgstr "Data:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:5093
 msgid "Disable steppers"
 msgstr "Wylaczenie silnikow"
 
@@ -423,7 +448,7 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y
 msgstr "Odleglosc dyszy od powierzchni druku nie jest skalibrowana. Postepuj zgodnie z instrukcja: rozdzial Wprowadzenie - Kalibracja pierwszej warstwy."
 
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
-#: ultralcd.cpp:4575
+#: ultralcd.cpp:4828
 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?"
 
@@ -433,47 +458,47 @@ msgid "E calibration finished. Please clean the nozzle. Click when done."
 msgstr "Kalibracja E zakonczona. Oczysc dysze i potwierdz naciskajac pokretlo. "
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4636
+#: ultralcd.cpp:4889
 msgid "E-correct"
 msgstr "Korekcja E"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4640
 msgid "Eject"
 msgstr "Wysun"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:6081
 msgid "Eject filament"
 msgstr "Wysun filament"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5603
 msgid "Eject filament 1"
 msgstr "Wysun filament 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5604
 msgid "Eject filament 2"
 msgstr "Wysun filament 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5605
 msgid "Eject filament 3"
 msgstr "Wysun filament 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5606
 msgid "Eject filament 4"
 msgstr "Wysun filament 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5607
 msgid "Eject filament 5"
 msgstr "Wysun filament 5"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1339
 msgid "Ejecting filament"
 msgstr "Wysuwanie filamentu"
 
@@ -483,17 +508,17 @@ msgid "End file list"
 msgstr "Koniec listy plikow"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:7090
 msgid "Endstop"
 msgstr "Krancowka"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:7096
 msgid "Endstop not hit"
 msgstr "Krancowka nie aktyw."
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:7078
 msgid "Endstops"
 msgstr "Krancowki"
 
@@ -513,7 +538,7 @@ msgid "enqueing \""
 msgstr "kolejkowanie \""
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:6132
 msgid "Error - static memory has been overwritten"
 msgstr "Blad - pamiec statyczna zostala nadpisana"
 
@@ -523,137 +548,152 @@ msgid "error writing to file"
 msgstr "blad zapisywania pliku"
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr "BLAD:"
 
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4259
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie."
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:1006
 msgid "External SPI flash W25X20CL not responding."
 msgstr "Zewnetrzna pamiec flash SPI W25X20CL nie odpowiada."
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr "Ekstruder"
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5633
 msgid "Extruder 1"
 msgstr "Ekstruder 1"
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5634
 msgid "Extruder 2"
 msgstr "Ekstruder 2"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5635
 msgid "Extruder 3"
 msgstr "Ekstruder 3"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5636
 msgid "Extruder 4"
 msgstr "Ekstruder 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7468
 msgid "Extruder fan:"
 msgstr "Went. ekstrudera:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2266
 msgid "Extruder info"
 msgstr "Informacje o ekstruderze"
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4927
 msgid "F. autoload  [on]"
-msgstr "Autolad. fil[wl]"
+msgstr "Autolad. fil [wl]"
 
 # MSG_FSENS_AUTOLOAD_NA c=17 r=1
-#: messages.c:48
+#: messages.c:43
 msgid "F. autoload [N/A]"
-msgstr "Autoladowanie fil. [N/D]"
+msgstr "Autolad.fil.[N/D]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4676
+#: ultralcd.cpp:4929
 msgid "F. autoload [off]"
-msgstr "Autolad. fil[wyl]"
+msgstr "Autolad.fil.[wyl]"
+
+# 
+#: ultralcd.cpp:6112
+msgid "Fail stats"
+msgstr "Statystyki bledow"
+
+# 
+#: ultralcd.cpp:6115
+msgid "Fail stats MMU"
+msgstr "Bledy MMU"
 
 # MSG_FAN_SPEED c=14
-#: messages.c:36
+#: messages.c:31
 msgid "Fan speed"
 msgstr "Predkosc went."
 
 # MSG_SELFTEST_FAN c=20
-#: messages.c:83
+#: messages.c:74
 msgid "Fan test"
 msgstr "Test wentylatora"
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4847
+#: ultralcd.cpp:5100
 msgid "Fans check   [on]"
-msgstr "Sprawdzanie wentylatorow [wl]"
+msgstr "Sprawd.went. [wl]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:5102
 msgid "Fans check  [off]"
-msgstr "Sprawdzanie wentylatorow [wyl]"
+msgstr "Sprawd.went.[wyl]"
 
 # MSG_FSENSOR_ON
-#: messages.c:50
+#: messages.c:45
 msgid "Fil. sensor  [on]"
-msgstr "Czuj. filamentu. [wl]"
+msgstr "Czuj. filam. [wl]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3105
+#: Marlin_main.cpp:3146
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "Reakcja czujnika slaba, wylaczyc?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4907
 msgid "Fil. sensor [N/A]"
-msgstr "Czuj. filamentu [N/D]"
+msgstr "Czuj. filam.[N/D]"
 
 # MSG_FSENSOR_OFF
-#: messages.c:49
+#: messages.c:44
 msgid "Fil. sensor [off]"
-msgstr "Czuj. fil. [wyl]"
+msgstr "Czuj. filam.[wyl]"
+
+# 
+#: ultralcd.cpp:2013
+msgid "Filam. runouts"
+msgstr "Konc. filamentu"
 
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
 msgstr "Filament"
 
 # MSG_FILAMENT_CLEAN c=20 r=2
-#: messages.c:37
+#: messages.c:32
 msgid "Filament extruding & with correct color?"
 msgstr "Filament wychodzi z dyszy a kolor jest czysty?"
 
 # MSG_NOT_LOADED c=19
-#: ultralcd.cpp:2341
+#: ultralcd.cpp:2559
 msgid "Filament not loaded"
 msgstr "Fil. nie zaladowany"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:7144
 msgid "Filament sensor"
 msgstr "Czujnik filamentu"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7477
 msgid "Filament sensor:"
 msgstr "Czujnik filamentu:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2725
 msgid "Filament used"
 msgstr "Uzyty filament"
 
@@ -663,7 +703,7 @@ msgid "Filament used:  "
 msgstr "Uzywany filament:"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7595
 msgid "File incomplete. Continue anyway?"
 msgstr "Plik niekompletny. Kontynowac?"
 
@@ -678,92 +718,92 @@ msgid "File selected"
 msgstr "Wybrano plik"
 
 # MSG_FINISHING_MOVEMENTS c=20 r=1
-#: messages.c:45
+#: messages.c:40
 msgid "Finishing movements"
 msgstr "Konczenie druku"
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:5177
 msgid "First layer cal."
 msgstr "Kal. 1. warstwy"
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4740
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr "Najpierw wlacze selftest w celu sprawdzenia najczestszych problemow podczas montazu."
 
 # 
-#: mmu.cpp:423
+#: mmu.cpp:640
 msgid "Fix the issue and then press button on MMU unit."
 msgstr "Rozwiaz problem i wcisnij przycisk na MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:6205
 msgid "Flow"
 msgstr "Przeplyw"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2228
 msgid "forum.prusa3d.com"
 msgstr "forum.prusa3d.com"
 
 # MSG_SELFTEST_COOLING_FAN c=20
-#: messages.c:80
+#: messages.c:71
 msgid "Front print fan?"
 msgstr "Przedni went. druku?"
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:3101
 msgid "Front side[um]"
 msgstr "Przod [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:7136
 msgid "Front/left fans"
 msgstr "Przedni/lewy wentylator"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:7066
 msgid "Heater/Thermistor"
 msgstr "Grzalka/Termistor"
 
 # MSG_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
 msgstr "Grzanie..."
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7475
 msgid "Heating disabled by safety timer."
 msgstr "Grzanie wylaczone przez wyl. czasowy"
 
 # MSG_HEATING_COMPLETE c=20
-#: messages.c:52
+#: messages.c:47
 msgid "Heating done."
 msgstr "Grzanie zakonczone"
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4719
 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?"
 
 # MSG_PRUSA3D_HOWTO
-#: ultralcd.cpp:2142
+#: ultralcd.cpp:2229
 msgid "howto.prusa3d.com"
 msgstr "howto.prusa3d.com"
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4749
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr "Przeprowadze teraz kalibracje XYZ. Zajmie ok. 12 min."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4757
 msgid "I will run z calibration now."
 msgstr "Przeprowadze kalibracje Z."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4822
 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
 msgstr "Zaczne drukowac linie. Stopniowo opuszczaj dysze przekrecajac pokretlo, poki nie uzyskasz optymalnej wysokosci. Sprawdz obrazki w naszym Podreczniku w rozdz. Kalibracja"
 
@@ -773,7 +813,7 @@ msgid "Improving bed calibration point"
 msgstr "Poprawiam precyzje punktu kalibracyjnego"
 
 # MSG_WATCH
-#: messages.c:102
+#: messages.c:93
 msgid "Info screen"
 msgstr "Ekran informacyjny"
 
@@ -783,52 +823,52 @@ msgid "Init. SD card"
 msgstr "Inicjalizacja karty SD"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2459
 msgid "Insert filament"
 msgstr "Wprowadz filament"
 
 # MSG_FILAMENT_LOADING_T0 c=20 r=4
-#: messages.c:38
+#: messages.c:33
 msgid "Insert filament into extruder 1. Click when done."
 msgstr "Wloz filament do ekstrudera 1. Potwierdz naciskajac pokretlo."
 
 # MSG_FILAMENT_LOADING_T1 c=20 r=4
-#: messages.c:39
+#: messages.c:34
 msgid "Insert filament into extruder 2. Click when done."
 msgstr "Wloz filament do ekstrudera 2. Potwierdz naciskajac pokretlo."
 
 # MSG_FILAMENT_LOADING_T2 c=20 r=4
-#: messages.c:40
+#: messages.c:35
 msgid "Insert filament into extruder 3. Click when done."
 msgstr "Wloz filament do ekstrudera 3. Potwierdz naciskajac pokretlo."
 
 # MSG_FILAMENT_LOADING_T3 c=20 r=4
-#: messages.c:41
+#: messages.c:36
 msgid "Insert filament into extruder 4. Click when done."
 msgstr "Wloz filament do ekstrudera 4. Potwierdz naciskajac pokretlo."
 
 # 
-#: ultralcd.cpp:4529
+#: ultralcd.cpp:4782
 msgid "Is filament 1 loaded?"
 msgstr "Filament 1 zaladowany?"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4785
 msgid "Is filament loaded?"
 msgstr "Filament jest zaladowany?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4816
 msgid "Is it PLA filament?"
 msgstr "Czy to filament PLA?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4561
 msgid "Is PLA filament loaded?"
 msgstr "Fialment PLA jest zaladowany?"
 
 # MSG_STEEL_SHEET_CHECK c=20 r=2
-#: messages.c:95
+#: messages.c:86
 msgid "Is steel sheet on heatbed?"
 msgstr "Czy plyta stal. jest na podgrzew. stole?"
 
@@ -843,17 +883,27 @@ msgid "KILLED. "
 msgstr "PRZERWANE."
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:1960
+msgid "Last print"
+msgstr "Ost. wydruk"
+
+# 
+#: ultralcd.cpp:1976
+msgid "Last print failures"
+msgstr "Ostatnie bledy druku"
+
+# 
+#: ultralcd.cpp:2861
 msgid "Left"
 msgstr "Lewa"
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Lewy went hotendu?"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:3099
 msgid "Left side [um]"
 msgstr "Lewo [um]"
 
@@ -863,7 +913,7 @@ msgid "Left:"
 msgstr "Lewo:"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:5107
 msgid "Lin. correction"
 msgstr "Korekcja lin."
 
@@ -873,57 +923,57 @@ msgid "Live adjust Z"
 msgstr "Ustaw. Live Z"
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5323
+#: ultralcd.cpp:5575
 msgid "Load all"
 msgstr "Zalad. wszystkie"
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr "Ladowanie fil."
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5576
 msgid "Load filament 1"
 msgstr "Zaladuj fil. 1"
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5577
 msgid "Load filament 2"
 msgstr "Zaladuj fil. 2"
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5578
 msgid "Load filament 3"
 msgstr "Zaladuj fil. 3"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5579
 msgid "Load filament 4"
 msgstr "Zaladuj fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5582
 msgid "Load filament 5"
 msgstr "Laduj filament 5"
 
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:6079
 msgid "Load to nozzle"
 msgstr "Zaladuj do dyszy"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2499
 msgid "Loading color"
 msgstr "Czyszcz. koloru"
 
 # MSG_LOADING_FILAMENT c=20
-#: messages.c:57
+#: messages.c:52
 msgid "Loading filament"
 msgstr "Laduje filament"
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6837
+#: ultralcd.cpp:7120
 msgid "Loose pulley"
 msgstr "Luzne kolo pasowe"
 
@@ -943,7 +993,7 @@ msgid "M109 Invalid extruder "
 msgstr "M109 Nieprawidlowy ekstruder"
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Kal. 1. warstwy"
 
@@ -963,7 +1013,7 @@ msgid "M221 Invalid extruder "
 msgstr "M221 Nieprawidlowy ekstruder"
 
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Menu glowne"
 
@@ -973,7 +1023,7 @@ msgid "Mark filament 100mm from extruder body. Click when done."
 msgstr "Zaznacz filament na wysokosci 100 mm od korpusu ekstrudera i potwierdz naciskajac pokretlo."
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2896
 msgid "Measured skew"
 msgstr "Zmierzony skos"
 
@@ -983,17 +1033,32 @@ msgid "Measured skew:"
 msgstr "Zmierzony skos:"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60
-#: messages.c:60
+#: messages.c:55
 msgid "Measuring reference height of calibration point"
 msgstr "Okreslam wysokosc odniesienia punktu kalibracyjnego"
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4939
+#: ultralcd.cpp:5192
 msgid "Mesh Bed Leveling"
 msgstr "Poziomowanie stolu wg siatki"
 
 # 
-#: mmu.cpp:418
+#: ultralcd.cpp:1977
+msgid "MMU fails"
+msgstr "Bledy MMU"
+
+# 
+#: mmu.cpp:1399
+msgid "MMU load failed     "
+msgstr "Blad ladowania MMU"
+
+# 
+#: ultralcd.cpp:1977
+msgid "MMU load fails"
+msgstr "Bledy ladow. MMU"
+
+# 
+#: mmu.cpp:635
 msgid "MMU needs user attention."
 msgstr "MMU wymaga uwagi uzytkownika."
 
@@ -1003,77 +1068,92 @@ msgid "MMU needs user attention. Fix the issue and then press button on MMU unit
 msgstr "MMU wymaga uwagi. Napraw usterke i wcisnij przycisk na korpusie MMU."
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:676
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Wznawianie pozycji."
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:450
+#: mmu.cpp:669
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Wznawiam nagrzewanie..."
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:687
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Wznawianie..."
 
+# 
+#: ultralcd.cpp:1994
+msgid "MMU power fails"
+msgstr "Zaniki zasil. MMU"
+
+# 
+#: ultralcd.cpp:2241
+msgid "MMU2 connected"
+msgstr "MMU podlaczone"
+
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
-msgstr "Tryb [normalny]"
+msgstr "Tryb   [normalny]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
-msgstr "Tryb [cichy]"
+msgstr "Tryb      [cichy]"
 
 # MSG_STEALTH_MODE_ON
-#: messages.c:94
+#: messages.c:85
 msgid "Mode    [Stealth]"
-msgstr "Tryb [Stealth]"
+msgstr "Tryb    [Stealth]"
 
 # MSG_AUTO_MODE_ON
 #: messages.c:12
 msgid "Mode [auto power]"
-msgstr "Tryb [automatyczny]"
+msgstr "Tryb [automatycz]"
 
 # MSG_SILENT_MODE_OFF
-#: messages.c:91
+#: messages.c:82
 msgid "Mode [high power]"
-msgstr "Tryb [wysoka wydajnosc]"
+msgstr "Tryb[wysoka wyd.]"
 
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr "Silnik"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:5091
 msgid "Move axis"
 msgstr "Ruch osi"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:4164
 msgid "Move X"
 msgstr "Ruch osi X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:4165
 msgid "Move Y"
 msgstr "Ruch osi Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:4166
 msgid "Move Z"
 msgstr "Ruch osi Z"
 
+# 
+#: ultralcd.cpp:2867
+msgid "N/A"
+msgstr "N/D"
+
 # 
 #: util.cpp:293
 msgid "New firmware version available:"
 msgstr "Dostepna nowa wersja firmware:"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr "Nie"
 
@@ -1088,12 +1168,12 @@ msgid "No Checksum with line number, Last Line: "
 msgstr "Brak sumy kontrolnej z numerem linii, ostatnia linia:"
 
 # MSG_NO_MOVE
-#: Marlin_main.cpp:4855
+#: Marlin_main.cpp:4908
 msgid "No move."
 msgstr "Brak ruchu."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:6059
 msgid "No SD card"
 msgstr "Brak karty SD"
 
@@ -1103,35 +1183,40 @@ msgid "No thermistors - no temperature"
 msgstr "Brak termistorow - brak odczytu temperatury"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:7068
 msgid "Not connected"
 msgstr "Nie podlaczono "
 
 # MSG_SELFTEST_FAN_NO c=19
-#: messages.c:84
+#: messages.c:75
 msgid "Not spinning"
 msgstr "Nie kreci sie"
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4568
+#: ultralcd.cpp:4821
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
 msgstr "Kalibruje odleglosc miedzy koncowka dyszy a powierzchnia druku."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4512
+#: ultralcd.cpp:4765
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Nagrzewam dysze dla PLA."
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4756
 msgid "Now remove the test print from steel sheet."
 msgstr "Teraz zdejmij wydruk testowy ze stolu."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Dysza"
 
+# 
+#: ultralcd.cpp:1919
+msgid "Nozzle FAN"
+msgstr "Went. hotendu"
+
 # MSG_INFO_NOZZLE_FAN c=11 r=1
 #: ultralcd.cpp:1537
 msgid "Nozzle FAN:"
@@ -1153,7 +1238,7 @@ msgid "ok"
 msgstr "ok"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1516
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp."
 
@@ -1173,7 +1258,7 @@ msgid "openRoot failed"
 msgstr "niepowodzenie openRoot "
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:6029
 msgid "Pause print"
 msgstr "Wstrzymanie wydruku"
 
@@ -1183,42 +1268,42 @@ msgid "Pick print"
 msgstr "Wybierz wydruk"
 
 # MSG_PID_RUNNING c=20 r=1
-#: ultralcd.cpp:1703
+#: ultralcd.cpp:1741
 msgid "PID cal.           "
 msgstr "Kalibracja PID"
 
 # MSG_PID_FINISHED c=20 r=1
-#: ultralcd.cpp:1709
+#: ultralcd.cpp:1747
 msgid "PID cal. finished"
 msgstr "Kal. PID zakonczona"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:5198
 msgid "PID calibration"
 msgstr "Kalibracja PID"
 
 # MSG_PINDA_PREHEAT c=20 r=1
-#: ultralcd.cpp:770
+#: ultralcd.cpp:808
 msgid "PINDA Heating"
 msgstr "Grzanie sondy PINDA"
 
 # MSG_PAPER c=20 r=8
-#: messages.c:66
+#: messages.c:60
 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."
 msgstr "Umiesc kartke papieru na stole roboczym i podczas pomiaru pierwszych 4 punktow. Jesli dysza zahaczy o papier, natychmiast wylacz drukarke."
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:7060
 msgid "Please check :"
 msgstr "Sprawdz :"
 
 # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
-#: messages.c:103
+#: messages.c:94
 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
 msgstr "Przeczytaj nasz Podrecznik druku 3D aby naprawic problem. Potem wznow Asystenta przez restart drukarki."
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4830
 msgid "Please clean heatbed and then press the knob."
 msgstr "Oczysc powierzchnie druku i nacisnij pokretlo."
 
@@ -1228,12 +1313,12 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Dla prawidl. kalibracji nalezy oczyscic dysze. Potw. guzikiem."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4411
+#: ultralcd.cpp:4664
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
 msgstr "Umiesc filament PLA w ekstruderze i nacisnij pokretlo, aby zaladowac."
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4660
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr "Wsun filament PLA do pierwszej rurki MMU i nacisnij pokretlo aby go zaladowac."
 
@@ -1243,52 +1328,52 @@ msgid "Please load PLA filament and then resume Wizard by rebooting the printer.
 msgstr "Zaladuj filament PLA i przywroc Asystenta przez restart drukarki."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4314
+#: ultralcd.cpp:4566
 msgid "Please load PLA filament first."
 msgstr "Najpierw zaladuj filament PLA."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2989
+#: Marlin_main.cpp:3025
 msgid "Please open idler and remove filament manually."
 msgstr "Prosze odciagnac dzwignie dociskowa ekstrudera i recznie usunac filament."
 
 # MSG_PLACE_STEEL_SHEET c=20 r=4
-#: messages.c:67
+#: messages.c:61
 msgid "Please place steel sheet on heatbed."
 msgstr "Prosze umiescic plyte stalowa na stole podgrzewanym."
 
 # MSG_PRESS_TO_UNLOAD c=20 r=4
-#: messages.c:71
+#: messages.c:64
 msgid "Please press the knob to unload filament"
 msgstr "Nacisnij pokretlo aby rozladowac filament"
 
 # MSG_PULL_OUT_FILAMENT c=20 r=4
-#: messages.c:73
+#: messages.c:66
 msgid "Please pull out filament immediately"
 msgstr "Wyciagnij filament teraz"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1114
+#: mmu.cpp:1347
 msgid "Please remove filament and then press the knob."
 msgstr "Wyciagnij filament i wcisnij pokretlo."
 
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4755
 msgid "Please remove shipping helpers first."
 msgstr "Najpierw usun zabezpieczenia transportowe"
 
 # MSG_REMOVE_STEEL_SHEET c=20 r=4
-#: messages.c:77
+#: messages.c:70
 msgid "Please remove steel sheet from heatbed."
 msgstr "Prosze zdjac plyte stalowa z podgrzewanego stolu."
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4011
+#: Marlin_main.cpp:4052
 msgid "Please run XYZ calibration first."
 msgstr "Prosze najpierw uruchomic kalibracje XYZ"
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1293
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Prosze zaktualizowac Firmware MMU2. Czekam na reset."
 
@@ -1298,57 +1383,82 @@ msgid "Please upgrade."
 msgstr "Prosze zaktualizowac."
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Prosze czekac"
 
+# 
+#: ultralcd.cpp:2013
+msgid "Power failures"
+msgstr "Zaniki zasilania"
+
 # MSG_POWERUP
 #: messages.c:69
 msgid "PowerUp"
 msgstr "Uruchamianie"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:6018
 msgid "Preheat"
 msgstr "Grzanie"
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Nagrzej dysze!"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr "Nagrzewanie dyszy. Prosze czekac."
 
+# 
+#: ultralcd.cpp:2350
+msgid "Preheating to load"
+msgstr "Nagrzew. do ladowania"
+
+# 
+#: ultralcd.cpp:2351
+msgid "Preheating to unload"
+msgstr "Nagrzew. do rozlad."
+
 # MSG_PREPARE_FILAMENT c=20 r=1
 #: ultralcd.cpp:1911
 msgid "Prepare new filament"
 msgstr "Przygotuj filament"
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9150
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac."
 
 # 
-#: mmu.cpp:422
+#: ultralcd.cpp:2313
+msgid "Press the knob"
+msgstr "Wcisnij pokretlo"
+
+# 
+#: mmu.cpp:639
 msgid "Press the knob to resume nozzle temperature."
 msgstr "Wcisnij pokretlo aby wznowic podgrzewanie dyszy."
 
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Druk przerwany"
 
+# 
+#: ultralcd.cpp:1921
+msgid "Print FAN"
+msgstr "Went. wydruku"
+
 # MSG_INFO_PRINT_FAN c=11 r=1
 #: ultralcd.cpp:1549
 msgid "Print FAN: "
 msgstr "Went. wydr:"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7471
 msgid "Print fan:"
 msgstr "Went. wydruku:"
 
@@ -1358,12 +1468,12 @@ msgid "Print from SD"
 msgstr "Druk z karty SD"
 
 # MSG_PRINT_PAUSED c=20 r=1
-#: ultralcd.cpp:984
+#: ultralcd.cpp:1022
 msgid "Print paused"
 msgstr "Druk wstrzymany"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2727
 msgid "Print time"
 msgstr "Czas druku"
 
@@ -1383,7 +1493,7 @@ msgid "Printer halted. kill() called!"
 msgstr "Drukarka zatrzymana. Wywolano komende kill()!"
 
 # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
-#: messages.c:46
+#: messages.c:41
 msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."
 msgstr "Drukarka nie zostala jeszcze skalibrowana. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Konfiguracja przed drukowaniem."
 
@@ -1407,18 +1517,23 @@ msgstr "Prusa i3 MK2.5 gotowa"
 msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 gotowa"
 
+# 
+#:
+msgid "Prusa i3 MK3S OK."
+msgstr "Prusa i3 MK3S OK"
+
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2227
 msgid "prusa3d.com"
 msgstr "prusa3d.com"
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:3102
 msgid "Rear side [um]"
 msgstr "Tyl [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8575
 msgid "Recovering print    "
 msgstr "Wznawianie wydruku"
 
@@ -1428,7 +1543,7 @@ msgid "Refresh"
 msgstr "Odswiez"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:744
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr "Wyciagnij poprzedni filament i nacisnij pokretlo aby zaladowac nowy."
 
@@ -1448,32 +1563,32 @@ msgid "Resend: "
 msgstr "Wyslij ponownie:"
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:3103
 msgid "Reset"
 msgstr "Reset"
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:5203
 msgid "Reset XYZ calibr."
 msgstr "Reset kalibr. XYZ"
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:6033
 msgid "Resume print"
 msgstr "Wznowic wydruk"
 
 # MSG_RESUMING_PRINT c=20 r=1
-#: messages.c:76
+#: messages.c:69
 msgid "Resuming print"
 msgstr "Wznawianie druku"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2862
 msgid "Right"
 msgstr "Prawa"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:3100
 msgid "Right side[um]"
 msgstr "Prawo [um]"
 
@@ -1488,24 +1603,24 @@ msgid "Rotate knob until mark reaches extruder body. Click when done."
 msgstr "Obracaj pokretlo az znacznik zrowna sie z korpusem ekstrudera i potwierdz naciskajac pokretlo."
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:5119
 msgid "RPi port     [on]"
-msgstr "Port RPi [wl]"
+msgstr "Port RPi     [wl]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:5117
 msgid "RPi port    [off]"
-msgstr "Port RPi [wyl]"
+msgstr "Port RPi    [wyl]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4583
 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?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4780
+#: ultralcd.cpp:5033
 msgid "SD card  [normal]"
-msgstr "Karta SD [normalna]"
+msgstr "Karta SD [normal]"
 
 # MSG_SD_CARD_OK
 #: cardreader.cpp:202
@@ -1518,9 +1633,9 @@ msgid "SD card [FlshAir]"
 msgstr "Karta SD [FlashAir]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:5031
 msgid "SD card [flshAir]"
-msgstr "Karta SD [FlashAir]"
+msgstr "Karta SD[FlshAir]"
 
 # MSG_SD_INIT_FAIL
 #: cardreader.cpp:186
@@ -1533,67 +1648,77 @@ msgid "SD printing byte "
 msgstr "SD printing byte "
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60
-#: messages.c:43
+#: messages.c:38
 msgid "Searching bed calibration point"
 msgstr "Szukam punktu kalibracyjnego na stole"
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4873
+#: ultralcd.cpp:5126
 msgid "Select language"
 msgstr "Wybor jezyka"
 
 # 
-#: ultralcd.cpp:4550
+#: ultralcd.cpp:4803
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu."
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4552
 msgid "Select PLA filament:"
 msgstr "Wybierz filament PLA:"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6631
 msgid "Self test OK"
 msgstr "Selftest OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6449
 msgid "Self test start  "
 msgstr "Rozpoczynanie Selftestu"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:5179
 msgid "Selftest         "
 msgstr "Selftest "
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:7058
 msgid "Selftest error !"
 msgstr "Blad selftest !"
 
 # MSG_SELFTEST_FAILED c=20
-#: messages.c:82
+#: messages.c:73
 msgid "Selftest failed  "
 msgstr "Selftest nieudany"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1521
+#: Marlin_main.cpp:1548
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek"
 
+# 
+#: ultralcd.cpp:3819
+msgid "Sensor state"
+msgstr "Stan czujnikow"
+
+# 
+#:
+msgid "Sensors info"
+msgstr "Info o czujnikach"
+
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:3111
 msgid "Set temperature:"
 msgstr "Ustaw. temperatury:"
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Ustawienia"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2899
 msgid "Severe skew"
 msgstr "Znaczny skos"
 
@@ -1603,14 +1728,14 @@ msgid "Severe skew:"
 msgstr "Powazny skos:"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:5200
 msgid "Show end stops"
 msgstr "Pokaz krancowki"
 
 # 
-#: ultralcd.cpp:4947
+#:
 msgid "Show pinda state"
-msgstr "Stan sondy P.I.N.D.A."
+msgstr "Stan sondy PINDA"
 
 # MSG_DWELL
 #: Marlin_main.cpp:3752
@@ -1618,7 +1743,7 @@ msgid "Sleep..."
 msgstr "Czuwanie..."
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2898
 msgid "Slight skew"
 msgstr "Lekki skos"
 
@@ -1633,7 +1758,7 @@ msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting
 msgstr "Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100."
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4560
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr "Wykryto problem, wymuszono poziomowanie osi Z ..."
 
@@ -1643,9 +1768,9 @@ msgid "Sort:      [None]"
 msgstr "Sortuj: [brak]"
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:5043
 msgid "Sort:      [none]"
-msgstr "Sortuj: [brak]"
+msgstr "Sortuj:    [brak]"
 
 # MSG_SORT_TIME c=17 r=1
 #: ultralcd.cpp:4248
@@ -1653,9 +1778,9 @@ msgid "Sort:      [Time]"
 msgstr "Sortuj: [czas]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:5041
 msgid "Sort:      [time]"
-msgstr "Sortuj: [czas]"
+msgstr "Sortuj:    [czas]"
 
 # MSG_SORT_ALPHA c=17 r=1
 #: ultralcd.cpp:4249
@@ -1663,9 +1788,9 @@ msgid "Sort:  [Alphabet]"
 msgstr "Sortuj:[alfabet]"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:5042
 msgid "Sort:  [alphabet]"
-msgstr "Sortuj:[alfabet]"
+msgstr "Sortuj: [alfabet]"
 
 # MSG_SORT_NONE c=17 r=1
 #:
@@ -1685,40 +1810,55 @@ msgstr "Sortowanie plikow"
 # MSG_SOUND_LOUD c=17 r=1
 #: sound.h:5
 msgid "Sound      [loud]"
-msgstr "Dzwiek [Glosny]"
+msgstr "Dzwiek   [Glosny]"
 
 # MSG_SOUND_MUTE c=17 r=1
 #: sound.h:8
 msgid "Sound      [mute]"
-msgstr "Dzwiek [Wylaczony]"
+msgstr "Dzwiek[Wylaczony]"
 
 # MSG_SOUND_ONCE c=17 r=1
 #: sound.h:6
 msgid "Sound      [once]"
-msgstr "Dzwiek [1-raz]"
+msgstr "Dzwiek    [1-raz]"
 
 # MSG_SOUND_SILENT c=17 r=1
 #: sound.h:7
 msgid "Sound    [silent]"
-msgstr "Dzwiek [Cichy]"
+msgstr "Dzwiek    [Cichy]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:6199
 msgid "Speed"
 msgstr "Predkosc"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Kreci sie"
 
+# MSG_AUTO_DEPLETE_ON c=17 r=1
+#: ultralcd.cpp:4959
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin    [wl]"
+
+# 
+#: ultralcd.cpp:4955
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin    [nd]"
+
+# MSG_AUTO_DEPLETE_OFF c=17 r=1
+#: ultralcd.cpp:4963
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [wyl]"
+
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4065
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr "Potrzebna jest stabilna temperatura otoczenia 21-26C i stabilne podloze."
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5847
+#: ultralcd.cpp:6108
 msgid "Statistics  "
 msgstr "Statystyki"
 
@@ -1728,52 +1868,52 @@ msgid "Steprate too high: "
 msgstr "Liczba krokow zbyt wysoka:"
 
 # MSG_STOP_PRINT
-#: messages.c:96
+#: messages.c:87
 msgid "Stop print"
 msgstr "Zatrzymac druk"
 
 # MSG_STOPPED
-#: messages.c:97
+#: messages.c:88
 msgid "STOPPED. "
 msgstr "ZATRZYMANO."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:6117
 msgid "Support"
 msgstr "Wsparcie"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:7138
 msgid "Swapped"
 msgstr "Zamieniono"
 
 # MSG_TEMP_CALIBRATION c=20 r=1
-#: messages.c:98
+#: messages.c:89
 msgid "Temp. cal.          "
 msgstr "Kalibracja temp."
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4860
+#: ultralcd.cpp:5113
 msgid "Temp. cal.   [on]"
-msgstr "Kalibr. temp. [wl]"
+msgstr "Kalibr. temp.[wl]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:5111
 msgid "Temp. cal.  [off]"
-msgstr "Kalibr. temp. [wyl]"
+msgstr "Kalibr.temp.[wyl]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:5209
 msgid "Temp. calibration"
 msgstr "Kalibracja temp."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:5089
 msgid "Temperature"
 msgstr "Temperatura"
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3744
 msgid "Temperature calibration failed"
 msgstr "Kalibracja temperaturowa nieudana"
 
@@ -1783,22 +1923,42 @@ msgid "Temperature calibration has not been run yet"
 msgstr "Kalibracja temperaturowa nie zostala jeszcze przeprowadzona"
 
 # MSG_TEMP_CALIBRATION_DONE c=20 r=12
-#: messages.c:99
+#: messages.c:90
 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal."
 msgstr "Kalibracja temperaturowa zakonczona i wlaczona. Moze byc wylaczona z menu Ustawienia -> Kalibracja temp."
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2273
 msgid "Temperatures"
 msgstr "Temperatury"
 
 # MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4
-#: messages.c:47
+#: messages.c:42
 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."
 msgstr "Musimy przeprowadzic kalibracje Z. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Kalibracja."
 
 # 
-#: ultralcd.cpp:2539
+#: ultralcd.cpp:2316
+msgid "to load filament"
+msgstr "aby zaladow. fil."
+
+# 
+#: ultralcd.cpp:2317
+msgid "to unload filament"
+msgstr "aby rozlad. filament"
+
+# 
+#: ultralcd.cpp:1961
+msgid "Total"
+msgstr "Suma"
+
+# 
+#: ultralcd.cpp:1994
+msgid "Total failures"
+msgstr "Suma bledow"
+
+# 
+#: ultralcd.cpp:2752
 msgid "Total filament"
 msgstr "Calkowita dlugosc filamentu"
 
@@ -1808,7 +1968,7 @@ msgid "Total filament :"
 msgstr "Filament lacznie :"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2754
 msgid "Total print time"
 msgstr "Calkowity czas druku"
 
@@ -1823,22 +1983,27 @@ msgid "TRIGGERED"
 msgstr "AKTYWOWANO"
 
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:6015
 msgid "Tune"
 msgstr "Strojenie"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:2249
+msgid "unknown"
+msgstr "nieznane"
+
+# 
+#: ultralcd.cpp:4640
 msgid "Unload"
 msgstr "Rozladuj"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5617
 msgid "Unload all"
 msgstr "Rozladuj wszystkie"
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr "Rozladowanie fil."
 
@@ -1863,22 +2028,22 @@ msgid "Unload filament 4"
 msgstr "Rozladuj fil. 4"
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Rozladowuje filament"
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4639
 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
 msgstr "Uzyj opcji Rozladuj jesli filament wystaje z tylnej rurki MMU. Uzyj opcji Wysun jesli wciaz jest w srodku."
 
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5334
 msgid "Used during print"
 msgstr "Uzyte podczas druku"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2276
 msgid "Voltages"
 msgstr "Napiecia"
 
@@ -1888,32 +2053,32 @@ msgid "volume.init failed"
 msgstr "niepowodzenie volume.init "
 
 # MSG_USERWAIT
-#: Marlin_main.cpp:4823
+#: Marlin_main.cpp:4876
 msgid "Wait for user..."
 msgstr "Czekam na uzytkownika..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3255
 msgid "Waiting for nozzle and bed cooling"
 msgstr "Oczekiwanie na wychlodzenie dyszy i stolu"
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3008
+#: ultralcd.cpp:3219
 msgid "Waiting for PINDA probe cooling"
 msgstr "Czekam az spadnie temp. sondy PINDA"
 
 # MSG_CHANGED_BOTH c=20 r=4
-#: Marlin_main.cpp:1481
+#: Marlin_main.cpp:1508
 msgid "Warning: both printer type and motherboard type changed."
 msgstr "Ostrzezenie: typ drukarki i plyta glowna ulegly zmianie."
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1473
+#: Marlin_main.cpp:1500
 msgid "Warning: motherboard type changed."
 msgstr "Ostrzezenie: plyta glowna ulegla zmianie."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1477
+#: Marlin_main.cpp:1504
 msgid "Warning: printer type changed."
 msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie"
 
@@ -1923,17 +2088,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!"
 msgstr "OSTRZEZENIE: To jest nieoficjalna, niewspierana wersja firmware. Uzywasz na wlasna odpowiedzialnosc!"
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:3014
 msgid "Was filament unload successful?"
 msgstr "Rozladowanie fil. ok?"
 
 # MSG_SELFTEST_WIRINGERROR
-#: messages.c:89
+#: messages.c:80
 msgid "Wiring error"
 msgstr "Blad polaczenia"
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4923
+#: ultralcd.cpp:5176
 msgid "Wizard"
 msgstr "Asystent"
 
@@ -1944,57 +2109,56 @@ msgstr "blad otwierania workDir"
 
 # MSG_SD_WRITE_TO_FILE
 #: cardreader.cpp:424
-#, fuzzy
 msgid "Writing to file: "
 msgstr "Zapis do pliku:"
 
 # 
-#: ultralcd.cpp:4632
+#: ultralcd.cpp:4885
 msgid "X-correct"
 msgstr "Korekcja X"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2265
 msgid "XYZ cal. details"
 msgstr "Szczegoly kal. XYZ"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3496
+#: ultralcd.cpp:3715
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr "Kalibracja XYZ pomyslna. Skos bedzie automatycznie korygowany."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3493
+#: ultralcd.cpp:3712
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr "Kalibracja XYZ prawidlowa. Osie X/Y lekko skosne. Dobra robota!"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3474
+#: ultralcd.cpp:3693
 msgid "XYZ calibration compromised. Front calibration points not reachable."
 msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3480
+#: ultralcd.cpp:3699
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr "Kalibracja XYZ niedokladna. Lewy przedni punkt nieosiagalny."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3477
+#: ultralcd.cpp:3696
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
 msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny."
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3675
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3681
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3687
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr "Kalibr. XYZ nieudana. Lewy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki."
 
@@ -2004,17 +2168,17 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "Kalibracja XYZ nieudana. Sprawdz przyczyny i rozwiazania w instrukcji."
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3684
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3709
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
 msgstr "Kalibracja XYZ ok. Osie X/Y sa prostopadle. Gratulacje!"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2859
 msgid "Y distance from min"
 msgstr "Dystans od 0 w osi Y"
 
@@ -2024,12 +2188,12 @@ msgid "Y distance from min:"
 msgstr "Min. odleglosc od Y:"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4886
 msgid "Y-correct"
 msgstr "Korekcja Y"
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Tak"
 
@@ -2044,11 +2208,11 @@ msgid "You are using firmware beta version. This is development version. Using t
 msgstr "Uzywasz firmware w wersji beta. Ta wersja jest rozwojowa. Uzywanie jej nie jest zalecane i moze spowodowac uszkodzenie drukarki."
 
 # MSG_WIZARD_QUIT c=20 r=8
-#: messages.c:106
+#: messages.c:97
 msgid "You can always resume the Wizard from Calibration -> Wizard."
 msgstr "Zawsze mozesz uruchomic Asystenta ponownie przez Kalibracja -> Asystent."
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2914
 msgid "[0;0] point offset"
 msgstr "[0;0] przesuniecie punktu"