瀏覽代碼

tranlations of support menu, retrieving settings from eeprom changed to exclude E steps per unit

PavelSindler 7 年之前
父節點
當前提交
2ace5fc827

+ 6 - 3
Firmware/ConfigurationStore.cpp

@@ -43,7 +43,7 @@ void _EEPROM_readData(int &pos, uint8_t* value, uint8_t size)
 // wrong data being written to the variables.
 // ALSO:  always make sure the variables in the Store and retrieve sections are in the same order.
 
-#define EEPROM_VERSION "V2"
+#define EEPROM_VERSION "V1"
 
 #ifdef EEPROM_SETTINGS
 void Config_StoreSettings() 
@@ -51,7 +51,7 @@ void Config_StoreSettings()
   char ver[4]= "000";
   int i=EEPROM_OFFSET;
   EEPROM_WRITE_VAR(i,ver); // invalidate data first 
-  //EEPROM_WRITE_VAR(i,axis_steps_per_unit);
+  EEPROM_WRITE_VAR(i,axis_steps_per_unit);
   EEPROM_WRITE_VAR(i,max_feedrate);  
   EEPROM_WRITE_VAR(i,max_acceleration_units_per_sq_second);
   EEPROM_WRITE_VAR(i,acceleration);
@@ -274,7 +274,7 @@ void Config_RetrieveSettings()
     if (strncmp(ver,stored_ver,3) == 0)
     {
         // version number match
-        //EEPROM_READ_VAR(i,axis_steps_per_unit);
+        EEPROM_READ_VAR(i,axis_steps_per_unit);
         EEPROM_READ_VAR(i,max_feedrate);  
         EEPROM_READ_VAR(i,max_acceleration_units_per_sq_second);
         
@@ -350,6 +350,9 @@ void Config_RetrieveSettings()
 		calculate_volumetric_multipliers();
 		// Call updatePID (similar to when we have processed M301)
 		updatePID();
+		float tmp1[] = DEFAULT_AXIS_STEPS_PER_UNIT;
+		axis_steps_per_unit[3] = tmp1[3];
+
         SERIAL_ECHO_START;
         SERIAL_ECHOLNPGM("Stored settings retrieved");
     }

+ 135 - 0
Firmware/language_all.cpp

@@ -560,6 +560,21 @@ const char * const MSG_CARD_MENU_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_CARD_MENU_DE
 };
 
+const char MSG_CENTER_EN[] PROGMEM = "Center:";
+const char MSG_CENTER_CZ[] PROGMEM = "Stred:";
+const char MSG_CENTER_IT[] PROGMEM = "Centro:";
+const char MSG_CENTER_ES[] PROGMEM = "Centro:";
+const char MSG_CENTER_PL[] PROGMEM = "Srodek:";
+const char MSG_CENTER_DE[] PROGMEM = "Mitte:";
+const char * const MSG_CENTER_LANG_TABLE[LANG_NUM] PROGMEM = {
+	MSG_CENTER_EN,
+	MSG_CENTER_CZ,
+	MSG_CENTER_IT,
+	MSG_CENTER_ES,
+	MSG_CENTER_PL,
+	MSG_CENTER_DE
+};
+
 const char MSG_CHANGE_EXTR_EN[] PROGMEM = "Change extruder";
 const char MSG_CHANGE_EXTR_CZ[] PROGMEM = "Zmenit extruder";
 const char MSG_CHANGE_EXTR_IT[] PROGMEM = "Cambio estrusore.";
@@ -745,6 +760,21 @@ const char * const MSG_CURRENT_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_CURRENT_DE
 };
 
+const char MSG_DATE_EN[] PROGMEM = "Date:";
+const char MSG_DATE_CZ[] PROGMEM = "Datum:";
+const char MSG_DATE_IT[] PROGMEM = "Data";
+const char MSG_DATE_ES[] PROGMEM = "Fecha:";
+const char MSG_DATE_PL[] PROGMEM = "Data:";
+const char MSG_DATE_DE[] PROGMEM = "Datum";
+const char * const MSG_DATE_LANG_TABLE[LANG_NUM] PROGMEM = {
+	MSG_DATE_EN,
+	MSG_DATE_CZ,
+	MSG_DATE_IT,
+	MSG_DATE_ES,
+	MSG_DATE_PL,
+	MSG_DATE_DE
+};
+
 const char MSG_DISABLE_STEPPERS_EN[] PROGMEM = "Disable steppers";
 const char MSG_DISABLE_STEPPERS_CZ[] PROGMEM = "Vypnout motory";
 const char MSG_DISABLE_STEPPERS_IT[] PROGMEM = "Disabilit motori";
@@ -1369,6 +1399,21 @@ const char * const MSG_LANGUAGE_SELECT_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_LANGUAGE_SELECT_DE
 };
 
+const char MSG_LEFT_EN[] PROGMEM = "Left:";
+const char MSG_LEFT_CZ[] PROGMEM = "Levy:";
+const char MSG_LEFT_IT[] PROGMEM = "Sinistra:";
+const char MSG_LEFT_ES[] PROGMEM = "Izquierda:";
+const char MSG_LEFT_PL[] PROGMEM = "Lewy:";
+const char MSG_LEFT_DE[] PROGMEM = "Links:";
+const char * const MSG_LEFT_LANG_TABLE[LANG_NUM] PROGMEM = {
+	MSG_LEFT_EN,
+	MSG_LEFT_CZ,
+	MSG_LEFT_IT,
+	MSG_LEFT_ES,
+	MSG_LEFT_PL,
+	MSG_LEFT_DE
+};
+
 const char MSG_LOADING_COLOR_EN[] PROGMEM = "Loading color";
 const char MSG_LOADING_COLOR_CZ[] PROGMEM = "Cisteni barvy";
 const char MSG_LOADING_COLOR_IT[] PROGMEM = "Caricando colore";
@@ -1584,6 +1629,21 @@ const char * const MSG_MAX_LANG_TABLE[1] PROGMEM = {
 	MSG_MAX_EN
 };
 
+const char MSG_MEASURED_SKEW_EN[] PROGMEM = "Measured skew:";
+const char MSG_MEASURED_SKEW_CZ[] PROGMEM = "Merene zkoseni:";
+const char MSG_MEASURED_SKEW_IT[] PROGMEM = "Incl. misurata:";
+const char MSG_MEASURED_SKEW_ES[] PROGMEM = "Inclin. medida:";
+const char MSG_MEASURED_SKEW_PL[] PROGMEM = "Zmier. sciecie:";
+const char MSG_MEASURED_SKEW_DE[] PROGMEM = "Schraeglauf:";
+const char * const MSG_MEASURED_SKEW_LANG_TABLE[LANG_NUM] PROGMEM = {
+	MSG_MEASURED_SKEW_EN,
+	MSG_MEASURED_SKEW_CZ,
+	MSG_MEASURED_SKEW_IT,
+	MSG_MEASURED_SKEW_ES,
+	MSG_MEASURED_SKEW_PL,
+	MSG_MEASURED_SKEW_DE
+};
+
 const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_EN[] PROGMEM = "Measuring reference height of calibration point";
 const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_CZ[] PROGMEM = "Merim referencni vysku kalibracniho bodu";
 const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_IT[] PROGMEM = "Misurare l'altezza di riferimento del punto di calibrazione";
@@ -2273,6 +2333,21 @@ const char * const MSG_RESUMING_PRINT_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_RESUMING_PRINT_DE
 };
 
+const char MSG_RIGHT_EN[] PROGMEM = "Right:";
+const char MSG_RIGHT_CZ[] PROGMEM = "Pravy:";
+const char MSG_RIGHT_IT[] PROGMEM = "Destra:";
+const char MSG_RIGHT_ES[] PROGMEM = "Derecha:";
+const char MSG_RIGHT_PL[] PROGMEM = "Prawy:";
+const char MSG_RIGHT_DE[] PROGMEM = "Rechts:";
+const char * const MSG_RIGHT_LANG_TABLE[LANG_NUM] PROGMEM = {
+	MSG_RIGHT_EN,
+	MSG_RIGHT_CZ,
+	MSG_RIGHT_IT,
+	MSG_RIGHT_ES,
+	MSG_RIGHT_PL,
+	MSG_RIGHT_DE
+};
+
 const char MSG_SD_CANT_ENTER_SUBDIR_EN[] PROGMEM = "Cannot enter subdir: ";
 const char * const MSG_SD_CANT_ENTER_SUBDIR_LANG_TABLE[1] PROGMEM = {
 	MSG_SD_CANT_ENTER_SUBDIR_EN
@@ -2788,6 +2863,21 @@ const char * const MSG_SET_TEMPERATURE_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_SET_TEMPERATURE_DE
 };
 
+const char MSG_SEVERE_SKEW_EN[] PROGMEM = "Severe skew:";
+const char MSG_SEVERE_SKEW_CZ[] PROGMEM = "Tezke zkoseni:";
+const char MSG_SEVERE_SKEW_IT[] PROGMEM = "Inc. rilevante:";
+const char MSG_SEVERE_SKEW_ES[] PROGMEM = "Inclin. severa:";
+const char MSG_SEVERE_SKEW_PL[] PROGMEM = "Ostre sciecie:";
+const char MSG_SEVERE_SKEW_DE[] PROGMEM = "Schwerer Schr.:";
+const char * const MSG_SEVERE_SKEW_LANG_TABLE[LANG_NUM] PROGMEM = {
+	MSG_SEVERE_SKEW_EN,
+	MSG_SEVERE_SKEW_CZ,
+	MSG_SEVERE_SKEW_IT,
+	MSG_SEVERE_SKEW_ES,
+	MSG_SEVERE_SKEW_PL,
+	MSG_SEVERE_SKEW_DE
+};
+
 const char MSG_SHOW_END_STOPS_EN[] PROGMEM = "Show end stops";
 const char MSG_SHOW_END_STOPS_CZ[] PROGMEM = "Stav konc. spin.";
 const char MSG_SHOW_END_STOPS_IT[] PROGMEM = "Stato finecorsa";
@@ -2833,6 +2923,21 @@ const char * const MSG_SILENT_MODE_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_SILENT_MODE_ON_DE
 };
 
+const char MSG_SLIGHT_SKEW_EN[] PROGMEM = "Slight skew:";
+const char MSG_SLIGHT_SKEW_CZ[] PROGMEM = "Lehke zkoseni:";
+const char MSG_SLIGHT_SKEW_IT[] PROGMEM = "Incl. leggera:";
+const char MSG_SLIGHT_SKEW_ES[] PROGMEM = "Inclin. ligera:";
+const char MSG_SLIGHT_SKEW_PL[] PROGMEM = "Lekkie sciecie:";
+const char MSG_SLIGHT_SKEW_DE[] PROGMEM = "Leichter Schr.:";
+const char * const MSG_SLIGHT_SKEW_LANG_TABLE[LANG_NUM] PROGMEM = {
+	MSG_SLIGHT_SKEW_EN,
+	MSG_SLIGHT_SKEW_CZ,
+	MSG_SLIGHT_SKEW_IT,
+	MSG_SLIGHT_SKEW_ES,
+	MSG_SLIGHT_SKEW_PL,
+	MSG_SLIGHT_SKEW_DE
+};
+
 const char MSG_SOFTWARE_RESET_EN[] PROGMEM = " Software Reset";
 const char * const MSG_SOFTWARE_RESET_LANG_TABLE[1] PROGMEM = {
 	MSG_SOFTWARE_RESET_EN
@@ -3347,6 +3452,21 @@ const char * const MSG_WATCHDOG_RESET_LANG_TABLE[1] PROGMEM = {
 	MSG_WATCHDOG_RESET_EN
 };
 
+const char MSG_XYZ_DETAILS_EN[] PROGMEM = "XYZ cal. details";
+const char MSG_XYZ_DETAILS_CZ[] PROGMEM = "Detaily XYZ kal.";
+const char MSG_XYZ_DETAILS_IT[] PROGMEM = "XYZ Cal. dettagli";
+const char MSG_XYZ_DETAILS_ES[] PROGMEM = "Inform. XYZ cal.";
+const char MSG_XYZ_DETAILS_PL[] PROGMEM = "Szczegoly kal.XYZ";
+const char MSG_XYZ_DETAILS_DE[] PROGMEM = "XYZ Kal. Details";
+const char * const MSG_XYZ_DETAILS_LANG_TABLE[LANG_NUM] PROGMEM = {
+	MSG_XYZ_DETAILS_EN,
+	MSG_XYZ_DETAILS_CZ,
+	MSG_XYZ_DETAILS_IT,
+	MSG_XYZ_DETAILS_ES,
+	MSG_XYZ_DETAILS_PL,
+	MSG_XYZ_DETAILS_DE
+};
+
 const char MSG_X_MAX_EN[] PROGMEM = "x_max: ";
 const char * const MSG_X_MAX_LANG_TABLE[1] PROGMEM = {
 	MSG_X_MAX_EN
@@ -3372,6 +3492,21 @@ const char * const MSG_YES_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_YES_DE
 };
 
+const char MSG_Y_DISTANCE_FROM_MIN_EN[] PROGMEM = "Y distance from min:";
+const char MSG_Y_DISTANCE_FROM_MIN_CZ[] PROGMEM = "Y vzdalenost od min:";
+const char MSG_Y_DISTANCE_FROM_MIN_IT[] PROGMEM = "Distanza Y da min:";
+const char MSG_Y_DISTANCE_FROM_MIN_ES[] PROGMEM = "Dist. Y desde min:";
+const char MSG_Y_DISTANCE_FROM_MIN_PL[] PROGMEM = "Odleglosc Y od min.:";
+const char MSG_Y_DISTANCE_FROM_MIN_DE[] PROGMEM = "Y Entfernung vom min";
+const char * const MSG_Y_DISTANCE_FROM_MIN_LANG_TABLE[LANG_NUM] PROGMEM = {
+	MSG_Y_DISTANCE_FROM_MIN_EN,
+	MSG_Y_DISTANCE_FROM_MIN_CZ,
+	MSG_Y_DISTANCE_FROM_MIN_IT,
+	MSG_Y_DISTANCE_FROM_MIN_ES,
+	MSG_Y_DISTANCE_FROM_MIN_PL,
+	MSG_Y_DISTANCE_FROM_MIN_DE
+};
+
 const char MSG_Y_MAX_EN[] PROGMEM = "y_max: ";
 const char * const MSG_Y_MAX_LANG_TABLE[1] PROGMEM = {
 	MSG_Y_MAX_EN

+ 18 - 0
Firmware/language_all.h

@@ -116,6 +116,8 @@ extern const char* const MSG_CALIBRATION_PINDA_MENU_LANG_TABLE[LANG_NUM];
 #define MSG_CALIBRATION_PINDA_MENU LANG_TABLE_SELECT(MSG_CALIBRATION_PINDA_MENU_LANG_TABLE)
 extern const char* const MSG_CARD_MENU_LANG_TABLE[LANG_NUM];
 #define MSG_CARD_MENU LANG_TABLE_SELECT(MSG_CARD_MENU_LANG_TABLE)
+extern const char* const MSG_CENTER_LANG_TABLE[LANG_NUM];
+#define MSG_CENTER LANG_TABLE_SELECT(MSG_CENTER_LANG_TABLE)
 extern const char* const MSG_CHANGE_EXTR_LANG_TABLE[LANG_NUM];
 #define MSG_CHANGE_EXTR LANG_TABLE_SELECT(MSG_CHANGE_EXTR_LANG_TABLE)
 extern const char* const MSG_CHANGE_SUCCESS_LANG_TABLE[LANG_NUM];
@@ -146,6 +148,8 @@ extern const char* const MSG_COUNT_X_LANG_TABLE[1];
 #define MSG_COUNT_X LANG_TABLE_SELECT_EXPLICIT(MSG_COUNT_X_LANG_TABLE, 0)
 extern const char* const MSG_CURRENT_LANG_TABLE[LANG_NUM];
 #define MSG_CURRENT LANG_TABLE_SELECT(MSG_CURRENT_LANG_TABLE)
+extern const char* const MSG_DATE_LANG_TABLE[LANG_NUM];
+#define MSG_DATE LANG_TABLE_SELECT(MSG_DATE_LANG_TABLE)
 extern const char* const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM];
 #define MSG_DISABLE_STEPPERS LANG_TABLE_SELECT(MSG_DISABLE_STEPPERS_LANG_TABLE)
 extern const char* const MSG_DWELL_LANG_TABLE[LANG_NUM];
@@ -268,6 +272,8 @@ extern const char* const MSG_LANGUAGE_NAME_LANG_TABLE[LANG_NUM];
 extern const char* const MSG_LANGUAGE_SELECT_LANG_TABLE[LANG_NUM];
 #define MSG_LANGUAGE_SELECT LANG_TABLE_SELECT(MSG_LANGUAGE_SELECT_LANG_TABLE)
 #define MSG_LANGUAGE_SELECT_EXPLICIT(LANG) LANG_TABLE_SELECT_EXPLICIT(MSG_LANGUAGE_SELECT_LANG_TABLE, LANG)
+extern const char* const MSG_LEFT_LANG_TABLE[LANG_NUM];
+#define MSG_LEFT LANG_TABLE_SELECT(MSG_LEFT_LANG_TABLE)
 extern const char* const MSG_LOADING_COLOR_LANG_TABLE[LANG_NUM];
 #define MSG_LOADING_COLOR LANG_TABLE_SELECT(MSG_LOADING_COLOR_LANG_TABLE)
 extern const char* const MSG_LOADING_FILAMENT_LANG_TABLE[LANG_NUM];
@@ -310,6 +316,8 @@ extern const char* const MSG_MARK_FIL_LANG_TABLE[LANG_NUM];
 #define MSG_MARK_FIL LANG_TABLE_SELECT(MSG_MARK_FIL_LANG_TABLE)
 extern const char* const MSG_MAX_LANG_TABLE[1];
 #define MSG_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_MAX_LANG_TABLE, 0)
+extern const char* const MSG_MEASURED_SKEW_LANG_TABLE[LANG_NUM];
+#define MSG_MEASURED_SKEW LANG_TABLE_SELECT(MSG_MEASURED_SKEW_LANG_TABLE)
 extern const char* const MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_LANG_TABLE[LANG_NUM];
 #define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 LANG_TABLE_SELECT(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_LANG_TABLE)
 extern const char* const MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_LANG_TABLE[LANG_NUM];
@@ -430,6 +438,8 @@ extern const char* const MSG_RESUMING_LANG_TABLE[LANG_NUM];
 #define MSG_RESUMING LANG_TABLE_SELECT(MSG_RESUMING_LANG_TABLE)
 extern const char* const MSG_RESUMING_PRINT_LANG_TABLE[LANG_NUM];
 #define MSG_RESUMING_PRINT LANG_TABLE_SELECT(MSG_RESUMING_PRINT_LANG_TABLE)
+extern const char* const MSG_RIGHT_LANG_TABLE[LANG_NUM];
+#define MSG_RIGHT LANG_TABLE_SELECT(MSG_RIGHT_LANG_TABLE)
 extern const char* const MSG_SD_CANT_ENTER_SUBDIR_LANG_TABLE[1];
 #define MSG_SD_CANT_ENTER_SUBDIR LANG_TABLE_SELECT_EXPLICIT(MSG_SD_CANT_ENTER_SUBDIR_LANG_TABLE, 0)
 extern const char* const MSG_SD_CANT_OPEN_SUBDIR_LANG_TABLE[1];
@@ -526,12 +536,16 @@ extern const char* const MSG_SET_ORIGIN_LANG_TABLE[1];
 #define MSG_SET_ORIGIN LANG_TABLE_SELECT_EXPLICIT(MSG_SET_ORIGIN_LANG_TABLE, 0)
 extern const char* const MSG_SET_TEMPERATURE_LANG_TABLE[LANG_NUM];
 #define MSG_SET_TEMPERATURE LANG_TABLE_SELECT(MSG_SET_TEMPERATURE_LANG_TABLE)
+extern const char* const MSG_SEVERE_SKEW_LANG_TABLE[LANG_NUM];
+#define MSG_SEVERE_SKEW LANG_TABLE_SELECT(MSG_SEVERE_SKEW_LANG_TABLE)
 extern const char* const MSG_SHOW_END_STOPS_LANG_TABLE[LANG_NUM];
 #define MSG_SHOW_END_STOPS LANG_TABLE_SELECT(MSG_SHOW_END_STOPS_LANG_TABLE)
 extern const char* const MSG_SILENT_MODE_OFF_LANG_TABLE[LANG_NUM];
 #define MSG_SILENT_MODE_OFF LANG_TABLE_SELECT(MSG_SILENT_MODE_OFF_LANG_TABLE)
 extern const char* const MSG_SILENT_MODE_ON_LANG_TABLE[LANG_NUM];
 #define MSG_SILENT_MODE_ON LANG_TABLE_SELECT(MSG_SILENT_MODE_ON_LANG_TABLE)
+extern const char* const MSG_SLIGHT_SKEW_LANG_TABLE[LANG_NUM];
+#define MSG_SLIGHT_SKEW LANG_TABLE_SELECT(MSG_SLIGHT_SKEW_LANG_TABLE)
 extern const char* const MSG_SOFTWARE_RESET_LANG_TABLE[1];
 #define MSG_SOFTWARE_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_SOFTWARE_RESET_LANG_TABLE, 0)
 extern const char* const MSG_SPEED_LANG_TABLE[LANG_NUM];
@@ -616,12 +630,16 @@ extern const char* const MSG_WATCH_LANG_TABLE[LANG_NUM];
 #define MSG_WATCH LANG_TABLE_SELECT(MSG_WATCH_LANG_TABLE)
 extern const char* const MSG_WATCHDOG_RESET_LANG_TABLE[1];
 #define MSG_WATCHDOG_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_WATCHDOG_RESET_LANG_TABLE, 0)
+extern const char* const MSG_XYZ_DETAILS_LANG_TABLE[LANG_NUM];
+#define MSG_XYZ_DETAILS LANG_TABLE_SELECT(MSG_XYZ_DETAILS_LANG_TABLE)
 extern const char* const MSG_X_MAX_LANG_TABLE[1];
 #define MSG_X_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_X_MAX_LANG_TABLE, 0)
 extern const char* const MSG_X_MIN_LANG_TABLE[1];
 #define MSG_X_MIN LANG_TABLE_SELECT_EXPLICIT(MSG_X_MIN_LANG_TABLE, 0)
 extern const char* const MSG_YES_LANG_TABLE[LANG_NUM];
 #define MSG_YES LANG_TABLE_SELECT(MSG_YES_LANG_TABLE)
+extern const char* const MSG_Y_DISTANCE_FROM_MIN_LANG_TABLE[LANG_NUM];
+#define MSG_Y_DISTANCE_FROM_MIN LANG_TABLE_SELECT(MSG_Y_DISTANCE_FROM_MIN_LANG_TABLE)
 extern const char* const MSG_Y_MAX_LANG_TABLE[1];
 #define MSG_Y_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_Y_MAX_LANG_TABLE, 0)
 extern const char* const MSG_Y_MIN_LANG_TABLE[1];

+ 10 - 1
Firmware/language_cz.h

@@ -301,4 +301,13 @@
 #define MSG_EXTRUDER_1									"Extruder 1"
 #define MSG_EXTRUDER_2									"Extruder 2"
 #define MSG_EXTRUDER_3									"Extruder 3"
-#define MSG_EXTRUDER_4									"Extruder 4"
+#define MSG_EXTRUDER_4									"Extruder 4"
+#define MSG_DATE							"Datum:"
+#define MSG_XYZ_DETAILS						"Detaily XYZ kal."
+#define	MSG_Y_DISTANCE_FROM_MIN				"Y vzdalenost od min:"
+#define	MSG_LEFT							"Levy:"
+#define MSG_CENTER							"Stred:"
+#define MSG_RIGHT							"Pravy:"
+#define MSG_MEASURED_SKEW					"Merene zkoseni:"
+#define MSG_SLIGHT_SKEW						"Lehke zkoseni:"
+#define MSG_SEVERE_SKEW						"Tezke zkoseni:"

+ 10 - 1
Firmware/language_de.h

@@ -314,4 +314,13 @@
 #define MSG_EXTRUDER_1									"Extruder 1"
 #define MSG_EXTRUDER_2									"Extruder 2"
 #define MSG_EXTRUDER_3									"Extruder 3"
-#define MSG_EXTRUDER_4									"Extruder 4"
+#define MSG_EXTRUDER_4									"Extruder 4"
+#define MSG_DATE							"Datum"
+#define MSG_XYZ_DETAILS						"XYZ Kal. Details"
+#define	MSG_Y_DISTANCE_FROM_MIN				"Y Entfernung vom min"
+#define	MSG_LEFT							"Links:"
+#define MSG_CENTER							"Mitte:"
+#define MSG_RIGHT							"Rechts:"
+#define MSG_MEASURED_SKEW					"Schraeglauf:"
+#define MSG_SLIGHT_SKEW						"Leichter Schr.:"
+#define MSG_SEVERE_SKEW						"Schwerer Schr.:"

+ 9 - 1
Firmware/language_en.h

@@ -302,4 +302,12 @@
 #define(length=17, lines=1) MSG_EXTRUDER_2						"Extruder 2"
 #define(length=17, lines=1) MSG_EXTRUDER_3						"Extruder 3"
 #define(length=17, lines=1) MSG_EXTRUDER_4						"Extruder 4"
-
+#define(length=17, lines=1) MSG_DATE							"Date:"
+#define(length=19, lines=1) MSG_XYZ_DETAILS						"XYZ cal. details"
+#define(length=20, lines=1)	MSG_Y_DISTANCE_FROM_MIN				"Y distance from min:"
+#define(length=12, lines=1)	MSG_LEFT							"Left:"
+#define(length=12, lines=1) MSG_CENTER							"Center:"
+#define(length=12, lines=1) MSG_RIGHT							"Right:"
+#define(length=15, lines=1) MSG_MEASURED_SKEW					"Measured skew:"
+#define(length=15, lines=1) MSG_SLIGHT_SKEW						"Slight skew:"
+#define(length=15, lines=1) MSG_SEVERE_SKEW						"Severe skew:"

+ 10 - 1
Firmware/language_es.h

@@ -295,4 +295,13 @@
 #define MSG_EXTRUDER_1									"Extrusor 1"
 #define MSG_EXTRUDER_2									"Extrusor 2"
 #define MSG_EXTRUDER_3									"Extrusor 3"
-#define MSG_EXTRUDER_4									"Extrusor 4"
+#define MSG_EXTRUDER_4									"Extrusor 4"
+#define MSG_DATE							"Fecha:"
+#define MSG_XYZ_DETAILS						"Inform. XYZ cal."
+#define	MSG_Y_DISTANCE_FROM_MIN				"Dist. Y desde min:"
+#define	MSG_LEFT							"Izquierda:"
+#define MSG_CENTER							"Centro:"
+#define MSG_RIGHT							"Derecha:"
+#define MSG_MEASURED_SKEW					"Inclin. medida:"
+#define MSG_SLIGHT_SKEW						"Inclin. ligera:"
+#define MSG_SEVERE_SKEW						"Inclin. severa:"

+ 10 - 1
Firmware/language_it.h

@@ -286,4 +286,13 @@
 #define MSG_EXTRUDER_1									"Estrusore 1"
 #define MSG_EXTRUDER_2									"Estrusore 2"
 #define MSG_EXTRUDER_3									"Estrusore 3"
-#define MSG_EXTRUDER_4									"Estrusore 4"
+#define MSG_EXTRUDER_4									"Estrusore 4"
+#define MSG_DATE							"Data"
+#define MSG_XYZ_DETAILS						"XYZ Cal. dettagli"
+#define	MSG_Y_DISTANCE_FROM_MIN				"Distanza Y da min:"
+#define	MSG_LEFT							"Sinistra:"
+#define MSG_CENTER							"Centro:"
+#define MSG_RIGHT							"Destra:"
+#define MSG_MEASURED_SKEW					"Incl. misurata:"
+#define MSG_SLIGHT_SKEW						"Incl. leggera:"
+#define MSG_SEVERE_SKEW						"Inc. rilevante:"

+ 10 - 1
Firmware/language_pl.h

@@ -298,4 +298,13 @@
 #define MSG_EXTRUDER_1											"Ekstruder 1"
 #define MSG_EXTRUDER_2											"Ekstruder 2"
 #define MSG_EXTRUDER_3											"Ekstruder 3"
-#define MSG_EXTRUDER_4											"Ekstruder 4"
+#define MSG_EXTRUDER_4											"Ekstruder 4"
+#define MSG_DATE							"Data:"
+#define MSG_XYZ_DETAILS						"Szczegoly kal.XYZ"
+#define	MSG_Y_DISTANCE_FROM_MIN				"Odleglosc Y od min.:"
+#define	MSG_LEFT							"Lewy:"
+#define MSG_CENTER							"Srodek:"
+#define MSG_RIGHT							"Prawy:"
+#define MSG_MEASURED_SKEW					"Zmier. sciecie:"
+#define MSG_SLIGHT_SKEW						"Lekkie sciecie:"
+#define MSG_SEVERE_SKEW						"Ostre sciecie:"

+ 2 - 0
Firmware/mesh_bed_calibration.cpp

@@ -2468,6 +2468,8 @@ void count_xyz_details() {
 	MYSERIAL.println(vec_y[0]);
 	SERIAL_ECHOPGM("vec_y[1]:");
 	MYSERIAL.println(vec_y[1]);
+	SERIAL_ECHOPGM("Calibration status:");
+	MYSERIAL.println(int(calibration_status()));
 
 	a2 = -1 * asin(vec_y[0] / MACHINE_AXIS_SCALE_Y);
 /*	SERIAL_ECHOLNPGM("par:");

+ 14 - 13
Firmware/ultralcd.cpp

@@ -930,7 +930,7 @@ static void lcd_support_menu()
   MENU_ITEM(back, PSTR(ELECTRONICS),lcd_main_menu);
   MENU_ITEM(back, PSTR(NOZZLE_TYPE),lcd_main_menu);
   MENU_ITEM(back, PSTR("------------"), lcd_main_menu);
-  MENU_ITEM(back, PSTR("Date: "), lcd_main_menu);
+  MENU_ITEM(back, MSG_DATE, lcd_main_menu);
   MENU_ITEM(back, PSTR(__DATE__), lcd_main_menu);
 
   // Show the FlashAir IP address, if the card is available.
@@ -941,7 +941,7 @@ static void lcd_support_menu()
   }
   #ifndef MK1BP
   MENU_ITEM(back, PSTR("------------"), lcd_main_menu);
-  MENU_ITEM(function, PSTR("XYZ cal. details"), lcd_service_mode_show_result);
+  if(!IS_SD_PRINTING) MENU_ITEM(function, MSG_XYZ_DETAILS, lcd_service_mode_show_result);
   #endif //MK1BP
   END_MENU();
 }
@@ -1352,16 +1352,16 @@ void lcd_service_mode_show_result() {
 	count_xyz_details();
 	lcd_update_enable(false);
 	lcd_implementation_clear();
-	lcd_printPGM(PSTR("Y distance from min:"));
-	lcd_print_at_PGM(0, 1, PSTR("Left:"));
-	lcd_print_at_PGM(0, 2, PSTR("Center:"));
-	lcd_print_at_PGM(0, 3, PSTR("Right:"));
+	lcd_printPGM(MSG_Y_DISTANCE_FROM_MIN);
+	lcd_print_at_PGM(0, 1, MSG_LEFT);
+	lcd_print_at_PGM(0, 2, MSG_CENTER);
+	lcd_print_at_PGM(0, 3, MSG_RIGHT);
 	for (int i = 0; i < 3; i++) {
 		if(distance_from_min[i] < 200) {
-			lcd_print_at_PGM(8, i + 1, PSTR(""));
+			lcd_print_at_PGM(11, i + 1, PSTR(""));
 			lcd.print(distance_from_min[i]);
-			lcd_print_at_PGM((distance_from_min[i] < 0) ? 14 : 13, i + 1, PSTR("mm"));
-		} else lcd_print_at_PGM(8, i + 1, PSTR("N/A"));
+			lcd_print_at_PGM((distance_from_min[i] < 0) ? 17 : 16, i + 1, PSTR("mm"));
+		} else lcd_print_at_PGM(11, i + 1, PSTR("N/A"));
 	}
 	delay_keep_alive(500);
 	while (!lcd_clicked()) {
@@ -1371,17 +1371,18 @@ void lcd_service_mode_show_result() {
 	lcd_implementation_clear();
 	
 
-	lcd_printPGM(PSTR("Measured skew: "));
+	lcd_printPGM(MSG_MEASURED_SKEW);
 	if (angleDiff < 100) {
+		lcd.setCursor(15, 0);
 		lcd.print(angleDiff * 180 / M_PI);
 		lcd.print(LCD_STR_DEGREE);
-	}else lcd_print_at_PGM(15, 0, PSTR("N/A"));
+	}else lcd_print_at_PGM(16, 0, PSTR("N/A"));
 	lcd_print_at_PGM(0, 1, PSTR("--------------------"));
-	lcd_print_at_PGM(0, 2, PSTR("Slight skew:"));
+	lcd_print_at_PGM(0, 2, MSG_SLIGHT_SKEW);
 	lcd_print_at_PGM(15, 2, PSTR(""));
 	lcd.print(bed_skew_angle_mild * 180 / M_PI);
 	lcd.print(LCD_STR_DEGREE);
-	lcd_print_at_PGM(0, 3, PSTR("Severe skew:"));
+	lcd_print_at_PGM(0, 3, MSG_SEVERE_SKEW);
 	lcd_print_at_PGM(15, 3, PSTR(""));
 	lcd.print(bed_skew_angle_extreme * 180 / M_PI);
 	lcd.print(LCD_STR_DEGREE);