diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index cbab1e1e..7944c253 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -42,6 +42,7 @@ #define EEPROM_BED_CORRECTION_RIGHT (EEPROM_BED_CORRECTION_LEFT-1) #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) // Currently running firmware, each digit stored as uint16_t. // The flavor differentiates a dev, alpha, beta, release candidate or a release version. @@ -282,6 +283,8 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) +#define Z_HEIGHT_HIDE_LIVE_ADJUST_MENU 2.0f + //============================= Bed Auto Leveling =========================== //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 5013c299..70350b92 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1017,6 +1017,9 @@ void setup() farm_no = 0; } + // Enable Toshiba FlashAir SD card / WiFi enahanced card. + card.ToshibaFlashAir_enable(eeprom_read_byte((unsigned char*)EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY) == 1); + if (eeprom_read_dword((uint32_t*)(EEPROM_TOP-4)) == 0x0ffffffff && eeprom_read_dword((uint32_t*)(EEPROM_TOP-8)) == 0x0ffffffff && eeprom_read_dword((uint32_t*)(EEPROM_TOP-12)) == 0x0ffffffff) { diff --git a/Firmware/Sd2Card.cpp b/Firmware/Sd2Card.cpp index 9cc376ac..76f76748 100644 --- a/Firmware/Sd2Card.cpp +++ b/Firmware/Sd2Card.cpp @@ -501,13 +501,15 @@ bool Sd2Card::readData(uint8_t* dst, uint16_t count) { #endif chipSelectHigh(); // Toshiba FlashAir Patch. Purge pending status byte. - spiSend(0XFF); + if (flash_air_compatible_) + spiSend(0XFF); return true; fail: chipSelectHigh(); // Toshiba FlashAir Patch. Purge pending status byte. - spiSend(0XFF); + if (flash_air_compatible_) + spiSend(0XFF); return false; } //------------------------------------------------------------------------------ diff --git a/Firmware/Sd2Card.h b/Firmware/Sd2Card.h index ab24f7ad..f3936f4d 100644 --- a/Firmware/Sd2Card.h +++ b/Firmware/Sd2Card.h @@ -162,7 +162,7 @@ uint8_t const SPI_SCK_PIN = SOFT_SPI_SCK_PIN; class Sd2Card { public: /** Construct an instance of Sd2Card. */ - Sd2Card() : errorCode_(SD_CARD_ERROR_INIT_NOT_CALLED), type_(0) {} + Sd2Card() : errorCode_(SD_CARD_ERROR_INIT_NOT_CALLED), type_(0), flash_air_compatible_(false) {} uint32_t cardSize(); bool erase(uint32_t firstBlock, uint32_t lastBlock); bool eraseSingleBlockEnable(); @@ -225,6 +225,9 @@ class Sd2Card { // Toshiba FlashAir support uint8_t readExtMemory(uint8_t mio, uint8_t func, uint32_t addr, uint16_t count, uint8_t* dst); + void setFlashAirCompatible(bool flashAirCompatible) { flash_air_compatible_ = flashAirCompatible; } + bool getFlashAirCompatible() const { return flash_air_compatible_; } + private: //---------------------------------------------------------------------------- uint8_t chipSelectPin_; @@ -232,6 +235,7 @@ class Sd2Card { uint8_t spiRate_; uint8_t status_; uint8_t type_; + bool flash_air_compatible_; // private functions uint8_t cardAcmd(uint8_t cmd, uint32_t arg) { cardCommand(CMD55, 0); diff --git a/Firmware/cardreader.h b/Firmware/cardreader.h index 9687ac1c..a488bee6 100644 --- a/Firmware/cardreader.h +++ b/Firmware/cardreader.h @@ -47,6 +47,8 @@ public: FORCE_INLINE uint8_t percentDone(){if(!isFileOpen()) return 0; if(filesize) return sdpos/((filesize+99)/100); else return 0;}; FORCE_INLINE char* getWorkDirName(){workDir.getFilename(filename);return filename;}; + bool ToshibaFlashAir_isEnabled() const { return card.getFlashAirCompatible(); } + void ToshibaFlashAir_enable(bool enable) { card.setFlashAirCompatible(enable); } bool ToshibaFlashAir_GetIP(uint8_t *ip); public: diff --git a/Firmware/langtool.pl b/Firmware/langtool.pl index 5d9983c9..29acc971 100644 --- a/Firmware/langtool.pl +++ b/Firmware/langtool.pl @@ -16,19 +16,30 @@ sub parselang my $out = {}; while (my $line = <$fh>) { chomp $line; - next if (index($line, 'MSG') == -1); - $line =~ /(?is)\#define\s*(\S*)\s*(.*)/; - my $symbol = $1; - my $v = $2; + next if (index($line, '#define') == -1 || index($line, 'MSG') == -1); + my $modifiers = {}; + my $symbol = ''; + my $value = ''; + if (index($line, '#define(') == -1) { + # Extended definition, which specifies the string formatting. + $line =~ /(?is)\#define\s*(\S*)\s*(.*)/; + $symbol = "$1"; + $value = $2; + } else { + $line =~ /(?is)\#define\((.*)\)\s*(\S*)\s*(.*)/; + my $options = $1; + $symbol = "$2"; + $value = $3; + } next if (! defined $symbol or length($symbol) == 0); # Trim whitespaces from both sides - $v =~ s/^\s+|\s+$//g; + $value =~ s/^\s+|\s+$//g; #$string =~ s/" MACHINE_NAME "/Prusa i3/; - $v =~ s/" FIRMWARE_URL "/https:\/\/github.com\/prusa3d\/Prusa-i3-Plus\//; - $v =~ s/" PROTOCOL_VERSION "/1.0/; - $v =~ s/" STRINGIFY\(EXTRUDERS\) "/1/; - $v =~ s/" MACHINE_UUID "/00000000-0000-0000-0000-000000000000/; - ${$out}{$symbol} = $v; + $value =~ s/" FIRMWARE_URL "/https:\/\/github.com\/prusa3d\/Prusa-i3-Plus\//; + $value =~ s/" PROTOCOL_VERSION "/1.0/; + $value =~ s/" STRINGIFY\(EXTRUDERS\) "/1/; + $value =~ s/" MACHINE_UUID "/00000000-0000-0000-0000-000000000000/; + ${$out}{$symbol} = { value=>$value, %$modifiers }; } return $out; } @@ -97,6 +108,7 @@ sub break_text_fullscreen } my %texts; +my %attributes; my $num_languages = 0; foreach my $lang (@langs) { my $symbols = parselang("language_$lang.h"); @@ -104,10 +116,11 @@ foreach my $lang (@langs) { if (! (exists $texts{$key})) { $texts{$key} = []; } + my $symbol_value = ${$symbols}{$key}; my $strings = $texts{$key}; die "Symbol $key defined first in $lang, undefined in the preceding language files." if (scalar(@$strings) != $num_languages); - push @$strings, ${$symbols}{$key}; + push @$strings, ${$symbol_value}{value}; } $num_languages += 1; foreach my $key (keys %texts) { diff --git a/Firmware/language_all.cpp b/Firmware/language_all.cpp index 12f07ac0..6b1ab22e 100644 --- a/Firmware/language_all.cpp +++ b/Firmware/language_all.cpp @@ -115,12 +115,14 @@ const char * const MSG_BABYSTEP_Z_LANG_TABLE[LANG_NUM] PROGMEM = { const char MSG_BABYSTEP_Z_NOT_SET_EN[] PROGMEM = "Printer has not been calibrated yet. Run calibration G-code to adjust Z height."; const char MSG_BABYSTEP_Z_NOT_SET_CZ[] PROGMEM = "Tiskarna nebyla jeste zkalibrovana. Spustte kalibracni G-kod a doladte Z."; +const char MSG_BABYSTEP_Z_NOT_SET_ES[] PROGMEM = "Impresora aun no calibrada. Ejecutar el G-code de calibracion para ajustar la altura de Z."; +const char MSG_BABYSTEP_Z_NOT_SET_PL[] PROGMEM = "Drukarka nie byla kalibrowana. Wlaczyc kalibracyjny G-kod i dostroic Z."; const char * const MSG_BABYSTEP_Z_NOT_SET_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BABYSTEP_Z_NOT_SET_EN, MSG_BABYSTEP_Z_NOT_SET_CZ, MSG_BABYSTEP_Z_NOT_SET_EN, - MSG_BABYSTEP_Z_NOT_SET_EN, - MSG_BABYSTEP_Z_NOT_SET_EN + MSG_BABYSTEP_Z_NOT_SET_ES, + MSG_BABYSTEP_Z_NOT_SET_PL }; const char MSG_BED_EN[] PROGMEM = "Bed"; @@ -137,42 +139,50 @@ const char * const MSG_BED_LANG_TABLE[LANG_NUM] PROGMEM = { 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_ES[] PROGMEM = "Hacia adelante um"; +const char MSG_BED_CORRECTION_FRONT_PL[] PROGMEM = "Do przodu [um]"; const char * const MSG_BED_CORRECTION_FRONT_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BED_CORRECTION_FRONT_EN, MSG_BED_CORRECTION_FRONT_CZ, MSG_BED_CORRECTION_FRONT_EN, - MSG_BED_CORRECTION_FRONT_EN, - MSG_BED_CORRECTION_FRONT_EN + MSG_BED_CORRECTION_FRONT_ES, + MSG_BED_CORRECTION_FRONT_PL }; 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_ES[] PROGMEM = "Hacia la izquierda um"; +const char MSG_BED_CORRECTION_LEFT_PL[] PROGMEM = "W lewo [um]"; const char * const MSG_BED_CORRECTION_LEFT_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BED_CORRECTION_LEFT_EN, MSG_BED_CORRECTION_LEFT_CZ, MSG_BED_CORRECTION_LEFT_EN, - MSG_BED_CORRECTION_LEFT_EN, - MSG_BED_CORRECTION_LEFT_EN + MSG_BED_CORRECTION_LEFT_ES, + MSG_BED_CORRECTION_LEFT_PL }; const char MSG_BED_CORRECTION_MENU_EN[] PROGMEM = "Bed level correct"; const char MSG_BED_CORRECTION_MENU_CZ[] PROGMEM = "Korekce podlozky"; +const char MSG_BED_CORRECTION_MENU_ES[] PROGMEM = "Nivel de cama correcto"; +const char MSG_BED_CORRECTION_MENU_PL[] PROGMEM = "Korekta podkladki"; const char * const MSG_BED_CORRECTION_MENU_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BED_CORRECTION_MENU_EN, MSG_BED_CORRECTION_MENU_CZ, MSG_BED_CORRECTION_MENU_EN, - MSG_BED_CORRECTION_MENU_EN, - MSG_BED_CORRECTION_MENU_EN + MSG_BED_CORRECTION_MENU_ES, + MSG_BED_CORRECTION_MENU_PL }; 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_ES[] PROGMEM = "Hacia atras um"; +const char MSG_BED_CORRECTION_REAR_PL[] PROGMEM = "Do tylu [um]"; const char * const MSG_BED_CORRECTION_REAR_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BED_CORRECTION_REAR_EN, MSG_BED_CORRECTION_REAR_CZ, MSG_BED_CORRECTION_REAR_EN, - MSG_BED_CORRECTION_REAR_EN, - MSG_BED_CORRECTION_REAR_EN + MSG_BED_CORRECTION_REAR_ES, + MSG_BED_CORRECTION_REAR_PL }; const char MSG_BED_CORRECTION_RESET_EN[] PROGMEM = "Reset"; @@ -182,12 +192,14 @@ const char * const MSG_BED_CORRECTION_RESET_LANG_TABLE[1] PROGMEM = { 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_ES[] PROGMEM = "Hacia la derecha um"; +const char MSG_BED_CORRECTION_RIGHT_PL[] PROGMEM = "W prawo [um]"; const char * const MSG_BED_CORRECTION_RIGHT_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BED_CORRECTION_RIGHT_EN, MSG_BED_CORRECTION_RIGHT_CZ, MSG_BED_CORRECTION_RIGHT_EN, - MSG_BED_CORRECTION_RIGHT_EN, - MSG_BED_CORRECTION_RIGHT_EN + MSG_BED_CORRECTION_RIGHT_ES, + MSG_BED_CORRECTION_RIGHT_PL }; const char MSG_BED_DONE_EN[] PROGMEM = "Bed done"; @@ -218,137 +230,169 @@ const char * const MSG_BED_HEATING_LANG_TABLE[LANG_NUM] PROGMEM = { const char MSG_BED_LEVELING_FAILED_POINT_HIGH_EN[] PROGMEM = "Bed leveling failed. Sensor triggered too high. Waiting for reset."; const char MSG_BED_LEVELING_FAILED_POINT_HIGH_CZ[] PROGMEM = "Kalibrace Z selhala. Sensor sepnul prilis vysoko. Cekam na reset."; +const char MSG_BED_LEVELING_FAILED_POINT_HIGH_ES[] PROGMEM = "Nivelacion cama fallada. El sensor funcino' demasiado temprano. Pendiente el reset."; +const char MSG_BED_LEVELING_FAILED_POINT_HIGH_PL[] PROGMEM = "Kalibracja Z niepowiedziona. Sensor dotknal zbyt wysoko. Czekam na reset."; const char * const MSG_BED_LEVELING_FAILED_POINT_HIGH_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BED_LEVELING_FAILED_POINT_HIGH_EN, MSG_BED_LEVELING_FAILED_POINT_HIGH_CZ, MSG_BED_LEVELING_FAILED_POINT_HIGH_EN, - MSG_BED_LEVELING_FAILED_POINT_HIGH_EN, - MSG_BED_LEVELING_FAILED_POINT_HIGH_EN + MSG_BED_LEVELING_FAILED_POINT_HIGH_ES, + MSG_BED_LEVELING_FAILED_POINT_HIGH_PL }; const char MSG_BED_LEVELING_FAILED_POINT_LOW_EN[] PROGMEM = "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset."; const char MSG_BED_LEVELING_FAILED_POINT_LOW_CZ[] PROGMEM = "Kalibrace Z selhala. Sensor nesepnul. Znecistena tryska? Cekam na reset."; +const char MSG_BED_LEVELING_FAILED_POINT_LOW_ES[] PROGMEM = "Nivelacion cama fallada. El sensor no funciono'. Escombros en la boquilla? Pendiente el reset."; +const char MSG_BED_LEVELING_FAILED_POINT_LOW_PL[] PROGMEM = "Kalibracja Z niepowiedziona. Sensor nie dotknal. Zanieczyszczona dysza? Czekam na 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, MSG_BED_LEVELING_FAILED_POINT_LOW_EN, - MSG_BED_LEVELING_FAILED_POINT_LOW_EN, - MSG_BED_LEVELING_FAILED_POINT_LOW_EN + MSG_BED_LEVELING_FAILED_POINT_LOW_ES, + MSG_BED_LEVELING_FAILED_POINT_LOW_PL }; const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_EN[] PROGMEM = "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."; const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_CZ[] PROGMEM = "Kalibrace Z selhala. Sensor je odpojeny nebo preruseny kabel. Cekam na reset."; +const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_ES[] PROGMEM = "Nivelacion cama fallada. Sensor desconectado o cables danados. Pendiente el reset."; +const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_PL[] PROGMEM = "Kalibracja Z niepowiedziona. Sensor jest odlaczony lub uszkodzony kabel. Czekam na reset."; const char * const MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_EN, MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_CZ, MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_EN, - MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_EN, - MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_EN + MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_ES, + MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_EN[] PROGMEM = "X/Y calibration failed. Front calibration points not reachable."; -const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_CZ[] PROGMEM = "Kalibrace X/Y selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu."; +const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_EN[] PROGMEM = "XYZ calibration failed. Front calibration points not reachable."; +const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_CZ[] PROGMEM = "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu."; +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 = "Kalibracja XYZ niepowiedziona. Przednie punkty kalibracyjne zbyt wysuniete do przodu. Wyrownac drukarke."; 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, MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_EN + MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_ES, + MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_EN[] PROGMEM = "X/Y calibration failed. Left front calibration point not reachable."; -const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_CZ[] PROGMEM = "Kalibrace X/Y selhala. Levy predni bod moc vpredu. Srovnejte tiskarnu."; +const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_EN[] PROGMEM = "XYZ calibration failed. Left front calibration point not reachable."; +const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_CZ[] PROGMEM = "Kalibrace XYZ selhala. Levy predni bod moc vpredu. Srovnejte tiskarnu."; +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 = "Kalibracja XYZ niepowiedziona. Lewy przedni punkt zbyt wysuniety do przodu. Wyrownac drukarke."; 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, MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_EN + MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_ES, + MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_EN[] PROGMEM = "X/Y calibration failed. Right front calibration point not reachable."; -const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_CZ[] PROGMEM = "Kalibrace X/Y selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu."; +const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_EN[] PROGMEM = "XYZ calibration failed. Right front calibration point not reachable."; +const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_CZ[] PROGMEM = "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu."; +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 = "Kalibracja XYZ niepowiedziona. Prawy przedni punkt zbyt wysuniety do przodu. Wyrownac drukarke."; 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, MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_EN + MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_ES, + MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_EN[] PROGMEM = "X/Y calibration failed. Please consult the manual."; -const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_CZ[] PROGMEM = "Kalibrace X/Y selhala. Nahlednete do manualu."; +const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_EN[] PROGMEM = "XYZ calibration failed. Please consult the manual."; +const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_CZ[] PROGMEM = "Kalibrace XYZ selhala. Nahlednete do manualu."; +const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_ES[] PROGMEM = "Calibracion XYZ fallada. Consultar el manual por favor."; +const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_PL[] PROGMEM = "Kalibracja XYZ niepowiedziona. Sprawdzic w instrukcji."; const char * const MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_EN, MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_CZ, MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_EN, - MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_EN, - MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_EN + MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_ES, + MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_EN[] PROGMEM = "X/Y calibration ok. X/Y axes are perpendicular."; -const char * const MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE[1] PROGMEM = { - MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_EN +const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_EN[] PROGMEM = "XYZ calibration ok. X/Y axes are perpendicular."; +const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_ES[] PROGMEM = "Calibracion XYZ ok. Ejes X/Y perpendiculares."; +const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_PL[] PROGMEM = "Kalibracja XYZ ok. Osie X/Y sa prostopadle."; +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_EN, + MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_EN, + MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_ES, + MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_EN[] PROGMEM = "X/Y calibration failed. Bed calibration point was not found."; -const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_CZ[] PROGMEM = "Kalibrace X/Y selhala. Kalibracni bod podlozky nenalezen."; +const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_EN[] PROGMEM = "XYZ calibration failed. Bed calibration point was not found."; +const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_CZ[] PROGMEM = "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen."; +const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_ES[] PROGMEM = "Calibracion XYZ fallada. Puntos de calibracion en la cama no encontrados."; +const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_PL[] PROGMEM = "Kalibracja XYZ niepowiedziona. Kalibracyjny punkt podkladki nieznaleziony."; const char * const MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_EN, MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_CZ, MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_EN, - MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_EN, - MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_EN + MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_ES, + MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_PL }; const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_EN[] PROGMEM = "X/Y skewed severly. Skew will be corrected automatically."; const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_CZ[] PROGMEM = "X/Y osy jsou silne zkosene. Zkoseni bude automaticky vyrovnano pri tisku."; +const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_ES[] PROGMEM = "X/Y muy distorsionado. La distorsion sera corregida automaticamente."; +const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_PL[] PROGMEM = "Osie X/Y sa mocno skosne. Skos bedzie automatycznie wyrownany przy druku."; const char * const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_EN, MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_CZ, MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_EN, - MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_EN, - MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_EN + MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_ES, + MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN[] PROGMEM = "X/Y calibration all right. X/Y axes are slightly skewed."; -const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_CZ[] PROGMEM = "Kalibrace X/Y v poradku. X/Y osy mirne zkosene."; +const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN[] PROGMEM = "XYZ calibration all right. X/Y axes are slightly skewed."; +const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_CZ[] PROGMEM = "Kalibrace XYZ v poradku. X/Y osy mirne zkosene."; +const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_ES[] PROGMEM = "Calibracion XYZ conseguida. Ejes X/Y un poco torcidos."; +const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_PL[] PROGMEM = "Kalibracja XYZ w porzadku. Osie X/Y lekko skosne."; const char * const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN, MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_CZ, MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN, - MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN, - MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN + MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_ES, + MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_EN[] PROGMEM = "X/Y calibration compromised. Front calibration points not reachable."; -const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_CZ[] PROGMEM = "Kalibrace X/Y nepresna. Predni kalibracni body moc vpredu."; +const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_EN[] PROGMEM = "XYZ calibration compromised. Front calibration points not reachable."; +const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_CZ[] PROGMEM = "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu."; +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 = "Kalibracja XYZ niedokladna. Przednie punkty kalibracyjne zbyt wysuniete do przodu."; 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, MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_EN + MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_ES, + MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_EN[] PROGMEM = "X/Y calibration compromised. Left front calibration point not reachable."; -const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_CZ[] PROGMEM = "Kalibrace X/Y nepresna. Levy predni bod moc vpredu."; +const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_EN[] PROGMEM = "XYZ calibration compromised. Left front calibration point not reachable."; +const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_CZ[] PROGMEM = "Kalibrace XYZ nepresna. Levy predni bod moc vpredu."; +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 * 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, MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_EN + MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_ES, + MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_PL }; -const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_EN[] PROGMEM = "X/Y calibration compromised. Right front calibration point not reachable."; -const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_CZ[] PROGMEM = "Kalibrace X/Y nepresna. Pravy predni bod moc vpredu."; +const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_EN[] PROGMEM = "XYZ calibration compromised. Right front calibration point not reachable."; +const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_CZ[] PROGMEM = "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu."; +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 * 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, MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_EN, - MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_EN + MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_ES, + MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_PL }; const char MSG_BEGIN_FILE_LIST_EN[] PROGMEM = "Begin file list"; @@ -361,24 +405,27 @@ const char * const MSG_BROWNOUT_RESET_LANG_TABLE[1] PROGMEM = { MSG_BROWNOUT_RESET_EN }; -const char MSG_CALIBRATE_BED_EN[] PROGMEM = "Calibrate X/Y"; -const char MSG_CALIBRATE_BED_CZ[] PROGMEM = "Kalibrace X/Y"; +const char MSG_CALIBRATE_BED_EN[] PROGMEM = "Calibrate XYZ"; +const char MSG_CALIBRATE_BED_CZ[] PROGMEM = "Kalibrace XYZ"; +const char MSG_CALIBRATE_BED_ES[] PROGMEM = "Calibra XYZ"; +const char MSG_CALIBRATE_BED_PL[] PROGMEM = "Kalibracja XYZ"; const char * const MSG_CALIBRATE_BED_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_CALIBRATE_BED_EN, MSG_CALIBRATE_BED_CZ, MSG_CALIBRATE_BED_EN, - MSG_CALIBRATE_BED_EN, - MSG_CALIBRATE_BED_EN + MSG_CALIBRATE_BED_ES, + MSG_CALIBRATE_BED_PL }; -const char MSG_CALIBRATE_BED_RESET_EN[] PROGMEM = "Reset X/Y calibr."; -const char MSG_CALIBRATE_BED_RESET_CZ[] PROGMEM = "Reset X/Y kalibr."; +const char MSG_CALIBRATE_BED_RESET_EN[] PROGMEM = "Reset XYZ calibr."; +const char MSG_CALIBRATE_BED_RESET_CZ[] PROGMEM = "Reset XYZ kalibr."; +const char MSG_CALIBRATE_BED_RESET_PL[] PROGMEM = "Reset kalibr. XYZ"; const char * const MSG_CALIBRATE_BED_RESET_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_CALIBRATE_BED_RESET_EN, MSG_CALIBRATE_BED_RESET_CZ, MSG_CALIBRATE_BED_RESET_EN, MSG_CALIBRATE_BED_RESET_EN, - MSG_CALIBRATE_BED_RESET_EN + MSG_CALIBRATE_BED_RESET_PL }; const char MSG_CARD_MENU_EN[] PROGMEM = "Print from SD"; @@ -438,22 +485,26 @@ const char * const MSG_CONFIGURATION_VER_LANG_TABLE[1] PROGMEM = { const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_EN[] PROGMEM = "Are left and right Z~carriages all up?"; const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_CZ[] PROGMEM = "Dojely oba Z voziky k~hornimu dorazu?"; +const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_ES[] PROGMEM = "Los carros Z izquierdo/derecho estan arriba al maximo?"; +const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_PL[] PROGMEM = "Oba wozki Z dojechaly do gornej ramy?"; 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, MSG_CONFIRM_CARRIAGE_AT_THE_TOP_EN, - MSG_CONFIRM_CARRIAGE_AT_THE_TOP_EN, - MSG_CONFIRM_CARRIAGE_AT_THE_TOP_EN + MSG_CONFIRM_CARRIAGE_AT_THE_TOP_ES, + MSG_CONFIRM_CARRIAGE_AT_THE_TOP_PL }; const char MSG_CONFIRM_NOZZLE_CLEAN_EN[] PROGMEM = "Please clean the nozzle for calibration. Click when done."; const char MSG_CONFIRM_NOZZLE_CLEAN_CZ[] PROGMEM = "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem."; +const char MSG_CONFIRM_NOZZLE_CLEAN_ES[] PROGMEM = "Limpiar boquilla para calibracion. Click cuando acabes."; +const char MSG_CONFIRM_NOZZLE_CLEAN_PL[] PROGMEM = "Dla prawidlowej kalibracji prosze oczyscic dysze. Potwierdzic guzikiem."; const char * const MSG_CONFIRM_NOZZLE_CLEAN_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_CONFIRM_NOZZLE_CLEAN_EN, MSG_CONFIRM_NOZZLE_CLEAN_CZ, MSG_CONFIRM_NOZZLE_CLEAN_EN, - MSG_CONFIRM_NOZZLE_CLEAN_EN, - MSG_CONFIRM_NOZZLE_CLEAN_EN + MSG_CONFIRM_NOZZLE_CLEAN_ES, + MSG_CONFIRM_NOZZLE_CLEAN_PL }; const char MSG_CONTRAST_EN[] PROGMEM = "LCD contrast"; @@ -732,32 +783,38 @@ const char * const MSG_FILE_SAVED_LANG_TABLE[1] PROGMEM = { const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN[] PROGMEM = "Searching bed"; const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_CZ[] PROGMEM = "Hledam kalibracni"; +const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_ES[] PROGMEM = "Buscando cama"; +const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_PL[] PROGMEM = "Szukam kalibracyjnego"; const char * const MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN, MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_CZ, MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN, - MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN, - MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN + MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_ES, + MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_PL }; const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN[] PROGMEM = "calibration point"; const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_CZ[] PROGMEM = "bod podlozky"; +const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_ES[] PROGMEM = "punto de calibracion"; +const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_PL[] PROGMEM = "punktu podkladki"; const char * const MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN, MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_CZ, MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN, - MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN, - MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN + MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_ES, + MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_PL }; const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_EN[] PROGMEM = " of 4"; const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_CZ[] PROGMEM = " z 4"; +const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_ES[] PROGMEM = " de 4"; +const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_PL[] PROGMEM = " z 4"; const char * const MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_EN, MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_CZ, MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_EN, - MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_EN, - MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_EN + MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_ES, + MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_PL }; const char MSG_FLOW_EN[] PROGMEM = "Flow"; @@ -883,32 +940,38 @@ const char * const MSG_HOTEND_OFFSET_LANG_TABLE[1] PROGMEM = { const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN[] PROGMEM = "Improving bed"; const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_CZ[] PROGMEM = "Zlepsuji presnost"; +const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_ES[] PROGMEM = "Mejorando cama"; +const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_PL[] PROGMEM = "Ulepszam dokladnosc"; const char * const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN, MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_CZ, MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN, - MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN, - MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN + MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_ES, + MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_PL }; const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN[] PROGMEM = "calibration point"; const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_CZ[] PROGMEM = "kalibracniho bodu"; +const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_ES[] PROGMEM = "punto de calibracion"; +const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_PL[] PROGMEM = "punktu kalibracyjnego"; const char * const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN, MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_CZ, MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN, - MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN, - MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN + MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_ES, + MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_PL }; const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_EN[] PROGMEM = " of 9"; const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_CZ[] PROGMEM = " z 9"; +const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_ES[] PROGMEM = " de 9"; +const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_PL[] PROGMEM = " z 9"; const char * const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_EN, MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_CZ, MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_EN, - MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_EN, - MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_EN + MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_ES, + MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_PL }; const char MSG_INIT_SDCARD_EN[] PROGMEM = "Init. SD card"; @@ -1085,6 +1148,16 @@ const char * const MSG_MAX_LANG_TABLE[1] PROGMEM = { MSG_MAX_EN }; +const char MSG_MENU_CALIBRATION_EN[] PROGMEM = "Calibration"; +const char MSG_MENU_CALIBRATION_CZ[] PROGMEM = "Kalibrace"; +const char * const MSG_MENU_CALIBRATION_LANG_TABLE[LANG_NUM] PROGMEM = { + MSG_MENU_CALIBRATION_EN, + MSG_MENU_CALIBRATION_CZ, + MSG_MENU_CALIBRATION_EN, + MSG_MENU_CALIBRATION_EN, + MSG_MENU_CALIBRATION_EN +}; + const char MSG_MESH_BED_LEVELING_EN[] PROGMEM = "Mesh Bed Leveling"; const char * const MSG_MESH_BED_LEVELING_LANG_TABLE[1] PROGMEM = { MSG_MESH_BED_LEVELING_EN @@ -1152,14 +1225,16 @@ const char * const MSG_MOVE_AXIS_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_MOVE_AXIS_PL }; -const char MSG_MOVE_CARRIAGE_TO_THE_TOP_EN[] PROGMEM = "Calibrating X/Y. Move Z carriage up to the end stoppers. Click when done."; -const char MSG_MOVE_CARRIAGE_TO_THE_TOP_CZ[] PROGMEM = "Kalibrace X/Y. Posunte prosim Z osu az k~hornimu dorazu. Potvrdte tlacitkem."; +const char MSG_MOVE_CARRIAGE_TO_THE_TOP_EN[] PROGMEM = "Calibrating XYZ. Move Z carriage up to the end stoppers. Click when done."; +const char MSG_MOVE_CARRIAGE_TO_THE_TOP_CZ[] PROGMEM = "Kalibrace XYZ. Posunte prosim Z osu az k~hornimu dorazu. Potvrdte tlacitkem."; +const char MSG_MOVE_CARRIAGE_TO_THE_TOP_ES[] PROGMEM = "Calibrando XYZ. Subir carro Z hasta maximo. Click cuando acabes."; +const char MSG_MOVE_CARRIAGE_TO_THE_TOP_PL[] PROGMEM = "Kalibracja XYZ. Prosze przesunac os Z do gornej ramy. Potwierdzic guzikiem."; 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, MSG_MOVE_CARRIAGE_TO_THE_TOP_EN, - MSG_MOVE_CARRIAGE_TO_THE_TOP_EN, - MSG_MOVE_CARRIAGE_TO_THE_TOP_EN + MSG_MOVE_CARRIAGE_TO_THE_TOP_ES, + MSG_MOVE_CARRIAGE_TO_THE_TOP_PL }; const char MSG_MOVE_E_EN[] PROGMEM = "Extruder"; @@ -1224,22 +1299,26 @@ const char * const MSG_MOVE_Z_LANG_TABLE[LANG_NUM] PROGMEM = { const char MSG_NEW_FIRMWARE_AVAILABLE_EN[] PROGMEM = "New firmware version available:"; const char MSG_NEW_FIRMWARE_AVAILABLE_CZ[] PROGMEM = "Vysla nova verze firmware:"; +const char MSG_NEW_FIRMWARE_AVAILABLE_ES[] PROGMEM = "Nuevo firmware disponible:"; +const char MSG_NEW_FIRMWARE_AVAILABLE_PL[] PROGMEM = "Wyszla nowa wersja firmware:"; const char * const MSG_NEW_FIRMWARE_AVAILABLE_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_NEW_FIRMWARE_AVAILABLE_EN, MSG_NEW_FIRMWARE_AVAILABLE_CZ, MSG_NEW_FIRMWARE_AVAILABLE_EN, - MSG_NEW_FIRMWARE_AVAILABLE_EN, - MSG_NEW_FIRMWARE_AVAILABLE_EN + MSG_NEW_FIRMWARE_AVAILABLE_ES, + MSG_NEW_FIRMWARE_AVAILABLE_PL }; const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_EN[] PROGMEM = "Please upgrade."; const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_CZ[] PROGMEM = "Prosim aktualizujte."; +const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_ES[] PROGMEM = "Actualizar por favor."; +const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_PL[] PROGMEM = "Prosze zaktualizowac."; const char * const MSG_NEW_FIRMWARE_PLEASE_UPGRADE_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_NEW_FIRMWARE_PLEASE_UPGRADE_EN, MSG_NEW_FIRMWARE_PLEASE_UPGRADE_CZ, MSG_NEW_FIRMWARE_PLEASE_UPGRADE_EN, - MSG_NEW_FIRMWARE_PLEASE_UPGRADE_EN, - MSG_NEW_FIRMWARE_PLEASE_UPGRADE_EN + MSG_NEW_FIRMWARE_PLEASE_UPGRADE_ES, + MSG_NEW_FIRMWARE_PLEASE_UPGRADE_PL }; const char MSG_NO_EN[] PROGMEM = "No"; @@ -2147,12 +2226,14 @@ const char * const MSG_SET_ORIGIN_LANG_TABLE[LANG_NUM] PROGMEM = { const char MSG_SHOW_END_STOPS_EN[] PROGMEM = "Show end stops"; const char MSG_SHOW_END_STOPS_CZ[] PROGMEM = "Zobraz konc. spinace"; +const char MSG_SHOW_END_STOPS_ES[] PROGMEM = "Ensena fin de paso"; +const char MSG_SHOW_END_STOPS_PL[] PROGMEM = "Pokaz krancowki"; const char * const MSG_SHOW_END_STOPS_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_SHOW_END_STOPS_EN, MSG_SHOW_END_STOPS_CZ, MSG_SHOW_END_STOPS_EN, - MSG_SHOW_END_STOPS_EN, - MSG_SHOW_END_STOPS_EN + MSG_SHOW_END_STOPS_ES, + MSG_SHOW_END_STOPS_PL }; const char MSG_SILENT_MODE_OFF_EN[] PROGMEM = "Mode [high power]"; @@ -2357,6 +2438,16 @@ const char * const MSG_TEMPERATURE_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_TEMPERATURE_PL }; +const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN[] PROGMEM = "SD card [normal]"; +const char * const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_LANG_TABLE[1] PROGMEM = { + MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN +}; + +const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN[] PROGMEM = "SD card [FlshAir]"; +const char * const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_LANG_TABLE[1] PROGMEM = { + MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN +}; + const char MSG_TUNE_EN[] PROGMEM = "Tune"; const char MSG_TUNE_CZ[] PROGMEM = "Ladit"; const char MSG_TUNE_IT[] PROGMEM = "Adatta"; diff --git a/Firmware/language_all.h b/Firmware/language_all.h index 10316b48..72225755 100644 --- a/Firmware/language_all.h +++ b/Firmware/language_all.h @@ -90,8 +90,8 @@ extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_LA #define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_LANG_TABLE) extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_LANG_TABLE[LANG_NUM]; #define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_LANG_TABLE) -extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE[1]; -#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE, 0) +extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE[LANG_NUM]; +#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE) extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_LANG_TABLE[LANG_NUM]; #define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_LANG_TABLE) extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_LANG_TABLE[LANG_NUM]; @@ -286,6 +286,8 @@ extern const char* const MSG_MAIN_LANG_TABLE[LANG_NUM]; #define MSG_MAIN LANG_TABLE_SELECT(MSG_MAIN_LANG_TABLE) extern const char* const MSG_MAX_LANG_TABLE[1]; #define MSG_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_MAX_LANG_TABLE, 0) +extern const char* const MSG_MENU_CALIBRATION_LANG_TABLE[LANG_NUM]; +#define MSG_MENU_CALIBRATION LANG_TABLE_SELECT(MSG_MENU_CALIBRATION_LANG_TABLE) extern const char* const MSG_MESH_BED_LEVELING_LANG_TABLE[1]; #define MSG_MESH_BED_LEVELING LANG_TABLE_SELECT_EXPLICIT(MSG_MESH_BED_LEVELING_LANG_TABLE, 0) extern const char* const MSG_MIN_LANG_TABLE[1]; @@ -542,6 +544,10 @@ extern const char* const MSG_TAKE_EFFECT_LANG_TABLE[LANG_NUM]; #define MSG_TAKE_EFFECT LANG_TABLE_SELECT(MSG_TAKE_EFFECT_LANG_TABLE) extern const char* const MSG_TEMPERATURE_LANG_TABLE[LANG_NUM]; #define MSG_TEMPERATURE LANG_TABLE_SELECT(MSG_TEMPERATURE_LANG_TABLE) +extern const char* const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_LANG_TABLE[1]; +#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF LANG_TABLE_SELECT_EXPLICIT(MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_LANG_TABLE, 0) +extern const char* const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_LANG_TABLE[1]; +#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON LANG_TABLE_SELECT_EXPLICIT(MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_LANG_TABLE, 0) 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]; diff --git a/Firmware/language_cz.h b/Firmware/language_cz.h index 7ac5f2aa..e0628dc1 100644 --- a/Firmware/language_cz.h +++ b/Firmware/language_cz.h @@ -279,10 +279,10 @@ #define MSG_USB_PRINTING "Tisk z USB " #define MSG_SHOW_END_STOPS "Zobraz konc. spinace" -#define MSG_CALIBRATE_BED "Kalibrace X/Y" -#define MSG_CALIBRATE_BED_RESET "Reset X/Y kalibr." +#define MSG_CALIBRATE_BED "Kalibrace XYZ" +#define MSG_CALIBRATE_BED_RESET "Reset XYZ kalibr." -#define MSG_MOVE_CARRIAGE_TO_THE_TOP "Kalibrace X/Y. Posunte prosim Z osu az k~hornimu dorazu. Potvrdte tlacitkem." +#define MSG_MOVE_CARRIAGE_TO_THE_TOP "Kalibrace XYZ. Posunte prosim Z osu az k~hornimu dorazu. Potvrdte tlacitkem." #define MSG_CONFIRM_NOZZLE_CLEAN "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem." #define MSG_CONFIRM_CARRIAGE_AT_THE_TOP "Dojely oba Z voziky k~hornimu dorazu?" @@ -293,17 +293,17 @@ #define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 "kalibracniho bodu" #define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3 " z 9" -#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND "Kalibrace X/Y selhala. Kalibracni bod podlozky nenalezen." -#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED "Kalibrace X/Y selhala. Nahlednete do manualu." -#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT "X/Y calibration ok. X/Y axes are perpendicular." -#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD "Kalibrace X/Y v poradku. X/Y osy mirne zkosene." +#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen." +#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED "Kalibrace XYZ selhala. Nahlednete do manualu." +#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT "XYZ calibration ok. X/Y axes are perpendicular." +#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD "Kalibrace XYZ v poradku. X/Y osy mirne zkosene." #define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME "X/Y osy jsou silne zkosene. Zkoseni bude automaticky vyrovnano pri tisku." -#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR "Kalibrace X/Y selhala. Levy predni bod moc vpredu. Srovnejte tiskarnu." -#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR "Kalibrace X/Y selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu." -#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR "Kalibrace X/Y selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu." -#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR "Kalibrace X/Y nepresna. Levy predni bod moc vpredu." -#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR "Kalibrace X/Y nepresna. Pravy predni bod moc vpredu." -#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR "Kalibrace X/Y nepresna. Predni kalibracni body moc vpredu." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR "Kalibrace XYZ selhala. Levy predni bod moc vpredu. Srovnejte tiskarnu." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR "Kalibrace XYZ nepresna. Levy predni bod moc vpredu." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu." #define MSG_BED_LEVELING_FAILED_POINT_LOW "Kalibrace Z selhala. Sensor nesepnul. Znecistena tryska? Cekam na reset." #define MSG_BED_LEVELING_FAILED_POINT_HIGH "Kalibrace Z selhala. Sensor sepnul prilis vysoko. Cekam na reset." @@ -320,4 +320,7 @@ #define MSG_BED_CORRECTION_REAR "Vzadu [um]" #define MSG_BED_CORRECTION_RESET "Reset" + +#define MSG_MENU_CALIBRATION "Kalibrace" + #endif // LANGUAGE_EN_H diff --git a/Firmware/language_en.h b/Firmware/language_en.h index 4bbdd0fd..7230318c 100644 --- a/Firmware/language_en.h +++ b/Firmware/language_en.h @@ -272,10 +272,10 @@ #define MSG_HOMEYZ_DONE "Calibration done" #define MSG_SHOW_END_STOPS "Show end stops" -#define MSG_CALIBRATE_BED "Calibrate X/Y" -#define MSG_CALIBRATE_BED_RESET "Reset X/Y calibr." +#define MSG_CALIBRATE_BED "Calibrate XYZ" +#define MSG_CALIBRATE_BED_RESET "Reset XYZ calibr." -#define MSG_MOVE_CARRIAGE_TO_THE_TOP "Calibrating X/Y. Move Z carriage up to the end stoppers. Click when done." +#define MSG_MOVE_CARRIAGE_TO_THE_TOP "Calibrating XYZ. Move Z carriage up to the end stoppers. Click when done." #define MSG_CONFIRM_NOZZLE_CLEAN "Please clean the nozzle for calibration. Click when done." #define MSG_CONFIRM_CARRIAGE_AT_THE_TOP "Are left and right Z~carriages all up?" @@ -286,17 +286,17 @@ #define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 "calibration point" #define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3 " of 9" -#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND "X/Y calibration failed. Bed calibration point was not found." -#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED "X/Y calibration failed. Please consult the manual." -#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT "X/Y calibration ok. X/Y axes are perpendicular." -#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD "X/Y calibration all right. X/Y axes are slightly skewed." +#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND "XYZ calibration failed. Bed calibration point was not found." +#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED "XYZ calibration failed. Please consult the manual." +#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT "XYZ calibration ok. X/Y axes are perpendicular." +#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD "XYZ calibration all right. X/Y axes are slightly skewed." #define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME "X/Y skewed severly. Skew will be corrected automatically." -#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR "X/Y calibration failed. Left front calibration point not reachable." -#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR "X/Y calibration failed. Right front calibration point not reachable." -#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR "X/Y calibration failed. Front calibration points not reachable." -#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR "X/Y calibration compromised. Left front calibration point not reachable." -#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR "X/Y calibration compromised. Right front calibration point not reachable." -#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR "X/Y calibration compromised. Front calibration points not reachable." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR "XYZ calibration failed. Left front calibration point not reachable." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR "XYZ calibration failed. Right front calibration point not reachable." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR "XYZ calibration failed. Front calibration points not reachable." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR "XYZ calibration compromised. Left front calibration point not reachable." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR "XYZ calibration compromised. Right front calibration point not reachable." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR "XYZ calibration compromised. Front calibration points not reachable." #define MSG_BED_LEVELING_FAILED_POINT_LOW "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." #define MSG_BED_LEVELING_FAILED_POINT_HIGH "Bed leveling failed. Sensor triggered too high. Waiting for reset." @@ -314,8 +314,9 @@ #define MSG_BED_CORRECTION_REAR "Rear side um" #define MSG_BED_CORRECTION_RESET "Reset" - - #define MSG_MESH_BED_LEVELING "Mesh Bed Leveling" +#define MSG_MENU_CALIBRATION "Calibration" +#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF "SD card [normal]" +#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON "SD card [FlshAir]" #endif // LANGUAGE_EN_H diff --git a/Firmware/language_es.h b/Firmware/language_es.h index cb9a71d0..ba9b97fe 100644 --- a/Firmware/language_es.h +++ b/Firmware/language_es.h @@ -272,5 +272,41 @@ #define MSG_STATISTICS "Estadistica " #define MSG_USB_PRINTING "Impresion de USB " +#define MSG_SHOW_END_STOPS "Ensena fin de paso" +#define MSG_CALIBRATE_BED "Calibra XYZ" +#define MSG_CALIBRATE_BED_RESET "Reset XYZ calibr." +#define MSG_MOVE_CARRIAGE_TO_THE_TOP "Calibrando XYZ. Subir carro Z hasta maximo. Click cuando acabes." +#define MSG_CONFIRM_NOZZLE_CLEAN "Limpiar boquilla para calibracion. Click cuando acabes." +#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP "Los carros Z izquierdo/derecho estan arriba al maximo?" +#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 "Buscando cama" +#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2 "punto de calibracion" +#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE3 " de 4" +#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 "Mejorando cama" +#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 "punto de calibracion" +#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3 " de 9" +#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND "Calibracion XYZ fallada. Puntos de calibracion en la cama no encontrados." +#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED "Calibracion XYZ fallada. Consultar el manual por favor." +#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT "Calibracion XYZ ok. Ejes X/Y perpendiculares." +#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD "Calibracion XYZ conseguida. Ejes X/Y un poco torcidos." +#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME "X/Y muy distorsionado. La distorsion sera corregida automaticamente." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR "Calibracion XYZ fallad. Punto delantero izquierdo no alcanzable." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR "Calibracion XYZ fallad. Punto delantero derecho no alcanzable." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR "Calibracion XYZ fallad. Punto delanteros no alcanzables." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR "Calibrazion XYZ comprometida. Punto delantero izquierdo no alcanzable." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR "Calibrazion XYZ comprometida. Punto delantero derecho no alcanzable." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR "Calibrazion XYZ comprometida. Punto delanteros no alcanzables." +#define MSG_BED_LEVELING_FAILED_POINT_LOW "Nivelacion cama fallada. El sensor no funciono'. Escombros en la boquilla? Pendiente el reset." +#define MSG_BED_LEVELING_FAILED_POINT_HIGH "Nivelacion cama fallada. El sensor funcino' demasiado temprano. Pendiente el reset." +#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED "Nivelacion cama fallada. Sensor desconectado o cables danados. Pendiente el reset." +#define MSG_NEW_FIRMWARE_AVAILABLE "Nuevo firmware disponible:" +#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE "Actualizar por favor." +#define MSG_BABYSTEP_Z_NOT_SET "Impresora aun no calibrada. Ejecutar el G-code de calibracion para ajustar la altura de Z." +#define MSG_BED_CORRECTION_MENU "Nivel de cama correcto" +#define MSG_BED_CORRECTION_LEFT "Hacia la izquierda um" +#define MSG_BED_CORRECTION_RIGHT "Hacia la derecha um" +#define MSG_BED_CORRECTION_FRONT "Hacia adelante um" +#define MSG_BED_CORRECTION_REAR "Hacia atras um" +#define MSG_BED_CORRECTION_RESET "Reset" + #endif // LANGUAGE_EN_H diff --git a/Firmware/language_pl.h b/Firmware/language_pl.h index f4e01b77..7c72e6d6 100644 --- a/Firmware/language_pl.h +++ b/Firmware/language_pl.h @@ -288,5 +288,46 @@ #define MSG_STATISTICS "Statystyka " #define MSG_USB_PRINTING "Druk z USB " +#define MSG_SHOW_END_STOPS "Pokaz krancowki" +#define MSG_CALIBRATE_BED "Kalibracja XYZ" +#define MSG_CALIBRATE_BED_RESET "Reset kalibr. XYZ" + +#define MSG_MOVE_CARRIAGE_TO_THE_TOP "Kalibracja XYZ. Prosze przesunac os Z do gornej ramy. Potwierdzic guzikiem." +#define MSG_CONFIRM_NOZZLE_CLEAN "Dla prawidlowej kalibracji prosze oczyscic dysze. Potwierdzic guzikiem." +#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP "Oba wozki Z dojechaly do gornej ramy?" + +#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 "Szukam kalibracyjnego" +#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2 "punktu podkladki" +#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE3 " z 4" +#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 "Ulepszam dokladnosc" +#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 "punktu kalibracyjnego" +#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3 " z 9" + +#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND "Kalibracja XYZ niepowiedziona. Kalibracyjny punkt podkladki nieznaleziony." +#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED "Kalibracja XYZ niepowiedziona. Sprawdzic w instrukcji." +#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT "Kalibracja XYZ ok. Osie X/Y sa prostopadle." +#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD "Kalibracja XYZ w porzadku. Osie X/Y lekko skosne." +#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME "Osie X/Y sa mocno skosne. Skos bedzie automatycznie wyrownany przy druku." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR "Kalibracja XYZ niepowiedziona. Lewy przedni punkt zbyt wysuniety do przodu. Wyrownac drukarke." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR "Kalibracja XYZ niepowiedziona. Prawy przedni punkt zbyt wysuniety do przodu. Wyrownac drukarke." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR "Kalibracja XYZ niepowiedziona. Przednie punkty kalibracyjne zbyt wysuniete do przodu. Wyrownac drukarke." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR "Kalibracja XYZ niedokladna. Lewy przedni punkt zbyt wysuniety do przodu." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR "Kalibracja XYZ niedokladna. Prawy przedni punkt zbyt wysuniety do przodu." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR "Kalibracja XYZ niedokladna. Przednie punkty kalibracyjne zbyt wysuniete do przodu." + +#define MSG_BED_LEVELING_FAILED_POINT_LOW "Kalibracja Z niepowiedziona. Sensor nie dotknal. Zanieczyszczona dysza? Czekam na reset." +#define MSG_BED_LEVELING_FAILED_POINT_HIGH "Kalibracja Z niepowiedziona. Sensor dotknal zbyt wysoko. Czekam na reset." +#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED "Kalibracja Z niepowiedziona. Sensor jest odlaczony lub uszkodzony kabel. Czekam na reset." + +#define MSG_NEW_FIRMWARE_AVAILABLE "Wyszla nowa wersja firmware:" +#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE "Prosze zaktualizowac." +#define MSG_BABYSTEP_Z_NOT_SET "Drukarka nie byla kalibrowana. Wlaczyc kalibracyjny G-kod i dostroic Z." + +#define MSG_BED_CORRECTION_MENU "Korekta podkladki" +#define MSG_BED_CORRECTION_LEFT "W lewo [um]" +#define MSG_BED_CORRECTION_RIGHT "W prawo [um]" +#define MSG_BED_CORRECTION_FRONT "Do przodu [um]" +#define MSG_BED_CORRECTION_REAR "Do tylu [um]" +#define MSG_BED_CORRECTION_RESET "Reset" #endif // LANGUAGE_EN_H \ No newline at end of file diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 0d2824c9..1d08b746 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -136,8 +136,8 @@ static void lcd_main_menu(); static void lcd_tune_menu(); static void lcd_prepare_menu(); static void lcd_move_menu(); -static void lcd_control_menu(); static void lcd_settings_menu(); +static void lcd_calibration_menu(); static void lcd_language_menu(); static void lcd_control_temperature_menu(); static void lcd_control_temperature_preheat_pla_settings_menu(); @@ -765,7 +765,7 @@ static void lcd_support_menu() // Menu was entered or SD card status has changed (plugged in or removed). // Initialize its status. menuData.supportMenu.status = 1; - menuData.supportMenu.is_flash_air = card.ToshibaFlashAir_GetIP(menuData.supportMenu.ip); + menuData.supportMenu.is_flash_air = card.ToshibaFlashAir_isEnabled() && card.ToshibaFlashAir_GetIP(menuData.supportMenu.ip); if (menuData.supportMenu.is_flash_air) sprintf_P(menuData.supportMenu.ip_str, PSTR("%d.%d.%d.%d"), menuData.supportMenu.ip[0], menuData.supportMenu.ip[1], @@ -1325,7 +1325,7 @@ static void lcd_adjust_bed() eeprom_update_int8((unsigned char*)EEPROM_BED_CORRECTION_REAR, menuData.adjustBed.rear = menuData.adjustBed.rear2); START_MENU(); - MENU_ITEM(back, MSG_SETTINGS, lcd_settings_menu); + MENU_ITEM(back, MSG_SETTINGS, lcd_calibration_menu); MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_LEFT, &menuData.adjustBed.left2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX); MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_RIGHT, &menuData.adjustBed.right2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX); MENU_ITEM_EDIT(int3, MSG_BED_CORRECTION_FRONT, &menuData.adjustBed.front2, -BED_ADJUSTMENT_UM_MAX, BED_ADJUSTMENT_UM_MAX); @@ -1682,7 +1682,7 @@ static void lcd_show_end_stops() { static void menu_show_end_stops() { lcd_show_end_stops(); - if (LCD_CLICKED) lcd_goto_menu(lcd_settings_menu); + if (LCD_CLICKED) lcd_goto_menu(lcd_calibration_menu); } // Lets the user move the Z carriage up to the end stoppers. @@ -2055,6 +2055,12 @@ void lcd_mesh_calibration_z() lcd_return_to_status(); } +void lcd_toshiba_flash_air_compatibility_toggle() +{ + card.ToshibaFlashAir_enable(! card.ToshibaFlashAir_isEnabled()); + eeprom_update_byte((uint8_t*)EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY, card.ToshibaFlashAir_isEnabled()); +} + static void lcd_settings_menu() { EEPROM_read(EEPROM_SILENT, (uint8_t*)&SilentModeMenu, sizeof(SilentModeMenu)); @@ -2065,23 +2071,9 @@ static void lcd_settings_menu() MENU_ITEM(submenu, MSG_TEMPERATURE, lcd_control_temperature_menu); MENU_ITEM(submenu, MSG_MOVE_AXIS, lcd_move_menu_1mm); - if (!isPrintPaused) - { -#ifndef MESH_BED_LEVELING - // "Calibrate Z" - MENU_ITEM(gcode, MSG_HOMEYZ, PSTR("G28 Z")); -#else - // "Calibrate Z" with storing the reference values to EEPROM. - MENU_ITEM(submenu, MSG_HOMEYZ, lcd_mesh_calibration_z); - // "Mesh Bed Leveling" - MENU_ITEM(submenu, MSG_MESH_BED_LEVELING, lcd_mesh_bedleveling); -#endif - } - if (!isPrintPaused) { MENU_ITEM(gcode, MSG_DISABLE_STEPPERS, PSTR("M84")); - MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28 W")); } if (SilentModeMenu == 0) { @@ -2093,22 +2085,48 @@ static void lcd_settings_menu() if (!isPrintPaused) { MENU_ITEM(submenu, MSG_BABYSTEP_Z, lcd_babystep_z);//8 - MENU_ITEM(submenu, MSG_BED_CORRECTION_MENU, lcd_adjust_bed); } MENU_ITEM(submenu, MSG_LANGUAGE_SELECT, lcd_language_menu); - if (!isPrintPaused) - { - MENU_ITEM(submenu, MSG_SELFTEST, lcd_selftest); - MENU_ITEM(submenu, MSG_SHOW_END_STOPS, menu_show_end_stops); - MENU_ITEM(submenu, MSG_CALIBRATE_BED, lcd_mesh_calibration); - MENU_ITEM(gcode, MSG_CALIBRATE_BED_RESET, PSTR("M44")); - } - if (farm_mode) - { - MENU_ITEM(submenu, PSTR("Farm number"), lcd_farm_no); - } + + if (card.ToshibaFlashAir_isEnabled()) { + MENU_ITEM(function, MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON, lcd_toshiba_flash_air_compatibility_toggle); + } else { + MENU_ITEM(function, MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF, lcd_toshiba_flash_air_compatibility_toggle); + } + END_MENU(); } + +static void lcd_calibration_menu() +{ + START_MENU(); + MENU_ITEM(back, MSG_MAIN, lcd_main_menu); + if (!isPrintPaused) + { + MENU_ITEM(submenu, MSG_SELFTEST, lcd_selftest); +#ifndef MESH_BED_LEVELING + // MK1 + // "Calibrate Z" + MENU_ITEM(gcode, MSG_HOMEYZ, PSTR("G28 Z")); +#else + // MK2 + MENU_ITEM(submenu, MSG_CALIBRATE_BED, lcd_mesh_calibration); + // "Calibrate Z" with storing the reference values to EEPROM. + MENU_ITEM(submenu, MSG_HOMEYZ, lcd_mesh_calibration_z); + // "Mesh Bed Leveling" + MENU_ITEM(submenu, MSG_MESH_BED_LEVELING, lcd_mesh_bedleveling); +#endif + MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28 W")); + MENU_ITEM(submenu, MSG_BED_CORRECTION_MENU, lcd_adjust_bed); + MENU_ITEM(submenu, MSG_SHOW_END_STOPS, menu_show_end_stops); + MENU_ITEM(gcode, MSG_CALIBRATE_BED_RESET, PSTR("M44")); + } + if (farm_mode) + { + MENU_ITEM(submenu, PSTR("Farm number"), lcd_farm_no); + } + END_MENU(); +} /* void lcd_mylang_top(int hlaska) { lcd.setCursor(0,0); @@ -2423,7 +2441,7 @@ static void lcd_main_menu() MENU_ITEM(back, MSG_WATCH, lcd_status_screen); - if ( ( IS_SD_PRINTING || is_usb_printing ) && (current_position[Z_AXIS] < 0.5) ) + if ( ( IS_SD_PRINTING || is_usb_printing ) && (current_position[Z_AXIS] < Z_HEIGHT_HIDE_LIVE_ADJUST_MENU) ) { MENU_ITEM(submenu, MSG_BABYSTEP_Z, lcd_babystep_z);//8 } @@ -2480,6 +2498,7 @@ static void lcd_main_menu() MENU_ITEM(function, MSG_LOAD_FILAMENT, lcd_LoadFilament); MENU_ITEM(function, MSG_UNLOAD_FILAMENT, lcd_unLoadFilament); MENU_ITEM(submenu, MSG_SETTINGS, lcd_settings_menu); + MENU_ITEM(submenu, MSG_MENU_CALIBRATION, lcd_calibration_menu); } if (!is_usb_printing) @@ -2557,7 +2576,6 @@ static void lcd_control_temperature_menu() START_MENU(); MENU_ITEM(back, MSG_SETTINGS, lcd_settings_menu); - //MENU_ITEM(back, MSG_CONTROL, lcd_control_menu); #if TEMP_SENSOR_0 != 0 MENU_ITEM_EDIT(int3, MSG_NOZZLE, &target_temperature[0], 0, HEATER_0_MAXTEMP - 10); #endif