diff --git a/Marlin/language.h b/Marlin/language.h index 3268971ff1..15ebb98711 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -114,6 +114,8 @@ #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" #define MSG_AUTORETRACT "AutoRetr." #define MSG_FILAMENTCHANGE "Change filament" + #define MSG_INIT_SDCARD "Init. SD-Card" + #define MSG_CNG_SDCARD "Change SD-Card" // Serial Console Messages @@ -259,6 +261,7 @@ #define MSG_NO_CARD "Brak karty" #define MSG_DWELL "Uspij..." #define MSG_USERWAIT "Czekaj na uzytkownika..." + #define MSG_RESUMING "Wznawiam drukowanie" #define MSG_NO_MOVE "Brak ruchu." #define MSG_PART_RELEASE "Czesciowe zwolnienie" #define MSG_KILLED "Ubity. " @@ -985,88 +988,83 @@ #define WELCOME_MSG MACHINE_NAME " Pronto." #define MSG_SD_INSERTED "SD Card inserita" #define MSG_SD_REMOVED "SD Card rimossa" - #define MSG_MAIN " Menu principale \003" - #define MSG_AUTOSTART " Autostart" - #define MSG_DISABLE_STEPPERS " Disabilita Motori Passo-Passo" - #define MSG_AUTO_HOME " Auto Home" - #define MSG_SET_ORIGIN " Imposta Origini Assi" - #define MSG_PREHEAT_PLA " Preriscalda PLA" - #define MSG_PREHEAT_PLA_SETTINGS " Impostazioni Preriscaldamento PLA" - #define MSG_PREHEAT_ABS " Preriscalda ABS" - #define MSG_PREHEAT_ABS_SETTINGS " Impostazioni Preriscaldamento ABS" - #define MSG_COOLDOWN " Rafredda" - #define MSG_EXTRUDE " Estrudi" - #define MSG_RETRACT " Ritrai" - #define MSG_MOVE_AXIS " Muovi Asse \x7E" - #define MSG_SPEED " Velcità:" - #define MSG_NOZZLE " \002Ugello:" - #define MSG_NOZZLE1 " \002Ugello2:" - #define MSG_NOZZLE2 " \002Ugello3:" - #define MSG_BED " \002Piatto:" - #define MSG_FAN_SPEED " Velocità Ventola:" - #define MSG_FLOW " Flusso:" - #define MSG_CONTROL " Controllo \003" + #define MSG_MAIN "Menu principale" + #define MSG_AUTOSTART "Autostart" + #define MSG_DISABLE_STEPPERS "Disabilita Motori" + #define MSG_AUTO_HOME "Auto Home" + #define MSG_SET_ORIGIN "Imposta Origine" + #define MSG_PREHEAT_PLA "Preriscalda PLA" + #define MSG_PREHEAT_PLA_SETTINGS "Preris. PLA Conf" + #define MSG_PREHEAT_ABS "Preriscalda ABS" + #define MSG_PREHEAT_ABS_SETTINGS "Preris. ABS Conf" + #define MSG_COOLDOWN "Rafredda" + #define MSG_EXTRUDE "Estrudi" + #define MSG_RETRACT "Ritrai" + #define MSG_MOVE_AXIS "Muovi Asse" + #define MSG_SPEED "Velcità" + #define MSG_NOZZLE "Ugello" + #define MSG_NOZZLE1 "Ugello2" + #define MSG_NOZZLE2 "Ugello3" + #define MSG_BED "Piatto" + #define MSG_FAN_SPEED "Ventola" + #define MSG_FLOW "Flusso" + #define MSG_CONTROL "Controllo" #define MSG_MIN " \002 Min:" #define MSG_MAX " \002 Max:" #define MSG_FACTOR " \002 Fact:" - #define MSG_AUTOTEMP " Autotemp:" + #define MSG_AUTOTEMP "Autotemp" #define MSG_ON "On " #define MSG_OFF "Off" - #define MSG_PID_P " PID-P: " - #define MSG_PID_I " PID-I: " - #define MSG_PID_D " PID-D: " - #define MSG_PID_C " PID-C: " - #define MSG_ACC " Acc:" - #define MSG_VXY_JERK " Vxy-jerk: " - #define MSG_VMAX " Vmax " - #define MSG_X "x:" - #define MSG_Y "y:" - #define MSG_Z "z:" - #define MSG_E "e:" - #define MSG_VMIN " Vmin:" - #define MSG_VTRAV_MIN " VTrav min:" - #define MSG_AMAX " Amax " - #define MSG_A_RETRACT " A-ritrai:" - #define MSG_XSTEPS " Xpassi/mm:" - #define MSG_YSTEPS " Ypassi/mm:" - #define MSG_ZSTEPS " Zpassi/mm:" - #define MSG_ESTEPS " Epassi/mm:" - #define MSG_MAIN_WIDE " Menu Principale \003" - #define MSG_RECTRACT_WIDE " Ritrai \x7E" - #define MSG_TEMPERATURE_WIDE " Temperatura \x7E" - #define MSG_TEMPERATURE_RTN " Temperatura \003" - #define MSG_MOTION_WIDE " Movimento \x7E" - #define MSG_STORE_EPROM " Salva in memoria" - #define MSG_LOAD_EPROM " Carica dalla memoria" - #define MSG_RESTORE_FAILSAFE " Configurazioni di default" - #define MSG_REFRESH "\004Aggiorna" - #define MSG_WATCH " Guarda \003" - #define MSG_PREPARE " Prepara \x7E" - #define MSG_PREPARE_ALT " Prepara \003" - #define MSG_CONTROL_ARROW " Controllo \x7E" - #define MSG_RETRACT_ARROW " Ritrai \x7E" - #define MSG_TUNE " Tune \x7E" - #define MSG_PAUSE_PRINT " Metti in Pausa la Stampa \x7E" - #define MSG_RESUME_PRINT " Riprendi Stampa \x7E" - #define MSG_STOP_PRINT " Arresta Stampa \x7E" - #define MSG_CARD_MENU " Card Menu \x7E" - #define MSG_NO_CARD " No Card" - #define MSG_DWELL " Sospensione..." - #define MSG_USERWAIT "Attendi utente..." - #define MSG_RESUMING "Riprendi stampa" - #define MSG_NO_MOVE "Nessun movimento." - #define MSG_PART_RELEASE "Rilascio Parziale" + #define MSG_PID_P "PID-P" + #define MSG_PID_I "PID-I" + #define MSG_PID_D "PID-D" + #define MSG_PID_C "PID-C" + #define MSG_ACC "Accel" + #define MSG_VXY_JERK "Vxy-jerk" + #define MSG_VMAX "Vmax" + #define MSG_X "x" + #define MSG_Y "y" + #define MSG_Z "z" + #define MSG_E "e" + #define MSG_VMIN "Vmin" + #define MSG_VTRAV_MIN "VTrav min" + #define MSG_AMAX "Amax" + #define MSG_A_RETRACT "A-retract" + #define MSG_XSTEPS "Xpassi/mm" + #define MSG_YSTEPS "Ypassi/mm" + #define MSG_ZSTEPS "Zpassi/mm" + #define MSG_ESTEPS "Epassi/mm" + #define MSG_RECTRACT "Ritrai" + #define MSG_TEMPERATURE "Temperatura" + #define MSG_MOTION "Movimento" + #define MSG_STORE_EPROM "Salva in EEPROM" + #define MSG_LOAD_EPROM "Carica da EEPROM" + #define MSG_RESTORE_FAILSAFE "Impostaz. default" + #define MSG_REFRESH "Aggiorna" + #define MSG_WATCH "Guarda" + #define MSG_PREPARE "Prepara" + #define MSG_TUNE "Adatta" + #define MSG_PAUSE_PRINT "Pausa" + #define MSG_RESUME_PRINT "Riprendi Stampa" + #define MSG_STOP_PRINT "Arresta Stampa" + #define MSG_CARD_MENU "SD Card Menu" + #define MSG_NO_CARD "No SD Card" + #define MSG_DWELL "Sospensione..." + #define MSG_USERWAIT "Attendi Utente..." + #define MSG_RESUMING "Riprendi Stampa" + #define MSG_NO_MOVE "Nessun Movimento." #define MSG_KILLED "UCCISO. " #define MSG_STOPPED "ARRESTATO. " - #define MSG_STEPPER_RELEASED "Rilasciato." - #define MSG_CONTROL_RETRACT " Ritrai mm:" - #define MSG_CONTROL_RETRACTF " Ritrai F:" - #define MSG_CONTROL_RETRACT_ZLIFT " Salta mm:" - #define MSG_CONTROL_RETRACT_RECOVER " UnRet +mm:" - #define MSG_CONTROL_RETRACT_RECOVERF " UnRet F:" - #define MSG_AUTORETRACT " AutoRilascio.:" + #define MSG_CONTROL_RETRACT "Ritrai mm" + #define MSG_CONTROL_RETRACTF "Ritrai F" + #define MSG_CONTROL_RETRACT_ZLIFT "Salta mm" + #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" + #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" + #define MSG_AUTORETRACT "AutoArretramento" #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Qualcosa non va in MenuStructure." - #define MSG_FILAMENTCHANGE "Change filament" + #define MSG_FILAMENTCHANGE "Cambia filamento" + #define MSG_INIT_SDCARD "Iniz. SD-Card" + #define MSG_CNG_SDCARD "Cambia SD-Card" // Serial Console Messages @@ -1083,10 +1081,10 @@ #define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: " #define MSG_OK "ok" #define MSG_FILE_SAVED "File Salvato." - #define MSG_ERR_LINE_NO "Il Numero della Linea non corrisponde al Numero dell'Ultima Linea+1, Ultima Linea:" - #define MSG_ERR_CHECKSUM_MISMATCH "checksum non corrispondente, Ultima Linea:" - #define MSG_ERR_NO_CHECKSUM "Nessun Checksum con Numero di Linea, Ultima Linea:" - #define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "Nessun Numero di Linea con Checksum, Ultima Linea:" + #define MSG_ERR_LINE_NO "Il Numero della Linea non corrisponde al Numero dell'Ultima Linea+1, Ultima Linea: " + #define MSG_ERR_CHECKSUM_MISMATCH "checksum non corrispondente, Ultima Linea: " + #define MSG_ERR_NO_CHECKSUM "Nessun Checksum con Numero di Linea, Ultima Linea: " + #define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "Nessun Numero di Linea con Checksum, Ultima Linea: " #define MSG_FILE_PRINTED "File stampato" #define MSG_BEGIN_FILE_LIST "Inizio Lista File" #define MSG_END_FILE_LIST "Fine Lista File" @@ -1096,15 +1094,15 @@ #define MSG_ERR_NO_THERMISTORS "Nessun Termistore - nessuna temperatura" #define MSG_M109_INVALID_EXTRUDER "M109 Estrusore non valido " #define MSG_HEATING "Riscaldamento..." - #define MSG_HEATING_COMPLETE "Riscaldamento concluso." + #define MSG_HEATING_COMPLETE "Stampante Calda." #define MSG_BED_HEATING "Riscaldamento Piatto." #define MSG_BED_DONE "Piatto Pronto." #define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) "\n" - #define MSG_COUNT_X " Calcola X:" + #define MSG_COUNT_X " Calcola X: " #define MSG_ERR_KILLED "Stampante Calda. kill() chiamata !!" #define MSG_ERR_STOPPED "Stampante fermata a causa di errori. Risolvi l'errore e usa M999 per ripartire!. (Reset temperatura. Impostala prima di ripartire)" #define MSG_RESEND "Reinviato:" - #define MSG_UNKNOWN_COMMAND "Comando sconosciuto:\"" + #define MSG_UNKNOWN_COMMAND "Comando sconosciuto: \"" #define MSG_ACTIVE_EXTRUDER "Attiva Estrusore: " #define MSG_INVALID_EXTRUDER "Estrusore non valido" #define MSG_X_MIN "x_min: " @@ -1125,16 +1123,16 @@ #define MSG_SD_CARD_OK "SD card ok" #define MSG_SD_WORKDIR_FAIL "Fallita l'apertura Cartella di Lavoro" #define MSG_SD_OPEN_FILE_FAIL "Fallita l'apertura del File: " - #define MSG_SD_FILE_OPENED "File aperto:" - #define MSG_SD_SIZE " Dimensione:" + #define MSG_SD_FILE_OPENED "File aperto: " + #define MSG_SD_SIZE " Dimensione: " #define MSG_SD_FILE_SELECTED "File selezionato" #define MSG_SD_WRITE_TO_FILE "Scrittura su file: " #define MSG_SD_PRINTING_BYTE "Si sta scrivendo il byte su SD " #define MSG_SD_NOT_PRINTING "Non si sta scrivendo su SD" #define MSG_SD_ERR_WRITE_TO_FILE "Errore nella scrittura su file" - #define MSG_SD_CANT_ENTER_SUBDIR "Impossibile entrare nella sottocartella:" + #define MSG_SD_CANT_ENTER_SUBDIR "Impossibile entrare nella sottocartella: " - #define MSG_STEPPER_TO_HIGH "Steprate troppo alto : " + #define MSG_STEPPER_TO_HIGH "Steprate troppo alto: " #define MSG_ENDSTOPS_HIT "Raggiunto il fondo carrello: " #define MSG_ERR_COLD_EXTRUDE_STOP " prevenuta estrusione fredda" #define MSG_ERR_LONG_EXTRUDE_STOP " prevenuta estrusione troppo lunga" diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 6176136cd3..31b570ca64 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -199,9 +199,15 @@ static void lcd_main_menu() MENU_ITEM(function, MSG_STOP_PRINT, lcd_sdcard_stop); }else{ MENU_ITEM(submenu, MSG_CARD_MENU, lcd_sdcard_menu); +#if SDCARDDETECT < 1 + MENU_ITEM(gcode, MSG_CNG_SDCARD, PSTR("M21")); // SD-card changed by user +#endif } }else{ MENU_ITEM(submenu, MSG_NO_CARD, lcd_sdcard_menu); +#if SDCARDDETECT < 1 + MENU_ITEM(gcode, MSG_INIT_SDCARD, PSTR("M21")); // Manually initialize the SD-card via user interface +#endif } #endif END_MENU(); @@ -516,9 +522,9 @@ static void lcd_control_motion_menu() MENU_ITEM_EDIT(float52, MSG_YSTEPS, &axis_steps_per_unit[Y_AXIS], 5, 9999); MENU_ITEM_EDIT(float51, MSG_ZSTEPS, &axis_steps_per_unit[Z_AXIS], 5, 9999); MENU_ITEM_EDIT(float51, MSG_ESTEPS, &axis_steps_per_unit[E_AXIS], 5, 9999); -#ifdef ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED - MENU_ITEM_EDIT(bool, "Endstop abort", &abort_on_endstop_hit); -#endif +#ifdef ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED + MENU_ITEM_EDIT(bool, "Endstop abort", &abort_on_endstop_hit); +#endif END_MENU(); } @@ -889,10 +895,10 @@ char *ftostr31(const float &x) char *ftostr32(const float &x) { - long xx=x*100; + long xx=x*100; if (xx >= 0) - conv[0]=(xx/10000)%10+'0'; - else + conv[0]=(xx/10000)%10+'0'; + else conv[0]='-'; xx=abs(xx); conv[1]=(xx/1000)%10+'0'; diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 58d75bd396..1d19b7718d 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -297,7 +297,12 @@ static void lcd_implementation_status_screen() static void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, char pre_char, char post_char) { char c; - uint8_t n = LCD_WIDTH - 1 - 2; + //Use all characters in narrow LCDs + #if LCD_WIDTH < 20 + uint8_t n = LCD_WIDTH - 1 - 1; + #else + uint8_t n = LCD_WIDTH - 1 - 2; + #endif lcd.setCursor(0, row); lcd.print(pre_char); while((c = pgm_read_byte(pstr)) != '\0') @@ -314,7 +319,12 @@ static void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, c static void lcd_implementation_drawmenu_setting_edit_generic(uint8_t row, const char* pstr, char pre_char, char* data) { char c; - uint8_t n = LCD_WIDTH - 1 - 2 - strlen(data); + //Use all characters in narrow LCDs + #if LCD_WIDTH < 20 + uint8_t n = LCD_WIDTH - 1 - 1 - strlen(data); + #else + uint8_t n = LCD_WIDTH - 1 - 2 - strlen(data); + #endif lcd.setCursor(0, row); lcd.print(pre_char); while((c = pgm_read_byte(pstr)) != '\0') @@ -331,7 +341,12 @@ static void lcd_implementation_drawmenu_setting_edit_generic(uint8_t row, const static void lcd_implementation_drawmenu_setting_edit_generic_P(uint8_t row, const char* pstr, char pre_char, const char* data) { char c; - uint8_t n = LCD_WIDTH - 1 - 2 - strlen_P(data); + //Use all characters in narrow LCDs + #if LCD_WIDTH < 20 + uint8_t n = LCD_WIDTH - 1 - 1 - strlen_P(data); + #else + uint8_t n = LCD_WIDTH - 1 - 2 - strlen_P(data); + #endif lcd.setCursor(0, row); lcd.print(pre_char); while((c = pgm_read_byte(pstr)) != '\0') @@ -366,7 +381,11 @@ void lcd_implementation_drawedit(const char* pstr, char* value) lcd.setCursor(1, 1); lcd_printPGM(pstr); lcd.print(':'); - lcd.setCursor(19 - strlen(value), 1); + #if LCD_WIDTH < 20 + lcd.setCursor(LCD_WIDTH - strlen(value), 1); + #else + lcd.setCursor(LCD_WIDTH -1 - strlen(value), 1); + #endif lcd.print(value); } static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char* pstr, const char* filename, char* longFilename)