Merge pull request #98 from PavelSindler/MK2

Fixed temp. calibration issues (missing preheat when not printing from SD card, calibration status storing), sending more information via serial during temp. calibration, language corrections, stop print improved, snmm firmware improved
This commit is contained in:
PavelSindler 2017-05-19 19:49:03 +02:00 committed by GitHub
commit d44b30bbc6
17 changed files with 520 additions and 250 deletions

View File

@ -5,7 +5,7 @@
#include "Configuration_prusa.h"
// Firmware version
#define FW_version "3.0.11-RC1"
#define FW_version "3.0.11"
#define FW_PRUSA3D_MAGIC "PRUSA3DFW"
#define FW_PRUSA3D_MAGIC_LEN 10
@ -47,6 +47,7 @@
#define EEPROM_PROBE_TEMP_SHIFT (EEPROM_PRINT_FLAG - 2*5) //5 x int for storing pinda probe temp shift relative to 50 C; unit: motor steps
#define EEPROM_TEMP_CAL_ACTIVE (EEPROM_PROBE_TEMP_SHIFT - 1)
#define EEPROM_BOWDEN_LENGTH (EEPROM_TEMP_CAL_ACTIVE - 2*4) //4 x int for bowden lengths for multimaterial
#define EEPROM_CALIBRATION_STATUS_PINDA (EEPROM_BOWDEN_LENGTH - 1) //0 - not calibrated; 1 - calibrated
// Currently running firmware, each digit stored as uint16_t.
// The flavor differentiates a dev, alpha, beta, release candidate or a release version.
@ -714,9 +715,6 @@ enum CalibrationStatus
// The XYZ calibration has been performed, now it remains to run the V2Calibration.gcode.
CALIBRATION_STATUS_LIVE_ADJUST = 230,
//V2 calibration has been run, now run PINDA probe temperature calibration
CALIBRATION_STATUS_PINDA = 220,
// Calibrated, ready to print.
CALIBRATION_STATUS_CALIBRATED = 1,

View File

@ -22,5 +22,6 @@ FORCE_INLINE void Config_RetrieveSettings() { Config_ResetDefault(); Config_Prin
inline uint8_t calibration_status() { return eeprom_read_byte((uint8_t*)EEPROM_CALIBRATION_STATUS); }
inline uint8_t calibration_status_store(uint8_t status) { eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS, status); }
inline bool calibration_status_pinda() { return eeprom_read_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA); }
#endif//CONFIG_STORE_H

View File

@ -321,6 +321,7 @@ extern unsigned long pause_time;
extern unsigned long start_pause_print;
extern bool mesh_bed_leveling_flag;
extern bool mesh_bed_run_from_menu;
extern void calculate_volumetric_multipliers();
@ -342,4 +343,5 @@ void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_
float temp_comp_interpolation(float temperature);
void temp_compensation_apply();
void temp_compensation_start();
void wait_for_heater(long codenum);
void wait_for_heater(long codenum);
void serialecho_temperatures();

View File

@ -270,6 +270,7 @@ unsigned long start_pause_print = millis();
unsigned long load_filament_time;
bool mesh_bed_leveling_flag = false;
bool mesh_bed_run_from_menu = false;
unsigned char lang_selected = 0;
int8_t FarmMode = 0;
@ -1181,6 +1182,10 @@ void setup()
temp_cal_active = false;
} else temp_cal_active = eeprom_read_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE);
if (eeprom_read_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA) == 255) {
eeprom_write_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0);
}
check_babystep(); //checking if Z babystep is in allowed range
if (calibration_status() == CALIBRATION_STATUS_ASSEMBLED ||
@ -1193,7 +1198,7 @@ void setup()
// Show the message.
lcd_show_fullscreen_message_and_wait_P(MSG_BABYSTEP_Z_NOT_SET);
lcd_update_enable(true);
} else if (calibration_status() == CALIBRATION_STATUS_PINDA && temp_cal_active == true) {
} else if (calibration_status() == CALIBRATION_STATUS_CALIBRATED && temp_cal_active == true && calibration_status_pinda() == false) {
lcd_show_fullscreen_message_and_wait_P(MSG_PINDA_NOT_CALIBRATED);
lcd_update_enable(true);
} else if (calibration_status() == CALIBRATION_STATUS_Z_CALIBRATION) {
@ -1887,7 +1892,7 @@ void trace() {
noTone(BEEPER);
delay(20);
}
/*
void ramming() {
// float tmp[4] = DEFAULT_MAX_FEEDRATE;
if (current_temperature[0] < 230) {
@ -1942,10 +1947,10 @@ void ramming() {
current_position[E_AXIS] += 4;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3000 / 60, active_extruder);
st_synchronize();
/*current_position[X_AXIS] += 23; //delay
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600/60, active_extruder); //delay
current_position[X_AXIS] -= 23; //delay
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600/60, active_extruder); //delay*/
//current_position[X_AXIS] += 23; //delay
//plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600/60, active_extruder); //delay
//current_position[X_AXIS] -= 23; //delay
//plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600/60, active_extruder); //delay
delay(4700);
max_feedrate[E_AXIS] = 80;
current_position[E_AXIS] -= 92;
@ -1970,7 +1975,7 @@ void ramming() {
}
}
*/
void process_commands()
{
#ifdef FILAMENT_RUNOUT_SUPPORT
@ -2771,7 +2776,7 @@ void process_commands()
enquecommand_front_P((PSTR("G28 W0")));
break;
}
SERIAL_ECHOLNPGM("PINDA probe calibration start");
custom_message = true;
custom_message_type = 4;
custom_message_state = 1;
@ -2782,11 +2787,17 @@ void process_commands()
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3000 / 60, active_extruder);
st_synchronize();
while (abs(degBed() - PINDA_MIN_T) > 1 ) delay_keep_alive(1000);
while (abs(degBed() - PINDA_MIN_T) > 1) {
delay_keep_alive(1000);
serialecho_temperatures();
}
//enquecommand_P(PSTR("M190 S50"));
for (int i = 0; i < PINDA_HEAT_T; i++) delay_keep_alive(1000);
calibration_status_store(CALIBRATION_STATUS_PINDA); //invalidate temp. calibration in case that in will be aborted during the calibration process
for (int i = 0; i < PINDA_HEAT_T; i++) {
delay_keep_alive(1000);
serialecho_temperatures();
}
eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); //invalidate temp. calibration in case that in will be aborted during the calibration process
current_position[Z_AXIS] = 5;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3000 / 60, active_extruder);
@ -2806,6 +2817,9 @@ void process_commands()
SERIAL_ECHOLNPGM("");
for (int i = 0; i<5; i++) {
SERIAL_ECHOPGM("Step: ");
MYSERIAL.print(i+2);
SERIAL_ECHOLNPGM("/6");
custom_message_state = i + 2;
t_c = 60 + i * 10;
@ -2815,8 +2829,14 @@ void process_commands()
current_position[Z_AXIS] = PINDA_PREHEAT_Z;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3000 / 60, active_extruder);
st_synchronize();
while (degBed() < t_c) delay_keep_alive(1000);
for (int i = 0; i < PINDA_HEAT_T; i++) delay_keep_alive(1000);
while (degBed() < t_c) {
delay_keep_alive(1000);
serialecho_temperatures();
}
for (int i = 0; i < PINDA_HEAT_T; i++) {
delay_keep_alive(1000);
serialecho_temperatures();
}
current_position[Z_AXIS] = 5;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3000 / 60, active_extruder);
current_position[X_AXIS] = pgm_read_float(bed_ref_points);
@ -2840,12 +2860,20 @@ void process_commands()
custom_message_type = 0;
custom_message = false;
calibration_status_store(CALIBRATION_STATUS_CALIBRATED);
eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 1);
SERIAL_ECHOLNPGM("Temperature calibration done. Continue with pressing the knob.");
disable_x();
disable_y();
disable_z();
disable_e0();
disable_e1();
disable_e2();
setTargetBed(0); //set bed target temperature back to 0
lcd_show_fullscreen_message_and_wait_P(MSG_TEMP_CALIBRATION_DONE);
lcd_update_enable(true);
lcd_update(2);
setTargetBed(0); //set bed target temperature back to 0
}
break;
@ -2910,20 +2938,33 @@ void process_commands()
// We don't know where we are! HOME!
// Push the commands to the front of the message queue in the reverse order!
// There shall be always enough space reserved for these commands.
repeatcommand_front(); // repeat G80 with all its parameters
enquecommand_front_P((PSTR("G28 W0")));
if (lcd_commands_type != LCD_COMMAND_STOP_PRINT) {
repeatcommand_front(); // repeat G80 with all its parameters
enquecommand_front_P((PSTR("G28 W0")));
}
else {
mesh_bed_leveling_flag = false;
}
break;
}
if (run == false && card.sdprinting == true && temp_cal_active == true && calibration_status() < CALIBRATION_STATUS_PINDA) {
temp_compensation_start();
run = true;
repeatcommand_front(); // repeat G80 with all its parameters
enquecommand_front_P((PSTR("G28 W0")));
if (run == false && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) {
if (lcd_commands_type != LCD_COMMAND_STOP_PRINT) {
temp_compensation_start();
run = true;
repeatcommand_front(); // repeat G80 with all its parameters
enquecommand_front_P((PSTR("G28 W0")));
}
else {
mesh_bed_leveling_flag = false;
}
break;
}
run = false;
if (lcd_commands_type == LCD_COMMAND_STOP_PRINT) {
mesh_bed_leveling_flag = false;
break;
}
// Save custom message state, set a new custom message state to display: Calibrating point 9.
bool custom_message_old = custom_message;
unsigned int custom_message_type_old = custom_message_type;
@ -3062,7 +3103,7 @@ void process_commands()
}
clean_up_after_endstop_move();
SERIAL_ECHOLNPGM("clean up finished ");
if(temp_cal_active == true && calibration_status() < CALIBRATION_STATUS_PINDA) temp_compensation_apply(); //apply PINDA temperature compensation
if(temp_cal_active == true && calibration_status_pinda() == true) temp_compensation_apply(); //apply PINDA temperature compensation
babystep_apply(); // Apply Z height correction aka baby stepping before mesh bed leveing gets activated.
SERIAL_ECHOLNPGM("babystep applied");
bool eeprom_bed_correction_valid = eeprom_read_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID) == 1;
@ -3128,7 +3169,7 @@ void process_commands()
go_home_with_z_lift();
SERIAL_ECHOLNPGM("Go home finished");
//unretract (after PINDA preheat retraction)
if (card.sdprinting == true && degHotend(active_extruder) > EXTRUDE_MINTEMP && temp_cal_active == true) {
if (degHotend(active_extruder) > EXTRUDE_MINTEMP && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) {
current_position[E_AXIS] += DEFAULT_RETRACTION;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 400, active_extruder);
}
@ -3137,6 +3178,7 @@ void process_commands()
custom_message_type = custom_message_type_old;
custom_message_state = custom_message_state_old;
mesh_bed_leveling_flag = false;
mesh_bed_run_from_menu = false;
lcd_update(2);
}
@ -3236,7 +3278,7 @@ void process_commands()
* This G-code will be performed at the end of a calibration script.
*/
case 87:
calibration_status_store(CALIBRATION_STATUS_PINDA);
calibration_status_store(CALIBRATION_STATUS_CALIBRATED);
break;
/**
@ -4242,14 +4284,14 @@ Sigma_Exit:
else
{
st_synchronize();
if(code_seen('X')) disable_x();
if(code_seen('Y')) disable_y();
if(code_seen('Z')) disable_z();
#if ((E0_ENABLE_PIN != X_ENABLE_PIN) && (E1_ENABLE_PIN != Y_ENABLE_PIN)) // Only enable on boards that have seperate ENABLE_PINS
if(code_seen('E')) {
disable_e0();
disable_e1();
disable_e2();
if (code_seen('X')) disable_x();
if (code_seen('Y')) disable_y();
if (code_seen('Z')) disable_z();
#if ((E0_ENABLE_PIN != X_ENABLE_PIN) && (E1_ENABLE_PIN != Y_ENABLE_PIN)) // Only enable on boards that have seperate ENABLE_PINS
if (code_seen('E')) {
disable_e0();
disable_e1();
disable_e2();
}
#endif
}
@ -4974,6 +5016,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
#ifdef FILAMENTCHANGEENABLE
case 600: //Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
{
st_synchronize();
float target[4];
float lastpos[4];
@ -5054,6 +5097,9 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
#endif
}
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], FILAMENTCHANGE_XYFEED, active_extruder);
st_synchronize();
custom_message = true;
lcd_setstatuspgm(MSG_UNLOADING_FILAMENT);
// Unload filament
if(code_seen('L'))
@ -5180,7 +5226,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], FILAMENTCHANGE_EXFEED, active_extruder);
//Wait for user to check the state
lcd_change_fil_state = 0;
@ -5192,13 +5238,33 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
// Filament failed to load so load it again
case 2:
#ifdef SNMM
display_loading();
do {
target[E_AXIS] += 0.002;
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 500, active_extruder);
delay_keep_alive(2);
} while (!lcd_clicked());
st_synchronize();
target[E_AXIS] += bowden_length[snmm_extruder];
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3000, active_extruder);
target[E_AXIS] += FIL_LOAD_LENGTH - 60;
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 1400, active_extruder);
target[E_AXIS] += 40;
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 400, active_extruder);
target[E_AXIS] += 10;
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 50, active_extruder);
#else
target[E_AXIS]+= FILAMENTCHANGE_FIRSTFEED ;
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], FILAMENTCHANGE_EFEED, active_extruder);
#endif
target[E_AXIS]+= FILAMENTCHANGE_FINALFEED ;
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], FILAMENTCHANGE_EXFEED, active_extruder);
lcd_loading_filament();
break;
// Filament loaded properly but color is not clear
@ -5252,7 +5318,10 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
char cmd[9];
sprintf_P(cmd, PSTR("M220 S%i"), feedmultiplyBckp);
enquecommand(cmd);
lcd_setstatuspgm(WELCOME_MSG);
custom_message = false;
custom_message_type = 0;
}
break;
@ -6345,7 +6414,9 @@ void temp_compensation_start() {
custom_message_type = 5;
custom_message_state = PINDA_HEAT_T + 1;
lcd_update(2);
if (degHotend(active_extruder)>EXTRUDE_MINTEMP) current_position[E_AXIS] -= DEFAULT_RETRACTION;
if (degHotend(active_extruder) > EXTRUDE_MINTEMP) {
current_position[E_AXIS] -= DEFAULT_RETRACTION;
}
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 400, active_extruder);
current_position[X_AXIS] = PINDA_PREHEAT_X;
@ -6473,7 +6544,7 @@ void long_pause() //long pause print
pause_lastpos[E_AXIS] = current_position[E_AXIS];
//retract
current_position[E_AXIS] -= PAUSE_RETRACT;
current_position[E_AXIS] -= DEFAULT_RETRACTION;
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 400, active_extruder);
//lift z
@ -6495,4 +6566,15 @@ void long_pause() //long pause print
fanSpeed = 0;
st_synchronize();
}
void serialecho_temperatures() {
float tt = degHotend(active_extruder);
SERIAL_PROTOCOLPGM("T:");
SERIAL_PROTOCOL(tt);
SERIAL_PROTOCOLPGM(" E:");
SERIAL_PROTOCOL((int)active_extruder);
SERIAL_PROTOCOLPGM(" B:");
SERIAL_PROTOCOL_F(degBed(), 1);
SERIAL_PROTOCOLLN("");
}

View File

@ -121,12 +121,12 @@ const char * const MSG_BED_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_EN
};
const char MSG_BED_CORRECTION_FRONT_EN[] PROGMEM = "Front side um";
const char MSG_BED_CORRECTION_FRONT_EN[] PROGMEM = "Front side[um]";
const char MSG_BED_CORRECTION_FRONT_CZ[] PROGMEM = "Vpredu [um]";
const char MSG_BED_CORRECTION_FRONT_IT[] PROGMEM = "Lato ateriore";
const char MSG_BED_CORRECTION_FRONT_IT[] PROGMEM = "Fronte [um]";
const char MSG_BED_CORRECTION_FRONT_ES[] PROGMEM = "Adelante [um]";
const char MSG_BED_CORRECTION_FRONT_PL[] PROGMEM = "Do przodu [um]";
const char MSG_BED_CORRECTION_FRONT_DE[] PROGMEM = "Vorderseite [um]";
const char MSG_BED_CORRECTION_FRONT_DE[] PROGMEM = "Vorne [um]";
const char * const MSG_BED_CORRECTION_FRONT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_CORRECTION_FRONT_EN,
MSG_BED_CORRECTION_FRONT_CZ,
@ -136,12 +136,12 @@ const char * const MSG_BED_CORRECTION_FRONT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_CORRECTION_FRONT_DE
};
const char MSG_BED_CORRECTION_LEFT_EN[] PROGMEM = "Left side um";
const char MSG_BED_CORRECTION_LEFT_EN[] PROGMEM = "Left side [um]";
const char MSG_BED_CORRECTION_LEFT_CZ[] PROGMEM = "Vlevo [um]";
const char MSG_BED_CORRECTION_LEFT_IT[] PROGMEM = "Lato sinistro";
const char MSG_BED_CORRECTION_LEFT_IT[] PROGMEM = "Sinistra [um]";
const char MSG_BED_CORRECTION_LEFT_ES[] PROGMEM = "Izquierda [um]";
const char MSG_BED_CORRECTION_LEFT_PL[] PROGMEM = "W lewo [um]";
const char MSG_BED_CORRECTION_LEFT_DE[] PROGMEM = "Linke Seite [um]";
const char MSG_BED_CORRECTION_LEFT_DE[] PROGMEM = "Links [um]";
const char * const MSG_BED_CORRECTION_LEFT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_CORRECTION_LEFT_EN,
MSG_BED_CORRECTION_LEFT_CZ,
@ -166,12 +166,12 @@ const char * const MSG_BED_CORRECTION_MENU_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_CORRECTION_MENU_DE
};
const char MSG_BED_CORRECTION_REAR_EN[] PROGMEM = "Rear side um";
const char MSG_BED_CORRECTION_REAR_EN[] PROGMEM = "Rear side [um]";
const char MSG_BED_CORRECTION_REAR_CZ[] PROGMEM = "Vzadu [um]";
const char MSG_BED_CORRECTION_REAR_IT[] PROGMEM = "Lato posteriore";
const char MSG_BED_CORRECTION_REAR_IT[] PROGMEM = "Retro [um]";
const char MSG_BED_CORRECTION_REAR_ES[] PROGMEM = "Atras [um]";
const char MSG_BED_CORRECTION_REAR_PL[] PROGMEM = "Do tylu [um]";
const char MSG_BED_CORRECTION_REAR_DE[] PROGMEM = "Rueckseite [um]";
const char MSG_BED_CORRECTION_REAR_DE[] PROGMEM = "Hinten [um]";
const char * const MSG_BED_CORRECTION_REAR_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_CORRECTION_REAR_EN,
MSG_BED_CORRECTION_REAR_CZ,
@ -182,16 +182,22 @@ const char * const MSG_BED_CORRECTION_REAR_LANG_TABLE[LANG_NUM] PROGMEM = {
};
const char MSG_BED_CORRECTION_RESET_EN[] PROGMEM = "Reset";
const char * const MSG_BED_CORRECTION_RESET_LANG_TABLE[1] PROGMEM = {
MSG_BED_CORRECTION_RESET_EN
const char MSG_BED_CORRECTION_RESET_DE[] PROGMEM = "Ruecksetzen";
const char * const MSG_BED_CORRECTION_RESET_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_CORRECTION_RESET_EN,
MSG_BED_CORRECTION_RESET_EN,
MSG_BED_CORRECTION_RESET_EN,
MSG_BED_CORRECTION_RESET_EN,
MSG_BED_CORRECTION_RESET_EN,
MSG_BED_CORRECTION_RESET_DE
};
const char MSG_BED_CORRECTION_RIGHT_EN[] PROGMEM = "Right side um";
const char MSG_BED_CORRECTION_RIGHT_EN[] PROGMEM = "Right side[um]";
const char MSG_BED_CORRECTION_RIGHT_CZ[] PROGMEM = "Vpravo [um]";
const char MSG_BED_CORRECTION_RIGHT_IT[] PROGMEM = "Lato destro";
const char MSG_BED_CORRECTION_RIGHT_IT[] PROGMEM = "Destra [um]";
const char MSG_BED_CORRECTION_RIGHT_ES[] PROGMEM = "Derecha [um]";
const char MSG_BED_CORRECTION_RIGHT_PL[] PROGMEM = "W prawo [um]";
const char MSG_BED_CORRECTION_RIGHT_DE[] PROGMEM = "Rechte Seite [um]";
const char MSG_BED_CORRECTION_RIGHT_DE[] PROGMEM = "Rechts [um]";
const char * const MSG_BED_CORRECTION_RIGHT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_CORRECTION_RIGHT_EN,
MSG_BED_CORRECTION_RIGHT_CZ,
@ -221,7 +227,7 @@ const char MSG_BED_HEATING_CZ[] PROGMEM = "Zahrivani bed";
const char MSG_BED_HEATING_IT[] PROGMEM = "Riscald. letto";
const char MSG_BED_HEATING_ES[] PROGMEM = "Calentando Base";
const char MSG_BED_HEATING_PL[] PROGMEM = "Grzanie stolika..";
const char MSG_BED_HEATING_DE[] PROGMEM = "Bed erwaermen";
const char MSG_BED_HEATING_DE[] PROGMEM = "Bed aufwaermen";
const char * const MSG_BED_HEATING_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_HEATING_EN,
MSG_BED_HEATING_CZ,
@ -251,7 +257,7 @@ const char MSG_BED_LEVELING_FAILED_POINT_LOW_CZ[] PROGMEM = "Kalibrace Z selhala
const char MSG_BED_LEVELING_FAILED_POINT_LOW_IT[] PROGMEM = "Livellamento letto fallito.NoRispSensor Residui su ugello? In attesa di reset.";
const char MSG_BED_LEVELING_FAILED_POINT_LOW_ES[] PROGMEM = "Nivelacion fallada. Sensor no funciona. Escombros en Boqui.? Esperando reset.";
const char MSG_BED_LEVELING_FAILED_POINT_LOW_PL[] PROGMEM = "Kalibracja nieudana. Sensor nie dotknal. Zanieczysz. dysza? Czekam na reset.";
const char MSG_BED_LEVELING_FAILED_POINT_LOW_DE[] PROGMEM = "Z-Kal. fehlgeschlg. Sensor nicht ausgeloest. Schmutze Duese? Warte auf RST";
const char MSG_BED_LEVELING_FAILED_POINT_LOW_DE[] PROGMEM = "Z-Kal. fehlgeschlg. Sensor nicht ausgeloest. Schmutzige Duese? Warte auf Reset";
const char * const MSG_BED_LEVELING_FAILED_POINT_LOW_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_LEVELING_FAILED_POINT_LOW_EN,
MSG_BED_LEVELING_FAILED_POINT_LOW_CZ,
@ -281,7 +287,7 @@ const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_CZ[] PROGMEM = "K
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_IT[] PROGMEM = "Calibrazione XYZ fallita. Punti anteriori non raggiungibili.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_ES[] PROGMEM = "Calibracion XYZ fallad. Punto delanteros no alcanzables.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_PL[] PROGMEM = "Kalibr. XYZ nieudana. Przed. punkty kalibr. zbyt do przodu. Wyrownac drukarke.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_DE[] PROGMEM = "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte sind zu weit nach vorne.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_DE[] PROGMEM = "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte sind zu weit vorne.";
const char * const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_EN,
MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_CZ,
@ -296,7 +302,7 @@ const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_CZ[] PROGMEM = "K
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_IT[] PROGMEM = "Calibrazione XYZ fallita. Punto anteriore sinistro non raggiungibile.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_ES[] PROGMEM = "Calibracion XYZ fallad. Punto delantero izquierdo no alcanzable.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_PL[] PROGMEM = "Kalibr. XYZ nieudana. Lewy przedni punkt zbyt do przodu. Wyrownac drukarke.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung fehlgeschlagen. Linker vorderer Kalibrierpunkt ist zu weit nach vorne.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung fehlgeschlagen. Linker vorderer Kalibrierpunkt ist zu weit vorne.";
const char * const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_EN,
MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_CZ,
@ -311,7 +317,7 @@ const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_CZ[] PROGMEM = "
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_IT[] PROGMEM = "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_ES[] PROGMEM = "Calibracion XYZ fallad. Punto delantero derecho no alcanzable.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_PL[] PROGMEM = "Kalibr. XYZ nieudana. Prawy przedni punkt zbyt do przodu. Wyrownac drukarke.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist zu weit nach vorne.";
const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist zu weit vorne.";
const char * const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_EN,
MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_CZ,
@ -341,7 +347,7 @@ const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_CZ[] PROGMEM = "Kalibrace XYZ v
const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_IT[] PROGMEM = "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!";
const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_ES[] PROGMEM = "Calibracion XYZ ok. Ejes X/Y perpendiculares. Felicitaciones!";
const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_PL[] PROGMEM = "Kalibracja XYZ ok. Osie X/Y sa prostopadle. Gratulacje!";
const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_DE[] PROGMEM = "XYZ-Kalibrierung ok. X/Y-Achsen sind im Lot. Glueckwunsch!";
const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_DE[] PROGMEM = "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander. Glueckwunsch!";
const char * const MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_EN,
MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_CZ,
@ -401,7 +407,7 @@ const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_CZ[] PROGMEM = "
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_IT[] PROGMEM = "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_ES[] PROGMEM = "Calibrazion XYZ comprometida. Punto delanteros no alcanzables.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_PL[] PROGMEM = "Kalibr. XYZ niedokladna. Przednie punkty kalibr. Zbyt wys. do przodu.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_DE[] PROGMEM = "XYZ-Kalibrierung ungenau. Vordere Kalibrierpunkte sind zu weit nach vorne.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_DE[] PROGMEM = "XYZ-Kalibrierung ungenau. Vordere Kalibrierpunkte sind zu weit vorne.";
const char * const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_EN,
MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_CZ,
@ -416,7 +422,7 @@ const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_CZ[] PROGMEM = "
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_IT[] PROGMEM = "Calibrazione XYZ compromessa. Punto anteriore sinistro non raggiungibile.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_ES[] PROGMEM = "Calibrazion XYZ comprometida. Punto delantero izquierdo no alcanzable.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_PL[] PROGMEM = "Kalibracja XYZ niedokladna. Lewy przedni punkt zbyt wysuniety do przodu.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung ungenau. Linker vorderer Kalibrierpunkt ist zu weit nach vorne.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung ungenau. Linker vorderer Kalibrierpunkt ist zu weit vorne.";
const char * const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_EN,
MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_CZ,
@ -431,7 +437,7 @@ const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_CZ[] PROGMEM =
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_IT[] PROGMEM = "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_ES[] PROGMEM = "Calibrazion XYZ comprometida. Punto delantero derecho no alcanzable.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_PL[] PROGMEM = "Kalibracja XYZ niedokladna. Prawy przedni punkt zbyt wysuniety do przodu.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung ungenau. Rechter vorderer Kalibrierpunkt ist zu weit nach vorne.";
const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung ungenau. Rechter vorderer Kalibrierpunkt ist zu weit vorne.";
const char * const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_EN,
MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_CZ,
@ -574,7 +580,7 @@ const char MSG_CHANGING_FILAMENT_CZ[] PROGMEM = "Vymena filamentu!";
const char MSG_CHANGING_FILAMENT_IT[] PROGMEM = "Cambiando filam.";
const char MSG_CHANGING_FILAMENT_ES[] PROGMEM = "Cambiando filamento";
const char MSG_CHANGING_FILAMENT_PL[] PROGMEM = "Wymiana filamentu";
const char MSG_CHANGING_FILAMENT_DE[] PROGMEM = "Wechsel filament!";
const char MSG_CHANGING_FILAMENT_DE[] PROGMEM = "Filament-Wechsel!";
const char * const MSG_CHANGING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_CHANGING_FILAMENT_EN,
MSG_CHANGING_FILAMENT_CZ,
@ -614,7 +620,7 @@ const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_CZ[] PROGMEM = "Dojely oba Z voziky k
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_IT[] PROGMEM = "I carrelli Z sin/des sono altezza max?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_ES[] PROGMEM = "Carros Z izq./der. estan arriba maximo?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_PL[] PROGMEM = "Oba wozki dojechaly do gornej ramy?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_DE[] PROGMEM = "Sind Z-Schlitten ganz oben?";
const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_DE[] PROGMEM = "Ist der Schlitten ganz oben?";
const char * const MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_CONFIRM_CARRIAGE_AT_THE_TOP_EN,
MSG_CONFIRM_CARRIAGE_AT_THE_TOP_CZ,
@ -629,7 +635,7 @@ const char MSG_CONFIRM_NOZZLE_CLEAN_CZ[] PROGMEM = "Pro uspesnou kalibraci ocist
const char MSG_CONFIRM_NOZZLE_CLEAN_IT[] PROGMEM = "Pulire l'ugello per la calibrazione, poi fare click.";
const char MSG_CONFIRM_NOZZLE_CLEAN_ES[] PROGMEM = "Limpiar boquilla para calibracion. Click cuando acabes.";
const char MSG_CONFIRM_NOZZLE_CLEAN_PL[] PROGMEM = "Dla prawidl. kalibracji prosze oczyscic dysze. Potw. guzikiem.";
const char MSG_CONFIRM_NOZZLE_CLEAN_DE[] PROGMEM = "Bitte reinigen Sie die D\x81se zur Kalibrierung. Klicken wenn fertig.";
const char MSG_CONFIRM_NOZZLE_CLEAN_DE[] PROGMEM = "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber.";
const char * const MSG_CONFIRM_NOZZLE_CLEAN_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_CONFIRM_NOZZLE_CLEAN_EN,
MSG_CONFIRM_NOZZLE_CLEAN_CZ,
@ -644,7 +650,7 @@ const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_CZ[] PROGMEM = "Filamenty jsou srovn
const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_IT[] PROGMEM = "I filamenti sono regolati. Si prega di pulire l'ugello per la calibrazione. Click per continuare.";
const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_ES[] PROGMEM = "Filamentos ajustados. Limpie la boquilla para calibracion. Haga clic una vez terminado.";
const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_PL[] PROGMEM = "Dla prawidlowej kalibracji prosze oczyscic dysze. Potem potwierdzic przyciskiem.";
const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_DE[] PROGMEM = "Filaments sind jetzt eingestellt. Bitte reinigen Sie die Duese zur Kalibrierung. Klicken wenn fertig.";
const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_DE[] PROGMEM = "Filamente sind jetzt eingestellt. Bitte reinigen Sie die Duese zur Kalibrierung. Klicken wenn fertig.";
const char * const MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_EN,
MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_CZ,
@ -699,7 +705,7 @@ const char MSG_DISABLE_STEPPERS_CZ[] PROGMEM = "Vypnout motory";
const char MSG_DISABLE_STEPPERS_IT[] PROGMEM = "Disabilit motori";
const char MSG_DISABLE_STEPPERS_ES[] PROGMEM = "Apagar motores";
const char MSG_DISABLE_STEPPERS_PL[] PROGMEM = "Wylaczyc silniki";
const char MSG_DISABLE_STEPPERS_DE[] PROGMEM = "Deaktiviere Motor";
const char MSG_DISABLE_STEPPERS_DE[] PROGMEM = "Motoren aus";
const char * const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_DISABLE_STEPPERS_EN,
MSG_DISABLE_STEPPERS_CZ,
@ -712,7 +718,7 @@ const char * const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_DWELL_EN[] PROGMEM = "Sleep...";
const char MSG_DWELL_IT[] PROGMEM = "Sospensione...";
const char MSG_DWELL_ES[] PROGMEM = "En espera";
const char MSG_DWELL_DE[] PROGMEM = "Schlaf...";
const char MSG_DWELL_DE[] PROGMEM = "Einen Moment bitte.";
const char * const MSG_DWELL_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_DWELL_EN,
MSG_DWELL_EN,
@ -811,7 +817,7 @@ const char MSG_E_CAL_KNOB_CZ[] PROGMEM = "Otacejte tlacitkem dokud znacka nedosa
const char MSG_E_CAL_KNOB_IT[] PROGMEM = "Girare la manopola affinche' il segno raggiunga il corpo dell'estrusore. Click per continuare.";
const char MSG_E_CAL_KNOB_ES[] PROGMEM = "Rotar el mando hasta que la marca llegue al cuerpo del extrusor. Haga clic una vez terminado.";
const char MSG_E_CAL_KNOB_PL[] PROGMEM = "Prosze otaczac przycisk poki znacznik nie dosiegnie ciala ekstrudera. Potwierdzic przyciskiem.";
const char MSG_E_CAL_KNOB_DE[] PROGMEM = "Dreh den Knopf bis das Extruder Zeichen erreicht ist. Klicken wenn fertig.";
const char MSG_E_CAL_KNOB_DE[] PROGMEM = "Knopf drehen bis die Filamentmarkierung erreicht ist. Klicken wenn fertig.";
const char * const MSG_E_CAL_KNOB_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_E_CAL_KNOB_EN,
MSG_E_CAL_KNOB_CZ,
@ -836,7 +842,7 @@ const char MSG_FAN_SPEED_CZ[] PROGMEM = "Rychlost vent.";
const char MSG_FAN_SPEED_IT[] PROGMEM = "Velocita vent.";
const char MSG_FAN_SPEED_ES[] PROGMEM = "Velocidad Vent.";
const char MSG_FAN_SPEED_PL[] PROGMEM = "Predkosc went.";
const char MSG_FAN_SPEED_DE[] PROGMEM = "Lueftergeschw.";
const char MSG_FAN_SPEED_DE[] PROGMEM = "Luefter-Tempo";
const char * const MSG_FAN_SPEED_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_FAN_SPEED_EN,
MSG_FAN_SPEED_CZ,
@ -856,7 +862,7 @@ const char MSG_FILAMENTCHANGE_CZ[] PROGMEM = "Vymenit filament";
const char MSG_FILAMENTCHANGE_IT[] PROGMEM = "Camb. filamento";
const char MSG_FILAMENTCHANGE_ES[] PROGMEM = "Cambiar filamento";
const char MSG_FILAMENTCHANGE_PL[] PROGMEM = "Wymienic filament";
const char MSG_FILAMENTCHANGE_DE[] PROGMEM = "Wechsel filament";
const char MSG_FILAMENTCHANGE_DE[] PROGMEM = "Filament-Wechsel";
const char * const MSG_FILAMENTCHANGE_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_FILAMENTCHANGE_EN,
MSG_FILAMENTCHANGE_CZ,
@ -871,7 +877,7 @@ const char MSG_FILAMENT_CLEAN_CZ[] PROGMEM = "Je barva cista?";
const char MSG_FILAMENT_CLEAN_IT[] PROGMEM = "Il colore e' nitido?";
const char MSG_FILAMENT_CLEAN_ES[] PROGMEM = "Es el nuevo color nitido?";
const char MSG_FILAMENT_CLEAN_PL[] PROGMEM = "Czy kolor jest czysty?";
const char MSG_FILAMENT_CLEAN_DE[] PROGMEM = "Ist Farbe klar?";
const char MSG_FILAMENT_CLEAN_DE[] PROGMEM = "Ist Farbe rein?";
const char * const MSG_FILAMENT_CLEAN_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_FILAMENT_CLEAN_EN,
MSG_FILAMENT_CLEAN_CZ,
@ -882,7 +888,7 @@ const char * const MSG_FILAMENT_CLEAN_LANG_TABLE[LANG_NUM] PROGMEM = {
};
const char MSG_FILAMENT_LOADING_T0_EN[] PROGMEM = "Insert filament into extruder 1. Click when done.";
const char MSG_FILAMENT_LOADING_T0_CZ[] PROGMEM = "Vlo\x9Ete filament do extruderu 1. Potvrdte tlacitkem.";
const char MSG_FILAMENT_LOADING_T0_CZ[] PROGMEM = "Vlozte filament do extruderu 1. Potvrdte tlacitkem.";
const char MSG_FILAMENT_LOADING_T0_IT[] PROGMEM = "Inserire filamento nell'estrusore 1. Click per continuare.";
const char MSG_FILAMENT_LOADING_T0_ES[] PROGMEM = "Insertar filamento en el extrusor 1. Haga clic una vez terminado.";
const char MSG_FILAMENT_LOADING_T0_PL[] PROGMEM = "Wloz filament do ekstrudera 1. Potwierdz przyciskiem.";
@ -897,7 +903,7 @@ const char * const MSG_FILAMENT_LOADING_T0_LANG_TABLE[LANG_NUM] PROGMEM = {
};
const char MSG_FILAMENT_LOADING_T1_EN[] PROGMEM = "Insert filament into extruder 2. Click when done.";
const char MSG_FILAMENT_LOADING_T1_CZ[] PROGMEM = "Vlo\x9Ete filament do extruderu 2. Potvrdte tlacitkem.";
const char MSG_FILAMENT_LOADING_T1_CZ[] PROGMEM = "Vlozte filament do extruderu 2. Potvrdte tlacitkem.";
const char MSG_FILAMENT_LOADING_T1_IT[] PROGMEM = "Inserire filamento nell'estrusore 2. Click per continuare.";
const char MSG_FILAMENT_LOADING_T1_ES[] PROGMEM = "Insertar filamento en el extrusor 2. Haga clic una vez terminado.";
const char MSG_FILAMENT_LOADING_T1_PL[] PROGMEM = "Wloz filament do ekstrudera 2. Potwierdz przyciskiem.";
@ -912,7 +918,7 @@ const char * const MSG_FILAMENT_LOADING_T1_LANG_TABLE[LANG_NUM] PROGMEM = {
};
const char MSG_FILAMENT_LOADING_T2_EN[] PROGMEM = "Insert filament into extruder 3. Click when done.";
const char MSG_FILAMENT_LOADING_T2_CZ[] PROGMEM = "Vlo\x9Ete filament do extruderu 3. Potvrdte tlacitkem.";
const char MSG_FILAMENT_LOADING_T2_CZ[] PROGMEM = "Vlozte filament do extruderu 3. Potvrdte tlacitkem.";
const char MSG_FILAMENT_LOADING_T2_IT[] PROGMEM = "Inserire filamento nell'estrusore 3. Click per continuare.";
const char MSG_FILAMENT_LOADING_T2_ES[] PROGMEM = "Insertar filamento en el extrusor 3. Haga clic una vez terminado.";
const char MSG_FILAMENT_LOADING_T2_PL[] PROGMEM = "Wloz filament do ekstrudera 3. Potwierdz przyciskiem.";
@ -927,7 +933,7 @@ const char * const MSG_FILAMENT_LOADING_T2_LANG_TABLE[LANG_NUM] PROGMEM = {
};
const char MSG_FILAMENT_LOADING_T3_EN[] PROGMEM = "Insert filament into extruder 4. Click when done.";
const char MSG_FILAMENT_LOADING_T3_CZ[] PROGMEM = "Vlo\x9Ete filament do extruderu 4. Potvrdte tlacitkem.";
const char MSG_FILAMENT_LOADING_T3_CZ[] PROGMEM = "Vlozte filament do extruderu 4. Potvrdte tlacitkem.";
const char MSG_FILAMENT_LOADING_T3_IT[] PROGMEM = "Inserire filamento nell'estrusore 4. Click per continuare.";
const char MSG_FILAMENT_LOADING_T3_ES[] PROGMEM = "Insertar filamento en el extrusor 4. Haga clic una vez terminado.";
const char MSG_FILAMENT_LOADING_T3_PL[] PROGMEM = "Wloz filament do ekstrudera 4. Potwierdz przyciskiem.";
@ -956,7 +962,7 @@ const char MSG_FIL_ADJUSTING_CZ[] PROGMEM = "Probiha srovnani filamentu. Prosim
const char MSG_FIL_ADJUSTING_IT[] PROGMEM = "Filamento in fase di regolazione. Attendere prego.";
const char MSG_FIL_ADJUSTING_ES[] PROGMEM = "Ajustando filamentos. Esperar por favor.";
const char MSG_FIL_ADJUSTING_PL[] PROGMEM = "Przebiega wyrownanie filamentow. Prosze czekac.";
const char MSG_FIL_ADJUSTING_DE[] PROGMEM = "Einstellen Filament. Bitte warten.";
const char MSG_FIL_ADJUSTING_DE[] PROGMEM = "Filament positionieren. Bitte warten.";
const char * const MSG_FIL_ADJUSTING_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_FIL_ADJUSTING_EN,
MSG_FIL_ADJUSTING_CZ,
@ -1080,7 +1086,7 @@ const char MSG_HEATING_CZ[] PROGMEM = "Zahrivani";
const char MSG_HEATING_IT[] PROGMEM = "Riscaldamento...";
const char MSG_HEATING_ES[] PROGMEM = "Calentando...";
const char MSG_HEATING_PL[] PROGMEM = "Grzanie...";
const char MSG_HEATING_DE[] PROGMEM = "Erwaermen";
const char MSG_HEATING_DE[] PROGMEM = "Aufwaermen";
const char * const MSG_HEATING_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_HEATING_EN,
MSG_HEATING_CZ,
@ -1095,7 +1101,7 @@ const char MSG_HEATING_COMPLETE_CZ[] PROGMEM = "Zahrivani OK.";
const char MSG_HEATING_COMPLETE_IT[] PROGMEM = "Riscald. completo";
const char MSG_HEATING_COMPLETE_ES[] PROGMEM = "Calentamiento final.";
const char MSG_HEATING_COMPLETE_PL[] PROGMEM = "Grzanie OK.";
const char MSG_HEATING_COMPLETE_DE[] PROGMEM = "Erwaermen OK";
const char MSG_HEATING_COMPLETE_DE[] PROGMEM = "Aufwaermen OK";
const char * const MSG_HEATING_COMPLETE_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_HEATING_COMPLETE_EN,
MSG_HEATING_COMPLETE_CZ,
@ -1213,13 +1219,14 @@ const char * const MSG_INVALID_EXTRUDER_LANG_TABLE[1] PROGMEM = {
const char MSG_KILLED_EN[] PROGMEM = "KILLED. ";
const char MSG_KILLED_IT[] PROGMEM = "IN TILT.";
const char MSG_KILLED_ES[] PROGMEM = "PARADA DE EMERGENCIA";
const char MSG_KILLED_DE[] PROGMEM = "ABGEBROCHEN. ";
const char * const MSG_KILLED_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_KILLED_EN,
MSG_KILLED_EN,
MSG_KILLED_IT,
MSG_KILLED_ES,
MSG_KILLED_EN,
MSG_KILLED_EN
MSG_KILLED_DE
};
const char MSG_LANGUAGE_NAME_EN[] PROGMEM = "English";
@ -1272,7 +1279,7 @@ const char MSG_LOADING_FILAMENT_CZ[] PROGMEM = "Zavadeni filamentu";
const char MSG_LOADING_FILAMENT_IT[] PROGMEM = "Caricando filam.";
const char MSG_LOADING_FILAMENT_ES[] PROGMEM = "Introduciendo filam.";
const char MSG_LOADING_FILAMENT_PL[] PROGMEM = "Wprow. filamentu";
const char MSG_LOADING_FILAMENT_DE[] PROGMEM = "Filament-Eifuehrung";
const char MSG_LOADING_FILAMENT_DE[] PROGMEM = "Filament leadt";
const char * const MSG_LOADING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_LOADING_FILAMENT_EN,
MSG_LOADING_FILAMENT_CZ,
@ -1284,13 +1291,17 @@ const char * const MSG_LOADING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_LOAD_ALL_EN[] PROGMEM = "Load all";
const char MSG_LOAD_ALL_CZ[] PROGMEM = "Zavest vse";
const char MSG_LOAD_ALL_IT[] PROGMEM = "Caricare tutti";
const char MSG_LOAD_ALL_ES[] PROGMEM = "Intr. todos fil.";
const char MSG_LOAD_ALL_PL[] PROGMEM = "Zalad. wszystkie";
const char MSG_LOAD_ALL_DE[] PROGMEM = "Alle laden";
const char * const MSG_LOAD_ALL_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_LOAD_ALL_EN,
MSG_LOAD_ALL_CZ,
MSG_LOAD_ALL_EN,
MSG_LOAD_ALL_EN,
MSG_LOAD_ALL_EN,
MSG_LOAD_ALL_EN
MSG_LOAD_ALL_IT,
MSG_LOAD_ALL_ES,
MSG_LOAD_ALL_PL,
MSG_LOAD_ALL_DE
};
const char MSG_LOAD_EPROM_EN[] PROGMEM = "Load memory";
@ -1303,7 +1314,7 @@ const char MSG_LOAD_FILAMENT_CZ[] PROGMEM = "Zavest filament";
const char MSG_LOAD_FILAMENT_IT[] PROGMEM = "Carica filamento";
const char MSG_LOAD_FILAMENT_ES[] PROGMEM = "Introducir filam.";
const char MSG_LOAD_FILAMENT_PL[] PROGMEM = "Wprowadz filament";
const char MSG_LOAD_FILAMENT_DE[] PROGMEM = "Lege Filament ein";
const char MSG_LOAD_FILAMENT_DE[] PROGMEM = "Filament laden";
const char * const MSG_LOAD_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_LOAD_FILAMENT_EN,
MSG_LOAD_FILAMENT_CZ,
@ -1315,46 +1326,62 @@ const char * const MSG_LOAD_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_LOAD_FILAMENT_1_EN[] PROGMEM = "Load filament 1";
const char MSG_LOAD_FILAMENT_1_CZ[] PROGMEM = "Zavest filament 1";
const char MSG_LOAD_FILAMENT_1_IT[] PROGMEM = "Caricare fil. 1";
const char MSG_LOAD_FILAMENT_1_ES[] PROGMEM = "Introducir fil. 1";
const char MSG_LOAD_FILAMENT_1_PL[] PROGMEM = "Zaladowac fil. 1";
const char MSG_LOAD_FILAMENT_1_DE[] PROGMEM = "Filament 1 laden";
const char * const MSG_LOAD_FILAMENT_1_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_LOAD_FILAMENT_1_EN,
MSG_LOAD_FILAMENT_1_CZ,
MSG_LOAD_FILAMENT_1_EN,
MSG_LOAD_FILAMENT_1_EN,
MSG_LOAD_FILAMENT_1_EN,
MSG_LOAD_FILAMENT_1_EN
MSG_LOAD_FILAMENT_1_IT,
MSG_LOAD_FILAMENT_1_ES,
MSG_LOAD_FILAMENT_1_PL,
MSG_LOAD_FILAMENT_1_DE
};
const char MSG_LOAD_FILAMENT_2_EN[] PROGMEM = "Load filament 2";
const char MSG_LOAD_FILAMENT_2_CZ[] PROGMEM = "Zavest filament 2";
const char MSG_LOAD_FILAMENT_2_IT[] PROGMEM = "Caricare fil. 2";
const char MSG_LOAD_FILAMENT_2_ES[] PROGMEM = "Introducir fil. 2";
const char MSG_LOAD_FILAMENT_2_PL[] PROGMEM = "Zaladowac fil. 2";
const char MSG_LOAD_FILAMENT_2_DE[] PROGMEM = "Filament 2 laden";
const char * const MSG_LOAD_FILAMENT_2_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_LOAD_FILAMENT_2_EN,
MSG_LOAD_FILAMENT_2_CZ,
MSG_LOAD_FILAMENT_2_EN,
MSG_LOAD_FILAMENT_2_EN,
MSG_LOAD_FILAMENT_2_EN,
MSG_LOAD_FILAMENT_2_EN
MSG_LOAD_FILAMENT_2_IT,
MSG_LOAD_FILAMENT_2_ES,
MSG_LOAD_FILAMENT_2_PL,
MSG_LOAD_FILAMENT_2_DE
};
const char MSG_LOAD_FILAMENT_3_EN[] PROGMEM = "Load filament 3";
const char MSG_LOAD_FILAMENT_3_CZ[] PROGMEM = "Zavest filament 3";
const char MSG_LOAD_FILAMENT_3_IT[] PROGMEM = "Caricare fil. 3";
const char MSG_LOAD_FILAMENT_3_ES[] PROGMEM = "Introducir fil. 3";
const char MSG_LOAD_FILAMENT_3_PL[] PROGMEM = "Zaladowac fil. 3";
const char MSG_LOAD_FILAMENT_3_DE[] PROGMEM = "Filament 3 laden";
const char * const MSG_LOAD_FILAMENT_3_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_LOAD_FILAMENT_3_EN,
MSG_LOAD_FILAMENT_3_CZ,
MSG_LOAD_FILAMENT_3_EN,
MSG_LOAD_FILAMENT_3_EN,
MSG_LOAD_FILAMENT_3_EN,
MSG_LOAD_FILAMENT_3_EN
MSG_LOAD_FILAMENT_3_IT,
MSG_LOAD_FILAMENT_3_ES,
MSG_LOAD_FILAMENT_3_PL,
MSG_LOAD_FILAMENT_3_DE
};
const char MSG_LOAD_FILAMENT_4_EN[] PROGMEM = "Load filament 4";
const char MSG_LOAD_FILAMENT_4_CZ[] PROGMEM = "Zavest filament 4";
const char MSG_LOAD_FILAMENT_4_IT[] PROGMEM = "Caricare fil. 4";
const char MSG_LOAD_FILAMENT_4_ES[] PROGMEM = "Introducir fil. 4";
const char MSG_LOAD_FILAMENT_4_PL[] PROGMEM = "Zaladowac fil. 4";
const char MSG_LOAD_FILAMENT_4_DE[] PROGMEM = "Filament 4 laden";
const char * const MSG_LOAD_FILAMENT_4_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_LOAD_FILAMENT_4_EN,
MSG_LOAD_FILAMENT_4_CZ,
MSG_LOAD_FILAMENT_4_EN,
MSG_LOAD_FILAMENT_4_EN,
MSG_LOAD_FILAMENT_4_EN,
MSG_LOAD_FILAMENT_4_EN
MSG_LOAD_FILAMENT_4_IT,
MSG_LOAD_FILAMENT_4_ES,
MSG_LOAD_FILAMENT_4_PL,
MSG_LOAD_FILAMENT_4_DE
};
const char MSG_LOOSE_PULLEY_EN[] PROGMEM = "Loose pulley";
@ -1362,7 +1389,7 @@ const char MSG_LOOSE_PULLEY_CZ[] PROGMEM = "Uvolnena remenicka";
const char MSG_LOOSE_PULLEY_IT[] PROGMEM = "Puleggia lenta";
const char MSG_LOOSE_PULLEY_ES[] PROGMEM = "Polea suelta";
const char MSG_LOOSE_PULLEY_PL[] PROGMEM = "Kolo pasowe";
const char MSG_LOOSE_PULLEY_DE[] PROGMEM = "Lose Riemenschei.";
const char MSG_LOOSE_PULLEY_DE[] PROGMEM = "Lose Riemenscheibe";
const char * const MSG_LOOSE_PULLEY_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_LOOSE_PULLEY_EN,
MSG_LOOSE_PULLEY_CZ,
@ -1432,7 +1459,7 @@ const char MSG_MARK_FIL_CZ[] PROGMEM = "Oznacte filament 100 mm od tela extruder
const char MSG_MARK_FIL_IT[] PROGMEM = "Segnare il filamento a 100 mm di distanza dal corpo dell'estrusore. Click per continuare.";
const char MSG_MARK_FIL_ES[] PROGMEM = "Marque el filamento 100 mm por encima del final del extrusor. Hacer clic una vez terminado.";
const char MSG_MARK_FIL_PL[] PROGMEM = "Prosze oznaczyc filament 100 mm od ciala ekstrudera. Potwierdzic przyciskiem.";
const char MSG_MARK_FIL_DE[] PROGMEM = "Markier Filament 100mm vom Extrudergehaeuse. Klicken wenn Fertig.";
const char MSG_MARK_FIL_DE[] PROGMEM = "Filament 100mm vom Extrudergehaeuse markieren. Klicken wenn Fertig.";
const char * const MSG_MARK_FIL_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_MARK_FIL_EN,
MSG_MARK_FIL_CZ,
@ -1533,7 +1560,7 @@ const char MSG_MOVE_AXIS_CZ[] PROGMEM = "Posunout osu";
const char MSG_MOVE_AXIS_IT[] PROGMEM = "Muovi asse";
const char MSG_MOVE_AXIS_ES[] PROGMEM = "Mover ejes";
const char MSG_MOVE_AXIS_PL[] PROGMEM = "Ruch osi";
const char MSG_MOVE_AXIS_DE[] PROGMEM = "Bewege Achse";
const char MSG_MOVE_AXIS_DE[] PROGMEM = "Achsbewegung";
const char * const MSG_MOVE_AXIS_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_MOVE_AXIS_EN,
MSG_MOVE_AXIS_CZ,
@ -1548,7 +1575,7 @@ const char MSG_MOVE_CARRIAGE_TO_THE_TOP_CZ[] PROGMEM = "Kalibrace XYZ. Otacenim
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_IT[] PROGMEM = "Calibrazione XYZ. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_ES[] PROGMEM = "Calibrando XYZ. Gira el boton para subir el carro Z hasta golpe piezas superioras. Despues haz clic.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_PL[] PROGMEM = "Kalibracja XYZ. Przekrec galke, aby przesunac os Z do gornych krancowek. Nacisnij, by potwierdzic.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_DE[] PROGMEM = "Kalibrieren von XYZ. Drehen Sie den Knopf, um den Z-Schlitten bis zum Anschlag zu bewegen. Klicken wenn fertig.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_DE[] PROGMEM = "Kalibrieren von XYZ. Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Klicken wenn ganz oben.";
const char * const MSG_MOVE_CARRIAGE_TO_THE_TOP_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_MOVE_CARRIAGE_TO_THE_TOP_EN,
MSG_MOVE_CARRIAGE_TO_THE_TOP_CZ,
@ -1563,7 +1590,7 @@ const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_CZ[] PROGMEM = "Kalibrace Z. Otacenim
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_IT[] PROGMEM = "Calibrazione Z. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_ES[] PROGMEM = "Calibrando Z. Gira el boton para subir el carro Z hasta golpe piezas superioras. Despues haz clic.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_PL[] PROGMEM = "Kalibracja Z. Przekrec galke, aby przesunac os Z do gornych krancowek. Nacisnij, by potwierdzic.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_DE[] PROGMEM = "Kalibrieren von Z. Drehen Sie den Knopf, um den Z-Schlitten bis zum Anschlag zu bewegen. Klicken wenn fertig.";
const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_DE[] PROGMEM = "Kalibrieren von Z. Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Klicken wenn ganz oben.";
const char * const MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_EN,
MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_CZ,
@ -1678,7 +1705,7 @@ const char MSG_NOT_COLOR_CZ[] PROGMEM = "Barva neni cista";
const char MSG_NOT_COLOR_IT[] PROGMEM = "Colore non puro";
const char MSG_NOT_COLOR_ES[] PROGMEM = "Color no homogeneo";
const char MSG_NOT_COLOR_PL[] PROGMEM = "Kolor zanieczysz.";
const char MSG_NOT_COLOR_DE[] PROGMEM = "Farbe nicht klar";
const char MSG_NOT_COLOR_DE[] PROGMEM = "Farbe unklar";
const char * const MSG_NOT_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_NOT_COLOR_EN,
MSG_NOT_COLOR_CZ,
@ -1693,7 +1720,7 @@ const char MSG_NOT_LOADED_CZ[] PROGMEM = "Filament nezaveden";
const char MSG_NOT_LOADED_IT[] PROGMEM = "Fil. non caricato";
const char MSG_NOT_LOADED_ES[] PROGMEM = "Fil. no introducido";
const char MSG_NOT_LOADED_PL[] PROGMEM = "Brak filamentu";
const char MSG_NOT_LOADED_DE[] PROGMEM = "Filam. nicht geladen";
const char MSG_NOT_LOADED_DE[] PROGMEM = "Fil. nicht geladen";
const char * const MSG_NOT_LOADED_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_NOT_LOADED_EN,
MSG_NOT_LOADED_CZ,
@ -1776,7 +1803,7 @@ const char MSG_PAPER_CZ[] PROGMEM = "Umistete list papiru na podlozku a udrzujte
const char MSG_PAPER_IT[] PROGMEM = "Porre un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere prontamente la stampante.";
const char MSG_PAPER_ES[] PROGMEM = "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.";
const char MSG_PAPER_PL[] PROGMEM = "Umiesc kartke papieru na podkladce i trzymaj pod dysza podczas pomiaru pierwszych 4 punktow. Jesli dysza zahaczy o papier, wylacz drukarke.";
const char MSG_PAPER_DE[] PROGMEM = "Legen ein Blatt Papier unter die Duese waehrend der Kalibrierung der ersten 4 Punkte. Wenn die Duese das Papier einfaengt, Drucker sofort ausschalten";
const char MSG_PAPER_DE[] PROGMEM = "Legen ein Blatt Papier unter die Duese waehrend der Kalibrierung der ersten 4 Punkte. Wenn die Duese das Papier einklemmt, Drucker sofort ausschalten";
const char * const MSG_PAPER_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_PAPER_EN,
MSG_PAPER_CZ,
@ -1791,7 +1818,7 @@ const char MSG_PAUSE_PRINT_CZ[] PROGMEM = "Pozastavit tisk";
const char MSG_PAUSE_PRINT_IT[] PROGMEM = "Metti in pausa";
const char MSG_PAUSE_PRINT_ES[] PROGMEM = "Pausar impresion";
const char MSG_PAUSE_PRINT_PL[] PROGMEM = "Przerwac druk";
const char MSG_PAUSE_PRINT_DE[] PROGMEM = "Druck aussetzen";
const char MSG_PAUSE_PRINT_DE[] PROGMEM = "Druck unterbrech.";
const char * const MSG_PAUSE_PRINT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_PAUSE_PRINT_EN,
MSG_PAUSE_PRINT_CZ,
@ -1940,7 +1967,7 @@ const char MSG_PREHEAT_NOZZLE_CZ[] PROGMEM = "Predehrejte trysku!";
const char MSG_PREHEAT_NOZZLE_IT[] PROGMEM = "Preris. ugello!";
const char MSG_PREHEAT_NOZZLE_ES[] PROGMEM = "Precalentar extrusor";
const char MSG_PREHEAT_NOZZLE_PL[] PROGMEM = "Nagrzej dysze!";
const char MSG_PREHEAT_NOZZLE_DE[] PROGMEM = "Worwaermen Duese";
const char MSG_PREHEAT_NOZZLE_DE[] PROGMEM = "Duese Vorwaermen";
const char * const MSG_PREHEAT_NOZZLE_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_PREHEAT_NOZZLE_EN,
MSG_PREHEAT_NOZZLE_CZ,
@ -1950,6 +1977,21 @@ const char * const MSG_PREHEAT_NOZZLE_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_PREHEAT_NOZZLE_DE
};
const char MSG_PREPARE_FILAMENT_EN[] PROGMEM = "Prepare new filament";
const char MSG_PREPARE_FILAMENT_CZ[] PROGMEM = "Pripravte filament";
const char MSG_PREPARE_FILAMENT_IT[] PROGMEM = "Preparare filamento";
const char MSG_PREPARE_FILAMENT_ES[] PROGMEM = "Preparar filamento";
const char MSG_PREPARE_FILAMENT_PL[] PROGMEM = "Przygotuj filament";
const char MSG_PREPARE_FILAMENT_DE[] PROGMEM = "Filam. bereithalten";
const char * const MSG_PREPARE_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_PREPARE_FILAMENT_EN,
MSG_PREPARE_FILAMENT_CZ,
MSG_PREPARE_FILAMENT_IT,
MSG_PREPARE_FILAMENT_ES,
MSG_PREPARE_FILAMENT_PL,
MSG_PREPARE_FILAMENT_DE
};
const char MSG_PRESS_EN[] PROGMEM = "and press the knob";
const char MSG_PRESS_CZ[] PROGMEM = "a stisknete tlacitko";
const char MSG_PRESS_IT[] PROGMEM = "e cliccare manopola";
@ -2041,7 +2083,7 @@ const char MSG_REBOOT_CZ[] PROGMEM = "Restartujte tiskarnu";
const char MSG_REBOOT_IT[] PROGMEM = "Riavvia stampante";
const char MSG_REBOOT_ES[] PROGMEM = "Reiniciar impresora";
const char MSG_REBOOT_PL[] PROGMEM = "Restart drukarki";
const char MSG_REBOOT_DE[] PROGMEM = "Reboot den Printer";
const char MSG_REBOOT_DE[] PROGMEM = "Zum Uebernehmen ";
const char * const MSG_REBOOT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_REBOOT_EN,
MSG_REBOOT_CZ,
@ -2286,7 +2328,7 @@ const char MSG_SELFTEST_CHECK_ENDSTOPS_CZ[] PROGMEM = "Kontrola endstops";
const char MSG_SELFTEST_CHECK_ENDSTOPS_IT[] PROGMEM = "Verifica finecorsa";
const char MSG_SELFTEST_CHECK_ENDSTOPS_ES[] PROGMEM = "Cont. topes final";
const char MSG_SELFTEST_CHECK_ENDSTOPS_PL[] PROGMEM = "Kontrola endstops";
const char MSG_SELFTEST_CHECK_ENDSTOPS_DE[] PROGMEM = "Pr\x81fe endstops ";
const char MSG_SELFTEST_CHECK_ENDSTOPS_DE[] PROGMEM = "Pruefe Endschalter ";
const char * const MSG_SELFTEST_CHECK_ENDSTOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_CHECK_ENDSTOPS_EN,
MSG_SELFTEST_CHECK_ENDSTOPS_CZ,
@ -2301,7 +2343,7 @@ const char MSG_SELFTEST_CHECK_HOTEND_CZ[] PROGMEM = "Kontrola hotend ";
const char MSG_SELFTEST_CHECK_HOTEND_IT[] PROGMEM = "Verifica ugello";
const char MSG_SELFTEST_CHECK_HOTEND_ES[] PROGMEM = "Control hotend ";
const char MSG_SELFTEST_CHECK_HOTEND_PL[] PROGMEM = "Kontrola hotend ";
const char MSG_SELFTEST_CHECK_HOTEND_DE[] PROGMEM = "Pr\x81fe hotend ";
const char MSG_SELFTEST_CHECK_HOTEND_DE[] PROGMEM = "Pruefe Hotend";
const char * const MSG_SELFTEST_CHECK_HOTEND_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_CHECK_HOTEND_EN,
MSG_SELFTEST_CHECK_HOTEND_CZ,
@ -2316,7 +2358,7 @@ const char MSG_SELFTEST_CHECK_X_CZ[] PROGMEM = "Kontrola X axis ";
const char MSG_SELFTEST_CHECK_X_IT[] PROGMEM = "Verifica asse X";
const char MSG_SELFTEST_CHECK_X_ES[] PROGMEM = "Control del eje X";
const char MSG_SELFTEST_CHECK_X_PL[] PROGMEM = "Kontrola X axis ";
const char MSG_SELFTEST_CHECK_X_DE[] PROGMEM = "Pr\x81fe X Achse ";
const char MSG_SELFTEST_CHECK_X_DE[] PROGMEM = "Pruefe X Achse ";
const char * const MSG_SELFTEST_CHECK_X_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_CHECK_X_EN,
MSG_SELFTEST_CHECK_X_CZ,
@ -2331,7 +2373,7 @@ const char MSG_SELFTEST_CHECK_Y_CZ[] PROGMEM = "Kontrola Y axis ";
const char MSG_SELFTEST_CHECK_Y_IT[] PROGMEM = "Verifica asse Y";
const char MSG_SELFTEST_CHECK_Y_ES[] PROGMEM = "Control del eje Y";
const char MSG_SELFTEST_CHECK_Y_PL[] PROGMEM = "Kontrola Y axis ";
const char MSG_SELFTEST_CHECK_Y_DE[] PROGMEM = "Pr\x81fe Y Achse ";
const char MSG_SELFTEST_CHECK_Y_DE[] PROGMEM = "Pruefe Y Achse ";
const char * const MSG_SELFTEST_CHECK_Y_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_CHECK_Y_EN,
MSG_SELFTEST_CHECK_Y_CZ,
@ -2346,7 +2388,7 @@ const char MSG_SELFTEST_CHECK_Z_CZ[] PROGMEM = "Kontrola Z axis ";
const char MSG_SELFTEST_CHECK_Z_IT[] PROGMEM = "Verifica asse Z";
const char MSG_SELFTEST_CHECK_Z_ES[] PROGMEM = "Control del eje Z";
const char MSG_SELFTEST_CHECK_Z_PL[] PROGMEM = "Kontrola Z axis ";
const char MSG_SELFTEST_CHECK_Z_DE[] PROGMEM = "Pr\x81fe Z Achse ";
const char MSG_SELFTEST_CHECK_Z_DE[] PROGMEM = "Pruefe Z Achse ";
const char * const MSG_SELFTEST_CHECK_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_CHECK_Z_EN,
MSG_SELFTEST_CHECK_Z_CZ,
@ -2361,7 +2403,7 @@ const char MSG_SELFTEST_COOLING_FAN_CZ[] PROGMEM = "Predni tiskovy vent?";;
const char MSG_SELFTEST_COOLING_FAN_IT[] PROGMEM = "Vent di stampa ant.?";;
const char MSG_SELFTEST_COOLING_FAN_ES[] PROGMEM = "Vent. al frente?";;
const char MSG_SELFTEST_COOLING_FAN_PL[] PROGMEM = "Przodni went. druku?";;
const char MSG_SELFTEST_COOLING_FAN_DE[] PROGMEM = "Vord. Frontluefter?";
const char MSG_SELFTEST_COOLING_FAN_DE[] PROGMEM = "Vorderer Luefter?";
const char * const MSG_SELFTEST_COOLING_FAN_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_COOLING_FAN_EN,
MSG_SELFTEST_COOLING_FAN_CZ,
@ -2386,19 +2428,20 @@ const char * const MSG_SELFTEST_ENDSTOP_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_SELFTEST_ENDSTOPS_EN[] PROGMEM = "Endstops";
const char MSG_SELFTEST_ENDSTOPS_IT[] PROGMEM = "Finecorsa (2)";
const char MSG_SELFTEST_ENDSTOPS_ES[] PROGMEM = "Topes final";
const char MSG_SELFTEST_ENDSTOPS_DE[] PROGMEM = "Endschalter";
const char * const MSG_SELFTEST_ENDSTOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_ENDSTOPS_EN,
MSG_SELFTEST_ENDSTOPS_EN,
MSG_SELFTEST_ENDSTOPS_IT,
MSG_SELFTEST_ENDSTOPS_ES,
MSG_SELFTEST_ENDSTOPS_EN,
MSG_SELFTEST_ENDSTOPS_EN
MSG_SELFTEST_ENDSTOPS_DE
};
const char MSG_SELFTEST_ENDSTOP_NOTHIT_EN[] PROGMEM = "Endstop not hit";
const char MSG_SELFTEST_ENDSTOP_NOTHIT_IT[] PROGMEM = "Finec. fuori por.";
const char MSG_SELFTEST_ENDSTOP_NOTHIT_ES[] PROGMEM = "Tope fin. no toc.";
const char MSG_SELFTEST_ENDSTOP_NOTHIT_DE[] PROGMEM = "End nicht getrof.";
const char MSG_SELFTEST_ENDSTOP_NOTHIT_DE[] PROGMEM = "Ende nicht getrof.";
const char * const MSG_SELFTEST_ENDSTOP_NOTHIT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_ENDSTOP_NOTHIT_EN,
MSG_SELFTEST_ENDSTOP_NOTHIT_EN,
@ -2426,7 +2469,7 @@ const char MSG_SELFTEST_EXTRUDER_FAN_CZ[] PROGMEM = "Levy vent na trysce?";;
const char MSG_SELFTEST_EXTRUDER_FAN_IT[] PROGMEM = "Vent SX sull'ugello?";;
const char MSG_SELFTEST_EXTRUDER_FAN_ES[] PROGMEM = "Vent. en la izg?";;
const char MSG_SELFTEST_EXTRUDER_FAN_PL[] PROGMEM = "Lewy went na dysze?";;
const char MSG_SELFTEST_EXTRUDER_FAN_DE[] PROGMEM = "Link. Hotendluefter?";
const char MSG_SELFTEST_EXTRUDER_FAN_DE[] PROGMEM = "Linker Luefter?";
const char * const MSG_SELFTEST_EXTRUDER_FAN_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_EXTRUDER_FAN_EN,
MSG_SELFTEST_EXTRUDER_FAN_CZ,
@ -2441,7 +2484,7 @@ const char MSG_SELFTEST_FAILED_CZ[] PROGMEM = "Selftest selhal ";
const char MSG_SELFTEST_FAILED_IT[] PROGMEM = "Autotest fallito";
const char MSG_SELFTEST_FAILED_ES[] PROGMEM = "Autotest fallado";
const char MSG_SELFTEST_FAILED_PL[] PROGMEM = "Selftest nieudany";
const char MSG_SELFTEST_FAILED_DE[] PROGMEM = "Selbtest fehlgeschlg";
const char MSG_SELFTEST_FAILED_DE[] PROGMEM = "Selbsttest misslung.";
const char * const MSG_SELFTEST_FAILED_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SELFTEST_FAILED_EN,
MSG_SELFTEST_FAILED_CZ,
@ -2640,7 +2683,7 @@ 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_ES[] PROGMEM = "Ensena tope final";
const char MSG_SHOW_END_STOPS_PL[] PROGMEM = "Pokaz krancowki";
const char MSG_SHOW_END_STOPS_DE[] PROGMEM = "Anzeigen endstops";
const char MSG_SHOW_END_STOPS_DE[] PROGMEM = "Endschalter Stat.";
const char * const MSG_SHOW_END_STOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_SHOW_END_STOPS_EN,
MSG_SHOW_END_STOPS_CZ,
@ -2755,7 +2798,7 @@ const char MSG_STATS_TOTALFILAMENT_CZ[] PROGMEM = "Filament celkem :";
const char MSG_STATS_TOTALFILAMENT_IT[] PROGMEM = "Filamento tot:";
const char MSG_STATS_TOTALFILAMENT_ES[] PROGMEM = "Filamento total:";
const char MSG_STATS_TOTALFILAMENT_PL[] PROGMEM = "Filament lacznie :";
const char MSG_STATS_TOTALFILAMENT_DE[] PROGMEM = "Totales Filament:";
const char MSG_STATS_TOTALFILAMENT_DE[] PROGMEM = "Gesamtfilament:";
const char * const MSG_STATS_TOTALFILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_STATS_TOTALFILAMENT_EN,
MSG_STATS_TOTALFILAMENT_CZ,
@ -2803,7 +2846,7 @@ const char MSG_STOP_PRINT_CZ[] PROGMEM = "Zastavit tisk";
const char MSG_STOP_PRINT_IT[] PROGMEM = "Arresta stampa";
const char MSG_STOP_PRINT_ES[] PROGMEM = "Detener impresion";
const char MSG_STOP_PRINT_PL[] PROGMEM = "Zatrzymac druk";
const char MSG_STOP_PRINT_DE[] PROGMEM = "Druck halten";
const char MSG_STOP_PRINT_DE[] PROGMEM = "Druck abbrechen";
const char * const MSG_STOP_PRINT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_STOP_PRINT_EN,
MSG_STOP_PRINT_CZ,
@ -2862,7 +2905,7 @@ const char MSG_TAKE_EFFECT_CZ[] PROGMEM = " pro projeveni zmen";
const char MSG_TAKE_EFFECT_IT[] PROGMEM = " per attualizzare";
const char MSG_TAKE_EFFECT_ES[] PROGMEM = " para aplicar cambios";
const char MSG_TAKE_EFFECT_PL[] PROGMEM = " wprow. zmian";
const char MSG_TAKE_EFFECT_DE[] PROGMEM = " um wirksam zu sein";
const char MSG_TAKE_EFFECT_DE[] PROGMEM = "Drucker neu starten";
const char * const MSG_TAKE_EFFECT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_TAKE_EFFECT_EN,
MSG_TAKE_EFFECT_CZ,
@ -2949,24 +2992,26 @@ const char * const MSG_TEMP_CALIBRATION_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN[] PROGMEM = "SD card [normal]";
const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_PL[] PROGMEM = "karta SD [normal]";
const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_DE[] PROGMEM = "SD Karte [normal]";
const char * const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN,
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN,
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN,
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN,
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_PL,
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_DE
};
const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN[] PROGMEM = "SD card [FlshAir]";
const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_PL[] PROGMEM = "karta SD[FlshAir]";
const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_DE[] PROGMEM = "SD Karte [FlashAir]";
const char * const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN,
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN,
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN,
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN,
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_PL,
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN
MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_DE
};
const char MSG_TUNE_EN[] PROGMEM = "Tune";
@ -2974,7 +3019,7 @@ const char MSG_TUNE_CZ[] PROGMEM = "Ladit";
const char MSG_TUNE_IT[] PROGMEM = "Regola";
const char MSG_TUNE_ES[] PROGMEM = "Ajustar";
const char MSG_TUNE_PL[] PROGMEM = "Nastroic";
const char MSG_TUNE_DE[] PROGMEM = "Feineinstellen";
const char MSG_TUNE_DE[] PROGMEM = "Feineinstellung";
const char * const MSG_TUNE_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_TUNE_EN,
MSG_TUNE_CZ,
@ -2994,7 +3039,7 @@ const char MSG_UNLOADING_FILAMENT_CZ[] PROGMEM = "Vysouvam filament";
const char MSG_UNLOADING_FILAMENT_IT[] PROGMEM = "Rilasc. filamento";
const char MSG_UNLOADING_FILAMENT_ES[] PROGMEM = "Soltando filamento";
const char MSG_UNLOADING_FILAMENT_PL[] PROGMEM = "Wysuwam filament";
const char MSG_UNLOADING_FILAMENT_DE[] PROGMEM = "Filam. auswerfen";
const char MSG_UNLOADING_FILAMENT_DE[] PROGMEM = "Filament auswerfen";
const char * const MSG_UNLOADING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_UNLOADING_FILAMENT_EN,
MSG_UNLOADING_FILAMENT_CZ,
@ -3006,13 +3051,17 @@ const char * const MSG_UNLOADING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
const char MSG_UNLOAD_ALL_EN[] PROGMEM = "Unload all";
const char MSG_UNLOAD_ALL_CZ[] PROGMEM = "Vyjmout vse";
const char MSG_UNLOAD_ALL_IT[] PROGMEM = "Rilasciare tutti";
const char MSG_UNLOAD_ALL_ES[] PROGMEM = "Soltar todos fil.";
const char MSG_UNLOAD_ALL_PL[] PROGMEM = "Wyjac wszystkie";
const char MSG_UNLOAD_ALL_DE[] PROGMEM = "Alles entladen";
const char * const MSG_UNLOAD_ALL_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_UNLOAD_ALL_EN,
MSG_UNLOAD_ALL_CZ,
MSG_UNLOAD_ALL_EN,
MSG_UNLOAD_ALL_EN,
MSG_UNLOAD_ALL_EN,
MSG_UNLOAD_ALL_EN
MSG_UNLOAD_ALL_IT,
MSG_UNLOAD_ALL_ES,
MSG_UNLOAD_ALL_PL,
MSG_UNLOAD_ALL_DE
};
const char MSG_UNLOAD_FILAMENT_EN[] PROGMEM = "Unload filament";
@ -3020,7 +3069,7 @@ const char MSG_UNLOAD_FILAMENT_CZ[] PROGMEM = "Vyjmout filament";
const char MSG_UNLOAD_FILAMENT_IT[] PROGMEM = "Scarica filamento";
const char MSG_UNLOAD_FILAMENT_ES[] PROGMEM = "Soltar filamento";
const char MSG_UNLOAD_FILAMENT_PL[] PROGMEM = "Wyjac filament";
const char MSG_UNLOAD_FILAMENT_DE[] PROGMEM = "Entnehm filament";
const char MSG_UNLOAD_FILAMENT_DE[] PROGMEM = "Filament entladen";
const char * const MSG_UNLOAD_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_UNLOAD_FILAMENT_EN,
MSG_UNLOAD_FILAMENT_CZ,
@ -3031,47 +3080,63 @@ const char * const MSG_UNLOAD_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
};
const char MSG_UNLOAD_FILAMENT_1_EN[] PROGMEM = "Unload filament 1";
const char MSG_UNLOAD_FILAMENT_1_CZ[] PROGMEM = "Vyjmout filament 1";
const char MSG_UNLOAD_FILAMENT_1_CZ[] PROGMEM = "Vyjmout filam. 1";
const char MSG_UNLOAD_FILAMENT_1_IT[] PROGMEM = "Rilasciare fil. 1";
const char MSG_UNLOAD_FILAMENT_1_ES[] PROGMEM = "Soltar fil. 1";
const char MSG_UNLOAD_FILAMENT_1_PL[] PROGMEM = "Wyjac filament 1";
const char MSG_UNLOAD_FILAMENT_1_DE[] PROGMEM = "Filam. 1 entladen";
const char * const MSG_UNLOAD_FILAMENT_1_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_UNLOAD_FILAMENT_1_EN,
MSG_UNLOAD_FILAMENT_1_CZ,
MSG_UNLOAD_FILAMENT_1_EN,
MSG_UNLOAD_FILAMENT_1_EN,
MSG_UNLOAD_FILAMENT_1_EN,
MSG_UNLOAD_FILAMENT_1_EN
MSG_UNLOAD_FILAMENT_1_IT,
MSG_UNLOAD_FILAMENT_1_ES,
MSG_UNLOAD_FILAMENT_1_PL,
MSG_UNLOAD_FILAMENT_1_DE
};
const char MSG_UNLOAD_FILAMENT_2_EN[] PROGMEM = "Unload filament 2";
const char MSG_UNLOAD_FILAMENT_2_CZ[] PROGMEM = "Vyjmout filament 2";
const char MSG_UNLOAD_FILAMENT_2_CZ[] PROGMEM = "Vyjmout filam. 2";
const char MSG_UNLOAD_FILAMENT_2_IT[] PROGMEM = "Rilasciare fil. 1";
const char MSG_UNLOAD_FILAMENT_2_ES[] PROGMEM = "Soltar fil. 2";
const char MSG_UNLOAD_FILAMENT_2_PL[] PROGMEM = "Wyjac filament 2";
const char MSG_UNLOAD_FILAMENT_2_DE[] PROGMEM = "Filam. 2 entladen";
const char * const MSG_UNLOAD_FILAMENT_2_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_UNLOAD_FILAMENT_2_EN,
MSG_UNLOAD_FILAMENT_2_CZ,
MSG_UNLOAD_FILAMENT_2_EN,
MSG_UNLOAD_FILAMENT_2_EN,
MSG_UNLOAD_FILAMENT_2_EN,
MSG_UNLOAD_FILAMENT_2_EN
MSG_UNLOAD_FILAMENT_2_IT,
MSG_UNLOAD_FILAMENT_2_ES,
MSG_UNLOAD_FILAMENT_2_PL,
MSG_UNLOAD_FILAMENT_2_DE
};
const char MSG_UNLOAD_FILAMENT_3_EN[] PROGMEM = "Unload filament 3";
const char MSG_UNLOAD_FILAMENT_3_CZ[] PROGMEM = "Vyjmout filament 3";
const char MSG_UNLOAD_FILAMENT_3_CZ[] PROGMEM = "Vyjmout filam. 3";
const char MSG_UNLOAD_FILAMENT_3_IT[] PROGMEM = "Rilasciare fil. 1";
const char MSG_UNLOAD_FILAMENT_3_ES[] PROGMEM = "Soltar fil. 3";
const char MSG_UNLOAD_FILAMENT_3_PL[] PROGMEM = "Wyjac filament 3";
const char MSG_UNLOAD_FILAMENT_3_DE[] PROGMEM = "Filam. 3 entladen";
const char * const MSG_UNLOAD_FILAMENT_3_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_UNLOAD_FILAMENT_3_EN,
MSG_UNLOAD_FILAMENT_3_CZ,
MSG_UNLOAD_FILAMENT_3_EN,
MSG_UNLOAD_FILAMENT_3_EN,
MSG_UNLOAD_FILAMENT_3_EN,
MSG_UNLOAD_FILAMENT_3_EN
MSG_UNLOAD_FILAMENT_3_IT,
MSG_UNLOAD_FILAMENT_3_ES,
MSG_UNLOAD_FILAMENT_3_PL,
MSG_UNLOAD_FILAMENT_3_DE
};
const char MSG_UNLOAD_FILAMENT_4_EN[] PROGMEM = "Unload filament 4";
const char MSG_UNLOAD_FILAMENT_4_CZ[] PROGMEM = "Vyjmout filament 4";
const char MSG_UNLOAD_FILAMENT_4_CZ[] PROGMEM = "Vyjmout filam. 4";
const char MSG_UNLOAD_FILAMENT_4_IT[] PROGMEM = "Rilasciare fil. 1";
const char MSG_UNLOAD_FILAMENT_4_ES[] PROGMEM = "Soltar fil. 4";
const char MSG_UNLOAD_FILAMENT_4_PL[] PROGMEM = "Wyjac filament 4";
const char MSG_UNLOAD_FILAMENT_4_DE[] PROGMEM = "Filam. 4 entladen";
const char * const MSG_UNLOAD_FILAMENT_4_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_UNLOAD_FILAMENT_4_EN,
MSG_UNLOAD_FILAMENT_4_CZ,
MSG_UNLOAD_FILAMENT_4_EN,
MSG_UNLOAD_FILAMENT_4_EN,
MSG_UNLOAD_FILAMENT_4_EN,
MSG_UNLOAD_FILAMENT_4_EN
MSG_UNLOAD_FILAMENT_4_IT,
MSG_UNLOAD_FILAMENT_4_ES,
MSG_UNLOAD_FILAMENT_4_PL,
MSG_UNLOAD_FILAMENT_4_DE
};
const char MSG_USB_PRINTING_EN[] PROGMEM = "USB printing ";
@ -3079,13 +3144,14 @@ const char MSG_USB_PRINTING_CZ[] PROGMEM = "Tisk z USB ";
const char MSG_USB_PRINTING_IT[] PROGMEM = "Stampa da USB";
const char MSG_USB_PRINTING_ES[] PROGMEM = "Impresion de USB ";
const char MSG_USB_PRINTING_PL[] PROGMEM = "Druk z USB ";
const char MSG_USB_PRINTING_DE[] PROGMEM = "Drucken ueber USB";
const char * const MSG_USB_PRINTING_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_USB_PRINTING_EN,
MSG_USB_PRINTING_CZ,
MSG_USB_PRINTING_IT,
MSG_USB_PRINTING_ES,
MSG_USB_PRINTING_PL,
MSG_USB_PRINTING_EN
MSG_USB_PRINTING_DE
};
const char MSG_USERWAIT_EN[] PROGMEM = "Wait for user...";
@ -3216,7 +3282,7 @@ const char WELCOME_MSG_CZ[] PROGMEM = CUSTOM_MENDEL_NAME " ok";
const char WELCOME_MSG_IT[] PROGMEM = CUSTOM_MENDEL_NAME " pronta.";
const char WELCOME_MSG_ES[] PROGMEM = CUSTOM_MENDEL_NAME " prep.";
const char WELCOME_MSG_PL[] PROGMEM = CUSTOM_MENDEL_NAME " gotowa";
const char WELCOME_MSG_DE[] PROGMEM = CUSTOM_MENDEL_NAME " klar.";
const char WELCOME_MSG_DE[] PROGMEM = CUSTOM_MENDEL_NAME " bereit.";
const char * const WELCOME_MSG_LANG_TABLE[LANG_NUM] PROGMEM = {
WELCOME_MSG_EN,
WELCOME_MSG_CZ,

View File

@ -61,8 +61,8 @@ extern const char* const MSG_BED_CORRECTION_MENU_LANG_TABLE[LANG_NUM];
#define MSG_BED_CORRECTION_MENU LANG_TABLE_SELECT(MSG_BED_CORRECTION_MENU_LANG_TABLE)
extern const char* const MSG_BED_CORRECTION_REAR_LANG_TABLE[LANG_NUM];
#define MSG_BED_CORRECTION_REAR LANG_TABLE_SELECT(MSG_BED_CORRECTION_REAR_LANG_TABLE)
extern const char* const MSG_BED_CORRECTION_RESET_LANG_TABLE[1];
#define MSG_BED_CORRECTION_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_RESET_LANG_TABLE, 0)
extern const char* const MSG_BED_CORRECTION_RESET_LANG_TABLE[LANG_NUM];
#define MSG_BED_CORRECTION_RESET LANG_TABLE_SELECT(MSG_BED_CORRECTION_RESET_LANG_TABLE)
extern const char* const MSG_BED_CORRECTION_RIGHT_LANG_TABLE[LANG_NUM];
#define MSG_BED_CORRECTION_RIGHT LANG_TABLE_SELECT(MSG_BED_CORRECTION_RIGHT_LANG_TABLE)
extern const char* const MSG_BED_DONE_LANG_TABLE[LANG_NUM];
@ -379,6 +379,8 @@ extern const char* const MSG_PREHEAT_LANG_TABLE[LANG_NUM];
#define MSG_PREHEAT LANG_TABLE_SELECT(MSG_PREHEAT_LANG_TABLE)
extern const char* const MSG_PREHEAT_NOZZLE_LANG_TABLE[LANG_NUM];
#define MSG_PREHEAT_NOZZLE LANG_TABLE_SELECT(MSG_PREHEAT_NOZZLE_LANG_TABLE)
extern const char* const MSG_PREPARE_FILAMENT_LANG_TABLE[LANG_NUM];
#define MSG_PREPARE_FILAMENT LANG_TABLE_SELECT(MSG_PREPARE_FILAMENT_LANG_TABLE)
extern const char* const MSG_PRESS_LANG_TABLE[LANG_NUM];
#define MSG_PRESS LANG_TABLE_SELECT(MSG_PRESS_LANG_TABLE)
extern const char* const MSG_PRINTER_DISCONNECTED_LANG_TABLE[1];

View File

@ -73,15 +73,15 @@
#define MSG_SETTINGS "Nastaveni"
#define MSG_PREHEAT "Predehrev"
#define MSG_UNLOAD_FILAMENT "Vyjmout filament"
#define MSG_LOAD_FILAMENT "Zavest filament"
#define MSG_LOAD_FILAMENT "Zavest filament"
#define MSG_LOAD_FILAMENT_1 "Zavest filament 1"
#define MSG_LOAD_FILAMENT_2 "Zavest filament 2"
#define MSG_LOAD_FILAMENT_3 "Zavest filament 3"
#define MSG_LOAD_FILAMENT_4 "Zavest filament 4"
#define MSG_UNLOAD_FILAMENT_1 "Vyjmout filament 1"
#define MSG_UNLOAD_FILAMENT_2 "Vyjmout filament 2"
#define MSG_UNLOAD_FILAMENT_3 "Vyjmout filament 3"
#define MSG_UNLOAD_FILAMENT_4 "Vyjmout filament 4"
#define MSG_UNLOAD_FILAMENT_1 "Vyjmout filam. 1"
#define MSG_UNLOAD_FILAMENT_2 "Vyjmout filam. 2"
#define MSG_UNLOAD_FILAMENT_3 "Vyjmout filam. 3"
#define MSG_UNLOAD_FILAMENT_4 "Vyjmout filam. 4"
#define MSG_UNLOAD_ALL "Vyjmout vse"
#define MSG_LOAD_ALL "Zavest vse"
@ -258,10 +258,10 @@
#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON "SD card [FlshAir]"
#define MSG_LOOSE_PULLEY "Uvolnena remenicka"
#define MSG_FILAMENT_LOADING_T0 "Vložte filament do extruderu 1. Potvrdte tlacitkem."
#define MSG_FILAMENT_LOADING_T1 "Vložte filament do extruderu 2. Potvrdte tlacitkem."
#define MSG_FILAMENT_LOADING_T2 "Vložte filament do extruderu 3. Potvrdte tlacitkem."
#define MSG_FILAMENT_LOADING_T3 "Vložte filament do extruderu 4. Potvrdte tlacitkem."
#define MSG_FILAMENT_LOADING_T0 "Vlozte filament do extruderu 1. Potvrdte tlacitkem."
#define MSG_FILAMENT_LOADING_T1 "Vlozte filament do extruderu 2. Potvrdte tlacitkem."
#define MSG_FILAMENT_LOADING_T2 "Vlozte filament do extruderu 3. Potvrdte tlacitkem."
#define MSG_FILAMENT_LOADING_T3 "Vlozte filament do extruderu 4. Potvrdte tlacitkem."
#define MSG_CHANGE_EXTR "Zmenit extruder"
#define MSG_FIL_ADJUSTING "Probiha srovnani filamentu. Prosim cekejte."
@ -291,4 +291,5 @@
#define MSG_TEMP_CALIBRATION "Tepl. kal. "
#define MSG_TEMP_CALIBRATION_DONE "Teplotni kalibrace dokoncena. Pokracujte stiskem tlacitka."
#define MSG_TEMP_CALIBRATION_ON "Tepl. kal. [ON]"
#define MSG_TEMP_CALIBRATION_OFF "Tepl. kal. [OFF]"
#define MSG_TEMP_CALIBRATION_OFF "Tepl. kal. [OFF]"
#define MSG_PREPARE_FILAMENT "Pripravte filament"

View File

@ -69,16 +69,16 @@
#define MSG_SETTINGS "Settings"
#define MSG_PREHEAT "Preheat"
#define MSG_UNLOAD_FILAMENT "Unload filament"
#define MSG_LOAD_FILAMENT "Load filament"
#define MSG_LOAD_FILAMENT_1 "Load filament 1"
#define MSG_LOAD_FILAMENT_2 "Load filament 2"
#define MSG_LOAD_FILAMENT_3 "Load filament 3"
#define MSG_LOAD_FILAMENT_4 "Load filament 4"
#define MSG_UNLOAD_FILAMENT_1 "Unload filament 1"
#define MSG_UNLOAD_FILAMENT_2 "Unload filament 2"
#define MSG_UNLOAD_FILAMENT_3 "Unload filament 3"
#define MSG_UNLOAD_FILAMENT_4 "Unload filament 4"
#define(length=17) MSG_UNLOAD_FILAMENT "Unload filament"
#define(length=17) MSG_LOAD_FILAMENT "Load filament"
#define(length=17) MSG_LOAD_FILAMENT_1 "Load filament 1"
#define(length=17) MSG_LOAD_FILAMENT_2 "Load filament 2"
#define(length=17) MSG_LOAD_FILAMENT_3 "Load filament 3"
#define(length=17) MSG_LOAD_FILAMENT_4 "Load filament 4"
#define(length=17) MSG_UNLOAD_FILAMENT_1 "Unload filament 1"
#define(length=17) MSG_UNLOAD_FILAMENT_2 "Unload filament 2"
#define(length=17) MSG_UNLOAD_FILAMENT_3 "Unload filament 3"
#define(length=17) MSG_UNLOAD_FILAMENT_4 "Unload filament 4"
#define MSG_UNLOAD_ALL "Unload all"
#define MSG_LOAD_ALL "Load all"
@ -173,9 +173,9 @@
#define MSG_SELFTEST_ENDSTOPS "Endstops"
#define MSG_SELFTEST_MOTOR "Motor"
#define MSG_SELFTEST_ENDSTOP "Endstop"
#define MSG_SELFTEST_ENDSTOP_NOTHIT "Endstop not hit"
#define(length=20,lines=1) MSG_SELFTEST_ENDSTOP_NOTHIT "Endstop not hit"
#define MSG_SELFTEST_OK "Self test OK"
#define MSG_LOOSE_PULLEY "Loose pulley"
#define(length=20,lines=1) MSG_LOOSE_PULLEY "Loose pulley"
#define(length=20) MSG_SELFTEST_FAN "Fan test";
#define(length=20) MSG_SELFTEST_COOLING_FAN "Front print fan?";
@ -203,7 +203,7 @@
#define MSG_HOMEYZ_PROGRESS "Calibrating Z"
#define MSG_HOMEYZ_DONE "Calibration done"
#define MSG_SHOW_END_STOPS "Show end stops"
#define(length=17,lines=1) MSG_SHOW_END_STOPS "Show end stops"
#define MSG_CALIBRATE_BED "Calibrate XYZ"
#define MSG_CALIBRATE_BED_RESET "Reset XYZ calibr."
@ -261,14 +261,14 @@
#define(length=20, lines=8) MSG_CLEAN_NOZZLE_E "E calibration finished. Please clean the nozzle. Click when done."
#define(length=20, lines=3) MSG_WAITING_TEMP "Waiting for nozzle and bed cooling"
#define(length=20, lines=2) MSG_FILAMENT_CLEAN "Is color clear?"
#define(lenght=20) MSG_UNLOADING_FILAMENT "Unloading filament"
#define(lenght=18, lines=1) MSG_UNLOADING_FILAMENT "Unloading filament"
#define(length=20, lines=8) MSG_PAPER "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."
#define MSG_BED_CORRECTION_MENU "Bed level correct"
#define MSG_BED_CORRECTION_LEFT "Left side um"
#define MSG_BED_CORRECTION_RIGHT "Right side um"
#define MSG_BED_CORRECTION_FRONT "Front side um"
#define MSG_BED_CORRECTION_REAR "Rear side um"
#define(length=14,lines=1) MSG_BED_CORRECTION_LEFT "Left side [um]"
#define(length=14,lines=1) MSG_BED_CORRECTION_RIGHT "Right side[um]"
#define(length=14,lines=1) MSG_BED_CORRECTION_FRONT "Front side[um]"
#define(length=14,lines=1) MSG_BED_CORRECTION_REAR "Rear side [um]"
#define MSG_BED_CORRECTION_RESET "Reset"
#define MSG_MESH_BED_LEVELING "Mesh Bed Leveling"
@ -292,4 +292,6 @@
#define(length=20, lines=4) MSG_TEMP_CALIBRATION_DONE "Temperature calibration is finished. Click to continue."
#define(length=20, lines=1) MSG_TEMP_CALIBRATION_ON "Temp. cal. [ON]"
#define(length=20, lines=1) MSG_TEMP_CALIBRATION_OFF "Temp. cal. [OFF]"
#define(length=20, lines=1) MSG_PREPARE_FILAMENT "Prepare new filament"

View File

@ -270,4 +270,20 @@
#define MSG_TEMP_CALIBRATION "Cal. temp. "
#define MSG_TEMP_CALIBRATION_DONE "Calibracon temperatura terminada. Presionar para continuar."
#define MSG_TEMP_CALIBRATION_ON "Cal. temp. [ON]"
#define MSG_TEMP_CALIBRATION_OFF "Cal. temp. [OFF]"
#define MSG_TEMP_CALIBRATION_OFF "Cal. temp. [OFF]"
#define MSG_PREPARE_FILAMENT "Preparar filamento"
#define MSG_LOAD_ALL "Intr. todos fil."
#define MSG_LOAD_FILAMENT_1 "Introducir fil. 1"
#define MSG_LOAD_FILAMENT_2 "Introducir fil. 2"
#define MSG_LOAD_FILAMENT_3 "Introducir fil. 3"
#define MSG_LOAD_FILAMENT_4 "Introducir fil. 4"
#define MSG_UNLOAD_FILAMENT_1 "Soltar fil. 1"
#define MSG_UNLOAD_FILAMENT_2 "Soltar fil. 2"
#define MSG_UNLOAD_FILAMENT_3 "Soltar fil. 3"
#define MSG_UNLOAD_FILAMENT_4 "Soltar fil. 4"
#define MSG_UNLOAD_ALL "Soltar todos fil."
#define MSG_PREPARE_FILAMENT "Preparar filamento"

View File

@ -221,10 +221,10 @@
#define MSG_BABYSTEP_Z_NOT_SET "Distanza tra la punta dell'ugello e la superficie del letto non ancora imposta. Si prega di seguire il manuale, capitolo First steps, sezione First layer calibration."
#define MSG_BED_CORRECTION_MENU "Correz. liv.letto"
#define MSG_BED_CORRECTION_LEFT "Lato sinistro"
#define MSG_BED_CORRECTION_RIGHT "Lato destro"
#define MSG_BED_CORRECTION_FRONT "Lato ateriore"
#define MSG_BED_CORRECTION_REAR "Lato posteriore"
#define MSG_BED_CORRECTION_LEFT "Sinistra [um]"
#define MSG_BED_CORRECTION_RIGHT "Destra [um]"
#define MSG_BED_CORRECTION_FRONT "Fronte [um]"
#define MSG_BED_CORRECTION_REAR "Retro [um]"
#define MSG_BED_CORRECTION_RESET "Reset"
#define MSG_MESH_BED_LEVELING "Mesh livel. letto"
@ -265,4 +265,16 @@
#define MSG_TEMP_CALIBRATION "Cal. temp. "
#define MSG_TEMP_CALIBRATION_DONE "Taratura temperatura terminata. Fare click per continuare."
#define MSG_TEMP_CALIBRATION_ON "Cal. temp. [ON]"
#define MSG_TEMP_CALIBRATION_OFF "Cal. temp. [OFF]"
#define MSG_TEMP_CALIBRATION_OFF "Cal. temp. [OFF]"
#define MSG_LOAD_ALL "Caricare tutti"
#define MSG_LOAD_FILAMENT_1 "Caricare fil. 1"
#define MSG_LOAD_FILAMENT_2 "Caricare fil. 2"
#define MSG_LOAD_FILAMENT_3 "Caricare fil. 3"
#define MSG_LOAD_FILAMENT_4 "Caricare fil. 4"
#define MSG_UNLOAD_FILAMENT_1 "Rilasciare fil. 1"
#define MSG_UNLOAD_FILAMENT_2 "Rilasciare fil. 1"
#define MSG_UNLOAD_FILAMENT_3 "Rilasciare fil. 1"
#define MSG_UNLOAD_FILAMENT_4 "Rilasciare fil. 1"
#define MSG_UNLOAD_ALL "Rilasciare tutti"
#define MSG_PREPARE_FILAMENT "Preparare filamento"

View File

@ -276,4 +276,17 @@
#define MSG_TEMP_CALIBRATION "Ciepl. kal. "
#define MSG_TEMP_CALIBRATION_DONE "Cieplna kalibracja zakonczona. Kontynuuj przyciskiem"
#define MSG_TEMP_CALIBRATION_ON "Ciepl. kal. [ON]"
#define MSG_TEMP_CALIBRATION_OFF "Ciepl. kal. [OFF]"
#define MSG_TEMP_CALIBRATION_OFF "Ciepl. kal. [OFF]"
#define MSG_PREPARE_FILAMENT "Przygotuj filament"
#define MSG_LOAD_ALL "Zalad. wszystkie"
#define MSG_LOAD_FILAMENT_1 "Zaladowac fil. 1"
#define MSG_LOAD_FILAMENT_2 "Zaladowac fil. 2"
#define MSG_LOAD_FILAMENT_3 "Zaladowac fil. 3"
#define MSG_LOAD_FILAMENT_4 "Zaladowac fil. 4"
#define MSG_UNLOAD_FILAMENT_1 "Wyjac filament 1"
#define MSG_UNLOAD_FILAMENT_2 "Wyjac filament 2"
#define MSG_UNLOAD_FILAMENT_3 "Wyjac filament 3"
#define MSG_UNLOAD_FILAMENT_4 "Wyjac filament 4"
#define MSG_UNLOAD_ALL "Wyjac wszystkie"
#define MSG_PREPARE_FILAMENT "Przygotuj filament"

View File

@ -2309,7 +2309,7 @@ static int babystepLoadZ = 0;
void babystep_apply()
{
// Apply Z height correction aka baby stepping before mesh bed leveling gets activated.
if(calibration_status() <= CALIBRATION_STATUS_PINDA)
if(calibration_status() < CALIBRATION_STATUS_LIVE_ADJUST)
{
check_babystep(); //checking if babystep is in allowed range, otherwise setting babystep to 0

View File

@ -520,10 +520,9 @@ void lcd_commands()
char cmd1[25];
if (lcd_commands_type == LCD_COMMAND_LONG_PAUSE)
{
if(lcd_commands_step == 0) {
if(lcd_commands_step == 0) {
card.pauseSDPrint();
lcd_setstatuspgm(MSG_FINISHING_MOVEMENTS);
lcdDrawUpdate = 3;
lcd_commands_step = 1;
}
@ -563,7 +562,7 @@ void lcd_commands()
enquecommand(cmd1);
if (axis_relative_modes[3] == true) enquecommand_P(PSTR("M83")); // set extruder to relative mode.
else enquecommand_P(PSTR("M82")); // set extruder to absolute mode
enquecommand_P(PSTR("G1 E" STRINGIFY(PAUSE_RETRACT))); //unretract
enquecommand_P(PSTR("G1 E" STRINGIFY(DEFAULT_RETRACTION))); //unretract
enquecommand_P(PSTR("G90")); //absolute positioning
lcd_commands_step = 1;
}
@ -662,7 +661,7 @@ void lcd_commands()
cancel_heatup = true;
setTargetBed(0);
#ifndef SNMM
setTargetHotend(0, 0); //to heating when changing filament for multicolor
setTargetHotend(0, 0); //heating when changing filament for multicolor
setTargetHotend(0, 1);
setTargetHotend(0, 2);
#endif
@ -975,8 +974,11 @@ void lcd_wait_interact() {
lcd_implementation_clear();
lcd.setCursor(0, 1);
#ifdef SNMM
lcd_printPGM(MSG_PREPARE_FILAMENT);
#else
lcd_printPGM(MSG_INSERT_FILAMENT);
#endif
lcd.setCursor(0, 2);
lcd_printPGM(MSG_PRESS);
@ -1034,7 +1036,6 @@ void lcd_loading_filament() {
lcd.setCursor(0, 2);
lcd_printPGM(MSG_PLEASE_WAIT);
for (int i = 0; i < 20; i++) {
lcd.setCursor(i, 3);
@ -1042,7 +1043,11 @@ void lcd_loading_filament() {
for (int j = 0; j < 10 ; j++) {
manage_heater();
manage_inactivity(true);
delay(110);
#ifdef SNMM
delay(153);
#else
delay(137);
#endif
}
@ -2361,7 +2366,7 @@ static void lcd_language_menu()
void lcd_mesh_bedleveling()
{
mesh_bed_run_from_menu = true;
enquecommand_P(PSTR("G80"));
lcd_return_to_status();
}
@ -2783,20 +2788,30 @@ void bowden_menu() {
}
enc_dif = encoderDiff;
/*while (1) {
if (lcd_clicked()) {
while (lcd_clicked());
delay(10);
while (lcd_clicked());
break;
}
}*/
while (1) {
manage_heater();
manage_inactivity(true);
if (abs((enc_dif - encoderDiff)) > 2) {
if (enc_dif > encoderDiff) {
cursor_pos--;
}
if (enc_dif < encoderDiff) {
cursor_pos++;
}
if (cursor_pos > 3) {
cursor_pos = 3;
}
if (cursor_pos < 0) {
cursor_pos = 0;
}
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
@ -2807,25 +2822,43 @@ void bowden_menu() {
lcd.print(" ");
lcd.setCursor(0, cursor_pos);
lcd.print(">");
if (abs((enc_dif - encoderDiff)) > 4) {
if ((abs(enc_dif - encoderDiff)) > 1) {
enc_dif = encoderDiff;
delay(100);
}
if (lcd_clicked()) {
while (lcd_clicked());
delay(10);
while (lcd_clicked());
lcd_implementation_clear();
while (1) {
manage_heater();
manage_inactivity(true);
lcd.setCursor(1, 1);
lcd.print("Extruder ");
lcd.print(cursor_pos);
lcd.print(": ");
lcd.setCursor(13, 1);
lcd.print(bowden_length[cursor_pos] - 48);
if (abs((enc_dif - encoderDiff)) > 2) {
if (enc_dif > encoderDiff) {
bowden_length[cursor_pos]--;
lcd.setCursor(13, cursor_pos);
lcd.print(bowden_length[cursor_pos] -48);
lcd.setCursor(13, 1);
lcd.print(bowden_length[cursor_pos] - 48);
enc_dif = encoderDiff;
}
if (enc_dif < encoderDiff) {
bowden_length[cursor_pos]++;
lcd.setCursor(13, cursor_pos);
lcd.print(bowden_length[cursor_pos] -48);
lcd.setCursor(13, 1);
lcd.print(bowden_length[cursor_pos] - 48);
enc_dif = encoderDiff;
}
}
}
delay(100);
if (lcd_clicked()) {
@ -2833,13 +2866,27 @@ void bowden_menu() {
delay(10);
while (lcd_clicked());
EEPROM_save_B(EEPROM_BOWDEN_LENGTH + cursor_pos * 2, &bowden_length[cursor_pos]);
if (cursor_pos == 3) return;
else {
cursor_pos++;
if (lcd_show_fullscreen_message_yes_no_and_wait_P(PSTR("Continue with another bowden?"))) {
lcd_update_enable(true);
lcd_implementation_clear();
enc_dif = encoderDiff;
lcd.setCursor(0, cursor_pos);
lcd.print(">");
for (int i = 0; i < 4; i++) {
lcd.setCursor(1, i);
lcd.print("Extruder ");
lcd.print(i);
lcd.print(": ");
EEPROM_read_B(EEPROM_BOWDEN_LENGTH + i * 2, &bowden_length[i]);
lcd.print(bowden_length[i] - 48);
}
break;
}
else return;
}
}
}
}
}
@ -3021,7 +3068,7 @@ static int get_ext_nr() { //reads multiplexer input pins and return current extr
void display_loading() {
switch (snmm_extruder) {
case 1: (MSG_FILAMENT_LOADING_T1); break;
case 1: lcd_display_message_fullscreen_P(MSG_FILAMENT_LOADING_T1); break;
case 2: lcd_display_message_fullscreen_P(MSG_FILAMENT_LOADING_T2); break;
case 3: lcd_display_message_fullscreen_P(MSG_FILAMENT_LOADING_T3); break;
default: lcd_display_message_fullscreen_P(MSG_FILAMENT_LOADING_T0); break;
@ -3056,7 +3103,11 @@ static void extr_adj(int extruder) //loading filament for SNMM
//extr_mov(BOWDEN_LENGTH/2.f, 500);
extr_mov(bowden_length[extruder], 500);
lcd_implementation_clear();
lcd.setCursor(0, 1); lcd_printPGM(MSG_PLEASE_WAIT);
lcd.setCursor(0, 0); lcd_printPGM(MSG_LOADING_FILAMENT);
if(strlen(MSG_LOADING_FILAMENT)>18) lcd.setCursor(0, 1);
else lcd.print(" ");
lcd.print(snmm_extruder + 1);
lcd.setCursor(0, 2); lcd_printPGM(MSG_PLEASE_WAIT);
st_synchronize();
max_feedrate[E_AXIS] = 50;
lcd_update_enable(true);
@ -3074,7 +3125,10 @@ static void extr_unload() { //unloads filament
lcd_implementation_clear();
lcd_display_message_fullscreen_P(PSTR(""));
max_feedrate[E_AXIS] = 50;
lcd.setCursor(0, 1); lcd_printPGM(MSG_PLEASE_WAIT);
lcd.setCursor(0, 0); lcd_printPGM(MSG_UNLOADING_FILAMENT);
lcd.print(" ");
lcd.print(snmm_extruder + 1);
lcd.setCursor(0, 2); lcd_printPGM(MSG_PLEASE_WAIT);
if (current_position[Z_AXIS] < 15) {
current_position[Z_AXIS] += 15; //lifting in Z direction to make space for extrusion
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 25, active_extruder);
@ -3247,7 +3301,7 @@ static void fil_unload_menu()
END_MENU();
}
/*static void change_extr_menu(){
static void change_extr_menu(){
START_MENU();
MENU_ITEM(back, MSG_MAIN, lcd_main_menu);
MENU_ITEM(function, PSTR("Extruder 1"), extr_change_0);
@ -3256,7 +3310,7 @@ static void fil_unload_menu()
MENU_ITEM(function, PSTR("Extruder 4"), extr_change_3);
END_MENU();
}*/
}
#endif
@ -3524,7 +3578,7 @@ static void lcd_main_menu()
#ifdef SNMM
MENU_ITEM(submenu, MSG_LOAD_FILAMENT, fil_load_menu);
MENU_ITEM(submenu, MSG_UNLOAD_FILAMENT, fil_unload_menu);
//MENU_ITEM(submenu, MSG_CHANGE_EXTR, change_extr_menu);
MENU_ITEM(submenu, MSG_CHANGE_EXTR, change_extr_menu);
#endif
MENU_ITEM(submenu, MSG_SETTINGS, lcd_settings_menu);
if(!isPrintPaused) MENU_ITEM(submenu, MSG_MENU_CALIBRATION, lcd_calibration_menu);
@ -3567,6 +3621,17 @@ static void lcd_silent_mode_set_tune() {
lcd_goto_menu(lcd_tune_menu, 9);
}
static void lcd_colorprint_change() {
enquecommand_P(PSTR("M600"));
custom_message = true;
custom_message_type = 2; //just print status message
lcd_setstatuspgm(MSG_FINISHING_MOVEMENTS);
lcd_return_to_status();
lcdDrawUpdate = 3;
}
static void lcd_tune_menu()
{
EEPROM_read(EEPROM_SILENT, (uint8_t*)&SilentModeMenu, sizeof(SilentModeMenu));
@ -3583,7 +3648,7 @@ static void lcd_tune_menu()
MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &fanSpeed, 0, 255);//5
MENU_ITEM_EDIT(int3, MSG_FLOW, &extrudemultiply, 10, 999);//6
#ifdef FILAMENTCHANGEENABLE
MENU_ITEM(gcode, MSG_FILAMENTCHANGE, PSTR("M600"));//7
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_colorprint_change);//7
#endif
if (SilentModeMenu == 0) {
@ -3678,18 +3743,21 @@ void lcd_sdcard_stop()
}
if ((int32_t)encoderPosition == 2)
{
cancel_heatup = true;
cancel_heatup = true;
#ifdef MESH_BED_LEVELING
mbl.active = false;
#endif
// Stop the stoppers, update the position from the stoppers.
planner_abort_hard();
// Because the planner_abort_hard() initialized current_position[Z] from the stepper,
// Z baystep is no more applied. Reset it.
babystep_reset();
if (mesh_bed_leveling_flag == false && homing_flag == false) {
planner_abort_hard();
// Because the planner_abort_hard() initialized current_position[Z] from the stepper,
// Z baystep is no more applied. Reset it.
babystep_reset();
}
// Clean the input command queue.
cmdqueue_reset();
lcd_setstatuspgm(MSG_PRINT_ABORTED);
lcd_update(2);
card.sdprinting = false;
card.closefile();

View File

@ -208,6 +208,7 @@ extern void lcd_implementation_print_at(uint8_t x, uint8_t y, const char *str);
void change_extr(int extr);
static void lcd_colorprint_change();
static int get_ext_nr();
static void extr_adj(int extruder);
static void extr_adj_0();

View File

@ -977,6 +977,8 @@ static void lcd_implementation_status_screen()
if (custom_message_state <= PINDA_HEAT_T) {
lcd_printPGM(PSTR(": "));
lcd.print(custom_message_state); //seconds
lcd.print(' ');
}
}

View File

@ -390,10 +390,12 @@ THERMISTORS SETTINGS
#define LONG_PRESS_TIME 1000 //time in ms for button long press
#define BUTTON_BLANKING_TIME 200 //time in ms for blanking after button release
#define PAUSE_RETRACT 1
#define DEFAULT_PID_TEMP 210
#define DEFAULT_RETRACTION 1 //used for PINDA temp calibration
#ifdef SNMM
#define DEFAULT_RETRACTION 4 //used for PINDA temp calibration and pause print
#else
#define DEFAULT_RETRACTION 1 //used for PINDA temp calibration and pause print
#endif
#endif //__CONFIGURATION_PRUSA_H

View File

@ -392,10 +392,12 @@ THERMISTORS SETTINGS
#define LONG_PRESS_TIME 1000 //time in ms for button long press
#define BUTTON_BLANKING_TIME 200 //time in ms for blanking after button release
#define PAUSE_RETRACT 1
#define DEFAULT_PID_TEMP 210
#define DEFAULT_RETRACTION 1 //used for PINDA temp calibration
#ifdef SNMM
#define DEFAULT_RETRACTION 4 //used for PINDA temp calibration and pause print
#else
#define DEFAULT_RETRACTION 1 //used for PINDA temp calibration and pause print
#endif
#endif //__CONFIGURATION_PRUSA_H