Browse Source

Merge pull request #123 from prusa3d/MK3_marek

merge prusa3d/Prusa-Firmware/MK3
mkbel 5 years ago
parent
commit
2df9788c84

+ 15 - 1
.gitignore

@@ -1,4 +1,4 @@
-.settings
+.settings
 .project
 .cproject
 Debug
@@ -35,3 +35,17 @@ Firmware/Doc
 /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
+/lang/*.tmp
+/lang/*.out
+/lang/not_tran.txt
+/lang/not_used.txt
+/lang/progmem1.chr
+/lang/progmem1.lss
+/lang/progmem1.txt
+/lang/progmem1.var
+/lang/text.sym
+/lang/textaddr.txt
+/build-env/

+ 18 - 0
.travis.yml

@@ -0,0 +1,18 @@
+dist: trusty
+before_install:
+  - sudo apt-get install -y ninja-build
+script:
+  - bash -x test.sh
+  - bash -x build.sh
+  - rm Firmware/Configuration_prusa.h
+  - cp Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h Firmware/Configuration_prusa.h
+  - bash -x build.sh
+  - rm Firmware/Configuration_prusa.h
+  - cp Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h Firmware/Configuration_prusa.h
+  - bash -x build.sh
+  - rm Firmware/Configuration_prusa.h
+  - cp Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h Firmware/Configuration_prusa.h
+  - bash -x build.sh
+  - rm Firmware/Configuration_prusa.h
+  - cp Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h Firmware/Configuration_prusa.h
+  - bash -x build.sh

+ 3 - 1
CMakeLists.txt

@@ -1,4 +1,6 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.1)
+
+set (CMAKE_CXX_STANDARD 11)
 
 project(cmake_test)
 

+ 2 - 2
Firmware/Configuration.h

@@ -7,8 +7,8 @@
 #define STR(x) STR_HELPER(x)
 
 // Firmware version
-#define FW_VERSION "3.5.0"
-#define FW_COMMIT_NR   1749
+#define FW_VERSION "3.5.1"
+#define FW_COMMIT_NR   1778
 // 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

+ 66 - 10
Firmware/Marlin_main.cpp

@@ -129,6 +129,7 @@
 #include "sound.h"
 
 #include "cmdqueue.h"
+#include "io_atmega2560.h"
 
 // Macros for bit masks
 #define BIT(b) (1<<(b))
@@ -394,6 +395,8 @@ static bool saved_extruder_relative_mode = false;
 static int saved_fanSpeed = 0; //!< Print fan speed
 //! @}
 
+static int saved_feedmultiply_mm = 100;
+
 //===========================================================================
 //=============================Routines======================================
 //===========================================================================
@@ -639,6 +642,8 @@ void failstats_reset_print()
 	eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_Y, 0);
 	eeprom_update_byte((uint8_t *)EEPROM_FERROR_COUNT, 0);
 	eeprom_update_byte((uint8_t *)EEPROM_POWER_COUNT, 0);
+	eeprom_update_byte((uint8_t *)EEPROM_MMU_FAIL, 0);
+	eeprom_update_byte((uint8_t *)EEPROM_MMU_LOAD_FAIL, 0);
 }
 
 
@@ -685,6 +690,12 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 			eeprom_update_word((uint16_t *)EEPROM_FERROR_COUNT_TOT, 0);
 			eeprom_update_word((uint16_t *)EEPROM_POWER_COUNT_TOT, 0);
 
+			eeprom_update_word((uint16_t *)EEPROM_MMU_FAIL_TOT, 0);
+			eeprom_update_word((uint16_t *)EEPROM_MMU_LOAD_FAIL_TOT, 0);
+			eeprom_update_byte((uint8_t *)EEPROM_MMU_FAIL, 0);
+			eeprom_update_byte((uint8_t *)EEPROM_MMU_LOAD_FAIL, 0);
+
+
 			lcd_menu_statistics();
             
 			break;
@@ -711,6 +722,11 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
             eeprom_update_word((uint16_t *)EEPROM_FERROR_COUNT_TOT, 0);
             eeprom_update_word((uint16_t *)EEPROM_POWER_COUNT_TOT, 0);
 
+			eeprom_update_word((uint16_t *)EEPROM_MMU_FAIL_TOT, 0);
+			eeprom_update_word((uint16_t *)EEPROM_MMU_LOAD_FAIL_TOT, 0);
+			eeprom_update_byte((uint8_t *)EEPROM_MMU_FAIL, 0);
+			eeprom_update_byte((uint8_t *)EEPROM_MMU_LOAD_FAIL, 0);
+
 #ifdef FILAMENT_SENSOR
 			fsensor_enable();
             fsensor_autoload_set(true);
@@ -1389,6 +1405,12 @@ void setup()
 	if (eeprom_read_word((uint16_t*)EEPROM_CRASH_COUNT_X_TOT) == 0xffff) eeprom_write_word((uint16_t*)EEPROM_CRASH_COUNT_X_TOT, 0);
 	if (eeprom_read_word((uint16_t*)EEPROM_CRASH_COUNT_Y_TOT) == 0xffff) eeprom_write_word((uint16_t*)EEPROM_CRASH_COUNT_Y_TOT, 0);
 	if (eeprom_read_word((uint16_t*)EEPROM_FERROR_COUNT_TOT) == 0xffff) eeprom_write_word((uint16_t*)EEPROM_FERROR_COUNT_TOT, 0);
+
+	if (eeprom_read_word((uint16_t*)EEPROM_MMU_FAIL_TOT) == 0xffff) eeprom_update_word((uint16_t *)EEPROM_MMU_FAIL_TOT, 0);
+	if (eeprom_read_word((uint16_t*)EEPROM_MMU_LOAD_FAIL_TOT) == 0xffff) eeprom_update_word((uint16_t *)EEPROM_MMU_LOAD_FAIL_TOT, 0);
+	if (eeprom_read_byte((uint8_t*)EEPROM_MMU_FAIL) == 0xff) eeprom_update_byte((uint8_t *)EEPROM_MMU_FAIL, 0);
+	if (eeprom_read_byte((uint8_t*)EEPROM_MMU_LOAD_FAIL) == 0xff) eeprom_update_byte((uint8_t *)EEPROM_MMU_LOAD_FAIL, 0);
+
 #ifdef SNMM
 	if (eeprom_read_dword((uint32_t*)EEPROM_BOWDEN_LENGTH) == 0x0ffffffff) { //bowden length used for SNMM
 	  int _z = BOWDEN_LENGTH;
@@ -2804,10 +2826,15 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
 			lcd_puts_P(_T(MSG_FIND_BED_OFFSET_AND_SKEW_LINE2));
 		}
 			
+		bool endstops_enabled  = enable_endstops(false);
+        current_position[Z_AXIS] -= 1; //move 1mm down with disabled endstop
+        plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[Z_AXIS] / 40, active_extruder);
+        st_synchronize();
+
 		// Move the print head close to the bed.
 		current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
 
-		bool endstops_enabled  = enable_endstops(true);
+		enable_endstops(true);
 #ifdef TMC2130
 		tmc2130_home_enter(Z_AXIS_MASK);
 #endif //TMC2130
@@ -4537,10 +4564,20 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
                     lcd_calibrate_z_end_stop_manual(true); // Z-leveling (X-assembly stay up!!!)
 #endif // TMC2130
                     // ~ Z-homing (can not be used "G28", because X & Y-homing would have been done before (Z-homing))
-                    bState=enable_z_endstop(true);
+                    bState=enable_z_endstop(false);
+                    current_position[Z_AXIS] -= 1;
+                    plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[Z_AXIS] / 40, active_extruder);
+                    st_synchronize();
+                    enable_z_endstop(true);
+#ifdef TMC2130
+                    tmc2130_home_enter(Z_AXIS_MASK);
+#endif // TMC2130
                     current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
                     plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[Z_AXIS] / 40, active_extruder);
                     st_synchronize();
+#ifdef TMC2130
+                    tmc2130_home_exit();
+#endif // TMC2130
                     enable_z_endstop(bState);
                     } while (st_get_position_mm(Z_AXIS) > MESH_HOME_Z_SEARCH); // i.e. Z-leveling not o.k.
 //               plan_set_z_position(MESH_HOME_Z_SEARCH); // is not necessary ('do-while' loop always ends at the expected Z-position)
@@ -6091,12 +6128,20 @@ Sigma_Exit:
       SERIAL_ECHOLN("");
     }break;
     #endif
+
     case 220: // M220 S<factor in percent>- set speed factor override percentage
     {
-      if(code_seen('S'))
+      if (code_seen('B')) //backup current speed factor
       {
+        saved_feedmultiply_mm = feedmultiply;
+      }
+      if(code_seen('S'))
+      {		
         feedmultiply = code_value() ;
       }
+      if (code_seen('R')) { //restore previous feedmultiply
+        feedmultiply = saved_feedmultiply_mm;
+      }
     }
     break;
     case 221: // M221 S<factor in percent>- set extrude factor override percentage
@@ -6506,6 +6551,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
     #endif //FILAMENTCHANGEENABLE
 	case 601: //! M601 - Pause print
 	{
+		cmdqueue_pop_front(); //trick because we want skip this command (M601) after restore
 		lcd_pause_print();
 	}
 	break;
@@ -6860,8 +6906,10 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
   //! if extruder is "?", open menu to let the user select extruder/filament
   //!
   //!  For MMU_V2:
-  //! @n T<n> Gcode to extrude must follow immediately to load to extruder wheels
-  //! @n T? Gcode to extrude doesn't have to follow, load to extruder wheels is done automatically
+  //! @n T<n> Gcode to extrude at least 38.10 mm at feedrate 19.02 mm/s must follow immediately to load to extruder wheels.
+  //! @n T? Gcode to extrude shouldn't have to follow, load to extruder wheels is done automatically
+  //! @n Tx Same as T?, except nozzle doesn't have to be preheated. Tc must be placed after extruder nozzle is preheated to finish filament load.
+  //! @n Tc Load to nozzle after filament was prepared by Tc and extruder nozzle is already heated.
   else if(code_seen('T'))
   {
       int index;
@@ -6877,16 +6925,20 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 		if (mmu_enabled)
 		{
 			tmp_extruder = choose_menu_P(_T(MSG_CHOOSE_FILAMENT), _T(MSG_FILAMENT));
+			if ((tmp_extruder == mmu_extruder) && mmu_fil_loaded) {
+				printf_P(PSTR("Duplicit T-code ignored.\n"));
+				return; //dont execute the same T-code twice in a row
+			}
 			st_synchronize();
 			mmu_command(MMU_CMD_T0 + tmp_extruder);
-			manage_response(true, true);
+			manage_response(true, true, MMU_TCODE_MOVE);
 		}
 	  }
 	  else if (*(strchr_pointer + index) == 'c') { //load to from bondtech gears to nozzle (nozzle should be preheated)
 	  	if (mmu_enabled) 
 		{
 			st_synchronize();
-			mmu_command(MMU_CMD_C0);
+			mmu_continue_loading();
 			mmu_extruder = tmp_extruder; //filament change is finished
 			mmu_load_to_nozzle();
 		}
@@ -6911,11 +6963,15 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
 
           if (mmu_enabled)
           {
+              if ((tmp_extruder == mmu_extruder) && mmu_fil_loaded) {
+                  printf_P(PSTR("Duplicit T-code ignored.\n"));
+                  return; //dont execute the same T-code twice in a row
+              }
               mmu_command(MMU_CMD_T0 + tmp_extruder);
 
-              manage_response(true, true);
-              mmu_command(MMU_CMD_C0);
-              mmu_extruder = tmp_extruder; //filament change is finished
+			  manage_response(true, true, MMU_TCODE_MOVE);
+			  mmu_continue_loading();
+			  mmu_extruder = tmp_extruder; //filament change is finished
 
               if (load_to_nozzle)// for single material usage with mmu
               {

+ 2 - 2
Firmware/config.h

@@ -43,8 +43,8 @@
 #define W25X20CL_SPSR          SPI_SPSR(W25X20CL_SPI_RATE)
 
 //LANG - Multi-language support
-#define LANG_MODE              0 // primary language only
-//#define LANG_MODE              1 // sec. language support
+//#define LANG_MODE              0 // primary language only
+#define LANG_MODE              1 // sec. language support
 #define LANG_SIZE_RESERVED     0x2f00 // reserved space for secondary language (12032 bytes)
 
 

+ 6 - 0
Firmware/eeprom.h

@@ -148,6 +148,12 @@
 
 #define EEPROM_FSENS_OQ_MEASS_ENABLED (EEPROM_AUTO_DEPLETE - 1) //bool
 
+#define EEPROM_MMU_FAIL_TOT (EEPROM_FSENS_OQ_MEASS_ENABLED - 2) //uint16_t
+#define EEPROM_MMU_FAIL (EEPROM_MMU_FAIL_TOT - 1) //uint8_t
+
+#define EEPROM_MMU_LOAD_FAIL_TOT (EEPROM_MMU_FAIL - 2) //uint16_t
+#define EEPROM_MMU_LOAD_FAIL (EEPROM_MMU_LOAD_FAIL_TOT - 1) //uint8_t
+
 // !!!!!
 // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!!
 // !!!!!

+ 254 - 35
Firmware/mmu.cpp

@@ -13,6 +13,7 @@
 #include "sound.h"
 #include "printers.h"
 #include <avr/pgmspace.h>
+#include "io_atmega2560.h"
 
 #ifdef TMC2130
 #include "tmc2130.h"
@@ -22,25 +23,31 @@
 
 #define MMU_TODELAY 100
 #define MMU_TIMEOUT 10
-#define MMU_CMD_TIMEOUT 300000ul //5min timeout for mmu commands (except P0)
+#define MMU_CMD_TIMEOUT 45000ul //5min timeout for mmu commands (except P0)
 #define MMU_P0_TIMEOUT 3000ul //timeout for P0 command: 3seconds
+#define MMU_MAX_RESEND_ATTEMPTS 2
 
 #ifdef MMU_HWRESET
 #define MMU_RST_PIN 76
 #endif //MMU_HWRESET
 
 bool mmu_enabled = false;
-
 bool mmu_ready = false;
+bool mmu_fil_loaded = false; //if true: blocks execution of duplicit T-codes
 
 static int8_t mmu_state = 0;
 
 uint8_t mmu_cmd = 0;
 
-uint8_t mmu_extruder = 0;
+//idler ir sensor
+uint8_t mmu_idl_sens = 0;
+bool mmu_idler_sensor_detected = false; 
+bool mmu_loading_flag = false;
+
+uint8_t mmu_extruder = MMU_FILAMENT_UNKNOWN;
 
 //! This variable probably has no meaning and is planed to be removed
-uint8_t tmp_extruder = 0;
+uint8_t tmp_extruder = MMU_FILAMENT_UNKNOWN;
 
 int8_t mmu_finda = -1;
 
@@ -51,6 +58,9 @@ int16_t mmu_buildnr = -1;
 uint32_t mmu_last_request = 0;
 uint32_t mmu_last_response = 0;
 
+uint8_t mmu_last_cmd = 0;
+uint16_t mmu_power_failures = 0;
+
 
 //clear rx buffer
 void mmu_clr_rx_buf(void)
@@ -106,11 +116,31 @@ 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
+}
+
+//returns true if idler IR sensor was detected, otherwise returns false
+bool check_for_idler_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"));
+	}
+	else
+	{
+		  //printf_P(PSTR("Idler IR sensor not detected\n"));
+	}
+	return detected;
 }
 
 //mmu main loop - state machine processing
 void mmu_loop(void)
 {
+	static uint8_t mmu_attempt_nr = 0;
 	int filament = 0;
 //	printf_P(PSTR("MMU loop, state=%d\n"), mmu_state);
 	switch (mmu_state)
@@ -158,9 +188,9 @@ void mmu_loop(void)
 
 			if ((PRINTER_TYPE == PRINTER_MK3) || (PRINTER_TYPE == PRINTER_MK3_SNMM))
 			{
-#ifdef MMU_DEBUG
+#if defined MMU_DEBUG && defined MMU_FINDA_DEBUG
 				puts_P(PSTR("MMU <= 'P0'"));
-#endif //MMU_DEBUG
+#endif //MMU_DEBUG && MMU_FINDA_DEBUG
 				mmu_puts_P(PSTR("P0\n")); //send 'read finda' request
 				mmu_state = -4;
 			}
@@ -178,9 +208,9 @@ void mmu_loop(void)
 	case -5:
 		if (mmu_rx_ok() > 0)
 		{
-#ifdef MMU_DEBUG
+#if defined MMU_DEBUG && defined MMU_FINDA_DEBUG
 			puts_P(PSTR("MMU <= 'P0'"));
-#endif //MMU_DEBUG
+#endif //MMU_DEBUG && MMU_FINDA_DEBUG
 		    mmu_puts_P(PSTR("P0\n")); //send 'read finda' request
 			mmu_state = -4;
 		}
@@ -189,11 +219,13 @@ void mmu_loop(void)
 		if (mmu_rx_ok() > 0)
 		{
 			fscanf_P(uart2io, PSTR("%hhu"), &mmu_finda); //scan finda from buffer
-#ifdef MMU_DEBUG
+#if defined MMU_DEBUG && defined MMU_FINDA_DEBUG 
 			printf_P(PSTR("MMU => '%dok'\n"), mmu_finda);
-#endif //MMU_DEBUG
+#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;
@@ -208,6 +240,8 @@ void mmu_loop(void)
 #endif //MMU_DEBUG
 				mmu_printf_P(PSTR("T%d\n"), filament);
 				mmu_state = 3; // wait for response
+				mmu_fil_loaded = true;
+				if(mmu_idler_sensor_detected) mmu_idl_sens = 1; //if idler sensor detected, use it for T-code
 			}
 			else if ((mmu_cmd >= MMU_CMD_L0) && (mmu_cmd <= MMU_CMD_L4))
 			{
@@ -225,6 +259,7 @@ void mmu_loop(void)
 #endif //MMU_DEBUG
 				mmu_puts_P(PSTR("C0\n")); //send 'continue loading'
 				mmu_state = 3;
+				if(mmu_idler_sensor_detected) mmu_idl_sens = 1; //if idler sensor detected use it for C0 code
 			}
 			else if (mmu_cmd == MMU_CMD_U0)
 			{
@@ -232,6 +267,7 @@ void mmu_loop(void)
 				printf_P(PSTR("MMU <= 'U0'\n"));
 #endif //MMU_DEBUG
 				mmu_puts_P(PSTR("U0\n")); //send 'unload current filament'
+				mmu_fil_loaded = false;
 				mmu_state = 3;
 			}
 			else if ((mmu_cmd >= MMU_CMD_E0) && (mmu_cmd <= MMU_CMD_E4))
@@ -241,6 +277,7 @@ void mmu_loop(void)
 				printf_P(PSTR("MMU <= 'E%d'\n"), filament);
 #endif //MMU_DEBUG
 				mmu_printf_P(PSTR("E%d\n"), filament); //send eject filament
+				mmu_fil_loaded = false;
 				mmu_state = 3; // wait for response
 			}
 			else if (mmu_cmd == MMU_CMD_R0)
@@ -251,13 +288,23 @@ void mmu_loop(void)
 				mmu_puts_P(PSTR("R0\n")); //send recover after eject
 				mmu_state = 3; // wait for response
 			}
+			else if (mmu_cmd == MMU_CMD_S3)
+			{
+#ifdef MMU_DEBUG
+				printf_P(PSTR("MMU <= 'S3'\n"));
+#endif //MMU_DEBUG
+				mmu_puts_P(PSTR("S3\n")); //send power failures request
+				mmu_state = 4; // power failures response
+			}
+			mmu_last_cmd = mmu_cmd;
 			mmu_cmd = 0;
 		}
 		else if ((mmu_last_response + 300) < millis()) //request every 300ms
 		{
-#ifdef MMU_DEBUG
+			if(check_for_idler_sensor()) mmu_idler_sensor_detected = true;
+#if defined MMU_DEBUG && defined MMU_FINDA_DEBUG
 			puts_P(PSTR("MMU <= 'P0'"));
-#endif //MMU_DEBUG
+#endif //MMU_DEBUG && MMU_FINDA_DEBUG
 		    mmu_puts_P(PSTR("P0\n")); //send 'read finda' request
 			mmu_state = 2;
 		}
@@ -266,9 +313,9 @@ void mmu_loop(void)
 		if (mmu_rx_ok() > 0)
 		{
 			fscanf_P(uart2io, PSTR("%hhu"), &mmu_finda); //scan finda from buffer
-#ifdef MMU_DEBUG
+#if defined MMU_DEBUG && MMU_FINDA_DEBUG
 			printf_P(PSTR("MMU => '%dok'\n"), mmu_finda);
-#endif //MMU_DEBUG
+#endif //MMU_DEBUG && MMU_FINDA_DEBUG
 			//printf_P(PSTR("Eact: %d\n"), int(e_active()));
 			if (!mmu_finda && CHECK_FINDA && fsensor_enabled) {
 				fsensor_stop_and_save_print();
@@ -286,19 +333,66 @@ void mmu_loop(void)
 		}
 		return;
 	case 3: //response to mmu commands
+		if (mmu_idler_sensor_detected) {
+			if (mmu_idl_sens)
+			{
+				if (PIN_GET(MMU_IDLER_SENSOR_PIN) == 0 && mmu_loading_flag)
+				{
+#ifdef MMU_DEBUG
+					printf_P(PSTR("MMU <= 'A'\n"));
+#endif //MMU_DEBUG  
+					mmu_puts_P(PSTR("A\n")); //send 'abort' request
+					mmu_idl_sens = 0;
+					//printf_P(PSTR("MMU IDLER_SENSOR = 0 - ABORT\n"));
+				}
+				//else
+					//printf_P(PSTR("MMU IDLER_SENSOR = 1 - WAIT\n"));
+			}
+		}
 		if (mmu_rx_ok() > 0)
 		{
 #ifdef MMU_DEBUG
 			printf_P(PSTR("MMU => 'ok'\n"));
 #endif //MMU_DEBUG
+			mmu_attempt_nr = 0;
+			mmu_last_cmd = 0;
 			mmu_ready = true;
 			mmu_state = 1;
 		}
 		else if ((mmu_last_request + MMU_CMD_TIMEOUT) < millis())
 		{ //resend request after timeout (5 min)
+			if (mmu_last_cmd)
+			{
+				if (mmu_attempt_nr++ < MMU_MAX_RESEND_ATTEMPTS) {
+#ifdef MMU_DEBUG
+					printf_P(PSTR("MMU retry attempt nr. %d\n"), mmu_attempt_nr - 1);
+#endif //MMU_DEBUG
+					mmu_cmd = mmu_last_cmd;
+				}
+				else {
+					mmu_cmd = 0;
+					mmu_last_cmd = 0; //check
+					mmu_attempt_nr = 0;
+				}
+			}
 			mmu_state = 1;
 		}
 		return;
+	case 4:
+		if (mmu_rx_ok() > 0)
+		{
+			fscanf_P(uart2io, PSTR("%d"), &mmu_power_failures); //scan power failures
+#ifdef MMU_DEBUG
+			printf_P(PSTR("MMU => 'ok'\n"));
+#endif //MMU_DEBUG
+			mmu_last_cmd = 0;
+			mmu_ready = true;
+			mmu_state = 1;
+		}
+		else if ((mmu_last_request + MMU_CMD_TIMEOUT) < millis())
+		{ //resend request after timeout (5 min)
+			mmu_state = 1;
+		}
 	}
 }
 
@@ -338,22 +432,85 @@ void mmu_command(uint8_t cmd)
 	mmu_ready = false;
 }
 
-bool mmu_get_response(void)
+void mmu_load_step() {
+		current_position[E_AXIS] = current_position[E_AXIS] + MMU_LOAD_FEEDRATE * 0.1;
+		plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], MMU_LOAD_FEEDRATE, active_extruder);
+		st_synchronize();
+}
+
+bool mmu_get_response(uint8_t move)
 {
-//	printf_P(PSTR("mmu_get_response - begin\n"));
+	mmu_loading_flag = false;
+	if (!mmu_idler_sensor_detected) move = MMU_NO_MOVE;
+
+	printf_P(PSTR("mmu_get_response - begin move:%d\n"), move);
 	KEEPALIVE_STATE(IN_PROCESS);
 	while (mmu_cmd != 0)
 	{
 //		mmu_loop();
 		delay_keep_alive(100);
 	}
+
 	while (!mmu_ready)
 	{
 //		mmu_loop();
-		if (mmu_state != 3)
+
+		if ((mmu_state != 3) && (mmu_last_cmd == 0))
 			break;
-		delay_keep_alive(100);
+
+		//Do load steps only if temperature is higher then min. temp for safe extrusion.
+		//Otherwise "cold extrusion prevented" would be send to serial line periodically
+		if (degHotend(active_extruder) < EXTRUDE_MINTEMP) {
+			disable_e0(); //turn off E-stepper to prevent overheating and alow filament pull-out if necessary
+			delay_keep_alive(100);
+			continue;
+		}
+
+		switch (move) {
+			case MMU_LOAD_MOVE: 
+				mmu_loading_flag = true;
+				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;
+				break;
+			case MMU_UNLOAD_MOVE:
+				if (PIN_GET(MMU_IDLER_SENSOR_PIN) == 0) //filament is still detected by idler sensor, printer helps with unlading 
+				{ 
+					printf_P(PSTR("Unload 1\n"));
+					current_position[E_AXIS] = current_position[E_AXIS] - MMU_LOAD_FEEDRATE * MMU_LOAD_TIME_MS*0.001;
+					plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], MMU_LOAD_FEEDRATE, active_extruder);
+					st_synchronize();
+				}
+				else //filament was unloaded from idler, no additional movements needed 
+				{ 
+					printf_P(PSTR("Unloading finished 1\n"));
+					disable_e0(); //turn off E-stepper to prevent overheating and alow filament pull-out if necessary
+					move = MMU_NO_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 
+				{ 
+					printf_P(PSTR("Unload 2\n"));
+					current_position[E_AXIS] = current_position[E_AXIS] - MMU_LOAD_FEEDRATE * MMU_LOAD_TIME_MS*0.001;
+					plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], MMU_LOAD_FEEDRATE, active_extruder);
+					st_synchronize();
+				}
+				else //delay to allow mmu unit to pull out filament from bondtech gears and then start with infinite loading 
+				{ 
+					printf_P(PSTR("Unloading finished 2\n"));
+					disable_e0(); //turn off E-stepper to prevent overheating and alow filament pull-out if necessary
+					delay_keep_alive(MMU_LOAD_TIME_MS);
+					move = MMU_LOAD_MOVE;
+				}
+				break;
+			case MMU_NO_MOVE:
+			default: 
+				delay_keep_alive(100);
+				break;
+		}
 	}
+	printf_P(PSTR("mmu_get_response() returning: %d\n"), mmu_ready);
 	bool ret = mmu_ready;
 	mmu_ready = false;
 //	printf_P(PSTR("mmu_get_response - end %d\n"), ret?1:0);
@@ -380,7 +537,7 @@ bool mmu_get_response(void)
 }
 
 
-void manage_response(bool move_axes, bool turn_off_nozzle)
+void manage_response(bool move_axes, bool turn_off_nozzle, uint8_t move)
 {
 	bool response = false;
 	mmu_print_saved = false;
@@ -390,11 +547,18 @@ void manage_response(bool move_axes, bool turn_off_nozzle)
 	float x_position_bckp = current_position[X_AXIS];
 	float y_position_bckp = current_position[Y_AXIS];	
 	uint8_t screen = 0; //used for showing multiscreen messages
+
 	while(!response)
 	{
-		  response = mmu_get_response(); //wait for "ok" from mmu
+		  response = mmu_get_response(move); //wait for "ok" from mmu
 		  if (!response) { //no "ok" was received in reserved time frame, user will fix the issue on mmu unit
 			  if (!mmu_print_saved) { //first occurence, we are saving current position, park print head in certain position and disable nozzle heater
+				  
+				  uint8_t mmu_fail = eeprom_read_byte((uint8_t*)EEPROM_MMU_FAIL);
+				  uint16_t mmu_fail_tot = eeprom_read_word((uint16_t*)EEPROM_MMU_FAIL_TOT);
+				  if(mmu_fail < 255) eeprom_update_byte((uint8_t*)EEPROM_MMU_FAIL, mmu_fail + 1);
+				  if(mmu_fail_tot < 65535) eeprom_update_word((uint16_t*)EEPROM_MMU_FAIL_TOT, mmu_fail_tot + 1);
+
 				  if (lcd_update_enabled) {
 					  lcd_update_was_enabled = true;
 					  lcd_update_enable(false);
@@ -424,6 +588,7 @@ void manage_response(bool move_axes, bool turn_off_nozzle)
 					  //set nozzle target temperature to 0
 					  setAllTargetHotends(0);
 				  }
+				  disable_e0(); //turn off E-stepper to prevent overheating and alow filament pull-out if necessary
 			  }
 
 			  //first three lines are used for printing multiscreen message; last line contains measured and target nozzle temperature
@@ -438,19 +603,21 @@ void manage_response(bool move_axes, bool turn_off_nozzle)
 			  }
 
 			  lcd_set_degree();
-			  lcd_set_cursor(0, 4); //line 4
-			  //Print the hotend temperature (9 chars total) and fill rest of the line with space
-			  int chars = lcd_printf_P(_N("%c%3d/%d%c"), LCD_STR_THERMOMETER[0],(int)(degHotend(active_extruder) + 0.5), (int)(degTargetHotend(active_extruder) + 0.5), LCD_STR_DEGREE[0]);
-			  lcd_space(9 - chars);
 
 
 			  //5 seconds delay
-			  for (uint8_t i = 0; i < 50; i++) {
+			  for (uint8_t i = 0; i < 5; i++) {
 				  if (lcd_clicked()) {
 					  setTargetHotend(hotend_temp_bckp, active_extruder);
+					 /// mmu_cmd = mmu_last_cmd;
 					  break;
-				  }
-				  delay_keep_alive(100);
+				  }		  
+
+				  //Print the hotend temperature (9 chars total) and fill rest of the line with space
+				  lcd_set_cursor(0, 4); //line 4
+				  int chars = lcd_printf_P(_N("%c%3d/%d%c"), LCD_STR_THERMOMETER[0],(int)(degHotend(active_extruder) + 0.5), (int)(degTargetHotend(active_extruder) + 0.5), LCD_STR_DEGREE[0]);
+				  lcd_space(9 - chars);
+				  delay_keep_alive(1000);
 			  }
 		  }
 		  else if (mmu_print_saved) {
@@ -507,7 +674,14 @@ 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;
-	current_position[E_AXIS] += 7.2f;
+	if (mmu_idler_sensor_detected)
+	{
+		current_position[E_AXIS] += 3.0f;
+	}
+	else
+	{
+		current_position[E_AXIS] += 7.2f;
+	}
     float feedrate = 562;
 	plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feedrate / 60, active_extruder);
     st_synchronize();
@@ -587,9 +761,10 @@ void mmu_M600_load_filament(bool automatic)
 //		  mmu_printf_P(PSTR("T%d\n"), tmp_extruder);
 		  mmu_command(MMU_CMD_T0 + tmp_extruder);
 
-		  manage_response(false, true);
-		  mmu_command(MMU_CMD_C0);
+		  manage_response(false, true, MMU_LOAD_MOVE);
+		  mmu_continue_loading();
     	  mmu_extruder = tmp_extruder; //filament change is finished
+		  
 		  mmu_load_to_nozzle();
 		  load_filament_final_feed();
 		  st_synchronize();
@@ -791,13 +966,14 @@ void extr_unload()
 		lcd_clear();
 		lcd_set_cursor(0, 1); lcd_puts_P(_T(MSG_UNLOADING_FILAMENT));
 		lcd_print(" ");
-		lcd_print(mmu_extruder + 1);
+		if (mmu_extruder == MMU_FILAMENT_UNKNOWN) lcd_print(" ");
+		else lcd_print(mmu_extruder + 1);
 
 		filament_ramming();
 
 		mmu_command(MMU_CMD_U0);
 		// get response
-		manage_response(false, true);
+		manage_response(false, true, MMU_UNLOAD_MOVE);
 
 		lcd_update_enable(true);
 #else //SNMM
@@ -1093,8 +1269,8 @@ void lcd_mmu_load_to_nozzle(uint8_t filament_nr)
 	lcd_print(" ");
 	lcd_print(tmp_extruder + 1);
 	mmu_command(MMU_CMD_T0 + tmp_extruder);
-	manage_response(true, true);
-	mmu_command(MMU_CMD_C0);
+	manage_response(true, true, MMU_TCODE_MOVE);
+	mmu_continue_loading();
 	mmu_extruder = tmp_extruder; //filament change is finished
 	mmu_load_to_nozzle();
 	load_filament_final_feed();
@@ -1130,7 +1306,7 @@ void mmu_eject_filament(uint8_t filament, bool recover)
                 plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 2500 / 60, active_extruder);
                 st_synchronize();
                 mmu_command(MMU_CMD_E0 + filament);
-                manage_response(false, false);
+                manage_response(false, false, MMU_UNLOAD_MOVE);
                 if (recover)
                 {
                     lcd_show_fullscreen_message_and_wait_P(_i("Please remove filament and then press the knob."));
@@ -1150,3 +1326,46 @@ void mmu_eject_filament(uint8_t filament, bool recover)
 		puts_P(PSTR("Filament nr out of range!"));
 	}
 }
+
+void mmu_continue_loading() 
+{
+
+	if (mmu_idler_sensor_detected) {
+		for (uint8_t i = 0; i < MMU_IDLER_SENSOR_ATTEMPTS_NR; i++) {
+			if (PIN_GET(MMU_IDLER_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) {
+			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);
+			if(mmu_load_fail_tot < 65535) eeprom_update_word((uint16_t*)EEPROM_MMU_LOAD_FAIL_TOT, mmu_load_fail_tot + 1);
+			char cmd[3];
+			//pause print, show error message and then repeat last T-code
+			stop_and_save_print_to_ram(0, 0);
+
+			//lift z
+			current_position[Z_AXIS] += Z_PAUSE_LIFT;
+			if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS;
+			plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 15, active_extruder);
+			st_synchronize();
+
+			//Move XY to side
+			current_position[X_AXIS] = X_PAUSE_POS;
+			current_position[Y_AXIS] = Y_PAUSE_POS;
+			plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 50, active_extruder);
+			st_synchronize();
+			//set nozzle target temperature to 0
+			setAllTargetHotends(0);
+			lcd_setstatuspgm(_i("MMU load failed     "));////MSG_RECOVERING_PRINT c=20 r=1
+			mmu_fil_loaded = false; //so we can retry same T-code again
+		}
+	}
+	else { //mmu_idler_sensor_detected == false
+		mmu_command(MMU_CMD_C0);
+	}
+}

+ 19 - 3
Firmware/mmu.h

@@ -4,16 +4,30 @@
 
 
 extern bool mmu_enabled;
+extern bool mmu_fil_loaded;
 
 extern uint8_t mmu_extruder;
 
 extern uint8_t tmp_extruder;
 
 extern int8_t mmu_finda;
+extern bool mmu_idler_sensor_detected;
+extern bool mmu_loading_flag;
 
 extern int16_t mmu_version;
 extern int16_t mmu_buildnr;
 
+extern uint16_t mmu_power_failures;
+
+#define MMU_FILAMENT_UNKNOWN 255
+
+#define MMU_NO_MOVE 0
+#define MMU_UNLOAD_MOVE 1
+#define MMU_LOAD_MOVE 2
+#define MMU_TCODE_MOVE 3
+
+#define MMU_LOAD_FEEDRATE 19.02f //mm/s
+#define MMU_LOAD_TIME_MS 2000 //should be fine tuned to load time for shortest allowed PTFE tubing and maximum loading speed
 
 #define MMU_CMD_NONE 0
 #define MMU_CMD_T0   0x10
@@ -34,7 +48,7 @@ extern int16_t mmu_buildnr;
 #define MMU_CMD_E3   0x53
 #define MMU_CMD_E4   0x54
 #define MMU_CMD_R0   0x60
-
+#define MMU_CMD_S3	 0x73
 
 extern int mmu_puts_P(const char* str);
 
@@ -42,6 +56,7 @@ extern int mmu_printf_P(const char* format, ...);
 
 extern int8_t mmu_rx_ok(void);
 
+extern bool check_for_idler_sensor();
 
 extern void mmu_init(void);
 
@@ -54,9 +69,9 @@ extern int8_t mmu_set_filament_type(uint8_t extruder, uint8_t filament);
 
 extern void mmu_command(uint8_t cmd);
 
-extern bool mmu_get_response(void);
+extern bool mmu_get_response(uint8_t move = 0);
 
-extern void manage_response(bool move_axes, bool turn_off_nozzle);
+extern void manage_response(bool move_axes, bool turn_off_nozzle, uint8_t move = 0);
 
 extern void mmu_load_to_nozzle();
 
@@ -103,3 +118,4 @@ extern void mmu_eject_fil_1();
 extern void mmu_eject_fil_2();
 extern void mmu_eject_fil_3();
 extern void mmu_eject_fil_4();
+extern void mmu_continue_loading();

+ 1 - 0
Firmware/pins_Einsy_1_0.h

@@ -118,6 +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)
 
 // 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)
 
 // 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)
 
 // 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.

+ 131 - 34
Firmware/ultralcd.cpp

@@ -38,7 +38,7 @@
 #include "mmu.h"
 
 #include "static_assert.h"
-
+#include "io_atmega2560.h"
 
 extern bool fans_check_enabled;
 
@@ -136,6 +136,11 @@ static void lcd_menu_extruder_info();
 static void lcd_menu_xyz_y_min();
 static void lcd_menu_xyz_skew();
 static void lcd_menu_xyz_offset();
+static void lcd_menu_fails_stats_mmu();
+static void lcd_menu_fails_stats_mmu_print();
+static void lcd_menu_fails_stats_mmu_total();
+static void lcd_menu_show_sensors_state();
+
 #if defined(TMC2130) || defined(FILAMENT_SENSOR)
 static void lcd_menu_fails_stats();
 #endif //TMC2130 or FILAMENT_SENSOR
@@ -195,6 +200,9 @@ static void menu_action_sddirectory(const char* filename);
 
 #define ENCODER_FEEDRATE_DEADZONE 10
 
+#define STATE_NA 255
+#define STATE_OFF 0
+#define STATE_ON 1
 
 /*
 #define MENU_ITEM(type, label, args...) do { \
@@ -537,10 +545,15 @@ void lcdui_print_percent_done(void)
 void lcdui_print_extruder(void)
 {
 	int chars = 0;
-	if (mmu_extruder == tmp_extruder)
-		chars = lcd_printf_P(_N(" F%u"), mmu_extruder+1);
+	if (mmu_extruder == tmp_extruder) {
+		if (mmu_extruder == MMU_FILAMENT_UNKNOWN) chars = lcd_printf_P(_N(" F?"));
+		else chars = lcd_printf_P(_N(" F%u"), mmu_extruder + 1);
+	}
 	else
-		chars = lcd_printf_P(_N(" %u>%u"), mmu_extruder+1, tmp_extruder+1);
+	{
+		if (mmu_extruder == MMU_FILAMENT_UNKNOWN) chars = lcd_printf_P(_N(" ?>%u"), tmp_extruder + 1);
+		else chars = lcd_printf_P(_N(" %u>%u"), mmu_extruder + 1, tmp_extruder + 1);
+	}
 	lcd_space(5 - chars);
 }
 
@@ -1914,6 +1927,48 @@ static void lcd_menu_extruder_info()
     menu_back_if_clicked();
 }
 
+static void lcd_menu_fails_stats_mmu()
+{
+	MENU_BEGIN();
+	MENU_ITEM_BACK_P(_T(MSG_MAIN));
+	MENU_ITEM_SUBMENU_P(_i("Last print"), lcd_menu_fails_stats_mmu_print);
+	MENU_ITEM_SUBMENU_P(_i("Total"), lcd_menu_fails_stats_mmu_total);
+	MENU_END();
+}
+
+static void lcd_menu_fails_stats_mmu_print()
+{
+//01234567890123456789
+//Last print failures
+// MMU fails  000
+// MMU load fails  000
+//
+//////////////////////
+	lcd_timeoutToStatus.stop(); //infinite timeout
+    uint8_t fails = eeprom_read_byte((uint8_t*)EEPROM_MMU_FAIL);
+    uint16_t load_fails = eeprom_read_byte((uint8_t*)EEPROM_MMU_LOAD_FAIL);
+//	lcd_printf_P(PSTR(ESC_H(0,0) "Last print failures" ESC_H(1,1) "Power failures  %-3d" ESC_H(1,2) "Filam. runouts  %-3d" ESC_H(1,3) "Crash  X %-3d  Y %-3d"), power, filam, crashX, crashY);
+	lcd_printf_P(PSTR(ESC_H(0,0) "%S" ESC_H(1,1) "%S  %-3d" ESC_H(1,2) "%S  %-3d" ESC_H(1,3)), _i("Last print failures"), _i("MMU fails"), fails, _i("MMU load fails"), load_fails);
+	menu_back_if_clicked_fb();
+}
+
+static void lcd_menu_fails_stats_mmu_total()
+{
+//01234567890123456789
+//Last print failures
+// MMU fails  000
+// MMU load fails  000
+//
+//////////////////////
+	mmu_command(MMU_CMD_S3);
+	lcd_timeoutToStatus.stop(); //infinite timeout
+    uint8_t fails = eeprom_read_byte((uint8_t*)EEPROM_MMU_FAIL_TOT);
+    uint16_t load_fails = eeprom_read_byte((uint8_t*)EEPROM_MMU_LOAD_FAIL_TOT);
+//	lcd_printf_P(PSTR(ESC_H(0,0) "Last print failures" ESC_H(1,1) "Power failures  %-3d" ESC_H(1,2) "Filam. runouts  %-3d" ESC_H(1,3) "Crash  X %-3d  Y %-3d"), power, filam, crashX, crashY);
+	lcd_printf_P(PSTR(ESC_H(0,0) "%S" ESC_H(1,1) "%S  %-3d" ESC_H(1,2) "%S  %-3d" ESC_H(1,3) "%S %-3d"), _i("Total failures"), _i("MMU fails"), fails, _i("MMU load fails"), load_fails, _i("MMU power fails"), mmu_power_failures);
+	menu_back_if_clicked_fb();
+}
+
 #if defined(TMC2130) && defined(FILAMENT_SENSOR)
 static void lcd_menu_fails_stats_total()
 {
@@ -1950,6 +2005,7 @@ static void lcd_menu_fails_stats_print()
 	lcd_printf_P(PSTR(ESC_H(0,0) "%S" ESC_H(1,1) "%S  %-3d" ESC_H(1,2) "%S  %-3d" ESC_H(1,3) "%S  X %-3d  Y %-3d"), _i("Last print failures"), _i("Power failures"), power, _i("Filam. runouts"), filam, _i("Crash"), crashX, crashY);
 	menu_back_if_clicked_fb();
 }
+
 /**
  * @brief Open fail statistics menu
  *
@@ -1965,6 +2021,7 @@ static void lcd_menu_fails_stats()
 	MENU_ITEM_SUBMENU_P(_i("Total"), lcd_menu_fails_stats_total);
 	MENU_END();
 }
+
 #elif defined(FILAMENT_SENSOR)
 /**
  * @brief Print last print and total filament run outs
@@ -2180,16 +2237,17 @@ static void lcd_support_menu()
   #ifndef MK1BP
   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=15 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
 
 #ifdef TMC2130
-  MENU_ITEM_SUBMENU_P(_i("Belt status"), lcd_menu_belt_status);////MSG_MENU_BELT_STATUS c=15 r=1
+  MENU_ITEM_SUBMENU_P(_i("Belt status"), lcd_menu_belt_status);////MSG_MENU_BELT_STATUS c=18 r=1
 #endif //TMC2130
     
-  MENU_ITEM_SUBMENU_P(_i("Temperatures"), lcd_menu_temperatures);////MSG_MENU_TEMPERATURES c=15 r=1
+  MENU_ITEM_SUBMENU_P(_i("Temperatures"), lcd_menu_temperatures);////MSG_MENU_TEMPERATURES c=18 r=1
 
 #if defined (VOLT_BED_PIN) || defined (VOLT_PWR_PIN)
-  MENU_ITEM_SUBMENU_P(_i("Voltages"), lcd_menu_voltages);////MSG_MENU_VOLTAGES c=15 r=1
+  MENU_ITEM_SUBMENU_P(_i("Voltages"), lcd_menu_voltages);////MSG_MENU_VOLTAGES c=18 r=1
 #endif //defined VOLT_BED_PIN || defined VOLT_PWR_PIN
 
 #ifdef DEBUG_BUILD
@@ -2351,7 +2409,7 @@ void lcd_alright() {
 
 
   enc_dif = lcd_encoder_diff;
-
+  lcd_consume_click();
   while (lcd_change_fil_state == 0) {
 
     manage_heater();
@@ -3239,6 +3297,7 @@ void lcd_show_fullscreen_message_and_wait_P(const char *msg)
     const char *msg_next = lcd_display_message_fullscreen_P(msg);
     bool multi_screen = msg_next != NULL;
 	lcd_set_custom_characters_nextpage();
+	lcd_consume_click();
 	KEEPALIVE_STATE(PAUSED_FOR_USER);
 	// Until confirmed by a button click.
 	for (;;) {
@@ -3283,7 +3342,7 @@ bool lcd_wait_for_click_delay(uint16_t nDelay)
 {
 bool bDelayed;
 long nTime0 = millis()/1000;
-
+	lcd_consume_click();
 	KEEPALIVE_STATE(PAUSED_FOR_USER);
     for (;;) {
         manage_heater();
@@ -3332,6 +3391,7 @@ int8_t lcd_show_multiscreen_message_two_choices_and_wait_P(const char *msg, bool
 	// Wait for user confirmation or a timeout.
 	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) {
@@ -3421,6 +3481,7 @@ int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow
 	// Wait for user confirmation or a timeout.
 	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)
@@ -3555,6 +3616,7 @@ static void menu_show_end_stops() {
 void lcd_diag_show_end_stops()
 {
     lcd_clear();
+	lcd_consume_click();
     for (;;) {
         manage_heater();
         manage_inactivity(true);
@@ -3567,28 +3629,60 @@ void lcd_diag_show_end_stops()
     lcd_return_to_status();
 }
 
-#ifdef TMC2130
-static void lcd_show_pinda_state()
+static void lcd_print_state(uint8_t state)
 {
-lcd_set_cursor(0, 0);
-lcd_puts_P((PSTR("P.I.N.D.A. state")));
-lcd_set_cursor(0, 2);
-lcd_puts_P(READ(Z_MIN_PIN)?(PSTR("Z1 (LED off)")):(PSTR("Z0 (LED on) "))); // !!! both strings must have same length (due to dynamic refreshing)
+	switch (state) {
+		case STATE_ON:
+			lcd_puts_P(_i("On "));
+		break;
+		case STATE_OFF:
+			lcd_puts_P(_i("Off"));
+		break;
+		default: 
+			lcd_puts_P(_i("N/A"));
+		break;
+	}
 }
 
-static void menu_show_pinda_state()
+static void lcd_show_sensors_state()
 {
-lcd_timeoutToStatus.stop();
-lcd_show_pinda_state();
-if(LCD_CLICKED)
-     {
-     lcd_timeoutToStatus.start();
-     menu_back();
-     }
-}
-#endif // defined TMC2130
+	//0: N/A; 1: OFF; 2: ON
+	uint8_t chars = 0;
+	uint8_t pinda_state = STATE_NA;
+	uint8_t finda_state = STATE_NA;
+	uint8_t idler_state = STATE_NA;
 
+	pinda_state = READ(Z_MIN_PIN);
+	if (mmu_enabled) {
+		finda_state = mmu_finda;
+	}
+	if (mmu_idler_sensor_detected) {
+		idler_state = !PIN_GET(MMU_IDLER_SENSOR_PIN);
+	}
+	lcd_puts_at_P(0, 0, _i("Sensor state"));
+	lcd_puts_at_P(1, 1, _i("PINDA:"));
+	lcd_set_cursor(LCD_WIDTH - 4, 1);
+	lcd_print_state(pinda_state);
+	
+	lcd_puts_at_P(1, 2, _i("FINDA:"));
+	lcd_set_cursor(LCD_WIDTH - 4, 2);
+	lcd_print_state(finda_state);
+	
+	lcd_puts_at_P(1, 3, _i("IR:"));
+	lcd_set_cursor(LCD_WIDTH - 4, 3);
+	lcd_print_state(idler_state);
+}
 
+static void lcd_menu_show_sensors_state()
+{
+	lcd_timeoutToStatus.stop();
+	lcd_show_sensors_state();
+	if(LCD_CLICKED)
+	{
+		lcd_timeoutToStatus.start();
+		menu_back();
+	}
+}
 
 void prusa_statistics(int _message, uint8_t _fil_nr) {
 #ifdef DEBUG_DISABLE_PRUSA_STATISTICS
@@ -4313,6 +4407,7 @@ void lcd_v2_calibration()
 		}
 		else {
 			lcd_display_message_fullscreen_P(_i("Please load PLA filament first."));////MSG_PLEASE_LOAD_PLA c=20 r=4
+			lcd_consume_click();
 			for (int i = 0; i < 20; i++) { //wait max. 2s
 				delay_keep_alive(100);
 				if (lcd_clicked()) {
@@ -4944,9 +5039,7 @@ static void lcd_calibration_menu()
 
     MENU_ITEM_SUBMENU_P(_i("Bed level correct"), lcd_adjust_bed);////MSG_BED_CORRECTION_MENU c=0 r=0
 	MENU_ITEM_SUBMENU_P(_i("PID calibration"), pid_extruder);////MSG_PID_EXTRUDER c=17 r=1
-#ifdef TMC2130
-    MENU_ITEM_SUBMENU_P(_i("Show pinda state"), menu_show_pinda_state);
-#else
+#ifndef TMC2130
     MENU_ITEM_SUBMENU_P(_i("Show end stops"), menu_show_end_stops);////MSG_SHOW_END_STOPS c=17 r=1
 #endif
 #ifndef MK1BP
@@ -4979,7 +5072,7 @@ void bowden_menu() {
 
 	}
 	enc_dif = lcd_encoder_diff;
-
+	lcd_consume_click();
 	while (1) {
 
 		manage_heater();
@@ -5086,6 +5179,7 @@ static char snmm_stop_print_menu() { //menu for choosing which filaments will be
 	char cursor_pos = 1;
 	int enc_dif = 0;
 	KEEPALIVE_STATE(PAUSED_FOR_USER);
+	lcd_consume_click();
 	while (1) {
 		manage_heater();
 		manage_inactivity(true);
@@ -5241,7 +5335,7 @@ char reset_menu() {
 	lcd_clear();
 	lcd_set_cursor(0, 0);
 	lcd_print(">");
-
+	lcd_consume_click();
 	while (1) {		
 
 		for (int i = 0; i < 4; i++) {
@@ -5517,7 +5611,7 @@ unsigned char lcd_choose_color() {
 	lcd_print(">");
 
 	active_rows = items_no < 3 ? items_no : 3;
-
+	lcd_consume_click();
 	while (1) {
 		lcd_puts_at_P(0, 0, PSTR("Choose color:"));
 		for (int i = 0; i < active_rows; i++) {
@@ -5852,7 +5946,9 @@ static void lcd_main_menu()
 #if defined(TMC2130) || defined(FILAMENT_SENSOR)
   MENU_ITEM_SUBMENU_P(_i("Fail stats"), lcd_menu_fails_stats);
 #endif
-
+  if (mmu_enabled) {
+	  MENU_ITEM_SUBMENU_P(_i("Fail stats MMU"), lcd_menu_fails_stats_mmu);
+  }
   MENU_ITEM_SUBMENU_P(_i("Support"), lcd_support_menu);////MSG_SUPPORT c=0 r=0
 #ifdef LCD_TEST
     MENU_ITEM_SUBMENU_P(_i("W25x20CL init"), lcd_test_menu);////MSG_SUPPORT c=0 r=0
@@ -6052,6 +6148,7 @@ static void lcd_sd_updir()
 
 void lcd_print_stop()
 {
+	saved_printing = false;
 	cancel_heatup = true;
 #ifdef MESH_BED_LEVELING
 	mbl.active = false;
@@ -6085,7 +6182,7 @@ void lcd_print_stop()
 
 void lcd_sdcard_stop()
 {
-	
+
 	lcd_set_cursor(0, 0);
 	lcd_puts_P(_T(MSG_STOP_PRINT));
 	lcd_set_cursor(2, 2);

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

@@ -432,4 +432,6 @@ THERMISTORS SETTINGS
 //#define SUPPORT_VERBOSITY
 #endif
 
+#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 - 0
Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h

@@ -432,4 +432,6 @@ THERMISTORS SETTINGS
 //#define SUPPORT_VERBOSITY
 #endif
 
+#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 - 0
Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h

@@ -487,4 +487,6 @@
 #define MMU_REQUIRED_FW_BUILDNR 132
 //#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 - 0
Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h

@@ -488,4 +488,6 @@
 #define MMU_REQUIRED_FW_BUILDNR 132
 //#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

+ 3 - 1
Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h

@@ -614,6 +614,8 @@
 
 #define MMU_REQUIRED_FW_BUILDNR 83
 #define MMU_HWRESET
-//#define MMU_DEBUG //print communication between MMU2 and printer on serial
+#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

+ 21 - 9
README.md

@@ -1,15 +1,24 @@
 # Table of contents
 
 <!--ts-->
-   * [Development environment preparation](#1-development-environment-preparation)
-   * [Source code compilation](#2-source-code-compilation)
+   * [Linux build](#linux)
+   * [Windows build](#windows)
    * [Automated tests](#3-automated-tests)
    * [Documentation](#4-documentation)
 <!--te-->
 
-# 1. Development environment preparation
 
-   1. install `"Arduino Software IDE"` for your preferred operating system  
+# Build
+## Linux
+Run shell script build.sh to build for MK3 and flash with Sli3er.  
+If you have different printel model, follow step [2.b](#2b) from Windows build first.  
+If you wish to flash from Arduino, follow step [2.c](#2c) from Windows build first.  
+
+The script downloads Arduino with our modifications and Rambo board support installed, unpacks it into folder PF-build-env-\<version\> on the same level, as your Prusa-Firmware folder is located, builds firmware for MK3 using that Arduino in Prusa-Firmware-build folder on the same level as Prusa-Firmware, runs secondary language support scripts. Firmware with secondary language support is generated in lang subfolder. Use firmware.hex for MK3 variant. Use firmware_\<lang\>.hex for other printers. Don't forget to follow step [2.b](#2b) first for non-MK3 printers.
+## Windows
+### 1. Development environment preparation
+
+   a. install `"Arduino Software IDE"` for your preferred operating system  
 `https://www.arduino.cc -> Software->Downloads`  
 it is recommended to use older version `"1.6.9"`, as it is used on out build server to produce official builds.  
 _note: in the case of persistent compilation problems, check the version of the currently used C/C++ compiler (GCC) - should be `4.8.1`; version can be verified by entering the command  
@@ -17,7 +26,7 @@ _note: in the case of persistent compilation problems, check the version of the
 if you are not sure where the file is placed (depends on how `"Arduino Software IDE"` was installed), you can use the search feature within the file system_  
 _note: name collision for `"LiquidCrystal"` library known from previous versions is now obsolete (so there is no need to delete or rename original file/-s)_
 
-   2. add (`UltiMachine`) `RAMBo` board into the list of Arduino target boards  
+   b. add (`UltiMachine`) `RAMBo` board into the list of Arduino target boards  
 `File->Preferences->Settings`  
 into text field `"Additional Boards Manager URLs"`  
 type location  
@@ -34,16 +43,19 @@ _note: select this item for any variant of board used in printers `'Prusa i3 MKx
 'clicking' the item will display the installation button; select choice `"1.0.1"` from the list(last known version as of the date of issue of this document)  
 _(after installation, the item is labeled as `"INSTALLED"` and can then be used for target board selection)_  
 
-   3. modify platform.txt to enable float printf support:  
+   c. modify platform.txt to enable float printf support:  
 add "-Wl,-u,vfprintf -lprintf_flt -lm" to "compiler.c.elf.flags=" before existing flag "-Wl,--gc-sections"  
 example:  
 `"compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections"`
 
-# 2. Source code compilation
+### 2. Source code compilation
 
-place the source codes corresponding to your printer model obtained from the repository into the selected directory on your disk  
+a. place the source codes corresponding to your printer model obtained from the repository into the selected directory on your disk  
 `https://github.com/prusa3d/Prusa-Firmware/`  
-in the subdirectory `"Firmware/variants/"` select the configuration file (`.h`) corresponding to your printer model, make copy named `"Configuration_prusa.h"` (or make simple renaming) and copy them into `"Firmware/"` directory  
+
+b.<a name="2b"></a> In the subdirectory `"Firmware/variants/"` select the configuration file (`.h`) corresponding to your printer model, make copy named `"Configuration_prusa.h"` (or make simple renaming) and copy it into `"Firmware/"` directory.  
+
+c.<a name="2c"></a> In file `"Firmware/config.h"` set LANG_MODE to 0.
 
 run `"Arduino IDE"`; select the file `"Firmware.ino"` from the subdirectory `"Firmware/"` at the location, where you placed the source codes  
 `File->Open`  

+ 40 - 0
build.sh

@@ -0,0 +1,40 @@
+#!/bin/bash 
+BUILD_ENV="1.0.1"
+SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
+
+if [ ! -d "build-env" ]; then
+    mkdir build-env || exit 1
+fi
+cd build-env || exit 2
+
+if [ ! -f "PF-build-env-Linux64-$BUILD_ENV.zip" ]; then
+    wget https://github.com/mkbel/PF-build-env/releases/download/$BUILD_ENV/PF-build-env-Linux64-$BUILD_ENV.zip || exit 3
+fi
+
+if [ ! -d "../../PF-build-env-$BUILD_ENV" ]; then
+    unzip PF-build-env-Linux64-$BUILD_ENV.zip -d ../../PF-build-env-$BUILD_ENV || exit 4
+fi
+
+cd ../../PF-build-env-$BUILD_ENV || exit 5
+BUILD_ENV_PATH="$( pwd -P )"
+
+cd ..
+
+if [ ! -d "Prusa-Firmware-build" ]; then
+    mkdir Prusa-Firmware-build  || exit 6
+fi
+
+cd Prusa-Firmware-build || exit 7
+BUILD_PATH="$( pwd -P )"
+
+if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then
+    cp $SCRIPT_PATH/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 8
+fi
+
+$BUILD_ENV_PATH/arduino $SCRIPT_PATH/Firmware/Firmware.ino --verify --board rambo:avr:rambo --pref build.path=$BUILD_PATH || exit 9
+
+export ARDUINO=$BUILD_ENV_PATH
+
+cd $SCRIPT_PATH/lang
+./lang-build.sh || exit 10
+./fw-build.sh || exit 11

+ 7 - 5
lang/config.sh

@@ -5,17 +5,19 @@
 #  This file is 'included' in all scripts.
 #
 # Arduino main folder:
-export ARDUINO=C:/arduino-1.8.5
+if [ -z "$ARDUINO" ]; then
+    export ARDUINO=C:/arduino-1.8.5
+fi
 #
 # Arduino builder:
-export BUILDER=$ARDUINO/arduino_debug.exe
+export BUILDER=$ARDUINO/arduino-builder
 #
 # AVR gcc tools:
-export OBJCOPY=$ARDUINO/hardware/tools/avr/bin/avr-objcopy.exe
-export OBJDUMP=$ARDUINO/hardware/tools/avr/bin/avr-objdump.exe
+export OBJCOPY=$ARDUINO/hardware/tools/avr/bin/avr-objcopy
+export OBJDUMP=$ARDUINO/hardware/tools/avr/bin/avr-objdump
 #
 # Output folder:
-export OUTDIR="../../output"
+export OUTDIR="../../Prusa-Firmware-build"
 #
 # Objects folder:
 export OBJDIR="$OUTDIR/sketch"

+ 0 - 0
lang/fw-build.sh


+ 0 - 0
lang/lang-build.sh


+ 339 - 424
lang/po/Firmware.pot

@@ -7,97 +7,82 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: en\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 9. lis 2018 14:29:32\n"
-"PO-Revision-Date: pá 9. lis 2018 14:29:32\n"
+"POT-Creation-Date: pá 30. lis 2018 18:45:02\n"
+"PO-Revision-Date: pá 30. lis 2018 18:45:02\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "Last-Translator: \n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-# MSG_PLANNER_BUFFER_BYTES
-#: Marlin_main.cpp:1184
-msgid "  PlannerBufferBytes: "
-msgstr ""
-
-# MSG_ERR_COLD_EXTRUDE_STOP
-#: planner.cpp:761
-msgid " cold extrusion prevented"
-msgstr ""
-
-# MSG_FREE_MEMORY
-#: Marlin_main.cpp:1182
-msgid " Free Memory: "
-msgstr ""
-
-# MSG_CONFIGURATION_VER
-#: Marlin_main.cpp:1172
-msgid " Last Updated: "
-msgstr ""
-
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
-#: messages.c:44
+#: messages.c:39
 msgid " of 4"
 msgstr ""
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14
-#: messages.c:61
+#: messages.c:56
 msgid " of 9"
 msgstr ""
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2702
 msgid "[0;0] point offset"
 msgstr ""
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:3968
 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:3979
+#: ultralcd.cpp:3980
 msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
 msgstr ""
 
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:2831
 msgid "Adjusting Z"
 msgstr ""
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7074
 msgid "All correct      "
 msgstr ""
 
 # MSG_WIZARD_DONE c=20 r=8
-#: messages.c:104
+#: messages.c:95
 msgid "All is done. Happy printing!"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2026
+msgid "Ambient"
+msgstr ""
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2245
 msgid "and press the knob"
 msgstr ""
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3120
 msgid "Are left and right Z~carriages all up?"
 msgstr ""
 
 # MSG_AUTO_DEPLETE_ON c=17 r=1
-#: ultralcd.cpp:4706
-msgid "Auto deplete [on]"
+#: ultralcd.cpp:4707
+msgid "SpoolJoin    [on]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4702
-msgid "Auto deplete[N/A]"
+#: ultralcd.cpp:4703
+msgid "SpoolJoin   [N/A]"
 msgstr ""
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4710
-msgid "Auto deplete[off]"
+#: ultralcd.cpp:4711
+msgid "SpoolJoin   [off]"
 msgstr ""
 
 # MSG_AUTO_HOME
@@ -106,32 +91,32 @@ msgid "Auto home"
 msgstr ""
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5836
 msgid "AutoLoad filament"
 msgstr ""
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:3995
 msgid "Autoloading filament available only when filament sensor is turned on..."
 msgstr ""
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
-#: ultralcd.cpp:2438
+#: ultralcd.cpp:2439
 msgid "Autoloading filament is active, just press the knob and insert filament..."
 msgstr ""
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6845
+#: ultralcd.cpp:6847
 msgid "Axis length"
 msgstr ""
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:6849
 msgid "Axis"
 msgstr ""
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:6791
 msgid "Bed / Heater"
 msgstr ""
 
@@ -146,7 +131,7 @@ msgid "Bed Heating"
 msgstr ""
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:4945
 msgid "Bed level correct"
 msgstr ""
 
@@ -156,12 +141,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:4467
+#: Marlin_main.cpp:4466
 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:4471
+#: Marlin_main.cpp:4470
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr ""
 
@@ -171,32 +156,32 @@ msgid "Bed"
 msgstr ""
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2052
 msgid "Belt status"
 msgstr ""
 
 # MSG_RECOVER_PRINT c=20 r=2
-#: messages.c:74
+#: messages.c:67
 msgid "Blackout occurred. Recover print?"
 msgstr ""
 
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:4934
 msgid "Calibrate XYZ"
 msgstr ""
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr ""
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4176
 msgid "Calibrate"
 msgstr ""
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr ""
 
@@ -206,7 +191,7 @@ msgid "Calibrating Z"
 msgstr ""
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
 msgstr ""
 
@@ -216,27 +201,22 @@ msgid "Calibration done"
 msgstr ""
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Cancel"
 msgstr ""
 
-# MSG_SD_CANT_ENTER_SUBDIR
-#: cardreader.cpp:662
-msgid "Cannot enter subdir: "
-msgstr ""
-
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#: ultralcd.cpp:7425
 msgid "Card inserted"
 msgstr ""
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7431
 msgid "Card removed"
 msgstr ""
 
@@ -251,8 +231,8 @@ msgid "Cooldown"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4108
-msgid "Copy selected language from XFLASH?"
+#: ultralcd.cpp:4109
+msgid "Copy selected language?"
 msgstr ""
 
 # MSG_CRASHDETECT_ON
@@ -276,22 +256,27 @@ msgid "Crash detected."
 msgstr ""
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:603
 msgid "Crash detected. Resume print?"
 msgstr ""
 
+# 
+#: ultralcd.cpp:1932
+msgid "Crash"
+msgstr ""
+
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5085
 msgid "Current"
 msgstr ""
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2152
 msgid "Date:"
 msgstr ""
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:4841
 msgid "Disable steppers"
 msgstr ""
 
@@ -301,197 +286,192 @@ 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:4575
+#: ultralcd.cpp:4576
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
 msgstr ""
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4636
+#: ultralcd.cpp:4637
 msgid "E-correct"
 msgstr ""
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:5825
 msgid "Eject filament"
 msgstr ""
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5352
 msgid "Eject filament 1"
 msgstr ""
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5353
 msgid "Eject filament 2"
 msgstr ""
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5354
 msgid "Eject filament 3"
 msgstr ""
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5355
 msgid "Eject filament 4"
 msgstr ""
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5356
 msgid "Eject filament 5"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Eject"
 msgstr ""
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1128
 msgid "Ejecting filament"
 msgstr ""
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:6815
 msgid "Endstop not hit"
 msgstr ""
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6809
 msgid "Endstop"
 msgstr ""
 
-# MSG_ENDSTOPS_HIT
-#: messages.c:30
-msgid "endstops hit: "
-msgstr ""
-
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:6797
 msgid "Endstops"
 msgstr ""
 
-# MSG_Enqueing
-#: 
-msgid "enqueing \x22"
-msgstr ""
-
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:5871
 msgid "Error - static memory has been overwritten"
 msgstr ""
 
-# MSG_SD_ERR_WRITE_TO_FILE
-#: messages.c:78
-msgid "error writing to file"
-msgstr ""
-
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4008
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr ""
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr ""
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:984
 msgid "External SPI flash W25X20CL not responding."
 msgstr ""
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5382
 msgid "Extruder 1"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5383
 msgid "Extruder 2"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5384
 msgid "Extruder 3"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5385
 msgid "Extruder 4"
 msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7083
 msgid "Extruder fan:"
 msgstr ""
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2183
 msgid "Extruder info"
 msgstr ""
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr ""
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4675
 msgid "F. autoload  [on]"
 msgstr ""
 
 # MSG_FSENS_AUTOLOAD_NA c=17 r=1
-#: messages.c:48
+#: messages.c:43
 msgid "F. autoload [N/A]"
 msgstr ""
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4676
+#: ultralcd.cpp:4677
 msgid "F. autoload [off]"
 msgstr ""
 
+# 
+#: ultralcd.cpp:5853
+msgid "Fail stats"
+msgstr ""
+
 # MSG_FAN_SPEED c=14
-#: messages.c:36
+#: messages.c:31
 msgid "Fan speed"
 msgstr ""
 
 # MSG_SELFTEST_FAN c=20
-#: messages.c:83
+#: messages.c:74
 msgid "Fan test"
 msgstr ""
 
 # MSG_FANS_CHECK_ON c=17 r=1
-#: ultralcd.cpp:4847
+#: ultralcd.cpp:4848
 msgid "Fans check   [on]"
 msgstr ""
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:4850
 msgid "Fans check  [off]"
 msgstr ""
 
 # MSG_FSENSOR_ON
-#: messages.c:50
+#: messages.c:45
 msgid "Fil. sensor  [on]"
 msgstr ""
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3105
+#: Marlin_main.cpp:3104
 msgid "Fil. sensor response is poor, disable it?"
 msgstr ""
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4655
 msgid "Fil. sensor [N/A]"
 msgstr ""
 
 # MSG_FSENSOR_OFF
-#: messages.c:49
+#: messages.c:44
 msgid "Fil. sensor [off]"
 msgstr ""
 
+# 
+#: ultralcd.cpp:1932
+msgid "Filam. runouts"
+msgstr ""
+
 # MSG_FILAMENT_CLEAN c=20 r=2
-#: messages.c:37
+#: messages.c:32
 msgid "Filament extruding & with correct color?"
 msgstr ""
 
@@ -501,117 +481,117 @@ msgid "Filament not loaded"
 msgstr ""
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6863
 msgid "Filament sensor"
 msgstr ""
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7092
 msgid "Filament sensor:"
 msgstr ""
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2513
 msgid "Filament used"
 msgstr ""
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2515
 msgid "Print time"
 msgstr ""
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7209
 msgid "File incomplete. Continue anyway?"
 msgstr ""
 
 # MSG_FINISHING_MOVEMENTS c=20 r=1
-#: messages.c:45
+#: messages.c:40
 msgid "Finishing movements"
 msgstr ""
 
 # MSG_V2_CALIBRATION c=17 r=1
-#: ultralcd.cpp:4924
+#: ultralcd.cpp:4925
 msgid "First layer cal."
 msgstr ""
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4488
 msgid "First, I will run the selftest to check most common assembly problems."
 msgstr ""
 
 # 
-#: mmu.cpp:423
+#: mmu.cpp:436
 msgid "Fix the issue and then press button on MMU unit."
 msgstr ""
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:5944
 msgid "Flow"
 msgstr ""
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2145
 msgid "forum.prusa3d.com"
 msgstr ""
 
 # MSG_SELFTEST_COOLING_FAN c=20
-#: messages.c:80
+#: messages.c:71
 msgid "Front print fan?"
 msgstr ""
 
 # MSG_BED_CORRECTION_FRONT c=14 r=1
-#: ultralcd.cpp:2890
+#: ultralcd.cpp:2891
 msgid "Front side[um]"
 msgstr ""
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6855
 msgid "Front/left fans"
 msgstr ""
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:6785
 msgid "Heater/Thermistor"
 msgstr ""
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7400
 msgid "Heating disabled by safety timer."
 msgstr ""
 
 # MSG_HEATING_COMPLETE c=20
-#: messages.c:52
+#: messages.c:47
 msgid "Heating done."
 msgstr ""
 
 # MSG_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
 msgstr ""
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4467
 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:2142
+#: ultralcd.cpp:2146
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:5832
 msgid "Change extruder"
 msgstr ""
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr ""
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2256
 msgid "Change success!"
 msgstr ""
 
@@ -621,72 +601,67 @@ msgid "Changed correctly?"
 msgstr ""
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
 msgstr ""
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7065
 msgid "Checking endstops"
 msgstr ""
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7066
 msgid "Checking hotend  "
 msgstr ""
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
-#: messages.c:87
+#: messages.c:78
 msgid "Checking sensors "
 msgstr ""
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7067
 msgid "Checking X axis  "
 msgstr ""
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7068
 msgid "Checking Y axis  "
 msgstr ""
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7069
 msgid "Checking Z axis  "
 msgstr ""
 
-# MSG_ERR_CHECKSUM_MISMATCH
-#: cmdqueue.cpp:444
-msgid "checksum mismatch, Last Line: "
-msgstr ""
-
 # MSG_CHOOSE_EXTRUDER c=20 r=1
-#: messages.c:54
+#: messages.c:49
 msgid "Choose extruder:"
 msgstr ""
 
 # MSG_CHOOSE_FILAMENT c=20 r=1
-#: messages.c:55
+#: messages.c:50
 msgid "Choose filament:"
 msgstr ""
 
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
 msgstr ""
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4497
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
 msgstr ""
 
 # MSG_WIZARD_Z_CAL c=20 r=8
-#: ultralcd.cpp:4504
+#: ultralcd.cpp:4505
 msgid "I will run z calibration now."
 msgstr ""
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4570
 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,57 +671,57 @@ msgid "Improving bed calibration point"
 msgstr ""
 
 # MSG_WATCH
-#: messages.c:102
+#: messages.c:93
 msgid "Info screen"
 msgstr ""
 
 # MSG_FILAMENT_LOADING_T0 c=20 r=4
-#: messages.c:38
+#: messages.c:33
 msgid "Insert filament into extruder 1. Click when done."
 msgstr ""
 
 # MSG_FILAMENT_LOADING_T1 c=20 r=4
-#: messages.c:39
+#: messages.c:34
 msgid "Insert filament into extruder 2. Click when done."
 msgstr ""
 
 # MSG_FILAMENT_LOADING_T2 c=20 r=4
-#: messages.c:40
+#: messages.c:35
 msgid "Insert filament into extruder 3. Click when done."
 msgstr ""
 
 # MSG_FILAMENT_LOADING_T3 c=20 r=4
-#: messages.c:41
+#: messages.c:36
 msgid "Insert filament into extruder 4. Click when done."
 msgstr ""
 
 # 
-#: ultralcd.cpp:4529
+#: ultralcd.cpp:4530
 msgid "Is filament 1 loaded?"
 msgstr ""
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2242
 msgid "Insert filament"
 msgstr ""
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4533
 msgid "Is filament loaded?"
 msgstr ""
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4564
 msgid "Is it PLA filament?"
 msgstr ""
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4310
 msgid "Is PLA filament loaded?"
 msgstr ""
 
 # MSG_STEEL_SHEET_CHECK c=20 r=2
-#: messages.c:95
+#: messages.c:86
 msgid "Is steel sheet on heatbed?"
 msgstr ""
 
@@ -755,28 +730,33 @@ msgstr ""
 msgid "Iteration "
 msgstr ""
 
-# MSG_KILLED
-#: Marlin_main.cpp:7552
-msgid "KILLED. "
+# 
+#: ultralcd.cpp:1949
+msgid "Last print failures"
+msgstr ""
+
+# 
+#: ultralcd.cpp:1964
+msgid "Last print"
 msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:2649
 msgid "Left"
 msgstr ""
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:2889
 msgid "Left side [um]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:4855
 msgid "Lin. correction"
 msgstr ""
 
@@ -786,117 +766,87 @@ msgid "Live adjust Z"
 msgstr ""
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr ""
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2281
 msgid "Loading color"
 msgstr ""
 
 # MSG_LOADING_FILAMENT c=20
-#: messages.c:57
+#: messages.c:52
 msgid "Loading filament"
 msgstr ""
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6837
+#: ultralcd.cpp:6839
 msgid "Loose pulley"
 msgstr ""
 
-# MSG_M104_INVALID_EXTRUDER
-#: Marlin_main.cpp:7675
-msgid "M104 Invalid extruder "
-msgstr ""
-
-# MSG_M105_INVALID_EXTRUDER
-#: Marlin_main.cpp:7678
-msgid "M105 Invalid extruder "
-msgstr ""
-
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:5824
 msgid "Load to nozzle"
 msgstr ""
 
-# MSG_M109_INVALID_EXTRUDER
-#: Marlin_main.cpp:7681
-msgid "M109 Invalid extruder "
-msgstr ""
-
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr ""
 
-# MSG_M200_INVALID_EXTRUDER
-#: Marlin_main.cpp:5857
-msgid "M200 Invalid extruder "
-msgstr ""
-
-# MSG_M218_INVALID_EXTRUDER
-#: Marlin_main.cpp:7684
-msgid "M218 Invalid extruder "
-msgstr ""
-
-# MSG_M221_INVALID_EXTRUDER
-#: Marlin_main.cpp:7687
-msgid "M221 Invalid extruder "
-msgstr ""
-
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr ""
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60
-#: messages.c:60
+#: messages.c:55
 msgid "Measuring reference height of calibration point"
 msgstr ""
 
 # MSG_MESH_BED_LEVELING
-#: ultralcd.cpp:4939
+#: ultralcd.cpp:4940
 msgid "Mesh Bed Leveling"
 msgstr ""
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:474
 msgid "MMU OK. Resuming position..."
 msgstr ""
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:450
+#: mmu.cpp:463
 msgid "MMU OK. Resuming temperature..."
 msgstr ""
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2684
 msgid "Measured skew"
 msgstr ""
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:485
 msgid "MMU OK. Resuming..."
 msgstr ""
 
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
 msgstr ""
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
 msgstr ""
 
 # 
-#: mmu.cpp:418
+#: mmu.cpp:431
 msgid "MMU needs user attention."
 msgstr ""
 
 # MSG_STEALTH_MODE_ON
-#: messages.c:94
+#: messages.c:85
 msgid "Mode    [Stealth]"
 msgstr ""
 
@@ -906,57 +856,57 @@ msgid "Mode [auto power]"
 msgstr ""
 
 # MSG_SILENT_MODE_OFF
-#: messages.c:91
+#: messages.c:82
 msgid "Mode [high power]"
 msgstr ""
 
+# 
+#: ultralcd.cpp:2158
+msgid "MMU2 connected"
+msgstr ""
+
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr ""
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:4839
 msgid "Move axis"
 msgstr ""
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:3913
 msgid "Move X"
 msgstr ""
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:3914
 msgid "Move Y"
 msgstr ""
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:3915
 msgid "Move Z"
 msgstr ""
 
-# MSG_ERR_NO_CHECKSUM
-#: cmdqueue.cpp:456
-msgid "No Checksum with line number, Last Line: "
-msgstr ""
-
 # MSG_NO_MOVE
 #: Marlin_main.cpp:4855
 msgid "No move."
 msgstr ""
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:5804
 msgid "No SD card"
 msgstr ""
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr ""
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:6787
 msgid "Not connected"
 msgstr ""
 
@@ -971,57 +921,42 @@ msgid "No "
 msgstr ""
 
 # MSG_SELFTEST_FAN_NO c=19
-#: messages.c:84
+#: messages.c:75
 msgid "Not spinning"
 msgstr ""
 
 # MSG_WIZARD_V2_CAL c=20 r=8
-#: ultralcd.cpp:4568
+#: ultralcd.cpp:4569
 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:4512
+#: ultralcd.cpp:4513
 msgid "Now I will preheat nozzle for PLA."
 msgstr ""
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr ""
 
-# MSG_OK
-#: Marlin_main.cpp:6333
-msgid "ok"
-msgstr ""
-
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1488
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr ""
 
-# MSG_SD_OPEN_FILE_FAIL
-#: messages.c:79
-msgid "open failed, File: "
-msgstr ""
-
-# MSG_ENDSTOP_OPEN
-#: messages.c:29
-msgid "open"
-msgstr ""
-
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4504
 msgid "Now remove the test print from steel sheet."
 msgstr ""
 
-# MSG_SD_OPENROOT_FAIL
-#: cardreader.cpp:196
-msgid "openRoot failed"
+# 
+#: ultralcd.cpp:1880
+msgid "Nozzle FAN"
 msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:5778
 msgid "Pause print"
 msgstr ""
 
@@ -1036,7 +971,7 @@ msgid "PID cal. finished"
 msgstr ""
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:4946
 msgid "PID calibration"
 msgstr ""
 
@@ -1046,12 +981,12 @@ msgid "PINDA Heating"
 msgstr ""
 
 # 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 ""
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4578
 msgid "Please clean heatbed and then press the knob."
 msgstr ""
 
@@ -1061,97 +996,92 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr ""
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:6779
 msgid "Please check :"
 msgstr ""
 
 # 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 ""
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4411
+#: ultralcd.cpp:4412
 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:4314
+#: ultralcd.cpp:4315
 msgid "Please load PLA filament first."
 msgstr ""
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2989
+#: Marlin_main.cpp:2988
 msgid "Please open idler and remove filament manually."
 msgstr ""
 
 # MSG_PLACE_STEEL_SHEET c=20 r=4
-#: messages.c:67
+#: messages.c:61
 msgid "Please place steel sheet on heatbed."
 msgstr ""
 
 # MSG_PRESS_TO_UNLOAD c=20 r=4
-#: messages.c:71
+#: messages.c:64
 msgid "Please press the knob to unload filament"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4408
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
 msgstr ""
 
 # MSG_PULL_OUT_FILAMENT c=20 r=4
-#: messages.c:73
+#: messages.c:66
 msgid "Please pull out filament immediately"
 msgstr ""
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1114
+#: mmu.cpp:1136
 msgid "Please remove filament and then press the knob."
 msgstr ""
 
 # MSG_REMOVE_STEEL_SHEET c=20 r=4
-#: messages.c:77
+#: messages.c:70
 msgid "Please remove steel sheet from heatbed."
 msgstr ""
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4011
+#: Marlin_main.cpp:4010
 msgid "Please run XYZ calibration first."
 msgstr ""
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1082
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr ""
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr ""
 
-# MSG_POWERUP
-#: messages.c:69
-msgid "PowerUp"
-msgstr ""
-
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4503
 msgid "Please remove shipping helpers first."
 msgstr ""
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr ""
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:5767
 msgid "Preheat"
 msgstr ""
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr ""
 
@@ -1161,17 +1091,22 @@ msgid "Please upgrade."
 msgstr ""
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9054
 msgid "Press knob to preheat nozzle and continue."
 msgstr ""
 
+# 
+#: ultralcd.cpp:1932
+msgid "Power failures"
+msgstr ""
+
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr ""
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7086
 msgid "Print fan:"
 msgstr ""
 
@@ -1185,24 +1120,19 @@ msgstr ""
 msgid "Print paused"
 msgstr ""
 
-# MSG_ERR_KILLED
-#: Marlin_main.cpp:7547
-msgid "Printer halted. kill() called!"
-msgstr ""
-
 # 
-#: mmu.cpp:422
+#: mmu.cpp:435
 msgid "Press the knob to resume nozzle temperature."
 msgstr ""
 
 # 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 ""
 
-# MSG_ERR_STOPPED
-#: messages.c:32
-msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
+# 
+#: ultralcd.cpp:1882
+msgid "Print FAN"
 msgstr ""
 
 # WELCOME_MSG c=20
@@ -1216,22 +1146,22 @@ msgid "Prusa i3 MK3 ready."
 msgstr ""
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2144
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2892
 msgid "Rear side [um]"
 msgstr ""
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8481
 msgid "Recovering print    "
 msgstr ""
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:535
 msgid "Remove old filament and press the knob to start loading new filament."
 msgstr ""
 
@@ -1241,172 +1171,152 @@ msgid "Prusa i3 MK2 ready."
 msgstr ""
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:4953
 msgid "Reset XYZ calibr."
 msgstr ""
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2893
 msgid "Reset"
 msgstr ""
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:5782
 msgid "Resume print"
 msgstr ""
 
 # MSG_RESUMING_PRINT c=20 r=1
-#: messages.c:76
+#: messages.c:69
 msgid "Resuming print"
 msgstr ""
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:2890
 msgid "Right side[um]"
 msgstr ""
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:4867
 msgid "RPi port     [on]"
 msgstr ""
 
-# 
-#: Marlin_main.cpp:7076
-msgid "Resend"
-msgstr ""
-
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4865
 msgid "RPi port    [off]"
 msgstr ""
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4331
 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:4780
+#: ultralcd.cpp:4781
 msgid "SD card  [normal]"
 msgstr ""
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:4779
 msgid "SD card [flshAir]"
 msgstr ""
 
-# MSG_SD_CARD_OK
-#: cardreader.cpp:202
-msgid "SD card ok"
-msgstr ""
-
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2650
 msgid "Right"
 msgstr ""
 
-# MSG_SD_INIT_FAIL
-#: cardreader.cpp:186
-msgid "SD init fail"
-msgstr ""
-
 # MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60
-#: messages.c:43
+#: messages.c:38
 msgid "Searching bed calibration point"
 msgstr ""
 
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4873
+#: ultralcd.cpp:4874
 msgid "Select language"
 msgstr ""
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6351
 msgid "Self test OK"
 msgstr ""
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6184
 msgid "Self test start  "
 msgstr ""
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4927
 msgid "Selftest         "
 msgstr ""
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:6777
 msgid "Selftest error !"
 msgstr ""
 
 # MSG_SELFTEST_FAILED c=20
-#: messages.c:82
+#: messages.c:73
 msgid "Selftest failed  "
 msgstr ""
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1521
+#: Marlin_main.cpp:1520
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr ""
 
 # 
-#: ultralcd.cpp:4550
+#: ultralcd.cpp:4551
 msgid "Select nozzle preheat temperature which matches your material."
 msgstr ""
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Select PLA filament:"
 msgstr ""
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:2901
 msgid "Set temperature:"
 msgstr ""
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr ""
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:4950
 msgid "Show end stops"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4947
+#: ultralcd.cpp:4948
 msgid "Show pinda state"
 msgstr ""
 
-# MSG_DWELL
-#: Marlin_main.cpp:3752
-msgid "Sleep..."
-msgstr ""
-
 # 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 ""
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:4791
 msgid "Sort:      [none]"
 msgstr ""
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:4789
 msgid "Sort:      [time]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2687
 msgid "Severe skew"
 msgstr ""
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:4790
 msgid "Sort:  [alphabet]"
 msgstr ""
 
@@ -1421,7 +1331,7 @@ msgid "Sound      [loud]"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2686
 msgid "Slight skew"
 msgstr ""
 
@@ -1431,7 +1341,7 @@ msgid "Sound      [mute]"
 msgstr ""
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4518
 msgid "Some problem encountered, Z-leveling enforced ..."
 msgstr ""
 
@@ -1446,143 +1356,148 @@ msgid "Sound    [silent]"
 msgstr ""
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:5938
 msgid "Speed"
 msgstr ""
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr ""
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4023
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
 msgstr ""
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5847
+#: ultralcd.cpp:5849
 msgid "Statistics  "
 msgstr ""
 
 # MSG_STOP_PRINT
-#: messages.c:96
+#: messages.c:87
 msgid "Stop print"
 msgstr ""
 
 # MSG_STOPPED
-#: messages.c:97
+#: messages.c:88
 msgid "STOPPED. "
 msgstr ""
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:5856
 msgid "Support"
 msgstr ""
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:6857
 msgid "Swapped"
 msgstr ""
 
 # MSG_TEMP_CALIBRATION c=20 r=1
-#: messages.c:98
+#: messages.c:89
 msgid "Temp. cal.          "
 msgstr ""
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4860
+#: ultralcd.cpp:4861
 msgid "Temp. cal.   [on]"
 msgstr ""
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:4859
 msgid "Temp. cal.  [off]"
 msgstr ""
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4959
 msgid "Temp. calibration"
 msgstr ""
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3526
 msgid "Temperature calibration failed"
 msgstr ""
 
 # 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 ""
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:4837
 msgid "Temperature"
 msgstr ""
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2189
 msgid "Temperatures"
 msgstr ""
 
 # 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 ""
 
 # 
-#: ultralcd.cpp:2539
+#: ultralcd.cpp:2540
 msgid "Total filament"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2542
 msgid "Total print time"
 msgstr ""
 
-# MSG_ENDSTOP_HIT
-#: messages.c:28
-msgid "TRIGGERED"
-msgstr ""
-
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:5764
 msgid "Tune"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Unload"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5366
 msgid "Unload all"
 msgstr ""
 
+# 
+#: ultralcd.cpp:1931
+msgid "Total failures"
+msgstr ""
+
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr ""
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr ""
 
+# 
+#: ultralcd.cpp:1965
+msgid "Total"
+msgstr ""
+
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5084
 msgid "Used during print"
 msgstr ""
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2192
 msgid "Voltages"
 msgstr ""
 
-# MSG_SD_VOL_INIT_FAIL
-#: cardreader.cpp:191
-msgid "volume.init failed"
+# 
+#: ultralcd.cpp:2166
+msgid "unknown"
 msgstr ""
 
 # MSG_USERWAIT
@@ -1591,52 +1506,52 @@ msgid "Wait for user..."
 msgstr ""
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3045
 msgid "Waiting for nozzle and bed cooling"
 msgstr ""
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3008
+#: ultralcd.cpp:3009
 msgid "Waiting for PINDA probe cooling"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4387
 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:1481
+#: Marlin_main.cpp:1480
 msgid "Warning: both printer type and motherboard type changed."
 msgstr ""
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1473
+#: Marlin_main.cpp:1472
 msgid "Warning: motherboard type changed."
 msgstr ""
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1477
+#: Marlin_main.cpp:1476
 msgid "Warning: printer type changed."
 msgstr ""
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:2977
 msgid "Was filament unload successful?"
 msgstr ""
 
 # MSG_SELFTEST_WIRINGERROR
-#: messages.c:89
+#: messages.c:80
 msgid "Wiring error"
 msgstr ""
 
 # MSG_WIZARD c=17 r=1
-#: ultralcd.cpp:4923
+#: ultralcd.cpp:4924
 msgid "Wizard"
 msgstr ""
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2182
 msgid "XYZ cal. details"
 msgstr ""
 
@@ -1646,107 +1561,107 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr ""
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr ""
 
 # MSG_WIZARD_QUIT c=20 r=8
-#: messages.c:106
+#: messages.c: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:3496
+#: ultralcd.cpp:3497
 msgid "XYZ calibration all right. Skew will be corrected automatically."
 msgstr ""
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3493
+#: ultralcd.cpp:3494
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4632
+#: ultralcd.cpp:4633
 msgid "X-correct"
 msgstr ""
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3491
 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:3474
+#: ultralcd.cpp:3475
 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:3477
+#: ultralcd.cpp:3478
 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:3480
+#: ultralcd.cpp:3481
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
 msgstr ""
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5323
+#: ultralcd.cpp:5324
 msgid "Load all"
 msgstr ""
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5325
 msgid "Load filament 1"
 msgstr ""
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3457
 msgid "XYZ calibration failed. Bed calibration point was not found."
 msgstr ""
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3463
 msgid "XYZ calibration failed. Front calibration points not reachable."
 msgstr ""
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3469
 msgid "XYZ calibration failed. Left front calibration point not reachable."
 msgstr ""
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5326
 msgid "Load filament 2"
 msgstr ""
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3466
 msgid "XYZ calibration failed. Right front calibration point not reachable."
 msgstr ""
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5327
 msgid "Load filament 3"
 msgstr ""
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2647
 msgid "Y distance from min"
 msgstr ""
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4634
 msgid "Y-correct"
 msgstr ""
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5328
 msgid "Load filament 4"
 msgstr ""
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5331
 msgid "Load filament 5"
 msgstr ""
 

+ 414 - 499
lang/po/Firmware_cs.po

@@ -7,98 +7,83 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: cs\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 9. lis 2018 14:31:07\n"
-"PO-Revision-Date: pá 9. lis 2018 14:31:07\n"
+"POT-Creation-Date: pá 30. lis 2018 18:46:46\n"
+"PO-Revision-Date: pá 30. lis 2018 18:46:46\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "Last-Translator: \n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-# MSG_PLANNER_BUFFER_BYTES
-#: Marlin_main.cpp:1184
-msgid "  PlannerBufferBytes: "
-msgstr " PlannerBufferBytes: "
-
-# MSG_ERR_COLD_EXTRUDE_STOP
-#: planner.cpp:761
-msgid " cold extrusion prevented"
-msgstr ""
-
-# MSG_FREE_MEMORY
-#: Marlin_main.cpp:1182
-msgid " Free Memory: "
-msgstr ""
-
-# MSG_CONFIGURATION_VER
-#: Marlin_main.cpp:1172
-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"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2702
 msgid "[0;0] point offset"
 msgstr "[0;0] odsazeni bodu"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:3968
 msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode"
-msgstr ""
+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:3979
+#: ultralcd.cpp:3980
 msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
-msgstr ""
+msgstr "\x1b[2JPOZOR:\x1b[1;0HCrash detekce\x1b[2;0Hdeaktivovana ve\x1b[3;0HStealth modu"
 
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:2831
 msgid "Adjusting Z"
 msgstr "Dostavovani Z"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7074
 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:2026
+msgid "Ambient"
+msgstr ""
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2245
 msgid "and press the knob"
 msgstr "a stisknete tlacitko"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3120
 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:4706
-msgid "Auto deplete [on]"
-msgstr ""
+#: ultralcd.cpp:4707
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin   [zap]"
 
 # 
-#: ultralcd.cpp:4702
-msgid "Auto deplete[N/A]"
-msgstr ""
+#: ultralcd.cpp:4703
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin   [N/A]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4710
-msgid "Auto deplete[off]"
-msgstr ""
+#: ultralcd.cpp:4711
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [vyp]"
 
 # MSG_AUTO_HOME
 #: messages.c:11
@@ -106,34 +91,34 @@ msgid "Auto home"
 msgstr ""
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5836
 msgid "AutoLoad filament"
 msgstr "AutoZavedeni fil."
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:3995
 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:2439
 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:6845
+#: ultralcd.cpp:6847
 msgid "Axis length"
 msgstr "Delka osy"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:6849
 msgid "Axis"
 msgstr "Osa"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:6791
 msgid "Bed / Heater"
-msgstr ""
+msgstr "Podlozka / Topeni"
 
 # MSG_BED_DONE
 #: messages.c:16
@@ -146,7 +131,7 @@ msgid "Bed Heating"
 msgstr "Zahrivani bed"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:4945
 msgid "Bed level correct"
 msgstr "Korekce podlozky"
 
@@ -156,47 +141,47 @@ 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:4466
 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:4470
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Kalibrace Z selhala. Sensor sepnul prilis vysoko. Cekam na reset."
 
 # MSG_BED
 #: messages.c:15
 msgid "Bed"
-msgstr ""
+msgstr "Podlozka"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2052
 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_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:4934
 msgid "Calibrate XYZ"
 msgstr "Kalibrace XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Kalibrovat Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4176
 msgid "Calibrate"
 msgstr "Zkalibrovat"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -206,7 +191,7 @@ msgid "Calibrating Z"
 msgstr "Kalibruji Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -216,27 +201,22 @@ msgid "Calibration done"
 msgstr "Kalibrace OK"
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr "Kalibrace"
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Cancel"
-msgstr ""
-
-# MSG_SD_CANT_ENTER_SUBDIR
-#: cardreader.cpp:662
-msgid "Cannot enter subdir: "
-msgstr ""
+msgstr "Zrusit"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#: ultralcd.cpp:7425
 msgid "Card inserted"
 msgstr "Karta vlozena"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7431
 msgid "Card removed"
 msgstr "Karta vyjmuta"
 
@@ -251,9 +231,9 @@ msgid "Cooldown"
 msgstr "Zchladit"
 
 # 
-#: ultralcd.cpp:4108
-msgid "Copy selected language from XFLASH?"
-msgstr ""
+#: ultralcd.cpp:4109
+msgid "Copy selected language?"
+msgstr "Kopirovat vybrany jazyk?"
 
 # MSG_CRASHDETECT_ON
 #: messages.c:27
@@ -276,22 +256,27 @@ msgid "Crash detected."
 msgstr "Detekovan naraz."
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:603
 msgid "Crash detected. Resume print?"
-msgstr "Detekovan naraz. Pokracovat?"
+msgstr "Detekovan naraz. Obnovit tisk?"
+
+# 
+#: ultralcd.cpp:1932
+msgid "Crash"
+msgstr ""
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5085
 msgid "Current"
 msgstr "Pouze aktualni"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2152
 msgid "Date:"
 msgstr "Datum:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:4841
 msgid "Disable steppers"
 msgstr "Vypnout motory"
 
@@ -301,197 +286,192 @@ 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:4576
 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 heatbedem?"
+msgstr "Chcete opakovat posledni krok a pozmenit vzdalenost mezi tryskou a podlozkou?"
 
 # MSG_EXTRUDER_CORRECTION c=9
-#: ultralcd.cpp:4636
+#: ultralcd.cpp:4637
 msgid "E-correct"
-msgstr ""
+msgstr "Korekce E"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:5825
 msgid "Eject filament"
 msgstr "Vysunout filament"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5352
 msgid "Eject filament 1"
 msgstr "Vysunout filament 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5353
 msgid "Eject filament 2"
 msgstr "Vysunout filament 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5354
 msgid "Eject filament 3"
 msgstr "Vysunout filament 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5355
 msgid "Eject filament 4"
 msgstr "Vysunout filament 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5356
 msgid "Eject filament 5"
 msgstr "Vysunout filament 5"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Eject"
-msgstr ""
+msgstr "Vysunout"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1128
 msgid "Ejecting filament"
 msgstr "Vysouvam filament"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:6815
 msgid "Endstop not hit"
-msgstr ""
+msgstr "Kon. spinac nesepnut"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6809
 msgid "Endstop"
-msgstr ""
-
-# MSG_ENDSTOPS_HIT
-#: messages.c:30
-msgid "endstops hit: "
-msgstr ""
+msgstr "Koncovy spinac"
 
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:6797
 msgid "Endstops"
-msgstr ""
-
-# MSG_Enqueing
-#: 
-msgid "enqueing \x22"
-msgstr ""
+msgstr "Konc. spinace"
 
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:5871
 msgid "Error - static memory has been overwritten"
 msgstr "Chyba - Doslo k prepisu staticke pameti!"
 
-# MSG_SD_ERR_WRITE_TO_FILE
-#: messages.c:78
-msgid "error writing to file"
-msgstr ""
-
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4008
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte zapojeni."
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr "CHYBA:"
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:984
 msgid "External SPI flash W25X20CL not responding."
-msgstr ""
+msgstr "Externi SPI flash W25X20CL neodpovida."
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5382
 msgid "Extruder 1"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5383
 msgid "Extruder 2"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5384
 msgid "Extruder 3"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5385
 msgid "Extruder 4"
 msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7083
 msgid "Extruder fan:"
 msgstr "Levy vent.:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2183
 msgid "Extruder info"
 msgstr ""
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr ""
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4675
 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:4677
 msgid "F. autoload [off]"
 msgstr "F. autozav. [vyp]"
 
+# 
+#: ultralcd.cpp:5853
+msgid "Fail stats"
+msgstr ""
+
 # 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:4848
 msgid "Fans check   [on]"
 msgstr "Kontr. vent.[zap]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:4850
 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:3104
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "Senzor nerozpoznal filament, vypnout?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4655
 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:1932
+msgid "Filam. runouts"
+msgstr ""
+
 # 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?"
 
@@ -501,117 +481,117 @@ msgid "Filament not loaded"
 msgstr "Filament nezaveden"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6863
 msgid "Filament sensor"
 msgstr "Senzor filamentu"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7092
 msgid "Filament sensor:"
 msgstr "Senzor filamentu:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2513
 msgid "Filament used"
 msgstr "Spotrebovano filamentu"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2515
 msgid "Print time"
 msgstr "Cas tisku"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7209
 msgid "File incomplete. Continue anyway?"
 msgstr "Soubor nekompletni. Pokracovat?"
 
 # 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:4925
 msgid "First layer cal."
 msgstr "Kal. prvni vrstvy"
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4488
 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:436
 msgid "Fix the issue and then press button on MMU unit."
-msgstr ""
+msgstr "Opravte chybu a pote stisknete tlacitko na jednotce MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:5944
 msgid "Flow"
 msgstr "Prutok"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2145
 msgid "forum.prusa3d.com"
 msgstr ""
 
 # 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:2891
 msgid "Front side[um]"
 msgstr "Vpredu [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6855
 msgid "Front/left fans"
 msgstr "Predni/levy vent."
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:6785
 msgid "Heater/Thermistor"
-msgstr "Heater/Termistor"
+msgstr "Topeni/Termistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7400
 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_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
 msgstr "Zahrivani"
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4467
 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:2146
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:5832
 msgid "Change extruder"
-msgstr ""
+msgstr "Zmenit extruder"
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Vymenit filament"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2256
 msgid "Change success!"
 msgstr "Zmena uspesna!"
 
@@ -621,72 +601,67 @@ msgid "Changed correctly?"
 msgstr "Vymena ok?"
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
-msgstr "Kontrola bed "
+msgstr "Kontrola podlozky"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7065
 msgid "Checking endstops"
-msgstr "Kontrola endstops"
+msgstr "Kontrola endstopu"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7066
 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:7067
 msgid "Checking X axis  "
-msgstr "Kontrola X axis "
+msgstr "Kontrola osy X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7068
 msgid "Checking Y axis  "
-msgstr "Kontrola Y axis "
+msgstr "Kontrola osy Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7069
 msgid "Checking Z axis  "
-msgstr "Kontrola Z axis "
-
-# MSG_ERR_CHECKSUM_MISMATCH
-#: cmdqueue.cpp:444
-msgid "checksum mismatch, Last Line: "
-msgstr ""
+msgstr "Kontrola osy Z"
 
 # 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 "Vyberte filament:"
+msgstr "Vyber filament:"
 
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
-msgstr "Filament"
+msgstr ""
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4497
 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:4505
 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:4570
 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,87 +671,92 @@ msgid "Improving bed calibration point"
 msgstr "Zlepsuji presnost kalibracniho bodu"
 
 # MSG_WATCH
-#: messages.c:102
+#: messages.c:93
 msgid "Info screen"
 msgstr "Informace"
 
 # 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:4530
 msgid "Is filament 1 loaded?"
-msgstr ""
+msgstr "Je filament 1 zaveden?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2242
 msgid "Insert filament"
 msgstr "Vlozte filament"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4533
 msgid "Is filament loaded?"
 msgstr "Je filament zaveden?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4564
 msgid "Is it PLA filament?"
 msgstr "Je to PLA filament?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4310
 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 heatbed?"
+msgstr "Je tiskovy plat na podlozce?"
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20
 #: mesh_bed_calibration.cpp:2223
 msgid "Iteration "
 msgstr "Iterace "
 
-# MSG_KILLED
-#: Marlin_main.cpp:7552
-msgid "KILLED. "
+# 
+#: ultralcd.cpp:1949
+msgid "Last print failures"
+msgstr ""
+
+# 
+#: ultralcd.cpp:1964
+msgid "Last print"
 msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Levy vent na trysce?"
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:2649
 msgid "Left"
-msgstr ""
+msgstr "Vlevo:"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:2889
 msgid "Left side [um]"
 msgstr "Vlevo [um]"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:4855
 msgid "Lin. correction"
 msgstr "Korekce lin."
 
@@ -786,119 +766,89 @@ msgid "Live adjust Z"
 msgstr "Doladeni osy Z"
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr "Zavest filament"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2281
 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:6839
 msgid "Loose pulley"
 msgstr "Uvolnena remenicka"
 
-# MSG_M104_INVALID_EXTRUDER
-#: Marlin_main.cpp:7675
-msgid "M104 Invalid extruder "
-msgstr ""
-
-# MSG_M105_INVALID_EXTRUDER
-#: Marlin_main.cpp:7678
-msgid "M105 Invalid extruder "
-msgstr ""
-
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:5824
 msgid "Load to nozzle"
-msgstr ""
-
-# MSG_M109_INVALID_EXTRUDER
-#: Marlin_main.cpp:7681
-msgid "M109 Invalid extruder "
-msgstr ""
+msgstr "Zavest do trysky"
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Kal. prvni vrstvy"
 
-# MSG_M200_INVALID_EXTRUDER
-#: Marlin_main.cpp:5857
-msgid "M200 Invalid extruder "
-msgstr ""
-
-# MSG_M218_INVALID_EXTRUDER
-#: Marlin_main.cpp:7684
-msgid "M218 Invalid extruder "
-msgstr ""
-
-# MSG_M221_INVALID_EXTRUDER
-#: Marlin_main.cpp:7687
-msgid "M221 Invalid extruder "
-msgstr ""
-
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Hlavni nabidka"
 
 # 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:4940
 msgid "Mesh Bed Leveling"
 msgstr ""
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:474
 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:463
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Pokracuji v nahrivani..."
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2684
 msgid "Measured skew"
-msgstr ""
+msgstr "Merene zkoseni"
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:485
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Pokracuji..."
 
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
 msgstr "Mod      [Normal]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
 msgstr "Mod       [tichy]"
 
 # 
-#: mmu.cpp:418
+#: mmu.cpp:431
 msgid "MMU needs user attention."
-msgstr ""
+msgstr "MMU potrebuje zasah uzivatele."
 
 # MSG_STEALTH_MODE_ON
-#: messages.c:94
+#: messages.c:85
 msgid "Mode    [Stealth]"
-msgstr "Mod     [Stealth]"
+msgstr "Mod       [tichy]"
 
 # MSG_AUTO_MODE_ON
 #: messages.c:12
@@ -906,122 +856,107 @@ 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]"
 
+# 
+#: ultralcd.cpp:2158
+msgid "MMU2 connected"
+msgstr ""
+
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr ""
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:4839
 msgid "Move axis"
 msgstr "Posunout osu"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:3913
 msgid "Move X"
 msgstr "Posunout X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:3914
 msgid "Move Y"
 msgstr "Posunout Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:3915
 msgid "Move Z"
 msgstr "Posunout Z"
 
-# MSG_ERR_NO_CHECKSUM
-#: cmdqueue.cpp:456
-msgid "No Checksum with line number, Last Line: "
-msgstr ""
-
 # MSG_NO_MOVE
 #: Marlin_main.cpp:4855
 msgid "No move."
-msgstr ""
+msgstr "Bez pohybu."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:5804
 msgid "No SD card"
 msgstr "Zadna SD karta"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr "Ne"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:6787
 msgid "Not connected"
 msgstr "Nezapojeno "
 
 # 
 #: util.cpp:293
 msgid "New firmware version available:"
-msgstr ""
+msgstr "Vysla nova verze firmware:"
 
 # 
 #: 
 msgid "No "
-msgstr ""
+msgstr "Ne"
 
 # 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:4569
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
-msgstr "Nyni zkalibruji vzdalenost mezi koncem trysky a povrchem heatbedu."
+msgstr "Nyni zkalibruji vzdalenost mezi koncem trysky a povrchem podlozky."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
-#: ultralcd.cpp:4512
+#: ultralcd.cpp:4513
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Nyni predehreji trysku pro PLA."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Tryska"
 
-# MSG_OK
-#: Marlin_main.cpp:6333
-msgid "ok"
-msgstr ""
-
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1488
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd."
 
-# MSG_SD_OPEN_FILE_FAIL
-#: messages.c:79
-msgid "open failed, File: "
-msgstr ""
-
-# MSG_ENDSTOP_OPEN
-#: messages.c:29
-msgid "open"
-msgstr ""
-
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4504
 msgid "Now remove the test print from steel sheet."
-msgstr ""
+msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu."
 
-# MSG_SD_OPENROOT_FAIL
-#: cardreader.cpp:196
-msgid "openRoot failed"
+# 
+#: ultralcd.cpp:1880
+msgid "Nozzle FAN"
 msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:5778
 msgid "Pause print"
 msgstr "Pozastavit tisk"
 
@@ -1036,7 +971,7 @@ msgid "PID cal. finished"
 msgstr "PID kal. ukoncena"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:4946
 msgid "PID calibration"
 msgstr "PID kalibrace"
 
@@ -1046,14 +981,14 @@ 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_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4578
 msgid "Please clean heatbed and then press the knob."
-msgstr "Prosim ocistete heatbed a stisknete tlacitko."
+msgstr "Prosim ocistete podlozku a stisknete tlacitko."
 
 # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8
 #: messages.c:22
@@ -1061,117 +996,117 @@ 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:6777
+#: ultralcd.cpp:6779
 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 Wizarda restartovanim tiskarny."
+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:4411
+#: ultralcd.cpp:4412
 msgid "Please insert PLA filament to the extruder, then press knob to load it."
-msgstr "Prosim vlozte PLA filament do extruderu, po te stisknete tlacitko pro zavedeni filamentu."
+msgstr "Prosim vlozte PLA filament do extruderu, pote stisknete tlacitko pro zavedeni filamentu."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
-#: ultralcd.cpp:4314
+#: ultralcd.cpp:4315
 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:2988
 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 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"
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4408
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
-msgstr ""
+msgstr "Prosim vlozte PLA filament do trubicky MMU, pote stisknete tlacitko pro zavedeni filamentu."
 
 # 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:1136
 msgid "Please remove filament and then press the knob."
 msgstr "Prosim vyjmete filament a pote stisknete tlacitko."
 
 # 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:4010
 msgid "Please run XYZ calibration first."
 msgstr "Nejprve spustte kalibraci XYZ."
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1082
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Prosim aktualizujte firmware ve vasi MMU2 jednotce. Cekam na reset."
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Prosim cekejte"
 
-# MSG_POWERUP
-#: messages.c:69
-msgid "PowerUp"
-msgstr ""
-
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4503
 msgid "Please remove shipping helpers first."
-msgstr ""
+msgstr "Nejprve prosim sundejte transportni soucastky."
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Predehrejte trysku!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:5767
 msgid "Preheat"
 msgstr "Predehrev"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr "Predehrivam trysku. Prosim cekejte."
 
 # 
 #: util.cpp:297
 msgid "Please upgrade."
-msgstr ""
+msgstr "Prosim aktualizujte."
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9054
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko."
 
+# 
+#: ultralcd.cpp:1932
+msgid "Power failures"
+msgstr ""
+
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Tisk prerusen"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7086
 msgid "Print fan:"
 msgstr "Tiskovy vent.:"
 
@@ -1185,205 +1120,180 @@ msgstr "Tisk z SD"
 msgid "Print paused"
 msgstr "Tisk pozastaven"
 
-# MSG_ERR_KILLED
-#: Marlin_main.cpp:7547
-msgid "Printer halted. kill() called!"
-msgstr ""
-
 # 
-#: mmu.cpp:422
+#: mmu.cpp:435
 msgid "Press the knob to resume nozzle temperature."
-msgstr ""
+msgstr "Pro pokracovani nahrivani trysky stisknete tlacitko."
 
 # 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."
 
-# MSG_ERR_STOPPED
-#: messages.c:32
-msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
+# 
+#: ultralcd.cpp:1882
+msgid "Print FAN"
 msgstr ""
 
 # WELCOME_MSG c=20
 #: 
 msgid "Prusa i3 MK2.5 ready."
-msgstr "Prusa i3 MK2.5 ok"
+msgstr "Prusa i3 MK2.5 ok."
 
 # WELCOME_MSG c=20
 #: 
 msgid "Prusa i3 MK3 ready."
-msgstr "Prusa i3 MK3 ok"
+msgstr "Prusa i3 MK3 ok."
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2144
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2892
 msgid "Rear side [um]"
 msgstr "Vzadu [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8481
 msgid "Recovering print    "
 msgstr "Obnovovani tisku "
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:535
 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 MK2 ready."
-msgstr ""
+msgstr "Prusa i3 MK2 ok."
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:4953
 msgid "Reset XYZ calibr."
 msgstr "Reset XYZ kalibr."
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2893
 msgid "Reset"
 msgstr ""
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:5782
 msgid "Resume print"
 msgstr "Pokracovat"
 
 # MSG_RESUMING_PRINT c=20 r=1
-#: messages.c:76
+#: messages.c:69
 msgid "Resuming print"
 msgstr "Obnoveni tisku"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:2890
 msgid "Right side[um]"
 msgstr "Vpravo [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:4867
 msgid "RPi port     [on]"
 msgstr "RPi port    [zap]"
 
-# 
-#: Marlin_main.cpp:7076
-msgid "Resend"
-msgstr ""
-
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4865
 msgid "RPi port    [off]"
 msgstr "RPi port    [vyp]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4331
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
-msgstr "Spusteni Wizarda vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?"
+msgstr "Spusteni Pruvodce vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
-#: ultralcd.cpp:4780
+#: ultralcd.cpp:4781
 msgid "SD card  [normal]"
 msgstr "SD card  [normal]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:4779
 msgid "SD card [flshAir]"
-msgstr ""
-
-# MSG_SD_CARD_OK
-#: cardreader.cpp:202
-msgid "SD card ok"
-msgstr ""
+msgstr "SD card [FlshAir]"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2650
 msgid "Right"
-msgstr ""
-
-# MSG_SD_INIT_FAIL
-#: cardreader.cpp:186
-msgid "SD init fail"
-msgstr ""
+msgstr "Vpravo"
 
 # 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:4874
 msgid "Select language"
 msgstr "Vyber jazyka"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6351
 msgid "Self test OK"
 msgstr ""
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6184
 msgid "Self test start  "
 msgstr "Self test start "
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4927
 msgid "Selftest         "
 msgstr "Selftest "
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:6777
 msgid "Selftest error !"
-msgstr ""
+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:1520
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
 msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest."
 
 # 
-#: ultralcd.cpp:4550
+#: ultralcd.cpp:4551
 msgid "Select nozzle preheat temperature which matches your material."
-msgstr ""
+msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu."
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Select PLA filament:"
-msgstr ""
+msgstr "Vyberte PLA filament:"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:2901
 msgid "Set temperature:"
 msgstr "Nastavte teplotu:"
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Nastaveni"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:4950
 msgid "Show end stops"
 msgstr "Stav konc. spin."
 
 # 
-#: ultralcd.cpp:4947
+#: ultralcd.cpp:4948
 msgid "Show pinda state"
-msgstr "Stav PINDA"
-
-# MSG_DWELL
-#: Marlin_main.cpp:3752
-msgid "Sleep..."
-msgstr ""
+msgstr "Zobrazit stav PINDA"
 
 # MSG_FILE_CNT c=20 r=4
 #: cardreader.cpp:738
@@ -1391,22 +1301,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:4790
+#: ultralcd.cpp:4791
 msgid "Sort:      [none]"
 msgstr "Trideni   [Zadne]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:4789
 msgid "Sort:      [time]"
-msgstr "Trideni     [Cas]"
+msgstr "Trideni:    [cas]"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2687
 msgid "Severe skew"
-msgstr ""
+msgstr "Tezke zkoseni"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:4790
 msgid "Sort:  [alphabet]"
 msgstr "Trideni [Abeceda]"
 
@@ -1421,9 +1331,9 @@ msgid "Sound      [loud]"
 msgstr "Zvuk    [hlasity]"
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2686
 msgid "Slight skew"
-msgstr ""
+msgstr "Lehke zkoseni"
 
 # MSG_SOUND_MUTE c=17 r=1
 #: sound.h:8
@@ -1431,9 +1341,9 @@ msgid "Sound      [mute]"
 msgstr "Zvuk    [vypnuto]"
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4518
 msgid "Some problem encountered, Z-leveling enforced ..."
-msgstr ""
+msgstr "Vyskytl se problem, srovnavam osu Z ..."
 
 # MSG_SOUND_ONCE c=17 r=1
 #: sound.h:6
@@ -1446,197 +1356,202 @@ msgid "Sound    [silent]"
 msgstr "Zvuk      [tichy]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:5938
 msgid "Speed"
 msgstr "Rychlost"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Toci se"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4023
 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:5849
 msgid "Statistics  "
 msgstr "Statistika "
 
 # 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 ""
+msgstr "ZASTAVENO."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:5856
 msgid "Support"
 msgstr "Podpora"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:6857
 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:4861
 msgid "Temp. cal.   [on]"
 msgstr "Tepl. kal.  [zap]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:4859
 msgid "Temp. cal.  [off]"
 msgstr "Tepl. kal.  [vyp]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4959
 msgid "Temp. calibration"
 msgstr "Teplot. kalibrace"
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3526
 msgid "Temperature calibration failed"
 msgstr "Teplotni kalibrace selhala"
 
 # 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_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:4837
 msgid "Temperature"
 msgstr "Teplota"
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2189
 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:2540
 msgid "Total filament"
-msgstr "Celkem fileament"
+msgstr "Filament celkem"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2542
 msgid "Total print time"
 msgstr "Celkovy cas tisku"
 
-# MSG_ENDSTOP_HIT
-#: messages.c:28
-msgid "TRIGGERED"
-msgstr ""
-
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:5764
 msgid "Tune"
 msgstr "Ladit"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Unload"
-msgstr ""
+msgstr "Vysunout"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5366
 msgid "Unload all"
+msgstr "Vyjmout vse"
+
+# 
+#: ultralcd.cpp:1931
+msgid "Total failures"
 msgstr ""
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr "Vyjmout filament"
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Vysouvam filament"
 
+# 
+#: ultralcd.cpp:1965
+msgid "Total"
+msgstr ""
+
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5084
 msgid "Used during print"
 msgstr "Pouzite behem tisku"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2192
 msgid "Voltages"
 msgstr "Napeti"
 
-# MSG_SD_VOL_INIT_FAIL
-#: cardreader.cpp:191
-msgid "volume.init failed"
+# 
+#: ultralcd.cpp:2166
+msgid "unknown"
 msgstr ""
 
 # MSG_USERWAIT
 #: Marlin_main.cpp:4823
 msgid "Wait for user..."
-msgstr ""
+msgstr "Ceka se na uzivatele..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3045
 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:3009
 msgid "Waiting for PINDA probe cooling"
 msgstr "Cekani na zchladnuti PINDA"
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4387
 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 ""
+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:1481
+#: Marlin_main.cpp:1480
 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:1472
 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:1476
 msgid "Warning: printer type changed."
 msgstr "Varovani: doslo ke zmene typu tiskarny."
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:2977
 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:4924
 msgid "Wizard"
-msgstr ""
+msgstr "Pruvodce"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2182
 msgid "XYZ cal. details"
 msgstr "Detaily XYZ kal."
 
@@ -1646,107 +1561,107 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "Kalibrace XYZ selhala. Nahlednete do manualu."
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Ano"
 
 # MSG_WIZARD_QUIT c=20 r=8
-#: messages.c:106
+#: messages.c:97
 msgid "You can always resume the Wizard from Calibration -> Wizard."
-msgstr "Wizarda muzete kdykoliv znovu spustit z menu 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:3496
+#: ultralcd.cpp:3497
 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:3494
 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:4632
+#: ultralcd.cpp:4633
 msgid "X-correct"
-msgstr ""
+msgstr "Korekce X"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3491
 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:3474
+#: ultralcd.cpp:3475
 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:3477
+#: ultralcd.cpp:3478
 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:3480
+#: ultralcd.cpp:3481
 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:5323
+#: ultralcd.cpp:5324
 msgid "Load all"
 msgstr "Zavest vse"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5325
 msgid "Load filament 1"
 msgstr "Zavest filament 1"
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3457
 msgid "XYZ calibration failed. Bed calibration point was not found."
-msgstr ""
+msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3463
 msgid "XYZ calibration failed. Front calibration points not reachable."
-msgstr ""
+msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3469
 msgid "XYZ calibration failed. Left front calibration point not reachable."
-msgstr ""
+msgstr "Kalibrace XYZ selhala. Levy predni bod moc vpredu. Srovnejte tiskarnu."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5326
 msgid "Load filament 2"
 msgstr "Zavest filament 2"
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3466
 msgid "XYZ calibration failed. Right front calibration point not reachable."
-msgstr ""
+msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5327
 msgid "Load filament 3"
 msgstr "Zavest filament 3"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2647
 msgid "Y distance from min"
-msgstr ""
+msgstr "Y vzdalenost od min"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4634
 msgid "Y-correct"
-msgstr ""
+msgstr "Korekce Y"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5328
 msgid "Load filament 4"
 msgstr "Zavest filament 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5331
 msgid "Load filament 5"
 msgstr "Zavest filament 5"
 

+ 409 - 494
lang/po/Firmware_de.po

@@ -7,98 +7,83 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 9. lis 2018 14:32:41\n"
-"PO-Revision-Date: pá 9. lis 2018 14:32:41\n"
+"POT-Creation-Date: pá 30. lis 2018 18:48:22\n"
+"PO-Revision-Date: pá 30. lis 2018 18:48:22\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "Last-Translator: \n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-# MSG_PLANNER_BUFFER_BYTES
-#: Marlin_main.cpp:1184
-msgid "  PlannerBufferBytes: "
-msgstr " PlannerPufferBytes: "
-
-# MSG_ERR_COLD_EXTRUDE_STOP
-#: planner.cpp:761
-msgid " cold extrusion prevented"
-msgstr " stopp, Extruder kalt"
-
-# MSG_FREE_MEMORY
-#: Marlin_main.cpp:1182
-msgid " Free Memory: "
-msgstr " Freier Speicher: "
-
-# MSG_CONFIGURATION_VER
-#: Marlin_main.cpp:1172
-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"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2702
 msgid "[0;0] point offset"
 msgstr "[0;0] Punktversatz"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:3968
 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:3979
+#: ultralcd.cpp:3980
 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"
 
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:2831
 msgid "Adjusting Z"
 msgstr "Z wurde eingestellt"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7074
 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:2026
+msgid "Ambient"
+msgstr ""
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2245
 msgid "and press the knob"
 msgstr "und Knopf druecken"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3120
 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:4706
-msgid "Auto deplete [on]"
-msgstr "Restemodus   [an]"
+#: ultralcd.cpp:4707
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin    [an]"
 
 # 
-#: ultralcd.cpp:4702
-msgid "Auto deplete[N/A]"
-msgstr ""
+#: ultralcd.cpp:4703
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin   [N/V]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4710
-msgid "Auto deplete[off]"
-msgstr "Restemodus  [aus]"
+#: ultralcd.cpp:4711
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [aus]"
 
 # MSG_AUTO_HOME
 #: messages.c:11
@@ -106,32 +91,32 @@ msgid "Auto home"
 msgstr "Startposition"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5836
 msgid "AutoLoad filament"
 msgstr "Auto-Laden Filament"
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:3995
 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:2438
+#: ultralcd.cpp:2439
 msgid "Autoloading filament is active, just press the knob and insert filament..."
-msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und  Filament einlegen..."
+msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..."
 
 # MSG_SELFTEST_AXIS_LENGTH
-#: ultralcd.cpp:6845
+#: ultralcd.cpp:6847
 msgid "Axis length"
 msgstr "Achsenlaenge"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:6849
 msgid "Axis"
 msgstr "Achse"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:6791
 msgid "Bed / Heater"
 msgstr "Bett / Heizung"
 
@@ -146,7 +131,7 @@ msgid "Bed Heating"
 msgstr "Bett aufwaermen"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:4945
 msgid "Bed level correct"
 msgstr "Ausgleich Bett ok"
 
@@ -156,12 +141,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:4467
+#: Marlin_main.cpp:4466
 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:4471
+#: Marlin_main.cpp:4470
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Z-Kalibrierung fehl- geschlagen. Sensor zu hoch ausgeloest. Warte auf Reset."
 
@@ -171,32 +156,32 @@ msgid "Bed"
 msgstr "Bett"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2052
 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! Druck wiederherstellen?"
 
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:4934
 msgid "Calibrate XYZ"
 msgstr "Kalibrierung XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Kalibrierung Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4176
 msgid "Calibrate"
 msgstr "Kalibrieren"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -206,7 +191,7 @@ msgid "Calibrating Z"
 msgstr "Kalibrierung Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -216,27 +201,22 @@ msgid "Calibration done"
 msgstr "Kalibrierung OK"
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr "Kalibrierung"
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Cancel"
-msgstr ""
-
-# MSG_SD_CANT_ENTER_SUBDIR
-#: cardreader.cpp:662
-msgid "Cannot enter subdir: "
-msgstr "Kann Unterverzeichnis nicht oeffnen: "
+msgstr "Abbruch"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#: ultralcd.cpp:7425
 msgid "Card inserted"
 msgstr "SD Karte eingesetzt"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7431
 msgid "Card removed"
 msgstr "SD Karte entfernt"
 
@@ -251,9 +231,9 @@ msgid "Cooldown"
 msgstr "Abkuehlen"
 
 # 
-#: ultralcd.cpp:4108
-msgid "Copy selected language from XFLASH?"
-msgstr ""
+#: ultralcd.cpp:4109
+msgid "Copy selected language?"
+msgstr "Gewaehlte Sprache kopieren?"
 
 # MSG_CRASHDETECT_ON
 #: messages.c:27
@@ -276,22 +256,27 @@ msgid "Crash detected."
 msgstr "Crash erkannt."
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:603
 msgid "Crash detected. Resume print?"
-msgstr "Crash erkannt. Druck fortsetzen?"
+msgstr "Crash erkannt. Druck fortfuehren?"
+
+# 
+#: ultralcd.cpp:1932
+msgid "Crash"
+msgstr ""
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5085
 msgid "Current"
 msgstr "Aktuelles"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2152
 msgid "Date:"
 msgstr "Datum:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:4841
 msgid "Disable steppers"
 msgstr "Motoren aus"
 
@@ -301,197 +286,192 @@ 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:4576
 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:4636
+#: ultralcd.cpp:4637
 msgid "E-correct"
 msgstr "E-Korrektur"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:5825
 msgid "Eject filament"
 msgstr "Filamentauswurf"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5352
 msgid "Eject filament 1"
 msgstr "Filamentauswurf 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5353
 msgid "Eject filament 2"
-msgstr "Filamentauswurf 2"
+msgstr "Fil.2 auswerfen"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5354
 msgid "Eject filament 3"
-msgstr "Filamentauswurf 3"
+msgstr "Fil.3 auswerfen"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5355
 msgid "Eject filament 4"
-msgstr "Filamentauswurf 4"
+msgstr "Fil.4 auswerfen"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5356
 msgid "Eject filament 5"
-msgstr "Filamentauswurf 5"
+msgstr "Fil.5 auswerfen"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Eject"
-msgstr ""
+msgstr "Auswurf"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1128
 msgid "Ejecting filament"
-msgstr "Werfe Filament aus"
+msgstr "werfe Filament aus"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:6815
 msgid "Endstop not hit"
 msgstr "Ende nicht getroffen"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6809
 msgid "Endstop"
 msgstr "Endanschlag"
 
-# MSG_ENDSTOPS_HIT
-#: messages.c:30
-msgid "endstops hit: "
-msgstr "Endanschlag erreicht: "
-
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:6797
 msgid "Endstops"
 msgstr "Endschalter"
 
-# MSG_Enqueing
-#: 
-msgid "enqueing \x22"
-msgstr ""
-
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:5871
 msgid "Error - static memory has been overwritten"
 msgstr "Fehler - statischer Speicher wurde ueberschrieben"
 
-# MSG_SD_ERR_WRITE_TO_FILE
-#: messages.c:78
-msgid "error writing to file"
-msgstr "Fehler beim Schreiben in Datei"
-
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4008
 msgid "ERROR: Filament sensor is not responding, please check connection."
-msgstr "FEHLER: Filament- sensor reagiert nicht, bitte  Verbindung pruefen."
+msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen."
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr "FEHLER:"
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:984
 msgid "External SPI flash W25X20CL not responding."
-msgstr ""
+msgstr "Der externe SPI Flash W25X20CL antwortet nicht."
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5382
 msgid "Extruder 1"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5383
 msgid "Extruder 2"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5384
 msgid "Extruder 3"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5385
 msgid "Extruder 4"
 msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7083
 msgid "Extruder fan:"
 msgstr "Extruder Luefter:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2183
 msgid "Extruder info"
 msgstr "Extruder Info"
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr ""
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4675
 msgid "F. autoload  [on]"
 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]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4676
+#: ultralcd.cpp:4677
 msgid "F. autoload [off]"
 msgstr "F. Autoload [aus]"
 
+# 
+#: ultralcd.cpp:5853
+msgid "Fail stats"
+msgstr ""
+
 # 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:4848
 msgid "Fans check   [on]"
 msgstr "Luefter Chk. [an]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:4850
 msgid "Fans check  [off]"
 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:3104
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "Fil. Sensorsignal ist schlecht, ausschalten?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4655
 msgid "Fil. sensor [N/A]"
 msgstr "Fil. Sensor  [nv]"
 
 # MSG_FSENSOR_OFF
-#: messages.c:49
+#: messages.c:44
 msgid "Fil. sensor [off]"
 msgstr "Fil. Sensor [aus]"
 
+# 
+#: ultralcd.cpp:1932
+msgid "Filam. runouts"
+msgstr ""
+
 # MSG_FILAMENT_CLEAN c=20 r=2
-#: messages.c:37
+#: messages.c:32
 msgid "Filament extruding & with correct color?"
 msgstr "Filament extrudiert + richtige Farbe?"
 
@@ -501,117 +481,117 @@ msgid "Filament not loaded"
 msgstr "Fil. nicht geladen"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6863
 msgid "Filament sensor"
 msgstr "Filamentsensor"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7092
 msgid "Filament sensor:"
 msgstr "Filamentsensor:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2513
 msgid "Filament used"
 msgstr "Filament benutzt"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2515
 msgid "Print time"
 msgstr "Druckzeit"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7209
 msgid "File incomplete. Continue anyway?"
 msgstr "Datei unvollstaendig Trotzdem fortfahren?"
 
 # 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:4925
 msgid "First layer cal."
 msgstr "Erste-Schicht Kal."
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4488
 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:436
 msgid "Fix the issue and then press button on MMU unit."
-msgstr ""
+msgstr "Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:5944
 msgid "Flow"
 msgstr "Durchfluss"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2145
 msgid "forum.prusa3d.com"
 msgstr ""
 
 # 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:2891
 msgid "Front side[um]"
 msgstr "Vorne [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6855
 msgid "Front/left fans"
 msgstr "Vorderer/linke Luefter"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:6785
 msgid "Heater/Thermistor"
 msgstr "Heizung/Thermistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7400
 msgid "Heating disabled by safety timer."
 msgstr "Heizung durch Sicherheitstimer deaktiviert."
 
 # MSG_HEATING_COMPLETE c=20
-#: messages.c:52
+#: messages.c:47
 msgid "Heating done."
 msgstr "Aufwaermen OK."
 
 # MSG_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
 msgstr "Aufwaermen"
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4467
 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:2142
+#: ultralcd.cpp:2146
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:5832
 msgid "Change extruder"
-msgstr ""
+msgstr "Wechsel Extruder"
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Filament-Wechsel"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2256
 msgid "Change success!"
 msgstr "Wechsel erfolgr.!"
 
@@ -621,72 +601,67 @@ msgid "Changed correctly?"
 msgstr "Wechsel ok?"
 
 # 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:7065
 msgid "Checking endstops"
 msgstr "Pruefe Endschalter"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7066
 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:7067
 msgid "Checking X axis  "
 msgstr "Pruefe X Achse "
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7068
 msgid "Checking Y axis  "
 msgstr "Pruefe Y Achse "
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7069
 msgid "Checking Z axis  "
 msgstr "Pruefe Z Achse "
 
-# MSG_ERR_CHECKSUM_MISMATCH
-#: cmdqueue.cpp:444
-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 "Filament waehlen:"
+msgstr "Waehle Filament:"
 
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
-msgstr "Filament"
+msgstr ""
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4497
 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:4504
+#: ultralcd.cpp:4505
 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:4570
 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,57 +671,57 @@ msgid "Improving bed calibration point"
 msgstr "Verbessere Bett Kalibrierpunkt"
 
 # MSG_WATCH
-#: messages.c:102
+#: messages.c:93
 msgid "Info screen"
 msgstr "Infoanzeige"
 
 # 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:4530
 msgid "Is filament 1 loaded?"
-msgstr ""
+msgstr "Wurde Filament 1 geladen?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2242
 msgid "Insert filament"
 msgstr "Filament einlegen"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4533
 msgid "Is filament loaded?"
 msgstr "Ist das Filament geladen?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4564
 msgid "Is it PLA filament?"
 msgstr "Ist es wirklich PLA Filament?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4310
 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 auf dem Heizbett?"
 
@@ -755,30 +730,35 @@ msgstr "Liegt das Stahlblech auf dem Heizbett?"
 msgid "Iteration "
 msgstr ""
 
-# MSG_KILLED
-#: Marlin_main.cpp:7552
-msgid "KILLED. "
-msgstr "ABGEBROCHEN. "
+# 
+#: ultralcd.cpp:1949
+msgid "Last print failures"
+msgstr ""
+
+# 
+#: ultralcd.cpp:1964
+msgid "Last print"
+msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Linker Luefter?"
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:2649
 msgid "Left"
-msgstr ""
+msgstr "Links"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:2889
 msgid "Left side [um]"
 msgstr "Links [um]"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:4855
 msgid "Lin. correction"
-msgstr ""
+msgstr "Lineare Korrektur"
 
 # MSG_BABYSTEP_Z
 #: messages.c:13
@@ -786,117 +766,87 @@ msgid "Live adjust Z"
 msgstr "Z einstellen"
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr "Filament laden"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2281
 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:6839
 msgid "Loose pulley"
 msgstr "Lose Riemenscheibe"
 
-# MSG_M104_INVALID_EXTRUDER
-#: Marlin_main.cpp:7675
-msgid "M104 Invalid extruder "
-msgstr "M104 Falscher Extruder "
-
-# MSG_M105_INVALID_EXTRUDER
-#: Marlin_main.cpp:7678
-msgid "M105 Invalid extruder "
-msgstr "M105 Falscher Extruder "
-
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:5824
 msgid "Load to nozzle"
-msgstr ""
-
-# MSG_M109_INVALID_EXTRUDER
-#: Marlin_main.cpp:7681
-msgid "M109 Invalid extruder "
-msgstr "M109 Falscher Extruder "
+msgstr "In Druckduese laden"
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Erste-Schicht Kal."
 
-# MSG_M200_INVALID_EXTRUDER
-#: Marlin_main.cpp:5857
-msgid "M200 Invalid extruder "
-msgstr "M200 Falscher Extruder "
-
-# MSG_M218_INVALID_EXTRUDER
-#: Marlin_main.cpp:7684
-msgid "M218 Invalid extruder "
-msgstr "M218 Falscher Extruder "
-
-# MSG_M221_INVALID_EXTRUDER
-#: Marlin_main.cpp:7687
-msgid "M221 Invalid extruder "
-msgstr "M221 Falscher Extruder "
-
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Hauptmenue"
 
 # 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:4940
 msgid "Mesh Bed Leveling"
-msgstr "Mesh Bett Ausglei."
+msgstr "Mesh Bett Ausgleich"
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:474
 msgid "MMU OK. Resuming position..."
-msgstr "MMU OK. Position wiederherstellen..."
+msgstr "MMU OK. Position    wiederherstellen... "
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:450
+#: mmu.cpp:463
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Temperatur wiederherstellen..."
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2684
 msgid "Measured skew"
-msgstr ""
+msgstr "Schraeglauf"
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:485
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK.  Weiterdrucken..."
 
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
 msgstr "Modus    [Normal]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
 msgstr "Modus     [leise]"
 
 # 
-#: mmu.cpp:418
+#: mmu.cpp:431
 msgid "MMU needs user attention."
-msgstr ""
+msgstr "MMU erfordert Benutzereingriff."
 
 # MSG_STEALTH_MODE_ON
-#: messages.c:94
+#: messages.c:85
 msgid "Mode    [Stealth]"
 msgstr "Modus   [Stealth]"
 
@@ -906,122 +856,107 @@ msgid "Mode [auto power]"
 msgstr "Modus[Auto Power]"
 
 # MSG_SILENT_MODE_OFF
-#: messages.c:91
+#: messages.c:82
 msgid "Mode [high power]"
 msgstr "Modus[Hohe Leist]"
 
+# 
+#: ultralcd.cpp:2158
+msgid "MMU2 connected"
+msgstr ""
+
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr ""
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:4839
 msgid "Move axis"
 msgstr "Achse bewegen"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:3913
 msgid "Move X"
 msgstr "Bewege X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:3914
 msgid "Move Y"
 msgstr "Bewege Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:3915
 msgid "Move Z"
 msgstr "Bewege Z"
 
-# MSG_ERR_NO_CHECKSUM
-#: cmdqueue.cpp:456
-msgid "No Checksum with line number, Last Line: "
-msgstr "Keine Pruefsumme mit Zeilennummer, Letzte Zeile: "
-
 # MSG_NO_MOVE
 #: Marlin_main.cpp:4855
 msgid "No move."
 msgstr "Keine Bewegung."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:5804
 msgid "No SD card"
 msgstr "Keine SD Karte"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr "Nein"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:6787
 msgid "Not connected"
 msgstr "Nicht angeschlossen"
 
 # 
 #: util.cpp:293
 msgid "New firmware version available:"
-msgstr ""
+msgstr "Neue Firmware- Version verfuegbar:"
 
 # 
 #: 
 msgid "No "
-msgstr ""
+msgstr "Nein"
 
 # 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:4569
 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:4513
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Jetzt werde ich die Duese fuer PLA vorheizen."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Duese"
 
-# MSG_OK
-#: Marlin_main.cpp:6333
-msgid "ok"
-msgstr ""
-
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1488
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Alte Einstellungen gefunden. Standard PID, E-Steps u.s.w. werden gesetzt."
 
-# MSG_SD_OPEN_FILE_FAIL
-#: messages.c:79
-msgid "open failed, File: "
-msgstr "Fehler beim Oeffnen der Datei: "
-
-# MSG_ENDSTOP_OPEN
-#: messages.c:29
-msgid "open"
-msgstr "offen"
-
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4504
 msgid "Now remove the test print from steel sheet."
-msgstr ""
+msgstr "Testdruck jetzt von Stahlblech entfernen."
 
-# MSG_SD_OPENROOT_FAIL
-#: cardreader.cpp:196
-msgid "openRoot failed"
-msgstr "Zugriff auf Hauptverzeichnis misslungen"
+# 
+#: ultralcd.cpp:1880
+msgid "Nozzle FAN"
+msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:5778
 msgid "Pause print"
 msgstr "Druck pausieren"
 
@@ -1036,7 +971,7 @@ msgid "PID cal. finished"
 msgstr "PID Kalib. fertig"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:4946
 msgid "PID calibration"
 msgstr "PID Kalibrierung"
 
@@ -1046,12 +981,12 @@ 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_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4578
 msgid "Please clean heatbed and then press the knob."
 msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf."
 
@@ -1061,117 +996,117 @@ 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:6777
+#: ultralcd.cpp:6779
 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_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4411
+#: ultralcd.cpp:4412
 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:4314
+#: ultralcd.cpp:4315
 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:2988
 msgid "Please open idler and remove filament manually."
 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 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 den Knopf um das  Filament zu entladen."
+msgstr "Bitte druecken Sie den Knopf um das Filament zu entladen."
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4408
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
-msgstr ""
+msgstr "Legen Sie bitte PLA Filament in den ersten Schlauch der MMU und druecken Sie den Knopf,  um es zu laden."
 
 # MSG_PULL_OUT_FILAMENT c=20 r=4
-#: messages.c:73
+#: messages.c:66
 msgid "Please pull out filament immediately"
 msgstr "Bitte ziehen Sie das Filament sofort heraus"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1114
+#: mmu.cpp:1136
 msgid "Please remove filament and then press the knob."
-msgstr "Bitte Filament entfernen und dann den Knopf druecken."
+msgstr "Bitte Filament entfernen und dann den Knopf druecken"
 
 # 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 das Stahlblech vom Heizbett."
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4011
+#: Marlin_main.cpp:4010
 msgid "Please run XYZ calibration first."
 msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren."
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1082
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Bitte aktualisieren Sie die Firmware in der MMU2. Warte auf Reset."
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Bitte warten"
 
-# MSG_POWERUP
-#: messages.c:69
-msgid "PowerUp"
-msgstr "Einschalten"
-
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4503
 msgid "Please remove shipping helpers first."
-msgstr ""
+msgstr "Bitte zuerst Transportsicherungen entfernen."
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Duese vorheizen!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:5767
 msgid "Preheat"
 msgstr "Vorheizen"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr "Vorheizen der Duese. Bitte warten."
 
 # 
 #: util.cpp:297
 msgid "Please upgrade."
-msgstr ""
+msgstr "Bitte aktualisieren."
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9054
 msgid "Press knob to preheat nozzle and continue."
-msgstr "Bitte druecken Sie den Knopf um die  Duese vorzuheizen und fortzufahren."
+msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
+
+# 
+#: ultralcd.cpp:1932
+msgid "Power failures"
+msgstr ""
 
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Druck abgebrochen"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7086
 msgid "Print fan:"
 msgstr "Druckvent.:"
 
@@ -1185,30 +1120,25 @@ msgstr "Drucken von SD"
 msgid "Print paused"
 msgstr "Druck pausiert"
 
-# MSG_ERR_KILLED
-#: Marlin_main.cpp:7547
-msgid "Printer halted. kill() called!"
-msgstr "Printer gestoppt. kill() aufgerufen!"
-
 # 
-#: mmu.cpp:422
+#: mmu.cpp:435
 msgid "Press the knob to resume nozzle temperature."
-msgstr ""
+msgstr "Druecken Sie den Knopf um die Duesentemperatur wiederherzustellen"
 
 # 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  nicht kalibriert. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrie- rungsablauf."
+msgstr "Drucker wurde noch nicht kalibriert. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrie- rungsablauf."
 
-# MSG_ERR_STOPPED
-#: messages.c:32
-msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
-msgstr "Drucker aufgrund von Fehlern gestoppt. Fehler beheben und mit M999 neu starten. (Temperatur wird zurueckgesetzt. Nach dem Neustart neu einstellen!)"
+# 
+#: ultralcd.cpp:1882
+msgid "Print FAN"
+msgstr ""
 
 # WELCOME_MSG c=20
 #: 
 msgid "Prusa i3 MK2.5 ready."
-msgstr "Prusa i3 MK2.5 bereit"
+msgstr "Prusa i3 MK2.5 bereit."
 
 # WELCOME_MSG c=20
 #: 
@@ -1216,174 +1146,154 @@ msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 bereit."
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2144
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2892
 msgid "Rear side [um]"
 msgstr "Hinten [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8481
 msgid "Recovering print    "
 msgstr "Druck wiederherst    "
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:535
 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 MK2 ready."
-msgstr ""
+msgstr "Prusa i3 MK2 bereit."
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:4953
 msgid "Reset XYZ calibr."
-msgstr "XYZ Kalib.zurueck"
+msgstr "XYZ Kalibr. zuruecksetzen."
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2893
 msgid "Reset"
 msgstr "Ruecksetzen"
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:5782
 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"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:2890
 msgid "Right side[um]"
 msgstr "Rechts [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:4867
 msgid "RPi port     [on]"
 msgstr "RPi Port     [an]"
 
-# 
-#: Marlin_main.cpp:7076
-msgid "Resend"
-msgstr ""
-
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4865
 msgid "RPi port    [off]"
 msgstr "RPi Port    [aus]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4331
 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:4780
+#: ultralcd.cpp:4781
 msgid "SD card  [normal]"
 msgstr "SD Karte [normal]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:4779
 msgid "SD card [flshAir]"
-msgstr "SD Kart.[flshAir]"
-
-# MSG_SD_CARD_OK
-#: cardreader.cpp:202
-msgid "SD card ok"
-msgstr "SD Karte ok"
+msgstr "SD Karte[flshAir]"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2650
 msgid "Right"
-msgstr ""
-
-# MSG_SD_INIT_FAIL
-#: cardreader.cpp:186
-msgid "SD init fail"
-msgstr "SD Init fehlerhaft"
+msgstr "Rechts"
 
 # 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:4874
 msgid "Select language"
 msgstr "Waehle Sprache"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6351
 msgid "Self test OK"
 msgstr "Selbsttest OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6184
 msgid "Self test start  "
 msgstr "Selbsttest start "
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4927
 msgid "Selftest         "
 msgstr "Selbsttest "
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:6777
 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:1520
 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:4550
+#: ultralcd.cpp:4551
 msgid "Select nozzle preheat temperature which matches your material."
-msgstr ""
+msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht."
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Select PLA filament:"
-msgstr ""
+msgstr "PLA Filament auswaehlen:"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:2901
 msgid "Set temperature:"
 msgstr "Temp. einstellen:"
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Einstellungen"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:4950
 msgid "Show end stops"
 msgstr "Endschalter Status"
 
 # 
-#: ultralcd.cpp:4947
+#: ultralcd.cpp:4948
 msgid "Show pinda state"
-msgstr ""
-
-# MSG_DWELL
-#: Marlin_main.cpp:3752
-msgid "Sleep..."
-msgstr "Schlafzustand..."
+msgstr "Pinda-Status anzeigen"
 
 # MSG_FILE_CNT c=20 r=4
 #: cardreader.cpp:738
@@ -1391,22 +1301,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:4790
+#: ultralcd.cpp:4791
 msgid "Sort:      [none]"
 msgstr "Sort.:    [Keine]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:4789
 msgid "Sort:      [time]"
 msgstr "Sort.:     [Zeit]"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2687
 msgid "Severe skew"
-msgstr ""
+msgstr "Schwerer Schraeglauf"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:4790
 msgid "Sort:  [alphabet]"
 msgstr "Sort.: [Alphabet]"
 
@@ -1421,9 +1331,9 @@ msgid "Sound      [loud]"
 msgstr "Sound      [laut]"
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2686
 msgid "Slight skew"
-msgstr ""
+msgstr "Leichter Schraeglauf"
 
 # MSG_SOUND_MUTE c=17 r=1
 #: sound.h:8
@@ -1431,9 +1341,9 @@ msgid "Sound      [mute]"
 msgstr "Sound     [stumm]"
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4518
 msgid "Some problem encountered, Z-leveling enforced ..."
-msgstr ""
+msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..."
 
 # MSG_SOUND_ONCE c=17 r=1
 #: sound.h:6
@@ -1446,144 +1356,149 @@ msgid "Sound    [silent]"
 msgstr "Sound     [leise]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:5938
 msgid "Speed"
 msgstr "Geschwindigkeit"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Dreht sich"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4023
 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:5847
+#: ultralcd.cpp:5849
 msgid "Statistics  "
 msgstr "Statistiken "
 
 # 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:5856
 msgid "Support"
 msgstr ""
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:6857
 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:4861
 msgid "Temp. cal.   [on]"
 msgstr "Temp. Kal.   [AN]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:4859
 msgid "Temp. cal.  [off]"
 msgstr "Temp. Kal.  [AUS]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4959
 msgid "Temp. calibration"
 msgstr "Temp. kalibrieren"
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3526
 msgid "Temperature calibration failed"
 msgstr "Temperaturkalibrierung fehlgeschlagen"
 
 # 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 ist fertig + aktiv. Temp.kalibrierung kann ausgeschaltet werden im Menu Einstellungen -> Temp.kal."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:4837
 msgid "Temperature"
 msgstr "Temperatur"
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2189
 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 auszufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
 
 # 
-#: ultralcd.cpp:2539
+#: ultralcd.cpp:2540
 msgid "Total filament"
-msgstr ""
+msgstr "Gesamtes Filament"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2542
 msgid "Total print time"
-msgstr ""
-
-# MSG_ENDSTOP_HIT
-#: messages.c:28
-msgid "TRIGGERED"
-msgstr "AUSGELOEST"
+msgstr "Gesamte Druckzeit"
 
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:5764
 msgid "Tune"
 msgstr "Feineinstellung"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Unload"
-msgstr ""
+msgstr "Entladen"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5366
 msgid "Unload all"
+msgstr "Alles entladen"
+
+# 
+#: ultralcd.cpp:1931
+msgid "Total failures"
 msgstr ""
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr "Filament entladen"
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Filament auswerfen"
 
+# 
+#: ultralcd.cpp:1965
+msgid "Total"
+msgstr ""
+
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5084
 msgid "Used during print"
 msgstr "Beim Druck benutzt"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2192
 msgid "Voltages"
 msgstr "Spannungen"
 
-# MSG_SD_VOL_INIT_FAIL
-#: cardreader.cpp:191
-msgid "volume.init failed"
-msgstr "Dateisystem Init fehlerhaft"
+# 
+#: ultralcd.cpp:2166
+msgid "unknown"
+msgstr ""
 
 # MSG_USERWAIT
 #: Marlin_main.cpp:4823
@@ -1591,52 +1506,52 @@ msgid "Wait for user..."
 msgstr "Warte auf Benutzer.."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3045
 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:3008
+#: ultralcd.cpp:3009
 msgid "Waiting for PINDA probe cooling"
 msgstr "Warten, bis PINDA- Sonde abgekuehlt ist"
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4387
 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 ""
+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:1481
+#: Marlin_main.cpp:1480
 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:1473
+#: Marlin_main.cpp:1472
 msgid "Warning: motherboard type changed."
 msgstr "Warnung: Platinentyp wurde geaendert."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1477
+#: Marlin_main.cpp:1476
 msgid "Warning: printer type changed."
 msgstr "Warnung: Druckertyp wurde geaendert."
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:2977
 msgid "Was filament unload successful?"
 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:4924
 msgid "Wizard"
 msgstr "Assistent"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2182
 msgid "XYZ cal. details"
 msgstr "XYZ Kal. Details"
 
@@ -1646,107 +1561,107 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "XYZ-Kalibrierung fehlgeschlagen. Bitte schauen Sie in das Handbuch."
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Ja"
 
 # 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 Assistenten immer im Menu neu starten: Kalibrierung -> Assistent"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3496
+#: ultralcd.cpp:3497
 msgid "XYZ calibration all right. Skew will be corrected automatically."
-msgstr "XYZ Kalibrierung in Ordnung. Schiefheit wird automatisch korrigiert."
+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:3494
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
-msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schief."
+msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg."
 
 # 
-#: ultralcd.cpp:4632
+#: ultralcd.cpp:4633
 msgid "X-correct"
-msgstr ""
+msgstr "X-Korrektur"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3491
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
-msgstr "XYZ-Kalibrierung OK. X/Y-Achsen sind senkrecht zueinander. Glueckwunsch!"
+msgstr "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glueckwunsch!"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
-#: ultralcd.cpp:3474
+#: ultralcd.cpp:3475
 msgid "XYZ calibration compromised. Front calibration points not reachable."
-msgstr "XYZ-Kalibrierung ungenau. Vordere Kalibrierpunkte sind zu weit vorne."
+msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichbar."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3477
+#: ultralcd.cpp:3478
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
-msgstr "XYZ-Kalibrierung ungenau. Rechter vorderer Kalibrierpunkt ist zu weit vorne."
+msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3480
+#: ultralcd.cpp:3481
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
-msgstr "XYZ-Kalibrierung ungenau. Linker vorderer Kalibrierpunkt ist zu weit vorne."
+msgstr "XYZ-Kalibrierung beeintraechtigt. Linker vorderer Kalibrierpunkt nicht erreichbar."
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5323
+#: ultralcd.cpp:5324
 msgid "Load all"
 msgstr "Alle laden"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5325
 msgid "Load filament 1"
 msgstr "Filament 1 laden"
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3457
 msgid "XYZ calibration failed. Bed calibration point was not found."
-msgstr ""
+msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3463
 msgid "XYZ calibration failed. Front calibration points not reachable."
-msgstr ""
+msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3469
 msgid "XYZ calibration failed. Left front calibration point not reachable."
-msgstr ""
+msgstr "XYZ-Kalibrierung fehlgeschlagen. Linker vorderer Kalibrierpunkt nicht erreichbar."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5326
 msgid "Load filament 2"
 msgstr "Filament 2 laden"
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3466
 msgid "XYZ calibration failed. Right front calibration point not reachable."
-msgstr ""
+msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5327
 msgid "Load filament 3"
 msgstr "Filament 3 laden"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2647
 msgid "Y distance from min"
-msgstr ""
+msgstr "Y Entfernung vom Min"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4634
 msgid "Y-correct"
-msgstr ""
+msgstr "Y-Korrektur"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5328
 msgid "Load filament 4"
 msgstr "Filament 4 laden"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5331
 msgid "Load filament 5"
 msgstr "Filament 5 laden"
 

+ 436 - 521
lang/po/Firmware_es.po

@@ -7,98 +7,83 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 9. lis 2018 14:34:33\n"
-"PO-Revision-Date: pá 9. lis 2018 14:34:33\n"
+"POT-Creation-Date: pá 30. lis 2018 18:50:02\n"
+"PO-Revision-Date: pá 30. lis 2018 18:50:02\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "Last-Translator: \n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-# MSG_PLANNER_BUFFER_BYTES
-#: Marlin_main.cpp:1184
-msgid "  PlannerBufferBytes: "
-msgstr " PlannerBufferBytes: "
-
-# MSG_ERR_COLD_EXTRUDE_STOP
-#: planner.cpp:761
-msgid " cold extrusion prevented"
-msgstr " extrusion en frio prevenida"
-
-# MSG_FREE_MEMORY
-#: Marlin_main.cpp:1182
-msgid " Free Memory: "
-msgstr " Memoria Libre: "
-
-# MSG_CONFIGURATION_VER
-#: Marlin_main.cpp:1172
-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"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2702
 msgid "[0;0] point offset"
 msgstr "[0;0] punto offset"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:3968
 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:3979
+#: ultralcd.cpp:3980
 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"
 
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:2831
 msgid "Adjusting Z"
 msgstr "Ajustar Z"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7074
 msgid "All correct      "
-msgstr "Todo bien      "
+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:2026
+msgid "Ambient"
+msgstr ""
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2245
 msgid "and press the knob"
 msgstr "Haz clic"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3120
 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:4706
-msgid "Auto deplete [on]"
-msgstr "Auto despleg.[on]"
+#: ultralcd.cpp:4707
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin    [on]"
 
 # 
-#: ultralcd.cpp:4702
-msgid "Auto deplete[N/A]"
-msgstr ""
+#: ultralcd.cpp:4703
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin   [N/A]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4710
-msgid "Auto deplete[off]"
-msgstr "Auto despleg[off]"
+#: ultralcd.cpp:4711
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [off]"
 
 # MSG_AUTO_HOME
 #: messages.c:11
@@ -106,32 +91,32 @@ msgid "Auto home"
 msgstr "Llevar al origen"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5836
 msgid "AutoLoad filament"
 msgstr "Carga automatica de filamento"
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:3995
 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:2438
+#: ultralcd.cpp:2439
 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:6845
+#: ultralcd.cpp:6847
 msgid "Axis length"
 msgstr "Longitud del eje"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:6849
 msgid "Axis"
 msgstr "Eje"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:6791
 msgid "Bed / Heater"
 msgstr "Base / Calentador"
 
@@ -146,7 +131,7 @@ msgid "Bed Heating"
 msgstr "Calentando Base"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:4945
 msgid "Bed level correct"
 msgstr "Corr. de la cama"
 
@@ -156,47 +141,47 @@ 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:4466
 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:4470
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Nivelacion fallada. Sensor funciona demasiado pronto. Esperando reset."
 
 # MSG_BED
 #: messages.c:15
 msgid "Bed"
-msgstr "Base calefactable"
+msgstr "Base calefactable "
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2052
 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_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:4934
 msgid "Calibrate XYZ"
 msgstr "Calibrar XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Calibrar Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4176
 msgid "Calibrate"
 msgstr "Calibrar"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -206,7 +191,7 @@ msgid "Calibrating Z"
 msgstr "Calibrando Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -216,27 +201,22 @@ msgid "Calibration done"
 msgstr "Calibracion OK"
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr "Calibracion"
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Cancel"
-msgstr ""
-
-# MSG_SD_CANT_ENTER_SUBDIR
-#: cardreader.cpp:662
-msgid "Cannot enter subdir: "
-msgstr "Sin acceso subdir: "
+msgstr "Cancelar"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#: ultralcd.cpp:7425
 msgid "Card inserted"
 msgstr "Tarjeta insertada"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7431
 msgid "Card removed"
 msgstr "Tarjeta retirada"
 
@@ -251,9 +231,9 @@ msgid "Cooldown"
 msgstr "Enfriar"
 
 # 
-#: ultralcd.cpp:4108
-msgid "Copy selected language from XFLASH?"
-msgstr ""
+#: ultralcd.cpp:4109
+msgid "Copy selected language?"
+msgstr "Copiar idioma seleccionado?"
 
 # MSG_CRASHDETECT_ON
 #: messages.c:27
@@ -276,22 +256,27 @@ msgid "Crash detected."
 msgstr "Choque detectado."
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:603
 msgid "Crash detected. Resume print?"
-msgstr "Choque detectado. Reanudar impres?"
+msgstr "Choque detectado. Continuar impresion?"
+
+# 
+#: ultralcd.cpp:1932
+msgid "Crash"
+msgstr ""
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5085
 msgid "Current"
 msgstr "Actual"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2152
 msgid "Date:"
 msgstr "Fecha:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:4841
 msgid "Disable steppers"
 msgstr "Apagar motores"
 
@@ -301,197 +286,192 @@ 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:4576
 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:4636
+#: ultralcd.cpp:4637
 msgid "E-correct"
 msgstr "E-correcion"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:5825
 msgid "Eject filament"
 msgstr "Expulsar filamento"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5352
 msgid "Eject filament 1"
-msgstr "Expulsar filam. 1"
+msgstr "Expulsar filamento 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5353
 msgid "Eject filament 2"
-msgstr "Expulsar filam. 2"
+msgstr "Expulsar filamento 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5354
 msgid "Eject filament 3"
-msgstr "Expulsar filam. 3"
+msgstr "Expulsar filamento 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5355
 msgid "Eject filament 4"
-msgstr "Expulsar filam. 4"
+msgstr "Expulsar filamento 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5356
 msgid "Eject filament 5"
-msgstr "Expulsar filam. 5"
+msgstr "Expulsar filamento 5"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Eject"
-msgstr ""
+msgstr "Expulsar"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1128
 msgid "Ejecting filament"
 msgstr "Expulsando filamento"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:6815
 msgid "Endstop not hit"
 msgstr "Endstop no alcanzado"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6809
 msgid "Endstop"
 msgstr ""
 
-# MSG_ENDSTOPS_HIT
-#: messages.c:30
-msgid "endstops hit: "
-msgstr "endstops golpean: "
-
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:6797
 msgid "Endstops"
 msgstr ""
 
-# MSG_Enqueing
-#: 
-msgid "enqueing \x22"
-msgstr ""
-
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:5871
 msgid "Error - static memory has been overwritten"
 msgstr "Error - se ha sobre-escrito la memoria estatica"
 
-# MSG_SD_ERR_WRITE_TO_FILE
-#: messages.c:78
-msgid "error writing to file"
-msgstr "error al escribir arch."
-
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4008
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion."
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr ""
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:984
 msgid "External SPI flash W25X20CL not responding."
-msgstr ""
+msgstr "No responde el flasheo externo SPI W25X20CL"
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5382
 msgid "Extruder 1"
-msgstr ""
+msgstr "Extrusor 1"
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5383
 msgid "Extruder 2"
-msgstr ""
+msgstr "Extrusor 2"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5384
 msgid "Extruder 3"
-msgstr ""
+msgstr "Extrusor 3"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5385
 msgid "Extruder 4"
-msgstr ""
+msgstr "Extrusor 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7083
 msgid "Extruder fan:"
 msgstr "Ventilador del extrusor:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2183
 msgid "Extruder info"
 msgstr "Informacion del extrusor"
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr "Extruir"
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4675
 msgid "F. autoload  [on]"
-msgstr "Autocarga F.[act]"
+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 F.[N/D]"
+msgstr "Autocarg.Fil[N/D]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4676
+#: ultralcd.cpp:4677
 msgid "F. autoload [off]"
-msgstr "Autocarga f.[ina]"
+msgstr "Autocarg.Fil[ina]"
+
+# 
+#: ultralcd.cpp:5853
+msgid "Fail stats"
+msgstr ""
 
 # 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:4848
 msgid "Fans check   [on]"
-msgstr "Compro. vent[act]"
+msgstr "Comprob.vent[act]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:4850
 msgid "Fans check  [off]"
-msgstr "Compro. vent[ina]"
+msgstr "Comprob.vent[ina]"
 
 # MSG_FSENSOR_ON
-#: messages.c:50
+#: messages.c:45
 msgid "Fil. sensor  [on]"
 msgstr "Sensor Fil. [act]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3105
+#: Marlin_main.cpp:3104
 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:4655
 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 Fil. [ina]"
 
+# 
+#: ultralcd.cpp:1932
+msgid "Filam. runouts"
+msgstr ""
+
 # 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?"
 
@@ -501,119 +481,119 @@ msgid "Filament not loaded"
 msgstr "Fil. no introducido"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6863
 msgid "Filament sensor"
 msgstr "Sensor de filamento"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7092
 msgid "Filament sensor:"
 msgstr "Sensor de filamento:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2513
 msgid "Filament used"
 msgstr "Filamento usado"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2515
 msgid "Print time"
-msgstr "Tiempo de imp."
+msgstr "Tiempo de imp.:"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7209
 msgid "File incomplete. Continue anyway?"
-msgstr "Archivo incompleto. Continuar de todos modos?"
+msgstr "Archivo incompleto. ?Continuar de todos modos?"
 
 # 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:4925
 msgid "First layer cal."
 msgstr "Cal. primera cap."
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4488
 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:436
 msgid "Fix the issue and then press button on MMU unit."
-msgstr ""
+msgstr "Corrige el problema y pulsa el boton en la unidad MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:5944
 msgid "Flow"
 msgstr "Flujo"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2145
 msgid "forum.prusa3d.com"
 msgstr ""
 
 # 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:2891
 msgid "Front side[um]"
 msgstr "Frontal [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6855
 msgid "Front/left fans"
 msgstr "Ventiladores frontal/izquierdo"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:6785
 msgid "Heater/Thermistor"
 msgstr "Calentador/Termistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7400
 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_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
-msgstr "Calentando"
+msgstr "Calentando..."
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4467
 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:2146
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:5832
 msgid "Change extruder"
-msgstr ""
+msgstr "Cambiar extrusor."
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Cambiar filamento"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2256
 msgid "Change success!"
-msgstr "Cambio correcto!"
+msgstr "Cambio correcto"
 
 # MSG_CORRECTLY c=20
 #: ultralcd.cpp:2333
@@ -621,72 +601,67 @@ msgid "Changed correctly?"
 msgstr "Cambio correcto?"
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
-msgstr "Control base cal.     "
+msgstr "Control base cal."
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7065
 msgid "Checking endstops"
 msgstr "Control endstops"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7066
 msgid "Checking hotend  "
-msgstr "Control fusor  "
+msgstr "Control fusor"
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
-#: messages.c:87
+#: messages.c:78
 msgid "Checking sensors "
-msgstr "Comprobando los sensores "
+msgstr "Comprobando los sensores"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7067
 msgid "Checking X axis  "
-msgstr "Control sensor X  "
+msgstr "Control sensor X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7068
 msgid "Checking Y axis  "
-msgstr "Control sensor Y  "
+msgstr "Control sensor Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7069
 msgid "Checking Z axis  "
-msgstr "Control sensor Z  "
-
-# MSG_ERR_CHECKSUM_MISMATCH
-#: cmdqueue.cpp:444
-msgid "checksum mismatch, Last Line: "
-msgstr "inconcluencia checksum, Ult. Linea: "
+msgstr "Control sensor Z"
 
 # 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 "Elegir filamento:"
+msgstr "Elije filamento:"
 
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
 msgstr "Filamento"
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4497
 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:4505
 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:4570
 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,89 +671,94 @@ msgid "Improving bed calibration point"
 msgstr "Mejorando punto de calibracion base"
 
 # MSG_WATCH
-#: messages.c:102
+#: messages.c:93
 msgid "Info screen"
 msgstr "Monitorizar"
 
 # 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:4530
 msgid "Is filament 1 loaded?"
-msgstr ""
+msgstr "?Esta cargado el filamento 1?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2242
 msgid "Insert filament"
 msgstr "Introducir filamento"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4533
 msgid "Is filament loaded?"
 msgstr "Esta el filamento cargado?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4564
 msgid "Is it PLA filament?"
 msgstr "Es el filamento PLA?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4310
 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
 msgid "Iteration "
 msgstr "Reiteracion "
 
-# MSG_KILLED
-#: Marlin_main.cpp:7552
-msgid "KILLED. "
-msgstr "PARADA DE EMERGENCIA. "
+# 
+#: ultralcd.cpp:1949
+msgid "Last print failures"
+msgstr ""
+
+# 
+#: ultralcd.cpp:1964
+msgid "Last print"
+msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Vent. izquierdo?"
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:2649
 msgid "Left"
-msgstr ""
+msgstr "Izquierda"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:2889
 msgid "Left side [um]"
 msgstr "Izquierda [um]"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:4855
 msgid "Lin. correction"
-msgstr ""
+msgstr "Correccion de Linealidad"
 
 # MSG_BABYSTEP_Z
 #: messages.c:13
@@ -786,117 +766,87 @@ msgid "Live adjust Z"
 msgstr "Micropaso Eje Z"
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr "Introducir filam."
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2281
 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:6839
 msgid "Loose pulley"
 msgstr "Polea suelta"
 
-# MSG_M104_INVALID_EXTRUDER
-#: Marlin_main.cpp:7675
-msgid "M104 Invalid extruder "
-msgstr "M104 Extrusor invalido "
-
-# MSG_M105_INVALID_EXTRUDER
-#: Marlin_main.cpp:7678
-msgid "M105 Invalid extruder "
-msgstr "M105 Extrusor invalido "
-
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:5824
 msgid "Load to nozzle"
-msgstr ""
-
-# MSG_M109_INVALID_EXTRUDER
-#: Marlin_main.cpp:7681
-msgid "M109 Invalid extruder "
-msgstr "M109 Extrusor invalido "
+msgstr "Cargar a la boquilla"
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Cal. primera cap."
 
-# MSG_M200_INVALID_EXTRUDER
-#: Marlin_main.cpp:5857
-msgid "M200 Invalid extruder "
-msgstr "M200 Extrusor invalido "
-
-# MSG_M218_INVALID_EXTRUDER
-#: Marlin_main.cpp:7684
-msgid "M218 Invalid extruder "
-msgstr "M218 Extrusor invalido "
-
-# MSG_M221_INVALID_EXTRUDER
-#: Marlin_main.cpp:7687
-msgid "M221 Invalid extruder "
-msgstr "M221 Extrusor invalido "
-
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Menu principal"
 
 # 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:4940
 msgid "Mesh Bed Leveling"
 msgstr "Nivelacion Mesh Level"
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:474
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Restaurando posicion..."
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:450
+#: mmu.cpp:463
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Restaurando temperatura..."
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2684
 msgid "Measured skew"
-msgstr ""
+msgstr "Desviacion medida:"
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:485
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Resumiendo..."
 
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
 msgstr "Modo     [Normal]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
 msgstr "Modo   [silencio]"
 
 # 
-#: mmu.cpp:418
+#: mmu.cpp:431
 msgid "MMU needs user attention."
-msgstr ""
+msgstr "MMU necesita atencion del usuario."
 
 # MSG_STEALTH_MODE_ON
-#: messages.c:94
+#: messages.c:85
 msgid "Mode    [Stealth]"
 msgstr "Modo   [Silencio]"
 
@@ -906,122 +856,107 @@ msgid "Mode [auto power]"
 msgstr "Modo[fuerza auto]"
 
 # MSG_SILENT_MODE_OFF
-#: messages.c:91
+#: messages.c:82
 msgid "Mode [high power]"
 msgstr "Modo [rend.pleno]"
 
+# 
+#: ultralcd.cpp:2158
+msgid "MMU2 connected"
+msgstr ""
+
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr ""
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:4839
 msgid "Move axis"
 msgstr "Mover ejes"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:3913
 msgid "Move X"
 msgstr "Mover X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:3914
 msgid "Move Y"
 msgstr "Mover Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:3915
 msgid "Move Z"
 msgstr "Mover Z"
 
-# MSG_ERR_NO_CHECKSUM
-#: cmdqueue.cpp:456
-msgid "No Checksum with line number, Last Line: "
-msgstr "Sin Checksum con linea numero, Ult. Linea: "
-
 # MSG_NO_MOVE
 #: Marlin_main.cpp:4855
 msgid "No move."
-msgstr "Sin movimiento."
+msgstr "Sin movimiento"
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:5804
 msgid "No SD card"
 msgstr "No hay tarjeta SD"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr ""
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:6787
 msgid "Not connected"
-msgstr "No hay conexion"
+msgstr "No hay conexion "
 
 # 
 #: util.cpp:293
 msgid "New firmware version available:"
-msgstr ""
+msgstr "Nuevo firmware disponible:"
 
 # 
 #: 
 msgid "No "
-msgstr ""
+msgstr "No"
 
 # 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:4569
 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:4513
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Voy a precalentar la boquilla para PLA ahora."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Boquilla"
 
-# MSG_OK
-#: Marlin_main.cpp:6333
-msgid "ok"
-msgstr ""
-
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1488
 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."
-
-# MSG_SD_OPEN_FILE_FAIL
-#: messages.c:79
-msgid "open failed, File: "
-msgstr "error apertura, Arch.: "
-
-# MSG_ENDSTOP_OPEN
-#: messages.c:29
-msgid "open"
-msgstr "abrir"
+msgstr "Se han encontrado ajustes anteriores. Se ajustara el PID, los pasos del extrusor, etc"
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4504
 msgid "Now remove the test print from steel sheet."
-msgstr ""
+msgstr "Ahora retira la prueba de la lamina de acero."
 
-# MSG_SD_OPENROOT_FAIL
-#: cardreader.cpp:196
-msgid "openRoot failed"
-msgstr "fallo openRoot"
+# 
+#: ultralcd.cpp:1880
+msgid "Nozzle FAN"
+msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:5778
 msgid "Pause print"
 msgstr "Pausar impresion"
 
@@ -1036,7 +971,7 @@ msgid "PID cal. finished"
 msgstr "Cal. PID terminada"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:4946
 msgid "PID calibration"
 msgstr "Calibracion PID"
 
@@ -1046,14 +981,14 @@ 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_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4578
 msgid "Please clean heatbed and then press the knob."
-msgstr "Limpia la superficie de la base, por favor, y haz clic."
+msgstr "Limpia la superficie de la base, por favor, y haz clic"
 
 # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8
 #: messages.c:22
@@ -1061,117 +996,117 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Limpia boquilla para calibracion. Click cuando acabes."
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:6779
 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."
+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:4411
+#: ultralcd.cpp:4412
 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:4314
+#: ultralcd.cpp:4315
 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:2988
 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"
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4408
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
-msgstr ""
+msgstr "Por favor introduce el filamento al primer tubo MMU, despues presiona el dial para imprimirlo."
 
 # 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:1136
 msgid "Please remove filament and then press the knob."
 msgstr "Por favor quite el filamento y luego presione el dial."
 
 # 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:4010
 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:1082
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Por favor actualice el firmware en tu MMU2. Esperando el reseteo."
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Por Favor Espere"
 
-# MSG_POWERUP
-#: messages.c:69
-msgid "PowerUp"
-msgstr "Encendido"
-
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4503
 msgid "Please remove shipping helpers first."
-msgstr ""
+msgstr "Por favor retira los soportes de envio primero."
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Precalienta extrusor!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:5767
 msgid "Preheat"
 msgstr "Precalentar"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr "Precalentando nozzle. Espera por favor."
 
 # 
 #: util.cpp:297
 msgid "Please upgrade."
-msgstr ""
+msgstr "Actualize por favor"
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9054
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Pulsa el dial para precalentar la boquilla y continue."
 
+# 
+#: ultralcd.cpp:1932
+msgid "Power failures"
+msgstr ""
+
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Impresion cancelada"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7086
 msgid "Print fan:"
 msgstr "Ventilador del fusor:"
 
@@ -1185,30 +1120,25 @@ msgstr "Menu tarjeta SD"
 msgid "Print paused"
 msgstr "Impresion en pausa"
 
-# MSG_ERR_KILLED
-#: Marlin_main.cpp:7547
-msgid "Printer halted. kill() called!"
-msgstr "Impresora detenida. kill() activado!"
-
 # 
-#: mmu.cpp:422
+#: mmu.cpp:435
 msgid "Press the knob to resume nozzle temperature."
-msgstr ""
+msgstr "Presiona el dial para continuar con la temperatura de la boquilla."
 
 # 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 calibrada todavia. Por favor usa el manual capitulo Primeros pasos Calibracion flujo."
 
-# MSG_ERR_STOPPED
-#: messages.c:32
-msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
-msgstr "Impresora parada debido a errores. Arregle el error y use M999 para reinicio. (Temperatura se resetea. Ajustar despues de reinicio)"
+# 
+#: ultralcd.cpp:1882
+msgid "Print FAN"
+msgstr ""
 
 # WELCOME_MSG c=20
 #: 
 msgid "Prusa i3 MK2.5 ready."
-msgstr "Prusa i3 MK2.5 prep."
+msgstr "Preparado para Prusa i3 MK2.5."
 
 # WELCOME_MSG c=20
 #: 
@@ -1216,199 +1146,179 @@ msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 prep."
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2144
 msgid "prusa3d.com"
 msgstr "prusa3d.es"
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2892
 msgid "Rear side [um]"
 msgstr "Trasera [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8481
 msgid "Recovering print    "
-msgstr "Recuperando impresion    "
+msgstr "Recuperando impresion"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:535
 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 MK2 ready."
-msgstr ""
+msgstr "Preparado para i3 MK2."
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:4953
 msgid "Reset XYZ calibr."
 msgstr ""
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2893
 msgid "Reset"
 msgstr ""
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:5782
 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"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:2890
 msgid "Right side[um]"
 msgstr "Derecha [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:4867
 msgid "RPi port     [on]"
 msgstr "Puerto RPi  [act]"
 
-# 
-#: Marlin_main.cpp:7076
-msgid "Resend"
-msgstr ""
-
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4865
 msgid "RPi port    [off]"
 msgstr "Puerto RPi  [ina]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4331
 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:4781
 msgid "SD card  [normal]"
 msgstr "Tarj. SD [normal]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:4779
 msgid "SD card [flshAir]"
-msgstr "Tarj.SD [flshAir]"
-
-# MSG_SD_CARD_OK
-#: cardreader.cpp:202
-msgid "SD card ok"
-msgstr "Tarj. SD ok"
+msgstr "Tarj. SD[FlshAir]"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2650
 msgid "Right"
-msgstr ""
-
-# MSG_SD_INIT_FAIL
-#: cardreader.cpp:186
-msgid "SD init fail"
-msgstr "Error init SD"
+msgstr "Derecha"
 
 # 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:4874
 msgid "Select language"
 msgstr "Cambiar el idioma"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6351
 msgid "Self test OK"
 msgstr ""
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6184
 msgid "Self test start  "
-msgstr "Iniciar Selftest  "
+msgstr "Iniciar Selftest"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4927
 msgid "Selftest         "
-msgstr ""
+msgstr "Selftest"
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:6777
 msgid "Selftest error !"
 msgstr "Error Selftest !"
 
 # MSG_SELFTEST_FAILED c=20
-#: messages.c:82
+#: messages.c:73
 msgid "Selftest failed  "
-msgstr "Fallo Selftest  "
+msgstr "Fallo Selftest"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1521
+#: Marlin_main.cpp:1520
 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:4550
+#: ultralcd.cpp:4551
 msgid "Select nozzle preheat temperature which matches your material."
-msgstr ""
+msgstr "Selecciona la temperatura para precalentar la boquilla que se ajuste a tu material. "
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Select PLA filament:"
-msgstr ""
+msgstr "Seleccionar filamento PLA:"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:2901
 msgid "Set temperature:"
 msgstr "Establecer temp.:"
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Configuracion"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:4950
 msgid "Show end stops"
 msgstr "Mostrar endstops"
 
 # 
-#: ultralcd.cpp:4947
+#: ultralcd.cpp:4948
 msgid "Show pinda state"
-msgstr ""
-
-# MSG_DWELL
-#: Marlin_main.cpp:3752
-msgid "Sleep..."
-msgstr "En reposo..."
+msgstr "Mostrar estado pinda"
 
 # 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 "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar."
+msgstr "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. "
 
 # MSG_SORT_NONE c=17 r=1
-#: ultralcd.cpp:4790
+#: ultralcd.cpp:4791
 msgid "Sort:      [none]"
-msgstr "Ordena: [Ninguno]"
+msgstr "Ordenar:   [nada]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:4789
 msgid "Sort:      [time]"
 msgstr "Orden:    [Fecha]"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2687
 msgid "Severe skew"
-msgstr ""
+msgstr "Inclinacion severa"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:4790
 msgid "Sort:  [alphabet]"
-msgstr "Orden: [Alfabet.]"
+msgstr "Ordenar:[alfabet]"
 
 # MSG_SORTING c=20 r=1
 #: cardreader.cpp:745
@@ -1421,19 +1331,19 @@ msgid "Sound      [loud]"
 msgstr "Sonido     [alto]"
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2686
 msgid "Slight skew"
-msgstr ""
+msgstr "Ligeramente inclinado"
 
 # MSG_SOUND_MUTE c=17 r=1
 #: sound.h:8
 msgid "Sound      [mute]"
-msgstr "Sonido  [silenc.]"
+msgstr "Sonido[silenciad]"
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4518
 msgid "Some problem encountered, Z-leveling enforced ..."
-msgstr ""
+msgstr "Problema encontrado, nivelacion Z forzosa ..."
 
 # MSG_SOUND_ONCE c=17 r=1
 #: sound.h:6
@@ -1446,197 +1356,202 @@ msgid "Sound    [silent]"
 msgstr "Sonido[silencios]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:5938
 msgid "Speed"
 msgstr "Velocidad"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Ventilador girando"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4023
 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:5849
 msgid "Statistics  "
 msgstr "Estadisticas "
 
 # 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. "
+msgstr "PARADA"
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:5856
 msgid "Support"
 msgstr "Soporte"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:6857
 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:4861
 msgid "Temp. cal.   [on]"
 msgstr "Cal. temp.   [ON]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:4859
 msgid "Temp. cal.  [off]"
 msgstr "Cal. temp.  [OFF]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4959
 msgid "Temp. calibration"
 msgstr "Calibracion temp."
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3526
 msgid "Temperature calibration failed"
 msgstr "Fallo de la calibracion de temperatura"
 
 # 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_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:4837
 msgid "Temperature"
 msgstr "Temperatura"
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2189
 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:2540
 msgid "Total filament"
-msgstr ""
+msgstr "Filamento total:"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2542
 msgid "Total print time"
-msgstr ""
-
-# MSG_ENDSTOP_HIT
-#: messages.c:28
-msgid "TRIGGERED"
-msgstr "ACTIVADO"
+msgstr "Tiempo total :"
 
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:5764
 msgid "Tune"
 msgstr "Ajustar"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Unload"
-msgstr ""
+msgstr "Descargar"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5366
 msgid "Unload all"
+msgstr "Soltar todos fil."
+
+# 
+#: ultralcd.cpp:1931
+msgid "Total failures"
 msgstr ""
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr "Soltar filamento"
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Soltando filamento"
 
+# 
+#: ultralcd.cpp:1965
+msgid "Total"
+msgstr ""
+
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5084
 msgid "Used during print"
 msgstr "Usado en impresion"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2192
 msgid "Voltages"
 msgstr "Voltajes"
 
-# MSG_SD_VOL_INIT_FAIL
-#: cardreader.cpp:191
-msgid "volume.init failed"
-msgstr "fallo volume.init"
+# 
+#: ultralcd.cpp:2166
+msgid "unknown"
+msgstr ""
 
 # MSG_USERWAIT
 #: Marlin_main.cpp:4823
 msgid "Wait for user..."
-msgstr "Esperando ordenes..."
+msgstr "Esperando ordenes"
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3045
 msgid "Waiting for nozzle and bed cooling"
-msgstr "Esperando enfriamiento de la base y extrusor"
+msgstr "Esperando enfriamiento de la base y extrusor."
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
-#: ultralcd.cpp:3008
+#: ultralcd.cpp:3009
 msgid "Waiting for PINDA probe cooling"
 msgstr "Esperando a que se enfrie la sonda PINDA"
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4387
 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 ""
+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:1481
+#: Marlin_main.cpp:1480
 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:1472
 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:1476
 msgid "Warning: printer type changed."
 msgstr "Cuidado: Ha cambiado el tipo de impresora."
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:2977
 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:4924
 msgid "Wizard"
 msgstr ""
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2182
 msgid "XYZ cal. details"
 msgstr "Detalles de calibracion XYZ"
 
@@ -1646,107 +1561,107 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "Calibracion XYZ fallada. Consulta el manual por favor."
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Si"
 
 # 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."
+msgstr "Siempre puedes acceder al asistente desde Calibracion -> Wizard"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3496
+#: ultralcd.cpp:3497
 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:3494
 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:4632
+#: ultralcd.cpp:4633
 msgid "X-correct"
-msgstr ""
+msgstr "X-correcion"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3491
 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:3474
+#: ultralcd.cpp:3475
 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:3477
+#: ultralcd.cpp:3478
 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:3480
+#: ultralcd.cpp:3481
 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:5323
+#: ultralcd.cpp:5324
 msgid "Load all"
 msgstr "Intr. todos fil."
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5325
 msgid "Load filament 1"
 msgstr "Introducir fil. 1"
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3457
 msgid "XYZ calibration failed. Bed calibration point was not found."
-msgstr ""
+msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3463
 msgid "XYZ calibration failed. Front calibration points not reachable."
-msgstr ""
+msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3469
 msgid "XYZ calibration failed. Left front calibration point not reachable."
-msgstr ""
+msgstr "Calibracion XYZ fallada. Punto frontal izquierdo no alcanzable."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5326
 msgid "Load filament 2"
 msgstr "Introducir fil. 2"
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3466
 msgid "XYZ calibration failed. Right front calibration point not reachable."
-msgstr ""
+msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5327
 msgid "Load filament 3"
 msgstr "Introducir fil. 3"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2647
 msgid "Y distance from min"
-msgstr ""
+msgstr "Distancia en Y desde el min"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4634
 msgid "Y-correct"
-msgstr ""
+msgstr "Y-correcion"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5328
 msgid "Load filament 4"
 msgstr "Introducir fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5331
 msgid "Load filament 5"
-msgstr "Introducir fil. 5"
+msgstr "Cargar filamento 5"
 

+ 489 - 574
lang/po/Firmware_fr.po

@@ -7,131 +7,116 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fr\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 9. lis 2018 14:36:29\n"
-"PO-Revision-Date: pá 9. lis 2018 14:36:29\n"
+"POT-Creation-Date: pá 30. lis 2018 18:51:36\n"
+"PO-Revision-Date: pá 30. lis 2018 18:51:36\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "Last-Translator: \n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-# MSG_PLANNER_BUFFER_BYTES
-#: Marlin_main.cpp:1184
-msgid "  PlannerBufferBytes: "
-msgstr "  PlannerBufferBytes : "
-
-# MSG_ERR_COLD_EXTRUDE_STOP
-#: planner.cpp:761
-msgid " cold extrusion prevented"
-msgstr " extrusion a froid evitee"
-
-# MSG_FREE_MEMORY
-#: Marlin_main.cpp:1182
-msgid " Free Memory: "
-msgstr " Memoire libre: "
-
-# MSG_CONFIGURATION_VER
-#: Marlin_main.cpp:1172
-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"
+msgstr "de 4"
 
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14
-#: messages.c:61
+#: messages.c:56
 msgid " of 9"
-msgstr " de 9"
+msgstr "de 9"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2702
 msgid "[0;0] point offset"
 msgstr "Offset point [0;0]"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:3968
 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:3979
+#: ultralcd.cpp:3980
 msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode"
-msgstr "\x1b[2JATTENTION :\x1b[1;0HDetection de crash\x1b[2;0Hdesactivee en mode\x1b[3;0HFurtif"
+msgstr "\x1b[2JATTENTION :\x1b[1;0H Detection de crash\x1b[2;0H desactivee en mode\x1b[3;0H Furtif"
 
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:2831
 msgid "Adjusting Z"
 msgstr "Ajustement de Z"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7074
 msgid "All correct      "
-msgstr "Tout est 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. Bonne impression !"
 
+# 
+#: ultralcd.cpp:2026
+msgid "Ambient"
+msgstr "Ambiant"
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2245
 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:3120
 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:4706
-msgid "Auto deplete [on]"
-msgstr "Purge auto   [on]"
+#: ultralcd.cpp:4707
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin    [on]"
 
 # 
-#: ultralcd.cpp:4702
-msgid "Auto deplete[N/A]"
-msgstr ""
+#: ultralcd.cpp:4703
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin   [N/A]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4710
-msgid "Auto deplete[off]"
-msgstr "Purge auto  [off]"
+#: ultralcd.cpp:4711
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [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:5836
 msgid "AutoLoad filament"
 msgstr "AutoCharge du filament"
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:3995
 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:2438
+#: ultralcd.cpp:2439
 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:6845
+#: ultralcd.cpp:6847
 msgid "Axis length"
 msgstr "Longueur de l'axe"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:6849
 msgid "Axis"
 msgstr "Axe"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:6791
 msgid "Bed / Heater"
 msgstr "Lit / Chauffage"
 
@@ -146,9 +131,9 @@ msgid "Bed Heating"
 msgstr "Chauffe du lit"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:4945
 msgid "Bed level correct"
-msgstr "Correction niveau lit"
+msgstr "Cor courbure du lit"
 
 # MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4
 #: messages.c:18
@@ -156,12 +141,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:4467
+#: Marlin_main.cpp:4466
 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:4471
+#: Marlin_main.cpp:4470
 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."
 
@@ -171,32 +156,32 @@ msgid "Bed"
 msgstr "Lit"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2052
 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. Recup. impression ?"
 
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:4934
 msgid "Calibrate XYZ"
 msgstr "Calibrer XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Calibrer Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4176
 msgid "Calibrate"
 msgstr "Calibrer"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -206,7 +191,7 @@ msgid "Calibrating Z"
 msgstr "Calibration de Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -215,28 +200,23 @@ msgstr "Calibration de Z. Tournez le bouton pour monter le chariot de l'axe Z ju
 msgid "Calibration done"
 msgstr "Calibration terminee"
 
-# 
-#: ultralcd.cpp:4300
-msgid "Cancel"
-msgstr ""
-
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
-msgstr ""
+msgstr "Calibration"
 
-# MSG_SD_CANT_ENTER_SUBDIR
-#: cardreader.cpp:662
-msgid "Cannot enter subdir: "
-msgstr "Impossible d'entrer dans le repertoire: "
+# 
+#: ultralcd.cpp:4301
+msgid "Cancel"
+msgstr "Annuler"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#: ultralcd.cpp:7425
 msgid "Card inserted"
 msgstr "Carte  inseree"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7431
 msgid "Card removed"
 msgstr "Carte retiree"
 
@@ -245,20 +225,20 @@ msgstr "Carte retiree"
 msgid "Color not correct"
 msgstr "Couleur incorrecte"
 
-# 
-#: ultralcd.cpp:4108
-msgid "Copy selected language from XFLASH?"
-msgstr ""
-
 # MSG_COOLDOWN
 #: messages.c:23
 msgid "Cooldown"
 msgstr "Refroidissement"
 
+# 
+#: ultralcd.cpp:4109
+msgid "Copy selected language?"
+msgstr "Copier la langue selectionne?"
+
 # MSG_CRASHDETECT_ON
 #: messages.c:27
 msgid "Crash det.   [on]"
-msgstr "Detect.crash [on]"
+msgstr "Detect. crash[on]"
 
 # MSG_CRASHDETECT_NA
 #: messages.c:25
@@ -276,22 +256,27 @@ msgid "Crash detected."
 msgstr "Crash detecte."
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:603
 msgid "Crash detected. Resume print?"
-msgstr ""
+msgstr "Crash detecte. Poursuivre l'impression ?"
+
+# 
+#: ultralcd.cpp:1932
+msgid "Crash"
+msgstr "Colision"
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5085
 msgid "Current"
 msgstr "Actuel"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2152
 msgid "Date:"
 msgstr "Date :"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:4841
 msgid "Disable steppers"
 msgstr "Desactiver moteurs"
 
@@ -301,197 +286,192 @@ 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:4575
+#: ultralcd.cpp:4576
 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:4636
+#: ultralcd.cpp:4637
 msgid "E-correct"
 msgstr "Correct-E"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:5825
 msgid "Eject filament"
-msgstr "Ejecter le filament"
+msgstr "Ejecter le fil"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5352
 msgid "Eject filament 1"
-msgstr "Ejecter le fil. 1"
+msgstr "Ejecter fil. 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5353
 msgid "Eject filament 2"
-msgstr "Ejecter le fil. 2"
+msgstr "Ejecter fil. 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5354
 msgid "Eject filament 3"
-msgstr "Ejecter le fil. 3"
+msgstr "Ejecter fil. 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5355
 msgid "Eject filament 4"
-msgstr "Ejecter le fil. 4"
-
-# 
-#: ultralcd.cpp:4387
-msgid "Eject"
-msgstr ""
+msgstr "Ejecter fil. 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5356
 msgid "Eject filament 5"
-msgstr "Ejecter le fil. 5"
+msgstr "Ejecter fil. 5"
+
+# 
+#: ultralcd.cpp:4388
+msgid "Eject"
+msgstr "Ejecter"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1128
 msgid "Ejecting filament"
 msgstr "Filament en cours d'ejection"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:6815
 msgid "Endstop not hit"
 msgstr "Butee non atteinte"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6809
 msgid "Endstop"
 msgstr "Butee"
 
-# MSG_ENDSTOPS_HIT
-#: messages.c:30
-msgid "endstops hit: "
-msgstr "butees atteintes: "
-
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:6797
 msgid "Endstops"
 msgstr "Butees"
 
-# MSG_Enqueing
-#: 
-msgid "enqueing \x22"
-msgstr ""
-
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:5871
 msgid "Error - static memory has been overwritten"
 msgstr "Erreur - la memoire statique a ete ecrasee"
 
-# MSG_SD_ERR_WRITE_TO_FILE
-#: messages.c:78
-msgid "error writing to file"
-msgstr "erreur d'ecriture du fichier"
-
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4008
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "ERREUR : Le capteur de filament ne repond pas, verifiez la connexion."
 
+# MSG_ERROR
+#: messages.c:28
+msgid "ERROR:"
+msgstr "ERREUR :"
+
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:984
 msgid "External SPI flash W25X20CL not responding."
-msgstr ""
+msgstr "La Flash SPI externe W25X20CL ne repond pas."
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5382
 msgid "Extruder 1"
-msgstr ""
+msgstr "Extrudeur 1"
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5383
 msgid "Extruder 2"
-msgstr ""
+msgstr "Extrudeur 2"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5384
 msgid "Extruder 3"
-msgstr ""
+msgstr "Extrudeur 3"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5385
 msgid "Extruder 4"
-msgstr ""
-
-# MSG_ERROR
-#: messages.c:33
-msgid "ERROR:"
-msgstr "ERREUR :"
+msgstr "Extrudeur 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7083
 msgid "Extruder fan:"
 msgstr "Ventilo extrudeur:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2183
 msgid "Extruder info"
 msgstr "Infos extrudeur"
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr "Extrudeur"
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4675
 msgid "F. autoload  [on]"
 msgstr "AutoCharg 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:4677
 msgid "F. autoload [off]"
 msgstr "AutoCharg F [off]"
 
+# 
+#: ultralcd.cpp:5853
+msgid "Fail stats"
+msgstr "Statist. d'echec"
+
 # 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:4848
 msgid "Fans check   [on]"
 msgstr "Verif venti  [on]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:4850
 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:3104
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "La reponse du capteur de fil. est pauvre, le desactiver ?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4655
 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]"
 
+# 
+#: ultralcd.cpp:1932
+msgid "Filam. runouts"
+msgstr "Manque de flm"
+
 # MSG_FILAMENT_CLEAN c=20 r=2
-#: messages.c:37
+#: messages.c:32
 msgid "Filament extruding & with correct color?"
 msgstr "Filament extrude et avec bonne couleur ?"
 
@@ -501,117 +481,117 @@ msgid "Filament not loaded"
 msgstr "Filament non charge"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6863
 msgid "Filament sensor"
 msgstr "Capteur de filament"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7092
 msgid "Filament sensor:"
 msgstr "Capteur filament :"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2513
 msgid "Filament used"
 msgstr "Filament utilise"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2515
 msgid "Print time"
-msgstr ""
+msgstr "Temps d'impression"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7209
 msgid "File incomplete. Continue anyway?"
 msgstr "Fichier incomplet. Continuer qd meme ?"
 
 # 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:4925
 msgid "First layer cal."
 msgstr "Cal. 1ere couche"
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4488
 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:423
+#: mmu.cpp:436
 msgid "Fix the issue and then press button on MMU unit."
-msgstr ""
+msgstr "Corrigez le probleme et appuyez sur le bouton de l'unite MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:5944
 msgid "Flow"
 msgstr "Flux"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2145
 msgid "forum.prusa3d.com"
 msgstr ""
 
 # 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:2891
 msgid "Front side[um]"
 msgstr "Avant [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6855
 msgid "Front/left fans"
 msgstr "Ventilos avt/gauche"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:6785
 msgid "Heater/Thermistor"
 msgstr "Chauffage/Thermistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7400
 msgid "Heating disabled by safety timer."
 msgstr "Chauffe desactivee par le compteur de securite."
 
 # MSG_HEATING_COMPLETE c=20
-#: messages.c:52
+#: messages.c:47
 msgid "Heating done."
 msgstr "Chauffe terminee."
 
 # MSG_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
 msgstr "Chauffe"
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4467
 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:2142
+#: ultralcd.cpp:2146
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:5832
 msgid "Change extruder"
-msgstr ""
+msgstr "Changer extrudeur"
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Changer filament"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2256
 msgid "Change success!"
 msgstr "Changement reussi!"
 
@@ -621,72 +601,67 @@ msgid "Changed correctly?"
 msgstr "Change correctement?"
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
-msgstr "Verification du lit     "
+msgstr "Verification du lit"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7065
 msgid "Checking endstops"
 msgstr "Verifications butees"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7066
 msgid "Checking hotend  "
-msgstr "Verif. tete impr.  "
+msgstr "Verif. tete impr."
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
-#: messages.c:87
+#: messages.c:78
 msgid "Checking sensors "
-msgstr "Verif. des capteurs "
+msgstr "Verif. des capteurs"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7067
 msgid "Checking X axis  "
-msgstr "Verification axe X  "
+msgstr "Verification axe X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7068
 msgid "Checking Y axis  "
-msgstr "Verification axe Y  "
+msgstr "Verification axe Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7069
 msgid "Checking Z axis  "
-msgstr "Verification axe Z  "
-
-# MSG_ERR_CHECKSUM_MISMATCH
-#: cmdqueue.cpp:444
-msgid "checksum mismatch, Last Line: "
-msgstr "dissemblance du checksum, Derniere Ligne: "
+msgstr "Verification axe Z"
 
 # MSG_CHOOSE_EXTRUDER c=20 r=1
-#: messages.c:54
+#: messages.c:49
 msgid "Choose extruder:"
-msgstr "Choisir extrudeur:"
+msgstr "Choisir extrudeur :"
 
 # MSG_CHOOSE_FILAMENT c=20 r=1
-#: messages.c:55
+#: messages.c:50
 msgid "Choose filament:"
-msgstr "Choisir filament:"
+msgstr "Choix du filament :"
 
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
-msgstr "Filament"
+msgstr ""
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4497
 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:4504
+#: ultralcd.cpp:4505
 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:4569
+#: ultralcd.cpp:4570
 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,57 +671,57 @@ 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_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 dans l'extrudeur 1. Cliquez une fois fait."
 
 # 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 dans l'extrudeur 2. Cliquez une fois fait."
 
 # 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 dans l'extrudeur 3. Cliquez une fois fait."
 
 # 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 dans l'extrudeur 4. Cliquez une fois fait."
 
 # 
-#: ultralcd.cpp:4529
+#: ultralcd.cpp:4530
 msgid "Is filament 1 loaded?"
-msgstr ""
+msgstr "Le filament 1 est-il charge ?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2242
 msgid "Insert filament"
 msgstr "Inserez le filament"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4533
 msgid "Is filament loaded?"
 msgstr "Le filament est-il charge ?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4564
 msgid "Is it PLA filament?"
 msgstr "Est-ce du filament PLA ?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4310
 msgid "Is PLA filament loaded?"
 msgstr "Le filament PLA est-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 le lit chauffant ?"
 
@@ -755,280 +730,240 @@ msgstr "Feuille d'acier sur le lit chauffant ?"
 msgid "Iteration "
 msgstr ""
 
-# MSG_KILLED
-#: Marlin_main.cpp:7552
-msgid "KILLED. "
-msgstr "TUE. "
+# 
+#: ultralcd.cpp:1949
+msgid "Last print failures"
+msgstr "Echecs d'impr. dern."
+
+# 
+#: ultralcd.cpp:1964
+msgid "Last print"
+msgstr "Derniere impress."
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Ventilo tete gauche?"
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:2649
 msgid "Left"
-msgstr ""
+msgstr "Gauche"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:2889
 msgid "Left side [um]"
 msgstr "Gauche [um]"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:4855
 msgid "Lin. correction"
-msgstr "Korekce lin."
+msgstr "Correction lin."
 
 # MSG_BABYSTEP_Z
 #: messages.c:13
 msgid "Live adjust Z"
-msgstr "Ajustement Z en direct"
+msgstr "Ajuster Z en dir"
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr "Charger filament"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2281
 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:6839
 msgid "Loose pulley"
 msgstr "Poulie lache"
 
-# MSG_M104_INVALID_EXTRUDER
-#: Marlin_main.cpp:7675
-msgid "M104 Invalid extruder "
-msgstr "M104 extrudeur invalide "
-
-# MSG_M105_INVALID_EXTRUDER
-#: Marlin_main.cpp:7678
-msgid "M105 Invalid extruder "
-msgstr "M105 extrudeur invalide "
-
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:5824
 msgid "Load to nozzle"
-msgstr ""
-
-# MSG_M109_INVALID_EXTRUDER
-#: Marlin_main.cpp:7681
-msgid "M109 Invalid extruder "
-msgstr "M109 extrudeur invalide "
+msgstr "Charger le fil"
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Cal. 1ere couche"
 
-# MSG_M200_INVALID_EXTRUDER
-#: Marlin_main.cpp:5857
-msgid "M200 Invalid extruder "
-msgstr "M200 extrudeur invalide "
-
-# MSG_M218_INVALID_EXTRUDER
-#: Marlin_main.cpp:7684
-msgid "M218 Invalid extruder "
-msgstr "M218 extrudeur invalide "
-
-# MSG_M221_INVALID_EXTRUDER
-#: Marlin_main.cpp:7687
-msgid "M221 Invalid extruder "
-msgstr "M221 extrudeur invalide "
-
-# 
-#: ultralcd.cpp:2683
-msgid "Measured skew"
-msgstr ""
-
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Principal"
 
 # 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:4940
 msgid "Mesh Bed Leveling"
-msgstr "Nivelage du lit par maillage"
+msgstr "Nivelage du lit"
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:474
 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:463
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Reprise de la temperature ..."
 
+# 
+#: ultralcd.cpp:2684
+msgid "Measured skew"
+msgstr "Deviation mesuree"
+
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:485
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Reprise ..."
 
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
 msgstr "Mode     [Normal]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
 msgstr "Mode [silencieux]"
 
 # 
-#: mmu.cpp:418
+#: mmu.cpp:431
 msgid "MMU needs user attention."
-msgstr ""
+msgstr "Le MMU necessite l'attention de l'utilisateur."
 
 # 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 [puiss.auto]"
+msgstr "Mode[puissan.aut]"
 
 # MSG_SILENT_MODE_OFF
-#: messages.c:91
+#: messages.c:82
 msgid "Mode [high power]"
 msgstr "Mode[haute puiss]"
 
+# 
+#: ultralcd.cpp:2158
+msgid "MMU2 connected"
+msgstr "MMU2 connectée"
+
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr "Moteur"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:4839
 msgid "Move axis"
 msgstr "Deplacer l'axe"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:3913
 msgid "Move X"
 msgstr "Deplacer X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:3914
 msgid "Move Y"
 msgstr "Deplacer Y"
 
-# 
-#: util.cpp:293
-msgid "New firmware version available:"
-msgstr ""
-
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:3915
 msgid "Move Z"
 msgstr "Deplacer Z"
 
-# MSG_ERR_NO_CHECKSUM
-#: cmdqueue.cpp:456
-msgid "No Checksum with line number, Last Line: "
-msgstr "Pas de checksum avec numero de ligne, Derniere ligne: "
-
 # MSG_NO_MOVE
 #: Marlin_main.cpp:4855
 msgid "No move."
 msgstr "Pas de mouvement."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:5804
 msgid "No SD card"
 msgstr "Pas de carte SD"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr "Non"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:6787
 msgid "Not connected"
 msgstr "Non connecte"
 
+# 
+#: util.cpp:293
+msgid "New firmware version available:"
+msgstr "Nouvelle version de firmware disponible :"
+
 # 
 #: 
 msgid "No "
-msgstr ""
+msgstr "Non"
 
 # 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:4569
 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:4512
+#: ultralcd.cpp:4513
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Maintenant je vais prechauffer la buse pour du PLA."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Buse"
 
-# MSG_OK
-#: Marlin_main.cpp:6333
-msgid "ok"
-msgstr ""
-
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1488
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront pris."
 
-# MSG_SD_OPEN_FILE_FAIL
-#: messages.c:79
-msgid "open failed, File: "
-msgstr "Echec ouverture, Fichier: "
-
-# MSG_ENDSTOP_OPEN
-#: messages.c:29
-msgid "open"
-msgstr "ouvrir"
-
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4504
 msgid "Now remove the test print from steel sheet."
-msgstr ""
+msgstr "Retirez maintenant l'impression de test de la feuille d'acier."
 
-# MSG_SD_OPENROOT_FAIL
-#: cardreader.cpp:196
-msgid "openRoot failed"
-msgstr "Echec openRoot"
+# 
+#: ultralcd.cpp:1880
+msgid "Nozzle FAN"
+msgstr "Vent buse"
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:5778
 msgid "Pause print"
-msgstr "Mettre en pause l'impression"
+msgstr "Pause de l'impres"
 
 # MSG_PID_RUNNING c=20 r=1
 #: ultralcd.cpp:1703
 msgid "PID cal.           "
-msgstr "Calib. PID           "
+msgstr "Calib. PID"
 
 # MSG_PID_FINISHED c=20 r=1
 #: ultralcd.cpp:1709
@@ -1036,7 +971,7 @@ msgid "PID cal. finished"
 msgstr "Calib. PID terminee"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:4946
 msgid "PID calibration"
 msgstr "Calibration PID"
 
@@ -1046,12 +981,12 @@ 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 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:4577
+#: ultralcd.cpp:4578
 msgid "Please clean heatbed and then press the knob."
 msgstr "Nettoyez le lit chauffant et appuyez sur le bouton."
 
@@ -1061,149 +996,144 @@ 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:6777
+#: ultralcd.cpp:6779
 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 notre manuel et de corriger le  probleme. Poursuivez alors l'assistant en redemarrant l'imprimante."
-
-# 
-#: ultralcd.cpp:4407
-msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
-msgstr ""
+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:4411
+#: ultralcd.cpp:4412
 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:4314
+#: ultralcd.cpp:4315
 msgid "Please load PLA filament first."
 msgstr "Chargez d'abord le filament PLA."
 
 # MSG_CHECK_IDLER c=20 r=4
-#: Marlin_main.cpp:2989
+#: Marlin_main.cpp:2988
 msgid "Please open idler and remove filament manually."
 msgstr "Ouvrez le support de poulie et retirez le filament manuellement."
 
 # 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 d'acier sur le lit 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 bouton pour decharger le filament"
 
+# 
+#: ultralcd.cpp:4408
+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."
+
 # MSG_PULL_OUT_FILAMENT c=20 r=4
-#: messages.c:73
+#: messages.c:66
 msgid "Please pull out filament immediately"
 msgstr "Retirez immediatement le filament"
 
 # MSG_EJECT_REMOVE c=20 r=4
-#: mmu.cpp:1114
+#: mmu.cpp:1136
 msgid "Please remove filament and then press the knob."
 msgstr "Veuillez retirer le filament puis appuyez sur le bouton."
 
 # 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 d'acier du lit chauffant."
+msgstr "Retirez la feuille d'acier du lit chauffant"
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4011
+#: Marlin_main.cpp:4010
 msgid "Please run XYZ calibration first."
 msgstr "Veuillez d'abord lancer la calibration XYZ."
 
-# 
-#: util.cpp:297
-msgid "Please upgrade."
-msgstr ""
-
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1082
 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."
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Merci de patienter"
 
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4503
 msgid "Please remove shipping helpers first."
-msgstr ""
-
-# MSG_POWERUP
-#: messages.c:69
-msgid "PowerUp"
-msgstr "Demarrage"
+msgstr "Veuillez retirer d'abord les protections d'envoi."
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Prechauffez la buse!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:5767
 msgid "Preheat"
 msgstr "Prechauffage"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr "Prechauffage de la buse. Merci de patienter."
 
+# 
+#: util.cpp:297
+msgid "Please upgrade."
+msgstr "Mettez a jour le FW."
+
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9054
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Appuyez sur le bouton pour prechauffer la buse et continuer."
 
+# 
+#: ultralcd.cpp:1932
+msgid "Power failures"
+msgstr "Coupures"
+
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Impression annulee"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7086
 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
 msgid "Print paused"
 msgstr "Impression en pause"
 
-# MSG_ERR_KILLED
-#: Marlin_main.cpp:7547
-msgid "Printer halted. kill() called!"
-msgstr "Imprimante stoppee. kill() appelee !"
-
 # 
-#: mmu.cpp:422
+#: mmu.cpp:435
 msgid "Press the knob to resume nozzle temperature."
-msgstr ""
+msgstr "Appuyez sur le bouton pour poursuivre la mise en temperature de la buse."
 
 # 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 encore ete calibree. Suivez le manuel, chapitre Premiers pas, section Processus de calibration"
 
-# MSG_ERR_STOPPED
-#: messages.c:32
-msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
-msgstr "Imprimante arretee a cause d'erreurs. Corrigez l'erreur et utilisez M999 pour redemarrer. (La temperature est reinitilisee. Parametrez la apres le redemarrage)"
+# 
+#: ultralcd.cpp:1882
+msgid "Print FAN"
+msgstr "Vent extru"
 
 # WELCOME_MSG c=20
 #: 
@@ -1216,184 +1146,154 @@ msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 prete."
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2144
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2892
 msgid "Rear side [um]"
 msgstr "Arriere [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8481
 msgid "Recovering print    "
-msgstr "Recup. impression    "
+msgstr "Recup. impression"
 
-# 
-#: Marlin_main.cpp:7076
-msgid "Resend"
-msgstr ""
+# MSG_REMOVE_OLD_FILAMENT c=20 r=4
+#: mmu.cpp:535
+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 MK2 ready."
-msgstr ""
-
-# MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
-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."
+msgstr "Prusa i3 MK2 prete."
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:4953
 msgid "Reset XYZ calibr."
 msgstr "Reinit. calibr. XYZ"
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2893
 msgid "Reset"
 msgstr "Reinitialiser"
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:5782
 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
-msgid "Right"
-msgstr ""
-
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:2890
 msgid "Right side[um]"
 msgstr "Droite [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:4867
 msgid "RPi port     [on]"
 msgstr "Port RPi     [on]"
 
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4865
 msgid "RPi port    [off]"
 msgstr "Port RPi    [off]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4331
 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:4780
+#: ultralcd.cpp:4781
 msgid "SD card  [normal]"
 msgstr "Carte SD [normal]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:4779
 msgid "SD card [flshAir]"
 msgstr "Carte SD[flshAir]"
 
-# MSG_SD_CARD_OK
-#: cardreader.cpp:202
-msgid "SD card ok"
-msgstr "Carte SD ok"
-
-# MSG_SD_INIT_FAIL
-#: cardreader.cpp:186
-msgid "SD init fail"
-msgstr "Echec init SD"
+# 
+#: ultralcd.cpp:2650
+msgid "Right"
+msgstr "Droite"
 
 # 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"
 
-# 
-#: ultralcd.cpp:4550
-msgid "Select nozzle preheat temperature which matches your material."
-msgstr ""
-
-# 
-#: ultralcd.cpp:4300
-msgid "Select PLA filament:"
-msgstr ""
-
 # MSG_LANGUAGE_SELECT
-#: ultralcd.cpp:4873
+#: ultralcd.cpp:4874
 msgid "Select language"
 msgstr "Choisir langue"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6351
 msgid "Self test OK"
 msgstr "Auto-test OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6184
 msgid "Self test start  "
-msgstr "Debut auto-test  "
+msgstr "Debut auto-test"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4927
 msgid "Selftest         "
-msgstr "Auto-test         "
+msgstr "Auto-test"
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:6777
 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  "
+msgstr "Echec de l'auto-test"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1521
+#: Marlin_main.cpp:1520
 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
+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
+msgid "Select PLA filament:"
+msgstr "Selectionnez le filament PLA :"
+
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:2901
 msgid "Set temperature:"
 msgstr "Regler temp. :"
 
-# 
-#: ultralcd.cpp:2686
-msgid "Severe skew"
-msgstr ""
-
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Reglages"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:4950
 msgid "Show end stops"
 msgstr "Afficher butees"
 
 # 
-#: ultralcd.cpp:4947
+#: ultralcd.cpp:4948
 msgid "Show pinda state"
-msgstr ""
-
-# 
-#: ultralcd.cpp:2685
-msgid "Slight skew"
-msgstr ""
-
-# MSG_DWELL
-#: Marlin_main.cpp:3752
-msgid "Sleep..."
-msgstr "Repos..."
+msgstr "Etat de la PINDA"
 
 # MSG_FILE_CNT c=20 r=4
 #: cardreader.cpp:738
@@ -1401,17 +1301,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:4790
+#: ultralcd.cpp:4791
 msgid "Sort:      [none]"
-msgstr ""
+msgstr "Tri :     [aucun]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:4789
 msgid "Sort:      [time]"
-msgstr ""
+msgstr "Tri :     [heure]"
+
+# 
+#: ultralcd.cpp:2687
+msgid "Severe skew"
+msgstr "Deviation severe"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:4790
 msgid "Sort:  [alphabet]"
 msgstr "Tri :  [alphabet]"
 
@@ -1425,15 +1330,20 @@ msgstr "Tri des fichiers"
 msgid "Sound      [loud]"
 msgstr "Son        [fort]"
 
+# 
+#: ultralcd.cpp:2686
+msgid "Slight skew"
+msgstr "Deviation legere"
+
 # MSG_SOUND_MUTE c=17 r=1
 #: sound.h:8
 msgid "Sound      [mute]"
 msgstr "Son        [muet]"
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4518
 msgid "Some problem encountered, Z-leveling enforced ..."
-msgstr ""
+msgstr "Problemes rencontres, nivellement de l'axe Z applique..."
 
 # MSG_SOUND_ONCE c=17 r=1
 #: sound.h:6
@@ -1446,144 +1356,149 @@ msgid "Sound    [silent]"
 msgstr "Son  [silencieux]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:5938
 msgid "Speed"
 msgstr "Vitesse"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Tourne"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4023
 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."
+msgstr "Une temperature ambiante stable de 21-26C et une base stable sont requis."
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5847
+#: ultralcd.cpp:5849
 msgid "Statistics  "
-msgstr "Statistiques  "
+msgstr "Statistiques"
 
 # 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. "
+msgstr "ARRETE."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:5856
 msgid "Support"
 msgstr ""
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:6857
 msgid "Swapped"
 msgstr "Echange"
 
 # MSG_TEMP_CALIBRATION c=20 r=1
-#: messages.c:98
+#: messages.c:89
 msgid "Temp. cal.          "
-msgstr "Calib. Temp.          "
+msgstr "Calib. Temp."
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4860
+#: ultralcd.cpp:4861
 msgid "Temp. cal.   [on]"
 msgstr "Calib. Temp. [on]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:4859
 msgid "Temp. cal.  [off]"
 msgstr "Calib. Temp.[off]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4959
 msgid "Temp. calibration"
 msgstr "Calibration temp."
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3526
 msgid "Temperature calibration failed"
 msgstr "Echec calibration en temperature"
 
 # 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 temperature est terminee et active. La calibration en temperature peut etre desactivee dans le menu Reglages->Cal. Temp."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:4837
 msgid "Temperature"
 msgstr ""
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2189
 msgid "Temperatures"
 msgstr ""
 
 # 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:2540
 msgid "Total filament"
-msgstr ""
+msgstr "Filament total"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2542
 msgid "Total print time"
-msgstr ""
-
-# MSG_ENDSTOP_HIT
-#: messages.c:28
-msgid "TRIGGERED"
-msgstr "ACTIVE"
+msgstr "Temps total"
 
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:5764
 msgid "Tune"
 msgstr "Regler"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Unload"
-msgstr ""
+msgstr "Decharger"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5366
 msgid "Unload all"
-msgstr ""
+msgstr "Decharger tout"
+
+# 
+#: ultralcd.cpp:1931
+msgid "Total failures"
+msgstr "Echecs au total"
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr "Decharger fil."
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Dechargement fil."
 
+# 
+#: ultralcd.cpp:1965
+msgid "Total"
+msgstr "Total"
+
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5084
 msgid "Used during print"
 msgstr "Utilise pdt impr."
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2192
 msgid "Voltages"
 msgstr "Tensions"
 
-# MSG_SD_VOL_INIT_FAIL
-#: cardreader.cpp:191
-msgid "volume.init failed"
-msgstr "Echec volume.init"
+# 
+#: ultralcd.cpp:2166
+msgid "unknown"
+msgstr ""
 
 # MSG_USERWAIT
 #: Marlin_main.cpp:4823
@@ -1591,52 +1506,52 @@ msgid "Wait for user..."
 msgstr "Attente utilisateur..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3045
 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:3008
+#: ultralcd.cpp:3009
 msgid "Waiting for PINDA probe cooling"
 msgstr "Attente du refroidissement de la sonde PINDA"
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4387
 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 ""
+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:1481
+#: Marlin_main.cpp:1480
 msgid "Warning: both printer type and motherboard type changed."
-msgstr "Attention : Types d'imprimante et de carte mere modifies."
+msgstr "Attention : Types d'imprimante et de carte mere modifies"
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
-#: Marlin_main.cpp:1473
+#: Marlin_main.cpp:1472
 msgid "Warning: motherboard type changed."
 msgstr "Attention : Type de carte mere modifie."
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1477
+#: Marlin_main.cpp:1476
 msgid "Warning: printer type changed."
-msgstr "Attention : Type d'imprimante modifie."
+msgstr "Attention : Type d'imprimante modifie"
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:2977
 msgid "Was filament unload successful?"
 msgstr "Dechargement du filament 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:4924
 msgid "Wizard"
 msgstr "Assistant"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2182
 msgid "XYZ cal. details"
 msgstr "Details calib. XYZ"
 
@@ -1646,107 +1561,107 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "Echec calibration XYZ. Consultez le manuel."
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Oui"
 
 # 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 poursuivre l'assistant dans Calibration-> Assistant."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3496
+#: ultralcd.cpp:3497
 msgid "XYZ calibration all right. Skew will be corrected automatically."
-msgstr ""
+msgstr "Calibration XYZ OK. L'ecart sera corrige automatiquement."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3493
+#: ultralcd.cpp:3494
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
-msgstr ""
+msgstr "Calibration XYZ OK. Les axes X/Y sont legerement non perpendiculaires. Bon boulot !"
 
 # 
-#: ultralcd.cpp:4632
+#: ultralcd.cpp:4633
 msgid "X-correct"
-msgstr ""
+msgstr "Correction-X"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3491
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
-msgstr ""
+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:3474
+#: ultralcd.cpp:3475
 msgid "XYZ calibration compromised. Front calibration points not reachable."
-msgstr ""
+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:3477
+#: ultralcd.cpp:3478
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
-msgstr ""
+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:3480
+#: ultralcd.cpp:3481
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
-msgstr ""
+msgstr "Calibration XYZ compromise. Le point de calibration avant gauche n'est pas atteignable."
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5323
+#: ultralcd.cpp:5324
 msgid "Load all"
-msgstr ""
+msgstr "Tout charger"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5325
 msgid "Load filament 1"
-msgstr ""
+msgstr "Charger fil. 1"
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3457
 msgid "XYZ calibration failed. Bed calibration point was not found."
-msgstr ""
+msgstr "Echec calibration XYZ. Le point de calibration du lit n'a pas ete trouve."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3463
 msgid "XYZ calibration failed. Front calibration points not reachable."
-msgstr ""
+msgstr "Echec calibration XYZ. Les points de calibration avant ne sont pas atteignables."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3469
 msgid "XYZ calibration failed. Left front calibration point not reachable."
-msgstr ""
+msgstr "Echec calibration XYZ. Le point de calibration avant gauche n'est pas atteignable."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5326
 msgid "Load filament 2"
-msgstr ""
+msgstr "Charger fil. 2"
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3466
 msgid "XYZ calibration failed. Right front calibration point not reachable."
-msgstr ""
+msgstr "Echec calibration XYZ. Le point de calibration avant droite n'est pas atteignable."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5327
 msgid "Load filament 3"
-msgstr ""
+msgstr "Charger fil. 3"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2647
 msgid "Y distance from min"
-msgstr ""
+msgstr "Distance Y du min"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4634
 msgid "Y-correct"
-msgstr ""
+msgstr "Correction-Y"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5328
 msgid "Load filament 4"
-msgstr ""
+msgstr "Charger fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5331
 msgid "Load filament 5"
-msgstr ""
+msgstr "Charger fil. 5"
 

+ 445 - 530
lang/po/Firmware_it.po

@@ -7,98 +7,83 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: it\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 9. lis 2018 14:38:18\n"
-"PO-Revision-Date: pá 9. lis 2018 14:38:18\n"
+"POT-Creation-Date: pá 30. lis 2018 18:53:14\n"
+"PO-Revision-Date: pá 30. lis 2018 18:53:14\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "Last-Translator: \n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-# MSG_PLANNER_BUFFER_BYTES
-#: Marlin_main.cpp:1184
-msgid "  PlannerBufferBytes: "
-msgstr " PlannerBufferBytes: "
-
-# MSG_ERR_COLD_EXTRUDE_STOP
-#: planner.cpp:761
-msgid " cold extrusion prevented"
-msgstr " evitata estrusione fredda"
-
-# MSG_FREE_MEMORY
-#: Marlin_main.cpp:1182
-msgid " Free Memory: "
-msgstr " Memoria Libera: "
-
-# MSG_CONFIGURATION_VER
-#: Marlin_main.cpp:1172
-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"
+msgstr "su 9"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2702
 msgid "[0;0] point offset"
 msgstr "[0;0] punto offset"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:3968
 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:3979
+#: ultralcd.cpp:3980
 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"
 
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:2831
 msgid "Adjusting Z"
 msgstr "Compensazione Z"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7074
 msgid "All correct      "
-msgstr "Nessun errore      "
+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:2026
+msgid "Ambient"
+msgstr ""
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2245
 msgid "and press the knob"
 msgstr "e cliccare manopola"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3120
 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:4706
-msgid "Auto deplete [on]"
-msgstr "Esaurim.auto [on]"
+#: ultralcd.cpp:4707
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin    [on]"
 
 # 
-#: ultralcd.cpp:4702
-msgid "Auto deplete[N/A]"
-msgstr ""
+#: ultralcd.cpp:4703
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin   [N/A]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4710
-msgid "Auto deplete[off]"
-msgstr "Esaurim.auto[off]"
+#: ultralcd.cpp:4711
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [off]"
 
 # MSG_AUTO_HOME
 #: messages.c:11
@@ -106,34 +91,34 @@ msgid "Auto home"
 msgstr "Trova origine"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5836
 msgid "AutoLoad filament"
 msgstr "Autocaric. filam."
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:3995
 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:2438
+#: ultralcd.cpp:2439
 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:6845
+#: ultralcd.cpp:6847
 msgid "Axis length"
 msgstr "Lunghezza dell'asse"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:6849
 msgid "Axis"
 msgstr "Assi"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:6791
 msgid "Bed / Heater"
-msgstr "Letto / Riscald"
+msgstr "Letto/Riscald."
 
 # MSG_BED_DONE
 #: messages.c:16
@@ -146,7 +131,7 @@ msgid "Bed Heating"
 msgstr "Riscald. letto"
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:4945
 msgid "Bed level correct"
 msgstr "Correz. liv.letto"
 
@@ -156,12 +141,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:4466
 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:4470
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Livellamento piano fallito. Risposta sensore troppo presto. In attesa di reset."
 
@@ -171,32 +156,32 @@ msgid "Bed"
 msgstr "Letto"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2052
 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'e stato un Blackout. Recuperare la stampa?"
 
 # MSG_CALIBRATE_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:4934
 msgid "Calibrate XYZ"
 msgstr "Calibra XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Calibra Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4176
 msgid "Calibrate"
 msgstr "Calibra"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -206,7 +191,7 @@ msgid "Calibrating Z"
 msgstr "Calibrando Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -216,27 +201,22 @@ msgid "Calibration done"
 msgstr "Calibrazione completa"
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr "Calibrazione"
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Cancel"
-msgstr ""
-
-# MSG_SD_CANT_ENTER_SUBDIR
-#: cardreader.cpp:662
-msgid "Cannot enter subdir: "
-msgstr "Impossibile accedere alla sottocartella: "
+msgstr "Annulla"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#: ultralcd.cpp:7425
 msgid "Card inserted"
 msgstr "SD inserita"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7431
 msgid "Card removed"
 msgstr "SD rimossa"
 
@@ -251,9 +231,9 @@ msgid "Cooldown"
 msgstr "Raffredda"
 
 # 
-#: ultralcd.cpp:4108
-msgid "Copy selected language from XFLASH?"
-msgstr ""
+#: ultralcd.cpp:4109
+msgid "Copy selected language?"
+msgstr "Copiare la lingua selezionata?"
 
 # MSG_CRASHDETECT_ON
 #: messages.c:27
@@ -276,22 +256,27 @@ msgid "Crash detected."
 msgstr "Rilevato impatto."
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:603
 msgid "Crash detected. Resume print?"
-msgstr "Rilevato impatto. Riprendi stampa?"
+msgstr "Scontro rilevato. Riprendere la stampa?"
+
+# 
+#: ultralcd.cpp:1932
+msgid "Crash"
+msgstr ""
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5085
 msgid "Current"
 msgstr "Attuale"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2152
 msgid "Date:"
 msgstr "Data:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:4841
 msgid "Disable steppers"
 msgstr "Disabilita motori"
 
@@ -301,197 +286,192 @@ 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:4576
 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:4636
+#: ultralcd.cpp:4637
 msgid "E-correct"
 msgstr "Correzione-E"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:5825
 msgid "Eject filament"
-msgstr "Espelli filamento"
+msgstr "Espelli filamento "
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5352
 msgid "Eject filament 1"
 msgstr "Espelli filamento 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5353
 msgid "Eject filament 2"
-msgstr "Espelli filamento 2"
+msgstr "Espellere filamento 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5354
 msgid "Eject filament 3"
 msgstr "Espelli filamento 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5355
 msgid "Eject filament 4"
-msgstr "Espelli filamento 4"
+msgstr "Espellere filamento 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5356
 msgid "Eject filament 5"
 msgstr "Espelli filamento 5"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Eject"
-msgstr ""
+msgstr "Espellere"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1128
 msgid "Ejecting filament"
-msgstr "Espellendo filamento"
+msgstr "Espellendo filamento "
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:6815
 msgid "Endstop not hit"
 msgstr "Finecorsa fuori portata"
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6809
 msgid "Endstop"
 msgstr "Finecorsa"
 
-# MSG_ENDSTOPS_HIT
-#: messages.c:30
-msgid "endstops hit: "
-msgstr "finecorsa colpito: "
-
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:6797
 msgid "Endstops"
 msgstr "Finecorsa"
 
-# MSG_Enqueing
-#: 
-msgid "enqueing \x22"
-msgstr ""
-
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:5871
 msgid "Error - static memory has been overwritten"
 msgstr "Errore - la memoria statica e stata sovrascritta"
 
-# MSG_SD_ERR_WRITE_TO_FILE
-#: messages.c:78
-msgid "error writing to file"
-msgstr "errore scrittura sul file"
-
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4008
 msgid "ERROR: Filament sensor is not responding, please check connection."
-msgstr "ERRORE: il sensore filam. non risponde, Controllare conness."
+msgstr "ERRORE: il sensore filam. non risponde,Controllare conness."
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr "ERRORE:"
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:984
 msgid "External SPI flash W25X20CL not responding."
-msgstr ""
+msgstr "Flash SPI W25X20CL esterno non risponde."
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5382
 msgid "Extruder 1"
-msgstr ""
+msgstr "Estrusore 1"
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5383
 msgid "Extruder 2"
-msgstr ""
+msgstr "Estrusore 2"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5384
 msgid "Extruder 3"
-msgstr ""
+msgstr "Estrusore 3"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5385
 msgid "Extruder 4"
-msgstr ""
+msgstr "Estrusore 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7083
 msgid "Extruder fan:"
 msgstr "Ventola estrusore:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2183
 msgid "Extruder info"
 msgstr "Info estrusore"
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr "Estrusore"
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4675
 msgid "F. autoload  [on]"
-msgstr "Autocaric.f. [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.f.[N/A]"
+msgstr "Autocar.fil.[N/A]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4676
+#: ultralcd.cpp:4677
 msgid "F. autoload [off]"
-msgstr "Autocaric.f.[off]"
+msgstr "Autocar.fil.[off]"
+
+# 
+#: ultralcd.cpp:5853
+msgid "Fail stats"
+msgstr ""
 
 # MSG_FAN_SPEED c=14
-#: messages.c:36
+#: messages.c:31
 msgid "Fan speed"
 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:4848
 msgid "Fans check   [on]"
-msgstr "Controllo ven[on]"
+msgstr "Controllo ventole [on]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:4850
 msgid "Fans check  [off]"
-msgstr "Controllo v.[off]"
+msgstr "Control.vent[off]"
 
 # MSG_FSENSOR_ON
-#: messages.c:50
+#: messages.c:45
 msgid "Fil. sensor  [on]"
-msgstr "Sensore fil. [On]"
+msgstr "Sensor filam.[On]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3105
+#: Marlin_main.cpp:3104
 msgid "Fil. sensor response is poor, disable it?"
-msgstr "Risposta Sens. Fil. debole, disattivare?"
+msgstr "Risposta Sens. Fil. debole, disattivare? "
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4655
 msgid "Fil. sensor [N/A]"
-msgstr "Sensore fil.[N/A]"
+msgstr "Sensor filam[N/A]"
 
 # MSG_FSENSOR_OFF
-#: messages.c:49
+#: messages.c:44
 msgid "Fil. sensor [off]"
-msgstr "Sensore fil.[off]"
+msgstr "Sensor filam[off]"
+
+# 
+#: ultralcd.cpp:1932
+msgid "Filam. runouts"
+msgstr ""
 
 # 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?"
 
@@ -501,117 +481,117 @@ msgid "Filament not loaded"
 msgstr "Fil. non caricato"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6863
 msgid "Filament sensor"
 msgstr "Sensore filam."
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7092
 msgid "Filament sensor:"
 msgstr "Sensore filam.:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2513
 msgid "Filament used"
 msgstr "Filamento utilizzato"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2515
 msgid "Print time"
 msgstr "Tempo di stampa"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7209
 msgid "File incomplete. Continue anyway?"
 msgstr "File incompleto. Continuare comunque?"
 
 # 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:4925
 msgid "First layer cal."
 msgstr "Calibrazione primo layer."
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4488
 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:423
+#: mmu.cpp:436
 msgid "Fix the issue and then press button on MMU unit."
-msgstr ""
+msgstr "Risolvi il problema e quindi premi il bottone sull'unita MMU. "
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:5944
 msgid "Flow"
 msgstr "Flusso"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2145
 msgid "forum.prusa3d.com"
 msgstr ""
 
 # 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:2891
 msgid "Front side[um]"
 msgstr "Fronte [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6855
 msgid "Front/left fans"
 msgstr "Ventola frontale/sinistra"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:6785
 msgid "Heater/Thermistor"
 msgstr "Riscald./Termist."
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7400
 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."
+msgstr "Riscald. completo"
 
 # MSG_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
-msgstr "Riscaldamento"
+msgstr "Riscaldamento..."
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4467
 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:2146
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:5832
 msgid "Change extruder"
-msgstr ""
+msgstr "Cambio estrusore"
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Cambia filamento"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2256
 msgid "Change success!"
 msgstr "Cambio riuscito!"
 
@@ -621,72 +601,67 @@ msgid "Changed correctly?"
 msgstr "Cambiato correttamente?"
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
-msgstr "Verifica piano     "
+msgstr "Verifica piano"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7065
 msgid "Checking endstops"
 msgstr "Verifica finecorsa"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7066
 msgid "Checking hotend  "
-msgstr "Verifica ugello  "
+msgstr "Verifica ugello"
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
-#: messages.c:87
+#: messages.c:78
 msgid "Checking sensors "
-msgstr "Controllo sensori "
+msgstr "Controllo sensori"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7067
 msgid "Checking X axis  "
-msgstr "Verifica asse X  "
+msgstr "Verifica asse X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7068
 msgid "Checking Y axis  "
-msgstr "Verifica asse Y  "
+msgstr "Verifica asse Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7069
 msgid "Checking Z axis  "
-msgstr "Verifica asse Z  "
-
-# MSG_ERR_CHECKSUM_MISMATCH
-#: cmdqueue.cpp:444
-msgid "checksum mismatch, Last Line: "
-msgstr "mancata corrispondenza di checksum, ultima riga: "
+msgstr "Verifica asse Z"
 
 # 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 "Seleziona filamento:"
+msgstr "Scegliere filamento:"
 
 # MSG_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
 msgstr "Filamento"
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4497
 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:4504
+#: ultralcd.cpp:4505
 msgid "I will run z calibration now."
 msgstr "Adesso avviero la Calibrazione Z."
 
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
-#: ultralcd.cpp:4569
+#: ultralcd.cpp:4570
 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,89 +671,94 @@ 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"
 
 # 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 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 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 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 nell'estrusore 4. Click per continuare"
 
 # 
-#: ultralcd.cpp:4529
+#: ultralcd.cpp:4530
 msgid "Is filament 1 loaded?"
-msgstr ""
+msgstr "Il filamento 1 e caricato?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2242
 msgid "Insert filament"
 msgstr "Inserire filamento"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4533
 msgid "Is filament loaded?"
 msgstr "Il filamento e stato caricato?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4564
 msgid "Is it PLA filament?"
 msgstr "E' un filamento di PLA?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4310
 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 e sul piano riscaldato?"
 
 # MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20
 #: mesh_bed_calibration.cpp:2223
 msgid "Iteration "
-msgstr "Iterazione "
+msgstr "Iterazione"
 
-# MSG_KILLED
-#: Marlin_main.cpp:7552
-msgid "KILLED. "
-msgstr "IN TILT. "
+# 
+#: ultralcd.cpp:1949
+msgid "Last print failures"
+msgstr ""
+
+# 
+#: ultralcd.cpp:1964
+msgid "Last print"
+msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Vent SX hotend?"
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:2649
 msgid "Left"
-msgstr ""
+msgstr "Sinistra"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:2889
 msgid "Left side [um]"
 msgstr "Lato sinistro [um]"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:4855
 msgid "Lin. correction"
-msgstr ""
+msgstr "Correzione lin."
 
 # MSG_BABYSTEP_Z
 #: messages.c:13
@@ -786,249 +766,204 @@ msgid "Live adjust Z"
 msgstr "Compensazione Z"
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
 msgstr "Carica filamento"
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2281
 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:6839
 msgid "Loose pulley"
 msgstr "Puleggia lenta"
 
-# MSG_M104_INVALID_EXTRUDER
-#: Marlin_main.cpp:7675
-msgid "M104 Invalid extruder "
-msgstr "M104 Estrusore non valido "
-
-# MSG_M105_INVALID_EXTRUDER
-#: Marlin_main.cpp:7678
-msgid "M105 Invalid extruder "
-msgstr "M105 Estrusore non valido "
-
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:5824
 msgid "Load to nozzle"
-msgstr ""
-
-# MSG_M109_INVALID_EXTRUDER
-#: Marlin_main.cpp:7681
-msgid "M109 Invalid extruder "
-msgstr "M109 Estrusore non valido "
+msgstr "Carica ugello"
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Calibrazione primo layer."
 
-# MSG_M200_INVALID_EXTRUDER
-#: Marlin_main.cpp:5857
-msgid "M200 Invalid extruder "
-msgstr "M200 Estrusore non valido "
-
-# MSG_M218_INVALID_EXTRUDER
-#: Marlin_main.cpp:7684
-msgid "M218 Invalid extruder "
-msgstr "M218 Estrusore non valido "
-
-# MSG_M221_INVALID_EXTRUDER
-#: Marlin_main.cpp:7687
-msgid "M221 Invalid extruder "
-msgstr "M221 Estrusore non valido "
-
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Menu principale"
 
 # 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:4940
 msgid "Mesh Bed Leveling"
 msgstr "Mesh livel. letto"
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:474
 msgid "MMU OK. Resuming position..."
-msgstr "MMU OK. riprendendo la posizione..."
+msgstr "MMU OK. riprendendo la posizione... "
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:450
+#: mmu.cpp:463
 msgid "MMU OK. Resuming temperature..."
-msgstr "MMU OK. Ripristino temperatura..."
+msgstr "MMU OK. Ripristino temperatura... "
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2684
 msgid "Measured skew"
-msgstr ""
+msgstr "Disassamento misurato"
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:485
 msgid "MMU OK. Resuming..."
-msgstr "MMU OK. Riprendendo..."
+msgstr "MMU OK. Riprendendo... "
 
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
 msgstr "Modo    [normale]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
 msgstr "Modo [silenzioso]"
 
 # 
-#: mmu.cpp:418
+#: mmu.cpp:431
 msgid "MMU needs user attention."
-msgstr ""
+msgstr "Il MMU richiede attenzione dall'utente."
 
 # 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]"
 
+# 
+#: ultralcd.cpp:2158
+msgid "MMU2 connected"
+msgstr ""
+
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr "Motore"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:4839
 msgid "Move axis"
 msgstr "Muovi asse"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:3913
 msgid "Move X"
 msgstr "Muovi X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:3914
 msgid "Move Y"
 msgstr "Muovi Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:3915
 msgid "Move Z"
 msgstr "Muovi Z"
 
-# MSG_ERR_NO_CHECKSUM
-#: cmdqueue.cpp:456
-msgid "No Checksum with line number, Last Line: "
-msgstr "Nessun checksum con numero di riga, ultima riga: "
-
 # MSG_NO_MOVE
 #: Marlin_main.cpp:4855
 msgid "No move."
 msgstr "Nessun movimento."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:5804
 msgid "No SD card"
 msgstr "Nessuna SD"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr ""
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:6787
 msgid "Not connected"
 msgstr "Non connesso"
 
 # 
 #: util.cpp:293
 msgid "New firmware version available:"
-msgstr ""
+msgstr "Nuova versione firmware disponibile:"
 
 # 
 #: 
 msgid "No "
-msgstr ""
+msgstr "No"
 
 # 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:4569
 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:4513
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Adesso preriscaldero l'ugello per PLA."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Ugello"
 
-# MSG_OK
-#: Marlin_main.cpp:6333
-msgid "ok"
-msgstr ""
-
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1488
 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."
-
-# MSG_SD_OPEN_FILE_FAIL
-#: messages.c:79
-msgid "open failed, File: "
-msgstr "apertura fallita, File: "
-
-# MSG_ENDSTOP_OPEN
-#: messages.c:29
-msgid "open"
-msgstr "apri"
+msgstr "Sono state trovate impostazioni vecchie. I valori di default di PID, Esteps etc. saranno impostati"
 
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4504
 msgid "Now remove the test print from steel sheet."
-msgstr ""
+msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio."
 
-# MSG_SD_OPENROOT_FAIL
-#: cardreader.cpp:196
-msgid "openRoot failed"
-msgstr "openRoot fallito"
+# 
+#: ultralcd.cpp:1880
+msgid "Nozzle FAN"
+msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:5778
 msgid "Pause print"
 msgstr "Metti in pausa"
 
 # MSG_PID_RUNNING c=20 r=1
 #: ultralcd.cpp:1703
 msgid "PID cal.           "
-msgstr "Calibrazione PID.           "
+msgstr "Calibrazione PID"
 
 # MSG_PID_FINISHED c=20 r=1
 #: ultralcd.cpp:1709
@@ -1036,7 +971,7 @@ msgid "PID cal. finished"
 msgstr "Calib. PID completa"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:4946
 msgid "PID calibration"
 msgstr "Calibrazione PID"
 
@@ -1046,12 +981,12 @@ 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_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4578
 msgid "Please clean heatbed and then press the knob."
 msgstr "Per favore pulisci il piatto, poi premi la manopola."
 
@@ -1061,117 +996,117 @@ 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:6777
+#: ultralcd.cpp:6779
 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_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4411
+#: ultralcd.cpp:4412
 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:4314
+#: ultralcd.cpp:4315
 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:2988
 msgid "Please open idler and remove filament manually."
 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 per scaricare il filamento"
+msgstr "Premete la manopola per scaricare il filamento "
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4408
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
-msgstr ""
+msgstr "Per favore inserite del filamento PLA nel primo tubo del MMU, poi premete la manopola per caricarlo."
 
 # 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:1136
 msgid "Please remove filament and then press the knob."
-msgstr "Rimuovi il filamento e quindi premi la manopola."
+msgstr "Rimuovi il filamento e quindi premi la manopola. "
 
 # 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."
+msgstr "Rimuovete la piastra di acciaio dal piano riscaldato"
 
 # MSG_RUN_XYZ c=20 r=4
-#: Marlin_main.cpp:4011
+#: Marlin_main.cpp:4010
 msgid "Please run XYZ calibration first."
-msgstr "Esegui la calibrazione XYZ prima."
+msgstr "Esegui la calibrazione XYZ prima. "
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1082
 msgid "Please update firmware in your MMU2. Waiting for reset."
-msgstr "Aggiorna il firmware sul tuo MMU2. In attesa di reset."
+msgstr "Aggiorna il firmware sul tuo MMU2. In attesa di reset. "
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Attendere"
 
-# MSG_POWERUP
-#: messages.c:69
-msgid "PowerUp"
-msgstr "Accendi"
-
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4503
 msgid "Please remove shipping helpers first."
-msgstr ""
+msgstr "Per favore rimuovete i materiali da spedizione"
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Prerisc. ugello!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:5767
 msgid "Preheat"
 msgstr "Preriscalda"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr "Preriscaldando l'ugello. Attendere prego."
 
 # 
 #: util.cpp:297
 msgid "Please upgrade."
-msgstr ""
+msgstr "Prego aggiornare."
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9054
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Premete la manopola per preriscaldare l'ugello e continuare."
 
+# 
+#: ultralcd.cpp:1932
+msgid "Power failures"
+msgstr ""
+
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Stampa interrotta"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7086
 msgid "Print fan:"
 msgstr "Ventola di stampa:"
 
@@ -1185,30 +1120,25 @@ msgstr "Stampa da SD"
 msgid "Print paused"
 msgstr "Stampa in pausa"
 
-# MSG_ERR_KILLED
-#: Marlin_main.cpp:7547
-msgid "Printer halted. kill() called!"
-msgstr "Stampante ferma. kill () chiamato!"
-
 # 
-#: mmu.cpp:422
+#: mmu.cpp:435
 msgid "Press the knob to resume nozzle temperature."
-msgstr ""
+msgstr "Premete la manopola per recuperare la temperatura dell'ugello."
 
 # 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."
 
-# MSG_ERR_STOPPED
-#: messages.c:32
-msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
-msgstr "La stampante si e fermata a causa di errori. Correggete l'errore e usate M999 per riavviare. (La temperatura viene resettate. Impostatela dopo il riavvio)"
+# 
+#: ultralcd.cpp:1882
+msgid "Print FAN"
+msgstr ""
 
 # WELCOME_MSG c=20
 #: 
 msgid "Prusa i3 MK2.5 ready."
-msgstr "Prusa i3 MK2.5 pronta"
+msgstr ""
 
 # WELCOME_MSG c=20
 #: 
@@ -1216,174 +1146,154 @@ msgid "Prusa i3 MK3 ready."
 msgstr "Prusa i3 MK3 pronta."
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2144
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2892
 msgid "Rear side [um]"
 msgstr "Retro [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8481
 msgid "Recovering print    "
-msgstr "Recupero stampa    "
+msgstr "Recupero stampa"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:535
 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."
+msgstr "Rimuovi il filamento precedente e premi la manopola per caricare il nuovo filamento. "
 
 # 
 #: 
 msgid "Prusa i3 MK2 ready."
-msgstr ""
+msgstr "Prusa i3 MK2 pronta."
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:4953
 msgid "Reset XYZ calibr."
 msgstr "Reset calibrazione XYZ."
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2893
 msgid "Reset"
 msgstr ""
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:5782
 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"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:2890
 msgid "Right side[um]"
 msgstr "Destra [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:4867
 msgid "RPi port     [on]"
 msgstr "Porta RPi    [on]"
 
-# 
-#: Marlin_main.cpp:7076
-msgid "Resend"
-msgstr ""
-
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4865
 msgid "RPi port    [off]"
 msgstr "Porta RPi   [off]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4331
 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:4781
 msgid "SD card  [normal]"
 msgstr "Mem. SD [normale]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:4779
 msgid "SD card [flshAir]"
-msgstr "Mem. SD[flashAir]"
-
-# MSG_SD_CARD_OK
-#: cardreader.cpp:202
-msgid "SD card ok"
-msgstr "Memoria SD ok"
+msgstr "Mem. SD [flshAir]"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2650
 msgid "Right"
-msgstr ""
-
-# MSG_SD_INIT_FAIL
-#: cardreader.cpp:186
-msgid "SD init fail"
-msgstr "Inizializzazione Memoria SD Fallita"
+msgstr "Destra"
 
 # 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:4874
 msgid "Select language"
 msgstr "Seleziona lingua"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6351
 msgid "Self test OK"
 msgstr "Autotest OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6184
 msgid "Self test start  "
-msgstr "Avvia autotest  "
+msgstr "Avvia autotest"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4927
 msgid "Selftest         "
-msgstr "Autotest         "
+msgstr "Autotest"
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:6777
 msgid "Selftest error !"
 msgstr "Errore Autotest !"
 
 # MSG_SELFTEST_FAILED c=20
-#: messages.c:82
+#: messages.c:73
 msgid "Selftest failed  "
-msgstr "Autotest fallito  "
+msgstr "Autotest fallito"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1521
+#: Marlin_main.cpp:1520
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
-msgstr "Verra effettuato un self test per calibrare l'homing senza sensori."
+msgstr "Verra effettuato un self test per calibrare l'homing senza sensori"
 
 # 
-#: ultralcd.cpp:4550
+#: ultralcd.cpp:4551
 msgid "Select nozzle preheat temperature which matches your material."
-msgstr ""
+msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale."
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Select PLA filament:"
-msgstr ""
+msgstr "Selezionate filamento PLA:"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:2901
 msgid "Set temperature:"
 msgstr "Imposta temperatura:"
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Impostazioni"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:4950
 msgid "Show end stops"
 msgstr "Stato finecorsa"
 
 # 
-#: ultralcd.cpp:4947
+#: ultralcd.cpp:4948
 msgid "Show pinda state"
-msgstr ""
-
-# MSG_DWELL
-#: Marlin_main.cpp:3752
-msgid "Sleep..."
-msgstr "Sospensione..."
+msgstr "Mostra stato pinda"
 
 # MSG_FILE_CNT c=20 r=4
 #: cardreader.cpp:738
@@ -1391,24 +1301,24 @@ 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:4790
+#: ultralcd.cpp:4791
 msgid "Sort:      [none]"
-msgstr "Ordine: [Nessuno]"
+msgstr "Ordina:    [none]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:4789
 msgid "Sort:      [time]"
-msgstr "Ordine:   [Tempo]"
+msgstr "Ordina:    [time]"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2687
 msgid "Severe skew"
-msgstr ""
+msgstr "Disassamento grave"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:4790
 msgid "Sort:  [alphabet]"
-msgstr "Ordine:[Alfabet.]"
+msgstr "Ordine: [alfabet]"
 
 # MSG_SORTING c=20 r=1
 #: cardreader.cpp:745
@@ -1421,9 +1331,9 @@ msgid "Sound      [loud]"
 msgstr "Suono     [forte]"
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2686
 msgid "Slight skew"
-msgstr ""
+msgstr "Disassamento lieve"
 
 # MSG_SOUND_MUTE c=17 r=1
 #: sound.h:8
@@ -1431,9 +1341,9 @@ msgid "Sound      [mute]"
 msgstr "Suono      [mute]"
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4518
 msgid "Some problem encountered, Z-leveling enforced ..."
-msgstr ""
+msgstr "Sono stati rilevati problemi, avviato livellamento Z ..."
 
 # MSG_SOUND_ONCE c=17 r=1
 #: sound.h:6
@@ -1446,144 +1356,149 @@ msgid "Sound    [silent]"
 msgstr "Suono[silenzioso]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:5938
 msgid "Speed"
 msgstr "Velocita"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Gira"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4023
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
-msgstr "Sono necessari una temperatura ambiente di 21-26C e una superficie rigida."
+msgstr "Sono necessari una temperatura ambiente di 21-26C e una superficie rigida "
 
 # MSG_STATISTICS
-#: ultralcd.cpp:5847
+#: ultralcd.cpp:5849
 msgid "Statistics  "
-msgstr "Statistiche  "
+msgstr "Statistiche"
 
 # 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. "
+msgstr "ARRESTATO."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:5856
 msgid "Support"
 msgstr "Supporto"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:6857
 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:4861
 msgid "Temp. cal.   [on]"
 msgstr "Calib. temp. [ON]"
 
 # MSG_TEMP_CALIBRATION_OFF c=20 r=1
-#: ultralcd.cpp:4858
+#: ultralcd.cpp:4859
 msgid "Temp. cal.  [off]"
 msgstr "Calib. temp.[OFF]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4959
 msgid "Temp. calibration"
 msgstr "Calib. Temp."
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3526
 msgid "Temperature calibration failed"
 msgstr "Calibrazione temperatura fallita"
 
 # 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. Puo essere disattivata dal menu Impostazioni ->Cal. Temp."
 
 # MSG_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:4837
 msgid "Temperature"
 msgstr ""
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2189
 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 "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione."
+msgstr "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione. "
 
 # 
-#: ultralcd.cpp:2539
+#: ultralcd.cpp:2540
 msgid "Total filament"
-msgstr ""
+msgstr "Filamento totale"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2542
 msgid "Total print time"
-msgstr ""
-
-# MSG_ENDSTOP_HIT
-#: messages.c:28
-msgid "TRIGGERED"
-msgstr "ATTIVATO"
+msgstr "Tempo di stampa totale"
 
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:5764
 msgid "Tune"
 msgstr "Regola"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Unload"
-msgstr ""
+msgstr "Scarica"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5366
 msgid "Unload all"
+msgstr "Rilasciare tutti"
+
+# 
+#: ultralcd.cpp:1931
+msgid "Total failures"
 msgstr ""
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
 msgstr "Scarica filam."
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Scaricando filamento"
 
+# 
+#: ultralcd.cpp:1965
+msgid "Total"
+msgstr ""
+
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5084
 msgid "Used during print"
 msgstr "Usati nella stampa"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2192
 msgid "Voltages"
 msgstr "Voltaggi"
 
-# MSG_SD_VOL_INIT_FAIL
-#: cardreader.cpp:191
-msgid "volume.init failed"
-msgstr "volume.init fallito"
+# 
+#: ultralcd.cpp:2166
+msgid "unknown"
+msgstr ""
 
 # MSG_USERWAIT
 #: Marlin_main.cpp:4823
@@ -1591,52 +1506,52 @@ msgid "Wait for user..."
 msgstr "Attendendo utente..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3045
 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:3009
 msgid "Waiting for PINDA probe cooling"
 msgstr "In attesa del raffreddamento della sonda PINDA"
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4387
 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 ""
+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:1481
+#: Marlin_main.cpp:1480
 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:1472
 msgid "Warning: motherboard type changed."
-msgstr "Avviso: tipo di scheda madre cambiato."
+msgstr "Avviso: tipo di scheda madre cambiato"
 
 # MSG_CHANGED_PRINTER c=20 r=4
-#: Marlin_main.cpp:1477
+#: Marlin_main.cpp:1476
 msgid "Warning: printer type changed."
 msgstr "Avviso: tipo di stampante cambiato."
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:2977
 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:4924
 msgid "Wizard"
 msgstr ""
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2182
 msgid "XYZ cal. details"
 msgstr "XYZ Cal. dettagli"
 
@@ -1646,107 +1561,107 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "Calibrazione XYZ fallita. Si prega di consultare il manuale."
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Si"
 
 # 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_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3496
+#: ultralcd.cpp:3497
 msgid "XYZ calibration all right. Skew will be corrected automatically."
-msgstr "Calibrazion XYZ corretta. La distorsione verra' automaticamente compensata."
+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:3494
 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:4632
+#: ultralcd.cpp:4633
 msgid "X-correct"
-msgstr ""
+msgstr "Correzione-X"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3491
 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:3474
+#: ultralcd.cpp:3475
 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:3477
+#: ultralcd.cpp:3478
 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:3480
+#: ultralcd.cpp:3481
 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:5323
+#: ultralcd.cpp:5324
 msgid "Load all"
 msgstr "Caricare tutti"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5325
 msgid "Load filament 1"
 msgstr "Caricare fil. 1"
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3457
 msgid "XYZ calibration failed. Bed calibration point was not found."
-msgstr ""
+msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul letto non e' stato trovato."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3463
 msgid "XYZ calibration failed. Front calibration points not reachable."
-msgstr ""
+msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3469
 msgid "XYZ calibration failed. Left front calibration point not reachable."
-msgstr ""
+msgstr "Calibrazione XYZ fallita. Punto anteriore sinistro non raggiungibile."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5326
 msgid "Load filament 2"
 msgstr "Caricare fil. 2"
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3466
 msgid "XYZ calibration failed. Right front calibration point not reachable."
-msgstr ""
+msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5327
 msgid "Load filament 3"
-msgstr "Caricare fil. 3"
+msgstr "Carica fil. 3"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2647
 msgid "Y distance from min"
-msgstr ""
+msgstr "Distanza Y dal min"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4634
 msgid "Y-correct"
-msgstr ""
+msgstr "Correzione-Y"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5328
 msgid "Load filament 4"
 msgstr "Caricare fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5331
 msgid "Load filament 5"
 msgstr "Caricare fil. 5"
 

+ 447 - 532
lang/po/Firmware_pl.po

@@ -7,98 +7,83 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pl\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: pá 9. lis 2018 14:40:12\n"
-"PO-Revision-Date: pá 9. lis 2018 14:40:12\n"
+"POT-Creation-Date: pá 30. lis 2018 18:54:49\n"
+"PO-Revision-Date: pá 30. lis 2018 18:54:49\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "Last-Translator: \n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-# MSG_PLANNER_BUFFER_BYTES
-#: Marlin_main.cpp:1184
-msgid "  PlannerBufferBytes: "
-msgstr " PlannerBufferBytes: "
-
-# MSG_ERR_COLD_EXTRUDE_STOP
-#: planner.cpp:761
-msgid " cold extrusion prevented"
-msgstr " nie dopuszczono do zimnej ekstruzji"
-
-# MSG_FREE_MEMORY
-#: Marlin_main.cpp:1182
-msgid " Free Memory: "
-msgstr " Wolna pamiec: "
-
-# MSG_CONFIGURATION_VER
-#: Marlin_main.cpp:1172
-msgid " Last Updated: "
-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"
 
 # MSG_MEASURED_OFFSET
-#: ultralcd.cpp:2701
+#: ultralcd.cpp:2702
 msgid "[0;0] point offset"
 msgstr "[0;0] przesuniecie punktu"
 
 # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
-#: ultralcd.cpp:3967
+#: ultralcd.cpp:3968
 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:3979
+#: ultralcd.cpp:3980
 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"
 
 # MSG_BABYSTEPPING_Z c=20
-#: ultralcd.cpp:2830
+#: ultralcd.cpp:2831
 msgid "Adjusting Z"
 msgstr "Dostrajanie Z"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:7072
+#: ultralcd.cpp:7074
 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:2026
+msgid "Ambient"
+msgstr ""
+
 # MSG_PRESS c=20
-#: ultralcd.cpp:2241
+#: ultralcd.cpp:2245
 msgid "and press the knob"
 msgstr "i nacisnij pokretlo"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
-#: ultralcd.cpp:3119
+#: ultralcd.cpp:3120
 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:4706
-msgid "Auto deplete [on]"
-msgstr "Wyk. resztek [wl]"
+#: ultralcd.cpp:4707
+msgid "SpoolJoin    [on]"
+msgstr "SpoolJoin    [wl]"
 
 # 
-#: ultralcd.cpp:4702
-msgid "Auto deplete[N/A]"
-msgstr ""
+#: ultralcd.cpp:4703
+msgid "SpoolJoin   [N/A]"
+msgstr "SpoolJoin    [nd]"
 
 #  MSG_AUTO_DEPLETE_OFF c=17 r=1
-#: ultralcd.cpp:4710
-msgid "Auto deplete[off]"
-msgstr "Wyk. resztek[wyl]"
+#: ultralcd.cpp:4711
+msgid "SpoolJoin   [off]"
+msgstr "SpoolJoin   [wyl]"
 
 # MSG_AUTO_HOME
 #: messages.c:11
@@ -106,32 +91,32 @@ msgid "Auto home"
 msgstr "Auto zerowanie"
 
 # MSG_AUTOLOAD_FILAMENT c=17
-#: ultralcd.cpp:5834
+#: ultralcd.cpp:5836
 msgid "AutoLoad filament"
-msgstr "AutoLadowanie filamentu"
+msgstr "AutoLadowanie fil."
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
-#: ultralcd.cpp:3994
+#: ultralcd.cpp:3995
 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:2439
 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:6845
+#: ultralcd.cpp:6847
 msgid "Axis length"
 msgstr "Dlugosc osi"
 
 # MSG_SELFTEST_AXIS
-#: ultralcd.cpp:6847
+#: ultralcd.cpp:6849
 msgid "Axis"
 msgstr "Os"
 
 # MSG_SELFTEST_BEDHEATER
-#: ultralcd.cpp:6789
+#: ultralcd.cpp:6791
 msgid "Bed / Heater"
 msgstr "Stol / Grzanie"
 
@@ -143,10 +128,10 @@ msgstr "Stol OK"
 # MSG_BED_HEATING
 #: messages.c:17
 msgid "Bed Heating"
-msgstr "Grzanie stolu"
+msgstr "Grzanie stolu.."
 
 # MSG_BED_CORRECTION_MENU
-#: ultralcd.cpp:4944
+#: ultralcd.cpp:4945
 msgid "Bed level correct"
 msgstr "Korekta poziomowania stolu"
 
@@ -156,12 +141,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:4466
 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:4470
 msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset."
 msgstr "Kalibracja Z nieudana. Sensor aktywowal za wysoko. Czekam na reset."
 
@@ -171,32 +156,32 @@ msgid "Bed"
 msgstr "Stol"
 
 # MSG_MENU_BELT_STATUS c=15 r=1
-#: ultralcd.cpp:2048
+#: ultralcd.cpp:2052
 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_BED
-#: ultralcd.cpp:4933
+#: ultralcd.cpp:4934
 msgid "Calibrate XYZ"
 msgstr "Kalibracja XYZ"
 
 # MSG_HOMEYZ
-#: messages.c:53
+#: messages.c:48
 msgid "Calibrate Z"
 msgstr "Kalibruj Z"
 
 # MSG_CALIBRATE_PINDA c=17 r=1
-#: ultralcd.cpp:4175
+#: ultralcd.cpp:4176
 msgid "Calibrate"
 msgstr "Kalibruj"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -206,7 +191,7 @@ msgid "Calibrating Z"
 msgstr "Kalibruje Z"
 
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
-#: ultralcd.cpp:3079
+#: ultralcd.cpp:3080
 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."
 
@@ -216,34 +201,29 @@ msgid "Calibration done"
 msgstr "Kalibracja OK"
 
 # MSG_MENU_CALIBRATION
-#: messages.c:62
+#: messages.c:57
 msgid "Calibration"
 msgstr "Kalibracja"
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Cancel"
-msgstr ""
-
-# MSG_SD_CANT_ENTER_SUBDIR
-#: cardreader.cpp:662
-msgid "Cannot enter subdir: "
-msgstr "Brak dostepu do subdir: "
+msgstr "Anuluj"
 
 # MSG_SD_INSERTED
-#: ultralcd.cpp:7423
+#: ultralcd.cpp:7425
 msgid "Card inserted"
 msgstr "Karta wlozona"
 
 # MSG_SD_REMOVED
-#: ultralcd.cpp:7429
+#: ultralcd.cpp:7431
 msgid "Card removed"
 msgstr "Karta wyjeta"
 
 # MSG_NOT_COLOR
 #: ultralcd.cpp:2345
 msgid "Color not correct"
-msgstr "Kolor zanieczysz"
+msgstr "Kolor zanieczysz."
 
 # MSG_COOLDOWN
 #: messages.c:23
@@ -251,14 +231,14 @@ msgid "Cooldown"
 msgstr "Chlodzenie"
 
 # 
-#: ultralcd.cpp:4108
-msgid "Copy selected language from XFLASH?"
-msgstr ""
+#: ultralcd.cpp:4109
+msgid "Copy selected language?"
+msgstr "Skopiowac wybrany jezyk?"
 
 # MSG_CRASHDETECT_ON
 #: messages.c:27
 msgid "Crash det.   [on]"
-msgstr "Wykr. zderzen[wl]"
+msgstr "Wykr.zderzen [wl]"
 
 # MSG_CRASHDETECT_NA
 #: messages.c:25
@@ -273,25 +253,30 @@ msgstr "Wykr.zderzen[wyl]"
 # MSG_CRASH_DETECTED c=20 r=1
 #: messages.c:24
 msgid "Crash detected."
-msgstr "Zderzenie wykryte."
+msgstr "Zderzenie wykryte"
 
 # 
-#: Marlin_main.cpp:604
+#: Marlin_main.cpp:603
 msgid "Crash detected. Resume print?"
-msgstr "Zderzenie wykryte. Wznowic wydruk?"
+msgstr "Wykryto zderzenie. Wznowic druk?"
+
+# 
+#: ultralcd.cpp:1932
+msgid "Crash"
+msgstr ""
 
 # MSG_CURRENT c=19 r=1
-#: ultralcd.cpp:5084
+#: ultralcd.cpp:5085
 msgid "Current"
 msgstr "Aktualne"
 
 # MSG_DATE c=17 r=1
-#: ultralcd.cpp:2148
+#: ultralcd.cpp:2152
 msgid "Date:"
 msgstr "Data:"
 
 # MSG_DISABLE_STEPPERS
-#: ultralcd.cpp:4840
+#: ultralcd.cpp:4841
 msgid "Disable steppers"
 msgstr "Wylaczenie silnikow"
 
@@ -301,317 +286,312 @@ 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:4576
 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:4636
+#: ultralcd.cpp:4637
 msgid "E-correct"
 msgstr "Korekcja E"
 
 # MSG_EJECT_FILAMENT c=17 r=1
-#: ultralcd.cpp:5823
+#: ultralcd.cpp:5825
 msgid "Eject filament"
 msgstr "Wysun filament"
 
 # MSG_EJECT_FILAMENT1 c=17 r=1
-#: ultralcd.cpp:5351
+#: ultralcd.cpp:5352
 msgid "Eject filament 1"
 msgstr "Wysun filament 1"
 
 # MSG_EJECT_FILAMENT2 c=17 r=1
-#: ultralcd.cpp:5352
+#: ultralcd.cpp:5353
 msgid "Eject filament 2"
-msgstr "Wysun filament 1"
+msgstr "Wysun filament 2"
 
 # MSG_EJECT_FILAMENT3 c=17 r=1
-#: ultralcd.cpp:5353
+#: ultralcd.cpp:5354
 msgid "Eject filament 3"
 msgstr "Wysun filament 3"
 
 # MSG_EJECT_FILAMENT4 c=17 r=1
-#: ultralcd.cpp:5354
+#: ultralcd.cpp:5355
 msgid "Eject filament 4"
 msgstr "Wysun filament 4"
 
 # MSG_EJECT_FILAMENT5 c=17 r=1
-#: ultralcd.cpp:5355
+#: ultralcd.cpp:5356
 msgid "Eject filament 5"
 msgstr "Wysun filament 5"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Eject"
-msgstr ""
+msgstr "Wysun"
 
 # MSG_EJECTING_FILAMENT c=20 r=1
-#: mmu.cpp:1106
+#: mmu.cpp:1128
 msgid "Ejecting filament"
 msgstr "Wysuwanie filamentu"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
-#: ultralcd.cpp:6813
+#: ultralcd.cpp:6815
 msgid "Endstop not hit"
-msgstr "Krancowka nie aktyw"
+msgstr "Krancowka nie aktyw."
 
 # MSG_SELFTEST_ENDSTOP
-#: ultralcd.cpp:6807
+#: ultralcd.cpp:6809
 msgid "Endstop"
 msgstr "Krancowka"
 
-# MSG_ENDSTOPS_HIT
-#: messages.c:30
-msgid "endstops hit: "
-msgstr "krancowki aktywowane: "
-
 # MSG_SELFTEST_ENDSTOPS
-#: ultralcd.cpp:6795
+#: ultralcd.cpp:6797
 msgid "Endstops"
 msgstr "Krancowki"
 
-# MSG_Enqueing
-#: 
-msgid "enqueing \x22"
-msgstr ""
-
 # MSG_STACK_ERROR c=20 r=4
-#: ultralcd.cpp:5869
+#: ultralcd.cpp:5871
 msgid "Error - static memory has been overwritten"
 msgstr "Blad - pamiec statyczna zostala nadpisana"
 
-# MSG_SD_ERR_WRITE_TO_FILE
-#: messages.c:78
-msgid "error writing to file"
-msgstr "blad zapisywania pliku"
-
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
-#: ultralcd.cpp:4007
+#: ultralcd.cpp:4008
 msgid "ERROR: Filament sensor is not responding, please check connection."
 msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie."
 
 # MSG_ERROR
-#: messages.c:33
+#: messages.c:28
 msgid "ERROR:"
 msgstr "BLAD:"
 
 # 
-#: Marlin_main.cpp:985
+#: Marlin_main.cpp:984
 msgid "External SPI flash W25X20CL not responding."
-msgstr ""
+msgstr "Zewnetrzna pamiec flash SPI W25X20CL nie odpowiada."
 
 # 
-#: ultralcd.cpp:5381
+#: ultralcd.cpp:5382
 msgid "Extruder 1"
-msgstr ""
+msgstr "Ekstruder 1"
 
 # 
-#: ultralcd.cpp:5382
+#: ultralcd.cpp:5383
 msgid "Extruder 2"
-msgstr ""
+msgstr "Ekstruder 2"
 
 # 
-#: ultralcd.cpp:5383
+#: ultralcd.cpp:5384
 msgid "Extruder 3"
-msgstr ""
+msgstr "Ekstruder 3"
 
 # 
-#: ultralcd.cpp:5384
+#: ultralcd.cpp:5385
 msgid "Extruder 4"
-msgstr ""
+msgstr "Ekstruder 4"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:7081
+#: ultralcd.cpp:7083
 msgid "Extruder fan:"
 msgstr "Went. ekstrudera:"
 
 # MSG_INFO_EXTRUDER c=15 r=1
-#: ultralcd.cpp:2179
+#: ultralcd.cpp:2183
 msgid "Extruder info"
 msgstr "Informacje o ekstruderze"
 
 # MSG_MOVE_E
-#: messages.c:34
+#: messages.c:29
 msgid "Extruder"
 msgstr "Ekstruder"
 
 # MSG_FSENS_AUTOLOAD_ON c=17 r=1
-#: ultralcd.cpp:4674
+#: ultralcd.cpp:4675
 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 "Autolad.fil.[N/D]"
 
 # MSG_FSENS_AUTOLOAD_OFF c=17 r=1
-#: ultralcd.cpp:4676
+#: ultralcd.cpp:4677
 msgid "F. autoload [off]"
-msgstr "Autoladowanie[wl]"
+msgstr "Autolad.fil.[wyl]"
+
+# 
+#: ultralcd.cpp:5853
+msgid "Fail stats"
+msgstr ""
 
 # 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:4848
 msgid "Fans check   [on]"
 msgstr "Sprawd.went. [wl]"
 
 # MSG_FANS_CHECK_OFF c=17 r=1
-#: ultralcd.cpp:4849
+#: ultralcd.cpp:4850
 msgid "Fans check  [off]"
 msgstr "Sprawd.went.[wyl]"
 
 # MSG_FSENSOR_ON
-#: messages.c:50
+#: messages.c:45
 msgid "Fil. sensor  [on]"
 msgstr "Czuj. filam. [wl]"
 
 # MSG_RESPONSE_POOR c=20 r=2
-#: Marlin_main.cpp:3105
+#: Marlin_main.cpp:3104
 msgid "Fil. sensor response is poor, disable it?"
 msgstr "Reakcja czujnika slaba, wylaczyc?"
 
 # MSG_FSENSOR_NA
-#: ultralcd.cpp:4654
+#: ultralcd.cpp:4655
 msgid "Fil. sensor [N/A]"
-msgstr "Czuj. fil.  [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:1932
+msgid "Filam. runouts"
+msgstr ""
 
 # 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
 msgid "Filament not loaded"
-msgstr "Filament nie zaladowany"
+msgstr "Fil. nie zaladowany"
 
 # MSG_FILAMENT_SENSOR c=20
-#: ultralcd.cpp:6861
+#: ultralcd.cpp:6863
 msgid "Filament sensor"
 msgstr "Czujnik filamentu"
 
 # MSG_SELFTEST_FILAMENT_SENSOR c=18
-#: ultralcd.cpp:7090
+#: ultralcd.cpp:7092
 msgid "Filament sensor:"
 msgstr "Czujnik filamentu:"
 
 # MSG_FILAMENT_USED c=19 r=1
-#: ultralcd.cpp:2512
+#: ultralcd.cpp:2513
 msgid "Filament used"
 msgstr "Uzyty filament"
 
 # MSG_PRINT_TIME c=19 r=1
-#: ultralcd.cpp:2514
+#: ultralcd.cpp:2515
 msgid "Print time"
 msgstr "Czas druku"
 
 # MSG_FILE_INCOMPLETE c=20 r=2
-#: ultralcd.cpp:7207
+#: ultralcd.cpp:7209
 msgid "File incomplete. Continue anyway?"
 msgstr "Plik niekompletny. Kontynowac?"
 
 # 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:4925
 msgid "First layer cal."
-msgstr "Kal. 1. warstwy."
+msgstr "Kal. 1. warstwy"
 
 # MSG_WIZARD_SELFTEST c=20 r=8
-#: ultralcd.cpp:4487
+#: ultralcd.cpp:4488
 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:436
 msgid "Fix the issue and then press button on MMU unit."
-msgstr ""
+msgstr "Rozwiaz problem i wcisnij przycisk na MMU."
 
 # MSG_FLOW
-#: ultralcd.cpp:5942
+#: ultralcd.cpp:5944
 msgid "Flow"
 msgstr "Przeplyw"
 
 # MSG_PRUSA3D_FORUM
-#: ultralcd.cpp:2141
+#: ultralcd.cpp:2145
 msgid "forum.prusa3d.com"
 msgstr ""
 
 # 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:2891
 msgid "Front side[um]"
 msgstr "Przod [um]"
 
 # MSG_SELFTEST_FANS
-#: ultralcd.cpp:6853
+#: ultralcd.cpp:6855
 msgid "Front/left fans"
 msgstr "Przedni/lewy wentylator"
 
 # MSG_SELFTEST_HEATERTHERMISTOR
-#: ultralcd.cpp:6783
+#: ultralcd.cpp:6785
 msgid "Heater/Thermistor"
 msgstr "Grzalka/Termistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED
-#: Marlin_main.cpp:7395
+#: Marlin_main.cpp:7400
 msgid "Heating disabled by safety timer."
-msgstr "Grzanie wylaczone przez wyl. czasowy."
+msgstr "Grzanie wylaczone przez wyl. czasowy"
 
 # MSG_HEATING_COMPLETE c=20
-#: messages.c:52
+#: messages.c:47
 msgid "Heating done."
-msgstr "Grzanie zakonczone."
+msgstr "Grzanie zakonczone"
 
 # MSG_HEATING
-#: messages.c:51
+#: messages.c:46
 msgid "Heating"
-msgstr "Grzanie"
+msgstr "Grzanie..."
 
 # MSG_WIZARD_WELCOME c=20 r=7
-#: ultralcd.cpp:4466
+#: ultralcd.cpp:4467
 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:2146
 msgid "howto.prusa3d.com"
 msgstr ""
 
 # 
-#: ultralcd.cpp:5830
+#: ultralcd.cpp:5832
 msgid "Change extruder"
-msgstr ""
+msgstr "Zmiana ekstrudera"
 
 # MSG_FILAMENTCHANGE
-#: messages.c:42
+#: messages.c:37
 msgid "Change filament"
 msgstr "Wymiana filamentu"
 
 # MSG_CHANGE_SUCCESS
-#: ultralcd.cpp:2252
+#: ultralcd.cpp:2256
 msgid "Change success!"
 msgstr "Wymiana ok!"
 
@@ -621,74 +601,69 @@ msgid "Changed correctly?"
 msgstr "Wymiana ok?"
 
 # MSG_SELFTEST_CHECK_BED c=20
-#: messages.c:86
+#: messages.c:77
 msgid "Checking bed     "
-msgstr "Kontrola stolu     "
+msgstr "Kontrola stolu"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:7063
+#: ultralcd.cpp:7065
 msgid "Checking endstops"
 msgstr "Kontrola krancowek"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:7064
+#: ultralcd.cpp:7066
 msgid "Checking hotend  "
-msgstr "Kontrola hotendu  "
+msgstr "Kontrola hotendu"
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
-#: messages.c:87
+#: messages.c:78
 msgid "Checking sensors "
-msgstr "Sprawdzanie czujnikow "
+msgstr "Sprawdzanie czujnikow"
 
 # MSG_SELFTEST_CHECK_X c=20
-#: ultralcd.cpp:7065
+#: ultralcd.cpp:7067
 msgid "Checking X axis  "
-msgstr "Kontrola osi X  "
+msgstr "Kontrola osi X"
 
 # MSG_SELFTEST_CHECK_Y c=20
-#: ultralcd.cpp:7066
+#: ultralcd.cpp:7068
 msgid "Checking Y axis  "
-msgstr "Kontrola osi Y  "
+msgstr "Kontrola osi Y"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:7067
+#: ultralcd.cpp:7069
 msgid "Checking Z axis  "
-msgstr "Kontrola osi Z  "
-
-# MSG_ERR_CHECKSUM_MISMATCH
-#: cmdqueue.cpp:444
-msgid "checksum mismatch, Last Line: "
-msgstr "suma kontrolna niezgodna, ostatnia linia: "
+msgstr "Kontrola osi Z"
 
 # 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_FILAMENT c=17 r=1
-#: messages.c:35
+#: messages.c:30
 msgid "Filament"
-msgstr "Filament"
+msgstr ""
 
 # MSG_WIZARD_XYZ_CAL c=20 r=8
-#: ultralcd.cpp:4496
+#: ultralcd.cpp:4497
 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:4505
 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:4570
 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."
+msgstr "Zaczne drukowac linie. Stopniowo opuszczaj dysze przekrecajac pokretlo, poki nie uzyskasz optymalnej wysokosci. Sprawdz obrazki w naszym Podreczniku w rozdz. Kalibracja"
 
 # MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 c=60
 #: mesh_bed_calibration.cpp:2481
@@ -696,57 +671,57 @@ msgid "Improving bed calibration point"
 msgstr "Poprawiam precyzje punktu kalibracyjnego"
 
 # MSG_WATCH
-#: messages.c:102
+#: messages.c:93
 msgid "Info screen"
 msgstr "Ekran informacyjny"
 
 # 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:4530
 msgid "Is filament 1 loaded?"
-msgstr ""
+msgstr "Filament 1 zaladowany?"
 
 # MSG_INSERT_FILAMENT c=20
-#: ultralcd.cpp:2238
+#: ultralcd.cpp:2242
 msgid "Insert filament"
 msgstr "Wprowadz filament"
 
 # MSG_WIZARD_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4532
+#: ultralcd.cpp:4533
 msgid "Is filament loaded?"
 msgstr "Filament jest zaladowany?"
 
 # MSG_WIZARD_PLA_FILAMENT c=20 r=2
-#: ultralcd.cpp:4563
+#: ultralcd.cpp:4564
 msgid "Is it PLA filament?"
 msgstr "Czy to filament PLA?"
 
 # MSG_PLA_FILAMENT_LOADED c=20 r=2
-#: ultralcd.cpp:4309
+#: ultralcd.cpp:4310
 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?"
 
@@ -755,280 +730,240 @@ msgstr "Czy plyta stal. jest na podgrzew. stole?"
 msgid "Iteration "
 msgstr "Iteracja "
 
-# MSG_KILLED
-#: Marlin_main.cpp:7552
-msgid "KILLED. "
-msgstr "PRZERWANE. "
+# 
+#: ultralcd.cpp:1949
+msgid "Last print failures"
+msgstr ""
+
+# 
+#: ultralcd.cpp:1964
+msgid "Last print"
+msgstr ""
 
 # MSG_SELFTEST_EXTRUDER_FAN c=20
-#: messages.c:81
+#: messages.c:72
 msgid "Left hotend fan?"
 msgstr "Lewy went hotendu?"
 
 # 
-#: ultralcd.cpp:2648
+#: ultralcd.cpp:2649
 msgid "Left"
-msgstr ""
+msgstr "Lewa"
 
 # MSG_BED_CORRECTION_LEFT c=14 r=1
-#: ultralcd.cpp:2888
+#: ultralcd.cpp:2889
 msgid "Left side [um]"
 msgstr "Lewo [um]"
 
 # 
-#: ultralcd.cpp:4854
+#: ultralcd.cpp:4855
 msgid "Lin. correction"
-msgstr ""
+msgstr "Korekcja lin."
 
 # MSG_BABYSTEP_Z
 #: messages.c:13
 msgid "Live adjust Z"
-msgstr "Dostrajanie osi Z"
+msgstr "Ustaw. Live Z"
 
 # MSG_LOAD_FILAMENT c=17
-#: messages.c:56
+#: messages.c:51
 msgid "Load filament"
-msgstr "Ladowanie filamentu"
+msgstr "Ladowanie fil."
 
 # MSG_LOADING_COLOR
-#: ultralcd.cpp:2265
+#: ultralcd.cpp:2281
 msgid "Loading color"
 msgstr "Czyszcz. koloru"
 
 # MSG_LOADING_FILAMENT c=20
-#: messages.c:57
+#: messages.c:52
 msgid "Loading filament"
-msgstr "Ladowanie filamentu"
+msgstr "Laduje filament"
 
 # MSG_LOOSE_PULLEY c=20 r=1
-#: ultralcd.cpp:6837
+#: ultralcd.cpp:6839
 msgid "Loose pulley"
 msgstr "Luzne kolo pasowe"
 
-# MSG_M104_INVALID_EXTRUDER
-#: Marlin_main.cpp:7675
-msgid "M104 Invalid extruder "
-msgstr "M104 Nieprawidlowy ekstruder "
-
-# MSG_M105_INVALID_EXTRUDER
-#: Marlin_main.cpp:7678
-msgid "M105 Invalid extruder "
-msgstr "M105 Nieprawidlowy ekstruder "
-
 # 
-#: ultralcd.cpp:5822
+#: ultralcd.cpp:5824
 msgid "Load to nozzle"
-msgstr ""
-
-# MSG_M109_INVALID_EXTRUDER
-#: Marlin_main.cpp:7681
-msgid "M109 Invalid extruder "
-msgstr "M109 Nieprawidlowy ekstruder "
+msgstr "Zaladuj do dyszy"
 
 # MSG_M117_V2_CALIBRATION c=25 r=1
-#: messages.c:58
+#: messages.c:53
 msgid "M117 First layer cal."
 msgstr "M117 Kal. 1. warstwy"
 
-# MSG_M200_INVALID_EXTRUDER
-#: Marlin_main.cpp:5857
-msgid "M200 Invalid extruder "
-msgstr "M200 Nieprawidlowy ekstruder "
-
-# MSG_M218_INVALID_EXTRUDER
-#: Marlin_main.cpp:7684
-msgid "M218 Invalid extruder "
-msgstr "M218 Nieprawidlowy ekstruder "
-
-# MSG_M221_INVALID_EXTRUDER
-#: Marlin_main.cpp:7687
-msgid "M221 Invalid extruder "
-msgstr "M221 Nieprawidlowy ekstruder "
-
 # MSG_MAIN
-#: messages.c:59
+#: messages.c:54
 msgid "Main"
 msgstr "Menu glowne"
 
 # 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:4940
 msgid "Mesh Bed Leveling"
 msgstr "Poziomowanie stolu wg siatki"
 
 # MSG_MMU_OK_RESUMING_POSITION c=20 r=4
-#: mmu.cpp:461
+#: mmu.cpp:474
 msgid "MMU OK. Resuming position..."
 msgstr "MMU OK. Wznawianie pozycji."
 
 # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
-#: mmu.cpp:450
+#: mmu.cpp:463
 msgid "MMU OK. Resuming temperature..."
 msgstr "MMU OK. Wznawiam nagrzewanie..."
 
 # 
-#: ultralcd.cpp:2683
+#: ultralcd.cpp:2684
 msgid "Measured skew"
-msgstr ""
+msgstr "Zmierzony skos"
 
 # MSG_MMU_OK_RESUMING c=20 r=4
-#: mmu.cpp:472
+#: mmu.cpp:485
 msgid "MMU OK. Resuming..."
 msgstr "MMU OK. Wznawianie..."
 
 # MSG_STEALTH_MODE_OFF
-#: messages.c:93
+#: messages.c:84
 msgid "Mode     [Normal]"
 msgstr "Tryb   [normalny]"
 
 # MSG_SILENT_MODE_ON
-#: messages.c:92
+#: messages.c:83
 msgid "Mode     [silent]"
 msgstr "Tryb      [cichy]"
 
 # 
-#: mmu.cpp:418
+#: mmu.cpp:431
 msgid "MMU needs user attention."
-msgstr ""
+msgstr "MMU wymaga uwagi uzytkownika."
 
 # MSG_STEALTH_MODE_ON
-#: messages.c:94
+#: messages.c:85
 msgid "Mode    [Stealth]"
 msgstr "Tryb    [Stealth]"
 
 # MSG_AUTO_MODE_ON
 #: messages.c:12
 msgid "Mode [auto power]"
-msgstr "Tryb[automatycz.]"
+msgstr "Tryb [automatycz]"
 
 # MSG_SILENT_MODE_OFF
-#: messages.c:91
+#: messages.c:82
 msgid "Mode [high power]"
-msgstr "Tryb[wysok.wyda.]"
+msgstr "Tryb[wysoka wyd.]"
+
+# 
+#: ultralcd.cpp:2158
+msgid "MMU2 connected"
+msgstr ""
 
 # MSG_SELFTEST_MOTOR
-#: messages.c:88
+#: messages.c:79
 msgid "Motor"
 msgstr "Silnik"
 
 # MSG_MOVE_AXIS
-#: ultralcd.cpp:4838
+#: ultralcd.cpp:4839
 msgid "Move axis"
 msgstr "Ruch osi"
 
 # MSG_MOVE_X
-#: ultralcd.cpp:3912
+#: ultralcd.cpp:3913
 msgid "Move X"
 msgstr "Ruch osi X"
 
 # MSG_MOVE_Y
-#: ultralcd.cpp:3913
+#: ultralcd.cpp:3914
 msgid "Move Y"
 msgstr "Ruch osi Y"
 
 # MSG_MOVE_Z
-#: ultralcd.cpp:3914
+#: ultralcd.cpp:3915
 msgid "Move Z"
 msgstr "Ruch osi Z"
 
-# MSG_ERR_NO_CHECKSUM
-#: cmdqueue.cpp:456
-msgid "No Checksum with line number, Last Line: "
-msgstr "Brak sumy kontrolnej z numerem linii, ostatnia linia: "
-
 # MSG_NO_MOVE
 #: Marlin_main.cpp:4855
 msgid "No move."
 msgstr "Brak ruchu."
 
 # MSG_NO_CARD
-#: ultralcd.cpp:5802
+#: ultralcd.cpp:5804
 msgid "No SD card"
 msgstr "Brak karty SD"
 
 # MSG_NO
-#: messages.c:63
+#: messages.c:58
 msgid "No"
 msgstr "Nie"
 
 # MSG_SELFTEST_NOTCONNECTED
-#: ultralcd.cpp:6785
+#: ultralcd.cpp:6787
 msgid "Not connected"
-msgstr "Nie podlaczono"
+msgstr "Nie podlaczono "
 
 # 
 #: util.cpp:293
 msgid "New firmware version available:"
-msgstr ""
+msgstr "Dostepna nowa wersja firmware:"
 
 # 
 #: 
 msgid "No "
-msgstr ""
+msgstr "Nie"
 
 # 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:4569
 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:4513
 msgid "Now I will preheat nozzle for PLA."
 msgstr "Nagrzewam dysze dla PLA."
 
 # MSG_NOZZLE
-#: messages.c:64
+#: messages.c:59
 msgid "Nozzle"
 msgstr "Dysza"
 
-# MSG_OK
-#: Marlin_main.cpp:6333
-msgid "ok"
-msgstr ""
-
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4
-#: Marlin_main.cpp:1489
+#: Marlin_main.cpp:1488
 msgid "Old settings found. Default PID, Esteps etc. will be set."
 msgstr "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp."
 
-# MSG_SD_OPEN_FILE_FAIL
-#: messages.c:79
-msgid "open failed, File: "
-msgstr "niepowodzenie otwarcia, Plik: "
-
-# MSG_ENDSTOP_OPEN
-#: messages.c:29
-msgid "open"
-msgstr "otworz"
-
 # 
-#: ultralcd.cpp:4503
+#: ultralcd.cpp:4504
 msgid "Now remove the test print from steel sheet."
-msgstr ""
+msgstr "Teraz zdejmij wydruk testowy ze stolu."
 
-# MSG_SD_OPENROOT_FAIL
-#: cardreader.cpp:196
-msgid "openRoot failed"
-msgstr "niepowodzenie openRoot"
+# 
+#: ultralcd.cpp:1880
+msgid "Nozzle FAN"
+msgstr ""
 
 # MSG_PAUSE_PRINT
-#: ultralcd.cpp:5776
+#: ultralcd.cpp:5778
 msgid "Pause print"
 msgstr "Wstrzymanie wydruku"
 
 # MSG_PID_RUNNING c=20 r=1
 #: ultralcd.cpp:1703
 msgid "PID cal.           "
-msgstr "Kalibracja PID.           "
+msgstr "Kalibracja PID"
 
 # MSG_PID_FINISHED c=20 r=1
 #: ultralcd.cpp:1709
@@ -1036,7 +971,7 @@ msgid "PID cal. finished"
 msgstr "Kal. PID zakonczona"
 
 # MSG_PID_EXTRUDER c=17 r=1
-#: ultralcd.cpp:4945
+#: ultralcd.cpp:4946
 msgid "PID calibration"
 msgstr "Kalibracja PID"
 
@@ -1046,12 +981,12 @@ 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_WIZARD_CLEAN_HEATBED c=20 r=8
-#: ultralcd.cpp:4577
+#: ultralcd.cpp:4578
 msgid "Please clean heatbed and then press the knob."
 msgstr "Oczysc powierzchnie druku i nacisnij pokretlo."
 
@@ -1061,117 +996,117 @@ msgid "Please clean the nozzle for calibration. Click when done."
 msgstr "Dla prawidl. kalibracji nalezy oczyscic dysze. Potw. guzikiem."
 
 # MSG_SELFTEST_PLEASECHECK
-#: ultralcd.cpp:6777
+#: ultralcd.cpp:6779
 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_LOAD_FILAMENT c=20 r=8
-#: ultralcd.cpp:4411
+#: ultralcd.cpp:4412
 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:4314
+#: ultralcd.cpp:4315
 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:2988
 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"
 
 # 
-#: ultralcd.cpp:4407
+#: ultralcd.cpp:4408
 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it."
-msgstr ""
+msgstr "Wsun filament PLA do pierwszej rurki MMU i nacisnij pokretlo aby go zaladowac."
 
 # 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:1136
 msgid "Please remove filament and then press the knob."
 msgstr "Wyciagnij filament i wcisnij pokretlo."
 
 # 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:4010
 msgid "Please run XYZ calibration first."
-msgstr "Prosze najpierw uruchomic kalibracje XYZ."
+msgstr "Prosze najpierw uruchomic kalibracje XYZ"
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
-#: mmu.cpp:1061
+#: mmu.cpp:1082
 msgid "Please update firmware in your MMU2. Waiting for reset."
 msgstr "Prosze zaktualizowac Firmware MMU2. Czekam na reset."
 
 # MSG_PLEASE_WAIT c=20
-#: messages.c:68
+#: messages.c:62
 msgid "Please wait"
 msgstr "Prosze czekac"
 
-# MSG_POWERUP
-#: messages.c:69
-msgid "PowerUp"
-msgstr "Uruchamianie"
-
 # 
-#: ultralcd.cpp:4502
+#: ultralcd.cpp:4503
 msgid "Please remove shipping helpers first."
-msgstr ""
+msgstr "Najpierw usun zabezpieczenia transportowe"
 
 # MSG_PREHEAT_NOZZLE c=20
-#: messages.c:70
+#: messages.c:63
 msgid "Preheat the nozzle!"
 msgstr "Nagrzej dysze!"
 
 # MSG_PREHEAT
-#: ultralcd.cpp:5765
+#: ultralcd.cpp:5767
 msgid "Preheat"
 msgstr "Grzanie"
 
 # MSG_WIZARD_HEATING c=20 r=3
-#: messages.c:105
+#: messages.c:96
 msgid "Preheating nozzle. Please wait."
 msgstr "Nagrzewanie dyszy. Prosze czekac."
 
 # 
 #: util.cpp:297
 msgid "Please upgrade."
-msgstr ""
+msgstr "Prosze zaktualizowac."
 
 # MSG_PRESS_TO_PREHEAT c=20 r=4
-#: Marlin_main.cpp:9052
+#: Marlin_main.cpp:9054
 msgid "Press knob to preheat nozzle and continue."
 msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac."
 
+# 
+#: ultralcd.cpp:1932
+msgid "Power failures"
+msgstr ""
+
 # MSG_PRINT_ABORTED c=20
-#: messages.c:72
+#: messages.c:65
 msgid "Print aborted"
 msgstr "Druk przerwany"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:7084
+#: ultralcd.cpp:7086
 msgid "Print fan:"
 msgstr "Went. wydruku:"
 
@@ -1185,25 +1120,20 @@ msgstr "Druk z karty SD"
 msgid "Print paused"
 msgstr "Druk wstrzymany"
 
-# MSG_ERR_KILLED
-#: Marlin_main.cpp:7547
-msgid "Printer halted. kill() called!"
-msgstr "Drukarka zatrzymana. Wywolano komende kill()!"
-
 # 
-#: mmu.cpp:422
+#: mmu.cpp:435
 msgid "Press the knob to resume nozzle temperature."
-msgstr ""
+msgstr "Wcisnij pokretlo aby wznowic podgrzewanie dyszy."
 
 # 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."
 
-# MSG_ERR_STOPPED
-#: messages.c:32
-msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
-msgstr "Drukarka zatrzymana z powodu bledow. Usun problem i uzyj M999 aby zrestartowac. (Temperatura jest zresetowana, ustaw ja po restarcie)"
+# 
+#: ultralcd.cpp:1882
+msgid "Print FAN"
+msgstr ""
 
 # WELCOME_MSG c=20
 #: 
@@ -1213,177 +1143,157 @@ msgstr "Prusa i3 MK2.5 gotowa"
 # WELCOME_MSG c=20
 #: 
 msgid "Prusa i3 MK3 ready."
-msgstr "Prusa i3 MK3 gotowa."
+msgstr "Prusa i3 MK3 gotowa"
 
 # MSG_PRUSA3D
-#: ultralcd.cpp:2140
+#: ultralcd.cpp:2144
 msgid "prusa3d.com"
 msgstr ""
 
 # MSG_BED_CORRECTION_REAR c=14 r=1
-#: ultralcd.cpp:2891
+#: ultralcd.cpp:2892
 msgid "Rear side [um]"
 msgstr "Tyl [um]"
 
 # MSG_RECOVERING_PRINT c=20 r=1
-#: Marlin_main.cpp:8477
+#: Marlin_main.cpp:8481
 msgid "Recovering print    "
-msgstr "Wznawianie wydruku    "
+msgstr "Wznawianie wydruku"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=4
-#: mmu.cpp:517
+#: mmu.cpp:535
 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 MK2 ready."
-msgstr ""
+msgstr "Prusa i3 MK2 gotowa"
 
 # MSG_CALIBRATE_BED_RESET
-#: ultralcd.cpp:4952
+#: ultralcd.cpp:4953
 msgid "Reset XYZ calibr."
 msgstr "Reset kalibr. XYZ"
 
 # MSG_BED_CORRECTION_RESET
-#: ultralcd.cpp:2892
+#: ultralcd.cpp:2893
 msgid "Reset"
 msgstr ""
 
 # MSG_RESUME_PRINT
-#: ultralcd.cpp:5780
+#: ultralcd.cpp:5782
 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"
 
 # MSG_BED_CORRECTION_RIGHT c=14 r=1
-#: ultralcd.cpp:2889
+#: ultralcd.cpp:2890
 msgid "Right side[um]"
 msgstr "Prawo [um]"
 
 # MSG_SECOND_SERIAL_ON c=17 r=1
-#: ultralcd.cpp:4866
+#: ultralcd.cpp:4867
 msgid "RPi port     [on]"
 msgstr "Port RPi     [wl]"
 
-# 
-#: Marlin_main.cpp:7076
-msgid "Resend"
-msgstr ""
-
 # MSG_SECOND_SERIAL_OFF c=17 r=1
-#: ultralcd.cpp:4864
+#: ultralcd.cpp:4865
 msgid "RPi port    [off]"
 msgstr "Port RPi    [wyl]"
 
 # MSG_WIZARD_RERUN c=20 r=7
-#: ultralcd.cpp:4330
+#: ultralcd.cpp:4331
 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:4781
 msgid "SD card  [normal]"
 msgstr "Karta SD [normal]"
 
 # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
-#: ultralcd.cpp:4778
+#: ultralcd.cpp:4779
 msgid "SD card [flshAir]"
-msgstr "Karta SD[flshAir]"
-
-# MSG_SD_CARD_OK
-#: cardreader.cpp:202
-msgid "SD card ok"
-msgstr "Karta SD OK"
+msgstr "Karta SD[FlshAir]"
 
 # 
-#: ultralcd.cpp:2649
+#: ultralcd.cpp:2650
 msgid "Right"
-msgstr ""
-
-# MSG_SD_INIT_FAIL
-#: cardreader.cpp:186
-msgid "SD init fail"
-msgstr "Inicjalizacja karty SD nieudana"
+msgstr "Prawa"
 
 # 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:4874
 msgid "Select language"
 msgstr "Wybor jezyka"
 
 # MSG_SELFTEST_OK
-#: ultralcd.cpp:6349
+#: ultralcd.cpp:6351
 msgid "Self test OK"
 msgstr "Selftest OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:6182
+#: ultralcd.cpp:6184
 msgid "Self test start  "
-msgstr "Rozpoczynanie Selftestu  "
+msgstr "Rozpoczynanie Selftestu"
 
 # MSG_SELFTEST
-#: ultralcd.cpp:4926
+#: ultralcd.cpp:4927
 msgid "Selftest         "
 msgstr "Selftest "
 
 # MSG_SELFTEST_ERROR
-#: ultralcd.cpp:6775
+#: ultralcd.cpp:6777
 msgid "Selftest error !"
 msgstr "Blad selftest !"
 
 # MSG_SELFTEST_FAILED c=20
-#: messages.c:82
+#: messages.c:73
 msgid "Selftest failed  "
-msgstr "Selftest nieudany  "
+msgstr "Selftest nieudany"
 
 # MSG_FORCE_SELFTEST c=20 r=8
-#: Marlin_main.cpp:1521
+#: Marlin_main.cpp:1520
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
-msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek."
+msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek"
 
 # 
-#: ultralcd.cpp:4550
+#: ultralcd.cpp:4551
 msgid "Select nozzle preheat temperature which matches your material."
-msgstr ""
+msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu."
 
 # 
-#: ultralcd.cpp:4300
+#: ultralcd.cpp:4301
 msgid "Select PLA filament:"
-msgstr ""
+msgstr "Wybierz filament PLA:"
 
 # MSG_SET_TEMPERATURE c=19 r=1
-#: ultralcd.cpp:2900
+#: ultralcd.cpp:2901
 msgid "Set temperature:"
 msgstr "Ustaw. temperatury:"
 
 # MSG_SETTINGS
-#: messages.c:90
+#: messages.c:81
 msgid "Settings"
 msgstr "Ustawienia"
 
 # MSG_SHOW_END_STOPS c=17 r=1
-#: ultralcd.cpp:4949
+#: ultralcd.cpp:4950
 msgid "Show end stops"
 msgstr "Pokaz krancowki"
 
 # 
-#: ultralcd.cpp:4947
+#: ultralcd.cpp:4948
 msgid "Show pinda state"
-msgstr ""
-
-# MSG_DWELL
-#: Marlin_main.cpp:3752
-msgid "Sleep..."
-msgstr "Czuwanie..."
+msgstr "Stan sondy PINDA"
 
 # MSG_FILE_CNT c=20 r=4
 #: cardreader.cpp:738
@@ -1391,24 +1301,24 @@ 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:4790
+#: ultralcd.cpp:4791
 msgid "Sort:      [none]"
-msgstr "Sortowanie:[brak]"
+msgstr "Sortuj:    [brak]"
 
 # MSG_SORT_TIME c=17 r=1
-#: ultralcd.cpp:4788
+#: ultralcd.cpp:4789
 msgid "Sort:      [time]"
-msgstr "Sortowanie:[czas]"
+msgstr "Sortuj:    [czas]"
 
 # 
-#: ultralcd.cpp:2686
+#: ultralcd.cpp:2687
 msgid "Severe skew"
-msgstr ""
+msgstr "Znaczny skos"
 
 # MSG_SORT_ALPHA c=17 r=1
-#: ultralcd.cpp:4789
+#: ultralcd.cpp:4790
 msgid "Sort:  [alphabet]"
-msgstr "Sort.:  [alfabet]"
+msgstr "Sortuj: [alfabet]"
 
 # MSG_SORTING c=20 r=1
 #: cardreader.cpp:745
@@ -1421,9 +1331,9 @@ msgid "Sound      [loud]"
 msgstr "Dzwiek   [Glosny]"
 
 # 
-#: ultralcd.cpp:2685
+#: ultralcd.cpp:2686
 msgid "Slight skew"
-msgstr ""
+msgstr "Lekki skos"
 
 # MSG_SOUND_MUTE c=17 r=1
 #: sound.h:8
@@ -1431,9 +1341,9 @@ msgid "Sound      [mute]"
 msgstr "Dzwiek[Wylaczony]"
 
 # 
-#: Marlin_main.cpp:335
+#: Marlin_main.cpp:4518
 msgid "Some problem encountered, Z-leveling enforced ..."
-msgstr ""
+msgstr "Wykryto problem, wymuszono poziomowanie osi Z ..."
 
 # MSG_SOUND_ONCE c=17 r=1
 #: sound.h:6
@@ -1446,144 +1356,149 @@ msgid "Sound    [silent]"
 msgstr "Dzwiek    [Cichy]"
 
 # MSG_SPEED
-#: ultralcd.cpp:5936
+#: ultralcd.cpp:5938
 msgid "Speed"
 msgstr "Predkosc"
 
 # MSG_SELFTEST_FAN_YES c=19
-#: messages.c:85
+#: messages.c:76
 msgid "Spinning"
 msgstr "Kreci sie"
 
 # MSG_TEMP_CAL_WARNING c=20 r=4
-#: Marlin_main.cpp:4024
+#: Marlin_main.cpp:4023
 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:5849
 msgid "Statistics  "
-msgstr "Statystyki  "
+msgstr "Statystyki"
 
 # 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. "
+msgstr "ZATRZYMANO."
 
 # MSG_SUPPORT
-#: ultralcd.cpp:5854
+#: ultralcd.cpp:5856
 msgid "Support"
 msgstr "Wsparcie"
 
 # MSG_SELFTEST_SWAPPED
-#: ultralcd.cpp:6855
+#: ultralcd.cpp:6857
 msgid "Swapped"
 msgstr "Zamieniono"
 
 # MSG_TEMP_CALIBRATION c=20 r=1
-#: messages.c:98
+#: messages.c:89
 msgid "Temp. cal.          "
-msgstr "Kalibracja temp.          "
+msgstr "Kalibracja temp."
 
 # MSG_TEMP_CALIBRATION_ON c=20 r=1
-#: ultralcd.cpp:4860
+#: ultralcd.cpp:4861
 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:4859
 msgid "Temp. cal.  [off]"
 msgstr "Kalibr.temp.[wyl]"
 
 # MSG_CALIBRATION_PINDA_MENU c=17 r=1
-#: ultralcd.cpp:4958
+#: ultralcd.cpp:4959
 msgid "Temp. calibration"
-msgstr "Kalibracja temp"
+msgstr "Kalibracja temp."
 
 # MSG_TEMP_CAL_FAILED c=20 r=8
-#: ultralcd.cpp:3525
+#: ultralcd.cpp:3526
 msgid "Temperature calibration failed"
 msgstr "Kalibracja temperaturowa nieudana"
 
 # 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_TEMPERATURE
-#: ultralcd.cpp:4836
+#: ultralcd.cpp:4837
 msgid "Temperature"
 msgstr "Temperatura"
 
 # MSG_MENU_TEMPERATURES c=15 r=1
-#: ultralcd.cpp:2185
+#: ultralcd.cpp:2189
 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:2540
 msgid "Total filament"
-msgstr ""
+msgstr "Calkowita dlugosc filamentu"
 
 # 
-#: ultralcd.cpp:2541
+#: ultralcd.cpp:2542
 msgid "Total print time"
-msgstr ""
-
-# MSG_ENDSTOP_HIT
-#: messages.c:28
-msgid "TRIGGERED"
-msgstr "AKTYWOWANO"
+msgstr "Calkowity czas druku"
 
 # MSG_TUNE
-#: ultralcd.cpp:5762
+#: ultralcd.cpp:5764
 msgid "Tune"
 msgstr "Strojenie"
 
 # 
-#: ultralcd.cpp:4387
+#: ultralcd.cpp:4388
 msgid "Unload"
-msgstr ""
+msgstr "Rozladuj"
 
 # 
-#: ultralcd.cpp:5365
+#: ultralcd.cpp:5366
 msgid "Unload all"
+msgstr "Rozladuj wszystkie"
+
+# 
+#: ultralcd.cpp:1931
+msgid "Total failures"
 msgstr ""
 
 # MSG_UNLOAD_FILAMENT c=17
-#: messages.c:100
+#: messages.c:91
 msgid "Unload filament"
-msgstr "Wyladowanie filamentu"
+msgstr "Rozladowanie fil."
 
 # MSG_UNLOADING_FILAMENT c=20 r=1
-#: messages.c:101
+#: messages.c:92
 msgid "Unloading filament"
 msgstr "Rozladowuje filament"
 
+# 
+#: ultralcd.cpp:1965
+msgid "Total"
+msgstr ""
+
 # MSG_USED c=19 r=1
-#: ultralcd.cpp:5083
+#: ultralcd.cpp:5084
 msgid "Used during print"
 msgstr "Uzyte podczas druku"
 
 # MSG_MENU_VOLTAGES c=15 r=1
-#: ultralcd.cpp:2188
+#: ultralcd.cpp:2192
 msgid "Voltages"
 msgstr "Napiecia"
 
-# MSG_SD_VOL_INIT_FAIL
-#: cardreader.cpp:191
-msgid "volume.init failed"
-msgstr "niepowodzenie volume.init"
+# 
+#: ultralcd.cpp:2166
+msgid "unknown"
+msgstr ""
 
 # MSG_USERWAIT
 #: Marlin_main.cpp:4823
@@ -1591,52 +1506,52 @@ msgid "Wait for user..."
 msgstr "Czekam na uzytkownika..."
 
 # MSG_WAITING_TEMP c=20 r=3
-#: ultralcd.cpp:3044
+#: ultralcd.cpp:3045
 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:3009
 msgid "Waiting for PINDA probe cooling"
 msgstr "Czekam az spadnie temp. sondy PINDA"
 
 # 
-#: ultralcd.cpp:4386
+#: ultralcd.cpp:4387
 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 ""
+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:1481
+#: Marlin_main.cpp:1480
 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:1472
 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:1476
 msgid "Warning: printer type changed."
-msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie."
+msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie"
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
-#: Marlin_main.cpp:2978
+#: Marlin_main.cpp:2977
 msgid "Was filament unload successful?"
-msgstr "Wyladowanie fil. ok?"
+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:4924
 msgid "Wizard"
 msgstr "Asystent"
 
 # MSG_XYZ_DETAILS c=19 r=1
-#: ultralcd.cpp:2178
+#: ultralcd.cpp:2182
 msgid "XYZ cal. details"
 msgstr "Szczegoly kal. XYZ"
 
@@ -1646,107 +1561,107 @@ msgid "XYZ calibration failed. Please consult the manual."
 msgstr "Kalibracja XYZ nieudana. Sprawdz przyczyny i rozwiazania w instrukcji."
 
 # MSG_YES
-#: messages.c:107
+#: messages.c:98
 msgid "Yes"
 msgstr "Tak"
 
 # 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_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
-#: ultralcd.cpp:3496
+#: ultralcd.cpp:3497
 msgid "XYZ calibration all right. Skew will be corrected automatically."
-msgstr "Kalibracja XYZ prawidlowa. Skosy beda automatycznie wyrownane przy druku."
+msgstr "Kalibracja XYZ pomyslna. Skos bedzie automatycznie korygowany."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
-#: ultralcd.cpp:3493
+#: ultralcd.cpp:3494
 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:4632
+#: ultralcd.cpp:4633
 msgid "X-correct"
-msgstr ""
+msgstr "Korekcja X"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
-#: ultralcd.cpp:3490
+#: ultralcd.cpp:3491
 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:3474
+#: ultralcd.cpp:3475
 msgid "XYZ calibration compromised. Front calibration points not reachable."
-msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. Zbyt wys. do przodu."
+msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
-#: ultralcd.cpp:3477
+#: ultralcd.cpp:3478
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
-msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt zbyt wysuniety do przodu."
+msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8
-#: ultralcd.cpp:3480
+#: ultralcd.cpp:3481
 msgid "XYZ calibration compromised. Left front calibration point not reachable."
-msgstr "Kalibracja XYZ niedokladna. Lewy przedni punkt zbyt wysuniety do przodu."
+msgstr "Kalibracja XYZ niedokladna. Lewy przedni punkt nieosiagalny."
 
 # MSG_LOAD_ALL c=17
-#: ultralcd.cpp:5323
+#: ultralcd.cpp:5324
 msgid "Load all"
 msgstr "Zalad. wszystkie"
 
 # MSG_LOAD_FILAMENT_1 c=17
-#: ultralcd.cpp:5324
+#: ultralcd.cpp:5325
 msgid "Load filament 1"
-msgstr "Zaladowac fil. 1"
+msgstr "Zaladuj fil. 1"
 
 # 
-#: ultralcd.cpp:3456
+#: ultralcd.cpp:3457
 msgid "XYZ calibration failed. Bed calibration point was not found."
-msgstr ""
+msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych."
 
 # 
-#: ultralcd.cpp:3462
+#: ultralcd.cpp:3463
 msgid "XYZ calibration failed. Front calibration points not reachable."
-msgstr ""
+msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki."
 
 # 
-#: ultralcd.cpp:3468
+#: ultralcd.cpp:3469
 msgid "XYZ calibration failed. Left front calibration point not reachable."
-msgstr ""
+msgstr "Kalibr. XYZ nieudana. Lewy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki."
 
 # MSG_LOAD_FILAMENT_2 c=17
-#: ultralcd.cpp:5325
+#: ultralcd.cpp:5326
 msgid "Load filament 2"
-msgstr "Zaladowac fil. 2"
+msgstr "Zaladuj fil. 2"
 
 # 
-#: ultralcd.cpp:3465
+#: ultralcd.cpp:3466
 msgid "XYZ calibration failed. Right front calibration point not reachable."
-msgstr ""
+msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki."
 
 # MSG_LOAD_FILAMENT_3 c=17
-#: ultralcd.cpp:5326
+#: ultralcd.cpp:5327
 msgid "Load filament 3"
-msgstr "Zaladowac fil. 3"
+msgstr "Zaladuj fil. 3"
 
 # 
-#: ultralcd.cpp:2646
+#: ultralcd.cpp:2647
 msgid "Y distance from min"
-msgstr ""
+msgstr "Dystans od 0 w osi Y"
 
 # 
-#: ultralcd.cpp:4633
+#: ultralcd.cpp:4634
 msgid "Y-correct"
-msgstr ""
+msgstr "Korekcja Y"
 
 # MSG_LOAD_FILAMENT_4 c=17
-#: ultralcd.cpp:5327
+#: ultralcd.cpp:5328
 msgid "Load filament 4"
-msgstr "Zaladowac fil. 4"
+msgstr "Zaladuj fil. 4"
 
 # MSG_LOAD_FILAMENT_5 c=17
-#: ultralcd.cpp:5330
+#: ultralcd.cpp:5331
 msgid "Load filament 5"
-msgstr "Zaladowac fil. 5"
+msgstr "Laduj filament 5"
 

+ 0 - 0
lang/progmem.sh


+ 0 - 0
lang/textaddr.sh


+ 0 - 0
lang/update_lang.sh


+ 12 - 0
test.sh

@@ -0,0 +1,12 @@
+#!/bin/bash
+cd .. || exit 5
+
+if [ ! -d "Prusa-Firmware-test" ]; then
+    mkdir Prusa-Firmware-test  || exit 10
+fi
+
+cd Prusa-Firmware-test || exit 20
+
+cmake -G "Eclipse CDT4 - Ninja" ../Prusa-Firmware || exit 30
+cmake --build . || exit 35
+./tests || exit 40