Merge to 3.0.12

This commit is contained in:
3d-gussner 2017-07-11 23:21:15 +02:00
parent 64357d8909
commit 96c1e5961c
15 changed files with 289 additions and 27 deletions

View File

@ -5,7 +5,7 @@
#include "Configuration_prusa.h" #include "Configuration_prusa.h"
// Firmware version // Firmware version
#define FW_version "3.0.12-RC2" #define FW_version "3.0.12"
#define FW_PRUSA3D_MAGIC "PRUSA3DFW" #define FW_PRUSA3D_MAGIC "PRUSA3DFW"
#define FW_PRUSA3D_MAGIC_LEN 10 #define FW_PRUSA3D_MAGIC_LEN 10

View File

@ -350,6 +350,9 @@ void Config_RetrieveSettings()
calculate_volumetric_multipliers(); calculate_volumetric_multipliers();
// Call updatePID (similar to when we have processed M301) // Call updatePID (similar to when we have processed M301)
updatePID(); updatePID();
float tmp1[] = DEFAULT_AXIS_STEPS_PER_UNIT;
axis_steps_per_unit[3] = tmp1[3];
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOLNPGM("Stored settings retrieved"); SERIAL_ECHOLNPGM("Stored settings retrieved");
} }

View File

@ -5103,7 +5103,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
lastpos[Z_AXIS]=current_position[Z_AXIS]; lastpos[Z_AXIS]=current_position[Z_AXIS];
lastpos[E_AXIS]=current_position[E_AXIS]; lastpos[E_AXIS]=current_position[E_AXIS];
//Restract extruder //Retract extruder
if(code_seen('E')) if(code_seen('E'))
{ {
target[E_AXIS]+= code_value(); target[E_AXIS]+= code_value();
@ -5249,6 +5249,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
} }
} }
WRITE(BEEPER, LOW);
#ifdef SNMM #ifdef SNMM
display_loading(); display_loading();
do { do {
@ -5264,7 +5265,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
#endif #endif
//Filament inserted //Filament inserted
WRITE(BEEPER,LOW);
//Feed the filament to the end of nozzle quickly //Feed the filament to the end of nozzle quickly
#ifdef SNMM #ifdef SNMM

View File

@ -627,6 +627,23 @@ const char * const MSG_CARD_MENU_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_CARD_MENU_NL MSG_CARD_MENU_NL
}; };
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 MSG_CENTER_NL[] PROGMEM = "Centrum:";
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,
MSG_CENTER_NL
};
const char MSG_CHANGE_EXTR_EN[] PROGMEM = "Change extruder"; const char MSG_CHANGE_EXTR_EN[] PROGMEM = "Change extruder";
const char MSG_CHANGE_EXTR_CZ[] PROGMEM = "Zmenit extruder"; const char MSG_CHANGE_EXTR_CZ[] PROGMEM = "Zmenit extruder";
const char MSG_CHANGE_EXTR_IT[] PROGMEM = "Cambio estrusore."; const char MSG_CHANGE_EXTR_IT[] PROGMEM = "Cambio estrusore.";
@ -834,6 +851,23 @@ const char * const MSG_CURRENT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_CURRENT_NL MSG_CURRENT_NL
}; };
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 MSG_DATE_NL[] 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,
MSG_DATE_NL
};
const char MSG_DISABLE_STEPPERS_EN[] PROGMEM = "Disable steppers"; const char MSG_DISABLE_STEPPERS_EN[] PROGMEM = "Disable steppers";
const char MSG_DISABLE_STEPPERS_CZ[] PROGMEM = "Vypnout motory"; const char MSG_DISABLE_STEPPERS_CZ[] PROGMEM = "Vypnout motory";
const char MSG_DISABLE_STEPPERS_IT[] PROGMEM = "Disabilit motori"; const char MSG_DISABLE_STEPPERS_IT[] PROGMEM = "Disabilit motori";
@ -1521,6 +1555,23 @@ const char * const MSG_LANGUAGE_SELECT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_LANGUAGE_SELECT_NL MSG_LANGUAGE_SELECT_NL
}; };
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 MSG_LEFT_NL[] 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,
MSG_LEFT_NL
};
const char MSG_LOADING_COLOR_EN[] PROGMEM = "Loading color"; const char MSG_LOADING_COLOR_EN[] PROGMEM = "Loading color";
const char MSG_LOADING_COLOR_CZ[] PROGMEM = "Cisteni barvy"; const char MSG_LOADING_COLOR_CZ[] PROGMEM = "Cisteni barvy";
const char MSG_LOADING_COLOR_IT[] PROGMEM = "Caricando colore"; const char MSG_LOADING_COLOR_IT[] PROGMEM = "Caricando colore";
@ -1757,6 +1808,23 @@ const char * const MSG_MAX_LANG_TABLE[1] PROGMEM = {
MSG_MAX_EN 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 = "Symmetrie:";
const char MSG_MEASURED_SKEW_NL[] PROGMEM = "Symmetrie:";
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,
MSG_MEASURED_SKEW_NL
};
const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_EN[] PROGMEM = "Measuring reference height of calibration point"; 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_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"; const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_IT[] PROGMEM = "Misurare l'altezza di riferimento del punto di calibrazione";
@ -2569,6 +2637,23 @@ const char * const MSG_RESUMING_PRINT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_RESUMING_PRINT_NL MSG_RESUMING_PRINT_NL
}; };
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 MSG_RIGHT_NL[] 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,
MSG_RIGHT_NL
};
const char MSG_SD_CANT_ENTER_SUBDIR_EN[] PROGMEM = "Cannot enter subdir: "; const char MSG_SD_CANT_ENTER_SUBDIR_EN[] PROGMEM = "Cannot enter subdir: ";
const char * const MSG_SD_CANT_ENTER_SUBDIR_LANG_TABLE[1] PROGMEM = { const char * const MSG_SD_CANT_ENTER_SUBDIR_LANG_TABLE[1] PROGMEM = {
MSG_SD_CANT_ENTER_SUBDIR_EN MSG_SD_CANT_ENTER_SUBDIR_EN
@ -3139,6 +3224,23 @@ const char * const MSG_SET_TEMPERATURE_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SET_TEMPERATURE_NL MSG_SET_TEMPERATURE_NL
}; };
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 = "Schwere Asym.:";
const char MSG_SEVERE_SKEW_NL[] PROGMEM = "Hevige Asym.:";
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,
MSG_SEVERE_SKEW_NL
};
const char MSG_SHOW_END_STOPS_EN[] PROGMEM = "Show end stops"; 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_CZ[] PROGMEM = "Stav konc. spin.";
const char MSG_SHOW_END_STOPS_IT[] PROGMEM = "Stato finecorsa"; const char MSG_SHOW_END_STOPS_IT[] PROGMEM = "Stato finecorsa";
@ -3188,6 +3290,23 @@ const char * const MSG_SILENT_MODE_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SILENT_MODE_ON_EN MSG_SILENT_MODE_ON_EN
}; };
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 = "Geringe Asym.:";
const char MSG_SLIGHT_SKEW_NL[] PROGMEM = "Geringe Asym.:";
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,
MSG_SLIGHT_SKEW_NL
};
const char MSG_SOFTWARE_RESET_EN[] PROGMEM = " Software Reset"; const char MSG_SOFTWARE_RESET_EN[] PROGMEM = " Software Reset";
const char * const MSG_SOFTWARE_RESET_LANG_TABLE[1] PROGMEM = { const char * const MSG_SOFTWARE_RESET_LANG_TABLE[1] PROGMEM = {
MSG_SOFTWARE_RESET_EN MSG_SOFTWARE_RESET_EN
@ -3762,6 +3881,23 @@ const char * const MSG_WATCHDOG_RESET_LANG_TABLE[1] PROGMEM = {
MSG_WATCHDOG_RESET_EN 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 MSG_XYZ_DETAILS_NL[] 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,
MSG_XYZ_DETAILS_NL
};
const char MSG_X_MAX_EN[] PROGMEM = "x_max: "; const char MSG_X_MAX_EN[] PROGMEM = "x_max: ";
const char * const MSG_X_MAX_LANG_TABLE[1] PROGMEM = { const char * const MSG_X_MAX_LANG_TABLE[1] PROGMEM = {
MSG_X_MAX_EN MSG_X_MAX_EN
@ -3789,6 +3925,23 @@ const char * const MSG_YES_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_YES_NL MSG_YES_NL
}; };
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 von min";
const char MSG_Y_DISTANCE_FROM_MIN_NL[] PROGMEM = "Y afstand van 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,
MSG_Y_DISTANCE_FROM_MIN_NL
};
const char MSG_Y_MAX_EN[] PROGMEM = "y_max: "; const char MSG_Y_MAX_EN[] PROGMEM = "y_max: ";
const char * const MSG_Y_MAX_LANG_TABLE[1] PROGMEM = { const char * const MSG_Y_MAX_LANG_TABLE[1] PROGMEM = {
MSG_Y_MAX_EN MSG_Y_MAX_EN

View File

@ -117,6 +117,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) #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]; extern const char* const MSG_CARD_MENU_LANG_TABLE[LANG_NUM];
#define MSG_CARD_MENU LANG_TABLE_SELECT(MSG_CARD_MENU_LANG_TABLE) #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]; extern const char* const MSG_CHANGE_EXTR_LANG_TABLE[LANG_NUM];
#define MSG_CHANGE_EXTR LANG_TABLE_SELECT(MSG_CHANGE_EXTR_LANG_TABLE) #define MSG_CHANGE_EXTR LANG_TABLE_SELECT(MSG_CHANGE_EXTR_LANG_TABLE)
extern const char* const MSG_CHANGE_SUCCESS_LANG_TABLE[LANG_NUM]; extern const char* const MSG_CHANGE_SUCCESS_LANG_TABLE[LANG_NUM];
@ -147,6 +149,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) #define MSG_COUNT_X LANG_TABLE_SELECT_EXPLICIT(MSG_COUNT_X_LANG_TABLE, 0)
extern const char* const MSG_CURRENT_LANG_TABLE[LANG_NUM]; extern const char* const MSG_CURRENT_LANG_TABLE[LANG_NUM];
#define MSG_CURRENT LANG_TABLE_SELECT(MSG_CURRENT_LANG_TABLE) #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]; extern const char* const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM];
#define MSG_DISABLE_STEPPERS LANG_TABLE_SELECT(MSG_DISABLE_STEPPERS_LANG_TABLE) #define MSG_DISABLE_STEPPERS LANG_TABLE_SELECT(MSG_DISABLE_STEPPERS_LANG_TABLE)
extern const char* const MSG_DWELL_LANG_TABLE[LANG_NUM]; extern const char* const MSG_DWELL_LANG_TABLE[LANG_NUM];
@ -269,6 +273,8 @@ extern const char* const MSG_LANGUAGE_NAME_LANG_TABLE[LANG_NUM];
extern const char* const MSG_LANGUAGE_SELECT_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 LANG_TABLE_SELECT(MSG_LANGUAGE_SELECT_LANG_TABLE)
#define MSG_LANGUAGE_SELECT_EXPLICIT(LANG) LANG_TABLE_SELECT_EXPLICIT(MSG_LANGUAGE_SELECT_LANG_TABLE, LANG) #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]; extern const char* const MSG_LOADING_COLOR_LANG_TABLE[LANG_NUM];
#define MSG_LOADING_COLOR LANG_TABLE_SELECT(MSG_LOADING_COLOR_LANG_TABLE) #define MSG_LOADING_COLOR LANG_TABLE_SELECT(MSG_LOADING_COLOR_LANG_TABLE)
extern const char* const MSG_LOADING_FILAMENT_LANG_TABLE[LANG_NUM]; extern const char* const MSG_LOADING_FILAMENT_LANG_TABLE[LANG_NUM];
@ -311,6 +317,8 @@ extern const char* const MSG_MARK_FIL_LANG_TABLE[LANG_NUM];
#define MSG_MARK_FIL LANG_TABLE_SELECT(MSG_MARK_FIL_LANG_TABLE) #define MSG_MARK_FIL LANG_TABLE_SELECT(MSG_MARK_FIL_LANG_TABLE)
extern const char* const MSG_MAX_LANG_TABLE[1]; extern const char* const MSG_MAX_LANG_TABLE[1];
#define MSG_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_MAX_LANG_TABLE, 0) #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]; 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) #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]; extern const char* const MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_LANG_TABLE[LANG_NUM];
@ -437,6 +445,8 @@ extern const char* const MSG_RESUMING_LANG_TABLE[LANG_NUM];
#define MSG_RESUMING LANG_TABLE_SELECT(MSG_RESUMING_LANG_TABLE) #define MSG_RESUMING LANG_TABLE_SELECT(MSG_RESUMING_LANG_TABLE)
extern const char* const MSG_RESUMING_PRINT_LANG_TABLE[LANG_NUM]; extern const char* const MSG_RESUMING_PRINT_LANG_TABLE[LANG_NUM];
#define MSG_RESUMING_PRINT LANG_TABLE_SELECT(MSG_RESUMING_PRINT_LANG_TABLE) #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]; 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) #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]; extern const char* const MSG_SD_CANT_OPEN_SUBDIR_LANG_TABLE[1];
@ -533,12 +543,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) #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]; extern const char* const MSG_SET_TEMPERATURE_LANG_TABLE[LANG_NUM];
#define MSG_SET_TEMPERATURE LANG_TABLE_SELECT(MSG_SET_TEMPERATURE_LANG_TABLE) #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]; 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) #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]; 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) #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]; 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) #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]; extern const char* const MSG_SOFTWARE_RESET_LANG_TABLE[1];
#define MSG_SOFTWARE_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_SOFTWARE_RESET_LANG_TABLE, 0) #define MSG_SOFTWARE_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_SOFTWARE_RESET_LANG_TABLE, 0)
extern const char* const MSG_SPEED_LANG_TABLE[LANG_NUM]; extern const char* const MSG_SPEED_LANG_TABLE[LANG_NUM];
@ -623,12 +637,16 @@ extern const char* const MSG_WATCH_LANG_TABLE[LANG_NUM];
#define MSG_WATCH LANG_TABLE_SELECT(MSG_WATCH_LANG_TABLE) #define MSG_WATCH LANG_TABLE_SELECT(MSG_WATCH_LANG_TABLE)
extern const char* const MSG_WATCHDOG_RESET_LANG_TABLE[1]; extern const char* const MSG_WATCHDOG_RESET_LANG_TABLE[1];
#define MSG_WATCHDOG_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_WATCHDOG_RESET_LANG_TABLE, 0) #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]; extern const char* const MSG_X_MAX_LANG_TABLE[1];
#define MSG_X_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_X_MAX_LANG_TABLE, 0) #define MSG_X_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_X_MAX_LANG_TABLE, 0)
extern const char* const MSG_X_MIN_LANG_TABLE[1]; extern const char* const MSG_X_MIN_LANG_TABLE[1];
#define MSG_X_MIN LANG_TABLE_SELECT_EXPLICIT(MSG_X_MIN_LANG_TABLE, 0) #define MSG_X_MIN LANG_TABLE_SELECT_EXPLICIT(MSG_X_MIN_LANG_TABLE, 0)
extern const char* const MSG_YES_LANG_TABLE[LANG_NUM]; extern const char* const MSG_YES_LANG_TABLE[LANG_NUM];
#define MSG_YES LANG_TABLE_SELECT(MSG_YES_LANG_TABLE) #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]; extern const char* const MSG_Y_MAX_LANG_TABLE[1];
#define MSG_Y_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_Y_MAX_LANG_TABLE, 0) #define MSG_Y_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_Y_MAX_LANG_TABLE, 0)
extern const char* const MSG_Y_MIN_LANG_TABLE[1]; extern const char* const MSG_Y_MIN_LANG_TABLE[1];

View File

@ -301,4 +301,13 @@
#define MSG_EXTRUDER_1 "Extruder 1" #define MSG_EXTRUDER_1 "Extruder 1"
#define MSG_EXTRUDER_2 "Extruder 2" #define MSG_EXTRUDER_2 "Extruder 2"
#define MSG_EXTRUDER_3 "Extruder 3" #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:"

View File

@ -315,4 +315,13 @@
#define(length=20) MSG_EXTRUDER_1 "Extruder 1" #define(length=20) MSG_EXTRUDER_1 "Extruder 1"
#define(length=20) MSG_EXTRUDER_2 "Extruder 2" #define(length=20) MSG_EXTRUDER_2 "Extruder 2"
#define(length=20) MSG_EXTRUDER_3 "Extruder 3" #define(length=20) MSG_EXTRUDER_3 "Extruder 3"
#define(length=20) MSG_EXTRUDER_4 "Extruder 4" #define(length=20) MSG_EXTRUDER_4 "Extruder 4"
#define MSG_DATE "Datum:"
#define MSG_XYZ_DETAILS "XYZ Kal. Details"
#define MSG_Y_DISTANCE_FROM_MIN "Y Entfernung von min"
#define MSG_LEFT "Links:"
#define MSG_CENTER "Mitte:"
#define MSG_RIGHT "Rechts:"
#define MSG_MEASURED_SKEW "Symmetrie:"
#define MSG_SLIGHT_SKEW "Geringe Asym.:"
#define MSG_SEVERE_SKEW "Schwere Asym.:"

View File

@ -311,4 +311,12 @@
#define(length=17, lines=1) MSG_EXTRUDER_2 "Extruder 2" #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_3 "Extruder 3"
#define(length=17, lines=1) MSG_EXTRUDER_4 "Extruder 4" #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:"

View File

@ -295,4 +295,13 @@
#define MSG_EXTRUDER_1 "Extrusor 1" #define MSG_EXTRUDER_1 "Extrusor 1"
#define MSG_EXTRUDER_2 "Extrusor 2" #define MSG_EXTRUDER_2 "Extrusor 2"
#define MSG_EXTRUDER_3 "Extrusor 3" #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:"

View File

@ -286,4 +286,13 @@
#define MSG_EXTRUDER_1 "Estrusore 1" #define MSG_EXTRUDER_1 "Estrusore 1"
#define MSG_EXTRUDER_2 "Estrusore 2" #define MSG_EXTRUDER_2 "Estrusore 2"
#define MSG_EXTRUDER_3 "Estrusore 3" #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:"

View File

@ -315,3 +315,12 @@
#define(length=20) MSG_EXTRUDER_2 "Extruder 2" #define(length=20) MSG_EXTRUDER_2 "Extruder 2"
#define(length=20) MSG_EXTRUDER_3 "Extruder 3" #define(length=20) MSG_EXTRUDER_3 "Extruder 3"
#define(length=20) MSG_EXTRUDER_4 "Extruder 4" #define(length=20) MSG_EXTRUDER_4 "Extruder 4"
#define MSG_DATE "Datum:"
#define MSG_XYZ_DETAILS "XYZ kal. details"
#define MSG_Y_DISTANCE_FROM_MIN "Y afstand van min"
#define MSG_LEFT "Links:"
#define MSG_CENTER "Centrum:"
#define MSG_RIGHT "Rechts:"
#define MSG_MEASURED_SKEW "Symmetrie:"
#define MSG_SLIGHT_SKEW "Geringe Asym.:"
#define MSG_SEVERE_SKEW "Hevige Asym.:"

View File

@ -298,4 +298,13 @@
#define MSG_EXTRUDER_1 "Ekstruder 1" #define MSG_EXTRUDER_1 "Ekstruder 1"
#define MSG_EXTRUDER_2 "Ekstruder 2" #define MSG_EXTRUDER_2 "Ekstruder 2"
#define MSG_EXTRUDER_3 "Ekstruder 3" #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:"

View File

@ -2083,12 +2083,21 @@ BedSkewOffsetDetectionResultType improve_bed_offset_and_skew(int8_t method, int8
for (uint8_t mesh_point = 0; mesh_point < 3; ++ mesh_point) for (uint8_t mesh_point = 0; mesh_point < 3; ++ mesh_point)
if (pts[mesh_point * 2 + 1] < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) if (pts[mesh_point * 2 + 1] < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH)
too_far_mask |= 1 << mesh_point; too_far_mask |= 1 << mesh_point;
result = calculate_machine_skew_and_offset_LS(pts, 9, bed_ref_points, vec_x, vec_y, cntr, verbosity_level);
if (verbosity_level >= 20) {
SERIAL_ECHOPGM("Distance from min before calculate_machine skew and offset LS:");
MYSERIAL.print(int(too_far_mask));
}
result = calculate_machine_skew_and_offset_LS(pts, 9, bed_ref_points, vec_x, vec_y, cntr, verbosity_level);
if (result < 0) { if (result < 0) {
SERIAL_ECHOLNPGM("Calculation of the machine skew and offset failed."); SERIAL_ECHOLNPGM("Calculation of the machine skew and offset failed.");
goto canceled; goto canceled;
} }
// In case of success, update the too_far_mask from the calculated points. // In case of success, update the too_far_mask from the calculated points.
too_far_mask = 0;
if(verbosity_level >= 20) SERIAL_ECHOPGM("Reseting too far mask.");
for (uint8_t mesh_point = 0; mesh_point < 3; ++ mesh_point) { for (uint8_t mesh_point = 0; mesh_point < 3; ++ mesh_point) {
float y = vec_x[1] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[1] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[1]; float y = vec_x[1] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[1] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[1];
distance_from_min[mesh_point] = (y - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH); distance_from_min[mesh_point] = (y - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH);
@ -2447,6 +2456,21 @@ void count_xyz_details() {
eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 0)), eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 0)),
eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 4)) eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 4))
}; };
SERIAL_ECHOPGM("cntr[0]:");
MYSERIAL.println(cntr[0]);
SERIAL_ECHOPGM("cntr[1]:");
MYSERIAL.println(cntr[1]);
SERIAL_ECHOPGM("vec_x[0]:");
MYSERIAL.println(vec_x[0]);
SERIAL_ECHOPGM("vec_x[1]:");
MYSERIAL.println(vec_x[1]);
SERIAL_ECHOPGM("vec_y[0]:");
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); a2 = -1 * asin(vec_y[0] / MACHINE_AXIS_SCALE_Y);
/* SERIAL_ECHOLNPGM("par:"); /* SERIAL_ECHOLNPGM("par:");
MYSERIAL.println(vec_y[0]); MYSERIAL.println(vec_y[0]);

View File

@ -33,7 +33,7 @@
#endif #endif
#define FR_SENS 21 #define FR_SENS 24
#define X_STEP_PIN 37 #define X_STEP_PIN 37
@ -46,7 +46,7 @@
#define Y_STEP_PIN 36 #define Y_STEP_PIN 36
#define Y_DIR_PIN 49 #define Y_DIR_PIN 49
#define Y_MIN_PIN 11 #define Y_MIN_PIN 11
#define Y_MAX_PIN 24 #define Y_MAX_PIN -1
#define Y_ENABLE_PIN 28 #define Y_ENABLE_PIN 28
#define Y_MS1_PIN 69 #define Y_MS1_PIN 69
#define Y_MS2_PIN 39 #define Y_MS2_PIN 39
@ -222,7 +222,7 @@
#error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu. #error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu.
#endif #endif
#define FR_SENS 21 #define FR_SENS 24
#ifdef SNMM #ifdef SNMM
@ -242,7 +242,7 @@
#define Y_STEP_PIN 36 #define Y_STEP_PIN 36
#define Y_DIR_PIN 49 #define Y_DIR_PIN 49
#define Y_MIN_PIN 11 #define Y_MIN_PIN 11
#define Y_MAX_PIN 24 #define Y_MAX_PIN -1
#define Y_ENABLE_PIN 28 #define Y_ENABLE_PIN 28
#define Y_MS1_PIN 69 #define Y_MS1_PIN 69
#define Y_MS2_PIN 39 #define Y_MS2_PIN 39

View File

@ -975,7 +975,7 @@ static void lcd_support_menu()
MENU_ITEM(back, PSTR(ELECTRONICS),lcd_main_menu); MENU_ITEM(back, PSTR(ELECTRONICS),lcd_main_menu);
MENU_ITEM(back, PSTR(NOZZLE_TYPE),lcd_main_menu); MENU_ITEM(back, PSTR(NOZZLE_TYPE),lcd_main_menu);
MENU_ITEM(back, PSTR("------------"), 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); MENU_ITEM(back, PSTR(__DATE__), lcd_main_menu);
MENU_ITEM(back, PSTR(STRING_CONFIG_H_AUTHOR), lcd_main_menu); MENU_ITEM(back, PSTR(STRING_CONFIG_H_AUTHOR), lcd_main_menu);
@ -987,7 +987,7 @@ static void lcd_support_menu()
} }
#ifndef MK1BP #ifndef MK1BP
MENU_ITEM(back, PSTR("------------"), lcd_main_menu); 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 #endif //MK1BP
END_MENU(); END_MENU();
} }
@ -1398,16 +1398,16 @@ void lcd_service_mode_show_result() {
count_xyz_details(); count_xyz_details();
lcd_update_enable(false); lcd_update_enable(false);
lcd_implementation_clear(); lcd_implementation_clear();
lcd_printPGM(PSTR("Y distance from min:")); lcd_printPGM(MSG_Y_DISTANCE_FROM_MIN);
lcd_print_at_PGM(0, 1, PSTR("Left:")); lcd_print_at_PGM(0, 1, MSG_LEFT);
lcd_print_at_PGM(0, 2, PSTR("Center:")); lcd_print_at_PGM(0, 2, MSG_CENTER);
lcd_print_at_PGM(0, 3, PSTR("Right:")); lcd_print_at_PGM(0, 3, MSG_RIGHT);
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
if(distance_from_min[i] < 200) { 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(distance_from_min[i]);
lcd_print_at_PGM((distance_from_min[i] < 0) ? 14 : 13, i + 1, PSTR("mm")); lcd_print_at_PGM((distance_from_min[i] < 0) ? 17 : 16, i + 1, PSTR("mm"));
} else lcd_print_at_PGM(8, i + 1, PSTR("N/A")); } else lcd_print_at_PGM(11, i + 1, PSTR("N/A"));
} }
delay_keep_alive(500); delay_keep_alive(500);
while (!lcd_clicked()) { while (!lcd_clicked()) {
@ -1417,17 +1417,18 @@ void lcd_service_mode_show_result() {
lcd_implementation_clear(); lcd_implementation_clear();
lcd_printPGM(PSTR("Measured skew: ")); lcd_printPGM(MSG_MEASURED_SKEW);
if (angleDiff < 100) { if (angleDiff < 100) {
lcd.setCursor(15, 0);
lcd.print(angleDiff * 180 / M_PI); lcd.print(angleDiff * 180 / M_PI);
lcd.print(LCD_STR_DEGREE); 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, 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_at_PGM(15, 2, PSTR(""));
lcd.print(bed_skew_angle_mild * 180 / M_PI); lcd.print(bed_skew_angle_mild * 180 / M_PI);
lcd.print(LCD_STR_DEGREE); 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_at_PGM(15, 3, PSTR(""));
lcd.print(bed_skew_angle_extreme * 180 / M_PI); lcd.print(bed_skew_angle_extreme * 180 / M_PI);
lcd.print(LCD_STR_DEGREE); lcd.print(LCD_STR_DEGREE);