Merge pull request #37 from PavelSindler/MK2
Added flag for printer reset detection for SNMM, improved loading and unloading filament, corrected messages in Italian language, changed load filament sequence
This commit is contained in:
commit
2f885290e2
|
|
@ -43,7 +43,7 @@
|
|||
#define EEPROM_BED_CORRECTION_FRONT (EEPROM_BED_CORRECTION_RIGHT-1)
|
||||
#define EEPROM_BED_CORRECTION_REAR (EEPROM_BED_CORRECTION_FRONT-1)
|
||||
#define EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY (EEPROM_BED_CORRECTION_REAR-1)
|
||||
#define EEPROM_STEPS_PER_UNIT_E (EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY-4)
|
||||
#define EEPROM_PRINT_FLAG (EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY-1)
|
||||
|
||||
// Currently running firmware, each digit stored as uint16_t.
|
||||
// The flavor differentiates a dev, alpha, beta, release candidate or a release version.
|
||||
|
|
|
|||
|
|
@ -120,6 +120,10 @@ void Config_StoreSettings()
|
|||
#endif
|
||||
#endif
|
||||
|
||||
/*MYSERIAL.print("Top address used:\n");
|
||||
MYSERIAL.print(i);
|
||||
MYSERIAL.print("\n");
|
||||
*/
|
||||
char ver2[4]=EEPROM_VERSION;
|
||||
i=EEPROM_OFFSET;
|
||||
EEPROM_WRITE_VAR(i,ver2); // validate data
|
||||
|
|
@ -271,8 +275,8 @@ void Config_RetrieveSettings()
|
|||
EEPROM_READ_VAR(i,minsegmenttime);
|
||||
EEPROM_READ_VAR(i,max_jerk[X_AXIS]);
|
||||
EEPROM_READ_VAR(i,max_jerk[Y_AXIS]);
|
||||
EEPROM_READ_VAR(i,max_jerk[Z_AXIS]);
|
||||
EEPROM_READ_VAR(i,max_jerk[E_AXIS]);
|
||||
EEPROM_READ_VAR(i,max_jerk[Z_AXIS]);
|
||||
EEPROM_READ_VAR(i,max_jerk[E_AXIS]);
|
||||
EEPROM_READ_VAR(i,add_homing);
|
||||
#ifndef ULTIPANEL
|
||||
int plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed;
|
||||
|
|
|
|||
|
|
@ -284,6 +284,7 @@ extern unsigned long starttime;
|
|||
extern unsigned long stoptime;
|
||||
extern bool is_usb_printing;
|
||||
extern bool homing_flag;
|
||||
extern bool loading_flag;
|
||||
extern unsigned int usb_printing_counter;
|
||||
|
||||
extern unsigned long kicktime;
|
||||
|
|
|
|||
|
|
@ -272,6 +272,7 @@ unsigned long total_filament_used;
|
|||
unsigned int heating_status;
|
||||
unsigned int heating_status_counter;
|
||||
bool custom_message;
|
||||
bool loading_flag = false;
|
||||
unsigned int custom_message_type;
|
||||
unsigned int custom_message_state;
|
||||
|
||||
|
|
@ -2051,11 +2052,23 @@ void process_commands()
|
|||
|
||||
#endif
|
||||
}
|
||||
else if (code_seen("SetF")) {
|
||||
#ifdef SNMM
|
||||
bool not_finished = (eeprom_read_byte((unsigned char*)EEPROM_PRINT_FLAG) != PRINT_FINISHED);
|
||||
eeprom_update_byte((unsigned char*)EEPROM_PRINT_FLAG, PRINT_STARTED);
|
||||
if (not_finished) enquecommand_front_P(PSTR("PRUSA Y"));
|
||||
#endif
|
||||
}
|
||||
else if (code_seen("ResF")) {
|
||||
#ifdef SNMM
|
||||
eeprom_update_byte((unsigned char*)EEPROM_PRINT_FLAG, PRINT_FINISHED);
|
||||
#endif
|
||||
}
|
||||
//else if (code_seen('Cal')) {
|
||||
// lcd_calibration();
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
else if (code_seen('^')) {
|
||||
// nothing, this is a version line
|
||||
} else if(code_seen('G'))
|
||||
|
|
@ -5050,6 +5063,57 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
|
|||
#endif
|
||||
}
|
||||
break;
|
||||
case 701: //M701: load filament
|
||||
{
|
||||
enable_z();
|
||||
custom_message = true;
|
||||
custom_message_type = 2;
|
||||
|
||||
lcd_setstatuspgm(MSG_LOADING_FILAMENT);
|
||||
current_position[E_AXIS] += 65;
|
||||
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 400 / 60, active_extruder); //fast sequence
|
||||
|
||||
current_position[E_AXIS] += 40;
|
||||
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 100 / 60, active_extruder); //slow sequence
|
||||
st_synchronize();
|
||||
|
||||
if (!farm_mode && loading_flag) {
|
||||
bool clean = lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_FILAMENT_CLEAN, false, true);
|
||||
|
||||
while (!clean) {
|
||||
lcd_update_enable(true);
|
||||
lcd_update(2);
|
||||
current_position[E_AXIS] += 40;
|
||||
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 100 / 60, active_extruder); //slow sequence
|
||||
st_synchronize();
|
||||
clean = lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_FILAMENT_CLEAN, false, true);
|
||||
}
|
||||
}
|
||||
lcd_update_enable(true);
|
||||
lcd_update(2);
|
||||
lcd_setstatuspgm(WELCOME_MSG);
|
||||
disable_z();
|
||||
loading_flag = false;
|
||||
custom_message = false;
|
||||
custom_message_type = 0;
|
||||
}
|
||||
break;
|
||||
case 702:
|
||||
{
|
||||
custom_message = true;
|
||||
custom_message_type = 2;
|
||||
lcd_setstatuspgm(MSG_UNLOADING_FILAMENT); //need to be tranlated to spanish language
|
||||
|
||||
current_position[E_AXIS] -= 80;
|
||||
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 7000 / 60, active_extruder);
|
||||
st_synchronize();
|
||||
lcd_setstatuspgm(WELCOME_MSG);
|
||||
custom_message = false;
|
||||
custom_message_type = 0;
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
case 999: // M999: Restart after being stopped
|
||||
Stopped = false;
|
||||
lcd_reset_alert_level();
|
||||
|
|
|
|||
|
|
@ -197,7 +197,7 @@ const char * const MSG_BED_DONE_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
|
||||
const char MSG_BED_HEATING_EN[] PROGMEM = "Bed Heating";
|
||||
const char MSG_BED_HEATING_CZ[] PROGMEM = "Zahrivani bed";
|
||||
const char MSG_BED_HEATING_IT[] PROGMEM = "Piatto riscaldam.";
|
||||
const char MSG_BED_HEATING_IT[] PROGMEM = "Riscald. letto";
|
||||
const char MSG_BED_HEATING_ES[] PROGMEM = "Base Calentando";
|
||||
const char MSG_BED_HEATING_PL[] PROGMEM = "Grzanie stolika..";
|
||||
const char * const MSG_BED_HEATING_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
|
@ -465,7 +465,7 @@ const char * const MSG_CHANGE_EXTR_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
|
||||
const char MSG_CHANGE_SUCCESS_EN[] PROGMEM = "Change success!";
|
||||
const char MSG_CHANGE_SUCCESS_CZ[] PROGMEM = "Zmena uspesna!";
|
||||
const char MSG_CHANGE_SUCCESS_IT[] PROGMEM = "Cambia. riuscito!";
|
||||
const char MSG_CHANGE_SUCCESS_IT[] PROGMEM = "Cambio riuscito!";
|
||||
const char MSG_CHANGE_SUCCESS_ES[] PROGMEM = "Cambiar bien!";
|
||||
const char MSG_CHANGE_SUCCESS_PL[] PROGMEM = "Wymiana ok!";
|
||||
const char * const MSG_CHANGE_SUCCESS_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
|
@ -478,7 +478,7 @@ const char * const MSG_CHANGE_SUCCESS_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
|
||||
const char MSG_CHANGING_FILAMENT_EN[] PROGMEM = "Changing filament!";
|
||||
const char MSG_CHANGING_FILAMENT_CZ[] PROGMEM = "Vymena filamentu!";
|
||||
const char MSG_CHANGING_FILAMENT_IT[] PROGMEM = "Mutevole fil.!";
|
||||
const char MSG_CHANGING_FILAMENT_IT[] PROGMEM = "Cambiando filam.";
|
||||
const char MSG_CHANGING_FILAMENT_ES[] PROGMEM = "Cambiando fil.!";
|
||||
const char MSG_CHANGING_FILAMENT_PL[] PROGMEM = "Wymiana filamentu";
|
||||
const char * const MSG_CHANGING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
|
@ -633,11 +633,12 @@ const char * const MSG_END_FILE_LIST_LANG_TABLE[1] PROGMEM = {
|
|||
|
||||
const char MSG_ERROR_EN[] PROGMEM = "ERROR:";
|
||||
const char MSG_ERROR_CZ[] PROGMEM = "CHYBA:";
|
||||
const char MSG_ERROR_IT[] PROGMEM = "ERRORE:";
|
||||
const char MSG_ERROR_PL[] PROGMEM = "BLAD:";
|
||||
const char * const MSG_ERROR_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_ERROR_EN,
|
||||
MSG_ERROR_CZ,
|
||||
MSG_ERROR_EN,
|
||||
MSG_ERROR_IT,
|
||||
MSG_ERROR_EN,
|
||||
MSG_ERROR_PL
|
||||
};
|
||||
|
|
@ -947,7 +948,7 @@ const char * const MSG_HEATING_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
|
||||
const char MSG_HEATING_COMPLETE_EN[] PROGMEM = "Heating done.";
|
||||
const char MSG_HEATING_COMPLETE_CZ[] PROGMEM = "Zahrivani OK.";
|
||||
const char MSG_HEATING_COMPLETE_IT[] PROGMEM = "Riscaldamento fatto.";
|
||||
const char MSG_HEATING_COMPLETE_IT[] PROGMEM = "Riscald. completo";
|
||||
const char MSG_HEATING_COMPLETE_ES[] PROGMEM = "Calentando listo.";
|
||||
const char MSG_HEATING_COMPLETE_PL[] PROGMEM = "Grzanie OK.";
|
||||
const char * const MSG_HEATING_COMPLETE_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
|
@ -1090,7 +1091,7 @@ const char * const MSG_LANGUAGE_SELECT_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
|
||||
const char MSG_LOADING_COLOR_EN[] PROGMEM = "Loading color";
|
||||
const char MSG_LOADING_COLOR_CZ[] PROGMEM = "Cisteni barvy";
|
||||
const char MSG_LOADING_COLOR_IT[] PROGMEM = "Cargando color";
|
||||
const char MSG_LOADING_COLOR_IT[] PROGMEM = "Caricando colore";
|
||||
const char MSG_LOADING_COLOR_ES[] PROGMEM = "Cargando color";
|
||||
const char MSG_LOADING_COLOR_PL[] PROGMEM = "Czyszcz. koloru";
|
||||
const char * const MSG_LOADING_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
|
@ -1103,7 +1104,7 @@ const char * const MSG_LOADING_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
|
||||
const char MSG_LOADING_FILAMENT_EN[] PROGMEM = "Loading filament";
|
||||
const char MSG_LOADING_FILAMENT_CZ[] PROGMEM = "Zavadeni filamentu";
|
||||
const char MSG_LOADING_FILAMENT_IT[] PROGMEM = "Cargando fil.";
|
||||
const char MSG_LOADING_FILAMENT_IT[] PROGMEM = "Caricando filam.";
|
||||
const char MSG_LOADING_FILAMENT_ES[] PROGMEM = "Cargando fil.";
|
||||
const char MSG_LOADING_FILAMENT_PL[] PROGMEM = "Wprow. filamentu";
|
||||
const char * const MSG_LOADING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
|
@ -1199,7 +1200,7 @@ const char * const MSG_MAIN_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
};
|
||||
|
||||
const char MSG_MARK_FIL_EN[] PROGMEM = "Mark filament 100mm from extruder body. Click when done.";
|
||||
const char MSG_MARK_FIL_CZ[] PROGMEM = "Oznacte filament 100 mm od tela extruderu. Potvrdte tlacitkem.";
|
||||
const char MSG_MARK_FIL_CZ[] PROGMEM = "Oznacte filament 100 mm od tela extruderu a po te potvrdte tlacitkem.";
|
||||
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.";
|
||||
|
|
@ -1418,7 +1419,7 @@ const char * const MSG_NO_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
|
||||
const char MSG_NOT_COLOR_EN[] PROGMEM = "Color not clear";
|
||||
const char MSG_NOT_COLOR_CZ[] PROGMEM = "Barva neni cista";
|
||||
const char MSG_NOT_COLOR_IT[] PROGMEM = "Color no claro";
|
||||
const char MSG_NOT_COLOR_IT[] PROGMEM = "Colore non puro";
|
||||
const char MSG_NOT_COLOR_ES[] PROGMEM = "Color no claro";
|
||||
const char MSG_NOT_COLOR_PL[] PROGMEM = "Kolor zanieczysz.";
|
||||
const char * const MSG_NOT_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
|
@ -1431,7 +1432,7 @@ const char * const MSG_NOT_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
|
||||
const char MSG_NOT_LOADED_EN[] PROGMEM = "Filament not loaded";
|
||||
const char MSG_NOT_LOADED_CZ[] PROGMEM = "Filament nezaveden";
|
||||
const char MSG_NOT_LOADED_IT[] PROGMEM = "Fil. no cargado";
|
||||
const char MSG_NOT_LOADED_IT[] PROGMEM = "Fil. non caricato";
|
||||
const char MSG_NOT_LOADED_ES[] PROGMEM = "Fil. no cargado";
|
||||
const char MSG_NOT_LOADED_PL[] PROGMEM = "Brak filamentu";
|
||||
const char * const MSG_NOT_LOADED_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
|
@ -1583,10 +1584,10 @@ const char * const MSG_PREHEAT_NOZZLE_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
MSG_PREHEAT_NOZZLE_PL
|
||||
};
|
||||
|
||||
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 = "Y pulse el mando";
|
||||
const char MSG_PRESS_ES[] PROGMEM = "Y pulse el mando";
|
||||
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";
|
||||
const char MSG_PRESS_ES[] PROGMEM = "y pulse el mando";
|
||||
const char MSG_PRESS_PL[] PROGMEM = "Nacisnij przycisk";
|
||||
const char * const MSG_PRESS_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_PRESS_EN,
|
||||
|
|
@ -2161,7 +2162,7 @@ const char * const MSG_SHOW_END_STOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
|
||||
const char MSG_SILENT_MODE_OFF_EN[] PROGMEM = "Mode [high power]";
|
||||
const char MSG_SILENT_MODE_OFF_CZ[] PROGMEM = "Mod [vys. vykon]";
|
||||
const char MSG_SILENT_MODE_OFF_IT[] PROGMEM = "Mode [prestante]";
|
||||
const char MSG_SILENT_MODE_OFF_IT[] PROGMEM = "Mode [forte]";
|
||||
const char MSG_SILENT_MODE_OFF_ES[] PROGMEM = "Modo [mas fuerza]";
|
||||
const char MSG_SILENT_MODE_OFF_PL[] PROGMEM = "Mod [w wydajnosc]";
|
||||
const char * const MSG_SILENT_MODE_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
|
@ -2404,6 +2405,19 @@ const char * const MSG_UNKNOWN_COMMAND_LANG_TABLE[1] PROGMEM = {
|
|||
MSG_UNKNOWN_COMMAND_EN
|
||||
};
|
||||
|
||||
const char MSG_UNLOADING_FILAMENT_EN[] PROGMEM = "Unloading filament";
|
||||
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 * const MSG_UNLOADING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_UNLOADING_FILAMENT_EN,
|
||||
MSG_UNLOADING_FILAMENT_CZ,
|
||||
MSG_UNLOADING_FILAMENT_IT,
|
||||
MSG_UNLOADING_FILAMENT_ES,
|
||||
MSG_UNLOADING_FILAMENT_PL
|
||||
};
|
||||
|
||||
const char MSG_UNLOAD_FILAMENT_EN[] PROGMEM = "Unload filament";
|
||||
const char MSG_UNLOAD_FILAMENT_CZ[] PROGMEM = "Vyjmout filament";
|
||||
const char MSG_UNLOAD_FILAMENT_IT[] PROGMEM = "Scarica filamento";
|
||||
|
|
|
|||
|
|
@ -518,6 +518,8 @@ extern const char* const MSG_TUNE_LANG_TABLE[LANG_NUM];
|
|||
#define MSG_TUNE LANG_TABLE_SELECT(MSG_TUNE_LANG_TABLE)
|
||||
extern const char* const MSG_UNKNOWN_COMMAND_LANG_TABLE[1];
|
||||
#define MSG_UNKNOWN_COMMAND LANG_TABLE_SELECT_EXPLICIT(MSG_UNKNOWN_COMMAND_LANG_TABLE, 0)
|
||||
extern const char* const MSG_UNLOADING_FILAMENT_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_UNLOADING_FILAMENT LANG_TABLE_SELECT(MSG_UNLOADING_FILAMENT_LANG_TABLE)
|
||||
extern const char* const MSG_UNLOAD_FILAMENT_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_UNLOAD_FILAMENT LANG_TABLE_SELECT(MSG_UNLOAD_FILAMENT_LANG_TABLE)
|
||||
extern const char* const MSG_USB_PRINTING_LANG_TABLE[LANG_NUM];
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@
|
|||
#define MSG_PLEASE_WAIT "Prosim cekejte"
|
||||
#define MSG_LOADING_COLOR "Cisteni barvy"
|
||||
#define MSG_CHANGE_SUCCESS "Zmena uspesna!"
|
||||
#define MSG_PRESS "A stisknete tlacitko"
|
||||
#define MSG_PRESS "a stisknete tlacitko"
|
||||
#define MSG_INSERT_FILAMENT "Vlozte filament"
|
||||
#define MSG_CHANGING_FILAMENT "Vymena filamentu!"
|
||||
|
||||
|
|
@ -258,7 +258,8 @@
|
|||
#define MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ "Filamenty jsou srovnany. Pro uspesnou kalibraci prosim ocistete trysku. Po te potvrdte tlacitkem."
|
||||
#define MSG_CALIBRATE_E "Kalibrovat E"
|
||||
#define MSG_E_CAL_KNOB "Otacejte tlacitkem dokud znacka nedosahne tela extruderu. Potvrdte tlacitkem."
|
||||
#define MSG_MARK_FIL "Oznacte filament 100 mm od tela extruderu. Potvrdte tlacitkem."
|
||||
#define MSG_MARK_FIL "Oznacte filament 100 mm od tela extruderu a po te potvrdte tlacitkem."
|
||||
#define MSG_CLEAN_NOZZLE_E "E kalibrace ukoncena. Prosim ocistete trysku. Po te potvrdte tlacitkem."
|
||||
#define MSG_WAITING_TEMP "Cekani na zchladnuti trysky a podlozky."
|
||||
#define MSG_FILAMENT_CLEAN "Je barva cista?"
|
||||
#define MSG_FILAMENT_CLEAN "Je barva cista?"
|
||||
#define MSG_UNLOADING_FILAMENT "Vysouvam filament"
|
||||
|
|
@ -85,7 +85,7 @@
|
|||
#define(length=20) MSG_PLEASE_WAIT "Please wait"
|
||||
#define MSG_LOADING_COLOR "Loading color"
|
||||
#define MSG_CHANGE_SUCCESS "Change success!"
|
||||
#define(length=20) MSG_PRESS "And press the knob"
|
||||
#define(length=20) MSG_PRESS "and press the knob"
|
||||
#define(length=20) MSG_INSERT_FILAMENT "Insert filament"
|
||||
#define(length=20) MSG_CHANGING_FILAMENT "Changing filament!"
|
||||
|
||||
|
|
@ -250,6 +250,7 @@
|
|||
#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 heater and bed cooling"
|
||||
#define(length=20, lines=2) MSG_FILAMENT_CLEAN "Is color clear?"
|
||||
#define(lenght=20, lines=1) MSG_UNLOADING_FILAMENT "Unloading filament"
|
||||
|
||||
#define MSG_BED_CORRECTION_MENU "Bed level correct"
|
||||
#define MSG_BED_CORRECTION_LEFT "Left side um"
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@
|
|||
#define MSG_PLEASE_WAIT "Espera"
|
||||
#define MSG_LOADING_COLOR "Cargando color"
|
||||
#define MSG_CHANGE_SUCCESS "Cambiar bien!"
|
||||
#define MSG_PRESS "Y pulse el mando"
|
||||
#define MSG_PRESS "y pulse el mando"
|
||||
#define MSG_INSERT_FILAMENT "Inserta filamento"
|
||||
#define MSG_CHANGING_FILAMENT "Cambiando fil.!"
|
||||
#define MSG_SILENT_MODE_ON "Modo [silencio]"
|
||||
|
|
@ -252,3 +252,4 @@
|
|||
#define MSG_CLEAN_NOZZLE_E "E calibrado. Limpiar la boquilla. Haga clic una vez terminado."
|
||||
#define MSG_WAITING_TEMP "Esperando enfriamiento de la cama y del extrusor."
|
||||
#define MSG_FILAMENT_CLEAN "Es el nuevo color nitido?"
|
||||
#define MSG_UNLOADING_FILAMENT "Soltando filamento"
|
||||
|
|
@ -64,27 +64,27 @@
|
|||
#define MSG_SUPPORT "Support"
|
||||
#define MSG_YES "Si"
|
||||
#define MSG_NO "No"
|
||||
#define MSG_NOT_LOADED "Fil. no cargado"
|
||||
#define MSG_NOT_COLOR "Color no claro"
|
||||
#define MSG_LOADING_COLOR "Cargando color"
|
||||
#define MSG_CHANGE_SUCCESS "Cambia. riuscito!"
|
||||
#define MSG_PRESS "Y pulse el mando"
|
||||
#define MSG_NOT_LOADED "Fil. non caricato"
|
||||
#define MSG_NOT_COLOR "Colore non puro"
|
||||
#define MSG_LOADING_COLOR "Caricando colore"
|
||||
#define MSG_CHANGE_SUCCESS "Cambio riuscito!"
|
||||
#define MSG_PRESS "e cliccare manopola"
|
||||
#define MSG_INSERT_FILAMENT "Inserire filamento"
|
||||
#define MSG_CHANGING_FILAMENT "Mutevole fil.!"
|
||||
#define MSG_CHANGING_FILAMENT "Cambiando filam."
|
||||
|
||||
#define MSG_PLEASE_WAIT "Aspetta"
|
||||
#define MSG_PREHEAT_NOZZLE "Preris. ugello!"
|
||||
#define MSG_HEATING_COMPLETE "Riscaldamento fatto."
|
||||
#define MSG_BED_HEATING "Piatto riscaldam."
|
||||
#define MSG_HEATING_COMPLETE "Riscald. completo"
|
||||
#define MSG_BED_HEATING "Riscald. letto"
|
||||
#define MSG_BED_DONE "Piatto fatto."
|
||||
#define MSG_ERROR "ERROR:"
|
||||
#define MSG_ERROR "ERRORE:"
|
||||
#define MSG_CORRECTLY "Cambiato corr.?"
|
||||
#define MSG_LOADING_FILAMENT "Cargando fil."
|
||||
#define MSG_LOADING_FILAMENT "Caricando filam."
|
||||
#define MSG_UNLOAD_FILAMENT "Scarica filamento"
|
||||
#define MSG_LOAD_FILAMENT "Carica filamento"
|
||||
|
||||
#define MSG_SILENT_MODE_ON "Modo [silenzioso]"
|
||||
#define MSG_SILENT_MODE_OFF "Mode [prestante]"
|
||||
#define MSG_SILENT_MODE_OFF "Mode [forte]"
|
||||
#define MSG_REBOOT "Riavvia stampante"
|
||||
#define MSG_TAKE_EFFECT " per attualizzare"
|
||||
|
||||
|
|
@ -247,3 +247,4 @@
|
|||
#define MSG_CLEAN_NOZZLE_E "Calibrazione E terminata. Si prega di pulire l'ugello. Click per continuare."
|
||||
#define MSG_WAITING_TEMP "In attesa del raffreddamento della testina e del piatto."
|
||||
#define MSG_FILAMENT_CLEAN "Il colore e' nitido?"
|
||||
#define MSG_UNLOADING_FILAMENT "Rilasc. filamento"
|
||||
|
|
@ -257,4 +257,5 @@
|
|||
#define MSG_MARK_FIL "Prosze oznaczyc filament 100 mm od ciala ekstrudera. Potwierdzic przyciskiem."
|
||||
#define MSG_CLEAN_NOZZLE_E "Kalibracja E skonczona. Prosze oczyscic dysze. Potem potwierdzic przyciskiem. "
|
||||
#define MSG_WAITING_TEMP "Oczekiwanie na wychlodzenie dyszy i podkladki."
|
||||
#define MSG_FILAMENT_CLEAN "Czy kolor jest czysty?"
|
||||
#define MSG_FILAMENT_CLEAN "Czy kolor jest czysty?"
|
||||
#define MSG_UNLOADING_FILAMENT "Wysuwam filament"
|
||||
|
|
@ -497,62 +497,6 @@ static void lcd_status_screen()
|
|||
|
||||
void lcd_commands()
|
||||
{
|
||||
if (lcd_commands_type == LCD_COMMAND_LOAD_FILAMENT) //// load filament sequence
|
||||
{
|
||||
if (lcd_commands_step == 0) { lcd_commands_step = 7; custom_message = true;}
|
||||
if (lcd_commands_step == 1 && !blocks_queued())
|
||||
{
|
||||
lcd_commands_step = 0;
|
||||
lcd_commands_type = 0;
|
||||
lcd_setstatuspgm(WELCOME_MSG);
|
||||
disable_z();
|
||||
custom_message = false;
|
||||
custom_message_type = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (lcd_commands_step == 2 && !blocks_queued())
|
||||
{
|
||||
lcd_commands_step = lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_FILAMENT_CLEAN) ? 1 : 4;
|
||||
lcd_update_enable(true);
|
||||
lcdDrawUpdate = 2;
|
||||
|
||||
}
|
||||
if (lcd_commands_step == 3 && !blocks_queued()) {
|
||||
lcd_commands_step = farm_mode ? 1:2; //don't show question about clear color if we are in farm mode
|
||||
}
|
||||
|
||||
if (lcd_commands_step == 4 && !blocks_queued())
|
||||
{
|
||||
//lcd_setstatuspgm(MSG_LOADING_FILAMENT);
|
||||
enquecommand_P(PSTR(LOAD_FILAMENT_2)); //slow_sequence
|
||||
lcd_commands_step = 3;
|
||||
}
|
||||
if (lcd_commands_step == 5 && !blocks_queued())
|
||||
{
|
||||
enquecommand_P(PSTR(LOAD_FILAMENT_1)); //fast sequence
|
||||
lcd_setstatuspgm(MSG_LOADING_FILAMENT);
|
||||
//enquecommand_P(PSTR("G4")); //dwell
|
||||
lcd_commands_step = 4;
|
||||
}
|
||||
if (lcd_commands_step == 6 && !blocks_queued())
|
||||
{
|
||||
lcd_setstatuspgm(MSG_INSERT_FILAMENT);
|
||||
enquecommand_P(PSTR(LOAD_FILAMENT_0)); //set E relative
|
||||
enquecommand_P(PSTR("G1 E0.1 F400"));
|
||||
lcd_commands_step = 5;
|
||||
}
|
||||
if (lcd_commands_step == 7 && !blocks_queued())
|
||||
{
|
||||
lcd_setstatuspgm(MSG_PLEASE_WAIT);
|
||||
enable_z();
|
||||
custom_message = true;
|
||||
custom_message_type = 2;
|
||||
lcd_commands_step = 6;
|
||||
}
|
||||
}
|
||||
|
||||
if (lcd_commands_type == LCD_COMMAND_STOP_PRINT) /// stop print
|
||||
{
|
||||
|
||||
|
|
@ -582,6 +526,9 @@ void lcd_commands()
|
|||
{
|
||||
// M84: Disable steppers.
|
||||
enquecommand_P(PSTR("M84"));
|
||||
#ifdef SNMM
|
||||
enquecommand_P(PSTR("PRUSA ResF")); //resets flag at the end of the print (used for SNMM)
|
||||
#endif
|
||||
autotempShutdown();
|
||||
lcd_commands_step = 2;
|
||||
}
|
||||
|
|
@ -912,9 +859,8 @@ void lcd_unLoadFilament()
|
|||
{
|
||||
|
||||
if (degHotend0() > EXTRUDE_MINTEMP) {
|
||||
|
||||
enquecommand_P(PSTR(UNLOAD_FILAMENT_0));
|
||||
enquecommand_P(PSTR(UNLOAD_FILAMENT_1));
|
||||
|
||||
enquecommand_P(PSTR("M702")); //unload filament
|
||||
|
||||
} else {
|
||||
|
||||
|
|
@ -1122,10 +1068,9 @@ void lcd_LoadFilament()
|
|||
if (degHotend0() > EXTRUDE_MINTEMP)
|
||||
{
|
||||
custom_message = true;
|
||||
lcd_commands_type = LCD_COMMAND_LOAD_FILAMENT;
|
||||
SERIAL_ECHOLN("Loading filament");
|
||||
// commands() will handle the rest
|
||||
|
||||
loading_flag = true;
|
||||
enquecommand_P(PSTR("M701")); //load filament
|
||||
SERIAL_ECHOLN("Loading filament");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1767,49 +1712,58 @@ void lcd_wait_for_click()
|
|||
}
|
||||
}
|
||||
|
||||
int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting)
|
||||
int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting, bool default_yes)
|
||||
{
|
||||
lcd_display_message_fullscreen_P(msg);
|
||||
|
||||
lcd.setCursor(1, 2);
|
||||
lcd_printPGM(MSG_YES);
|
||||
lcd.setCursor(0, 3);
|
||||
lcd_printPGM(PSTR(">"));
|
||||
lcd_printPGM(MSG_NO);
|
||||
bool yes = false;
|
||||
lcd_display_message_fullscreen_P(msg);
|
||||
|
||||
if (default_yes) {
|
||||
lcd.setCursor(0, 2);
|
||||
lcd_printPGM(PSTR(">"));
|
||||
lcd_printPGM(MSG_YES);
|
||||
lcd.setCursor(1, 3);
|
||||
lcd_printPGM(MSG_NO);
|
||||
}
|
||||
else {
|
||||
lcd.setCursor(1, 2);
|
||||
lcd_printPGM(MSG_YES);
|
||||
lcd.setCursor(0, 3);
|
||||
lcd_printPGM(PSTR(">"));
|
||||
lcd_printPGM(MSG_NO);
|
||||
}
|
||||
bool yes = default_yes ? true : false;
|
||||
|
||||
// Wait for user confirmation or a timeout.
|
||||
unsigned long previous_millis_cmd = millis();
|
||||
int8_t enc_dif = encoderDiff;
|
||||
for (;;) {
|
||||
if (allow_timeouting && millis() - previous_millis_cmd > LCD_TIMEOUT_TO_STATUS)
|
||||
return -1;
|
||||
manage_heater();
|
||||
manage_inactivity(true);
|
||||
if (abs((enc_dif - encoderDiff)) > 4) {
|
||||
if (abs(enc_dif - encoderDiff) > 1) {
|
||||
lcd.setCursor(0, 2);
|
||||
if (enc_dif > encoderDiff && yes) {
|
||||
lcd_printPGM((PSTR(" ")));
|
||||
lcd.setCursor(0, 3);
|
||||
lcd_printPGM((PSTR(">")));
|
||||
yes = false;
|
||||
} else if (enc_dif < encoderDiff && ! yes) {
|
||||
lcd_printPGM((PSTR(">")));
|
||||
lcd.setCursor(0, 3);
|
||||
lcd_printPGM((PSTR(" ")));
|
||||
yes = true;
|
||||
}
|
||||
enc_dif = encoderDiff;
|
||||
}
|
||||
}
|
||||
if (lcd_clicked()) {
|
||||
while (lcd_clicked()) ;
|
||||
delay(10);
|
||||
while (lcd_clicked()) ;
|
||||
return yes;
|
||||
}
|
||||
}
|
||||
// Wait for user confirmation or a timeout.
|
||||
unsigned long previous_millis_cmd = millis();
|
||||
int8_t enc_dif = encoderDiff;
|
||||
for (;;) {
|
||||
if (allow_timeouting && millis() - previous_millis_cmd > LCD_TIMEOUT_TO_STATUS)
|
||||
return -1;
|
||||
manage_heater();
|
||||
manage_inactivity(true);
|
||||
if (abs(enc_dif - encoderDiff) > 4) {
|
||||
lcd.setCursor(0, 2);
|
||||
if (enc_dif > encoderDiff && yes) {
|
||||
lcd_printPGM((PSTR(" ")));
|
||||
lcd.setCursor(0, 3);
|
||||
lcd_printPGM((PSTR(">")));
|
||||
yes = false;
|
||||
}
|
||||
else if (enc_dif < encoderDiff && !yes) {
|
||||
lcd_printPGM((PSTR(">")));
|
||||
lcd.setCursor(0, 3);
|
||||
lcd_printPGM((PSTR(" ")));
|
||||
yes = true;
|
||||
}
|
||||
enc_dif = encoderDiff;
|
||||
}
|
||||
if (lcd_clicked()) {
|
||||
while (lcd_clicked());
|
||||
delay(10);
|
||||
while (lcd_clicked());
|
||||
return yes;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void lcd_bed_calibration_show_result(BedSkewOffsetDetectionResultType result, uint8_t point_too_far_mask)
|
||||
|
|
@ -2264,14 +2218,15 @@ void lcd_mesh_calibration_z()
|
|||
void lcd_calibrate_extruder() {
|
||||
if (degHotend0() > EXTRUDE_MINTEMP)
|
||||
{
|
||||
current_position[E_AXIS] = 0;
|
||||
current_position[E_AXIS] = 0; //set initial position to zero
|
||||
plan_set_e_position(current_position[E_AXIS]);
|
||||
|
||||
long steps_start = current_position[E_AXIS]*axis_steps_per_unit[E_AXIS];
|
||||
|
||||
//long steps_start = st_get_position(E_AXIS);
|
||||
|
||||
long steps_final;
|
||||
float e_steps_per_unit;
|
||||
float feedrate = (180 / axis_steps_per_unit[E_AXIS]) * 5;
|
||||
float e_shift_calibration = (axis_steps_per_unit[E_AXIS] > 180 ) ? ((180 / axis_steps_per_unit[E_AXIS]) * 70): 70;
|
||||
float feedrate = (180 / axis_steps_per_unit[E_AXIS]) * 3; //initial automatic extrusion feedrate (depends on current value of axis_steps_per_unit to avoid too fast extrusion)
|
||||
float e_shift_calibration = (axis_steps_per_unit[E_AXIS] > 180 ) ? ((180 / axis_steps_per_unit[E_AXIS]) * 70): 70; //length of initial automatic extrusion sequence
|
||||
const char *msg_e_cal_knob = MSG_E_CAL_KNOB;
|
||||
const char *msg_next_e_cal_knob = lcd_display_message_fullscreen_P(msg_e_cal_knob);
|
||||
const bool multi_screen = msg_next_e_cal_knob != NULL;
|
||||
|
|
@ -2298,7 +2253,7 @@ void lcd_calibrate_extruder() {
|
|||
|
||||
//manage_inactivity(true);
|
||||
manage_heater();
|
||||
if (abs(encoderDiff) >= ENCODER_PULSES_PER_STEP) {
|
||||
if (abs(encoderDiff) >= ENCODER_PULSES_PER_STEP) { //adjusting mark by knob rotation
|
||||
delay_keep_alive(50);
|
||||
//previous_millis_cmd = millis();
|
||||
encoderPosition += (encoderDiff / ENCODER_PULSES_PER_STEP);
|
||||
|
|
@ -2313,9 +2268,10 @@ void lcd_calibrate_extruder() {
|
|||
}
|
||||
|
||||
steps_final = current_position[E_AXIS] * axis_steps_per_unit[E_AXIS];
|
||||
//steps_final = st_get_position(E_AXIS);
|
||||
lcdDrawUpdate = 1;
|
||||
e_steps_per_unit = ((float)(steps_final - steps_start)) / 100.f;
|
||||
if (e_steps_per_unit < MIN_E_STEPS_PER_UNIT) e_steps_per_unit = MIN_E_STEPS_PER_UNIT;
|
||||
e_steps_per_unit = ((float)(steps_final)) / 100.0f;
|
||||
if (e_steps_per_unit < MIN_E_STEPS_PER_UNIT) e_steps_per_unit = MIN_E_STEPS_PER_UNIT;
|
||||
if (e_steps_per_unit > MAX_E_STEPS_PER_UNIT) e_steps_per_unit = MAX_E_STEPS_PER_UNIT;
|
||||
|
||||
lcd_implementation_clear();
|
||||
|
|
@ -4203,6 +4159,8 @@ static void menu_action_function(menuFunc_t data) {
|
|||
}
|
||||
static void menu_action_sdfile(const char* filename, char* longFilename)
|
||||
{
|
||||
loading_flag = false;
|
||||
|
||||
char cmd[30];
|
||||
char* c;
|
||||
sprintf_P(cmd, PSTR("M23 %s"), filename);
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ void lcd_mylang();
|
|||
extern void lcd_wait_for_click();
|
||||
extern void lcd_show_fullscreen_message_and_wait_P(const char *msg);
|
||||
// 0: no, 1: yes, -1: timeouted
|
||||
extern int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting = true);
|
||||
extern int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting = true, bool default_yes = false);
|
||||
|
||||
// Ask the user to move the Z axis up to the end stoppers and let
|
||||
// the user confirm that it has been done.
|
||||
|
|
|
|||
Loading…
Reference in New Issue