From 5639b8ca20bd67a4f6c9a8d5cf5ce1db3ec74aa8 Mon Sep 17 00:00:00 2001 From: Marcio Teixeira <57453521+marcio-cp@users.noreply.github.com> Date: Sun, 10 Nov 2019 17:49:41 -0700 Subject: [PATCH] Touch UI fixes for Cocoa Press (#15847) --- Marlin/src/HAL/HAL_DUE/usb/sd_mmc_spi_mem.cpp | 9 + Marlin/src/inc/SanityCheck.h | 8 +- .../lib/lulzbot/archim2-flash/flash_storage.h | 2 +- .../lulzbot/ftdi_eve_lib/basic/commands.cpp | 4 +- .../lib/lulzbot/ftdi_eve_lib/compat.h | 1 + .../ftdi_eve_lib/extended/dl_cache.cpp | 12 +- .../lib/lulzbot/ftdi_eve_lib/extended/rgb_t.h | 12 +- .../ftdi_eve_lib/extended/sound_player.cpp | 3 +- .../lib/lulzbot/ftdi_eve_lib/extras/poly_ui.h | 11 +- .../lulzbot/ftdi_eve_lib/extras/svg2cpp.py | 2 +- .../lib/lulzbot/language/language.h | 2 - .../lib/lulzbot/language/language_de.h | 78 ----- .../lib/lulzbot/language/language_en.h | 329 +++++++----------- .../lib/lulzbot/language/language_fr.h | 84 ----- .../lib/lulzbot/marlin_events.cpp | 2 +- .../lib/lulzbot/screens/about_screen.cpp | 30 +- .../screens/advanced_settings_menu.cpp | 66 ++-- .../screens/backlash_compensation_screen.cpp | 18 +- .../base_numeric_adjustment_screen.cpp | 16 +- .../lulzbot/screens/bio_advanced_settings.cpp | 32 +- .../lulzbot/screens/bio_confirm_home_e.cpp | 10 +- .../lulzbot/screens/bio_confirm_home_xyz.cpp | 6 +- .../lib/lulzbot/screens/bio_main_menu.cpp | 24 +- .../screens/bio_printer_ui_landscape.h | 82 +++++ ...printer_ui.h => bio_printer_ui_portrait.h} | 0 .../screens/bio_printing_dialog_box.cpp | 2 +- .../lib/lulzbot/screens/bio_status_screen.cpp | 209 ++++++++--- .../lib/lulzbot/screens/bio_tune_menu.cpp | 18 +- .../lib/lulzbot/screens/boot_screen.cpp | 34 +- .../screens/change_filament_screen.cpp | 67 ++-- .../confirm_abort_print_dialog_box.cpp | 2 +- .../confirm_auto_calibration_dialog_box.cpp | 4 +- .../confirm_erase_flash_dialog_box.cpp | 8 +- .../confirm_start_print_dialog_box.cpp | 6 +- .../screens/default_acceleration_screen.cpp | 12 +- .../lib/lulzbot/screens/developer_menu.cpp | 2 +- .../lulzbot/screens/dialog_box_base_class.cpp | 6 +- .../lulzbot/screens/display_tuning_screen.cpp | 10 +- .../lulzbot/screens/endstop_state_screen.cpp | 50 ++- .../screens/feedrate_percent_screen.cpp | 6 +- .../lib/lulzbot/screens/filament_menu.cpp | 16 +- .../screens/filament_runout_screen.cpp | 10 +- .../lib/lulzbot/screens/files_screen.cpp | 6 +- .../screens/interface_settings_screen.cpp | 42 +-- .../screens/interface_sounds_screen.cpp | 16 +- .../lib/lulzbot/screens/jerk_screen.cpp | 12 +- .../screens/junction_deviation_screen.cpp | 4 +- .../lib/lulzbot/screens/kill_screen.cpp | 4 +- .../lulzbot/screens/linear_advance_screen.cpp | 12 +- .../lib/lulzbot/screens/lock_screen.cpp | 8 +- .../lib/lulzbot/screens/main_menu.cpp | 85 +++-- .../screens/max_acceleration_screen.cpp | 20 +- .../lulzbot/screens/max_velocity_screen.cpp | 20 +- .../lib/lulzbot/screens/move_axis_screen.cpp | 20 +- .../lulzbot/screens/nozzle_offsets_screen.cpp | 12 +- .../lulzbot/screens/nudge_nozzle_screen.cpp | 18 +- .../screens/restore_failsafe_dialog_box.cpp | 4 +- .../screens/save_settings_dialog_box.cpp | 4 +- .../lib/lulzbot/screens/screen_data.h | 5 +- .../lib/lulzbot/screens/screens.cpp | 4 +- .../lib/lulzbot/screens/screens.h | 11 +- .../lulzbot/screens/spinner_dialog_box.cpp | 2 +- .../lib/lulzbot/screens/statistics_screen.cpp | 14 +- .../lib/lulzbot/screens/status_screen.cpp | 20 +- .../stepper_bump_sensitivity_screen.cpp | 8 +- .../screens/stepper_current_screen.cpp | 20 +- .../lib/lulzbot/screens/steps_screen.cpp | 20 +- .../lulzbot/screens/stress_test_screen.cpp | 3 +- .../lib/lulzbot/screens/string_format.cpp | 12 +- .../lulzbot/screens/temperature_screen.cpp | 26 +- .../screens/touch_calibration_screen.cpp | 4 +- .../screens/touch_registers_screen.cpp | 2 +- .../lib/lulzbot/screens/tune_menu.cpp | 38 +- .../lulzbot/screens/widget_demo_screen.cpp | 4 +- .../lib/lulzbot/screens/z_offset_screen.cpp | 6 +- .../lulzbot/theme/bootscreen_logo_landscape.h | 43 --- .../lulzbot/theme/bootscreen_logo_portrait.h | 43 --- .../extensible_ui/lib/lulzbot/theme/colors.h | 38 +- .../theme/marlin_bootscreen_landscape.h | 43 +++ .../theme/marlin_bootscreen_portrait.h | 42 +++ Marlin/src/lcd/extensible_ui/ui_api.cpp | 7 + Marlin/src/module/configuration_store.cpp | 19 + Marlin/src/module/temperature.h | 1 + config/default/Configuration_adv.h | 3 + 84 files changed, 1036 insertions(+), 994 deletions(-) delete mode 100644 Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_de.h delete mode 100644 Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_fr.h create mode 100644 Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printer_ui_landscape.h rename Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/{bio_printer_ui.h => bio_printer_ui_portrait.h} (100%) delete mode 100644 Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/bootscreen_logo_landscape.h delete mode 100644 Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/bootscreen_logo_portrait.h create mode 100644 Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/marlin_bootscreen_landscape.h create mode 100644 Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/marlin_bootscreen_portrait.h diff --git a/Marlin/src/HAL/HAL_DUE/usb/sd_mmc_spi_mem.cpp b/Marlin/src/HAL/HAL_DUE/usb/sd_mmc_spi_mem.cpp index b85a2b09a1..73a46892b9 100644 --- a/Marlin/src/HAL/HAL_DUE/usb/sd_mmc_spi_mem.cpp +++ b/Marlin/src/HAL/HAL_DUE/usb/sd_mmc_spi_mem.cpp @@ -19,6 +19,9 @@ void sd_mmc_spi_mem_init() { } Ctrl_status sd_mmc_spi_test_unit_ready() { + #if defined(DISABLE_DUE_SD_MMC) + return CTRL_NO_PRESENT; + #endif if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted()) return CTRL_NO_PRESENT; return CTRL_GOOD; @@ -55,6 +58,9 @@ uint8_t sector_buf[SD_MMC_BLOCK_SIZE]; // #define DEBUG_MMC Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) { + #if defined(DISABLE_DUE_SD_MMC) + return CTRL_NO_PRESENT; + #endif if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted()) return CTRL_NO_PRESENT; @@ -92,6 +98,9 @@ Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) { } Ctrl_status sd_mmc_spi_usb_write_10(uint32_t addr, uint16_t nb_sector) { + #if defined(DISABLE_DUE_SD_MMC) + return CTRL_NO_PRESENT; + #endif if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted()) return CTRL_NO_PRESENT; diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 3794f98b0d..3cc337e472 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -598,8 +598,12 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS /** * Custom Boot and Status screens */ -#if EITHER(SHOW_CUSTOM_BOOTSCREEN, CUSTOM_STATUS_SCREEN_IMAGE) && !HAS_GRAPHICAL_LCD - #error "Graphical LCD is required for SHOW_CUSTOM_BOOTSCREEN and CUSTOM_STATUS_SCREEN_IMAGE." +#if ENABLED(SHOW_CUSTOM_BOOTSCREEN) && !HAS_GRAPHICAL_LCD && !ENABLED(LULZBOT_TOUCH_UI) + #error "Graphical LCD is required for SHOW_CUSTOM_BOOTSCREEN." +#endif + +#if ENABLED(CUSTOM_STATUS_SCREEN_IMAGE) && !HAS_GRAPHICAL_LCD + #error "Graphical LCD is required for CUSTOM_STATUS_SCREEN_IMAGE." #endif /** diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/archim2-flash/flash_storage.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/archim2-flash/flash_storage.h index d211f48b38..2917cb0b1e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/archim2-flash/flash_storage.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/archim2-flash/flash_storage.h @@ -68,7 +68,7 @@ class UIFlashStorage : private SPIFlash { static void set_media_file_size(uint8_t slot, uint32_t size); static uint32_t get_media_file_size(uint8_t slot); - static constexpr uint32_t delimiter = 0x4C554C5A; // 'LULZ' + static constexpr uint32_t delimiter = 0x4D524C4E; // 'MRLN' public: enum error_t { SUCCESS, diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/basic/commands.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/basic/commands.cpp index 9a04c9e835..d21511856f 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/basic/commands.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/basic/commands.cpp @@ -1015,8 +1015,8 @@ template bool CLCD::CommandFifo::write(T data, uint16_t len) { if (Command_Space < (len + padding)) { #if ENABLED(TOUCH_UI_DEBUG) SERIAL_ECHO_START(); - SERIAL_ECHOPAIR("Waiting for ", len + padding, - " bytes in command queue, now free: ", Command_Space); + SERIAL_ECHOPAIR("Waiting for ", len + padding); + SERIAL_ECHOLNPAIR(" bytes in command queue, now free: ", Command_Space); #endif do { Command_Space = mem_read_32(REG::CMDB_SPACE) & 0x0FFF; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/compat.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/compat.h index 18d0a5a1a8..bafb670d50 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/compat.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/compat.h @@ -197,6 +197,7 @@ #define SERIAL_ECHO_START() #define SERIAL_ECHOLNPGM(str) Serial.println(F(str)) #define SERIAL_ECHOPGM(str) Serial.print(F(str)) + #define SERIAL_ECHO_MSG(str) Serial.println(str) #define SERIAL_ECHOLNPAIR(str, val) {Serial.print(F(str)); Serial.println(val);} #define SERIAL_ECHOPAIR(str, val) {Serial.print(F(str)); Serial.print(val);} diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/dl_cache.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/dl_cache.cpp index 5e7377e1a0..030eea41fa 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/dl_cache.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/dl_cache.cpp @@ -129,15 +129,15 @@ bool DLCache::store(uint32_t num_bytes /* = 0*/) { // Not enough memory to cache the display list. #if ENABLED(TOUCH_UI_DEBUG) SERIAL_ECHO_START(); - SERIAL_ECHOLNPAIR("Not enough space in GRAM to cache display list, free space: ", free_space, - " Required: ", dl_size); + SERIAL_ECHOPAIR ("Not enough space in GRAM to cache display list, free space: ", free_space); + SERIAL_ECHOLNPAIR( " Required: ", dl_size); #endif return false; } else { #if ENABLED(TOUCH_UI_DEBUG) SERIAL_ECHO_START(); - SERIAL_ECHOLNPAIR("Saving DL to RAMG cache, bytes: ", dl_size, - " Free space: ", free_space); + SERIAL_ECHOPAIR ("Saving DL to RAMG cache, bytes: ", dl_size); + SERIAL_ECHOLNPAIR(" Free space: ", free_space); #endif cmd.memcpy(dl_addr, MAP::RAM_DL, dl_size); cmd.execute(); @@ -167,8 +167,8 @@ void DLCache::append() { cmd.execute(); wait_until_idle(); SERIAL_ECHO_START(); - SERIAL_ECHOLNPAIR("Appending to DL from RAMG cache, bytes: ", dl_size, - " REG_CMD_DL: ", CLCD::mem_read_32(REG::CMD_DL)); + SERIAL_ECHOPAIR ("Appending to DL from RAMG cache, bytes: ", dl_size); + SERIAL_ECHOLNPAIR(" REG_CMD_DL: ", CLCD::mem_read_32(REG::CMD_DL)); #endif } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/rgb_t.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/rgb_t.h index e31c69e605..fde5052873 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/rgb_t.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/rgb_t.h @@ -31,25 +31,25 @@ constexpr float _hsl_fmod(float x, float y) { return x - int(x/y)*y; } -constexpr float _hsl_c(int, float S, float L) { +constexpr float _hsl_c(float, float S, float L) { return (1.0f - fabs(2*L-1.0f)) * S; } -constexpr float _hsl_x(int H, float S, float L) { - return _hsl_c(H,S,L) * (1.0f - fabs(_hsl_fmod(float(H)/60, 2) - 1)); +constexpr float _hsl_x(float H, float S, float L) { + return _hsl_c(H,S,L) * (1.0f - fabs(_hsl_fmod(H/60, 2) - 1)); } -constexpr float _hsl_m(int H, float S, float L) { +constexpr float _hsl_m(float H, float S, float L) { return L - _hsl_c(H,S,L)/2; } -constexpr float _hsl_rgb(int H, float S, float L, float r, float g, float b) { +constexpr float _hsl_rgb(float H, float S, float L, float r, float g, float b) { return ((uint32_t((r + _hsl_m(H,S,L))*255+0.5) << 16) | (uint32_t((g + _hsl_m(H,S,L))*255+0.5) << 8) | (uint32_t((b + _hsl_m(H,S,L))*255+0.5) << 0)); } -constexpr uint32_t hsl_to_rgb(int H, float S, float L) { +constexpr uint32_t hsl_to_rgb(float H, float S, float L) { return (H < 60) ? _hsl_rgb(H,S,L,_hsl_c(H,S,L), _hsl_x(H,S,L), 0) : (H < 120) ? _hsl_rgb(H,S,L,_hsl_x(H,S,L), _hsl_c(H,S,L), 0) : (H < 180) ? _hsl_rgb(H,S,L, 0, _hsl_c(H,S,L), _hsl_x(H,S,L)) : diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/sound_player.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/sound_player.cpp index 0011d69118..b1f5215188 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/sound_player.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/sound_player.cpp @@ -38,7 +38,8 @@ namespace FTDI { #if ENABLED(TOUCH_UI_DEBUG) SERIAL_ECHO_START(); - SERIAL_ECHOLNPAIR("Playing note ", int(note), ", instrument ", int(effect)); + SERIAL_ECHOPAIR("Playing note ", int(note)); + SERIAL_ECHOLNPAIR(", instrument ", int(effect)); #endif // Play the note diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extras/poly_ui.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extras/poly_ui.h index 52146510c5..9f531146e1 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extras/poly_ui.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extras/poly_ui.h @@ -53,9 +53,10 @@ */ class PolyReader { - private: + public: typedef uint16_t type_t; + private: static constexpr type_t eol = 0xFFFF; const type_t *p, *top, *end; @@ -321,10 +322,10 @@ class GenericPolyUI { int16_t x_max = INT16_MIN; int16_t y_max = INT16_MIN; for(r.start(); r.has_more(); r.next()) { - x_min = min(x_min, r.x); - x_max = max(x_max, r.x); - y_min = min(y_min, r.y); - y_max = max(y_max, r.y); + x_min = min(x_min, int16_t(r.x)); + x_max = max(x_max, int16_t(r.x)); + y_min = min(y_min, int16_t(r.y)); + y_max = max(y_max, int16_t(r.y)); } x = x_min; y = y_min; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extras/svg2cpp.py b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extras/svg2cpp.py index 6a8d074916..80ae0f776a 100755 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extras/svg2cpp.py +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extras/svg2cpp.py @@ -126,7 +126,7 @@ class WriteDataStructure: self.hex_words = [] def push(self, value): - self.hex_words.append("0x%04X" % value) + self.hex_words.append("0x%04X" % (0xffff & int(value))) def command(self, type, x, y): if type == "M": diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h index fb66e6d77e..54f8439933 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h @@ -21,5 +21,3 @@ #pragma once #include "language_en.h" -#include "language_de.h" -#include "language_fr.h" diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_de.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_de.h deleted file mode 100644 index f00c50591e..0000000000 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_de.h +++ /dev/null @@ -1,78 +0,0 @@ -/***************** - * language_de.h * - *****************/ - -/**************************************************************************** - * Written By Marcio Teixeira 2019 - Aleph Objects, Inc. * - * * - * This program is free software: you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation, either version 3 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * To view a copy of the GNU General Public License, go to the following * - * location: . * - ****************************************************************************/ - -#pragma once - -namespace Language_de { - using namespace Language_en; // Inherit undefined strings from English - - PROGMEM Language_Str YES = u8"JA"; - PROGMEM Language_Str NO = u8"NEIN"; - PROGMEM Language_Str BACK = u8"Zurück"; - - PROGMEM Language_Str MOVE_AXIS = u8"Achsen bewegen"; - PROGMEM Language_Str MOTORS_OFF = u8"Motoren deaktivieren"; - PROGMEM Language_Str TEMPERATURE = u8"Temperatur"; - PROGMEM Language_Str CHANGE_FILAMENT = u8"Filament wechseln"; - PROGMEM Language_Str ADVANCED_SETTINGS = u8"Erw. Einstellungen"; - PROGMEM Language_Str ABOUT_PRINTER = u8"Über den Drucker"; - PROGMEM Language_Str PRINTER_STATISTICS = u8"Drucker-Statistik"; - - PROGMEM Language_Str ZPROBE_ZOFFSET = u8"Sondenversatz Z"; - PROGMEM Language_Str TOOL_OFFSETS = u8"Werkzeugversätze"; - PROGMEM Language_Str VELOCITY = u8"Geschwindigkeit"; - PROGMEM Language_Str ACCELERATION = u8"Beschleunigung"; - PROGMEM Language_Str ACCEL_PRINTING = u8"Beschleunigung"; - PROGMEM Language_Str ACCEL_TRAVEL = u8"A Einzug"; - PROGMEM Language_Str ACCEL_RETRACT = u8"A Leerfahrt"; - PROGMEM Language_Str BACKLASH = u8"Spiel"; - PROGMEM Language_Str SMOOTHING = u8"Glätten"; - PROGMEM Language_Str CORRECTION = u8"Korrektur"; - PROGMEM Language_Str ENDSTOPS = u8"Endstopp"; - PROGMEM Language_Str SOFT_ENDSTOPS = u8"Software-Endstopp"; - PROGMEM Language_Str RESTORE_DEFAULTS = u8"Standardwerte laden"; - - - PROGMEM Language_Str HOTEND = u8"Düse"; - PROGMEM Language_Str HOTEND1 = u8"Düse 1"; - PROGMEM Language_Str HOTEND2 = u8"Düse 2"; - PROGMEM Language_Str HOTEND3 = u8"Düse 3"; - PROGMEM Language_Str HOTEND4 = u8"Düse 4"; - PROGMEM Language_Str BED = u8"Bett"; - PROGMEM Language_Str AXIS_ALL = u8"Alle"; - - PROGMEM Language_Str FAN_SPEED = u8"Lüfter"; - - PROGMEM Language_Str PRINT_FILE = u8"Drucken"; - - PROGMEM Language_Str RESUME_PRINT = u8"SD-Druck fortsetzen"; - PROGMEM Language_Str PAUSE_PRINT = u8"SD-Druck pausieren"; - PROGMEM Language_Str STOP_PRINT = u8"SD-Druck abbrechen"; - - PROGMEM Language_Str INFO_PRINT_COUNT = u8"Gesamte Drucke"; - PROGMEM Language_Str INFO_COMPLETED_PRINTS = u8"Komplette Drucke"; - PROGMEM Language_Str INFO_PRINT_TIME = u8"Gesamte Druckzeit"; - PROGMEM Language_Str INFO_PRINT_LONGEST = u8"Längste Druckzeit"; - PROGMEM Language_Str INFO_PRINT_FILAMENT = u8"Gesamt Extrudiert"; - - PROGMEM Language_Str PRINTER_HALTED = u8"DRUCKER GESTOPPT"; - PROGMEM Language_Str PLEASE_RESET = u8"Bitte neustarten"; -}; // namespace Language_de diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h index 1485b0838e..e291c5504e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h @@ -23,210 +23,139 @@ #include "language.h" +#if ENABLED(TOUCH_UI_UTF8_COPYRIGHT) + #define COPYRIGHT_SIGN u8"©" +#else + #define COPYRIGHT_SIGN u8"(c)" +#endif + +#if ENABLED(TOUCH_UI_UTF8_SUPERSCRIPTS) + #define SUPERSCRIPT_TWO u8"²" +#else + #define SUPERSCRIPT_TWO u8"^2" +#endif + +#if ENABLED(TOUCH_UI_UTF8_WESTERN_CHARSET) + #define DEGREE_SIGN u8"°" +#else + #define DEGREE_SIGN u8" " +#endif + namespace Language_en { - PROGMEM Language_Str YES = u8"Yes"; - PROGMEM Language_Str NO = u8"No"; - PROGMEM Language_Str BACK = u8"Back"; - PROGMEM Language_Str OKAY = u8"Okay"; - PROGMEM Language_Str MENU = u8"Menu"; - PROGMEM Language_Str MEDIA = u8"Media"; + PROGMEM Language_Str MSG_BUTTON_OKAY = u8"Okay"; + PROGMEM Language_Str MSG_BUTTON_MENU = u8"Menu"; + PROGMEM Language_Str MSG_BUTTON_MEDIA = u8"Media"; + PROGMEM Language_Str MSG_BUTTON_OPEN = u8"Open"; + PROGMEM Language_Str MSG_CLEAN_NOZZLE = u8"Clean Nozzle"; + PROGMEM Language_Str MSG_VMAX_X = u8"Vmax X"; + PROGMEM Language_Str MSG_VMAX_Y = u8"Vmax Y"; + PROGMEM Language_Str MSG_VMAX_Z = u8"Vmax Z"; + PROGMEM Language_Str MSG_ACCEL_PRINTING = u8"Printing"; + PROGMEM Language_Str MSG_ACCEL_TRAVEL = u8"Travel"; + PROGMEM Language_Str MSG_ACCEL_RETRACT = u8"Retraction"; + PROGMEM Language_Str MSG_AMAX_X = u8"Amax X"; + PROGMEM Language_Str MSG_AMAX_Y = u8"Amax Y"; + PROGMEM Language_Str MSG_AMAX_Z = u8"Amax Z"; + PROGMEM Language_Str MSG_AXIS_X = u8"X"; + PROGMEM Language_Str MSG_AXIS_Y = u8"Y"; + PROGMEM Language_Str MSG_AXIS_Z = u8"Z"; + PROGMEM Language_Str MSG_AXIS_E = u8"E"; + PROGMEM Language_Str MSG_AXIS_E1 = u8"E1"; + PROGMEM Language_Str MSG_AXIS_E2 = u8"E2"; + PROGMEM Language_Str MSG_AXIS_E3 = u8"E3"; + PROGMEM Language_Str MSG_AXIS_E4 = u8"E4"; + PROGMEM Language_Str MSG_AXIS_ALL = u8"All"; + PROGMEM Language_Str MSG_HOME = u8"Home"; + PROGMEM Language_Str MSG_PRINT_STARTING = u8"Print starting"; + PROGMEM Language_Str MSG_PRINT_FINISHED = u8"Print finished"; + PROGMEM Language_Str MSG_PRINT_ERROR = u8"Print error"; + PROGMEM Language_Str MSG_ABOUT_TOUCH_PANEL_1 = u8"Color Touch Panel"; + PROGMEM Language_Str MSG_ABOUT_TOUCH_PANEL_2 = u8"Portions " COPYRIGHT_SIGN " 2019 Aleph Objects, Inc."; + PROGMEM Language_Str MSG_FIRMWARE_FOR_TOOLHEAD = u8"Firmware for toolhead:\n%s\n\n"; + PROGMEM Language_Str MSG_RUNOUT_1 = u8"Runout 1"; + PROGMEM Language_Str MSG_RUNOUT_2 = u8"Runout 2"; + PROGMEM Language_Str MSG_DISPLAY_MENU = u8"Display"; + PROGMEM Language_Str MSG_INTERFACE_SETTINGS = u8"Interface Settings"; + PROGMEM Language_Str MSG_MEASURE_AUTOMATICALLY = u8"Measure automatically"; + PROGMEM Language_Str MSG_H_OFFSET = u8"H Offset"; + PROGMEM Language_Str MSG_V_OFFSET = u8"V Offset"; + PROGMEM Language_Str MSG_TOUCH_SCREEN = u8"Touch Screen"; + PROGMEM Language_Str MSG_CALIBRATE = u8"Calibrate"; + PROGMEM Language_Str MSG_UNITS_MILLIAMP = u8"mA"; + PROGMEM Language_Str MSG_UNITS_MM = u8"mm"; + PROGMEM Language_Str MSG_UNITS_MM_S = u8"mm/s"; + PROGMEM Language_Str MSG_UNITS_MM_S2 = u8"mm/s" SUPERSCRIPT_TWO; + PROGMEM Language_Str MSG_UNITS_STEP_MM = u8"st/mm"; + PROGMEM Language_Str MSG_UNITS_PERCENT = u8"%"; + PROGMEM Language_Str MSG_UNITS_C = DEGREE_SIGN u8"C"; + PROGMEM Language_Str MSG_MATERIAL_PLA = u8"PLA"; + PROGMEM Language_Str MSG_MATERIAL_ABS = u8"ABS"; + PROGMEM Language_Str MSG_MATERIAL_HIGH_TEMP = u8"High"; + PROGMEM Language_Str MSG_IDLE = u8"idle"; + PROGMEM Language_Str MSG_SET_MAXIMUM = u8"Set Maximum"; + PROGMEM Language_Str MSG_PRINT_SPEED = u8"Print Speed"; + PROGMEM Language_Str MSG_LINEAR_ADVANCE = u8"Linear Advance"; + PROGMEM Language_Str MSG_LINEAR_ADVANCE_K = u8"K"; + PROGMEM Language_Str MSG_LINEAR_ADVANCE_K1 = u8"K E1"; + PROGMEM Language_Str MSG_LINEAR_ADVANCE_K2 = u8"K E2"; + PROGMEM Language_Str MSG_LINEAR_ADVANCE_K3 = u8"K E3"; + PROGMEM Language_Str MSG_LINEAR_ADVANCE_K4 = u8"K E4"; + PROGMEM Language_Str MSG_NUDGE_NOZZLE = u8"Nudge Nozzle"; + PROGMEM Language_Str MSG_ADJUST_BOTH_NOZZLES = u8"Adjust Both Nozzles"; + PROGMEM Language_Str MSG_SHOW_OFFSETS = u8"Show Offsets"; + PROGMEM Language_Str MSG_INCREMENT = u8"Increment"; + PROGMEM Language_Str MSG_ERASE_FLASH_WARNING = u8"Are you sure? SPI flash will be erased."; + PROGMEM Language_Str MSG_ERASING = u8"Erasing..."; + PROGMEM Language_Str MSG_ERASED = u8"SPI flash erased"; + PROGMEM Language_Str MSG_CALIBRATION_WARNING = u8"For best results, unload the filament and clean the hotend prior to starting calibration. Continue?"; + PROGMEM Language_Str MSG_START_PRINT_CONFIRMATION = u8"Start printing %s?"; + PROGMEM Language_Str MSG_ABORT_WARNING = u8"Are you sure you want to cancel the print?"; + PROGMEM Language_Str MSG_EXTRUDER_SELECTION = u8"Extruder Selection"; + PROGMEM Language_Str MSG_CURRENT_TEMPERATURE = u8"Current Temp"; + PROGMEM Language_Str MSG_REMOVAL_TEMPERATURE = u8"Removal Temp"; + PROGMEM Language_Str MSG_CAUTION = u8"Caution:"; + PROGMEM Language_Str MSG_HOT = u8"Hot!"; + PROGMEM Language_Str MSG_UNLOAD_FILAMENT = u8"Unload/Retract"; + PROGMEM Language_Str MSG_LOAD_FILAMENT = u8"Load/Extruder"; + PROGMEM Language_Str MSG_MOMENTARY = u8"Momentary"; + PROGMEM Language_Str MSG_CONTINUOUS = u8"Continuous"; + PROGMEM Language_Str MSG_PLEASE_WAIT = u8"Please wait..."; + PROGMEM Language_Str MSG_PRINT_MENU = u8"Print Menu"; + PROGMEM Language_Str MSG_FINE_MOTION = u8"Fine motion"; + PROGMEM Language_Str MSG_ENABLE_MEDIA = u8"Enable Media"; + PROGMEM Language_Str MSG_INSERT_MEDIA = u8"Insert Media..."; + PROGMEM Language_Str MSG_LCD_BRIGHTNESS = u8"LCD brightness"; + PROGMEM Language_Str MSG_SOUND_VOLUME = u8"Sound volume"; + PROGMEM Language_Str MSG_SCREEN_LOCK = u8"Screen lock"; + PROGMEM Language_Str MSG_BOOT_SCREEN = u8"Boot screen"; + PROGMEM Language_Str MSG_INTERFACE_SOUNDS = u8"Interface Sounds"; + PROGMEM Language_Str MSG_CLICK_SOUNDS = u8"Click sounds"; + PROGMEM Language_Str MSG_EEPROM_RESTORED = u8"Settings restored from backup"; + PROGMEM Language_Str MSG_EEPROM_RESET = u8"Settings restored to default"; + PROGMEM Language_Str MSG_EEPROM_SAVED = u8"Settings saved!"; + PROGMEM Language_Str MSG_EEPROM_SAVE_PROMPT = u8"Do you wish to save these settings as defaults?"; + PROGMEM Language_Str MSG_EEPROM_RESET_WARNING = u8"Are you sure? Customizations will be lost."; - PROGMEM Language_Str AUTO_HOME = u8"Auto Home"; - PROGMEM Language_Str CLEAN_NOZZLE = u8"Clean Nozzle"; - PROGMEM Language_Str MOVE_AXIS = u8"Move Axis"; - PROGMEM Language_Str MOTORS_OFF = u8"Motors Off"; - PROGMEM Language_Str TEMPERATURE = u8"Temperature"; - PROGMEM Language_Str CHANGE_FILAMENT = u8"Change Filament"; - PROGMEM Language_Str ADVANCED_SETTINGS = u8"Advanced Settings"; - PROGMEM Language_Str ABOUT_PRINTER = u8"About Printer"; - PROGMEM Language_Str PRINTER_STATISTICS = u8"Printer Statistics"; + PROGMEM Language_Str MSG_PASSCODE_REJECTED = u8"Wrong passcode!"; + PROGMEM Language_Str MSG_PASSCODE_ACCEPTED = u8"Passcode accepted!"; + PROGMEM Language_Str MSG_PASSCODE_SELECT = u8"Select Passcode:"; + PROGMEM Language_Str MSG_PASSCODE_REQUEST = u8"Enter Passcode:"; - PROGMEM Language_Str ZPROBE_ZOFFSET = u8"Z Offset"; - PROGMEM Language_Str STEPS_PER_MM = u8"Steps/mm"; - PROGMEM Language_Str TOOL_OFFSETS = u8"Tool Offsets"; - PROGMEM Language_Str VELOCITY = u8"Velocity"; - PROGMEM Language_Str VMAX_X = u8"Vmax X"; - PROGMEM Language_Str VMAX_Y = u8"Vmax Y"; - PROGMEM Language_Str VMAX_Z = u8"Vmax Z"; - PROGMEM Language_Str VMAX_E1 = u8"Vmax E1"; - PROGMEM Language_Str VMAX_E2 = u8"Vmax E2"; - PROGMEM Language_Str VMAX_E3 = u8"Vmax E3"; - PROGMEM Language_Str VMAX_E4 = u8"Vmax E4"; - PROGMEM Language_Str ACCELERATION = u8"Acceleration"; - PROGMEM Language_Str ACCEL_PRINTING = u8"Printing"; - PROGMEM Language_Str ACCEL_TRAVEL = u8"Travel"; - PROGMEM Language_Str ACCEL_RETRACT = u8"Retraction"; - PROGMEM Language_Str AMAX_X = u8"Amax X"; - PROGMEM Language_Str AMAX_Y = u8"Amax Y"; - PROGMEM Language_Str AMAX_Z = u8"Amax Z"; - PROGMEM Language_Str AMAX_E1 = u8"Amax E1"; - PROGMEM Language_Str AMAX_E2 = u8"Amax E2"; - PROGMEM Language_Str AMAX_E3 = u8"Amax E3"; - PROGMEM Language_Str AMAX_E4 = u8"Amax E4"; - PROGMEM Language_Str JERK = u8"Jerk"; - PROGMEM Language_Str JUNC_DEVIATION = u8"Junc Dev"; - PROGMEM Language_Str BACKLASH = u8"Backlash"; - PROGMEM Language_Str SMOOTHING = u8"Smoothing"; - PROGMEM Language_Str CORRECTION = u8"Correction"; - PROGMEM Language_Str MOTOR_CURRENT = u8"Currents"; - PROGMEM Language_Str FILAMENT = u8"Filament"; - PROGMEM Language_Str ENDSTOPS = u8"Endstops"; - PROGMEM Language_Str SOFT_ENDSTOPS = u8"Soft Endstops"; - PROGMEM Language_Str RESTORE_DEFAULTS = u8"Restore Defaults"; + PROGMEM Language_Str MSG_TOUCH_CALIBRATION_START = u8"Release to begin screen calibration"; + PROGMEM Language_Str MSG_TOUCH_CALIBRATION_PROMPT = u8"Touch the dots to calibrate"; - PROGMEM Language_Str HOTEND = u8"Hot End"; - PROGMEM Language_Str HOTEND1 = u8"Hot End 1"; - PROGMEM Language_Str HOTEND2 = u8"Hot End 2"; - PROGMEM Language_Str HOTEND3 = u8"Hot End 3"; - PROGMEM Language_Str HOTEND4 = u8"Hot End 4"; - PROGMEM Language_Str BED = u8"Bed"; - PROGMEM Language_Str AXIS_X = u8"X"; - PROGMEM Language_Str AXIS_Y = u8"Y"; - PROGMEM Language_Str AXIS_Z = u8"Z"; - PROGMEM Language_Str AXIS_E = u8"E"; - PROGMEM Language_Str AXIS_E1 = u8"E1"; - PROGMEM Language_Str AXIS_E2 = u8"E2"; - PROGMEM Language_Str AXIS_E3 = u8"E3"; - PROGMEM Language_Str AXIS_E4 = u8"E4"; - PROGMEM Language_Str AXIS_ALL = u8"All"; - PROGMEM Language_Str HOME = u8"Home"; - - PROGMEM Language_Str FAN_SPEED = u8"Fan Speed"; - PROGMEM Language_Str RUNOUT_SENSOR = u8"Runout Sensor"; - - PROGMEM Language_Str OPEN_DIR = u8"Open"; - PROGMEM Language_Str PRINT_FILE = u8"Print"; - - PROGMEM Language_Str RESUME_PRINT = u8"Resume Print"; - PROGMEM Language_Str PAUSE_PRINT = u8"Pause Print"; - PROGMEM Language_Str STOP_PRINT = u8"Stop Print"; - - PROGMEM Language_Str PRINT_STARTING = u8"Print starting"; - PROGMEM Language_Str PRINT_FINISHED = u8"Print finished"; - PROGMEM Language_Str PRINT_ERROR = u8"Print error"; - - PROGMEM Language_Str INFO_PRINT_COUNT = u8"Print Count"; - PROGMEM Language_Str INFO_COMPLETED_PRINTS = u8"Total Prints"; - PROGMEM Language_Str INFO_PRINT_TIME = u8"Total Print Time"; - PROGMEM Language_Str INFO_PRINT_LONGEST = u8"Longest Print"; - PROGMEM Language_Str INFO_PRINT_FILAMENT = u8"Filament Used"; - - PROGMEM Language_Str PRINTER_HALTED = u8"PRINTER HALTED"; - PROGMEM Language_Str PLEASE_RESET = u8"Please reset"; - - PROGMEM Language_Str COLOR_TOUCH_PANEL = u8"Color Touch Panel"; - #if ENABLED(TOUCH_UI_UTF8_COPYRIGHT) - PROGMEM Language_Str ABOUT_ALEPH_OBJECTS = u8"© 2019 Aleph Objects, Inc.\n\nwww.lulzbot.com"; - #else - PROGMEM Language_Str ABOUT_ALEPH_OBJECTS = u8"(C) 2019 Aleph Objects, Inc.\n\nwww.lulzbot.com"; + #ifdef TOUCH_UI_LULZBOT_BIO + PROGMEM Language_Str MSG_MOVE_TO_HOME = u8"Move to Home"; + PROGMEM Language_Str MSG_RAISE_PLUNGER = u8"Raise Plunger"; + PROGMEM Language_Str MSG_RELEASE_XY_AXIS = u8"Release X and Y Axis"; + PROGMEM Language_Str MSG_AUTOLEVEL_X_AXIS = u8"Auto-level X Axis"; + PROGMEM Language_Str MSG_BED_TEMPERATURE = u8"Bed Temperature"; + PROGMEM Language_Str MSG_HOME_XYZ_WARNING = u8"About to move to home position. Ensure the top and the bed of the printer are clear.\n\nContinue?"; + PROGMEM Language_Str MSG_HOME_E_WARNING = u8"About to re-home plunger and auto-level. Remove syringe prior to proceeding.\n\nContinue?"; #endif - - PROGMEM Language_Str FIRMWARE_FOR_TOOLHEAD = u8"Firmware for toolhead:\n%s\n\n"; - - PROGMEM Language_Str HOME_SENSE = u8"Home Sense"; - PROGMEM Language_Str X_MAX = u8"X Max"; - PROGMEM Language_Str X_MIN = u8"X Min"; - PROGMEM Language_Str Y_MAX = u8"Y Max"; - PROGMEM Language_Str Y_MIN = u8"Y Min"; - PROGMEM Language_Str Z_MAX = u8"Z Max"; - PROGMEM Language_Str Z_MIN = u8"Z Min"; - PROGMEM Language_Str Z_PROBE = u8"Z Probe"; - PROGMEM Language_Str RUNOUT_1 = u8"Runout 1"; - PROGMEM Language_Str RUNOUT_2 = u8"Runout 2"; - PROGMEM Language_Str DISPLAY_MENU = u8"Display"; - PROGMEM Language_Str INTERFACE_SETTINGS = u8"Interface Settings"; - PROGMEM Language_Str MEASURE_AUTOMATICALLY = u8"Measure automatically"; - PROGMEM Language_Str H_OFFSET = u8"H Offset"; - PROGMEM Language_Str V_OFFSET = u8"V Offset"; - PROGMEM Language_Str TOUCH_SCREEN = u8"Touch Screen"; - PROGMEM Language_Str CALIBRATE = u8"Calibrate"; - - PROGMEM Language_Str UNITS_MILLIAMP = u8"mA"; - PROGMEM Language_Str UNITS_MM = u8"mm"; - PROGMEM Language_Str UNITS_MM_S = u8"mm/s"; - #if ENABLED(TOUCH_UI_UTF8_WESTERN_CHARSET) - PROGMEM Language_Str UNITS_MM_S2 = u8"mm/s²"; - #else - PROGMEM Language_Str UNITS_MM_S2 = u8"mm/s^2"; - #endif - PROGMEM Language_Str UNITS_STEP_MM = u8"st/mm"; - PROGMEM Language_Str UNITS_PERCENT = u8"%"; - #if ENABLED(TOUCH_UI_UTF8_WESTERN_CHARSET) - PROGMEM Language_Str UNITS_C = u8"°C"; - #else - PROGMEM Language_Str UNITS_C = u8" C"; - #endif - PROGMEM Language_Str MATERIAL_PLA = u8"PLA"; - PROGMEM Language_Str MATERIAL_ABS = u8"ABS"; - PROGMEM Language_Str MATERIAL_HIGH_TEMP = u8"High"; - PROGMEM Language_Str TEMP_IDLE = u8"idle"; - - PROGMEM Language_Str PRINTING = u8"Printing"; - PROGMEM Language_Str SET_MAXIMUM = u8"Set Maximum"; - PROGMEM Language_Str DETECTION_THRESHOLD = u8"Detection Threshold"; - PROGMEM Language_Str DISTANCE = u8"Distance"; - PROGMEM Language_Str COOLDOWN = u8"Cooldown (All Off)"; - PROGMEM Language_Str PRINT_SPEED = u8"Print Speed"; - PROGMEM Language_Str SPEED = u8"Speed"; - PROGMEM Language_Str LINEAR_ADVANCE = u8"Linear Advance"; - PROGMEM Language_Str LINEAR_ADVANCE_K = u8"K"; - PROGMEM Language_Str LINEAR_ADVANCE_K1 = u8"K E1"; - PROGMEM Language_Str LINEAR_ADVANCE_K2 = u8"K E2"; - PROGMEM Language_Str LINEAR_ADVANCE_K3 = u8"K E3"; - PROGMEM Language_Str LINEAR_ADVANCE_K4 = u8"K E4"; - PROGMEM Language_Str NUDGE_NOZZLE = u8"Nudge Nozzle"; - PROGMEM Language_Str ADJUST_BOTH_NOZZLES = u8"Adjust Both Nozzles"; - PROGMEM Language_Str SHOW_OFFSETS = u8"Show Offsets"; - PROGMEM Language_Str INCREMENT = u8"Increment"; - PROGMEM Language_Str ERASE_FLASH_WARNING = u8"Are you sure? SPI flash will be erased."; - PROGMEM Language_Str ERASING = u8"Erasing..."; - PROGMEM Language_Str ERASED = u8"SPI flash erased"; - PROGMEM Language_Str CALIBRATION_WARNING = u8"For best results, unload the filament and clean the hotend prior to starting calibration. Continue?"; - PROGMEM Language_Str START_PRINT_CONFIRMATION = u8"Start printing %s?"; - PROGMEM Language_Str ABORT_WARNING = u8"Are you sure you want to cancel the print?"; - PROGMEM Language_Str EXTRUDER_SELECTION = u8"Extruder Selection"; - PROGMEM Language_Str CURRENT_TEMPERATURE = u8"Current Temp"; - PROGMEM Language_Str REMOVAL_TEMPERATURE = u8"Removal Temp"; - PROGMEM Language_Str HEATING = u8"Heating"; - PROGMEM Language_Str CAUTION = u8"Caution:"; - PROGMEM Language_Str HOT = u8"Hot!"; - PROGMEM Language_Str UNLOAD_FILAMENT = u8"Unload"; - PROGMEM Language_Str LOAD_FILAMENT = u8"Load/Extruder"; - PROGMEM Language_Str MOMENTARY = u8"Momentary"; - PROGMEM Language_Str CONTINUOUS = u8"Continuous"; - PROGMEM Language_Str PLEASE_WAIT = u8"Please wait..."; - PROGMEM Language_Str PRINT_MENU = u8"Print Menu"; - PROGMEM Language_Str FINE_MOTION = u8"Fine motion"; - PROGMEM Language_Str ENABLE_MEDIA = u8"Enable Media"; - PROGMEM Language_Str INSERT_MEDIA = u8"Insert Media..."; - PROGMEM Language_Str LCD_BRIGHTNESS = u8"LCD brightness"; - PROGMEM Language_Str SOUND_VOLUME = u8"Sound volume"; - PROGMEM Language_Str SCREEN_LOCK = u8"Screen lock"; - PROGMEM Language_Str BOOT_SCREEN = u8"Boot screen"; - PROGMEM Language_Str INTERFACE_SOUNDS = u8"Interface Sounds"; - PROGMEM Language_Str CLICK_SOUNDS = u8"Click sounds"; - PROGMEM Language_Str EEPROM_RESTORED = u8"Settings restored from backup"; - PROGMEM Language_Str EEPROM_RESET = u8"Settings restored to default"; - PROGMEM Language_Str EEPROM_SAVED = u8"Settings saved!"; - PROGMEM Language_Str EEPROM_SAVE_PROMPT = u8"Do you wish to save these settings as defaults?"; - PROGMEM Language_Str EEPROM_RESET_WARNING = u8"Are you sure? Customizations will be lost."; - - PROGMEM Language_Str PASSCODE_REJECTED = u8"Wrong passcode!"; - PROGMEM Language_Str PASSCODE_ACCEPTED = u8"Passcode accepted!"; - PROGMEM Language_Str PASSCODE_SELECT = u8"Select Passcode:"; - PROGMEM Language_Str PASSCODE_REQUEST = u8"Enter Passcode:"; - - PROGMEM Language_Str TOUCH_CALIBRATION_START = u8"Release to begin screen calibration"; - PROGMEM Language_Str TOUCH_CALIBRATION_PROMPT = u8"Touch the dots to calibrate"; - - #ifdef LULZBOT_USE_BIOPRINTER_UI - PROGMEM Language_Str MAIN_MENU = u8"Main Menu"; - PROGMEM Language_Str MOVE_TO_HOME = u8"Move To Home"; - PROGMEM Language_Str RAISE_PLUNGER = u8"Raise Plunger"; - PROGMEM Language_Str RELEASE_XY_AXIS = u8"Release X and Y Axis"; - PROGMEM Language_Str AUTOLEVEL_X_AXIS = u8"Auto-level X Axis"; - PROGMEM Language_Str BED_TEMPERATURE = u8"Bed Temperature"; - PROGMEM Language_Str HOME_XYZ_WARNING = u8"About to move to home position. Ensure the top and the bed of the printer are clear.\n\nContinue?"; - PROGMEM Language_Str HOME_E_WARNING = u8"About to re-home plunger and auto-level. Remove syringe prior to proceeding.\n\nContinue?"; + + #ifdef TOUCH_UI_COCOA_PRESS + PROGMEM Language_Str MSG_ZONE_1 = u8"Zone 1:"; + PROGMEM Language_Str MSG_ZONE_2 = u8"Zone 2:"; #endif }; // namespace Language_en diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_fr.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_fr.h deleted file mode 100644 index 64582219ce..0000000000 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_fr.h +++ /dev/null @@ -1,84 +0,0 @@ -/***************** - * language_fr.h * - *****************/ - -/**************************************************************************** - * Written By Marcio Teixeira 2019 - Aleph Objects, Inc. * - * * - * This program is free software: you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation, either version 3 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * To view a copy of the GNU General Public License, go to the following * - * location: . * - ****************************************************************************/ - -#pragma once - -namespace Language_fr { - using namespace Language_en; // Inherit undefined strings from English - - PROGMEM Language_Str YES = u8"oui"; - PROGMEM Language_Str NO = u8"non"; - PROGMEM Language_Str BACK = u8"Retour"; - - PROGMEM Language_Str AUTO_HOME = u8"Origine auto"; - //PROGMEM Language_Str CLEAN_NOZZLE = u8"Clean Nozzle"; - PROGMEM Language_Str MOVE_AXIS = u8"Déplacer un axe"; - PROGMEM Language_Str MOTORS_OFF = u8"Arrêter moteurs"; - PROGMEM Language_Str TEMPERATURE = u8"Température"; - PROGMEM Language_Str CHANGE_FILAMENT = u8"Changer filament"; - PROGMEM Language_Str ADVANCED_SETTINGS = u8"Config. avancée"; - PROGMEM Language_Str ABOUT_PRINTER = u8"Infos imprimante"; - PROGMEM Language_Str PRINTER_STATISTICS = u8"Stats. imprimante"; - - PROGMEM Language_Str ZPROBE_ZOFFSET = u8"Décalage Z"; - PROGMEM Language_Str STEPS_PER_MM = u8"Pas/mm"; - PROGMEM Language_Str TOOL_OFFSETS = u8"Offsets Outil"; - PROGMEM Language_Str VELOCITY = u8"Vélocité"; - PROGMEM Language_Str ACCELERATION = u8"Accélération"; - PROGMEM Language_Str ACCEL_PRINTING = u8"A impr."; - PROGMEM Language_Str ACCEL_TRAVEL = u8"A dépl."; - PROGMEM Language_Str ACCEL_RETRACT = u8"A retrait"; - PROGMEM Language_Str JUNC_DEVIATION = u8"Déviat. jonct."; - //PROGMEM Language_Str BACKLASH = u8"Backlash"; - PROGMEM Language_Str SMOOTHING = u8"Lissage"; - PROGMEM Language_Str MOTOR_CURRENT = u8"Courant"; - PROGMEM Language_Str ENDSTOPS = u8"Butées"; - PROGMEM Language_Str SOFT_ENDSTOPS = u8"Butées SW"; - PROGMEM Language_Str RESTORE_DEFAULTS = u8"Restaurer défauts"; - - - PROGMEM Language_Str HOTEND = u8"Buse"; - PROGMEM Language_Str HOTEND1 = u8"Buse 1"; - PROGMEM Language_Str HOTEND2 = u8"Buse 2"; - PROGMEM Language_Str HOTEND3 = u8"Buse 3"; - PROGMEM Language_Str HOTEND4 = u8"Buse 4"; - PROGMEM Language_Str BED = u8"Lit"; - PROGMEM Language_Str AXIS_ALL = u8"Tous"; - PROGMEM Language_Str HOME = u8"Origine"; - - PROGMEM Language_Str FAN_SPEED = u8"Vitesse ventil."; - PROGMEM Language_Str RUNOUT_SENSOR = u8"Capteur fil."; - - PROGMEM Language_Str PRINT_FILE = u8"Imprimer"; - - PROGMEM Language_Str RESUME_PRINT = u8"Reprendre impr."; - PROGMEM Language_Str PAUSE_PRINT = u8"Pause impression"; - PROGMEM Language_Str STOP_PRINT = u8"Arrêter impr."; - - PROGMEM Language_Str INFO_PRINT_COUNT = u8"Nbre impressions"; - PROGMEM Language_Str INFO_COMPLETED_PRINTS = u8"Terminées"; - PROGMEM Language_Str INFO_PRINT_TIME = u8"Tps impr. total"; - PROGMEM Language_Str INFO_PRINT_LONGEST = u8"Impr. la + longue"; - PROGMEM Language_Str INFO_PRINT_FILAMENT = u8"Total filament"; - - PROGMEM Language_Str PRINTER_HALTED = u8"IMPR. STOPPÉE"; - PROGMEM Language_Str PLEASE_RESET = u8"Redémarrer SVP"; -}; // namespace Language_fr diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/marlin_events.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/marlin_events.cpp index e61033ee3a..23b37854e3 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/marlin_events.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/marlin_events.cpp @@ -103,7 +103,7 @@ namespace ExtUI { } void onConfigurationStoreWritten(bool success) { - #ifdef LULZBOT_EEPROM_BACKUP_SIZE + #ifdef ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE if (success && InterfaceSettingsScreen::backupEEPROM()) { SERIAL_ECHOLNPGM("Made backup of EEPROM to SPI Flash"); } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/about_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/about_screen.cpp index 612f914464..336282b473 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/about_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/about_screen.cpp @@ -45,43 +45,43 @@ void AboutScreen::onRedraw(draw_mode_t) { .cmd(COLOR_RGB(bg_text_enabled)) .tag(0); - draw_text_box(cmd, BTN_POS(1,2), BTN_SIZE(4,1), F( - #ifdef LULZBOT_LCD_MACHINE_NAME - LULZBOT_LCD_MACHINE_NAME + draw_text_box(cmd, BTN_POS(1,2), BTN_SIZE(4,1), + #ifdef CUSTOM_MACHINE_NAME + F(CUSTOM_MACHINE_NAME) #else - GET_TEXT_F(COLOR_TOUCH_PANEL) + GET_TEXT_F(MSG_ABOUT_TOUCH_PANEL_1) #endif - ), OPT_CENTER, font_xlarge); - - #ifdef LULZBOT_LCD_TOOLHEAD_NAME + , OPT_CENTER, font_xlarge); + + #ifdef TOOLHEAD_NAME char about_str[ strlen_P(GET_TEXT(FIRMWARE_FOR_TOOLHEAD)) + - strlen_P(LULZBOT_LCD_TOOLHEAD_NAME) + - strlen_P(GET_TEXT(ABOUT_ALEPH_OBJECTS)) + 1]; + strlen_P(TOOLHEAD_NAME) + + strlen_P(GET_TEXT(ABOUT_TOUCH_PANEL_2)) + 1]; - sprintf_P(about_str, GET_TEXT(FIRMWARE_FOR_TOOLHEAD), LULZBOT_LCD_TOOLHEAD_NAME); - strcat_P(about_str, GET_TEXT(ABOUT_ALEPH_OBJECTS)); + sprintf_P(about_str, GET_TEXT(FIRMWARE_FOR_TOOLHEAD), TOOLHEAD_NAME); + strcat_P (about_str, GET_TEXT(ABOUT_TOUCH_PANEL_2)); #endif cmd.tag(2); draw_text_box(cmd, BTN_POS(1,3), BTN_SIZE(4,3), - #ifdef LULZBOT_LCD_TOOLHEAD_NAME + #ifdef TOOLHEAD_NAME about_str #else - GET_TEXT_F(ABOUT_ALEPH_OBJECTS) + GET_TEXT_F(MSG_ABOUT_TOUCH_PANEL_2) #endif , OPT_CENTER, font_medium); cmd.tag(0); draw_text_box(cmd, BTN_POS(1,6), BTN_SIZE(4,2), progmem_str(getFirmwareName_str()), OPT_CENTER, font_medium); - cmd.font(font_medium).colors(action_btn).tag(1).button(BTN_POS(2,8), BTN_SIZE(2,1), GET_TEXT_F(OKAY)); + cmd.font(font_medium).colors(action_btn).tag(1).button(BTN_POS(2,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_OKAY)); } bool AboutScreen::onTouchEnd(uint8_t tag) { switch (tag) { case 1: GOTO_PREVIOUS(); return true; -#if ENABLED(DEVELOPER_SCREENS) +#if ENABLED(TOUCH_UI_DEVELOPER_MENU) case 2: GOTO_SCREEN(DeveloperMenu); return true; #endif default: return false; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/advanced_settings_menu.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/advanced_settings_menu.cpp index 7168b803c5..3babd3ef20 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/advanced_settings_menu.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/advanced_settings_menu.cpp @@ -22,7 +22,7 @@ #include "../config.h" -#if ENABLED(LULZBOT_TOUCH_UI) && !defined(LULZBOT_USE_BIOPRINTER_UI) +#if ENABLED(LULZBOT_TOUCH_UI) && !defined(TOUCH_UI_LULZBOT_BIO) #include "screens.h" @@ -49,52 +49,52 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) { #else .enabled(0) #endif - .tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(ZPROBE_ZOFFSET)) + .tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_ZPROBE_ZOFFSET)) .enabled(1) - .tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(STEPS_PER_MM)) + .tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_STEPS_PER_MM)) #if HAS_TRINAMIC .enabled(1) #else .enabled(0) #endif - .tag(13).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(MOTOR_CURRENT)) + .tag(13).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_CURRENT)) #if HAS_TRINAMIC .enabled(1) #else .enabled(0) #endif - .tag(14).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(HOME_SENSE)) + .tag(14).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_HOMING_THRS)) #if HOTENDS > 1 .enabled(1) #else .enabled(0) #endif - .tag(4) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(TOOL_OFFSETS)) + .tag(4) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_OFFSETS_MENU)) #if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR) .enabled(1) #else .enabled(0) #endif - .tag(11).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(FILAMENT)) - .tag(12).button( BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXT_F(ENDSTOPS)) - .tag(15).button( BTN_POS(2,6), BTN_SIZE(1,1), GET_TEXT_F(DISPLAY_MENU)) - .tag(9) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(INTERFACE_SETTINGS)) - .tag(10).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(RESTORE_DEFAULTS)) - .tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(VELOCITY)) - .tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(ACCELERATION)) + .tag(11).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_FILAMENT)) + .tag(12).button( BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_LCD_ENDSTOPS)) + .tag(15).button( BTN_POS(2,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_DISPLAY_MENU)) + .tag(9) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS)) + .tag(10).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_FAILSAFE)) + .tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_VELOCITY)) + .tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_ACCELERATION)) #if DISABLED(CLASSIC_JERK) - .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(JUNC_DEVIATION)) + .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JUNCTION_DEVIATION)) #else - .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(JERK)) + .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JERK)) #endif #if ENABLED(BACKLASH_GCODE) .enabled(1) #else .enabled(0) #endif - .tag(8).button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(BACKLASH)) + .tag(8).button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACKLASH)) .colors(action_btn) - .tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(BACK)); + .tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); #undef GRID_COLS #undef GRID_ROWS #else @@ -105,47 +105,47 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) { #else .enabled(0) #endif - .tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,2), GET_TEXT_F(ZPROBE_ZOFFSET)) + .tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,2), GET_TEXT_F(MSG_ZPROBE_ZOFFSET)) .enabled(1) - .tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(STEPS_PER_MM)) + .tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_STEPS_PER_MM)) #if HAS_TRINAMIC .enabled(1) #else .enabled(0) #endif - .tag(13).button( BTN_POS(3,1), BTN_SIZE(1,1), GET_TEXT_F(MOTOR_CURRENT)) + .tag(13).button( BTN_POS(3,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_CURRENT)) #if HAS_TRINAMIC .enabled(1) #else .enabled(0) #endif - .tag(14).button( BTN_POS(3,2), BTN_SIZE(1,1), GET_TEXT_F(HOME_SENSE)) + .tag(14).button( BTN_POS(3,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_HOMING_THRS)) #if ENABLED(BACKLASH_GCODE) .enabled(1) #else .enabled(0) #endif - .tag(8).button( BTN_POS(3,3), BTN_SIZE(1,1), GET_TEXT_F(BACKLASH)) + .tag(8).button( BTN_POS(3,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACKLASH)) #if HOTENDS > 1 .enabled(1) #else .enabled(0) #endif - .tag(4) .button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(TOOL_OFFSETS)) - .tag(12).button( BTN_POS(3,4), BTN_SIZE(1,1), GET_TEXT_F(ENDSTOPS)) - .tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(VELOCITY)) - .tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(ACCELERATION)) + .tag(4) .button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_OFFSETS_MENU)) + .tag(12).button( BTN_POS(3,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_LCD_ENDSTOPS)) + .tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_VELOCITY)) + .tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_ACCELERATION)) #if DISABLED(CLASSIC_JERK) - .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(JUNC_DEVIATION)) + .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JUNCTION_DEVIATION)) #else - .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(JERK)) + .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JERK)) #endif - .tag(11).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(FILAMENT)) - .tag(15).button( BTN_POS(3,5), BTN_SIZE(1,1), GET_TEXT_F(DISPLAY_MENU)) - .tag(9) .button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(INTERFACE_SETTINGS)) - .tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(RESTORE_DEFAULTS)) + .tag(11).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_FILAMENT)) + .tag(15).button( BTN_POS(3,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_DISPLAY_MENU)) + .tag(9) .button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS)) + .tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_FAILSAFE)) .colors(action_btn) - .tag(1) .button( BTN_POS(3,6), BTN_SIZE(1,1), GET_TEXT_F(BACK)); + .tag(1) .button( BTN_POS(3,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACK)); #endif } } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/backlash_compensation_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/backlash_compensation_screen.cpp index 111eb19d9f..654b9b6bc7 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/backlash_compensation_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/backlash_compensation_screen.cpp @@ -32,17 +32,17 @@ using namespace Theme; void BacklashCompensationScreen::onRedraw(draw_mode_t what) { widgets_t w(what); - w.precision(2).units( GET_TEXT_F(UNITS_MM)); - w.heading( GET_TEXT_F(BACKLASH)); - w.color(x_axis).adjuster(2, GET_TEXT_F(AXIS_X), getAxisBacklash_mm(X)); - w.color(y_axis).adjuster(4, GET_TEXT_F(AXIS_Y), getAxisBacklash_mm(Y)); - w.color(z_axis).adjuster(6, GET_TEXT_F(AXIS_Z), getAxisBacklash_mm(Z)); + w.precision(2).units( GET_TEXT_F(MSG_UNITS_MM)); + w.heading( GET_TEXT_F(MSG_BACKLASH)); + w.color(x_axis).adjuster(2, GET_TEXT_F(MSG_AXIS_X), getAxisBacklash_mm(X)); + w.color(y_axis).adjuster(4, GET_TEXT_F(MSG_AXIS_Y), getAxisBacklash_mm(Y)); + w.color(z_axis).adjuster(6, GET_TEXT_F(MSG_AXIS_Z), getAxisBacklash_mm(Z)); #if ENABLED(CALIBRATION_GCODE) - w.button(12, GET_TEXT_F(MEASURE_AUTOMATICALLY)); + w.button(12, GET_TEXT_F(MSG_MEASURE_AUTOMATICALLY)); #endif - w.color(other).adjuster(8, GET_TEXT_F(SMOOTHING), getBacklashSmoothing_mm()); - w.precision(0).units(GET_TEXT_F(UNITS_PERCENT)) - .adjuster(10, GET_TEXT_F(CORRECTION), getBacklashCorrection_percent()); + w.color(other).adjuster(8, GET_TEXT_F(MSG_SMOOTHING), getBacklashSmoothing_mm()); + w.precision(0).units(GET_TEXT_F(MSG_UNITS_PERCENT)) + .adjuster(10, GET_TEXT_F(MSG_CORRECTION), getBacklashCorrection_percent()); w.precision(2).increments(); } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/base_numeric_adjustment_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/base_numeric_adjustment_screen.cpp index c8c500669b..825bc218f0 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/base_numeric_adjustment_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/base_numeric_adjustment_screen.cpp @@ -58,7 +58,7 @@ BaseNumericAdjustmentScreen::widgets_t::widgets_t(draw_mode_t what) : _what(what #else BTN_POS(15,7), BTN_SIZE(4,1), #endif - GET_TEXT_F(BACK), true, true + GET_TEXT_F(MSG_BACK), true, true ); _line = 1; @@ -197,7 +197,7 @@ void BaseNumericAdjustmentScreen::widgets_t::increments() { #else BTN_POS(15, 1), BTN_SIZE(4,1), #endif - GET_TEXT_F(INCREMENT) + GET_TEXT_F(MSG_INCREMENT) ); } @@ -328,7 +328,7 @@ void BaseNumericAdjustmentScreen::widgets_t::toggle(uint8_t tag, progmem_str lab #else BTN_POS(10,_line), BTN_SIZE(4,1), #endif - GET_TEXT_F(NO), GET_TEXT_F(YES), value + GET_TEXT_F(MSG_NO), GET_TEXT_F(MSG_YES), value ); } @@ -341,14 +341,14 @@ void BaseNumericAdjustmentScreen::widgets_t::home_buttons(uint8_t tag) { if (_what & BACKGROUND) { _button_style(cmd, TEXT_LABEL); cmd.font(font_small) - .text(BTN_POS(1, _line), BTN_SIZE(4,1), GET_TEXT_F(HOME)); + .text(BTN_POS(1, _line), BTN_SIZE(4,1), GET_TEXT_F(MSG_HOME)); } cmd.font(LAYOUT_FONT); - _button(cmd, tag+0, BTN_POS(5,_line), BTN_SIZE(2,1), GET_TEXT_F(AXIS_X)); - _button(cmd, tag+1, BTN_POS(7,_line), BTN_SIZE(2,1), GET_TEXT_F(AXIS_Y)); - _button(cmd, tag+2, BTN_POS(9,_line), BTN_SIZE(2,1), GET_TEXT_F(AXIS_Z)); - _button(cmd, tag+3, BTN_POS(11,_line), BTN_SIZE(3,1), GET_TEXT_F(AXIS_ALL)); + _button(cmd, tag+0, BTN_POS(5,_line), BTN_SIZE(2,1), GET_TEXT_F(MSG_AXIS_X)); + _button(cmd, tag+1, BTN_POS(7,_line), BTN_SIZE(2,1), GET_TEXT_F(MSG_AXIS_Y)); + _button(cmd, tag+2, BTN_POS(9,_line), BTN_SIZE(2,1), GET_TEXT_F(MSG_AXIS_Z)); + _button(cmd, tag+3, BTN_POS(11,_line), BTN_SIZE(3,1), GET_TEXT_F(MSG_AXIS_ALL)); _line++; } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_advanced_settings.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_advanced_settings.cpp index 86382b674e..8719e1379e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_advanced_settings.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_advanced_settings.cpp @@ -22,7 +22,7 @@ #include "../config.h" -#if ENABLED(LULZBOT_TOUCH_UI) && defined(LULZBOT_USE_BIOPRINTER_UI) +#if ENABLED(LULZBOT_TOUCH_UI) && defined(TOUCH_UI_LULZBOT_BIO) #include "screens.h" @@ -43,52 +43,52 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) { #define GRID_ROWS 9 #define GRID_COLS 2 - .tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(DISPLAY_MENU)) + .tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_DISPLAY_MENU)) #if HAS_TRINAMIC .enabled(1) #else .enabled(0) #endif - .tag(3) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MOTOR_CURRENT)) + .tag(3) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_CURRENT)) #if HAS_TRINAMIC .enabled(1) #else .enabled(0) #endif - .tag(4) .button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(HOME_SENSE)) - .tag(5) .button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(ENDSTOPS)) + .tag(4) .button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_HOMING_THRS)) + .tag(5) .button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_LCD_ENDSTOPS)) #if HOTENDS > 1 .enabled(1) #else .enabled(0) #endif - .tag(6) .button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(TOOL_OFFSETS)) + .tag(6) .button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_OFFSETS_MENU)) - .tag(7) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(STEPS_PER_MM)) - .tag(8) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(VELOCITY)) - .tag(9) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(ACCELERATION)) + .tag(7) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_STEPS_PER_MM)) + .tag(8) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_VELOCITY)) + .tag(9) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_ACCELERATION)) #if DISABLED(CLASSIC_JERK) - .tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(JUNC_DEVIATION)) + .tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JUNCTION_DEVIATION)) #else - .tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(JERK)) + .tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JERK)) #endif #if ENABLED(BACKLASH_GCODE) .enabled(1) #else .enabled(0) #endif - .tag(11) .button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(BACKLASH)) + .tag(11) .button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACKLASH)) #if ENABLED(LIN_ADVANCE) .enabled(1) #else .enabled(0) #endif - .tag(12) .button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(LINEAR_ADVANCE)) - .tag(13) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(INTERFACE_SETTINGS)) - .tag(14) .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(RESTORE_DEFAULTS)) + .tag(12) .button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_LINEAR_ADVANCE)) + .tag(13) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS)) + .tag(14) .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_FAILSAFE)) .colors(action_btn) - .tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(BACK)); + .tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); #undef GRID_COLS #undef GRID_ROWS } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_e.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_e.cpp index fb36e977c4..994034ff1a 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_e.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_e.cpp @@ -22,14 +22,14 @@ #include "../config.h" -#if ENABLED(LULZBOT_TOUCH_UI) && defined(LULZBOT_USE_BIOPRINTER_UI) +#if ENABLED(LULZBOT_TOUCH_UI) && defined(TOUCH_UI_LULZBOT_BIO) #include "screens.h" using namespace FTDI; void BioConfirmHomeE::onRedraw(draw_mode_t) { - drawMessage(GET_TEXT_F(HOME_E_WARNING)); + drawMessage(GET_TEXT_F(MSG_HOME_E_WARNING)); drawYesNoButtons(1); } @@ -37,9 +37,9 @@ bool BioConfirmHomeE::onTouchEnd(uint8_t tag) { switch (tag) { case 1: SpinnerDialogBox::enqueueAndWait_P(F( - "G112\n" - LULZBOT_AXIS_LEVELING_COMMANDS "\n" - LULZBOT_PARK_AND_RELEASE_COMMANDS + "G28 E\n" + AXIS_LEVELING_COMMANDS "\n" + PARK_AND_RELEASE_COMMANDS )); current_screen.forget(); break; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_xyz.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_xyz.cpp index 43ed1f4baa..01e48d6724 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_xyz.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_xyz.cpp @@ -22,14 +22,14 @@ #include "../config.h" -#if ENABLED(LULZBOT_TOUCH_UI) && defined(LULZBOT_USE_BIOPRINTER_UI) +#if ENABLED(LULZBOT_TOUCH_UI) && defined(TOUCH_UI_LULZBOT_BIO) #include "screens.h" using namespace FTDI; void BioConfirmHomeXYZ::onRedraw(draw_mode_t) { - drawMessage(GET_TEXT_F(HOME_XYZ_WARNING)); + drawMessage(GET_TEXT_F(MSG_HOME_XYZ_WARNING)); drawYesNoButtons(1); } @@ -38,7 +38,7 @@ bool BioConfirmHomeXYZ::onTouchEnd(uint8_t tag) { case 1: SpinnerDialogBox::enqueueAndWait_P(F( "G28\n" - LULZBOT_PARK_AND_RELEASE_COMMANDS + PARK_AND_RELEASE_COMMANDS )); current_screen.forget(); break; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_main_menu.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_main_menu.cpp index 448cc29207..d2e831b90f 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_main_menu.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_main_menu.cpp @@ -22,7 +22,7 @@ #include "../config.h" -#if ENABLED(LULZBOT_TOUCH_UI) && defined(LULZBOT_USE_BIOPRINTER_UI) +#if ENABLED(LULZBOT_TOUCH_UI) && defined(TOUCH_UI_LULZBOT_BIO) #include "screens.h" @@ -43,19 +43,19 @@ void MainMenu::onRedraw(draw_mode_t what) { if (what & FOREGROUND) { CommandProcessor cmd; cmd.cmd(COLOR_RGB(bg_text_enabled)) - .font(font_large).text( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(MAIN_MENU)) + .font(font_large).text( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_MAIN)) .colors(normal_btn) .font(font_medium) - .tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(MOVE_TO_HOME)) - .tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(RAISE_PLUNGER)) - .tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(RELEASE_XY_AXIS)) - .tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(AUTOLEVEL_X_AXIS)) - .tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(BED_TEMPERATURE)) - .tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(INTERFACE_SETTINGS)) - .tag(8).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(ADVANCED_SETTINGS)) - .tag(9).button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(ABOUT_PRINTER)) + .tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(MSG_MOVE_TO_HOME)) + .tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_RAISE_PLUNGER)) + .tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_RELEASE_XY_AXIS)) + .tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_AUTOLEVEL_X_AXIS)) + .tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BED_TEMPERATURE)) + .tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS)) + .tag(8).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_ADVANCED_SETTINGS)) + .tag(9).button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_INFO_MENU)) .colors(action_btn) - .tag(1).button( BTN_POS(1,10), BTN_SIZE(2,1), GET_TEXT_F(BACK)); + .tag(1).button( BTN_POS(1,10), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); } #undef GRID_COLS @@ -72,7 +72,7 @@ bool MainMenu::onTouchEnd(uint8_t tag) { case 2: GOTO_SCREEN(BioConfirmHomeXYZ); break; case 3: SpinnerDialogBox::enqueueAndWait_P(e_homed ? F("G0 E0 F120") : F("G112")); break; case 4: StatusScreen::unlockMotors(); break; - case 5: SpinnerDialogBox::enqueueAndWait_P(F(LULZBOT_AXIS_LEVELING_COMMANDS)); break; + case 5: SpinnerDialogBox::enqueueAndWait_P(F(AXIS_LEVELING_COMMANDS)); break; case 6: GOTO_SCREEN(TemperatureScreen); break; case 7: GOTO_SCREEN(InterfaceSettingsScreen); break; case 8: GOTO_SCREEN(AdvancedSettingsMenu); break; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printer_ui_landscape.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printer_ui_landscape.h new file mode 100644 index 0000000000..b3e9b44416 --- /dev/null +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printer_ui_landscape.h @@ -0,0 +1,82 @@ + +/**************************************************************************** + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * To view a copy of the GNU General Public License, go to the following * + * location: . * + ****************************************************************************/ + +/** + * This file was auto-generated using "svg2cpp.pl" + * + * The encoding consists of x,y pairs with the min and max scaled to + * 0x0000 and 0xFFFE. A single 0xFFFF in the data stream indicates the + * start of a new closed path. + */ + +#pragma once + +constexpr float x_min = 0.000000; + +constexpr float x_max = 480.000000; + +constexpr float y_min = 0.000000; + +constexpr float y_max = 272.000000; + +const PROGMEM uint16_t z_neg[] = {0x7950, 0x51EA, 0x824E, 0x51EA, 0x824E, 0x71E2, 0x86CD, 0x71E2, 0x7DCF, 0x81DF, 0x74D1, 0x71E2, 0x7950, 0x71E2, 0x7950, 0x51EA}; + +const PROGMEM uint16_t z_pos[] = {0x7950, 0x41EE, 0x824E, 0x41EE, 0x824E, 0x21F5, 0x86CD, 0x21F5, 0x7DCF, 0x11F9, 0x74D0, 0x21F5, 0x7950, 0x21F5, 0x7950, 0x41EE}; + +const PROGMEM uint16_t y_neg[] = {0x3479, 0x56CF, 0x3EC6, 0x56CF, 0x3747, 0x7281, 0x3C6D, 0x7281, 0x2E61, 0x8059, 0x27D4, 0x7281, 0x2CFA, 0x7281, 0x3479, 0x56CF}; + +const PROGMEM uint16_t y_pos[] = {0x3BF9, 0x3B1D, 0x4645, 0x3B1D, 0x4DC4, 0x1F6B, 0x52EB, 0x1F6B, 0x4C5E, 0x1192, 0x3E52, 0x1F6B, 0x4378, 0x1F6B, 0x3BF9, 0x3B1D}; + +const PROGMEM uint16_t x_neg[] = {0x350E, 0x4209, 0x314E, 0x4FE2, 0x1CB5, 0x4FE2, 0x1AD6, 0x56CF, 0x1449, 0x48F6, 0x2255, 0x3B1D, 0x2075, 0x4209, 0x350E, 0x4209}; + +const PROGMEM uint16_t x_pos[] = {0x498C, 0x4209, 0x45CC, 0x4FE2, 0x5A65, 0x4FE2, 0x5885, 0x56CF, 0x6691, 0x48F6, 0x6004, 0x3B1D, 0x5E25, 0x4209, 0x498C, 0x4209}; + +const PROGMEM uint16_t syringe_fluid[] = {0xB4E9, 0x78BE, 0xBB12, 0x7C44, 0xBDE3, 0x7C44, 0xC426, 0x78BE, 0xC426, 0x250D, 0xB4E9, 0x250D, 0xB4E9, 0x78BE}; + +const PROGMEM uint16_t syringe[] = {0xB8AD, 0x6BB1, 0xB8AD, 0x6E0C, 0xBE02, 0x6E0C, 0xBE02, 0x6BB1, 0xFFFF, 0xB8AD, 0x6248, 0xB8AD, 0x64A2, 0xBE02, 0x64A2, 0xBE02, 0x6248, 0xFFFF, 0xB8AD, 0x58DF, 0xB8AD, 0x5B39, 0xBE02, 0x5B39, 0xBE02, 0x58DF, 0xFFFF, 0xB8AD, 0x4F75, 0xB8AD, 0x51D0, 0xBE02, 0x51D0, 0xBE02, 0x4F75, 0xFFFF, 0xB8AD, 0x460C, 0xB8AD, 0x4866, 0xBE02, 0x4866, 0xBE02, 0x460C, 0xFFFF, 0xB8AD, 0x3CA3, 0xB8AD, 0x3EFD, 0xBE02, 0x3EFD, 0xBE02, 0x3CA3, 0xFFFF, 0xB8AD, 0x3339, 0xB8AD, 0x3594, 0xBE02, 0x3594, 0xBE02, 0x3339, 0xFFFF, 0xB396, 0x110A, 0xB396, 0x1818, 0xB995, 0x1818, 0xB995, 0x22AD, 0xB396, 0x22AD, 0xB396, 0x7ADA, 0xB995, 0x7E61, 0xB995, 0x88F5, 0xBB95, 0x88F5, 0xBB95, 0xA8B4, 0xBD94, 0xAC3B, 0xBD94, 0x88F5, 0xBF94, 0x88F5, 0xBF94, 0x7E61, 0xC593, 0x7ADA, 0xC593, 0x22AD, 0xBF94, 0x22AD, 0xBF94, 0x1818, 0xC593, 0x1818, 0xC593, 0x110A, 0xFFFF, 0xBB95, 0x1818, 0xBD94, 0x1818, 0xBD94, 0x22AD, 0xBB95, 0x22AD, 0xBB95, 0x1818, 0xFFFF, 0xB596, 0x2634, 0xC393, 0x2634, 0xC393, 0x7753, 0xBD94, 0x7ADA, 0xBB95, 0x7ADA, 0xB596, 0x7753, 0xB596, 0x2634}; + +const PROGMEM uint16_t syringe_outline[] = {0xB396, 0x110A, 0xB396, 0x1818, 0xB995, 0x1818, 0xB995, 0x22AD, 0xB396, 0x22AD, 0xB396, 0x7ADA, 0xB995, 0x7E61, 0xB995, 0x88F5, 0xBB95, 0x88F5, 0xBB95, 0xA8B4, 0xBD94, 0xAC3B, 0xBD94, 0x88F5, 0xBF94, 0x88F5, 0xBF94, 0x7E61, 0xC593, 0x7ADA, 0xC593, 0x22AD, 0xBF94, 0x22AD, 0xBF94, 0x1818, 0xC593, 0x1818, 0xC593, 0x110A, 0xB396, 0x110A}; + +const PROGMEM uint16_t padlock[] = {0x3FE3, 0x2A04, 0x3D34, 0x2AF9, 0x3AFF, 0x2D93, 0x397D, 0x316D, 0x38E8, 0x3626, 0x38E8, 0x3A14, 0x39B3, 0x3C8F, 0x3B50, 0x3C8F, 0x3C1C, 0x3A14, 0x3C1C, 0x363C, 0x3C6B, 0x33A9, 0x3D3A, 0x3193, 0x3E6C, 0x302D, 0x3FE3, 0x2FAA, 0x415A, 0x302D, 0x428C, 0x3192, 0x435B, 0x33A8, 0x43AB, 0x363C, 0x43AB, 0x4492, 0x38C3, 0x4492, 0x3741, 0x45AC, 0x36A1, 0x4856, 0x36A1, 0x5C41, 0x3741, 0x5EEC, 0x38C3, 0x6005, 0x4703, 0x6005, 0x4886, 0x5EEC, 0x4925, 0x5C41, 0x4925, 0x4856, 0x4886, 0x45AC, 0x4703, 0x4492, 0x46DE, 0x362B, 0x4649, 0x316D, 0x44C7, 0x2D92, 0x4292, 0x2AF9}; + +const PROGMEM uint16_t home_z[] = {0x80BB, 0x2B43, 0x712C, 0x46B9, 0x750F, 0x46B9, 0x750F, 0x622F, 0x7CD7, 0x622F, 0x7CD7, 0x5474, 0x849F, 0x5474, 0x849F, 0x622F, 0x8C67, 0x622F, 0x8C67, 0x46B9, 0x904B, 0x46B9, 0x8A48, 0x3C1D, 0x8A48, 0x2ECD, 0x8664, 0x2ECD, 0x8664, 0x3540}; + +const PROGMEM uint16_t usb_btn[] = {0x0558, 0xC0D6, 0x44A4, 0xC0D6, 0x44A4, 0xF431, 0x0558, 0xF431, 0x0558, 0xC0D6}; + +const PROGMEM uint16_t menu_btn[] = {0x4B18, 0xC0D6, 0x8A64, 0xC0D6, 0x8A64, 0xF431, 0x4B18, 0xF431, 0x4B18, 0xC0D6}; + +const PROGMEM uint16_t e_pos[] = {0xE04E, 0x5E7B, 0xE94C, 0x5E7B, 0xE94C, 0x7E74, 0xEDCB, 0x7E74, 0xE4CD, 0x8E70, 0xDBCF, 0x7E74, 0xE04E, 0x7E74, 0xE04E, 0x5E7B}; + +const PROGMEM uint16_t e_neg[] = {0xE04E, 0x4E7F, 0xE94C, 0x4E7F, 0xE94C, 0x2E87, 0xEDCB, 0x2E87, 0xE4CD, 0x1E8A, 0xDBCF, 0x2E87, 0xE04E, 0x2E87, 0xE04E, 0x4E7F}; + +const PROGMEM uint16_t home_e[] = {0xD705, 0x3885, 0xC775, 0x53FB, 0xCB59, 0x53FB, 0xCB59, 0x6F71, 0xD321, 0x6F71, 0xD321, 0x61B6, 0xDAE9, 0x61B6, 0xDAE9, 0x6F71, 0xE2B1, 0x6F71, 0xE2B1, 0x53FB, 0xE695, 0x53FB, 0xE092, 0x495F, 0xE092, 0x3C0E, 0xDCAE, 0x3C0E, 0xDCAE, 0x4281}; + +const PROGMEM uint16_t fine_label[] = {0x0D92, 0x9444, 0x5211, 0x9444, 0x5211, 0xA9EA, 0x0D92, 0xA9EA}; + +const PROGMEM uint16_t fine_toggle[] = {0x56E7, 0x9444, 0x8007, 0x9444, 0x8007, 0xA9EA, 0x56E7, 0xA9EA}; + +const PROGMEM uint16_t zone2_temp[] = {0xC620, 0xD35A, 0xFD0E, 0xD35A, 0xFD0E, 0xF075, 0xC620, 0xF075}; + +const PROGMEM uint16_t zone1_temp[] = {0x8E04, 0xD35A, 0xC4F3, 0xD35A, 0xC4F3, 0xF075, 0x8E04, 0xF075}; + +const PROGMEM uint16_t zone2_label[] = {0xC620, 0xB4AD, 0xFD0A, 0xB4AD, 0xFD0A, 0xD1C8, 0xC620, 0xD1C8}; + +const PROGMEM uint16_t zone1_label[] = {0x8E04, 0xB4AD, 0xC4F3, 0xB4AD, 0xC4F3, 0xD1C8, 0x8E04, 0xD1C8}; + +const PROGMEM uint16_t actual_temp[] = {0xCDF6, 0xD037, 0xF7CA, 0xD037, 0xF7CA, 0xF424, 0xCDF6, 0xF424}; + +const PROGMEM uint16_t bed_icon[] = {0xCDF6, 0xA5CC, 0xF7CA, 0xA5CC, 0xF7CA, 0xC9B9, 0xCDF6, 0xC9B9}; + diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printer_ui.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printer_ui_portrait.h similarity index 100% rename from Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printer_ui.h rename to Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printer_ui_portrait.h diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printing_dialog_box.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printing_dialog_box.cpp index 04d52498af..4a92e181a1 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printing_dialog_box.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_printing_dialog_box.cpp @@ -22,7 +22,7 @@ #include "../config.h" -#if ENABLED(LULZBOT_TOUCH_UI) && defined(LULZBOT_USE_BIOPRINTER_UI) +#if ENABLED(LULZBOT_TOUCH_UI) && defined(TOUCH_UI_LULZBOT_BIO) #include "screens.h" diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_status_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_status_screen.cpp index cd709a2dc6..d63739f46c 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_status_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_status_screen.cpp @@ -5,6 +5,7 @@ /**************************************************************************** * Written By Mark Pelletier 2017 - Aleph Objects, Inc. * * Written By Marcio Teixeira 2018 - Aleph Objects, Inc. * + * Written By Marcio Teixeira 2019 - Cocoa Press * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -22,12 +23,17 @@ #include "../config.h" -#if ENABLED(LULZBOT_TOUCH_UI) && defined(LULZBOT_USE_BIOPRINTER_UI) +#if ENABLED(LULZBOT_TOUCH_UI) && (ENABLED(TOUCH_UI_LULZBOT_BIO) || ENABLED(TOUCH_UI_COCOA_PRESS)) #include "screens.h" #include "../ftdi_eve_lib/extras/poly_ui.h" -#include "bio_printer_ui.h" + +#ifdef TOUCH_UI_PORTRAIT + #include "bio_printer_ui_portrait.h" +#else + #include "bio_printer_ui_landscape.h" +#endif #define GRID_COLS 2 #define GRID_ROWS 9 @@ -64,22 +70,46 @@ void StatusScreen::draw_temperature(draw_mode_t what) { if (what & BACKGROUND) { cmd.cmd(COLOR_RGB(bg_color)); - // Draw touch surfaces - ui.bounds(POLY(target_temp), x, y, h, v); - cmd.rectangle(x, y, h, v); - ui.bounds(POLY(actual_temp), x, y, h, v); - cmd.rectangle(x, y, h, v); - ui.bounds(POLY(bed_icon), x, y, h, v); - cmd.rectangle(x, y, h, v); - - // Draw bed icon - cmd.cmd(BITMAP_SOURCE(Bed_Heat_Icon_Info)) - .cmd(BITMAP_LAYOUT(Bed_Heat_Icon_Info)) - .cmd(BITMAP_SIZE (Bed_Heat_Icon_Info)) - .cmd(COLOR_RGB(shadow_rgb)) - .icon (x + 2, y + 2, h, v, Bed_Heat_Icon_Info, icon_scale * 2) - .cmd(COLOR_RGB(bg_text_enabled)) - .icon (x, y, h, v, Bed_Heat_Icon_Info, icon_scale * 2); + #if ENABLED(TOUCH_UI_LULZBOT_BIO) + // The LulzBot Bio shows the temperature for + // the bed. + + #ifdef TOUCH_UI_PORTRAIT + // Draw touch surfaces + ui.bounds(POLY(target_temp), x, y, h, v); + cmd.rectangle(x, y, h, v); + ui.bounds(POLY(actual_temp), x, y, h, v); + cmd.rectangle(x, y, h, v); + #else + ui.bounds(POLY(bed_temp), x, y, h, v); + cmd.rectangle(x, y, h, v); + #endif + ui.bounds(POLY(bed_icon), x, y, h, v); + cmd.rectangle(x, y, h, v); + + // Draw bed icon + cmd.cmd(BITMAP_SOURCE(Bed_Heat_Icon_Info)) + .cmd(BITMAP_LAYOUT(Bed_Heat_Icon_Info)) + .cmd(BITMAP_SIZE (Bed_Heat_Icon_Info)) + .cmd(COLOR_RGB(shadow_rgb)) + .icon (x + 2, y + 2, h, v, Bed_Heat_Icon_Info, icon_scale * 2) + .cmd(COLOR_RGB(bg_text_enabled)) + .icon (x, y, h, v, Bed_Heat_Icon_Info, icon_scale * 2); + #endif + + #if ENABLED(TOUCH_UI_COCOA_PRESS) + // The CocoaPress shows the temperature for two + // heating zones, but has no bed temperature + + cmd.cmd(COLOR_RGB(bg_text_enabled)); + cmd.font(font_medium); + + ui.bounds(POLY(zone1_label), x, y, h, v); + cmd.text(x, y, h, v, GET_TEXT_F(MSG_ZONE_1)); + + ui.bounds(POLY(zone2_label), x, y, h, v); + cmd.text(x, y, h, v, GET_TEXT_F(MSG_ZONE_2)); + #endif #ifdef TOUCH_UI_USE_UTF8 load_utf8_bitmaps(cmd); // Restore font bitmap handles @@ -87,33 +117,71 @@ void StatusScreen::draw_temperature(draw_mode_t what) { } if (what & FOREGROUND) { - char bed_str[15]; + char str[15]; + cmd.cmd(COLOR_RGB(bg_text_enabled)); + #if ENABLED(TOUCH_UI_LULZBOT_BIO) + cmd.font(font_medium); + + #ifdef TOUCH_UI_PORTRAIT + if (!isHeaterIdle(BED) && getTargetTemp_celsius(BED) > 0) + format_temp(str, getTargetTemp_celsius(BED)); + else + strcpy_P(str, GET_TEXT(MSG_BED)); + + ui.bounds(POLY(target_temp), x, y, h, v); + cmd.text(x, y, h, v, str); - cmd.font(font_xlarge) - .cmd(COLOR_RGB(bg_text_enabled)); - - if (!isHeaterIdle(BED) && getTargetTemp_celsius(BED) > 0) - format_temp(bed_str, getTargetTemp_celsius(BED)); - else - strcpy_P(bed_str, PSTR(MSG_BED)); - - ui.bounds(POLY(target_temp), x, y, h, v); - cmd.text(x, y, h, v, bed_str); - - format_temp(bed_str, getActualTemp_celsius(BED)); - ui.bounds(POLY(actual_temp), x, y, h, v); - cmd.text(x, y, h, v, bed_str); + format_temp(str, getActualTemp_celsius(BED)); + ui.bounds(POLY(actual_temp), x, y, h, v); + cmd.text(x, y, h, v, str); + #else + if (!isHeaterIdle(BED) && getTargetTemp_celsius(BED) > 0) + format_temp_and_temp(str, getActualTemp_celsius(BED), getTargetTemp_celsius(BED)); + else + format_temp_and_idle(str, getActualTemp_celsius(BED)); + + ui.bounds(POLY(bed_temp), x, y, h, v); + cmd.text(x, y, h, v, str); + #endif + #endif + + #if ENABLED(TOUCH_UI_COCOA_PRESS) + // The CocoaPress shows the temperature for two + // heating zones, but has no bed temperature + + cmd.font(font_large); + + if (!isHeaterIdle(E0) && getTargetTemp_celsius(E0) > 0) + format_temp_and_temp(str, getActualTemp_celsius(E0), getTargetTemp_celsius(E0)); + else + format_temp_and_idle(str, getActualTemp_celsius(E0)); + + ui.bounds(POLY(zone1_temp), x, y, h, v); + cmd.text(x, y, h, v, str); + + if (!isHeaterIdle(E1) && getTargetTemp_celsius(E1) > 0) + format_temp_and_temp(str, getActualTemp_celsius(E1), getTargetTemp_celsius(E1)); + else + format_temp_and_idle(str, getActualTemp_celsius(E1)); + + ui.bounds(POLY(zone2_temp), x, y, h, v); + cmd.text(x, y, h, v, str); + #endif } } void StatusScreen::draw_syringe(draw_mode_t what) { int16_t x, y, h, v; - #ifdef LULZBOT_E_TRAVEL_LIMIT - const float fill_level = 1.0 - min(1.0, max(0.0, getAxisPosition_mm(E0) / LULZBOT_E_TRAVEL_LIMIT)); + #ifdef E_MAX_POS + const float fill_level = 1.0 - min(1.0, max(0.0, getAxisPosition_mm(E0) / E_MAX_POS)); #else const float fill_level = 0.75; #endif - const bool e_homed = isAxisPositionKnown(E0); + #if ENABLED(TOUCH_UI_LULZBOT_BIO) + const bool e_homed = isAxisPositionKnown(E0); + #else + const bool e_homed = true; + #endif CommandProcessor cmd; PolyUI ui(cmd, what); @@ -143,7 +211,11 @@ void StatusScreen::draw_syringe(draw_mode_t what) { } void StatusScreen::draw_arrows(draw_mode_t what) { - const bool e_homed = isAxisPositionKnown(E0); + #if ENABLED(TOUCH_UI_LULZBOT_BIO) + const bool e_homed = isAxisPositionKnown(E0); + #else + const bool e_homed = true; + #endif const bool z_homed = isAxisPositionKnown(Z); CommandProcessor cmd; @@ -176,25 +248,34 @@ void StatusScreen::draw_fine_motion(draw_mode_t what) { CommandProcessor cmd; PolyUI ui(cmd, what); - cmd.font(font_medium) - .tag(16); + cmd.font( + #ifdef TOUCH_UI_PORTRAIT + font_medium + #else + font_small + #endif + ) + .tag(16); if (what & BACKGROUND) { - ui.bounds(POLY(fine_label), x, y, h, v); cmd.cmd(COLOR_RGB(bg_text_enabled)) - .text(x, y, h, v, GET_TEXT_F(FINE_MOTION)); + .text(x, y, h, v, GET_TEXT_F(MSG_FINE_MOTION)); } if (what & FOREGROUND) { ui.bounds(POLY(fine_toggle), x, y, h, v); cmd.colors(ui_toggle) - .toggle2(x, y, h, v, GET_TEXT_F(NO), GET_TEXT_F(YES), fine_motion); + .toggle2(x, y, h, v, GET_TEXT_F(MSG_NO), GET_TEXT_F(MSG_YES), fine_motion); } } void StatusScreen::draw_overlay_icons(draw_mode_t what) { - const bool e_homed = isAxisPositionKnown(E0); + #if ENABLED(TOUCH_UI_LULZBOT_BIO) + const bool e_homed = isAxisPositionKnown(E0); + #else + const bool e_homed = true; + #endif const bool z_homed = isAxisPositionKnown(Z); CommandProcessor cmd; @@ -211,22 +292,27 @@ void StatusScreen::draw_overlay_icons(draw_mode_t what) { } } -void StatusScreen::draw_buttons(draw_mode_t) { +void StatusScreen::draw_buttons(draw_mode_t what) { + int16_t x, y, h, v; + const bool has_media = isMediaInserted() && !isPrintingFromMedia(); CommandProcessor cmd; - + PolyUI ui(cmd, what); + + ui.bounds(POLY(usb_btn), x, y, h, v); cmd.font(font_medium) .colors(normal_btn) .enabled(has_media) .colors(has_media ? action_btn : normal_btn) - .tag(9).button(BTN_POS(1,9), BTN_SIZE(1,1), + .tag(9).button(x, y, h, v, isPrintingFromMedia() ? - GET_TEXT_F(PRINTING) : - GET_TEXT_F(MEDIA) + GET_TEXT_F(MSG_PRINTING) : + GET_TEXT_F(MSG_BUTTON_MEDIA) ); - - cmd.colors(!has_media ? action_btn : normal_btn).tag(10).button(BTN_POS(2,9), BTN_SIZE(1,1), GET_TEXT_F(MENU)); + + ui.bounds(POLY(menu_btn), x, y, h, v); + cmd.colors(!has_media ? action_btn : normal_btn).tag(10).button(x, y, h, v, GET_TEXT_F(MSG_BUTTON_MENU)); } void StatusScreen::loadBitmaps() { @@ -280,7 +366,9 @@ bool StatusScreen::onTouchEnd(uint8_t tag) { break; case 9: GOTO_SCREEN(FilesScreen); break; case 10: GOTO_SCREEN(MainMenu); break; - case 13: GOTO_SCREEN(BioConfirmHomeE); break; + #if ENABLED(TOUCH_UI_LULZBOT_BIO) + case 13: GOTO_SCREEN(BioConfirmHomeE); break; + #endif case 14: SpinnerDialogBox::enqueueAndWait_P(F("G28 Z")); break; case 15: GOTO_SCREEN(TemperatureScreen); break; case 16: fine_motion = !fine_motion; break; @@ -320,19 +408,30 @@ bool StatusScreen::onTouchHeld(uint8_t tag) { } void StatusScreen::setStatusMessage(progmem_str pstr) { - BioPrintingDialogBox::setStatusMessage(pstr); + #if defined(TOUCH_UI_LULZBOT_BIO) + BioPrintingDialogBox::setStatusMessage(pstr); + #else + UNUSED(pstr); + #endif } void StatusScreen::setStatusMessage(const char * const str) { - BioPrintingDialogBox::setStatusMessage(str); + #if defined(TOUCH_UI_LULZBOT_BIO) + BioPrintingDialogBox::setStatusMessage(str); + #else + UNUSED(str); + #endif } void StatusScreen::onIdle() { + reset_menu_timeout(); if (refresh_timer.elapsed(STATUS_UPDATE_INTERVAL)) { if (!EventLoop::is_touch_held()) onRefresh(); - if (isPrintingFromMedia()) - BioPrintingDialogBox::show(); + #if defined(TOUCH_UI_LULZBOT_BIO) + if (isPrintingFromMedia()) + BioPrintingDialogBox::show(); + #endif refresh_timer.start(); } } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_tune_menu.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_tune_menu.cpp index 4fa88253c8..5147ece94e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_tune_menu.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_tune_menu.cpp @@ -22,7 +22,7 @@ #include "../config.h" -#if ENABLED(LULZBOT_TOUCH_UI) && defined(LULZBOT_USE_BIOPRINTER_UI) +#if ENABLED(LULZBOT_TOUCH_UI) && defined(TOUCH_UI_LULZBOT_BIO) #include "screens.h" @@ -41,25 +41,25 @@ void TuneMenu::onRedraw(draw_mode_t what) { .cmd(COLOR_RGB(bg_text_enabled)) .tag(0) .font(font_large) - .text( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(PRINT_MENU)); + .text( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_PRINT_MENU)); } if (what & FOREGROUND) { CommandProcessor cmd; cmd.colors(normal_btn) .font(font_medium) - .enabled( isPrinting()).tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(PRINT_SPEED)) - .tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(BED_TEMPERATURE)) + .enabled( isPrinting()).tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(MSG_PRINT_SPEED)) + .tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_BED_TEMPERATURE)) #if ENABLED(BABYSTEPPING) .enabled(true) #else .enabled(false) #endif - .tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(NUDGE_NOZZLE)) - .enabled(!isPrinting()).tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MOVE_TO_HOME)) - .enabled(!isPrinting()).tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(RAISE_PLUNGER)) - .enabled(!isPrinting()).tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(RELEASE_XY_AXIS)) - .colors(action_btn) .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(BACK)); + .tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_NUDGE_NOZZLE)) + .enabled(!isPrinting()).tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_MOVE_TO_HOME)) + .enabled(!isPrinting()).tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_RAISE_PLUNGER)) + .enabled(!isPrinting()).tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_RELEASE_XY_AXIS)) + .colors(action_btn) .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); } #undef GRID_COLS #undef GRID_ROWS diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/boot_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/boot_screen.cpp index 47a71f836d..15bece6cd4 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/boot_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/boot_screen.cpp @@ -5,6 +5,7 @@ /**************************************************************************** * Written By Mark Pelletier 2017 - Aleph Objects, Inc. * * Written By Marcio Teixeira 2018 - Aleph Objects, Inc. * + * Written By Marcio Teixeira 2019 - Cocoa Press * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -29,10 +30,18 @@ #include "../ftdi_eve_lib/extras/poly_ui.h" #include "../archim2-flash/flash_storage.h" -#ifdef TOUCH_UI_PORTRAIT - #include "../theme/bootscreen_logo_portrait.h" +#ifdef SHOW_CUSTOM_BOOTSCREEN + #ifdef TOUCH_UI_PORTRAIT + #include "../theme/_bootscreen_portrait.h" + #else + #include "../theme/_bootscreen_landscape.h" + #endif #else - #include "../theme/bootscreen_logo_landscape.h" + #ifdef TOUCH_UI_PORTRAIT + #include "../theme/marlin_bootscreen_portrait.h" + #else + #include "../theme/marlin_bootscreen_landscape.h" + #endif #endif using namespace FTDI; @@ -62,10 +71,11 @@ void BootScreen::onIdle() { GOTO_SCREEN(TouchCalibrationScreen); current_screen.forget(); PUSH_SCREEN(StatusScreen); + StatusScreen::setStatusMessage(GET_TEXT_F(WELCOME_MSG)); } else { if (!UIFlashStorage::is_valid()) { StatusScreen::loadBitmaps(); - SpinnerDialogBox::show(GET_TEXT_F(PLEASE_WAIT)); + SpinnerDialogBox::show(GET_TEXT_F(MSG_PLEASE_WAIT)); UIFlashStorage::format_flash(); SpinnerDialogBox::hide(); } @@ -79,7 +89,7 @@ void BootScreen::onIdle() { StatusScreen::loadBitmaps(); - #ifdef LULZBOT_USE_BIOPRINTER_UI + #ifdef TOUCH_UI_LULZBOT_BIO GOTO_SCREEN(BioConfirmHomeXYZ); current_screen.forget(); PUSH_SCREEN(StatusScreen); @@ -97,21 +107,15 @@ void BootScreen::onIdle() { void BootScreen::showSplashScreen() { CommandProcessor cmd; cmd.cmd(CMD_DLSTART); - cmd.cmd(CLEAR_COLOR_RGB(logo_bg)); + cmd.cmd(CLEAR_COLOR_RGB(LOGO_BACKGROUND)); cmd.cmd(CLEAR(true,true,true)); #define POLY(A) PolyUI::poly_reader_t(A, sizeof(A)/sizeof(A[0])) - + #define LOGO_PAINT_PATH(rgb, path) cmd.cmd(COLOR_RGB(rgb)); ui.fill(POLY(path)); + PolyUI ui(cmd); - cmd.cmd(COLOR_RGB(logo_fg)); - ui.fill(POLY(logo_green)); - cmd.cmd(COLOR_RGB(logo_stroke)); - ui.fill(POLY(logo_black)); - ui.fill(POLY(logo_type)); - ui.fill(POLY(logo_mark)); - cmd.cmd(COLOR_RGB(0xFFFFFF)); - ui.fill(POLY(logo_white)); + LOGO_PAINT_PATHS cmd.cmd(DL::DL_DISPLAY); cmd.cmd(CMD_SWAP); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/change_filament_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/change_filament_screen.cpp index c08be39fff..a23e27a876 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/change_filament_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/change_filament_screen.cpp @@ -88,6 +88,9 @@ void ChangeFilamentScreen::onEntry() { screen_data.ChangeFilamentScreen.t_tag = 0; screen_data.ChangeFilamentScreen.repeat_tag = 0; screen_data.ChangeFilamentScreen.saved_extruder = getActiveTool(); + #if FILAMENT_UNLOAD_PURGE_LENGTH > 0 + screen_data.ChangeFilamentScreen.need_purge = true; + #endif } void ChangeFilamentScreen::onExit() { @@ -114,14 +117,14 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) { #else .font(font_medium) #endif - .text(BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(EXTRUDER_SELECTION)) + .text(BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_EXTRUDER_SELECTION)) #ifdef TOUCH_UI_PORTRAIT .text(BTN_POS(1,7), BTN_SIZE(1,1), F("")) #else - .text(BTN_POS(3,1), BTN_SIZE(2,1), GET_TEXT_F(CURRENT_TEMPERATURE)) + .text(BTN_POS(3,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_CURRENT_TEMPERATURE)) .font(font_small) #endif - .text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(REMOVAL_TEMPERATURE)); + .text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_REMOVAL_TEMPERATURE)); drawTempGradient(BTN_POS(1,4), BTN_SIZE(1,3)); } @@ -154,12 +157,12 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) { const bool t_ok = getActualTemp_celsius(e) > getSoftenTemp() - 10; if (screen_data.ChangeFilamentScreen.t_tag && !t_ok) { - cmd.text(BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXT_F(HEATING)); + cmd.text(BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_HEATING)); } else if (getActualTemp_celsius(e) > 100) { cmd.cmd(COLOR_RGB(0xFF0000)) - .text(BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(CAUTION)) + .text(BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_CAUTION)) .colors(normal_btn) - .text(BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXT_F(HOT)); + .text(BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_HOT)); } #define TOG_STYLE(A) colors(A ? action_btn : normal_btn) @@ -200,13 +203,13 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) { { char str[30]; - format_temp_and_material(str, LOW_TEMP, GET_TEXT(MATERIAL_PLA)); + format_temp_and_material(str, LOW_TEMP, GET_TEXT(MSG_MATERIAL_PLA)); cmd.tag(2) .TOG_STYLE(tog2) .button (BTN_POS(2,6), BTN_SIZE(1,1), str); - format_temp_and_material(str, MED_TEMP, GET_TEXT(MATERIAL_ABS)); + format_temp_and_material(str, MED_TEMP, GET_TEXT(MSG_MATERIAL_ABS)); cmd.tag(3) .TOG_STYLE(tog3) .button (BTN_POS(2,5), BTN_SIZE(1,1), str); - format_temp_and_material(str, HIGH_TEMP, GET_TEXT(MATERIAL_HIGH_TEMP)); + format_temp_and_material(str, HIGH_TEMP, GET_TEXT(MSG_MATERIAL_HIGH_TEMP)); cmd.tag(4) .TOG_STYLE(tog4) .button (BTN_POS(2,4), BTN_SIZE(1,1), str); } cmd.colors(normal_btn) @@ -221,23 +224,23 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) { .cmd(COLOR_RGB(t_ok ? bg_text_enabled : bg_text_disabled)) #ifdef TOUCH_UI_PORTRAIT .font(font_large) - .tag(0) .text (BTN_POS(1,8), BTN_SIZE(1,1), GET_TEXT_F(UNLOAD_FILAMENT)) - .text (BTN_POS(2,8), BTN_SIZE(1,1), GET_TEXT_F(LOAD_FILAMENT)) - .tag(5) .enabled(t_ok).button (BTN_POS(1,9), BTN_SIZE(1,1), GET_TEXT_F(MOMENTARY)) - .tag(6) .enabled(t_ok).button (BTN_POS(2,9), BTN_SIZE(1,1), GET_TEXT_F(MOMENTARY)) - .tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(1,10), BTN_SIZE(1,1), GET_TEXT_F(CONTINUOUS)) - .tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(2,10), BTN_SIZE(1,1), GET_TEXT_F(CONTINUOUS)) - .tag(1).colors(action_btn) .button (BTN_POS(1,11), BTN_SIZE(2,1), GET_TEXT_F(BACK)); + .tag(0) .text (BTN_POS(1,8), BTN_SIZE(1,1), GET_TEXT_F(MSG_UNLOAD_FILAMENT)) + .text (BTN_POS(2,8), BTN_SIZE(1,1), GET_TEXT_F(MSG_LOAD_FILAMENT)) + .tag(5) .enabled(t_ok).button (BTN_POS(1,9), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOMENTARY)) + .tag(6) .enabled(t_ok).button (BTN_POS(2,9), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOMENTARY)) + .tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(1,10), BTN_SIZE(1,1), GET_TEXT_F(MSG_CONTINUOUS)) + .tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(2,10), BTN_SIZE(1,1), GET_TEXT_F(MSG_CONTINUOUS)) + .tag(1).colors(action_btn) .button (BTN_POS(1,11), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); #else .font(font_small) - .tag(0) .text (BTN_POS(3,3), BTN_SIZE(1,1), GET_TEXT_F(UNLOAD_FILAMENT)) - .text (BTN_POS(4,3), BTN_SIZE(1,1), GET_TEXT_F(LOAD_FILAMENT)) - .tag(5) .enabled(t_ok).button (BTN_POS(3,4), BTN_SIZE(1,1), GET_TEXT_F(MOMENTARY)) - .tag(6) .enabled(t_ok).button (BTN_POS(4,4), BTN_SIZE(1,1), GET_TEXT_F(MOMENTARY)) - .tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(3,5), BTN_SIZE(1,1), GET_TEXT_F(CONTINUOUS)) - .tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(4,5), BTN_SIZE(1,1), GET_TEXT_F(CONTINUOUS)) + .tag(0) .text (BTN_POS(3,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_UNLOAD_FILAMENT)) + .text (BTN_POS(4,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_LOAD_FILAMENT)) + .tag(5) .enabled(t_ok).button (BTN_POS(3,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOMENTARY)) + .tag(6) .enabled(t_ok).button (BTN_POS(4,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOMENTARY)) + .tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(3,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_CONTINUOUS)) + .tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(4,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_CONTINUOUS)) .font(font_medium) - .tag(1).colors(action_btn) .button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXT_F(BACK)); + .tag(1).colors(action_btn) .button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); #endif } #undef GRID_COLS @@ -262,10 +265,24 @@ ExtUI::extruder_t ChangeFilamentScreen::getExtruder() { } } +void ChangeFilamentScreen::doPurge() { + #if FILAMENT_UNLOAD_PURGE_LENGTH > 0 + constexpr float purge_distance_mm = FILAMENT_UNLOAD_PURGE_LENGTH; + if (screen_data.ChangeFilamentScreen.need_purge) { + screen_data.ChangeFilamentScreen.need_purge = false; + MoveAxisScreen::setManualFeedrate(getExtruder(), purge_distance_mm); + ExtUI::setAxisPosition_mm(ExtUI::getAxisPosition_mm(getExtruder()) + purge_distance_mm, getExtruder()); + } + #endif +} + bool ChangeFilamentScreen::onTouchStart(uint8_t tag) { // Make the Momentary and Continuous buttons slightly more responsive switch (tag) { case 5: case 6: case 7: case 8: + #if FILAMENT_UNLOAD_PURGE_LENGTH > 0 + if (tag == 5 || tag == 7) doPurge(); + #endif return ChangeFilamentScreen::onTouchHeld(tag); default: return false; @@ -295,6 +312,9 @@ bool ChangeFilamentScreen::onTouchEnd(uint8_t tag) { screen_data.ChangeFilamentScreen.e_tag = tag; screen_data.ChangeFilamentScreen.t_tag = 0; screen_data.ChangeFilamentScreen.repeat_tag = 0; + #if FILAMENT_UNLOAD_PURGE_LENGTH > 0 + screen_data.ChangeFilamentScreen.need_purge = true; + #endif setActiveTool(getExtruder(), true); break; case 15: GOTO_SCREEN(TemperatureScreen); break; @@ -318,6 +338,7 @@ bool ChangeFilamentScreen::onTouchHeld(uint8_t tag) { } void ChangeFilamentScreen::onIdle() { + reset_menu_timeout(); if (screen_data.ChangeFilamentScreen.repeat_tag) onTouchHeld(screen_data.ChangeFilamentScreen.repeat_tag); if (refresh_timer.elapsed(STATUS_UPDATE_INTERVAL)) { onRefresh(); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_abort_print_dialog_box.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_abort_print_dialog_box.cpp index 61eae87677..8ef38d5c93 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_abort_print_dialog_box.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_abort_print_dialog_box.cpp @@ -29,7 +29,7 @@ using namespace ExtUI; void ConfirmAbortPrintDialogBox::onRedraw(draw_mode_t) { - drawMessage(GET_TEXT_F(ABORT_WARNING)); + drawMessage(GET_TEXT_F(MSG_ABORT_WARNING)); drawYesNoButtons(); } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_auto_calibration_dialog_box.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_auto_calibration_dialog_box.cpp index 5ca63a5d07..715ef1c554 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_auto_calibration_dialog_box.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_auto_calibration_dialog_box.cpp @@ -30,7 +30,7 @@ using namespace ExtUI; using namespace Theme; void ConfirmAutoCalibrationDialogBox::onRedraw(draw_mode_t) { - drawMessage(GET_TEXT_F(CALIBRATION_WARNING)); + drawMessage(GET_TEXT_F(MSG_CALIBRATION_WARNING)); drawYesNoButtons(); } @@ -38,7 +38,7 @@ bool ConfirmAutoCalibrationDialogBox::onTouchEnd(uint8_t tag) { switch (tag) { case 1: GOTO_SCREEN(StatusScreen); - injectCommands_P(PSTR(LULZBOT_CALIBRATION_COMMANDS)); + injectCommands_P(PSTR(CALIBRATION_COMMANDS)); return true; default: return DialogBoxBaseClass::onTouchEnd(tag); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_erase_flash_dialog_box.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_erase_flash_dialog_box.cpp index f7000f1b4f..4b89bd1358 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_erase_flash_dialog_box.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_erase_flash_dialog_box.cpp @@ -22,7 +22,7 @@ #include "../config.h" -#if BOTH(LULZBOT_TOUCH_UI, DEVELOPER_SCREENS) +#if BOTH(LULZBOT_TOUCH_UI, TOUCH_UI_DEVELOPER_MENU) #include "screens.h" @@ -31,17 +31,17 @@ using namespace FTDI; void ConfirmEraseFlashDialogBox::onRedraw(draw_mode_t) { - drawMessage(GET_TEXT_F(ERASE_FLASH_WARNING)); + drawMessage(GET_TEXT_F(MSG_ERASE_FLASH_WARNING)); drawYesNoButtons(); } bool ConfirmEraseFlashDialogBox::onTouchEnd(uint8_t tag) { switch (tag) { case 1: - SpinnerDialogBox::show(GET_TEXT_F(ERASING)); + SpinnerDialogBox::show(GET_TEXT_F(MSG_ERASING)); UIFlashStorage::format_flash(); SpinnerDialogBox::hide(); - AlertDialogBox::show(GET_TEXT_F(ERASED)); + AlertDialogBox::show(GET_TEXT_F(MSG_ERASED)); // Remove ConfirmEraseFlashDialogBox from the stack // so the alert box doesn't return to me. current_screen.forget(); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_start_print_dialog_box.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_start_print_dialog_box.cpp index 952b029308..cabe543e3b 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_start_print_dialog_box.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_start_print_dialog_box.cpp @@ -38,8 +38,8 @@ void ConfirmStartPrintDialogBox::onEntry() { void ConfirmStartPrintDialogBox::onRedraw(draw_mode_t) { const char *filename = getLongFilename(); - char buffer[strlen_P(GET_TEXT(START_PRINT_CONFIRMATION)) + strlen(filename) + 1]; - sprintf_P(buffer, GET_TEXT(START_PRINT_CONFIRMATION), filename); + char buffer[strlen_P(GET_TEXT(MSG_START_PRINT_CONFIRMATION)) + strlen(filename) + 1]; + sprintf_P(buffer, GET_TEXT(MSG_START_PRINT_CONFIRMATION), filename); drawMessage((const char *)buffer); drawYesNoButtons(1); } @@ -48,7 +48,7 @@ bool ConfirmStartPrintDialogBox::onTouchEnd(uint8_t tag) { switch (tag) { case 1: printFile(getShortFilename()); - StatusScreen::setStatusMessage(GET_TEXT_F(PRINT_STARTING)); + StatusScreen::setStatusMessage(GET_TEXT_F(MSG_PRINT_STARTING)); GOTO_SCREEN(StatusScreen); return true; case 2: GOTO_PREVIOUS(); return true; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/default_acceleration_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/default_acceleration_screen.cpp index 544bf1527e..40a78adc58 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/default_acceleration_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/default_acceleration_screen.cpp @@ -33,14 +33,14 @@ using namespace Theme; void DefaultAccelerationScreen::onRedraw(draw_mode_t what) { widgets_t w(what); w.precision(0); - w.units(GET_TEXT_F(UNITS_MM_S2)); - w.heading( GET_TEXT_F(ACCELERATION)); + w.units(GET_TEXT_F(MSG_UNITS_MM_S2)); + w.heading( GET_TEXT_F(MSG_ACCELERATION)); w.color(other); - w.adjuster( 2, GET_TEXT_F(ACCEL_PRINTING), getPrintingAcceleration_mm_s2() ); - w.adjuster( 4, GET_TEXT_F(ACCEL_TRAVEL), getTravelAcceleration_mm_s2() ); - w.adjuster( 6, GET_TEXT_F(ACCEL_RETRACT), getRetractAcceleration_mm_s2() ); + w.adjuster( 2, GET_TEXT_F(MSG_ACCEL_PRINTING), getPrintingAcceleration_mm_s2() ); + w.adjuster( 4, GET_TEXT_F(MSG_ACCEL_TRAVEL), getTravelAcceleration_mm_s2() ); + w.adjuster( 6, GET_TEXT_F(MSG_ACCEL_RETRACT), getRetractAcceleration_mm_s2() ); w.increments(); - w.button( 8, GET_TEXT_F(SET_MAXIMUM)); + w.button( 8, GET_TEXT_F(MSG_SET_MAXIMUM)); } bool DefaultAccelerationScreen::onTouchHeld(uint8_t tag) { diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/developer_menu.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/developer_menu.cpp index 1743a1f796..edbd52d2b9 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/developer_menu.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/developer_menu.cpp @@ -22,7 +22,7 @@ #include "../config.h" -#if BOTH(LULZBOT_TOUCH_UI, DEVELOPER_SCREENS) +#if BOTH(LULZBOT_TOUCH_UI, TOUCH_UI_DEVELOPER_MENU) #include "screens.h" diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/dialog_box_base_class.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/dialog_box_base_class.cpp index f31ad5c881..66a33d087c 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/dialog_box_base_class.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/dialog_box_base_class.cpp @@ -50,14 +50,14 @@ template void DialogBoxBaseClass::drawMessage(progmem_str, int16_t font); void DialogBoxBaseClass::drawYesNoButtons(uint8_t default_btn) { CommandProcessor cmd; cmd.font(font_medium) - .colors(default_btn == 1 ? action_btn : normal_btn).tag(1).button( BTN_POS(1,8), BTN_SIZE(1,1), GET_TEXT_F(YES)) - .colors(default_btn == 2 ? action_btn : normal_btn).tag(2).button( BTN_POS(2,8), BTN_SIZE(1,1), GET_TEXT_F(NO)); + .colors(default_btn == 1 ? action_btn : normal_btn).tag(1).button( BTN_POS(1,8), BTN_SIZE(1,1), GET_TEXT_F(MSG_YES)) + .colors(default_btn == 2 ? action_btn : normal_btn).tag(2).button( BTN_POS(2,8), BTN_SIZE(1,1), GET_TEXT_F(MSG_NO)); } void DialogBoxBaseClass::drawOkayButton() { CommandProcessor cmd; cmd.font(font_medium) - .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(OKAY)); + .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_OKAY)); } void DialogBoxBaseClass::drawButton(const progmem_str label) { diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/display_tuning_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/display_tuning_screen.cpp index 4d33dce648..30a0bcbdbd 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/display_tuning_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/display_tuning_screen.cpp @@ -33,13 +33,13 @@ void DisplayTuningScreen::onRedraw(draw_mode_t what) { widgets_t w(what); w.precision(0, BaseNumericAdjustmentScreen::DEFAULT_LOWEST); w.units(F("")); - w.heading(GET_TEXT_F(DISPLAY_MENU)); + w.heading(GET_TEXT_F(MSG_DISPLAY_MENU)); w.color(other); - w.adjuster( 2, GET_TEXT_F(H_OFFSET), CLCD::mem_read_16(CLCD::REG::HOFFSET) ); - w.adjuster( 4, GET_TEXT_F(V_OFFSET), CLCD::mem_read_16(CLCD::REG::VOFFSET) ); + w.adjuster( 2, GET_TEXT_F(MSG_H_OFFSET), CLCD::mem_read_16(CLCD::REG::HOFFSET) ); + w.adjuster( 4, GET_TEXT_F(MSG_V_OFFSET), CLCD::mem_read_16(CLCD::REG::VOFFSET) ); w.increments(); - w.heading( GET_TEXT_F(TOUCH_SCREEN)); - w.button(6, GET_TEXT_F(CALIBRATE)); + w.heading( GET_TEXT_F(MSG_TOUCH_SCREEN)); + w.button(6, GET_TEXT_F(MSG_CALIBRATE)); } bool DisplayTuningScreen::onTouchHeld(uint8_t tag) { diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/endstop_state_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/endstop_state_screen.cpp index 05dccf96f3..ff84a16e9f 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/endstop_state_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/endstop_state_screen.cpp @@ -32,12 +32,10 @@ using namespace ExtUI; void EndstopStatesScreen::onEntry() { BaseScreen::onEntry(); - enable_emi_pins(true); } void EndstopStatesScreen::onExit() { BaseScreen::onExit(); - enable_emi_pins(false); } void EndstopStatesScreen::onRedraw(draw_mode_t) { @@ -51,60 +49,60 @@ void EndstopStatesScreen::onRedraw(draw_mode_t) { #define GRID_COLS 6 #define PIN_BTN(X,Y,PIN,LABEL) button(BTN_POS(X,Y), BTN_SIZE(2,1), LABEL) - #define PIN_ENABLED(LABEL,PIN,INV,X,Y) cmd.enabled(1).colors(READ(PIN##_PIN) != INV ? action_btn : normal_btn).PIN_BTN(X,Y,PIN,LABEL); - #define PIN_DISABLED(LABEL,PIN,INV,X,Y) cmd.enabled(0).PIN_BTN(X,Y,PIN,LABEL); + #define PIN_ENABLED(X,Y,LABEL,PIN,INV) cmd.enabled(1).colors(READ(PIN##_PIN) != INV ? action_btn : normal_btn).PIN_BTN(X,Y,PIN,LABEL); + #define PIN_DISABLED(X,Y,LABEL,PIN) cmd.enabled(0).PIN_BTN(X,Y,PIN,LABEL); #ifdef TOUCH_UI_PORTRAIT cmd.font(font_large) #else cmd.font(font_medium) #endif - .text(BTN_POS(1,1), BTN_SIZE(6,1), GET_TEXT_F(ENDSTOPS)) + .text(BTN_POS(1,1), BTN_SIZE(6,1), GET_TEXT_F(MSG_LCD_ENDSTOPS)) .font(font_tiny); #if PIN_EXISTS(X_MAX) - PIN_ENABLED (GET_TEXT_F(X_MAX), X_MAX,X_MAX_ENDSTOP_INVERTING,1,2) + PIN_ENABLED (1, 2, PSTR(MSG_X_MAX), X_MAX, X_MAX_ENDSTOP_INVERTING) #else - PIN_DISABLED(GET_TEXT_F(X_MAX),X_MAX,X_MAX_ENDSTOP_INVERTING,1,2) + PIN_DISABLED(1, 2, PSTR(MSG_X_MAX), X_MAX) #endif #if PIN_EXISTS(Y_MAX) - PIN_ENABLED (GET_TEXT_F(Y_MAX),Y_MAX,Y_MAX_ENDSTOP_INVERTING,3,2) + PIN_ENABLED (3, 2, PSTR(MSG_Y_MAX), Y_MAX, Y_MAX_ENDSTOP_INVERTING) #else - PIN_DISABLED(GET_TEXT_F(Y_MAX),Y_MAX,Y_MAX_ENDSTOP_INVERTING,3,2) + PIN_DISABLED(3, 2, PSTR(MSG_Y_MAX), Y_MAX) #endif #if PIN_EXISTS(Z_MAX) - PIN_ENABLED (GET_TEXT_F(Z_MAX),Z_MAX,Z_MAX_ENDSTOP_INVERTING,5,2) + PIN_ENABLED (5, 2, PSTR(MSG_Z_MAX), Z_MAX, Z_MAX_ENDSTOP_INVERTING) #else - PIN_DISABLED(GET_TEXT_F(Z_MAX),Z_MAX,Z_MAX_ENDSTOP_INVERTING,5,2) + PIN_DISABLED(5, 2, PSTR(MSG_Z_MAX), Z_MAX) #endif #if PIN_EXISTS(X_MIN) - PIN_ENABLED (GET_TEXT_F(X_MIN),X_MIN,X_MIN_ENDSTOP_INVERTING,1,3) + PIN_ENABLED (1, 3, PSTR(MSG_X_MIN), X_MIN, X_MIN_ENDSTOP_INVERTING) #else - PIN_DISABLED(GET_TEXT_F(X_MIN),X_MIN,X_MIN_ENDSTOP_INVERTING,1,3) + PIN_DISABLED(1, 3, PSTR(MSG_X_MIN), X_MIN) #endif #if PIN_EXISTS(Y_MIN) - PIN_ENABLED (GET_TEXT_F(Y_MIN),Y_MIN,Y_MIN_ENDSTOP_INVERTING,3,3) + PIN_ENABLED (3, 3, PSTR(MSG_Y_MIN), Y_MIN, Y_MIN_ENDSTOP_INVERTING) #else - PIN_DISABLED(GET_TEXT_F(Y_MIN),Y_MIN,Y_MIN_ENDSTOP_INVERTING,3,3) + PIN_DISABLED(3, 3, PSTR(MSG_Y_MIN), Y_MIN) #endif #if PIN_EXISTS(Z_MIN) - PIN_ENABLED (GET_TEXT_F(Z_MIN),Z_MIN,Z_MIN_ENDSTOP_INVERTING,5,3) + PIN_ENABLED (5, 3, PSTR(MSG_Z_MIN), Z_MIN, Z_MIN_ENDSTOP_INVERTING) #else - PIN_DISABLED(GET_TEXT_F(Z_MIN),Z_MIN,Z_MIN_ENDSTOP_INVERTING,5,3) + PIN_DISABLED(5, 3, PSTR(MSG_Z_MIN), Z_MIN) #endif #if ENABLED(FILAMENT_RUNOUT_SENSOR) && PIN_EXISTS(FIL_RUNOUT) - PIN_ENABLED (GET_TEXT_F(RUNOUT_1),FIL_RUNOUT, FIL_RUNOUT_INVERTING,1,4) + PIN_ENABLED (1, 4, GET_TEXT_F(MSG_RUNOUT_1), FIL_RUNOUT, FIL_RUNOUT_INVERTING) #else - PIN_DISABLED(GET_TEXT_F(RUNOUT_1),FIL_RUNOUT, FIL_RUNOUT_INVERTING,1,4) + PIN_DISABLED(1, 4, GET_TEXT_F(MSG_RUNOUT_1), FIL_RUNOUT) #endif #if ENABLED(FILAMENT_RUNOUT_SENSOR) && PIN_EXISTS(FIL_RUNOUT2) - PIN_ENABLED (GET_TEXT_F(RUNOUT_2),FIL_RUNOUT2,FIL_RUNOUT_INVERTING,3,4) + PIN_ENABLED (3, 4, GET_TEXT_F(MSG_RUNOUT_2), FIL_RUNOUT2, FIL_RUNOUT_INVERTING) #else - PIN_DISABLED(GET_TEXT_F(RUNOUT_2),FIL_RUNOUT2,FIL_RUNOUT_INVERTING,3,4) + PIN_DISABLED(3, 4, GET_TEXT_F(MSG_RUNOUT_2), FIL_RUNOUT2) #endif #if PIN_EXISTS(Z_MIN_PROBE) - PIN_ENABLED (GET_TEXT_F(Z_PROBE),Z_MIN_PROBE,Z_MIN_PROBE_ENDSTOP_INVERTING,5,4) + PIN_ENABLED (5, 4, PSTR(MSG_Z_PROBE), Z_MIN_PROBE, Z_MIN_PROBE_ENDSTOP_INVERTING) #else - PIN_DISABLED(GET_TEXT_F(Z_PROBE),Z_MIN_PROBE,Z_MIN_PROBE_ENDSTOP_INVERTING,5,4) + PIN_DISABLED(5, 4, PSTR(MSG_Z_PROBE), Z_MIN_PROBE) #endif #if HAS_SOFTWARE_ENDSTOPS @@ -112,16 +110,16 @@ void EndstopStatesScreen::onRedraw(draw_mode_t) { #define EDGE_R 30 cmd.cmd(COLOR_RGB(bg_text_enabled)) .font(font_small) - .text (BTN_POS(1,5), BTN_SIZE(3,1), GET_TEXT_F(SOFT_ENDSTOPS), OPT_RIGHTX | OPT_CENTERY) + .text (BTN_POS(1,5), BTN_SIZE(3,1), GET_TEXT_F(MSG_LCD_SOFT_ENDSTOPS), OPT_RIGHTX | OPT_CENTERY) .colors(ui_toggle) - .tag(2).toggle2(BTN_POS(4,5), BTN_SIZE(3,1), GET_TEXT_F(NO), GET_TEXT_F(YES), getSoftEndstopState()); + .tag(2).toggle2(BTN_POS(4,5), BTN_SIZE(3,1), GET_TEXT_F(MSG_NO), GET_TEXT_F(MSG_YES), getSoftEndstopState()); #undef EDGE_R #define EDGE_R 0 #endif cmd.font(font_medium) .colors(action_btn) - .tag(1).button( BTN_POS(1,7), BTN_SIZE(6,1), GET_TEXT_F(BACK)); + .tag(1).button( BTN_POS(1,7), BTN_SIZE(6,1), GET_TEXT_F(MSG_BACK)); #undef GRID_COLS #undef GRID_ROWS } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/feedrate_percent_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/feedrate_percent_screen.cpp index 6ad7ef88aa..5c1886c77d 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/feedrate_percent_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/feedrate_percent_screen.cpp @@ -31,10 +31,10 @@ using namespace ExtUI; void FeedratePercentScreen::onRedraw(draw_mode_t what) { widgets_t w(what); - w.precision(0).units(GET_TEXT_F(UNITS_PERCENT)); + w.precision(0).units(GET_TEXT_F(MSG_UNITS_PERCENT)); - w.heading(GET_TEXT_F(PRINT_SPEED)); - w.adjuster(4, GET_TEXT_F(SPEED), getFeedrate_percent()); + w.heading(GET_TEXT_F(MSG_PRINT_SPEED)); + w.adjuster(4, GET_TEXT_F(MSG_SPEED), getFeedrate_percent()); w.increments(); } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_menu.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_menu.cpp index a7fe2bff55..610d90194b 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_menu.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_menu.cpp @@ -44,43 +44,43 @@ void FilamentMenu::onRedraw(draw_mode_t what) { #ifdef TOUCH_UI_PORTRAIT #define GRID_ROWS 9 #define GRID_COLS 2 - .text ( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(FILAMENT)) + .text ( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_FILAMENT)) .font(font_medium).colors(normal_btn) #if ENABLED(FILAMENT_RUNOUT_SENSOR) .enabled(1) #else .enabled(0) #endif - .tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(RUNOUT_SENSOR)) + .tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(MSG_RUNOUT_SENSOR)) #if ENABLED(LIN_ADVANCE) .enabled(1) #else .enabled(0) #endif - .tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(LINEAR_ADVANCE)) + .tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_LINEAR_ADVANCE)) .colors(action_btn) - .tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(BACK)); + .tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); #undef GRID_COLS #undef GRID_ROWS #else #define GRID_ROWS 6 #define GRID_COLS 3 - .text ( BTN_POS(1,1), BTN_SIZE(3,1), GET_TEXT_F(FILAMENT)) + .text ( BTN_POS(1,1), BTN_SIZE(3,1), GET_TEXT_F(MSG_FILAMENT)) .font(font_medium).colors(normal_btn) #if ENABLED(FILAMENT_RUNOUT_SENSOR) .enabled(1) #else .enabled(0) #endif - .tag(2).button( BTN_POS(1,2), BTN_SIZE(3,1), GET_TEXT_F(RUNOUT_SENSOR)) + .tag(2).button( BTN_POS(1,2), BTN_SIZE(3,1), GET_TEXT_F(MSG_RUNOUT_SENSOR)) #if ENABLED(LIN_ADVANCE) .enabled(1) #else .enabled(0) #endif - .tag(3).button( BTN_POS(1,3), BTN_SIZE(3,1), GET_TEXT_F(LINEAR_ADVANCE)) + .tag(3).button( BTN_POS(1,3), BTN_SIZE(3,1), GET_TEXT_F(MSG_LINEAR_ADVANCE)) .colors(action_btn) - .tag(1) .button( BTN_POS(1,6), BTN_SIZE(3,1), GET_TEXT_F(BACK)); + .tag(1) .button( BTN_POS(1,6), BTN_SIZE(3,1), GET_TEXT_F(MSG_BACK)); #endif } } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_runout_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_runout_screen.cpp index fe67a7cdba..b9dd245de9 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_runout_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_runout_screen.cpp @@ -32,15 +32,15 @@ using namespace Theme; void FilamentRunoutScreen::onRedraw(draw_mode_t what) { widgets_t w(what); - w.heading( GET_TEXT_F(FILAMENT)); - w.toggle( 2, GET_TEXT_F(RUNOUT_SENSOR), getFilamentRunoutEnabled()); + w.heading( GET_TEXT_F(MSG_FILAMENT)); + w.toggle( 2, GET_TEXT_F(MSG_RUNOUT_SENSOR), getFilamentRunoutEnabled()); #ifdef FILAMENT_RUNOUT_DISTANCE_MM - w.heading(GET_TEXT_F(DETECTION_THRESHOLD)); - w.units(GET_TEXT_F(UNITS_MM)); + w.heading(GET_TEXT_F(MSG_RUNOUT_DISTANCE_MM)); + w.units(GET_TEXT_F(MSG_UNITS_MM)); w.precision(0); w.color(e_axis); - w.adjuster( 10, GET_TEXT_F(DISTANCE), getFilamentRunoutDistance_mm(), getFilamentRunoutEnabled()); + w.adjuster( 10, PSTR(""), getFilamentRunoutDistance_mm(), getFilamentRunoutEnabled()); w.increments(); #endif } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/files_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/files_screen.cpp index d0bb97ad62..19f862158e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/files_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/files_screen.cpp @@ -167,13 +167,13 @@ void FilesScreen::drawFooter() { cmd.colors(normal_btn) .font(font_medium) .colors(has_selection ? normal_btn : action_btn) - .tag(back_tag).button( BTN_POS(4,y), BTN_SIZE(3,h), GET_TEXT_F(BACK)) + .tag(back_tag).button( BTN_POS(4,y), BTN_SIZE(3,h), GET_TEXT_F(MSG_BACK)) .enabled(has_selection) .colors(has_selection ? action_btn : normal_btn); if (screen_data.FilesScreen.flags.is_dir) { - cmd.tag(244).button( BTN_POS(1, y), BTN_SIZE(3,h), GET_TEXT_F(OPEN_DIR)); + cmd.tag(244).button( BTN_POS(1, y), BTN_SIZE(3,h), GET_TEXT_F(MSG_BUTTON_OPEN)); } else { - cmd.tag(243).button( BTN_POS(1, y), BTN_SIZE(3,h), GET_TEXT_F(PRINT_FILE)); + cmd.tag(243).button( BTN_POS(1, y), BTN_SIZE(3,h), GET_TEXT_F(MSG_BUTTON_PRINT)); } } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_settings_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_settings_screen.cpp index 16c355d457..aae0b2802e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_settings_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_settings_screen.cpp @@ -69,15 +69,15 @@ void InterfaceSettingsScreen::onRedraw(draw_mode_t what) { .cmd(COLOR_RGB(bg_text_enabled)) .tag(0) .font(font_medium) - .text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXT_F(INTERFACE_SETTINGS)) + .text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS)) #undef EDGE_R #define EDGE_R 30 .font(font_small) .tag(0) - .text(BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(LCD_BRIGHTNESS), OPT_RIGHTX | OPT_CENTERY) - .text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(SOUND_VOLUME), OPT_RIGHTX | OPT_CENTERY) - .text(BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(SCREEN_LOCK), OPT_RIGHTX | OPT_CENTERY); - cmd.text(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(BOOT_SCREEN), OPT_RIGHTX | OPT_CENTERY); + .text(BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(MSG_LCD_BRIGHTNESS), OPT_RIGHTX | OPT_CENTERY) + .text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_SOUND_VOLUME), OPT_RIGHTX | OPT_CENTERY) + .text(BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_SCREEN_LOCK), OPT_RIGHTX | OPT_CENTERY); + cmd.text(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_BOOT_SCREEN), OPT_RIGHTX | OPT_CENTERY); #undef EDGE_R } @@ -94,19 +94,19 @@ void InterfaceSettingsScreen::onRedraw(draw_mode_t what) { .tag(2).slider(BTN_POS(3,2), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.brightness, 128) .tag(3).slider(BTN_POS(3,3), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.volume, 0xFF) .colors(ui_toggle) - .tag(4).toggle2(BTN_POS(3,4), BTN_SIZE(w,1), GET_TEXT_F(NO), GET_TEXT_F(YES), LockScreen::is_enabled()) - .tag(5).toggle2(BTN_POS(3,5), BTN_SIZE(w,1), GET_TEXT_F(NO), GET_TEXT_F(YES), UIData::animations_enabled()) + .tag(4).toggle2(BTN_POS(3,4), BTN_SIZE(w,1), GET_TEXT_F(MSG_NO), GET_TEXT_F(MSG_YES), LockScreen::is_enabled()) + .tag(5).toggle2(BTN_POS(3,5), BTN_SIZE(w,1), GET_TEXT_F(MSG_NO), GET_TEXT_F(MSG_YES), UIData::animations_enabled()) #undef EDGE_R #define EDGE_R 0 #ifdef TOUCH_UI_PORTRAIT .colors(normal_btn) - .tag(6).button (BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXT_F(INTERFACE_SOUNDS)) + .tag(6).button (BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXT_F(MSG_INTERFACE_SOUNDS)) .colors(action_btn) - .tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(BACK)); + .tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(MSG_BACK)); #else - .tag(6).button (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(INTERFACE_SOUNDS)) + .tag(6).button (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SOUNDS)) .colors(action_btn) - .tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXT_F(BACK)); + .tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); #endif } } @@ -246,37 +246,37 @@ void InterfaceSettingsScreen::loadSettings(const char *buff) { for(uint8_t i = 0; i < InterfaceSoundsScreen::NUM_EVENTS; i++) InterfaceSoundsScreen::event_sounds[i] = eeprom.event_sounds[i]; - #if ENABLED(DEVELOPER_SCREENS) + #if ENABLED(TOUCH_UI_DEVELOPER_MENU) StressTestScreen::startupCheck(); #endif } -#ifdef LULZBOT_EEPROM_BACKUP_SIZE +#ifdef ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE #include "../../../../../HAL/shared/persistent_store_api.h" bool restoreEEPROM() { - uint8_t data[LULZBOT_EEPROM_BACKUP_SIZE]; + uint8_t data[ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE]; - bool success = UIFlashStorage::read_config_data(data, LULZBOT_EEPROM_BACKUP_SIZE); + bool success = UIFlashStorage::read_config_data(data, ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE); if (success) - success = persistentStore.write_data(0, data, LULZBOT_EEPROM_BACKUP_SIZE) == PERSISTENT_STORE_SUCCESS; + success = persistentStore.write_data(0, data, ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE) == PERSISTENT_STORE_SUCCESS; if (success) - StatusScreen::setStatusMessage(GET_TEXT_F(EEPROM_RESTORED)); + StatusScreen::setStatusMessage(GET_TEXT_F(MSG_EEPROM_RESTORED)); else - StatusScreen::setStatusMessage(GET_TEXT_F(EEPROM_RESET)); + StatusScreen::setStatusMessage(GET_TEXT_F(MSG_EEPROM_RESET)); return success; } bool InterfaceSettingsScreen::backupEEPROM() { - uint8_t data[LULZBOT_EEPROM_BACKUP_SIZE]; + uint8_t data[ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE]; - if (persistentStore.read_data(0, data, LULZBOT_EEPROM_BACKUP_SIZE) != PERSISTENT_STORE_SUCCESS) + if (persistentStore.read_data(0, data, ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE) != PERSISTENT_STORE_SUCCESS) return false; - UIFlashStorage::write_config_data(data, LULZBOT_EEPROM_BACKUP_SIZE); + UIFlashStorage::write_config_data(data, ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE); return true; } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_sounds_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_sounds_screen.cpp index 819a4519a8..4bb9568ee5 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_sounds_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_sounds_screen.cpp @@ -71,15 +71,15 @@ void InterfaceSoundsScreen::onRedraw(draw_mode_t what) { #define GRID_ROWS 9 .font(font_medium) - .text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXT_F(INTERFACE_SOUNDS)) + .text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXT_F(MSG_INTERFACE_SOUNDS)) #undef EDGE_R #define EDGE_R 30 .font(font_small) - .tag(0).text (BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(SOUND_VOLUME), OPT_RIGHTX | OPT_CENTERY) - .text (BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(CLICK_SOUNDS), OPT_RIGHTX | OPT_CENTERY) - .text (BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(PRINT_STARTING), OPT_RIGHTX | OPT_CENTERY) - .text (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(PRINT_FINISHED), OPT_RIGHTX | OPT_CENTERY) - .text (BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(PRINT_ERROR), OPT_RIGHTX | OPT_CENTERY); + .tag(0).text (BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(MSG_SOUND_VOLUME), OPT_RIGHTX | OPT_CENTERY) + .text (BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_CLICK_SOUNDS), OPT_RIGHTX | OPT_CENTERY) + .text (BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_PRINT_STARTING), OPT_RIGHTX | OPT_CENTERY) + .text (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_PRINT_FINISHED), OPT_RIGHTX | OPT_CENTERY) + .text (BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_PRINT_ERROR), OPT_RIGHTX | OPT_CENTERY); #undef EDGE_R } @@ -95,7 +95,7 @@ void InterfaceSoundsScreen::onRedraw(draw_mode_t what) { #define EDGE_R 30 .tag(2).slider (BTN_POS(3,2), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.volume, 0xFF) .colors(ui_toggle) - .tag(3).toggle2 (BTN_POS(3,3), BTN_SIZE(w,1), GET_TEXT_F(NO), GET_TEXT_F(YES), UIData::touch_sounds_enabled()) + .tag(3).toggle2 (BTN_POS(3,3), BTN_SIZE(w,1), GET_TEXT_F(MSG_NO), GET_TEXT_F(MSG_YES), UIData::touch_sounds_enabled()) #undef EDGE_R .colors(normal_btn) #define EDGE_R 0 @@ -103,7 +103,7 @@ void InterfaceSoundsScreen::onRedraw(draw_mode_t what) { .tag(5).button (BTN_POS(3,6), BTN_SIZE(2,1), getSoundSelection(PRINTING_FINISHED)) .tag(6).button (BTN_POS(3,7), BTN_SIZE(2,1), getSoundSelection(PRINTING_FAILED)) .colors(action_btn) - .tag(1).button (BTN_POS(1,9), BTN_SIZE(4,1), GET_TEXT_F(BACK)); + .tag(1).button (BTN_POS(1,9), BTN_SIZE(4,1), GET_TEXT_F(MSG_BACK)); } } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/jerk_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/jerk_screen.cpp index 22f5ddbf91..c52add9204 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/jerk_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/jerk_screen.cpp @@ -34,12 +34,12 @@ void JerkScreen::onRedraw(draw_mode_t what) { widgets_t w(what); w.precision(1); - w.units(GET_TEXT_F(UNITS_MM_S)); - w.heading(GET_TEXT_F(JERK)); - w.color(x_axis) .adjuster( 2, GET_TEXT_F(AXIS_X), getAxisMaxJerk_mm_s(X) ); - w.color(y_axis) .adjuster( 4, GET_TEXT_F(AXIS_Y), getAxisMaxJerk_mm_s(Y) ); - w.color(z_axis) .adjuster( 6, GET_TEXT_F(AXIS_Z), getAxisMaxJerk_mm_s(Z) ); - w.color(e_axis) .adjuster( 8, GET_TEXT_F(AXIS_E), getAxisMaxJerk_mm_s(E0) ); + w.units(GET_TEXT_F(MSG_UNITS_MM_S)); + w.heading(GET_TEXT_F(MSG_JERK)); + w.color(x_axis) .adjuster( 2, GET_TEXT_F(MSG_AXIS_X), getAxisMaxJerk_mm_s(X) ); + w.color(y_axis) .adjuster( 4, GET_TEXT_F(MSG_AXIS_Y), getAxisMaxJerk_mm_s(Y) ); + w.color(z_axis) .adjuster( 6, GET_TEXT_F(MSG_AXIS_Z), getAxisMaxJerk_mm_s(Z) ); + w.color(e_axis) .adjuster( 8, GET_TEXT_F(MSG_AXIS_E), getAxisMaxJerk_mm_s(E0) ); w.increments(); } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/junction_deviation_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/junction_deviation_screen.cpp index 617cdd2510..2ec5b9bc1d 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/junction_deviation_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/junction_deviation_screen.cpp @@ -33,8 +33,8 @@ using namespace Theme; void JunctionDeviationScreen::onRedraw(draw_mode_t what) { widgets_t w(what); w.precision(2); - w.units(GET_TEXT_F(UNITS_MM)); - w.heading(GET_TEXT_F(JUNC_DEVIATION)); + w.units(GET_TEXT_F(MSG_UNITS_MM)); + w.heading(GET_TEXT_F(MSG_JUNCTION_DEVIATION)); w.color(other) .adjuster( 2, F(""), getJunctionDeviation_mm() ); w.increments(); } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/kill_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/kill_screen.cpp index 853491032e..b08c24db61 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/kill_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/kill_screen.cpp @@ -46,8 +46,8 @@ void KillScreen::show(const char *message) { cmd.font(Theme::font_large) .cmd(COLOR_RGB(Theme::bg_text_enabled)) .text(BTN_POS(1,2), BTN_SIZE(4,1), message) - .text(BTN_POS(1,3), BTN_SIZE(4,1), GET_TEXT_F(PRINTER_HALTED)) - .text(BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXT_F(PLEASE_RESET)); + .text(BTN_POS(1,3), BTN_SIZE(4,1), GET_TEXT_F(MSG_HALTED)) + .text(BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXT_F(MSG_PLEASE_RESET)); #undef GRID_COLS #undef GRID_ROWS diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/linear_advance_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/linear_advance_screen.cpp index f24ff9fc67..37db95f3e8 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/linear_advance_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/linear_advance_screen.cpp @@ -33,16 +33,16 @@ using namespace Theme; void LinearAdvanceScreen::onRedraw(draw_mode_t what) { widgets_t w(what); w.precision(2, DEFAULT_LOWEST).color(e_axis); - w.heading( GET_TEXT_F(LINEAR_ADVANCE)); + w.heading( GET_TEXT_F(MSG_LINEAR_ADVANCE)); #if EXTRUDERS == 1 - w.adjuster( 2, GET_TEXT_F(LINEAR_ADVANCE_K), getLinearAdvance_mm_mm_s(E0) ); + w.adjuster( 2, GET_TEXT_F(MSG_LINEAR_ADVANCE_K), getLinearAdvance_mm_mm_s(E0) ); #else - w.adjuster( 2, GET_TEXT_F(LINEAR_ADVANCE_K1), getLinearAdvance_mm_mm_s(E0) ); - w.adjuster( 4, GET_TEXT_F(LINEAR_ADVANCE_K2), getLinearAdvance_mm_mm_s(E1) ); + w.adjuster( 2, GET_TEXT_F(MSG_LINEAR_ADVANCE_K1), getLinearAdvance_mm_mm_s(E0) ); + w.adjuster( 4, GET_TEXT_F(MSG_LINEAR_ADVANCE_K2), getLinearAdvance_mm_mm_s(E1) ); #if EXTRUDERS > 2 - w.adjuster( 6, GET_TEXT_F(LINEAR_ADVANCE_K3), getLinearAdvance_mm_mm_s(E2) ); + w.adjuster( 6, GET_TEXT_F(MSG_LINEAR_ADVANCE_K3), getLinearAdvance_mm_mm_s(E2) ); #if EXTRUDERS > 3 - w.adjuster( 8, GET_TEXT_F(LINEAR_ADVANCE_K4), getLinearAdvance_mm_mm_s(E3) ); + w.adjuster( 8, GET_TEXT_F(MSG_LINEAR_ADVANCE_K4), getLinearAdvance_mm_mm_s(E3) ); #endif #endif #endif diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/lock_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/lock_screen.cpp index 13b42b8cee..fa7c32f7c9 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/lock_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/lock_screen.cpp @@ -66,16 +66,16 @@ void LockScreen::onRedraw(draw_mode_t what) { progmem_str message; switch (message_style()) { case 'w': - message = GET_TEXT_F(PASSCODE_REJECTED); + message = GET_TEXT_F(MSG_PASSCODE_REJECTED); break; case 'g': - message = GET_TEXT_F(PASSCODE_ACCEPTED); + message = GET_TEXT_F(MSG_PASSCODE_ACCEPTED); break; default: if (passcode == 0) { - message = GET_TEXT_F(PASSCODE_SELECT); + message = GET_TEXT_F(MSG_PASSCODE_SELECT); } else { - message = GET_TEXT_F(PASSCODE_REQUEST); + message = GET_TEXT_F(MSG_PASSCODE_REQUEST); } } message_style() = '\0'; // Terminate the string. diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/main_menu.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/main_menu.cpp index 23c4415c81..142d4ff029 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/main_menu.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/main_menu.cpp @@ -5,6 +5,7 @@ /**************************************************************************** * Written By Mark Pelletier 2017 - Aleph Objects, Inc. * * Written By Marcio Teixeira 2018 - Aleph Objects, Inc. * + * Written By Marcio Teixeira 2019 - Cocoa Press * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -22,7 +23,7 @@ #include "../config.h" -#if ENABLED(LULZBOT_TOUCH_UI) && !defined(LULZBOT_USE_BIOPRINTER_UI) +#if ENABLED(LULZBOT_TOUCH_UI) && !defined(TOUCH_UI_LULZBOT_BIO) #include "screens.h" @@ -43,53 +44,63 @@ void MainMenu::onRedraw(draw_mode_t what) { #ifdef TOUCH_UI_PORTRAIT #define GRID_ROWS 8 #define GRID_COLS 2 - .tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(AUTO_HOME)) - #ifdef NOZZLE_CLEAN_FEATURE - .enabled(1) - #else - .enabled(0) - #endif - .tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(CLEAN_NOZZLE)) - .tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MOVE_AXIS)) - .tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MOTORS_OFF)) - .tag(6).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(TEMPERATURE)) - .tag(7).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(CHANGE_FILAMENT)) - .tag(8).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(ADVANCED_SETTINGS)) - #ifdef PRINTCOUNTER - .enabled(1) - #else - .enabled(0) - #endif - .tag(9).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(PRINTER_STATISTICS)) - .tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(ABOUT_PRINTER)) - .colors(action_btn) - .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(BACK)); - #undef GRID_COLS - #undef GRID_ROWS - #else - #define GRID_ROWS 5 - #define GRID_COLS 2 - .tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(AUTO_HOME)) + .tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_AUTO_HOME)) #if ENABLED(NOZZLE_CLEAN_FEATURE) .enabled(1) #else .enabled(0) #endif - .tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(CLEAN_NOZZLE)) - .tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MOVE_AXIS)) - .tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MOTORS_OFF)) - .tag(6).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(TEMPERATURE)) - .tag(7).button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(CHANGE_FILAMENT)) - .tag(8).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(ADVANCED_SETTINGS)) + .tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_CLEAN_NOZZLE)) + .tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOVE_AXIS)) + .tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_DISABLE_STEPPERS)) + .tag(6).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_TEMPERATURE)) + #if DISABLED(TOUCH_UI_LULZBOT_BIO) && DISABLED(TOUCH_UI_COCOA_PRESS) + .enabled(1) + #else + .enabled(0) + #endif + .tag(7).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_FILAMENTCHANGE)) + .tag(8).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_ADVANCED_SETTINGS)) #ifdef PRINTCOUNTER .enabled(1) #else .enabled(0) #endif - .tag(9).button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(PRINTER_STATISTICS)) - .tag(10).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(ABOUT_PRINTER)) + .tag(9).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INFO_STATS_MENU)) + .tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_INFO_MENU)) .colors(action_btn) - .tag(1).button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(BACK)); + .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); + #undef GRID_COLS + #undef GRID_ROWS + #else + #define GRID_ROWS 5 + #define GRID_COLS 2 + .tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_AUTO_HOME)) + #if ENABLED(NOZZLE_CLEAN_FEATURE) + .enabled(1) + #else + .enabled(0) + #endif + .tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_CLEAN_NOZZLE)) + .tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOVE_AXIS)) + .tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_DISABLE_STEPPERS)) + .tag(6).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_TEMPERATURE)) + #if DISABLED(TOUCH_UI_LULZBOT_BIO) && DISABLED(TOUCH_UI_COCOA_PRESS) + .enabled(1) + #else + .enabled(0) + #endif + .tag(7).button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_FILAMENTCHANGE)) + .tag(8).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_ADVANCED_SETTINGS)) + #ifdef PRINTCOUNTER + .enabled(1) + #else + .enabled(0) + #endif + .tag(9).button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_INFO_STATS_MENU)) + .tag(10).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_INFO_MENU)) + .colors(action_btn) + .tag(1).button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACK)); #undef GRID_COLS #undef GRID_ROWS #endif diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_acceleration_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_acceleration_screen.cpp index 2a4569244d..fd91bace87 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_acceleration_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_acceleration_screen.cpp @@ -33,21 +33,21 @@ using namespace Theme; void MaxAccelerationScreen::onRedraw(draw_mode_t what) { widgets_t w(what); w.precision(0); - w.units(GET_TEXT_F(UNITS_MM_S2)); - w.heading(GET_TEXT_F(ACCELERATION)); - w.color(x_axis) .adjuster( 2, GET_TEXT_F(AMAX_X), getAxisMaxAcceleration_mm_s2(X) ); - w.color(y_axis) .adjuster( 4, GET_TEXT_F(AMAX_Y), getAxisMaxAcceleration_mm_s2(Y) ); - w.color(z_axis) .adjuster( 6, GET_TEXT_F(AMAX_Z), getAxisMaxAcceleration_mm_s2(Z) ); + w.units(GET_TEXT_F(MSG_UNITS_MM_S2)); + w.heading(GET_TEXT_F(MSG_ACCELERATION)); + w.color(x_axis) .adjuster( 2, GET_TEXT_F(MSG_AMAX_X), getAxisMaxAcceleration_mm_s2(X) ); + w.color(y_axis) .adjuster( 4, GET_TEXT_F(MSG_AMAX_Y), getAxisMaxAcceleration_mm_s2(Y) ); + w.color(z_axis) .adjuster( 6, GET_TEXT_F(MSG_AMAX_Z), getAxisMaxAcceleration_mm_s2(Z) ); #if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS) - w.color(e_axis).adjuster( 8, GET_TEXT_F(AMAX_E0), getAxisMaxAcceleration_mm_s2(E0) ); + w.color(e_axis).adjuster( 8, GET_TEXT_F(MSG_AMAX_E0), getAxisMaxAcceleration_mm_s2(E0) ); #elif EXTRUDERS > 1 - w.color(e_axis).adjuster( 8, GET_TEXT_F(AMAX_E0), getAxisMaxAcceleration_mm_s2(E0) ); - w.color(e_axis).adjuster(10, GET_TEXT_F(AMAX_E1), getAxisMaxAcceleration_mm_s2(E1) ); + w.color(e_axis).adjuster( 8, GET_TEXT_F(MSG_AMAX_E0), getAxisMaxAcceleration_mm_s2(E0) ); + w.color(e_axis).adjuster(10, GET_TEXT_F(MSG_AMAX_E1), getAxisMaxAcceleration_mm_s2(E1) ); #if EXTRUDERS > 2 - w.color(e_axis).adjuster(12, GET_TEXT_F(AMAX_E2), getAxisMaxAcceleration_mm_s2(E2) ); + w.color(e_axis).adjuster(12, GET_TEXT_F(MSG_AMAX_E2), getAxisMaxAcceleration_mm_s2(E2) ); #endif #if EXTRUDERS > 3 - w.color(e_axis).adjuster(14, GET_TEXT_F(AMAX_E3), getAxisMaxAcceleration_mm_s2(E3) ); + w.color(e_axis).adjuster(14, GET_TEXT_F(MSG_AMAX_E3), getAxisMaxAcceleration_mm_s2(E3) ); #endif #endif w.increments(); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_velocity_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_velocity_screen.cpp index 8e5861ae0d..69fd9d994e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_velocity_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_velocity_screen.cpp @@ -34,21 +34,21 @@ void MaxVelocityScreen::onRedraw(draw_mode_t what) { using namespace ExtUI; widgets_t w(what); w.precision(0); - w.units(GET_TEXT_F(UNITS_MM_S)); - w.heading( GET_TEXT_F(VELOCITY)); - w.color(x_axis) .adjuster( 2, GET_TEXT_F(VMAX_X), getAxisMaxFeedrate_mm_s(X) ); - w.color(y_axis) .adjuster( 4, GET_TEXT_F(VMAX_Y), getAxisMaxFeedrate_mm_s(Y) ); - w.color(z_axis) .adjuster( 6, GET_TEXT_F(VMAX_Z), getAxisMaxFeedrate_mm_s(Z) ); + w.units(GET_TEXT_F(MSG_UNITS_MM_S)); + w.heading( GET_TEXT_F(MSG_VELOCITY)); + w.color(x_axis) .adjuster( 2, GET_TEXT_F(MSG_VMAX_X), getAxisMaxFeedrate_mm_s(X) ); + w.color(y_axis) .adjuster( 4, GET_TEXT_F(MSG_VMAX_Y), getAxisMaxFeedrate_mm_s(Y) ); + w.color(z_axis) .adjuster( 6, GET_TEXT_F(MSG_VMAX_Z), getAxisMaxFeedrate_mm_s(Z) ); #if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS) - w.color(e_axis) .adjuster( 8, GET_TEXT_F(VMAX_E1), getAxisMaxFeedrate_mm_s(E0) ); + w.color(e_axis) .adjuster( 8, GET_TEXT_F(MSG_VMAX_E1), getAxisMaxFeedrate_mm_s(E0) ); #elif EXTRUDERS > 1 - w.color(e_axis) .adjuster( 8, GET_TEXT_F(VMAX_E1), getAxisMaxFeedrate_mm_s(E0) ); - w.color(e_axis) .adjuster( 10, GET_TEXT_F(VMAX_E2), getAxisMaxFeedrate_mm_s(E1) ); + w.color(e_axis) .adjuster( 8, GET_TEXT_F(MSG_VMAX_E1), getAxisMaxFeedrate_mm_s(E0) ); + w.color(e_axis) .adjuster( 10, GET_TEXT_F(MSG_VMAX_E2), getAxisMaxFeedrate_mm_s(E1) ); #if EXTRUDERS > 2 - w.color(e_axis).adjuster( 12, GET_TEXT_F(VMAX_E3), getAxisMaxFeedrate_mm_s(E2) ); + w.color(e_axis).adjuster( 12, GET_TEXT_F(MSG_VMAX_E3), getAxisMaxFeedrate_mm_s(E2) ); #endif #if EXTRUDERS > 3 - w.color(e_axis).adjuster( 14, GET_TEXT_F(VMAX_E4), getAxisMaxFeedrate_mm_s(E3) ); + w.color(e_axis).adjuster( 14, GET_TEXT_F(MSG_VMAX_E4), getAxisMaxFeedrate_mm_s(E3) ); #endif #endif w.increments(); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/move_axis_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/move_axis_screen.cpp index 5bc6f31df7..7b42ad5d7e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/move_axis_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/move_axis_screen.cpp @@ -45,24 +45,24 @@ void MoveAxisScreen::onEntry() { void MoveAxisScreen::onRedraw(draw_mode_t what) { widgets_t w(what); w.precision(1); - w.units(GET_TEXT_F(UNITS_MM)); - w.heading( GET_TEXT_F(MOVE_AXIS)); + w.units(GET_TEXT_F(MSG_UNITS_MM)); + w.heading( GET_TEXT_F(MSG_MOVE_AXIS)); w.home_buttons(20); - w.color(Theme::x_axis).adjuster( 2, GET_TEXT_F(AXIS_X), getAxisPosition_mm(X), canMove(X)); - w.color(Theme::y_axis).adjuster( 4, GET_TEXT_F(AXIS_Y), getAxisPosition_mm(Y), canMove(Y)); - w.color(Theme::z_axis).adjuster( 6, GET_TEXT_F(AXIS_Z), getAxisPosition_mm(Z), canMove(Z)); + w.color(Theme::x_axis).adjuster( 2, GET_TEXT_F(MSG_AXIS_X), getAxisPosition_mm(X), canMove(X)); + w.color(Theme::y_axis).adjuster( 4, GET_TEXT_F(MSG_AXIS_Y), getAxisPosition_mm(Y), canMove(Y)); + w.color(Theme::z_axis).adjuster( 6, GET_TEXT_F(MSG_AXIS_Z), getAxisPosition_mm(Z), canMove(Z)); w.color(Theme::e_axis); #if EXTRUDERS == 1 - w.adjuster( 8, GET_TEXT_F(AXIS_E), screen_data.MoveAxisScreen.e_rel[0], canMove(E0)); + w.adjuster( 8, GET_TEXT_F(MSG_AXIS_E), screen_data.MoveAxisScreen.e_rel[0], canMove(E0)); #elif EXTRUDERS > 1 - w.adjuster( 8, GET_TEXT_F(AXIS_E1), screen_data.MoveAxisScreen.e_rel[0], canMove(E0)); - w.adjuster( 10, GET_TEXT_F(AXIS_E2), screen_data.MoveAxisScreen.e_rel[1], canMove(E1)); + w.adjuster( 8, GET_TEXT_F(MSG_AXIS_E1), screen_data.MoveAxisScreen.e_rel[0], canMove(E0)); + w.adjuster( 10, GET_TEXT_F(MSG_AXIS_E2), screen_data.MoveAxisScreen.e_rel[1], canMove(E1)); #if EXTRUDERS > 2 - w.adjuster( 12, GET_TEXT_F(AXIS_E3), screen_data.MoveAxisScreen.e_rel[2], canMove(E2)); + w.adjuster( 12, GET_TEXT_F(MSG_AXIS_E3), screen_data.MoveAxisScreen.e_rel[2], canMove(E2)); #endif #if EXTRUDERS > 3 - w.adjuster( 14, GET_TEXT_F(AXIS_E4), screen_data.MoveAxisScreen.e_rel[3], canMove(E3)); + w.adjuster( 14, GET_TEXT_F(MSG_AXIS_E4), screen_data.MoveAxisScreen.e_rel[3], canMove(E3)); #endif #endif w.increments(); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nozzle_offsets_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nozzle_offsets_screen.cpp index eb29588b23..803832a6a6 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nozzle_offsets_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nozzle_offsets_screen.cpp @@ -39,14 +39,14 @@ void NozzleOffsetScreen::onEntry() { void NozzleOffsetScreen::onRedraw(draw_mode_t what) { widgets_t w(what); - w.precision(2).units(GET_TEXT_F(UNITS_MM)); + w.precision(2).units(GET_TEXT_F(MSG_UNITS_MM)); - w.heading( GET_TEXT_F(TOOL_OFFSETS)); - w.color(Theme::x_axis).adjuster(2, GET_TEXT_F(AXIS_X), ExtUI::getNozzleOffset_mm(X, E1)); - w.color(Theme::y_axis).adjuster(4, GET_TEXT_F(AXIS_Y), ExtUI::getNozzleOffset_mm(Y, E1)); - w.color(Theme::z_axis).adjuster(6, GET_TEXT_F(AXIS_Z), ExtUI::getNozzleOffset_mm(Z, E1)); + w.heading( GET_TEXT_F(MSG_OFFSETS_MENU)); + w.color(Theme::x_axis).adjuster(2, GET_TEXT_F(MSG_AXIS_X), ExtUI::getNozzleOffset_mm(X, E1)); + w.color(Theme::y_axis).adjuster(4, GET_TEXT_F(MSG_AXIS_Y), ExtUI::getNozzleOffset_mm(Y, E1)); + w.color(Theme::z_axis).adjuster(6, GET_TEXT_F(MSG_AXIS_Z), ExtUI::getNozzleOffset_mm(Z, E1)); #if ENABLED(CALIBRATION_GCODE) - w.button(8, GET_TEXT_F(MEASURE_AUTOMATICALLY), !isPrinting()); + w.button(8, GET_TEXT_F(MSG_MEASURE_AUTOMATICALLY), !isPrinting()); #endif w.increments(); } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nudge_nozzle_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nudge_nozzle_screen.cpp index e86e66b9c2..077d61fce1 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nudge_nozzle_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nudge_nozzle_screen.cpp @@ -43,21 +43,21 @@ void NudgeNozzleScreen::onEntry() { void NudgeNozzleScreen::onRedraw(draw_mode_t what) { widgets_t w(what); - w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(GET_TEXT_F(UNITS_MM)); + w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(GET_TEXT_F(MSG_UNITS_MM)); - w.heading( GET_TEXT_F(NUDGE_NOZZLE)); + w.heading( GET_TEXT_F(MSG_NUDGE_NOZZLE)); #if ENABLED(BABYSTEP_XY) - w.color(x_axis).adjuster(2, GET_TEXT_F(AXIS_X), screen_data.NudgeNozzleScreen.rel.x / getAxisSteps_per_mm(X)); - w.color(y_axis).adjuster(4, GET_TEXT_F(AXIS_Y), screen_data.NudgeNozzleScreen.rel.y / getAxisSteps_per_mm(Y)); + w.color(x_axis).adjuster(2, GET_TEXT_F(MSG_AXIS_X), screen_data.NudgeNozzleScreen.rel.x / getAxisSteps_per_mm(X)); + w.color(y_axis).adjuster(4, GET_TEXT_F(MSG_AXIS_Y), screen_data.NudgeNozzleScreen.rel.y / getAxisSteps_per_mm(Y)); #endif - w.color(z_axis).adjuster(6, GET_TEXT_F(AXIS_Z), screen_data.NudgeNozzleScreen.rel.z / getAxisSteps_per_mm(Z)); + w.color(z_axis).adjuster(6, GET_TEXT_F(MSG_AXIS_Z), screen_data.NudgeNozzleScreen.rel.z / getAxisSteps_per_mm(Z)); w.increments(); #if EXTRUDERS > 1 - w.toggle (8, GET_TEXT_F(ADJUST_BOTH_NOZZLES), screen_data.NudgeNozzleScreen.link_nozzles); + w.toggle (8, GET_TEXT_F(MSG_ADJUST_BOTH_NOZZLES), screen_data.NudgeNozzleScreen.link_nozzles); #endif #if EXTRUDERS > 1 || HAS_BED_PROBE - w.toggle (9, GET_TEXT_F(SHOW_OFFSETS), screen_data.NudgeNozzleScreen.show_offsets); + w.toggle (9, GET_TEXT_F(MSG_SHOW_OFFSETS), screen_data.NudgeNozzleScreen.show_offsets); if (screen_data.NudgeNozzleScreen.show_offsets) { char str[19]; @@ -69,12 +69,12 @@ void NudgeNozzleScreen::onRedraw(draw_mode_t what) { dtostrf(getZOffset_mm(), 4, 2, str); strcat(str, " "); strcat_P(str, GET_TEXT(UNITS_MM)); - w.text_field (0, GET_TEXT_F(ZPROBE_ZOFFSET), str); + w.text_field (0, GET_TEXT_F(MSG_ZPROBE_ZOFFSET), str); #endif #if EXTRUDERS > 1 format_position(str, getNozzleOffset_mm(X, E1), getNozzleOffset_mm(Y, E1), getNozzleOffset_mm(Z, E1)); - w.text_field (0, GET_TEXT_F(TOOL_OFFSETS), str); + w.text_field (0, GET_TEXT_F(MSG_OFFSETS_MENU), str); #endif } #endif diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/restore_failsafe_dialog_box.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/restore_failsafe_dialog_box.cpp index 4c91e628f7..60b07d125d 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/restore_failsafe_dialog_box.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/restore_failsafe_dialog_box.cpp @@ -29,7 +29,7 @@ using namespace ExtUI; void RestoreFailsafeDialogBox::onRedraw(draw_mode_t) { - drawMessage(GET_TEXT_F(EEPROM_RESET_WARNING)); + drawMessage(GET_TEXT_F(MSG_EEPROM_RESET_WARNING)); drawYesNoButtons(); } @@ -37,7 +37,7 @@ bool RestoreFailsafeDialogBox::onTouchEnd(uint8_t tag) { switch (tag) { case 1: ExtUI::injectCommands_P(PSTR("M502")); - AlertDialogBox::show(GET_TEXT_F(EEPROM_RESET)); + AlertDialogBox::show(GET_TEXT_F(MSG_EEPROM_RESET)); // Remove RestoreFailsafeDialogBox from the stack // so the alert box doesn't return to it. current_screen.forget(); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/save_settings_dialog_box.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/save_settings_dialog_box.cpp index e2c8a81e30..aff5a86bbb 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/save_settings_dialog_box.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/save_settings_dialog_box.cpp @@ -31,7 +31,7 @@ using namespace ExtUI; bool SaveSettingsDialogBox::needs_save = false; void SaveSettingsDialogBox::onRedraw(draw_mode_t) { - drawMessage(GET_TEXT_F(EEPROM_SAVE_PROMPT)); + drawMessage(GET_TEXT_F(MSG_EEPROM_SAVE_PROMPT)); drawYesNoButtons(); } @@ -40,7 +40,7 @@ bool SaveSettingsDialogBox::onTouchEnd(uint8_t tag) { switch (tag) { case 1: injectCommands_P(PSTR("M500")); - AlertDialogBox::show(GET_TEXT_F(EEPROM_SAVED)); + AlertDialogBox::show(GET_TEXT_F(MSG_EEPROM_SAVED)); // Remove SaveSettingsDialogBox from the stack // so the alert box doesn't return to me. current_screen.forget(); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screen_data.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screen_data.h index 65d6889a6a..66673ae650 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screen_data.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screen_data.h @@ -39,6 +39,9 @@ union screen_data_t { struct { uint8_t e_tag, t_tag, repeat_tag; ExtUI::extruder_t saved_extruder; + #if FILAMENT_UNLOAD_PURGE_LENGTH > 0 + bool need_purge; + #endif } ChangeFilamentScreen; struct { struct { @@ -57,7 +60,7 @@ union screen_data_t { struct base_numeric_adjustment_t placeholder; float e_rel[ExtUI::extruderCount]; } MoveAxisScreen; -#if ENABLED(DEVELOPER_SCREENS) +#if ENABLED(TOUCH_UI_DEVELOPER_MENU) struct { uint32_t next_watchdog_trigger; const char* message; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.cpp index 42eb8317c9..0c34ba3958 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.cpp @@ -96,12 +96,12 @@ SCREEN_TABLE { DECL_SCREEN(LockScreen), DECL_SCREEN(FilesScreen), DECL_SCREEN(EndstopStatesScreen), -#ifdef LULZBOT_USE_BIOPRINTER_UI +#ifdef TOUCH_UI_LULZBOT_BIO DECL_SCREEN(BioPrintingDialogBox), DECL_SCREEN(BioConfirmHomeXYZ), DECL_SCREEN(BioConfirmHomeE), #endif -#if ENABLED(DEVELOPER_SCREENS) +#if ENABLED(TOUCH_UI_DEVELOPER_MENU) DECL_SCREEN(DeveloperMenu), DECL_SCREEN(ConfirmEraseFlashDialogBox), DECL_SCREEN(WidgetsScreen), diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.h index a781564644..a4fc495263 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.h @@ -69,7 +69,7 @@ enum { #if ENABLED(FILAMENT_RUNOUT_SENSOR) FILAMENT_RUNOUT_SCREEN_CACHE, #endif -#ifdef LULZBOT_USE_BIOPRINTER_UI +#ifdef TOUCH_UI_LULZBOT_BIO PRINTING_SCREEN_CACHE, #endif CHANGE_FILAMENT_SCREEN_CACHE, @@ -226,7 +226,7 @@ class SpinnerDialogBox : public DialogBoxBaseClass, public CachedScreen { private: static void draw_axis_position(draw_mode_t); @@ -273,7 +273,9 @@ class StatusScreen : public BaseScreen, public CachedScreen { private: static void draw_status_message(draw_mode_t, const char * const); @@ -343,6 +345,7 @@ class ChangeFilamentScreen : public BaseScreen, public CachedScreen 1 - w.color(e_axis).adjuster( 8, GET_TEXT_F(AXIS_E1), getAxisCurrent_mA(E0) ); - w.color(e_axis).adjuster(10, GET_TEXT_F(AXIS_E2), getAxisCurrent_mA(E1) ); + w.color(e_axis).adjuster( 8, GET_TEXT_F(MSG_AXIS_E1), getAxisCurrent_mA(E0) ); + w.color(e_axis).adjuster(10, GET_TEXT_F(MSG_AXIS_E2), getAxisCurrent_mA(E1) ); #if EXTRUDERS > 2 - w.color(e_axis).adjuster(12, GET_TEXT_F(AXIS_E3), getAxisCurrent_mA(E2) ); + w.color(e_axis).adjuster(12, GET_TEXT_F(MSG_AXIS_E3), getAxisCurrent_mA(E2) ); #endif #if EXTRUDERS > 3 - w.color(e_axis).adjuster(14, GET_TEXT_F(AXIS_E4), getAxisCurrent_mA(E3) ); + w.color(e_axis).adjuster(14, GET_TEXT_F(MSG_AXIS_E4), getAxisCurrent_mA(E3) ); #endif #endif w.increments(); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/steps_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/steps_screen.cpp index a265070ff8..a061e85d65 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/steps_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/steps_screen.cpp @@ -33,21 +33,21 @@ using namespace Theme; void StepsScreen::onRedraw(draw_mode_t what) { widgets_t w(what); w.precision(0); - w.units(GET_TEXT_F(UNITS_STEP_MM)); - w.heading( GET_TEXT_F(STEPS_PER_MM)); - w.color(x_axis) .adjuster( 2, GET_TEXT_F(AXIS_X), getAxisSteps_per_mm(X) ); - w.color(y_axis) .adjuster( 4, GET_TEXT_F(AXIS_Y), getAxisSteps_per_mm(Y) ); - w.color(z_axis) .adjuster( 6, GET_TEXT_F(AXIS_Z), getAxisSteps_per_mm(Z) ); + w.units(GET_TEXT_F(MSG_UNITS_STEP_MM)); + w.heading( GET_TEXT_F(MSG_STEPS_PER_MM)); + w.color(x_axis) .adjuster( 2, GET_TEXT_F(MSG_AXIS_X), getAxisSteps_per_mm(X) ); + w.color(y_axis) .adjuster( 4, GET_TEXT_F(MSG_AXIS_Y), getAxisSteps_per_mm(Y) ); + w.color(z_axis) .adjuster( 6, GET_TEXT_F(MSG_AXIS_Z), getAxisSteps_per_mm(Z) ); #if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS) - w.color(e_axis) .adjuster( 8, GET_TEXT_F(AXIS_E), getAxisSteps_per_mm(E0) ); + w.color(e_axis) .adjuster( 8, GET_TEXT_F(MSG_AXIS_E), getAxisSteps_per_mm(E0) ); #elif EXTRUDERS > 1 - w.color(e_axis) .adjuster( 8, GET_TEXT_F(AXIS_E1), getAxisSteps_per_mm(E0) ); - w.color(e_axis) .adjuster(10, GET_TEXT_F(AXIS_E2), getAxisSteps_per_mm(E1) ); + w.color(e_axis) .adjuster( 8, GET_TEXT_F(MSG_AXIS_E1), getAxisSteps_per_mm(E0) ); + w.color(e_axis) .adjuster(10, GET_TEXT_F(MSG_AXIS_E2), getAxisSteps_per_mm(E1) ); #if EXTRUDERS > 2 - w.color(e_axis) .adjuster(12, GET_TEXT_F(AXIS_E3), getAxisSteps_per_mm(E2) ); + w.color(e_axis) .adjuster(12, GET_TEXT_F(MSG_AXIS_E3), getAxisSteps_per_mm(E2) ); #endif #if EXTRUDERS > 3 - w.color(e_axis) .adjuster(14, GET_TEXT_F(AXIS_E4), getAxisSteps_per_mm(E3) ); + w.color(e_axis) .adjuster(14, GET_TEXT_F(MSG_AXIS_E4), getAxisSteps_per_mm(E3) ); #endif #endif w.increments(); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/stress_test_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/stress_test_screen.cpp index 7005b27b86..726d668028 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/stress_test_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/stress_test_screen.cpp @@ -22,7 +22,7 @@ #include "../config.h" -#if BOTH(LULZBOT_TOUCH_UI, DEVELOPER_SCREENS) +#if BOTH(LULZBOT_TOUCH_UI, TOUCH_UI_DEVELOPER_MENU) #include "screens.h" #include "screen_data.h" @@ -121,6 +121,7 @@ void StressTestScreen::onIdle() { if (!commandsInQueue()) { if (!isPositionKnown()) { + extern const char G28_STR[]; injectCommands_P(G28_STR); } else { injectCommands_P(PSTR( diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/string_format.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/string_format.cpp index 56ae3cb776..3953c0b0e4 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/string_format.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/string_format.cpp @@ -34,28 +34,28 @@ * Formats a temperature string (e.g. "100°C") */ void format_temp(char *str, float t1) { - sprintf_P(str, PSTR("%3d" S_FMT), ROUND(t1), GET_TEXT(UNITS_C)); + sprintf_P(str, PSTR("%3d" S_FMT), ROUND(t1), GET_TEXT(MSG_UNITS_C)); } /** * Formats a temperature string for an idle heater (e.g. "100 °C / idle") */ void format_temp_and_idle(char *str, float t1) { - sprintf_P(str, PSTR("%3d" S_FMT " / " S_FMT), ROUND(t1), GET_TEXT(UNITS_C), GET_TEXT(TEMP_IDLE)); + sprintf_P(str, PSTR("%3d" S_FMT " / " S_FMT), ROUND(t1), GET_TEXT(MSG_UNITS_C), GET_TEXT(MSG_IDLE)); } /** * Formats a temperature string for an active heater (e.g. "100 / 200°C") */ void format_temp_and_temp(char *str, float t1, float t2) { - sprintf_P(str, PSTR("%3d / %3d" S_FMT), ROUND(t1), ROUND(t2), GET_TEXT(UNITS_C)); + sprintf_P(str, PSTR("%3d / %3d" S_FMT), ROUND(t1), ROUND(t2), GET_TEXT(MSG_UNITS_C)); } /** * Formats a temperature string for a material (e.g. "100°C (PLA)") */ void format_temp_and_material(char *str, float t1, const char *material) { - sprintf_P(str, PSTR("%3d" S_FMT " (" S_FMT ")"), ROUND(t1), GET_TEXT(UNITS_C), material); + sprintf_P(str, PSTR("%3d" S_FMT " (" S_FMT ")"), ROUND(t1), GET_TEXT(MSG_UNITS_C), material); } /** @@ -64,7 +64,7 @@ void format_temp_and_material(char *str, float t1, const char *material) { void format_position(char *str, float p) { dtostrf(p, 5, 1, str); strcat_P(str, PSTR(" ")); - strcat_P(str, GET_TEXT(UNITS_MM)); + strcat_P(str, GET_TEXT(MSG_UNITS_MM)); } /** @@ -75,7 +75,7 @@ void format_position(char *str, float x, float y, float z) { dtostrf(x, 4, 2, num1); dtostrf(y, 4, 2, num2); dtostrf(z, 4, 2, num3); - sprintf_P(str, PSTR("%s; %s; %s " S_FMT), num1, num2, num3, GET_TEXT(UNITS_MM)); + sprintf_P(str, PSTR("%s; %s; %s " S_FMT), num1, num2, num3, GET_TEXT(MSG_UNITS_MM)); } #pragma GCC diagnostic pop diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/temperature_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/temperature_screen.cpp index b6ee4ba424..a287b50692 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/temperature_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/temperature_screen.cpp @@ -32,29 +32,29 @@ using namespace ExtUI; void TemperatureScreen::onRedraw(draw_mode_t what) { widgets_t w(what); - w.precision(0).color(temp).units(GET_TEXT_F(UNITS_C)); - w.heading(GET_TEXT_F(TEMPERATURE)); - w.button(30, GET_TEXT_F(COOLDOWN)); - #ifndef LULZBOT_DISABLE_TOOLHEAD_HEATER + w.precision(0).color(temp).units(GET_TEXT_F(MSG_UNITS_C)); + w.heading(GET_TEXT_F(MSG_TEMPERATURE)); + w.button(30, GET_TEXT_F(MSG_COOLDOWN)); + #ifndef NO_TOOLHEAD_HEATER_GCODE #if HOTENDS == 1 - w.adjuster( 2, GET_TEXT_F(HOTEND), getTargetTemp_celsius(E0)); + w.adjuster( 2, GET_TEXT_F(MSG_NOZZLE), getTargetTemp_celsius(E0)); #else - w.adjuster( 2, GET_TEXT_F(HOTEND1), getTargetTemp_celsius(E0)); - w.adjuster( 4, GET_TEXT_F(HOTEND2), getTargetTemp_celsius(E1)); + w.adjuster( 2, GET_TEXT_F(MSG_NOZZLE_0), getTargetTemp_celsius(E0)); + w.adjuster( 4, GET_TEXT_F(MSG_NOZZLE_1), getTargetTemp_celsius(E1)); #if HOTENDS > 2 - w.adjuster( 6, GET_TEXT_F(HOTEND3), getTargetTemp_celsius(E2)); + w.adjuster( 6, GET_TEXT_F(MSG_NOZZLE_2), getTargetTemp_celsius(E2)); #endif #if HOTENDS > 3 - w.adjuster( 8, GET_TEXT_F(HOTEND4), getTargetTemp_celsius(E3)); + w.adjuster( 8, GET_TEXT_F(MSG_NOZZLE_3), getTargetTemp_celsius(E3)); #endif #endif #endif #if HAS_HEATED_BED - w.adjuster( 20, GET_TEXT_F(BED), getTargetTemp_celsius(BED)); + w.adjuster( 20, GET_TEXT_F(MSG_BED), getTargetTemp_celsius(BED)); #endif #if FAN_COUNT > 0 - w.color(fan_speed).units(GET_TEXT_F(UNITS_PERCENT)); - w.adjuster( 10, GET_TEXT_F(FAN_SPEED), getTargetFan_percent(FAN0)); + w.color(fan_speed).units(GET_TEXT_F(MSG_UNITS_PERCENT)); + w.adjuster( 10, GET_TEXT_F(MSG_FAN_SPEED), getTargetFan_percent(FAN0)); #endif w.increments(); } @@ -64,7 +64,7 @@ bool TemperatureScreen::onTouchHeld(uint8_t tag) { switch (tag) { case 20: UI_DECREMENT(TargetTemp_celsius, BED); break; case 21: UI_INCREMENT(TargetTemp_celsius, BED); break; - #ifndef LULZBOT_DISABLE_TOOLHEAD_HEATER + #ifndef NO_TOOLHEAD_HEATER_GCODE case 2: UI_DECREMENT(TargetTemp_celsius, E0); break; case 3: UI_INCREMENT(TargetTemp_celsius, E0); break; #endif diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/touch_calibration_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/touch_calibration_screen.cpp index d4e64667b6..d0885a9dbf 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/touch_calibration_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/touch_calibration_screen.cpp @@ -45,7 +45,7 @@ void TouchCalibrationScreen::onEntry() { .cmd(CLEAR_COLOR_RGB(bg_color)) .cmd(CLEAR(true,true,true)) .cmd(COLOR_RGB(bg_text_enabled)); - draw_text_box(cmd, BTN_POS(1,1), BTN_SIZE(4,16), GET_TEXT_F(TOUCH_CALIBRATION_START), OPT_CENTER, font_large); + draw_text_box(cmd, BTN_POS(1,1), BTN_SIZE(4,16), GET_TEXT_F(MSG_TOUCH_CALIBRATION_START), OPT_CENTER, font_large); cmd.cmd(DL::DL_DISPLAY) .cmd(CMD_SWAP) .execute(); @@ -76,7 +76,7 @@ void TouchCalibrationScreen::onRedraw(draw_mode_t) { .cmd(CLEAR(true,true,true)) .cmd(COLOR_RGB(bg_text_enabled)); - draw_text_box(cmd, BTN_POS(1,1), BTN_SIZE(4,16), GET_TEXT_F(TOUCH_CALIBRATION_PROMPT), OPT_CENTER, font_large); + draw_text_box(cmd, BTN_POS(1,1), BTN_SIZE(4,16), GET_TEXT_F(MSG_TOUCH_CALIBRATION_PROMPT), OPT_CENTER, font_large); cmd.cmd(CMD_CALIBRATE); } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/touch_registers_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/touch_registers_screen.cpp index c5d3b5f4b3..6e79195f10 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/touch_registers_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/touch_registers_screen.cpp @@ -22,7 +22,7 @@ #include "../config.h" -#if BOTH(LULZBOT_TOUCH_UI, DEVELOPER_SCREENS) +#if BOTH(LULZBOT_TOUCH_UI, TOUCH_UI_DEVELOPER_MENU) #include "screens.h" diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/tune_menu.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/tune_menu.cpp index 6cb8a27ba0..77708e2477 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/tune_menu.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/tune_menu.cpp @@ -22,7 +22,7 @@ #include "../config.h" -#if ENABLED(LULZBOT_TOUCH_UI) && !defined(LULZBOT_USE_BIOPRINTER_UI) +#if ENABLED(LULZBOT_TOUCH_UI) && !defined(TOUCH_UI_LULZBOT_BIO) #include "screens.h" @@ -51,79 +51,79 @@ void TuneMenu::onRedraw(draw_mode_t what) { cmd.colors(normal_btn) .font(font_medium) #ifdef TOUCH_UI_PORTRAIT - .tag(2).enabled(1) .button( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(TEMPERATURE)) - .tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(CHANGE_FILAMENT)) + .tag(2).enabled(1) .button( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_TEMPERATURE)) + .tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(MSG_FILAMENTCHANGE)) #if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR) .enabled(1) #else .enabled(0) #endif - .tag(9).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(FILAMENT)) + .tag(9).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_FILAMENT)) #if ENABLED(BABYSTEPPING) - .tag(4).enabled(1) .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(NUDGE_NOZZLE)) + .tag(4).enabled(1) .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_NUDGE_NOZZLE)) #else #if HAS_BED_PROBE .enabled(1) #else .enabled(0) #endif - .tag(4) .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(ZPROBE_ZOFFSET)) + .tag(4) .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_ZPROBE_ZOFFSET)) #endif - .tag(5).enabled(1) .button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(PRINT_SPEED)) + .tag(5).enabled(1) .button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_PRINT_SPEED)) .tag(isPrintingFromMediaPaused() ? 7 : 6) #if ENABLED(SDSUPPORT) .enabled(isPrintingFromMedia()) #else .enabled(0) #endif - .button( BTN_POS(1,6), BTN_SIZE(2,1), isPrintingFromMediaPaused() ? GET_TEXT_F(RESUME_PRINT) : GET_TEXT_F(PAUSE_PRINT)) + .button( BTN_POS(1,6), BTN_SIZE(2,1), isPrintingFromMediaPaused() ? GET_TEXT_F(MSG_RESUME_PRINT) : GET_TEXT_F(MSG_PAUSE_PRINT)) #if ENABLED(SDSUPPORT) .enabled(isPrintingFromMedia()) #else .enabled(0) #endif - .tag(8) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(STOP_PRINT)) + .tag(8) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_STOP_PRINT)) .tag(1).colors(action_btn) - .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(BACK)); + .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); #else // TOUCH_UI_PORTRAIT - .tag(2).enabled(1) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(TEMPERATURE)) - .tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(CHANGE_FILAMENT)) + .tag(2).enabled(1) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_TEMPERATURE)) + .tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_FILAMENTCHANGE)) #if ENABLED(BABYSTEPPING) .enabled(1) #else .enabled(0) #endif #if ENABLED(BABYSTEPPING) - .tag(4) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(NUDGE_NOZZLE)) + .tag(4) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_NUDGE_NOZZLE)) #else #if HAS_BED_PROBE .enabled(1) #else .enabled(0) #endif - .tag(4) .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(ZPROBE_ZOFFSET)) + .tag(4) .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_ZPROBE_ZOFFSET)) #endif - .tag(5).enabled(1) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(PRINT_SPEED)) + .tag(5).enabled(1) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_PRINT_SPEED)) .tag(isPrintingFromMediaPaused() ? 7 : 6) #if ENABLED(SDSUPPORT) .enabled(isPrintingFromMedia()) #else .enabled(0) #endif - .button( BTN_POS(1,3), BTN_SIZE(1,1), isPrintingFromMediaPaused() ? GET_TEXT_F(RESUME_PRINT) : GET_TEXT_F(PAUSE_PRINT)) + .button( BTN_POS(1,3), BTN_SIZE(1,1), isPrintingFromMediaPaused() ? GET_TEXT_F(MSG_RESUME_PRINT) : GET_TEXT_F(MSG_PAUSE_PRINT)) #if ENABLED(SDSUPPORT) .enabled(isPrintingFromMedia()) #else .enabled(0) #endif - .tag(8). button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(STOP_PRINT)) + .tag(8). button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_STOP_PRINT)) #if ENABLED(LIN_ADVANCE) || ENABLED(FILAMENT_RUNOUT_SENSOR) .enabled(1) #else .enabled(0) #endif - .tag(9).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(FILAMENT)) - .tag(1).colors(action_btn) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(BACK)); + .tag(9).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_FILAMENT)) + .tag(1).colors(action_btn) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACK)); #endif } #undef GRID_COLS diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/widget_demo_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/widget_demo_screen.cpp index a3244bfe85..b0635bac07 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/widget_demo_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/widget_demo_screen.cpp @@ -22,7 +22,7 @@ #include "../config.h" -#if BOTH(LULZBOT_TOUCH_UI, DEVELOPER_SCREENS) +#if BOTH(LULZBOT_TOUCH_UI, TOUCH_UI_DEVELOPER_MENU) #include "screens.h" @@ -155,4 +155,4 @@ void WidgetsScreen::onIdle() { BaseScreen::onIdle(); } -#endif // LULZBOT_TOUCH_UI && DEVELOPER_SCREENS +#endif // LULZBOT_TOUCH_UI && TOUCH_UI_DEVELOPER_MENU diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/z_offset_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/z_offset_screen.cpp index acdee1a656..08f2dad8f4 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/z_offset_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/z_offset_screen.cpp @@ -32,10 +32,10 @@ using namespace Theme; void ZOffsetScreen::onRedraw(draw_mode_t what) { widgets_t w(what); - w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(GET_TEXT_F(UNITS_MM)); + w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(GET_TEXT_F(MSG_UNITS_MM)); - w.heading( GET_TEXT_F(ZPROBE_ZOFFSET)); - w.color(z_axis).adjuster(4, GET_TEXT_F(ZPROBE_ZOFFSET), getZOffset_mm()); + w.heading( GET_TEXT_F(MSG_ZPROBE_ZOFFSET)); + w.color(z_axis).adjuster(4, GET_TEXT_F(MSG_ZPROBE_ZOFFSET), getZOffset_mm()); w.increments(); } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/bootscreen_logo_landscape.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/bootscreen_logo_landscape.h deleted file mode 100644 index 8593c14e8b..0000000000 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/bootscreen_logo_landscape.h +++ /dev/null @@ -1,43 +0,0 @@ - -/**************************************************************************** - * This program is free software: you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation, either version 3 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * To view a copy of the GNU General Public License, go to the following * - * location: . * - ****************************************************************************/ - -/** - * This file was auto-generated using "svg2cpp.pl" - * - * The encoding consists of x,y pairs with the min and max scaled to - * 0x0000 and 0xFFFE. A single 0xFFFF in the data stream indicates the - * start of a new closed path. - */ - -#pragma once - -constexpr float x_min = 0.000000; - -constexpr float x_max = 480.000000; - -constexpr float y_min = 0.000000; - -constexpr float y_max = 272.000000; - -const PROGMEM uint16_t logo_green[] = {0x7E30, 0x2358, 0x4C02, 0xBCAA, 0xB05C, 0xBCAA}; - -const PROGMEM uint16_t logo_mark[] = {0xB1F2, 0xD5EE, 0xB146, 0xD62A, 0xB0B5, 0xD6D9, 0xB052, 0xD7DC, 0xB030, 0xD90B, 0xB052, 0xDA38, 0xB0B5, 0xDB3A, 0xB146, 0xDBE9, 0xB1F2, 0xDC22, 0xB29E, 0xDBE9, 0xB330, 0xDB3A, 0xB392, 0xDA3A, 0xB3B4, 0xD90B, 0xB392, 0xD7D9, 0xB330, 0xD6D9, 0xB29E, 0xD62A, 0xFFFF, 0xB1F2, 0xD56F, 0xB2B9, 0xD5B3, 0xB362, 0xD67F, 0xB3D4, 0xD7A9, 0xB3FB, 0xD90B, 0xB3D4, 0xDA68, 0xB362, 0xDB91, 0xB2B9, 0xDC5E, 0xB1F2, 0xDCA2, 0xB12B, 0xDC5E, 0xB082, 0xDB91, 0xB00E, 0xDA68, 0xAFE9, 0xD90B, 0xB00E, 0xD7A9, 0xB082, 0xD67F, 0xB12B, 0xD5B3, 0xFFFF, 0xB1DF, 0xD770, 0xB188, 0xD770, 0xB188, 0xD8C7, 0xB1DF, 0xD8C7, 0xB24A, 0xD8A2, 0xB269, 0xD81D, 0xB24A, 0xD798, 0xFFFF, 0xB1E3, 0xD6F0, 0xB29C, 0xD73A, 0xB2D9, 0xD81A, 0xB2B4, 0xD8CD, 0xB24C, 0xD925, 0xB274, 0xD960, 0xB2AD, 0xD9EB, 0xB30D, 0xDAFE, 0xB294, 0xDAFE, 0xB23A, 0xD9FC, 0xB1F7, 0xD966, 0xB1B6, 0xD944, 0xB188, 0xD944, 0xB188, 0xDAFE, 0xB11C, 0xDAFE, 0xB11C, 0xD6F0}; - -const PROGMEM uint16_t logo_type[] = {0xB05D, 0xC9B7, 0xB042, 0xCA2D, 0xAFFF, 0xCA5F, 0xAD38, 0xCA5F, 0xACF5, 0xCA8B, 0xACD9, 0xCAFE, 0xACD9, 0xDBFC, 0xACC0, 0xDC74, 0xAC7F, 0xDCA5, 0xA9C8, 0xDCA5, 0xA984, 0xDC74, 0xA969, 0xDBFC, 0xA969, 0xCAFE, 0xA950, 0xCA8B, 0xA90F, 0xCA60, 0xA649, 0xCA60, 0xA605, 0xCA2E, 0xA5EA, 0xC9B8, 0xA5EA, 0xC52A, 0xA649, 0xC482, 0xAFFF, 0xC482, 0xB042, 0xC4B3, 0xB05D, 0xC52A, 0xFFFF, 0x99EB, 0xD6D1, 0x9E82, 0xD6D1, 0x9E82, 0xCA60, 0x99EB, 0xCA60, 0xFFFF, 0xA1D0, 0xC7F5, 0xA1EB, 0xC88B, 0xA1F8, 0xC92A, 0xA1F8, 0xD7FD, 0xA1EB, 0xD89C, 0xA1D0, 0xD933, 0xA004, 0xDC5E, 0x9FAC, 0xDC93, 0x9F50, 0xDCA5, 0x991E, 0xDCA5, 0x98C4, 0xDC93, 0x986F, 0xDC5E, 0x96A3, 0xD933, 0x9685, 0xD89C, 0x967B, 0xD7FD, 0x967B, 0xC92A, 0x9685, 0xC88B, 0x96A3, 0xC7F5, 0x986F, 0xC4C9, 0x98C4, 0xC498, 0x991E, 0xC482, 0x9F50, 0xC482, 0x9FAC, 0xC498, 0xA004, 0xC4C9, 0xFFFF, 0x8928, 0xD75F, 0x8E6A, 0xD75F, 0x8E6A, 0xD2AE, 0x8928, 0xD2AE, 0x8928, 0xD75F, 0xFFFF, 0x8928, 0xCE0F, 0x8E6A, 0xCE0F, 0x8E6A, 0xC9C0, 0x8928, 0xC9C0, 0xFFFF, 0x9162, 0xC7F5, 0x917D, 0xC88F, 0x918A, 0xC932, 0x918A, 0xCD06, 0x9178, 0xCDA1, 0x914D, 0xCE2A, 0x9077, 0xD00F, 0x9060, 0xD094, 0x907C, 0xD10F, 0x9149, 0xD2C9, 0x9176, 0xD352, 0x918A, 0xD3EC, 0x918A, 0xD7FD, 0x917D, 0xD89C, 0x9162, 0xD933, 0x8F96, 0xDC5E, 0x8F3E, 0xDC93, 0x8EE2, 0xDCA5, 0x866C, 0xDCA5, 0x860D, 0xDBFC, 0x860D, 0xC52A, 0x8628, 0xC4B3, 0x866C, 0xC482, 0x8EE2, 0xC482, 0x8F3E, 0xC498, 0x8F96, 0xC4C9, 0xFFFF, 0x80FE, 0xC983, 0x80E9, 0xCA19, 0x80BD, 0xCA9D, 0x7A63, 0xD73B, 0x809F, 0xD73B, 0x80E2, 0xD76C, 0x80FE, 0xD7E3, 0x80FE, 0xDBFC, 0x80E2, 0xDC74, 0x809F, 0xDCA5, 0x76E9, 0xDCA5, 0x768A, 0xDBFC, 0x768A, 0xD7AD, 0x769B, 0xD713, 0x76C6, 0xD68B, 0x7D42, 0xC9EC, 0x7707, 0xC9EC, 0x76C4, 0xC9BB, 0x76A8, 0xC945, 0x76A8, 0xC52A, 0x76C4, 0xC4B3, 0x7707, 0xC482, 0x809F, 0xC482, 0x80E2, 0xC4B3, 0x80FE, 0xC52A, 0xFFFF, 0x725C, 0xD6C8, 0x729D, 0xD6F9, 0x72B6, 0xD770, 0x72B6, 0xDBFC, 0x729D, 0xDC74, 0x725C, 0xDCA5, 0x69EB, 0xDCA5, 0x698C, 0xDBFC, 0x698C, 0xC52A, 0x69EB, 0xC482, 0x6C9D, 0xC482, 0x6CFD, 0xC52A, 0x6CFD, 0xD62A, 0x6D18, 0xD69C, 0x6D5B, 0xD6C8, 0xFFFF, 0x6466, 0xC4B3, 0x6482, 0xC52A, 0x6482, 0xD818, 0x647D, 0xD818, 0x6473, 0xD8AE, 0x645A, 0xD933, 0x628E, 0xDC5E, 0x6236, 0xDC93, 0x61D9, 0xDCA5, 0x5BA8, 0xDCA5, 0x5B4E, 0xDC93, 0x5AF9, 0xDC5E, 0x592D, 0xD933, 0x590F, 0xD89C, 0x5905, 0xD7FD, 0x5905, 0xC52A, 0x5921, 0xC4B3, 0x5964, 0xC482, 0x5C16, 0xC482, 0x5C5A, 0xC4B3, 0x5C76, 0xC52A, 0x5C76, 0xD62A, 0x5C91, 0xD6A0, 0x5CD4, 0xD6D1, 0x60B3, 0xD6D1, 0x60F4, 0xD6A0, 0x610D, 0xD62A, 0x610D, 0xC52A, 0x6128, 0xC4B3, 0x616C, 0xC482, 0x6423, 0xC482, 0xFFFF, 0x54D2, 0xD6C8, 0x5513, 0xD6F9, 0x552C, 0xD770, 0x552C, 0xDBFD, 0x5513, 0xDC74, 0x54D2, 0xDCA5, 0x4C62, 0xDCA5, 0x4C02, 0xDBFD, 0x4C02, 0xC52A, 0x4C62, 0xC482, 0x4F14, 0xC482, 0x4F73, 0xC52A, 0x4F73, 0xD62A, 0x4F8E, 0xD69C, 0x4FD2, 0xD6C8}; - -const PROGMEM uint16_t logo_black[] = {0x7E30, 0x37DF, 0x842F, 0x4A34, 0x7830, 0x4A34, 0xFFFF, 0x7E30, 0x336E, 0x7602, 0x4C6C, 0x865E, 0x4C6C, 0x7E30, 0x336E, 0xFFFF, 0x5C26, 0xA020, 0x6225, 0xB275, 0x5626, 0xB275, 0xFFFF, 0x5C26, 0x9BAF, 0x53F8, 0xB4AE, 0x6453, 0xB4AE, 0xFFFF, 0xA02A, 0xA020, 0xA629, 0xB275, 0x9A2A, 0xB275, 0xFFFF, 0xA02A, 0x9BAF, 0x97FC, 0xB4AE, 0xA857, 0xB4AE, 0xFFFF, 0x7E2E, 0x5CEA, 0x7DB3, 0x5D3D, 0x7D3E, 0x5EF3, 0x7C7D, 0x613A, 0x7B56, 0x6244, 0x7A14, 0x61C8, 0x7903, 0x5FEC, 0x7850, 0x5E78, 0x77CE, 0x5E60, 0x7764, 0x5EE8, 0x7734, 0x60C6, 0x76D0, 0x6353, 0x75DA, 0x64DA, 0x7490, 0x64F7, 0x733F, 0x639E, 0x7258, 0x6281, 0x71D6, 0x62A5, 0x7184, 0x6359, 0x71A0, 0x6545, 0x71A3, 0x67F2, 0x70EF, 0x69DB, 0x6FB4, 0x6A8D, 0x6E36, 0x69CC, 0x6D27, 0x6913, 0x6CAF, 0x6970, 0x6C7A, 0x6A43, 0x6CE3, 0x6C21, 0x6D50, 0x6EC4, 0x6CEB, 0x70EF, 0x6BD5, 0x722C, 0x6A51, 0x7225, 0x693A, 0x71F5, 0x68D4, 0x7286, 0x68C0, 0x736A, 0x6961, 0x7502, 0x6A24, 0x7756, 0x6A13, 0x799D, 0x6936, 0x7B4C, 0x67C3, 0x7BFC, 0x66B4, 0x7C51, 0x6667, 0x7D0B, 0x6674, 0x7DF1, 0x6747, 0x7F2D, 0x6855, 0x810F, 0x689A, 0x8349, 0x6803, 0x8550, 0x66B9, 0x86A5, 0x65C0, 0x8773, 0x6592, 0x884B, 0x65C0, 0x8922, 0x66B9, 0x89F3, 0x6803, 0x8B47, 0x689A, 0x8D4F, 0x6854, 0x8F89, 0x6745, 0x916A, 0x6673, 0x92A5, 0x6665, 0x938B, 0x66B2, 0x9446, 0x67C1, 0x949C, 0x6933, 0x954B, 0x6A11, 0x96FC, 0x6A21, 0x9943, 0x695E, 0x9B96, 0x68BC, 0x9D2E, 0x68D0, 0x9E13, 0x6936, 0x9EA3, 0x6A4E, 0x9E74, 0x6BD1, 0x9E6D, 0x6CE7, 0x9FAA, 0x6D4C, 0xA1D6, 0x6CDE, 0xA479, 0x6C75, 0xA657, 0x6CAA, 0xA72A, 0x6D21, 0xA788, 0x6E31, 0xA6CF, 0x6FAF, 0xA60E, 0x70EA, 0xA6C1, 0x719D, 0xA8AC, 0x7199, 0xAB57, 0x717D, 0xAD44, 0x71D0, 0xADF8, 0x7251, 0xAE1C, 0x7339, 0xACFF, 0x748A, 0xABA7, 0x75D4, 0xABC5, 0x76C9, 0xAD4D, 0x772D, 0xAFDA, 0x775D, 0xB1B9, 0x77C7, 0xB240, 0x7848, 0xB228, 0x78FC, 0xB0B5, 0x7A0D, 0xAED8, 0x7B50, 0xAE5F, 0x7C76, 0xAF69, 0x7D37, 0xB1B0, 0x7DAC, 0xB366, 0x7E26, 0xB3BA, 0x7EA0, 0xB367, 0x7F16, 0xB1B0, 0x7FD7, 0xAF69, 0x80FE, 0xAE60, 0x8240, 0xAEDB, 0x8351, 0xB0B8, 0x8404, 0xB22B, 0x8486, 0xB244, 0x84F0, 0xB1BD, 0x8521, 0xAFDE, 0x8584, 0xAD51, 0x867A, 0xABC9, 0x87C4, 0xABAD, 0x8915, 0xAD05, 0x89FD, 0xAE22, 0x8A7D, 0xADFF, 0x8AD0, 0xAD4C, 0x8AB5, 0xAB5E, 0x8AB1, 0xA8B2, 0x8B65, 0xA6C8, 0x8CA0, 0xA616, 0x8E1E, 0xA6D9, 0x8F2D, 0xA792, 0x8FA5, 0xA733, 0x8FDA, 0xA661, 0x8F71, 0xA481, 0x8F04, 0xA1DF, 0x8F69, 0x9FB4, 0x907F, 0x9E78, 0x9203, 0x9E7E, 0x931A, 0x9EB0, 0x9380, 0x9E1E, 0x9394, 0x9D3A, 0x92F3, 0x9BA1, 0x9230, 0x994E, 0x9241, 0x9707, 0x931F, 0x9557, 0x9491, 0x94A7, 0x95A0, 0x9452, 0x95ED, 0x9398, 0x95DF, 0x92B3, 0x950D, 0x9176, 0x93FF, 0x8F94, 0x93BA, 0x8D5A, 0x9451, 0x8B53, 0x959B, 0x89FF, 0x9693, 0x8930, 0x96C3, 0x8859, 0x9693, 0x8781, 0x959B, 0x86B2, 0x9451, 0x855C, 0x93BA, 0x8355, 0x9400, 0x811B, 0x950F, 0x7F3A, 0x95E1, 0x7DFF, 0x95EF, 0x7D19, 0x95A2, 0x7C5E, 0x9493, 0x7C09, 0x9321, 0x7B58, 0x9243, 0x79A7, 0x9233, 0x7760, 0x92F6, 0x750D, 0x9397, 0x7375, 0x9383, 0x7291, 0x931E, 0x7200, 0x9207, 0x7230, 0x9083, 0x7236, 0x8F6D, 0x70F9, 0x8F08, 0x6ECE, 0x8F76, 0x6C2C, 0x8FDF, 0x6A4D, 0x8FAA, 0x697A, 0x8F33, 0x691C, 0x8E23, 0x69D5, 0x8CA5, 0x6A96, 0x8B6A, 0x69E3, 0x8AB7, 0x67F9, 0x8ABB, 0x654C, 0x8AD6, 0x635F, 0x8A84, 0x62AB, 0x8A03, 0x6287, 0x891C, 0x63A5, 0x87CA, 0x64FC, 0x8680, 0x64DF, 0x858B, 0x6358, 0x8527, 0x60CA, 0x84F7, 0x5EEB, 0x848E, 0x5E62, 0x840B, 0x5E7B, 0x8358, 0x5FEE, 0x8247, 0x61CB, 0x8104, 0x6246, 0x7FDE, 0x613B, 0x7F1E, 0x5EF4, 0x7EA8, 0x5D3E, 0x7E2E, 0x5CEA, 0x7E2E, 0x5CEA, 0xFFFF, 0x7E2F, 0x627C, 0x7F09, 0x631B, 0x7F64, 0x649C, 0x7F09, 0x661D, 0x7E2F, 0x66BC, 0x7D55, 0x661D, 0x7CFB, 0x649C, 0x7D55, 0x631B, 0x7E2F, 0x627C, 0x7E2F, 0x627C, 0xFFFF, 0x7E2A, 0x689C, 0x81B4, 0x6938, 0x850D, 0x6B02, 0x8823, 0x6DEA, 0x8AE0, 0x71E3, 0x8D2D, 0x76DC, 0x8ED1, 0x7C60, 0x8FCE, 0x8242, 0x9022, 0x8852, 0x8FCD, 0x8E62, 0x8ED1, 0x9443, 0x8D2C, 0x99C7, 0x8ADF, 0x9EC0, 0x8822, 0xA2BA, 0x850D, 0xA5A2, 0x81B3, 0xA76C, 0x7E2A, 0xA807, 0x7AA0, 0xA76C, 0x7747, 0xA5A2, 0x7431, 0xA2BA, 0x7174, 0x9EC0, 0x6F34, 0x99EB, 0x6D8E, 0x947A, 0x6C8B, 0x8E91, 0x6C32, 0x8852, 0x6C8A, 0x8214, 0x6D8D, 0x7C2B, 0x6F33, 0x76BA, 0x7174, 0x71E4, 0x7431, 0x6DEA, 0x7747, 0x6B02, 0x7AA0, 0x6938, 0x7E2A, 0x689C, 0x7E2A, 0x689C, 0xFFFF, 0x7E2A, 0x69AA, 0x7AD3, 0x6A3B, 0x779F, 0x6BE9, 0x748F, 0x6EC1, 0x71E0, 0x72A3, 0x6FA7, 0x7771, 0x6E11, 0x7CC6, 0x6D1D, 0x8276, 0x6CCB, 0x8852, 0x6D1D, 0x8E2F, 0x6E11, 0x93DE, 0x6FA7, 0x9933, 0x71E0, 0x9E02, 0x748F, 0xA1E3, 0x779F, 0xA4BC, 0x7AD3, 0xA669, 0x7E2A, 0xA6F9, 0x7E2A, 0xA6F9, 0x8180, 0xA669, 0x84B5, 0xA4BC, 0x87C4, 0xA1E3, 0x8A73, 0x9E01, 0x8CA7, 0x9944, 0x8E44, 0x93DE, 0x8F37, 0x8E36, 0x8F89, 0x8852, 0x8F37, 0x826E, 0x8E44, 0x7CC6, 0x8CA7, 0x7760, 0x8A74, 0x72A3, 0x87C4, 0x6EC1, 0x84B5, 0x6BE9, 0x8180, 0x6A3B, 0x7E2A, 0x69AA, 0x7E2A, 0x69AA, 0xFFFF, 0x7E71, 0x6BAF, 0x7E6A, 0x6F39, 0x7DE7, 0x6F3A, 0x7DDE, 0x6BB1, 0x7E71, 0x6BAF, 0x7E71, 0x6BAF, 0xFFFF, 0x802D, 0x6BE7, 0x80C0, 0x6C0B, 0x806E, 0x6F89, 0x7FEE, 0x6F69, 0xFFFF, 0x7C22, 0x6BE9, 0x7C62, 0x6F6C, 0x7BE2, 0x6F8C, 0x7B90, 0x6C0E, 0x7C22, 0x6BE9, 0x7C22, 0x6BE9, 0xFFFF, 0x8272, 0x6CB0, 0x8300, 0x6CFA, 0x8268, 0x705B, 0x81EC, 0x701B, 0xFFFF, 0x79DD, 0x6CB4, 0x7A65, 0x701E, 0x79E8, 0x705E, 0x794F, 0x6CFE, 0x79DD, 0x6CB4, 0x79DD, 0x6CB4, 0xFFFF, 0x6FDC, 0x6CEB, 0x70B6, 0x6D8C, 0x7110, 0x6F0D, 0x70B6, 0x708E, 0x6FDC, 0x712D, 0x6F02, 0x708E, 0x6EA8, 0x6F0C, 0x6F02, 0x6D8A, 0x6FDC, 0x6CEB, 0x6FDC, 0x6CEB, 0xFFFF, 0x8C82, 0x6CEF, 0x8D5C, 0x6D8E, 0x8DB6, 0x6F0F, 0x8D5C, 0x7091, 0x8C82, 0x7131, 0x8BA8, 0x7091, 0x8B4E, 0x6F10, 0x8BA8, 0x6D90, 0x8C82, 0x6CEF, 0x8C82, 0x6CEF, 0xFFFF, 0x84A1, 0x6E0A, 0x8528, 0x6E76, 0x844B, 0x71A8, 0x83D5, 0x7149, 0x84A1, 0x6E0A, 0xFFFF, 0x77AF, 0x6E0F, 0x787A, 0x714F, 0x7804, 0x71AD, 0x7727, 0x6E7B, 0x77AF, 0x6E0F, 0x77AF, 0x6E0F, 0xFFFF, 0x86AF, 0x6FEE, 0x872B, 0x707A, 0x860F, 0x736D, 0x85A1, 0x72F1, 0x86AF, 0x6FEE, 0xFFFF, 0x75A0, 0x6FF3, 0x76AE, 0x72F6, 0x7640, 0x7372, 0x7523, 0x7081, 0x75A0, 0x6FF3, 0x75A0, 0x6FF3, 0xFFFF, 0x7E2A, 0x7132, 0x8330, 0x72F1, 0x876F, 0x77F6, 0x8A47, 0x7F75, 0x8B45, 0x8852, 0x8A47, 0x912F, 0x876F, 0x98AF, 0x8330, 0x9DB3, 0x7E2A, 0x9F72, 0x7924, 0x9DB3, 0x74E5, 0x98AF, 0x720D, 0x912F, 0x710F, 0x8852, 0x720C, 0x7F75, 0x74E5, 0x77F7, 0x7924, 0x72F1, 0x7E2A, 0x7132, 0x7E2A, 0x7132, 0xFFFF, 0x7E2A, 0x7240, 0x795F, 0x73EB, 0x7551, 0x78B5, 0x729A, 0x7FDD, 0x71A8, 0x8852, 0x729A, 0x90C8, 0x7551, 0x97EF, 0x795F, 0x9CB9, 0x7E2A, 0x9E64, 0x82F5, 0x9CBA, 0x8703, 0x97EF, 0x89BA, 0x90C8, 0x8AAC, 0x8852, 0x89BA, 0x7FDD, 0x8703, 0x78B5, 0x82F5, 0x73EB, 0x7E2A, 0x7240, 0x7E2A, 0x7240, 0xFFFF, 0x8892, 0x7253, 0x88FF, 0x72FC, 0x87A9, 0x759E, 0x874B, 0x750F, 0x87EB, 0x73AD, 0xFFFF, 0x73BF, 0x7258, 0x7509, 0x750F, 0x74A6, 0x75A5, 0x734F, 0x7305, 0x73BF, 0x7258, 0x73BF, 0x7258, 0xFFFF, 0x8A3B, 0x7525, 0x8A9C, 0x75EC, 0x8912, 0x7831, 0x88BE, 0x7784, 0xFFFF, 0x7215, 0x752F, 0x7393, 0x778C, 0x7340, 0x7836, 0x7337, 0x7847, 0x72A7, 0x775B, 0x71B4, 0x75F5, 0x71B6, 0x75F0, 0x7215, 0x752F, 0x7215, 0x752F, 0xFFFF, 0x8BA7, 0x785E, 0x8BF8, 0x793B, 0x8A43, 0x7B17, 0x89FC, 0x7A56, 0xFFFF, 0x70AA, 0x7867, 0x7254, 0x7A5F, 0x720E, 0x7B20, 0x7059, 0x7943, 0x70AA, 0x7867, 0x70AA, 0x7867, 0xFFFF, 0x8CCD, 0x7BEB, 0x8D0A, 0x7CDA, 0x8B34, 0x7E44, 0x8AFE, 0x7D72, 0x8CCD, 0x7BEB, 0xFFFF, 0x6F84, 0x7BF4, 0x7154, 0x7D7B, 0x711D, 0x7E4C, 0x6F47, 0x7CE3, 0x6F84, 0x7BF4, 0x6F84, 0x7BF4, 0xFFFF, 0x8DA6, 0x7FB9, 0x8DD0, 0x80B5, 0x8BE0, 0x81A3, 0x8BBC, 0x80C8, 0xFFFF, 0x6EAB, 0x7FC2, 0x7096, 0x80D0, 0x7071, 0x81AB, 0x6E82, 0x80BD, 0x6EAB, 0x7FC2, 0x6EAB, 0x7FC2, 0xFFFF, 0x8E2E, 0x83B2, 0x8E44, 0x84B6, 0x8C46, 0x8528, 0x8C33, 0x8445, 0xFFFF, 0x6E24, 0x83BC, 0x701F, 0x844B, 0x700D, 0x852D, 0x6E0F, 0x84BF, 0x6E24, 0x83BC, 0x6E24, 0x83BC, 0xFFFF, 0x69ED, 0x862F, 0x6AC7, 0x86CE, 0x6B22, 0x884F, 0x6AC7, 0x89D0, 0x69ED, 0x8A6F, 0x69EC, 0x8A6F, 0x6913, 0x89CF, 0x68B9, 0x884E, 0x6913, 0x86CE, 0x69ED, 0x862F, 0x69ED, 0x862F, 0xFFFF, 0x926F, 0x8634, 0x9349, 0x86D2, 0x93A3, 0x8852, 0x93A3, 0x8855, 0x9349, 0x89D5, 0x926F, 0x8A75, 0x9195, 0x89D6, 0x913A, 0x8855, 0x9194, 0x86D4, 0x926F, 0x8634, 0x926F, 0x8634, 0xFFFF, 0x8E64, 0x87C3, 0x8E64, 0x88CA, 0x8C63, 0x88BB, 0x8C63, 0x87D7, 0xFFFF, 0x6DF1, 0x87CB, 0x6FF2, 0x87DC, 0x6FF2, 0x88C2, 0x6DF1, 0x88D2, 0x6DF1, 0x87CB, 0x6DF1, 0x87CB, 0xFFFF, 0x8C48, 0x8B69, 0x8E45, 0x8BD8, 0x8E31, 0x8CD9, 0x8C36, 0x8C4D, 0x8C48, 0x8B69, 0x8C48, 0x8B69, 0xFFFF, 0x700D, 0x8B6F, 0x7020, 0x8C52, 0x6E25, 0x8CE3, 0x6E10, 0x8BDF, 0xFFFF, 0x8BE4, 0x8EEC, 0x8DD4, 0x8FDA, 0x8DAA, 0x90D4, 0x8BC1, 0x8FC9, 0x8BE4, 0x8EEC, 0x8BE4, 0x8EEC, 0xFFFF, 0x7072, 0x8EF4, 0x7096, 0x8FCF, 0x6EAC, 0x90DD, 0x6E82, 0x8FE1, 0xFFFF, 0x8B39, 0x924D, 0x8D10, 0x93B4, 0x8CD3, 0x94A3, 0x8B04, 0x931C, 0x8B39, 0x924D, 0x8B39, 0x924D, 0xFFFF, 0x711E, 0x9255, 0x7154, 0x9326, 0x6F84, 0x94AB, 0x6F47, 0x93BC, 0xFFFF, 0x8A49, 0x9578, 0x8BFE, 0x9754, 0x8BAE, 0x9830, 0x8A03, 0x9639, 0x8A49, 0x9578, 0x8A49, 0x9578, 0xFFFF, 0x720E, 0x9582, 0x7254, 0x9643, 0x70A9, 0x983A, 0x7059, 0x975C, 0x720E, 0x9582, 0xFFFF, 0x733E, 0x986A, 0x7393, 0x9916, 0x7215, 0x9B75, 0x71B4, 0x9AAF, 0xFFFF, 0x8914, 0x986E, 0x8AA6, 0x9AA3, 0x8AA2, 0x9AAB, 0x8A44, 0x9B6B, 0x88C5, 0x990F, 0x8914, 0x986E, 0x8914, 0x986E, 0xFFFF, 0x87B2, 0x9AF6, 0x890A, 0x9D97, 0x889B, 0x9E43, 0x8750, 0x9B8E, 0x87B2, 0x9AF6, 0x87B2, 0x9AF6, 0xFFFF, 0x74A6, 0x9AFD, 0x7509, 0x9B94, 0x7514, 0x9BA4, 0x73C9, 0x9E57, 0x73C2, 0x9E4F, 0x7350, 0x9D9F, 0xFFFF, 0x8619, 0x9D2B, 0x8737, 0xA01B, 0x86B9, 0xA0A9, 0x85AB, 0x9DA7, 0x8619, 0x9D2B, 0x8619, 0x9D2B, 0xFFFF, 0x764A, 0x9D3C, 0x76B8, 0x9DB7, 0x75AB, 0xA0BC, 0x752F, 0xA02F, 0xFFFF, 0x8456, 0x9EF1, 0x8533, 0xA222, 0x84AC, 0xA28F, 0x83DF, 0x9F50, 0x8456, 0x9EF1, 0x8456, 0x9EF1, 0xFFFF, 0x780E, 0x9F00, 0x7885, 0x9F5E, 0x77B9, 0xA29E, 0x7732, 0xA233, 0xFFFF, 0x6FD5, 0x9F77, 0x70AF, 0xA018, 0x70B4, 0xA021, 0x70B9, 0xA02A, 0x7114, 0xA1AA, 0x70BA, 0xA32C, 0x6FDF, 0xA3CB, 0x6F05, 0xA32D, 0x6F02, 0xA326, 0x6EFA, 0xA319, 0x6EFB, 0xA319, 0x6EA0, 0xA197, 0x6EFB, 0xA016, 0x6FD5, 0x9F77, 0x6FD5, 0x9F77, 0xFFFF, 0x8C85, 0x9F7B, 0x8D5F, 0xA01B, 0x8DBA, 0xA19C, 0x8D60, 0xA31D, 0x8C85, 0xA3BC, 0x8BAC, 0xA31D, 0x8B51, 0xA19C, 0x8BAB, 0xA01B, 0x8C85, 0x9F7B, 0x8C85, 0x9F7B, 0xFFFF, 0x8272, 0xA041, 0x830C, 0xA3A2, 0x827E, 0xA3EB, 0x81F5, 0xA082, 0x8272, 0xA041, 0x8272, 0xA041, 0xFFFF, 0x79F2, 0xA04C, 0x7A6F, 0xA08B, 0x79E9, 0xA3F6, 0x795A, 0xA3AE, 0xFFFF, 0x8079, 0xA115, 0x80CB, 0xA493, 0x8039, 0xA4B8, 0x7FF7, 0xA136, 0x8079, 0xA115, 0x8079, 0xA115, 0xFFFF, 0x7BEC, 0xA11B, 0x7C6C, 0xA13A, 0x7C2E, 0xA4BE, 0x7B9C, 0xA499, 0x7BEC, 0xA11B, 0xFFFF, 0x7E73, 0xA169, 0x7E7E, 0xA4F2, 0x7DEA, 0xA4F3, 0x7DF1, 0xA169, 0x7E73, 0xA169, 0x7E73, 0xA169, 0xFFFF, 0x7E34, 0xA9F6, 0x7F0E, 0xAA93, 0x7F69, 0xAC14, 0x7F0F, 0xAD96, 0x7E35, 0xAE37, 0x7D5A, 0xAD98, 0x7CFF, 0xAC16, 0x7D59, 0xAA95, 0x7E34, 0xA9F6, 0x7E34, 0xA9F6, 0xFFFF, 0x7E30, 0x2358, 0x4C02, 0xBCAA, 0xB05C, 0xBCAA, 0xFFFF, 0x7E30, 0x2C0E, 0x8A08, 0x503F, 0x7258, 0x503F, 0xFFFF, 0x70E4, 0x54AE, 0x8B7C, 0x54AE, 0x9EBD, 0x8F88, 0x916B, 0xB83A, 0x6ACF, 0xB83A, 0x5D90, 0x8FBE, 0x70E4, 0x54AE, 0xFFFF, 0xA02A, 0x93E3, 0xAC0F, 0xB83A, 0x9446, 0xB83A, 0xFFFF, 0x5C23, 0x941A, 0x67F5, 0xB83A, 0x5050, 0xB83A, 0x5C23, 0x941A}; - -const PROGMEM uint16_t logo_white[] = {0x7E72, 0x6BAF, 0x7E6A, 0x6F39, 0x7DE7, 0x6F3A, 0x7DDE, 0x6BB1, 0x7E72, 0x6BAF, 0xFFFF, 0x802D, 0x6BE7, 0x80C0, 0x6C0B, 0x806E, 0x6F8A, 0x7FEE, 0x6F69, 0xFFFF, 0x7C22, 0x6BE9, 0x7C62, 0x6F6C, 0x7BE2, 0x6F8C, 0x7B90, 0x6C0E, 0x7C22, 0x6BE9, 0x7C22, 0x6BE9, 0xFFFF, 0x8272, 0x6CB0, 0x8300, 0x6CFA, 0x8268, 0x705B, 0x81EC, 0x701B, 0xFFFF, 0x79DD, 0x6CB4, 0x7A65, 0x701E, 0x79E8, 0x705E, 0x794F, 0x6CFE, 0x79DD, 0x6CB4, 0x79DD, 0x6CB4, 0xFFFF, 0x84A1, 0x6E0A, 0x8528, 0x6E76, 0x844B, 0x71A8, 0x83D6, 0x7149, 0xFFFF, 0x77AF, 0x6E0F, 0x787A, 0x714F, 0x7804, 0x71AD, 0x7727, 0x6E7B, 0x77AF, 0x6E0F, 0x77AF, 0x6E0F, 0xFFFF, 0x86AF, 0x6FEE, 0x872C, 0x707A, 0x860F, 0x736D, 0x85A1, 0x72F1, 0xFFFF, 0x75A0, 0x6FF3, 0x76AE, 0x72F6, 0x7641, 0x7372, 0x7523, 0x7081, 0x75A0, 0x6FF3, 0x75A0, 0x6FF3, 0xFFFF, 0x8892, 0x7253, 0x88FF, 0x72FC, 0x87A9, 0x759E, 0x874B, 0x750F, 0xFFFF, 0x73BF, 0x7258, 0x7509, 0x750F, 0x74A6, 0x75A5, 0x734F, 0x7305, 0x73BF, 0x7258, 0x73BF, 0x7258, 0xFFFF, 0x8A3B, 0x7525, 0x8A9C, 0x75EC, 0x8912, 0x7831, 0x88BE, 0x7784, 0xFFFF, 0x7215, 0x752F, 0x7393, 0x778C, 0x7340, 0x7836, 0x71B4, 0x75F5, 0x7215, 0x752F, 0xFFFF, 0x8BA7, 0x785E, 0x8BF8, 0x793B, 0x8A43, 0x7B17, 0x89FC, 0x7A56, 0xFFFF, 0x70AA, 0x7867, 0x7254, 0x7A5F, 0x720E, 0x7B20, 0x7059, 0x7943, 0x70AA, 0x7867, 0x70AA, 0x7867, 0xFFFF, 0x8CCD, 0x7BEB, 0x8D0A, 0x7CDA, 0x8B34, 0x7E44, 0x8AFE, 0x7D72, 0xFFFF, 0x6F84, 0x7BF4, 0x7154, 0x7D7B, 0x711D, 0x7E4C, 0x6F47, 0x7CE3, 0x6F84, 0x7BF4, 0x6F84, 0x7BF4, 0xFFFF, 0x8DA6, 0x7FB9, 0x8DD0, 0x80B5, 0x8BE0, 0x81A3, 0x8BBC, 0x80C8, 0xFFFF, 0x6EAB, 0x7FC3, 0x7096, 0x80D0, 0x7071, 0x81AB, 0x6E82, 0x80BD, 0x6EAB, 0x7FC3, 0x6EAB, 0x7FC3, 0xFFFF, 0x8E2E, 0x83B2, 0x8E44, 0x84B6, 0x8C46, 0x8528, 0x8C33, 0x8445, 0xFFFF, 0x6E24, 0x83BC, 0x701F, 0x844B, 0x700D, 0x852D, 0x6E0F, 0x84BF, 0x6E24, 0x83BC, 0x6E24, 0x83BC, 0xFFFF, 0x8E64, 0x87C3, 0x8E64, 0x88CA, 0x8C63, 0x88BB, 0x8C63, 0x87D7, 0xFFFF, 0x6DF1, 0x87CB, 0x6FF2, 0x87DC, 0x6FF2, 0x88C2, 0x6DF1, 0x88D3, 0x6DF1, 0x87CB, 0xFFFF, 0x8C48, 0x8B69, 0x8E45, 0x8BD8, 0x8E31, 0x8CD9, 0x8C36, 0x8C4D, 0x8C48, 0x8B69, 0x8C48, 0x8B69, 0xFFFF, 0x700D, 0x8B70, 0x7020, 0x8C52, 0x6E25, 0x8CE3, 0x6E10, 0x8BE0, 0xFFFF, 0x8BE4, 0x8EEC, 0x8DD4, 0x8FDA, 0x8DAA, 0x90D4, 0x8BC0, 0x8FC9, 0x8BE4, 0x8EEC, 0xFFFF, 0x7072, 0x8EF4, 0x7096, 0x8FD0, 0x6EAC, 0x90DD, 0x6E82, 0x8FE1, 0xFFFF, 0x8B39, 0x924D, 0x8D10, 0x93B4, 0x8CD3, 0x94A3, 0x8B04, 0x931D, 0x8B39, 0x924D, 0x8B39, 0x924D, 0xFFFF, 0x711E, 0x9255, 0x7154, 0x9326, 0x6F84, 0x94AB, 0x6F47, 0x93BC, 0xFFFF, 0x8A49, 0x9579, 0x8BFE, 0x9754, 0x8BAE, 0x9830, 0x8A03, 0x9639, 0x8A49, 0x9579, 0x8A49, 0x9579, 0xFFFF, 0x720E, 0x9582, 0x7254, 0x9644, 0x70A9, 0x983A, 0x7059, 0x975C, 0xFFFF, 0x733D, 0x986A, 0x7393, 0x9916, 0x7215, 0x9B75, 0x71B4, 0x9AAF, 0xFFFF, 0x8914, 0x986E, 0x8AA6, 0x9AA3, 0x8A44, 0x9B6B, 0x88C5, 0x990F, 0x8914, 0x986E, 0xFFFF, 0x87B2, 0x9AF6, 0x890A, 0x9D97, 0x889B, 0x9E43, 0x8750, 0x9B8E, 0x87B2, 0x9AF6, 0x87B2, 0x9AF6, 0xFFFF, 0x74A6, 0x9AFD, 0x7509, 0x9B94, 0x73C9, 0x9E57, 0x7350, 0x9DA0, 0xFFFF, 0x8619, 0x9D2B, 0x8737, 0xA01B, 0x86B9, 0xA0A9, 0x85AB, 0x9DA7, 0x8619, 0x9D2B, 0x8619, 0x9D2B, 0xFFFF, 0x764A, 0x9D3C, 0x76B8, 0x9DB7, 0x75AB, 0xA0BC, 0x752E, 0xA02F, 0xFFFF, 0x8455, 0x9EF1, 0x8533, 0xA222, 0x84AC, 0xA28F, 0x83DF, 0x9F50, 0x8455, 0x9EF1, 0x8455, 0x9EF1, 0xFFFF, 0x780E, 0x9F00, 0x7885, 0x9F5E, 0x77B9, 0xA29E, 0x7732, 0xA233, 0xFFFF, 0x8272, 0xA041, 0x830C, 0xA3A2, 0x827D, 0xA3EC, 0x81F5, 0xA082, 0x8272, 0xA041, 0x8272, 0xA041, 0xFFFF, 0x79F2, 0xA04D, 0x7A6E, 0xA08C, 0x79E9, 0xA3F6, 0x795A, 0xA3AE, 0xFFFF, 0x8079, 0xA115, 0x80CB, 0xA493, 0x8039, 0xA4B9, 0x7FF7, 0xA136, 0x8079, 0xA115, 0x8079, 0xA115, 0xFFFF, 0x7BEC, 0xA11B, 0x7C6C, 0xA13A, 0x7C2E, 0xA4BE, 0x7B9C, 0xA499, 0xFFFF, 0x7E73, 0xA169, 0x7E7E, 0xA4F2, 0x7DE9, 0xA4F3, 0x7DF1, 0xA169, 0x7E73, 0xA169, 0xFFFF, 0x7F6C, 0x7644, 0x801D, 0x768B, 0x8069, 0x76D5, 0x80AE, 0x7739, 0x8102, 0x785D, 0x80E7, 0x799A, 0x807D, 0x7A8F, 0x7FD8, 0x7B0A, 0x7FC8, 0x7AFB, 0x7FA3, 0x7ABE, 0x7FCB, 0x7A6B, 0x7FE9, 0x7A54, 0x803C, 0x7A0A, 0x8084, 0x7950, 0x8090, 0x787F, 0x8057, 0x77D1, 0x8021, 0x778E, 0x7FE8, 0x775E, 0x7F71, 0x773A, 0x7F02, 0x777C, 0x7ECF, 0x77C4, 0x7EAC, 0x780F, 0x7E89, 0x7880, 0x7E77, 0x78DA, 0x7E6F, 0x79A6, 0x7E7D, 0x79F6, 0x7E9C, 0x7A3A, 0x7F0C, 0x7AD3, 0x8002, 0x7C03, 0x8084, 0x7CC0, 0x80B8, 0x7D14, 0x80F6, 0x7D99, 0x8135, 0x7EE9, 0x812D, 0x8036, 0x8103, 0x8165, 0x80C6, 0x8280, 0x8087, 0x8371, 0x806C, 0x8452, 0x810C, 0x8410, 0x8154, 0x839E, 0x8206, 0x823F, 0x827D, 0x80B4, 0x8297, 0x8003, 0x82CD, 0x7E19, 0x82F5, 0x7CEB, 0x8303, 0x7CA0, 0x8342, 0x7BB3, 0x8375, 0x7B3F, 0x83B2, 0x7ADA, 0x843E, 0x7A4C, 0x84A1, 0x7A11, 0x84DA, 0x79F7, 0x8528, 0x7A0D, 0x8575, 0x7A3B, 0x8597, 0x7A59, 0x861A, 0x7B08, 0x8672, 0x7C1B, 0x8684, 0x7CB2, 0x8686, 0x7D50, 0x8636, 0x7E77, 0x8597, 0x7F10, 0x84E7, 0x7F24, 0x8442, 0x7EA8, 0x843C, 0x7E82, 0x8439, 0x7E27, 0x847D, 0x7E2E, 0x8498, 0x7E44, 0x84F4, 0x7E8C, 0x8582, 0x7E7E, 0x85FA, 0x7E0C, 0x8630, 0x7D40, 0x862E, 0x7CC4, 0x861C, 0x7C48, 0x85D5, 0x7B74, 0x8562, 0x7AE7, 0x851B, 0x7ABD, 0x84E1, 0x7AAF, 0x848E, 0x7AE2, 0x8456, 0x7B13, 0x83F8, 0x7B7B, 0x83CC, 0x7BCD, 0x83A8, 0x7C2E, 0x837D, 0x7CFD, 0x8365, 0x7EF1, 0x8367, 0x8074, 0x8361, 0x810D, 0x8303, 0x8341, 0x8266, 0x8533, 0x81A6, 0x8702, 0x81A4, 0x8710, 0x824F, 0x8671, 0x82F2, 0x8603, 0x83B0, 0x85C4, 0x8493, 0x860B, 0x84F8, 0x8689, 0x853B, 0x8727, 0x8575, 0x87EB, 0x85F2, 0x8982, 0x8655, 0x8ABA, 0x86A4, 0x8B6E, 0x86D5, 0x8BAE, 0x8702, 0x8BCD, 0x8779, 0x8BD7, 0x87BB, 0x8BBA, 0x8806, 0x8B7C, 0x8834, 0x8B3C, 0x8853, 0x8B04, 0x8887, 0x8A44, 0x8881, 0x8962, 0x8869, 0x88EC, 0x884A, 0x888D, 0x87EB, 0x8810, 0x876F, 0x880F, 0x86FC, 0x887C, 0x86BC, 0x892D, 0x86AF, 0x8955, 0x866E, 0x8955, 0x8665, 0x88F9, 0x86C0, 0x8806, 0x8756, 0x8771, 0x8806, 0x876F, 0x8899, 0x8824, 0x88C9, 0x88AB, 0x88E7, 0x8932, 0x88F5, 0x8A64, 0x88B1, 0x8B88, 0x8873, 0x8C00, 0x882B, 0x8C5B, 0x87DD, 0x8C9D, 0x8790, 0x8CC5, 0x86E1, 0x8CCB, 0x86A0, 0x8CA8, 0x8679, 0x8C86, 0x863A, 0x8C3E, 0x85C5, 0x8B6D, 0x853C, 0x8A3D, 0x847D, 0x8882, 0x8456, 0x8835, 0x8420, 0x8808, 0x83DF, 0x8820, 0x831F, 0x88EC, 0x825B, 0x8A2B, 0x8258, 0x8A47, 0x8323, 0x8BA0, 0x8399, 0x8CA6, 0x83F8, 0x8DF6, 0x8405, 0x8F9A, 0x83DE, 0x905F, 0x83A4, 0x9120, 0x833B, 0x929B, 0x82F3, 0x945E, 0x82FC, 0x9529, 0x8319, 0x9587, 0x8336, 0x95C0, 0x841E, 0x968C, 0x844B, 0x9688, 0x8482, 0x966F, 0x84E3, 0x9607, 0x852B, 0x955E, 0x8543, 0x94FA, 0x854B, 0x9497, 0x852F, 0x93EA, 0x84D7, 0x9378, 0x8463, 0x9357, 0x83F5, 0x9378, 0x83AE, 0x9352, 0x83BB, 0x92D5, 0x83EB, 0x92BA, 0x8461, 0x928C, 0x8501, 0x92C4, 0x8587, 0x937A, 0x85B9, 0x949F, 0x85AC, 0x9536, 0x8586, 0x95D3, 0x8538, 0x96A1, 0x84B0, 0x9749, 0x845E, 0x9778, 0x8401, 0x9786, 0x83A7, 0x975E, 0x835F, 0x9730, 0x82CB, 0x96A2, 0x8285, 0x962B, 0x825B, 0x95B6, 0x824F, 0x9579, 0x822A, 0x945A, 0x8233, 0x932B, 0x828E, 0x8FF7, 0x8201, 0x8E1D, 0x81D6, 0x8E1B, 0x80A8, 0x8E1A, 0x7D88, 0x9136, 0x7D81, 0x9352, 0x7E13, 0x9482, 0x7EE8, 0x960C, 0x7F4A, 0x970B, 0x7F69, 0x97B4, 0x7F6C, 0x983B, 0x7F63, 0x9881, 0x7F26, 0x9992, 0x7EEE, 0x9A13, 0x7EA6, 0x9A86, 0x7E66, 0x9ACC, 0x7E14, 0x9B05, 0x7D61, 0x9B0D, 0x7CC3, 0x9A88, 0x7C84, 0x9A22, 0x7C50, 0x99AA, 0x7C25, 0x987B, 0x7C63, 0x9759, 0x7CE5, 0x9694, 0x7D8C, 0x9653, 0x7DB0, 0x966C, 0x7DB1, 0x96DF, 0x7D0E, 0x971E, 0x7CAB, 0x97B5, 0x7C81, 0x9884, 0x7CA2, 0x9950, 0x7CCE, 0x99AC, 0x7D03, 0x99F6, 0x7D77, 0x9A4B, 0x7DF2, 0x9A35, 0x7E2F, 0x9A00, 0x7E59, 0x99C6, 0x7E64, 0x99B4, 0x7E97, 0x9944, 0x7EAE, 0x98F9, 0x7ECA, 0x9840, 0x7EC4, 0x97E8, 0x7EAF, 0x9796, 0x7E5B, 0x96EA, 0x7D73, 0x9597, 0x7C95, 0x9462, 0x7C76, 0x9426, 0x7C3D, 0x9397, 0x7C18, 0x92D4, 0x7C1D, 0x9165, 0x7C9A, 0x8F14, 0x7CE9, 0x8E19, 0x7CDA, 0x8E1F, 0x7A83, 0x8FB1, 0x7A47, 0x8FC2, 0x7960, 0x8FD1, 0x78E6, 0x8FA5, 0x787F, 0x8F77, 0x77CC, 0x8F40, 0x7777, 0x8F3D, 0x772A, 0x8F54, 0x768D, 0x8FBB, 0x7670, 0x8FDD, 0x7609, 0x9086, 0x75EE, 0x90E1, 0x75DF, 0x916F, 0x75DF, 0x91A2, 0x75FF, 0x9292, 0x767C, 0x933F, 0x7721, 0x9375, 0x77A0, 0x92F1, 0x779C, 0x90BF, 0x779F, 0x907F, 0x77A1, 0x9055, 0x77DC, 0x904C, 0x77ED, 0x9087, 0x783B, 0x91C9, 0x7809, 0x9369, 0x77B0, 0x9410, 0x7737, 0x9468, 0x7645, 0x9438, 0x7579, 0x933A, 0x753D, 0x9268, 0x752C, 0x9188, 0x7538, 0x90AB, 0x7557, 0x9012, 0x756A, 0x8FD4, 0x7617, 0x8E93, 0x7664, 0x8E4F, 0x76E5, 0x8DE6, 0x7760, 0x8DAC, 0x77DC, 0x8D9E, 0x78BE, 0x8DC4, 0x795C, 0x8DF1, 0x7988, 0x8DF0, 0x7A69, 0x8DA0, 0x7AB9, 0x8D58, 0x7B46, 0x8C9F, 0x7BB3, 0x8BD0, 0x7BB7, 0x8B31, 0x7AD6, 0x8B59, 0x7983, 0x8B9A, 0x791B, 0x8BAC, 0x7895, 0x8B9D, 0x780B, 0x8B35, 0x77A4, 0x8A6A, 0x7784, 0x89EC, 0x773F, 0x8886, 0x7724, 0x880F, 0x76DB, 0x86FD, 0x7673, 0x8607, 0x75E1, 0x859E, 0x7538, 0x85D5, 0x7502, 0x8614, 0x74DB, 0x8661, 0x74C1, 0x869C, 0x74A2, 0x87BB, 0x74B8, 0x885D, 0x74C3, 0x888C, 0x74DF, 0x88D2, 0x7574, 0x8936, 0x761A, 0x88D3, 0x7672, 0x87D7, 0x767D, 0x87BC, 0x76AE, 0x8795, 0x76CA, 0x87F9, 0x76A5, 0x88B8, 0x7656, 0x895A, 0x7578, 0x89EF, 0x74FD, 0x89D4, 0x748E, 0x895C, 0x7462, 0x88FE, 0x7441, 0x8876, 0x7427, 0x87D9, 0x744C, 0x862A, 0x7494, 0x8576, 0x74D8, 0x8513, 0x74FC, 0x84EE, 0x75E8, 0x848A, 0x76DA, 0x851A, 0x777B, 0x865A, 0x77EA, 0x87BE, 0x7847, 0x8903, 0x7873, 0x8975, 0x78A2, 0x89B1, 0x78D7, 0x89D9, 0x791D, 0x89F0, 0x79C7, 0x89AB, 0x7A2B, 0x8938, 0x7AA0, 0x8868, 0x7A67, 0x83FA, 0x79D6, 0x82A1, 0x795A, 0x80F5, 0x7937, 0x7FF7, 0x793A, 0x7EE4, 0x7950, 0x7E54, 0x7970, 0x7DD1, 0x798F, 0x7D44, 0x79B3, 0x7BEA, 0x79AD, 0x7B69, 0x7992, 0x7B0C, 0x7983, 0x7AE4, 0x7886, 0x79EC, 0x77A1, 0x7ACF, 0x7787, 0x7B52, 0x777B, 0x7BDB, 0x77B1, 0x7C9E, 0x7846, 0x7CE9, 0x78E3, 0x7CA0, 0x7917, 0x7CB1, 0x791B, 0x7D17, 0x78B7, 0x7D82, 0x784C, 0x7DB0, 0x776A, 0x7D66, 0x770C, 0x7CC6, 0x76E4, 0x7BEA, 0x76EB, 0x7B15, 0x7702, 0x7A7F, 0x7710, 0x7A4B, 0x77A2, 0x790A, 0x7891, 0x789F, 0x7973, 0x790B, 0x7A2C, 0x7A0F, 0x7A54, 0x7A76, 0x7A78, 0x7AEE, 0x7A8E, 0x7BF9, 0x7A65, 0x7DC1, 0x7A4A, 0x7EDC, 0x7A4B, 0x7F1B, 0x7A7F, 0x800B, 0x7AFA, 0x80FD, 0x7B72, 0x81A2, 0x7D4E, 0x80DA, 0x7F2C, 0x824D, 0x7FB6, 0x8175, 0x800C, 0x809F, 0x8045, 0x7FD2, 0x8056, 0x7F0C, 0x8037, 0x7E65, 0x8008, 0x7E02, 0x7F7E, 0x7D1D, 0x7E90, 0x7BCF, 0x7E13, 0x7B0A, 0x7DDC, 0x7A70, 0x7DC6, 0x79DB, 0x7DC9, 0x797D, 0x7DDB, 0x787C, 0x7E01, 0x77E5, 0x7E25, 0x7782, 0x7E5D, 0x7711, 0x7E85, 0x76D8, 0x7EBA, 0x7698, 0x7F6C, 0x7643}; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/bootscreen_logo_portrait.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/bootscreen_logo_portrait.h deleted file mode 100644 index ef86082077..0000000000 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/bootscreen_logo_portrait.h +++ /dev/null @@ -1,43 +0,0 @@ - -/**************************************************************************** - * This program is free software: you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation, either version 3 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * To view a copy of the GNU General Public License, go to the following * - * location: . * - ****************************************************************************/ - -/** - * This file was auto-generated using "svg2cpp.pl" - * - * The encoding consists of x,y pairs with the min and max scaled to - * 0x0000 and 0xFFFE. A single 0xFFFF in the data stream indicates the - * start of a new closed path. - */ - -#pragma once - -constexpr float x_min = 0.000000; - -constexpr float x_max = 272.000000; - -constexpr float y_min = 0.000000; - -constexpr float y_max = 480.000000; - -const PROGMEM uint16_t logo_green[] = {0x8048, 0x46D9, 0x27BC, 0x9DBA, 0xD8D3, 0x9DBA}; - -const PROGMEM uint16_t logo_mark[] = {0xDB9F, 0xAC0C, 0xDA6F, 0xAC2D, 0xD970, 0xAC91, 0xD8C0, 0xAD23, 0xD885, 0xADCF, 0xD8C0, 0xAE7A, 0xD970, 0xAF0C, 0xDA6F, 0xAF6F, 0xDB9F, 0xAF8F, 0xDCCE, 0xAF6F, 0xDDD0, 0xAF0C, 0xDE7D, 0xAE7B, 0xDEB9, 0xADCF, 0xDE7D, 0xAD22, 0xDDD0, 0xAC91, 0xDCCE, 0xAC2D, 0xFFFF, 0xDB9F, 0xABC3, 0xDCFE, 0xABEA, 0xDE28, 0xAC5E, 0xDEF1, 0xAD06, 0xDF36, 0xADCF, 0xDEF1, 0xAE95, 0xDE28, 0xAF3E, 0xDCFE, 0xAFB1, 0xDB9F, 0xAFD8, 0xDA3F, 0xAFB1, 0xD916, 0xAF3E, 0xD849, 0xAE95, 0xD808, 0xADCF, 0xD849, 0xAD06, 0xD916, 0xAC5E, 0xDA3F, 0xABEA, 0xFFFF, 0xDB7D, 0xACE6, 0xDAE4, 0xACE6, 0xDAE4, 0xADA9, 0xDB7D, 0xADA9, 0xDC3B, 0xAD94, 0xDC71, 0xAD48, 0xDC3B, 0xACFD, 0xFFFF, 0xDB85, 0xAC9E, 0xDCCB, 0xACC8, 0xDD37, 0xAD47, 0xDCF6, 0xADAC, 0xDC3E, 0xADDE, 0xDC85, 0xADFF, 0xDCE8, 0xAE4E, 0xDD92, 0xAEEA, 0xDCBD, 0xAEEA, 0xDC1E, 0xAE58, 0xDBA7, 0xAE03, 0xDB36, 0xADEF, 0xDAE4, 0xADEF, 0xDAE4, 0xAEEA, 0xDA26, 0xAEEA, 0xDA26, 0xAC9E}; - -const PROGMEM uint16_t logo_type[] = {0xD8D5, 0xA520, 0xD8A5, 0xA563, 0xD82E, 0xA57F, 0xD348, 0xA57F, 0xD2D1, 0xA598, 0xD2A0, 0xA5D9, 0xD2A0, 0xAF7A, 0xD274, 0xAFBE, 0xD202, 0xAFDA, 0xCD37, 0xAFDA, 0xCCBF, 0xAFBE, 0xCC8F, 0xAF7A, 0xCC8F, 0xA5D9, 0xCC63, 0xA598, 0xCBF1, 0xA57F, 0xC70B, 0xA57F, 0xC694, 0xA563, 0xC664, 0xA520, 0xC664, 0xA28C, 0xC70B, 0xA22C, 0xD82E, 0xA22C, 0xD8A5, 0xA248, 0xD8D5, 0xA28C, 0xFFFF, 0xB138, 0xAC8C, 0xB952, 0xAC8C, 0xB952, 0xA57F, 0xB138, 0xA57F, 0xFFFF, 0xBF27, 0xA421, 0xBF57, 0xA476, 0xBF6D, 0xA4D0, 0xBF6D, 0xAD36, 0xBF57, 0xAD90, 0xBF27, 0xADE6, 0xBBFA, 0xAFB2, 0xBB60, 0xAFCF, 0xBABD, 0xAFDA, 0xAFCE, 0xAFDA, 0xAF30, 0xAFCF, 0xAE9A, 0xAFB2, 0xAB6E, 0xADE6, 0xAB39, 0xAD90, 0xAB28, 0xAD36, 0xAB28, 0xA4D0, 0xAB39, 0xA476, 0xAB6E, 0xA421, 0xAE9A, 0xA255, 0xAF30, 0xA239, 0xAFCE, 0xA22C, 0xBABD, 0xA22C, 0xBB60, 0xA239, 0xBBFA, 0xA255, 0xFFFF, 0x93A4, 0xACDC, 0x9CEA, 0xACDC, 0x9CEA, 0xAA34, 0x93A4, 0xAA34, 0x93A4, 0xACDC, 0xFFFF, 0x93A4, 0xA796, 0x9CEA, 0xA796, 0x9CEA, 0xA525, 0x93A4, 0xA525, 0xFFFF, 0xA227, 0xA421, 0xA258, 0xA478, 0xA26E, 0xA4D5, 0xA26E, 0xA700, 0xA24F, 0xA757, 0xA204, 0xA7A5, 0xA089, 0xA8B8, 0xA061, 0xA903, 0xA092, 0xA949, 0xA1FC, 0xAA43, 0xA24B, 0xAA91, 0xA26E, 0xAAE8, 0xA26E, 0xAD36, 0xA258, 0xAD90, 0xA227, 0xADE6, 0x9EFC, 0xAFB2, 0x9E61, 0xAFCF, 0x9DBE, 0xAFDA, 0x8ED0, 0xAFDA, 0x8E28, 0xAF7A, 0x8E28, 0xA28C, 0x8E59, 0xA248, 0x8ED0, 0xA22C, 0x9DBE, 0xA22C, 0x9E61, 0xA239, 0x9EFC, 0xA255, 0xFFFF, 0x853C, 0xA502, 0x8517, 0xA557, 0x84C9, 0xA5A2, 0x7994, 0xACC8, 0x8494, 0xACC8, 0x850A, 0xACE4, 0x853C, 0xAD27, 0x853C, 0xAF7A, 0x850A, 0xAFBE, 0x8494, 0xAFDA, 0x7371, 0xAFDA, 0x72C9, 0xAF7A, 0x72C9, 0xAD09, 0x72E8, 0xACB2, 0x7333, 0xAC64, 0x7EA5, 0xA53E, 0x73A6, 0xA53E, 0x732F, 0xA522, 0x72FE, 0xA4DF, 0x72FE, 0xA28C, 0x732F, 0xA248, 0x73A6, 0xA22C, 0x8494, 0xA22C, 0x850A, 0xA248, 0x853C, 0xA28C, 0xFFFF, 0x6B68, 0xAC87, 0x6BDB, 0xACA3, 0x6C07, 0xACE6, 0x6C07, 0xAF7A, 0x6BDB, 0xAFBE, 0x6B68, 0xAFDA, 0x5C84, 0xAFDA, 0x5BDC, 0xAF7A, 0x5BDC, 0xA28C, 0x5C84, 0xA22C, 0x6146, 0xA22C, 0x61EE, 0xA28C, 0x61EE, 0xAC2D, 0x621E, 0xAC6E, 0x6295, 0xAC87, 0xFFFF, 0x52C6, 0xA248, 0x52F7, 0xA28C, 0x52F7, 0xAD45, 0x52EE, 0xAD45, 0x52DC, 0xAD9B, 0x52B1, 0xADE6, 0x4F85, 0xAFB2, 0x4EEA, 0xAFCF, 0x4E47, 0xAFDA, 0x4359, 0xAFDA, 0x42BA, 0xAFCF, 0x4224, 0xAFB2, 0x3EF8, 0xADE6, 0x3EC3, 0xAD90, 0x3EB2, 0xAD36, 0x3EB2, 0xA28C, 0x3EE2, 0xA248, 0x3F5A, 0xA22C, 0x441B, 0xA22C, 0x4493, 0xA248, 0x44C3, 0xA28C, 0x44C3, 0xAC2D, 0x44F4, 0xAC71, 0x456B, 0xAC8C, 0x4C3E, 0xAC8C, 0x4CB1, 0xAC71, 0x4CDD, 0xAC2D, 0x4CDD, 0xA28C, 0x4D0D, 0xA248, 0x4D85, 0xA22C, 0x524F, 0xA22C, 0xFFFF, 0x3748, 0xAC87, 0x37BB, 0xACA3, 0x37E7, 0xACE6, 0x37E7, 0xAF7A, 0x37BB, 0xAFBE, 0x3748, 0xAFDA, 0x2864, 0xAFDA, 0x27BC, 0xAF7A, 0x27BC, 0xA28C, 0x2864, 0xA22C, 0x2D26, 0xA22C, 0x2DCD, 0xA28C, 0x2DCD, 0xAC2D, 0x2DFE, 0xAC6E, 0x2E75, 0xAC87}; - -const PROGMEM uint16_t logo_black[] = {0x8048, 0x527A, 0x8ADE, 0x5CDE, 0x75B2, 0x5CDE, 0xFFFF, 0x8048, 0x4FF6, 0x71D9, 0x5E20, 0x8EB8, 0x5E20, 0x8048, 0x4FF6, 0xFFFF, 0x4436, 0x8D8E, 0x4ECC, 0x97F2, 0x39A0, 0x97F2, 0xFFFF, 0x4436, 0x8B0A, 0x35C8, 0x9934, 0x52A5, 0x9934, 0xFFFF, 0xBC3D, 0x8D8E, 0xC6D4, 0x97F2, 0xB1A7, 0x97F2, 0xFFFF, 0xBC3D, 0x8B0A, 0xADCE, 0x9934, 0xCAAC, 0x9934, 0xFFFF, 0x8045, 0x6778, 0x7F6D, 0x67A7, 0x7E9D, 0x689F, 0x7D49, 0x69EA, 0x7B41, 0x6A81, 0x7908, 0x6A3A, 0x7726, 0x692C, 0x75EA, 0x685A, 0x7505, 0x684C, 0x744A, 0x6899, 0x73F5, 0x69A8, 0x7345, 0x6B1A, 0x7193, 0x6BF8, 0x6F4D, 0x6C08, 0x6CFA, 0x6B45, 0x6B61, 0x6AA3, 0x6A7D, 0x6AB7, 0x69EB, 0x6B1D, 0x6A1D, 0x6C34, 0x6A22, 0x6DB8, 0x68E5, 0x6ECD, 0x66B9, 0x6F33, 0x6417, 0x6EC5, 0x6239, 0x6E5C, 0x6165, 0x6E91, 0x6108, 0x6F09, 0x61C1, 0x7018, 0x6282, 0x7196, 0x61CF, 0x72D1, 0x5FE5, 0x7384, 0x5D38, 0x7380, 0x5B4B, 0x7365, 0x5A97, 0x73B7, 0x5A74, 0x7438, 0x5B90, 0x7520, 0x5CE8, 0x7671, 0x5CCB, 0x77BB, 0x5B43, 0x78B0, 0x58B6, 0x7914, 0x56D7, 0x7944, 0x564F, 0x79AD, 0x5667, 0x7A2F, 0x57DA, 0x7AE3, 0x59B7, 0x7BF3, 0x5A31, 0x7D37, 0x5927, 0x7E5D, 0x56E0, 0x7F1E, 0x5529, 0x7F93, 0x54D7, 0x800D, 0x5529, 0x8087, 0x56E0, 0x80FD, 0x5926, 0x81BE, 0x5A30, 0x82E5, 0x59B5, 0x8428, 0x57D8, 0x8538, 0x5664, 0x85EB, 0x564C, 0x866D, 0x56D4, 0x86D7, 0x58B2, 0x8708, 0x5B3F, 0x876B, 0x5CC6, 0x8860, 0x5CE3, 0x89AA, 0x5B8B, 0x8AFC, 0x5A6D, 0x8BE3, 0x5A91, 0x8C65, 0x5B44, 0x8CB7, 0x5D32, 0x8C9C, 0x5FDE, 0x8C98, 0x61C7, 0x8D4B, 0x627A, 0x8E87, 0x61B9, 0x9005, 0x60FF, 0x9114, 0x615C, 0x918B, 0x622F, 0x91C0, 0x640E, 0x9158, 0x66B0, 0x90EA, 0x68DC, 0x9150, 0x6A18, 0x9266, 0x6A12, 0x93E9, 0x69E0, 0x9501, 0x6A72, 0x9567, 0x6B56, 0x957B, 0x6CEE, 0x94D9, 0x6F43, 0x9417, 0x7188, 0x9428, 0x7339, 0x9506, 0x73E9, 0x9678, 0x743E, 0x9787, 0x74F8, 0x97D4, 0x75DD, 0x97C6, 0x771A, 0x96F4, 0x78FB, 0x95E6, 0x7B35, 0x95A1, 0x7D3D, 0x9637, 0x7E91, 0x9782, 0x7F60, 0x987A, 0x8038, 0x98AA, 0x810F, 0x987B, 0x81DF, 0x9782, 0x8333, 0x9638, 0x853B, 0x95A1, 0x8775, 0x95E7, 0x8956, 0x96F5, 0x8A92, 0x97C8, 0x8B78, 0x97D6, 0x8C32, 0x9789, 0x8C88, 0x967A, 0x8D37, 0x9508, 0x8EE9, 0x942A, 0x912F, 0x941A, 0x9383, 0x94DD, 0x951B, 0x957F, 0x95FF, 0x956B, 0x9690, 0x9505, 0x9660, 0x93ED, 0x9659, 0x926A, 0x9797, 0x9154, 0x99C3, 0x90EF, 0x9C65, 0x915D, 0x9E43, 0x91C6, 0x9F17, 0x9191, 0x9F74, 0x9119, 0x9EBB, 0x900A, 0x9DFA, 0x8E8C, 0x9EAE, 0x8D51, 0xA098, 0x8C9E, 0xA345, 0x8CA2, 0xA531, 0x8CBE, 0xA5E5, 0x8C6B, 0xA609, 0x8BEA, 0xA4EC, 0x8B02, 0xA394, 0x89B1, 0xA3B2, 0x8867, 0xA53A, 0x8772, 0xA7C6, 0x870E, 0xA9A5, 0x86DE, 0xAA2D, 0x8675, 0xAA14, 0x85F2, 0xA8A2, 0x853F, 0xA6C5, 0x842E, 0xA64B, 0x82EB, 0xA755, 0x81C5, 0xA99C, 0x8104, 0xAB52, 0x808F, 0xABA6, 0x8015, 0xAB52, 0x7F9B, 0xA99C, 0x7F25, 0xA755, 0x7E64, 0xA64C, 0x7D3E, 0xA6C7, 0x7BFA, 0xA8A5, 0x7AEA, 0xAA18, 0x7A37, 0xAA31, 0x79B5, 0xA9A9, 0x794B, 0xA7CA, 0x791B, 0xA53C, 0x78B7, 0xA3B6, 0x77C1, 0xA39A, 0x7677, 0xA4F1, 0x7526, 0xA60E, 0x743F, 0xA5EB, 0x73BD, 0xA538, 0x736B, 0xA34B, 0x7387, 0xA09E, 0x738A, 0x9EB4, 0x72D6, 0x9E02, 0x719B, 0x9EC4, 0x701D, 0x9F7E, 0x6F0E, 0x9F20, 0x6E96, 0x9E4E, 0x6E61, 0x9C6E, 0x6ECA, 0x99CB, 0x6F37, 0x97A0, 0x6ED2, 0x9664, 0x6DBC, 0x966B, 0x6C38, 0x969B, 0x6B21, 0x960B, 0x6ABB, 0x9526, 0x6AA6, 0x938E, 0x6B48, 0x913B, 0x6C0B, 0x8EF4, 0x6BFA, 0x8D43, 0x6B1D, 0x8C94, 0x69AA, 0x8C3F, 0x689B, 0x8B85, 0x684D, 0x8A9E, 0x685C, 0x8962, 0x692E, 0x8781, 0x6A3C, 0x8546, 0x6A82, 0x833F, 0x69EA, 0x81EC, 0x68A0, 0x811C, 0x67A8, 0x8045, 0x6778, 0x8045, 0x6778, 0xFFFF, 0x8047, 0x6AA0, 0x81C8, 0x6AFA, 0x8268, 0x6BD5, 0x81C8, 0x6CAF, 0x8047, 0x6D09, 0x7EC6, 0x6CAF, 0x7E27, 0x6BD5, 0x7EC6, 0x6AFA, 0x8047, 0x6AA0, 0x8047, 0x6AA0, 0xFFFF, 0x803E, 0x6E19, 0x867C, 0x6E71, 0x8C65, 0x6F75, 0x91D7, 0x711B, 0x96AD, 0x735B, 0x9ABC, 0x762C, 0x9DA2, 0x794C, 0x9F5F, 0x7CA2, 0x9FF3, 0x8011, 0x9F5E, 0x8380, 0x9DA1, 0x86D5, 0x9ABA, 0x89F6, 0x96AB, 0x8CC7, 0x91D6, 0x8F08, 0x8C65, 0x90AD, 0x867C, 0x91B1, 0x803D, 0x9209, 0x7A00, 0x91B1, 0x7416, 0x90AD, 0x6EA6, 0x8F08, 0x69D0, 0x8CC7, 0x65D6, 0x8A0A, 0x62EE, 0x86F4, 0x6125, 0x839B, 0x6089, 0x8011, 0x6124, 0x7C88, 0x62ED, 0x792E, 0x65D6, 0x7619, 0x69CF, 0x735B, 0x6EA5, 0x711B, 0x7416, 0x6F75, 0x7A00, 0x6E71, 0x803E, 0x6E19, 0x803E, 0x6E19, 0xFFFF, 0x803E, 0x6EB2, 0x7A5A, 0x6F04, 0x74B2, 0x6FF8, 0x6F4B, 0x7194, 0x6A8F, 0x73C7, 0x66A2, 0x7681, 0x63D5, 0x7986, 0x6226, 0x7CBF, 0x6197, 0x8011, 0x6226, 0x8363, 0x63D5, 0x869C, 0x66A2, 0x89A2, 0x6A8F, 0x8C5B, 0x6F4B, 0x8E8E, 0x74B2, 0x902B, 0x7A5A, 0x911E, 0x803D, 0x9170, 0x803E, 0x9170, 0x8621, 0x911E, 0x8BCA, 0x902B, 0x9130, 0x8E8E, 0x95ED, 0x8C5B, 0x99CF, 0x89AB, 0x9CA7, 0x869C, 0x9E55, 0x8367, 0x9EE5, 0x8011, 0x9E55, 0x7CBB, 0x9CA7, 0x7986, 0x99CF, 0x7677, 0x95ED, 0x73C7, 0x9130, 0x7194, 0x8BCA, 0x6FF8, 0x8621, 0x6F04, 0x803E, 0x6EB2, 0x803E, 0x6EB2, 0xFFFF, 0x80BC, 0x6FD7, 0x80AF, 0x71D8, 0x7FC8, 0x71D9, 0x7FB7, 0x6FD8, 0x80BC, 0x6FD7, 0x80BC, 0x6FD7, 0xFFFF, 0x83CB, 0x6FF6, 0x84CD, 0x700B, 0x843E, 0x7206, 0x835B, 0x71F4, 0xFFFF, 0x7CA9, 0x6FF8, 0x7D1A, 0x71F5, 0x7C37, 0x7207, 0x7BA7, 0x700D, 0x7CA9, 0x6FF8, 0x7CA9, 0x6FF8, 0xFFFF, 0x87CD, 0x7068, 0x88C7, 0x7092, 0x87BA, 0x727C, 0x86DF, 0x7258, 0xFFFF, 0x78A8, 0x706B, 0x7997, 0x725A, 0x78BA, 0x727E, 0x77AD, 0x7095, 0x78A8, 0x706B, 0x78A8, 0x706B, 0xFFFF, 0x6700, 0x708A, 0x6880, 0x70E5, 0x6920, 0x71BF, 0x6880, 0x7299, 0x66FF, 0x72F4, 0x657F, 0x7299, 0x64E0, 0x71BF, 0x657F, 0x70E4, 0x6700, 0x708A, 0x6700, 0x708A, 0xFFFF, 0x998D, 0x708C, 0x9B0E, 0x70E6, 0x9BAE, 0x71C0, 0x9B0E, 0x729B, 0x998D, 0x72F6, 0x980D, 0x729B, 0x976E, 0x71C1, 0x980D, 0x70E7, 0x998D, 0x708C, 0x998D, 0x708C, 0xFFFF, 0x8BA7, 0x712C, 0x8C95, 0x716A, 0x8B10, 0x7339, 0x8A3F, 0x7303, 0x8BA7, 0x712C, 0xFFFF, 0x74CE, 0x712F, 0x7635, 0x7307, 0x7564, 0x733C, 0x73DE, 0x716D, 0x74CE, 0x712F, 0x74CE, 0x712F, 0xFFFF, 0x8F47, 0x723F, 0x9023, 0x728E, 0x8E2D, 0x743A, 0x8D6B, 0x73F4, 0x8F47, 0x723F, 0xFFFF, 0x712D, 0x7242, 0x7308, 0x73F7, 0x7248, 0x743D, 0x7050, 0x7292, 0x712D, 0x7242, 0x712D, 0x7242, 0xFFFF, 0x803E, 0x72F6, 0x891B, 0x73F4, 0x909A, 0x76CC, 0x959F, 0x7B0B, 0x975E, 0x8011, 0x959F, 0x8517, 0x909A, 0x8957, 0x891B, 0x8C2E, 0x803E, 0x8D2B, 0x7761, 0x8C2E, 0x6FE2, 0x8957, 0x6ADD, 0x8517, 0x691E, 0x8011, 0x6ADD, 0x7B0B, 0x6FE2, 0x76CC, 0x7761, 0x73F4, 0x803E, 0x72F6, 0x803E, 0x72F6, 0xFFFF, 0x803E, 0x738F, 0x77C8, 0x7481, 0x70A0, 0x7738, 0x6BD7, 0x7B46, 0x6A2C, 0x8011, 0x6BD7, 0x84DC, 0x70A1, 0x88EA, 0x77C9, 0x8BA1, 0x803E, 0x8C93, 0x88B4, 0x8BA1, 0x8FDB, 0x88EA, 0x94A5, 0x84DD, 0x9650, 0x8011, 0x94A5, 0x7B46, 0x8FDB, 0x7738, 0x88B4, 0x7481, 0x803E, 0x738F, 0x803E, 0x738F, 0xFFFF, 0x929B, 0x739A, 0x935C, 0x73FA, 0x9100, 0x7578, 0x905A, 0x7527, 0x9175, 0x745E, 0xFFFF, 0x6DDC, 0x739D, 0x7022, 0x7527, 0x6F74, 0x757C, 0x6D16, 0x73FF, 0x6DDC, 0x739D, 0x6DDC, 0x739D, 0xFFFF, 0x9589, 0x7533, 0x9634, 0x75A4, 0x937E, 0x76ED, 0x92E8, 0x768B, 0xFFFF, 0x6AEB, 0x7539, 0x6D8D, 0x7690, 0x6CFB, 0x76F0, 0x6CEC, 0x76FA, 0x6BED, 0x7674, 0x6A40, 0x75A9, 0x6A45, 0x75A7, 0x6AEB, 0x7539, 0x6AEB, 0x7539, 0xFFFF, 0x980B, 0x7707, 0x989A, 0x7784, 0x9597, 0x7892, 0x951A, 0x7825, 0xFFFF, 0x686A, 0x770C, 0x6B5B, 0x782A, 0x6ADF, 0x7897, 0x67DD, 0x7788, 0x686A, 0x770C, 0x686A, 0x770C, 0xFFFF, 0x9A12, 0x790A, 0x9A7E, 0x7991, 0x9740, 0x7A5E, 0x96E1, 0x79E8, 0x9A12, 0x790A, 0xFFFF, 0x6664, 0x790F, 0x6996, 0x79ED, 0x6937, 0x7A63, 0x65F9, 0x7996, 0x6664, 0x790F, 0x6664, 0x790F, 0xFFFF, 0x9B91, 0x7B32, 0x9BDB, 0x7BC1, 0x9870, 0x7C48, 0x9831, 0x7BCB, 0xFFFF, 0x64E6, 0x7B37, 0x6847, 0x7BD0, 0x6807, 0x7C4C, 0x649D, 0x7BC5, 0x64E6, 0x7B37, 0x64E6, 0x7B37, 0xFFFF, 0x9C82, 0x7D72, 0x9CA7, 0x7E06, 0x9925, 0x7E46, 0x9903, 0x7DC5, 0xFFFF, 0x63F7, 0x7D78, 0x6776, 0x7DC9, 0x6756, 0x7E49, 0x63D3, 0x7E0A, 0x63F7, 0x7D78, 0x63F7, 0x7D78, 0xFFFF, 0x5C87, 0x7EDB, 0x5E08, 0x7F35, 0x5EA8, 0x800F, 0x5E08, 0x80E9, 0x5C87, 0x8144, 0x5C85, 0x8144, 0x5B06, 0x80E9, 0x5A67, 0x800F, 0x5B06, 0x7F35, 0x5C87, 0x7EDB, 0x5C87, 0x7EDB, 0xFFFF, 0xA402, 0x7EDE, 0xA583, 0x7F38, 0xA623, 0x8011, 0xA623, 0x8013, 0xA583, 0x80EC, 0xA402, 0x8147, 0xA281, 0x80ED, 0xA1E2, 0x8013, 0xA281, 0x7F38, 0xA402, 0x7EDE, 0xA402, 0x7EDE, 0xFFFF, 0x9CE0, 0x7FC0, 0x9CE0, 0x8055, 0x9957, 0x804D, 0x9957, 0x7FCB, 0xFFFF, 0x639D, 0x7FC5, 0x6726, 0x7FCE, 0x6726, 0x8051, 0x639D, 0x805A, 0x639D, 0x7FC5, 0x639D, 0x7FC5, 0xFFFF, 0x9927, 0x81D1, 0x9CAA, 0x8210, 0x9C87, 0x82A2, 0x9907, 0x8252, 0x9927, 0x81D1, 0x9927, 0x81D1, 0xFFFF, 0x6757, 0x81D5, 0x6777, 0x8255, 0x63F9, 0x82A7, 0x63D4, 0x8214, 0xFFFF, 0x9877, 0x83CF, 0x9BE2, 0x8455, 0x9B99, 0x84E3, 0x9838, 0x844C, 0x9877, 0x83CF, 0x9877, 0x83CF, 0xFFFF, 0x6808, 0x83D3, 0x6848, 0x8450, 0x64E7, 0x84E8, 0x649E, 0x845A, 0xFFFF, 0x9749, 0x85B9, 0x9A88, 0x8684, 0x9A1D, 0x870C, 0x96EB, 0x862E, 0x9749, 0x85B9, 0x9749, 0x85B9, 0xFFFF, 0x6938, 0x85BD, 0x6997, 0x8634, 0x6665, 0x8710, 0x65F9, 0x8689, 0xFFFF, 0x95A2, 0x8785, 0x98A5, 0x8892, 0x9818, 0x890F, 0x9527, 0x87F2, 0x95A2, 0x8785, 0x95A2, 0x8785, 0xFFFF, 0x6ADF, 0x878A, 0x6B5B, 0x87F8, 0x686A, 0x8914, 0x67DC, 0x8897, 0x6ADF, 0x878A, 0xFFFF, 0x6CF7, 0x892F, 0x6D8D, 0x8991, 0x6AEB, 0x8AE9, 0x6A40, 0x8A79, 0xFFFF, 0x9380, 0x8932, 0x9645, 0x8A72, 0x963E, 0x8A77, 0x9599, 0x8AE3, 0x92F5, 0x898D, 0x9380, 0x8932, 0x9380, 0x8932, 0xFFFF, 0x9110, 0x8AA1, 0x936F, 0x8C1F, 0x92AA, 0x8C80, 0x9064, 0x8AF7, 0x9110, 0x8AA1, 0x9110, 0x8AA1, 0xFFFF, 0x6F73, 0x8AA5, 0x7021, 0x8AFB, 0x7035, 0x8B04, 0x6DED, 0x8C8B, 0x6DE1, 0x8C87, 0x6D17, 0x8C23, 0xFFFF, 0x8E3E, 0x8BE1, 0x9037, 0x8D8B, 0x8F59, 0x8DDC, 0x8D7C, 0x8C27, 0x8E3E, 0x8BE1, 0x8E3E, 0x8BE1, 0xFFFF, 0x7259, 0x8BEB, 0x731B, 0x8C31, 0x7140, 0x8DE7, 0x7064, 0x8D97, 0xFFFF, 0x8B21, 0x8CE3, 0x8CA9, 0x8EB2, 0x8BBA, 0x8EEF, 0x8A51, 0x8D18, 0x8B21, 0x8CE3, 0x8B21, 0x8CE3, 0xFFFF, 0x7576, 0x8CEB, 0x7648, 0x8D20, 0x74E0, 0x8EF8, 0x73F2, 0x8EBB, 0xFFFF, 0x66F3, 0x8D2F, 0x6874, 0x8D8A, 0x687D, 0x8D8F, 0x6886, 0x8D94, 0x6926, 0x8E6E, 0x6887, 0x8F48, 0x6705, 0x8FA2, 0x6584, 0x8F49, 0x657F, 0x8F45, 0x6570, 0x8F3E, 0x6573, 0x8F3E, 0x64D3, 0x8E63, 0x6573, 0x8D89, 0x66F3, 0x8D2F, 0x66F3, 0x8D2F, 0xFFFF, 0x9993, 0x8D31, 0x9B13, 0x8D8C, 0x9BB4, 0x8E66, 0x9B16, 0x8F40, 0x9993, 0x8F9A, 0x9814, 0x8F40, 0x9774, 0x8E66, 0x9812, 0x8D8C, 0x9993, 0x8D31, 0x9993, 0x8D31, 0xFFFF, 0x87CD, 0x8DA1, 0x88DC, 0x8F8B, 0x87E0, 0x8FB5, 0x86F0, 0x8DC6, 0x87CD, 0x8DA1, 0x87CD, 0x8DA1, 0xFFFF, 0x78CD, 0x8DA8, 0x79A8, 0x8DCB, 0x78BC, 0x8FBB, 0x77C1, 0x8F92, 0xFFFF, 0x8450, 0x8E19, 0x84E2, 0x9014, 0x83E0, 0x9029, 0x836C, 0x8E2C, 0x8450, 0x8E19, 0x8450, 0x8E19, 0xFFFF, 0x7C48, 0x8E1C, 0x7D2B, 0x8E2E, 0x7CBD, 0x902C, 0x7BBB, 0x9017, 0x7C48, 0x8E1C, 0xFFFF, 0x80BF, 0x8E49, 0x80D2, 0x904A, 0x7FCC, 0x904A, 0x7FD9, 0x8E49, 0x80BF, 0x8E49, 0x80BF, 0x8E49, 0xFFFF, 0x804F, 0x9321, 0x81D0, 0x937A, 0x8271, 0x9455, 0x81D1, 0x952F, 0x8051, 0x958A, 0x7ECF, 0x9530, 0x7E2F, 0x9456, 0x7ECE, 0x937B, 0x804F, 0x9321, 0x804F, 0x9321, 0xFFFF, 0x8048, 0x46D9, 0x27BC, 0x9DBA, 0xD8D3, 0x9DBA, 0xFFFF, 0x8048, 0x4BC9, 0x952E, 0x604A, 0x6B62, 0x604A, 0xFFFF, 0x68D2, 0x62CE, 0x97BF, 0x62CE, 0xB9BA, 0x8427, 0xA239, 0x9B36, 0x5E16, 0x9B36, 0x46B6, 0x8446, 0x68D2, 0x62CE, 0xFFFF, 0xBC3E, 0x869F, 0xD13B, 0x9B36, 0xA742, 0x9B36, 0xFFFF, 0x4431, 0x86BE, 0x590E, 0x9B36, 0x2F54, 0x9B36, 0x4431, 0x86BE}; - -const PROGMEM uint16_t logo_white[] = {0x80BC, 0x6FD7, 0x80AF, 0x71D8, 0x7FC8, 0x71D9, 0x7FB7, 0x6FD8, 0x80BC, 0x6FD7, 0xFFFF, 0x83CB, 0x6FF6, 0x84CD, 0x700B, 0x843E, 0x7206, 0x835B, 0x71F4, 0xFFFF, 0x7CA9, 0x6FF8, 0x7D1A, 0x71F5, 0x7C37, 0x7207, 0x7BA7, 0x700D, 0x7CA9, 0x6FF8, 0x7CA9, 0x6FF8, 0xFFFF, 0x87CD, 0x7068, 0x88C7, 0x7092, 0x87BA, 0x727C, 0x86DF, 0x7258, 0xFFFF, 0x78A8, 0x706B, 0x7997, 0x725A, 0x78BA, 0x727E, 0x77AD, 0x7095, 0x78A8, 0x706B, 0x78A8, 0x706B, 0xFFFF, 0x8BA7, 0x712C, 0x8C95, 0x716A, 0x8B10, 0x7339, 0x8A3F, 0x7303, 0xFFFF, 0x74CE, 0x712F, 0x7635, 0x7307, 0x7564, 0x733C, 0x73DE, 0x716D, 0x74CE, 0x712F, 0x74CE, 0x712F, 0xFFFF, 0x8F47, 0x723F, 0x9023, 0x728E, 0x8E2D, 0x743A, 0x8D6B, 0x73F4, 0xFFFF, 0x712D, 0x7242, 0x7309, 0x73F7, 0x7248, 0x743D, 0x7050, 0x7292, 0x712D, 0x7242, 0x712D, 0x7242, 0xFFFF, 0x929B, 0x739A, 0x935C, 0x73FA, 0x9100, 0x7578, 0x905A, 0x7527, 0xFFFF, 0x6DDC, 0x739D, 0x7022, 0x7527, 0x6F74, 0x757C, 0x6D16, 0x73FF, 0x6DDC, 0x739D, 0x6DDC, 0x739D, 0xFFFF, 0x9589, 0x7533, 0x9634, 0x75A4, 0x937E, 0x76ED, 0x92E8, 0x768B, 0xFFFF, 0x6AEB, 0x7539, 0x6D8D, 0x7690, 0x6CFB, 0x76F0, 0x6A40, 0x75A9, 0x6AEB, 0x7539, 0xFFFF, 0x980B, 0x7707, 0x989A, 0x7784, 0x9597, 0x7892, 0x951A, 0x7825, 0xFFFF, 0x686A, 0x770C, 0x6B5B, 0x782A, 0x6ADF, 0x7897, 0x67DD, 0x7788, 0x686A, 0x770C, 0x686A, 0x770C, 0xFFFF, 0x9A12, 0x790A, 0x9A7E, 0x7991, 0x9740, 0x7A5E, 0x96E1, 0x79E8, 0xFFFF, 0x6664, 0x790F, 0x6996, 0x79ED, 0x6937, 0x7A63, 0x65F9, 0x7996, 0x6664, 0x790F, 0x6664, 0x790F, 0xFFFF, 0x9B91, 0x7B32, 0x9BDB, 0x7BC1, 0x9870, 0x7C48, 0x9831, 0x7BCC, 0xFFFF, 0x64E6, 0x7B37, 0x6847, 0x7BD0, 0x6807, 0x7C4C, 0x649D, 0x7BC5, 0x64E6, 0x7B37, 0x64E6, 0x7B37, 0xFFFF, 0x9C82, 0x7D72, 0x9CA7, 0x7E06, 0x9925, 0x7E46, 0x9903, 0x7DC5, 0xFFFF, 0x63F7, 0x7D78, 0x6776, 0x7DC9, 0x6756, 0x7E49, 0x63D3, 0x7E0A, 0x63F7, 0x7D78, 0x63F7, 0x7D78, 0xFFFF, 0x9CE0, 0x7FC0, 0x9CE0, 0x8055, 0x9957, 0x804D, 0x9957, 0x7FCB, 0xFFFF, 0x639D, 0x7FC5, 0x6726, 0x7FCE, 0x6726, 0x8051, 0x639D, 0x805A, 0x639D, 0x7FC5, 0xFFFF, 0x9927, 0x81D1, 0x9CAA, 0x8210, 0x9C87, 0x82A2, 0x9907, 0x8252, 0x9927, 0x81D1, 0x9927, 0x81D1, 0xFFFF, 0x6757, 0x81D5, 0x6777, 0x8256, 0x63F9, 0x82A7, 0x63D4, 0x8214, 0xFFFF, 0x9877, 0x83CF, 0x9BE2, 0x8455, 0x9B99, 0x84E3, 0x9838, 0x844C, 0x9877, 0x83CF, 0xFFFF, 0x6808, 0x83D3, 0x6848, 0x8450, 0x64E7, 0x84E8, 0x649E, 0x845A, 0xFFFF, 0x9749, 0x85B9, 0x9A88, 0x8684, 0x9A1D, 0x870C, 0x96EB, 0x862E, 0x9749, 0x85B9, 0x9749, 0x85B9, 0xFFFF, 0x6938, 0x85BD, 0x6997, 0x8634, 0x6665, 0x8710, 0x65F9, 0x8689, 0xFFFF, 0x95A2, 0x8785, 0x98A5, 0x8892, 0x9818, 0x890F, 0x9527, 0x87F2, 0x95A2, 0x8785, 0x95A2, 0x8785, 0xFFFF, 0x6ADF, 0x878A, 0x6B5B, 0x87F8, 0x686A, 0x8915, 0x67DC, 0x8897, 0xFFFF, 0x6CF7, 0x8930, 0x6D8D, 0x8991, 0x6AEB, 0x8AE9, 0x6A40, 0x8A79, 0xFFFF, 0x9380, 0x8932, 0x9645, 0x8A72, 0x9599, 0x8AE3, 0x92F5, 0x898D, 0x9380, 0x8932, 0xFFFF, 0x9110, 0x8AA1, 0x936F, 0x8C1F, 0x92AA, 0x8C80, 0x9064, 0x8AF7, 0x9110, 0x8AA1, 0x9110, 0x8AA1, 0xFFFF, 0x6F73, 0x8AA5, 0x7021, 0x8AFB, 0x6DED, 0x8C8C, 0x6D17, 0x8C23, 0xFFFF, 0x8E3E, 0x8BE1, 0x9037, 0x8D8B, 0x8F59, 0x8DDC, 0x8D7C, 0x8C27, 0x8E3E, 0x8BE1, 0x8E3E, 0x8BE1, 0xFFFF, 0x7259, 0x8BEB, 0x731B, 0x8C31, 0x7140, 0x8DE7, 0x7064, 0x8D97, 0xFFFF, 0x8B21, 0x8CE3, 0x8CA9, 0x8EB2, 0x8BBA, 0x8EEF, 0x8A51, 0x8D18, 0x8B21, 0x8CE3, 0x8B21, 0x8CE3, 0xFFFF, 0x7576, 0x8CEB, 0x7648, 0x8D20, 0x74E0, 0x8EF8, 0x73F2, 0x8EBB, 0xFFFF, 0x87CD, 0x8DA1, 0x88DC, 0x8F8B, 0x87E0, 0x8FB5, 0x86F0, 0x8DC6, 0x87CD, 0x8DA1, 0x87CD, 0x8DA1, 0xFFFF, 0x78CC, 0x8DA8, 0x79A8, 0x8DCB, 0x78BC, 0x8FBB, 0x77C0, 0x8F92, 0xFFFF, 0x8450, 0x8E19, 0x84E2, 0x9014, 0x83E0, 0x9029, 0x836C, 0x8E2C, 0x8450, 0x8E19, 0x8450, 0x8E19, 0xFFFF, 0x7C48, 0x8E1C, 0x7D2B, 0x8E2E, 0x7CBD, 0x902C, 0x7BBB, 0x9017, 0xFFFF, 0x80BE, 0x8E49, 0x80D1, 0x904A, 0x7FCC, 0x904A, 0x7FD9, 0x8E49, 0x80BE, 0x8E49, 0xFFFF, 0x8276, 0x75D6, 0x83AF, 0x75FE, 0x8436, 0x7628, 0x84AE, 0x7661, 0x8542, 0x7706, 0x8512, 0x77BA, 0x8457, 0x7845, 0x8335, 0x788B, 0x8318, 0x7882, 0x82D8, 0x7860, 0x831E, 0x7830, 0x8353, 0x7823, 0x83E6, 0x77F9, 0x8464, 0x7790, 0x847A, 0x771A, 0x8415, 0x76B7, 0x83B6, 0x7691, 0x8351, 0x7676, 0x827F, 0x7662, 0x81BB, 0x7687, 0x8161, 0x76AF, 0x8123, 0x76DA, 0x80E5, 0x771A, 0x80C5, 0x774D, 0x80B8, 0x77C1, 0x80D1, 0x77EE, 0x8107, 0x7814, 0x81CC, 0x786B, 0x837F, 0x7918, 0x8464, 0x7983, 0x84C0, 0x79B2, 0x852D, 0x79FD, 0x859D, 0x7ABC, 0x858E, 0x7B79, 0x8545, 0x7C25, 0x84D9, 0x7CC5, 0x8469, 0x7D4D, 0x843B, 0x7DCD, 0x8555, 0x7DA8, 0x85D3, 0x7D67, 0x870D, 0x7CA0, 0x87E0, 0x7BC0, 0x880D, 0x7B5B, 0x886D, 0x7A46, 0x88B3, 0x799B, 0x88CC, 0x7970, 0x893A, 0x78EA, 0x8995, 0x78A8, 0x8A01, 0x786F, 0x8AF8, 0x781F, 0x8BA6, 0x77FD, 0x8C0C, 0x77EF, 0x8C96, 0x77FB, 0x8D1D, 0x7815, 0x8D59, 0x7826, 0x8E40, 0x7889, 0x8EDB, 0x7925, 0x8EFC, 0x797B, 0x8EFF, 0x79D4, 0x8E71, 0x7A7B, 0x8D58, 0x7AD2, 0x8C23, 0x7ADE, 0x8AFF, 0x7A97, 0x8AF5, 0x7A81, 0x8AEF, 0x7A4E, 0x8B68, 0x7A52, 0x8B96, 0x7A5F, 0x8C39, 0x7A87, 0x8D33, 0x7A7F, 0x8E07, 0x7A3F, 0x8E66, 0x79CB, 0x8E63, 0x7985, 0x8E43, 0x793F, 0x8DC6, 0x78C6, 0x8CFA, 0x7876, 0x8C7E, 0x785F, 0x8C18, 0x7857, 0x8B84, 0x7874, 0x8B22, 0x788F, 0x8A7D, 0x78CA, 0x8A2E, 0x78F9, 0x89F0, 0x7930, 0x89A3, 0x79A5, 0x8979, 0x7AC0, 0x897C, 0x7B9C, 0x8972, 0x7BF2, 0x88CC, 0x7D32, 0x87B7, 0x7E4C, 0x8665, 0x7F52, 0x8660, 0x7F5A, 0x878F, 0x7F01, 0x88AE, 0x7EC2, 0x89FD, 0x7E9E, 0x8B8D, 0x7EC6, 0x8C40, 0x7F0E, 0x8CB6, 0x7F68, 0x8D1D, 0x7FD7, 0x8DFA, 0x80BD, 0x8EA8, 0x816E, 0x8F34, 0x81D4, 0x8F8A, 0x81F9, 0x8FDA, 0x820A, 0x90AB, 0x820F, 0x9120, 0x81FF, 0x91A5, 0x81DC, 0x91F4, 0x81B8, 0x922C, 0x8198, 0x9288, 0x812B, 0x927D, 0x80AB, 0x9252, 0x8068, 0x921C, 0x8033, 0x9174, 0x7FEB, 0x9099, 0x7FEB, 0x8FCF, 0x8029, 0x8F5D, 0x808D, 0x8F47, 0x80A4, 0x8ED4, 0x80A4, 0x8EC5, 0x8070, 0x8F65, 0x7FE6, 0x906D, 0x7F92, 0x91A4, 0x7F90, 0x92A8, 0x7FF7, 0x92FC, 0x8043, 0x9331, 0x8090, 0x9349, 0x813D, 0x92D1, 0x81E3, 0x9264, 0x8227, 0x91E5, 0x825B, 0x915D, 0x8280, 0x90D3, 0x8296, 0x8FA0, 0x829A, 0x8F2C, 0x8286, 0x8EE7, 0x8273, 0x8E78, 0x824A, 0x8DA9, 0x81D4, 0x8CB9, 0x8127, 0x8B68, 0x802C, 0x8B22, 0x8001, 0x8AC3, 0x7FE7, 0x8A50, 0x7FF4, 0x88FD, 0x8068, 0x87A4, 0x811D, 0x879E, 0x812D, 0x8904, 0x81F1, 0x89D4, 0x8285, 0x8A7C, 0x8343, 0x8A94, 0x8431, 0x8A4E, 0x84A1, 0x89E8, 0x850E, 0x892F, 0x85E5, 0x88B0, 0x86E5, 0x88C0, 0x8757, 0x88F2, 0x878D, 0x8927, 0x87AD, 0x8ABF, 0x8821, 0x8B0E, 0x881E, 0x8B70, 0x8811, 0x8C1B, 0x87D6, 0x8C9B, 0x8776, 0x8CC4, 0x873D, 0x8CD3, 0x8705, 0x8CA2, 0x86A3, 0x8C06, 0x8662, 0x8B39, 0x864F, 0x8A77, 0x8662, 0x89F9, 0x864D, 0x8A10, 0x8606, 0x8A66, 0x85F7, 0x8B35, 0x85DC, 0x8C50, 0x85FD, 0x8D3C, 0x8663, 0x8D94, 0x870A, 0x8D7D, 0x875F, 0x8D3A, 0x87B8, 0x8CB1, 0x882D, 0x8BC1, 0x888C, 0x8B30, 0x88A7, 0x8A8D, 0x88AE, 0x89EE, 0x8898, 0x896E, 0x887E, 0x8869, 0x882D, 0x87EE, 0x87EA, 0x87A4, 0x87A8, 0x878E, 0x8785, 0x874D, 0x86E3, 0x875D, 0x8637, 0x87FD, 0x8466, 0x8705, 0x835A, 0x86B8, 0x8359, 0x84A4, 0x8358, 0x7F20, 0x851B, 0x7F13, 0x864D, 0x8016, 0x86F9, 0x818E, 0x87D8, 0x823B, 0x8869, 0x8272, 0x88C9, 0x8276, 0x8915, 0x8266, 0x893D, 0x81FB, 0x89D8, 0x8197, 0x8A21, 0x8119, 0x8A62, 0x80A7, 0x8A8A, 0x8016, 0x8AAA, 0x7EDC, 0x8AAE, 0x7DC5, 0x8A63, 0x7D55, 0x8A29, 0x7CFA, 0x89E5, 0x7CAD, 0x8939, 0x7D1B, 0x8895, 0x7E00, 0x8825, 0x7F27, 0x8800, 0x7F66, 0x880F, 0x7F69, 0x8850, 0x7E49, 0x8873, 0x7D9A, 0x88C9, 0x7D4F, 0x893E, 0x7D8B, 0x89B2, 0x7DD8, 0x89E6, 0x7E36, 0x8A10, 0x7F02, 0x8A40, 0x7FDB, 0x8A34, 0x8046, 0x8A16, 0x8091, 0x89F5, 0x80A5, 0x89EB, 0x80FE, 0x89AB, 0x8126, 0x8981, 0x8159, 0x8918, 0x814F, 0x88E6, 0x8128, 0x88B8, 0x8094, 0x8856, 0x7EFC, 0x8796, 0x7D74, 0x86E7, 0x7D3D, 0x86C5, 0x7CD8, 0x8674, 0x7C98, 0x8605, 0x7CA0, 0x8536, 0x7D7C, 0x83E6, 0x7E07, 0x8357, 0x7DED, 0x835B, 0x79CC, 0x843E, 0x7962, 0x8448, 0x77CB, 0x8450, 0x76F3, 0x8438, 0x763E, 0x841E, 0x7502, 0x83FE, 0x746C, 0x83FD, 0x73E4, 0x840A, 0x72CE, 0x8444, 0x729B, 0x8457, 0x71E6, 0x84B7, 0x71B5, 0x84EB, 0x719B, 0x853B, 0x719B, 0x8558, 0x71D4, 0x85E0, 0x72B0, 0x8642, 0x73D4, 0x8661, 0x74B3, 0x8616, 0x74AD, 0x84D7, 0x74B2, 0x84B3, 0x74B5, 0x849B, 0x751E, 0x8496, 0x753B, 0x84B8, 0x75C5, 0x856E, 0x756D, 0x865A, 0x74D0, 0x86B8, 0x73FA, 0x86EA, 0x7250, 0x86CF, 0x70E7, 0x863F, 0x707E, 0x85C8, 0x705F, 0x8549, 0x7075, 0x84CC, 0x70AC, 0x8475, 0x70CD, 0x8452, 0x71FF, 0x839C, 0x7287, 0x8376, 0x736A, 0x833A, 0x7443, 0x8319, 0x751E, 0x8311, 0x76AC, 0x8327, 0x77C4, 0x8341, 0x7810, 0x8340, 0x799F, 0x8313, 0x7A2A, 0x82EA, 0x7B24, 0x8281, 0x7BE4, 0x820C, 0x7BEC, 0x81B1, 0x7A5E, 0x81C8, 0x7809, 0x81ED, 0x7751, 0x81F8, 0x7664, 0x81EF, 0x7571, 0x81B4, 0x74BB, 0x8141, 0x7483, 0x80F9, 0x7408, 0x802F, 0x73D9, 0x7FEB, 0x7359, 0x7F50, 0x72A0, 0x7EC4, 0x719E, 0x7E89, 0x7074, 0x7EA8, 0x7015, 0x7ECC, 0x6FD0, 0x7EF8, 0x6FA3, 0x7F19, 0x6F6B, 0x7FBB, 0x6F93, 0x8017, 0x6FA7, 0x8032, 0x6FD7, 0x805A, 0x70DF, 0x8092, 0x7205, 0x805A, 0x729E, 0x7FCB, 0x72B3, 0x7FBC, 0x7309, 0x7FA6, 0x733B, 0x7FDE, 0x72F9, 0x804B, 0x726D, 0x80A7, 0x70E6, 0x80FB, 0x700D, 0x80EC, 0x6F48, 0x80A8, 0x6EFC, 0x8073, 0x6EC1, 0x8026, 0x6E93, 0x7FCC, 0x6ED4, 0x7ED8, 0x6F54, 0x7E72, 0x6FCB, 0x7E3A, 0x700B, 0x7E25, 0x71AB, 0x7DED, 0x7356, 0x7E3E, 0x7472, 0x7EF4, 0x7536, 0x7FBD, 0x75DA, 0x8075, 0x7628, 0x80B6, 0x767B, 0x80D8, 0x76D9, 0x80EF, 0x7755, 0x80FC, 0x7881, 0x80D5, 0x7931, 0x8093, 0x7A00, 0x801E, 0x799B, 0x7D9B, 0x789A, 0x7CD8, 0x77C0, 0x7BE5, 0x7783, 0x7B55, 0x7787, 0x7AB9, 0x77AE, 0x7A67, 0x77E6, 0x7A1D, 0x781E, 0x79CD, 0x785E, 0x7909, 0x7853, 0x78C0, 0x7823, 0x788B, 0x7808, 0x7875, 0x7649, 0x77E8, 0x74B6, 0x7869, 0x7488, 0x78B3, 0x7472, 0x7901, 0x74D2, 0x796F, 0x75D8, 0x799A, 0x76EE, 0x7971, 0x774A, 0x797A, 0x7751, 0x79B4, 0x76A0, 0x79F0, 0x75E4, 0x7A0A, 0x7454, 0x79E1, 0x73AF, 0x7986, 0x7369, 0x7909, 0x7374, 0x7891, 0x739D, 0x783C, 0x73B6, 0x781E, 0x74B7, 0x7768, 0x765D, 0x772C, 0x77ED, 0x7769, 0x7932, 0x77FC, 0x7979, 0x7836, 0x79B8, 0x787B, 0x79DF, 0x7912, 0x7998, 0x7A14, 0x7967, 0x7AB4, 0x796A, 0x7AD8, 0x79C5, 0x7B60, 0x7A9D, 0x7BE9, 0x7B72, 0x7C47, 0x7EBA, 0x7BD6, 0x8206, 0x7CA8, 0x82FA, 0x7C2E, 0x8391, 0x7BB4, 0x83F6, 0x7B40, 0x8413, 0x7AD0, 0x83DD, 0x7A71, 0x838A, 0x7A39, 0x8296, 0x79B7, 0x80F3, 0x78FA, 0x8016, 0x788A, 0x7FB4, 0x7833, 0x7F8D, 0x77DF, 0x7F92, 0x77A9, 0x7FB3, 0x7718, 0x7FF6, 0x76C2, 0x8036, 0x768A, 0x8097, 0x764A, 0x80DF, 0x762A, 0x813C, 0x7605, 0x8275, 0x75D5}; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/colors.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/colors.h index 055719d99b..1bcf084f5d 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/colors.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/colors.h @@ -5,6 +5,7 @@ /**************************************************************************** * Written By Mark Pelletier 2017 - Aleph Objects, Inc. * * Written By Marcio Teixeira 2018 - Aleph Objects, Inc. * + * Written By Marcio Teixeira 2019 - Cocoa Press * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -23,16 +24,16 @@ #pragma once namespace Theme { - #ifdef LULZBOT_USE_BIOPRINTER_UI + #ifdef TOUCH_UI_LULZBOT_BIO // The Lulzbot Bio uses the color PANTONE 2175C on the case silkscreen. // This translates to HSL(208°, 100%, 39%) as an accent color on the GUI. constexpr int accent_hue = 208; constexpr float accent_sat = 0.5; - constexpr uint32_t logo_bg = 0xffffff; - constexpr uint32_t logo_fg = 0xffffff; - constexpr uint32_t logo_stroke = hsl_to_rgb(accent_hue, 1.0, 0.39); + constexpr uint32_t logo_bg_rgb = 0xffffff; + constexpr uint32_t logo_fill_rgb = 0xffffff; + constexpr uint32_t logo_stroke_rgb = hsl_to_rgb(accent_hue, 1.0, 0.39); #else // The Lulzbot logo uses the color PANTONE 382c. // This translates to HSL(68°, 68%, 52%) as an accent color on the GUI. @@ -40,19 +41,28 @@ namespace Theme { constexpr int accent_hue = 68; constexpr float accent_sat = 0.68; - constexpr uint32_t logo_bg = hsl_to_rgb(accent_hue, 0.77, 0.64); - constexpr uint32_t logo_fg = hsl_to_rgb(accent_hue, 0.68, 0.52); // Lulzbot Green - constexpr uint32_t logo_stroke = 0x000000; + constexpr uint32_t logo_bg_rgb = hsl_to_rgb(accent_hue, 0.77, 0.64); + constexpr uint32_t logo_fill_rgb = hsl_to_rgb(accent_hue, 0.68, 0.52); // Lulzbot Green + constexpr uint32_t logo_stroke_rgb = 0x000000; #endif // Shades of accent color - constexpr uint32_t accent_color_1 = hsl_to_rgb(accent_hue, accent_sat, 0.26); // Darkest - constexpr uint32_t accent_color_2 = hsl_to_rgb(accent_hue, accent_sat, 0.39); - constexpr uint32_t accent_color_3 = hsl_to_rgb(accent_hue, accent_sat, 0.52); - constexpr uint32_t accent_color_4 = hsl_to_rgb(accent_hue, accent_sat, 0.65); - constexpr uint32_t accent_color_5 = hsl_to_rgb(accent_hue, accent_sat, 0.78); - constexpr uint32_t accent_color_6 = hsl_to_rgb(accent_hue, accent_sat, 0.91); // Lightest + #ifdef TOUCH_UI_COCOA_PRESS + constexpr uint32_t accent_color_1 = hsl_to_rgb(12.8,0.597,0.263); // Darkest + constexpr uint32_t accent_color_2 = hsl_to_rgb(12.8,0.597,0.263); + constexpr uint32_t accent_color_3 = hsl_to_rgb( 9.6,0.664,0.443); + constexpr uint32_t accent_color_4 = hsl_to_rgb(16.3,0.873,0.537); + constexpr uint32_t accent_color_5 = hsl_to_rgb(23.0,0.889,0.539); + constexpr uint32_t accent_color_6 = hsl_to_rgb(23.0,0.889,0.539); // Lightest + #else + constexpr uint32_t accent_color_1 = hsl_to_rgb(accent_hue, accent_sat, 0.26); // Darkest + constexpr uint32_t accent_color_2 = hsl_to_rgb(accent_hue, accent_sat, 0.39); + constexpr uint32_t accent_color_3 = hsl_to_rgb(accent_hue, accent_sat, 0.52); + constexpr uint32_t accent_color_4 = hsl_to_rgb(accent_hue, accent_sat, 0.65); + constexpr uint32_t accent_color_5 = hsl_to_rgb(accent_hue, accent_sat, 0.78); + constexpr uint32_t accent_color_6 = hsl_to_rgb(accent_hue, accent_sat, 0.91); // Lightest + #endif // Shades of gray @@ -65,7 +75,7 @@ namespace Theme { constexpr uint32_t gray_color_5 = hsl_to_rgb(accent_hue, gray_sat, 0.78); constexpr uint32_t gray_color_6 = hsl_to_rgb(accent_hue, gray_sat, 0.91); // Lightest - #ifndef LULZBOT_USE_BIOPRINTER_UI + #if DISABLED(TOUCH_UI_LULZBOT_BIO) && DISABLED(TOUCH_UI_COCOA_PRESS) // Lulzbot TAZ Pro constexpr uint32_t theme_darkest = gray_color_1; constexpr uint32_t theme_dark = gray_color_2; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/marlin_bootscreen_landscape.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/marlin_bootscreen_landscape.h new file mode 100644 index 0000000000..335e5cb24c --- /dev/null +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/marlin_bootscreen_landscape.h @@ -0,0 +1,43 @@ + +/**************************************************************************** + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * To view a copy of the GNU General Public License, go to the following * + * location: . * + ****************************************************************************/ + +/** + * This file was auto-generated using "svg2cpp.pl" + * + * The encoding consists of x,y pairs with the min and max scaled to + * 0x0000 and 0xFFFE. A single 0xFFFF in the data stream indicates the + * start of a new closed path. + */ + +#pragma once + +constexpr float x_min = 0.000000; + +constexpr float x_max = 480.000000; + +constexpr float y_min = 0.000000; + +constexpr float y_max = 272.000000; + +const PROGMEM uint16_t logo_fill[] = {0x419D, 0x546F, 0x3D05, 0x5615, 0x3942, 0x5A92, 0x36B7, 0x6136, 0x35C8, 0x6950, 0x35C8, 0x96B0, 0x36B7, 0x9ECA, 0x3942, 0xA56E, 0x3D05, 0xA9EB, 0x419D, 0xAB91, 0xBE60, 0xAB91, 0xC2F8, 0xA9EB, 0xC6BB, 0xA56E, 0xC946, 0x9ECA, 0xCA35, 0x96B0, 0xCA32, 0x546C, 0x419D, 0x546F}; + +const PROGMEM uint16_t logo_stroke[] = {0xADF3, 0x546C, 0x419D, 0x546F, 0x3D05, 0x5615, 0x3942, 0x5A92, 0x36B7, 0x6136, 0x35C8, 0x6950, 0x35C8, 0x96B0, 0x36B7, 0x9ECA, 0x3942, 0xA56E, 0x3D05, 0xA9EB, 0x419D, 0xAB91, 0xBE60, 0xAB91, 0xC2F8, 0xA9EB, 0xC6BB, 0xA56E, 0xC946, 0x9ECA, 0xCA35, 0x96B0, 0xCA32, 0x546C, 0xADF3, 0x546C, 0xFFFF, 0x419D, 0x5913, 0xB08C, 0x5913, 0xC794, 0x8250, 0xC794, 0x96B0, 0xC6DA, 0x9CFF, 0xC4E1, 0xA229, 0xC1F4, 0xA5A5, 0xBE60, 0xA6ED, 0x419D, 0xA6ED, 0x3E09, 0xA5A5, 0x3B1C, 0xA229, 0x3923, 0x9CFF, 0x3869, 0x96B0, 0x3869, 0x6950, 0x3923, 0x6301, 0x3B1C, 0x5DD7, 0x3E09, 0x5A5B, 0x419D, 0x5913, 0xFFFF, 0xAC7A, 0x8620, 0xAC7A, 0x9373, 0xA767, 0x9373, 0xA767, 0x75CB, 0xA1C6, 0x75CB, 0xA1C6, 0x9373, 0xA1C6, 0x9C8E, 0xA767, 0x9C8E, 0xAC7A, 0x9C8E, 0xB21C, 0x9C8E, 0xB21C, 0x9373, 0xB21C, 0x85E7, 0xB350, 0x8093, 0xB65F, 0x7E86, 0xB9D5, 0x8165, 0xBA83, 0x85E7, 0xBA83, 0x9C8E, 0xBEFE, 0x9C8E, 0xC024, 0x99E1, 0xC024, 0x8620, 0xBF7B, 0x7F22, 0xBD8F, 0x79A9, 0xBA7E, 0x7617, 0xB65F, 0x74D0, 0xB24F, 0x7622, 0xAF30, 0x79C6, 0xAD2F, 0x7F43, 0xAC7A, 0x8620, 0xAC7A, 0x8620, 0xAC7A, 0x8620, 0xFFFF, 0x8179, 0x9C8E, 0x7CE9, 0x9C8E, 0x7747, 0x9C8E, 0x7747, 0x92EC, 0x7747, 0x8949, 0x75A2, 0x81A3, 0x71A6, 0x7E73, 0x6DAB, 0x818B, 0x6C05, 0x88FC, 0x6DAF, 0x9019, 0x71C7, 0x92EC, 0x7505, 0x92EC, 0x7505, 0x9C8E, 0x7118, 0x9C8E, 0x6CD3, 0x9B06, 0x696B, 0x96D6, 0x6729, 0x909E, 0x6658, 0x88FC, 0x672D, 0x8133, 0x6980, 0x7AC7, 0x6D13, 0x766C, 0x71A6, 0x74D0, 0x7632, 0x766D, 0x79C2, 0x7AD1, 0x7C14, 0x8153, 0x7CE9, 0x8949, 0x7CE9, 0x92EC, 0x8179, 0x92EC, 0x8179, 0x8620, 0x822E, 0x7F43, 0x842E, 0x79C6, 0x874E, 0x7622, 0x8B5E, 0x74D0, 0x8F7C, 0x7617, 0x928E, 0x79A9, 0x9479, 0x7F22, 0x9523, 0x8620, 0x9523, 0x87DB, 0x8F81, 0x87DB, 0x8F81, 0x85E7, 0x8ED4, 0x8165, 0x8B5E, 0x7E86, 0x884F, 0x8093, 0x871A, 0x85E7, 0x871A, 0x92EC, 0x871A, 0x9C8F, 0x8179, 0x9C8F, 0x8179, 0x9C8E, 0x8179, 0x9C8E, 0xFFFF, 0x6515, 0x79DB, 0x644C, 0x7281, 0x6218, 0x6C86, 0x5EB2, 0x6882, 0x5A56, 0x670A, 0x55D9, 0x68E0, 0x5272, 0x6DD0, 0x4F0B, 0x68E0, 0x4A8E, 0x670A, 0x4638, 0x6882, 0x42D5, 0x6C86, 0x40A2, 0x7281, 0x3FD9, 0x79DB, 0x3FD9, 0x9AC9, 0x40E4, 0x9C8E, 0x456F, 0x9C8E, 0x456F, 0x79B5, 0x46D4, 0x735D, 0x4A8E, 0x70C0, 0x4E3E, 0x735D, 0x4FA1, 0x79B5, 0x4FA1, 0x9C8E, 0x554D, 0x9C8E, 0x554D, 0x79B5, 0x56A7, 0x735D, 0x5A56, 0x70C0, 0x5E0C, 0x735D, 0x5F74, 0x79B5, 0x5F74, 0x9C8E, 0x6515, 0x9C8E, 0x6515, 0x79DB, 0x6515, 0x79DB, 0x6515, 0x79DB, 0xFFFF, 0x9672, 0x8C4C, 0x9714, 0x9379, 0x98F5, 0x98D2, 0x9C0B, 0x9BF4, 0xA04C, 0x9C7B, 0xA04C, 0x9373, 0x9D2B, 0x920C, 0x9C1E, 0x8C4C, 0x9C1E, 0x648E, 0x9672, 0x648E, 0x9672, 0x8C4C, 0x9672, 0x8C4C, 0x9672, 0x8C4C, 0xFFFF, 0xA767, 0x7194, 0xA767, 0x6C02, 0xA692, 0x687A, 0xA496, 0x670A, 0xA291, 0x687A, 0xA1BB, 0x6C02, 0xA1BB, 0x7194, 0xA767, 0x7194, 0xA767, 0x7194, 0xA767, 0x7194}; + +#define LOGO_BACKGROUND logo_bg_rgb +#define LOGO_PAINT_PATHS \ + LOGO_PAINT_PATH(logo_stroke_rgb, logo_stroke) \ + LOGO_PAINT_PATH(logo_fill_rgb, logo_fill) + diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/marlin_bootscreen_portrait.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/marlin_bootscreen_portrait.h new file mode 100644 index 0000000000..6c809e61cb --- /dev/null +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/theme/marlin_bootscreen_portrait.h @@ -0,0 +1,42 @@ + +/**************************************************************************** + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * To view a copy of the GNU General Public License, go to the following * + * location: . * + ****************************************************************************/ + +/** + * This file was auto-generated using "svg2cpp.pl" + * + * The encoding consists of x,y pairs with the min and max scaled to + * 0x0000 and 0xFFFE. A single 0xFFFF in the data stream indicates the + * start of a new closed path. + */ + +#pragma once + +constexpr float x_min = 0.000000; + +constexpr float x_max = 272.000000; + +constexpr float y_min = 0.000000; + +constexpr float y_max = 480.000000; + +const PROGMEM uint16_t logo_fill[] = {0x3C19, 0x70C5, 0x371A, 0x7159, 0x3302, 0x72EA, 0x303D, 0x753C, 0x2F39, 0x7811, 0x2F39, 0x87ED, 0x303D, 0x8AC2, 0x3302, 0x8D14, 0x371A, 0x8EA5, 0x3C19, 0x8F39, 0xC3E4, 0x8F39, 0xC8E3, 0x8EA5, 0xCCFB, 0x8D14, 0xCFC0, 0x8AC2, 0xD0C4, 0x87ED, 0xD0C0, 0x70C4, 0x3C19, 0x70C5}; + +const PROGMEM uint16_t logo_stroke[] = {0x3C19, 0x70C5, 0x371A, 0x7159, 0x3302, 0x72EA, 0x303D, 0x753C, 0x2F39, 0x7811, 0x2F39, 0x87ED, 0x303D, 0x8AC2, 0x3302, 0x8D14, 0x371A, 0x8EA5, 0x3C19, 0x8F39, 0xC3E4, 0x8F39, 0xC8E3, 0x8EA5, 0xCCFB, 0x8D14, 0xCFC0, 0x8AC2, 0xD0C4, 0x87ED, 0xD0C0, 0x70C4, 0x3C19, 0x70C5, 0xFFFF, 0x3C19, 0x7264, 0xB4D6, 0x7264, 0xCDE7, 0x80CE, 0xCDE7, 0x87ED, 0xCD1D, 0x8A21, 0xCAF7, 0x8BEF, 0xC7C8, 0x8D27, 0xC3E4, 0x8D9A, 0x3C19, 0x8D9A, 0x3835, 0x8D27, 0x3506, 0x8BEF, 0x32E0, 0x8A21, 0x3216, 0x87ED, 0x3216, 0x7811, 0x32E0, 0x75DD, 0x3506, 0x740F, 0x3835, 0x72D7, 0x3C19, 0x7264, 0xFFFF, 0xB069, 0x8223, 0xB069, 0x86CB, 0xAAE2, 0x86CB, 0xAAE2, 0x7C6E, 0xA4C2, 0x7C6E, 0xA4C2, 0x86CB, 0xA4C2, 0x89FA, 0xAAE2, 0x89FA, 0xB069, 0x89FA, 0xB689, 0x89FA, 0xB689, 0x86CB, 0xB689, 0x820F, 0xB7D9, 0x8033, 0xBB2E, 0x7F7B, 0xBEF2, 0x807C, 0xBFAE, 0x820F, 0xBFAE, 0x89FA, 0xC48F, 0x89FA, 0xC5CF, 0x890A, 0xC5CF, 0x8223, 0xC517, 0x7FB2, 0xC300, 0x7DC8, 0xBFA9, 0x7C88, 0xBB2E, 0x7C16, 0xB6C1, 0x7C8C, 0xB35B, 0x7DD2, 0xB12D, 0x7FBD, 0xB069, 0x8223, 0xB069, 0x8223, 0xB069, 0x8223, 0xFFFF, 0x819B, 0x89FA, 0x7CA3, 0x89FA, 0x7682, 0x89FA, 0x7682, 0x869C, 0x7682, 0x833E, 0x74B7, 0x8092, 0x7062, 0x7F74, 0x6C0C, 0x8089, 0x6A41, 0x8323, 0x6C10, 0x859F, 0x7085, 0x869C, 0x740C, 0x869C, 0x740C, 0x89FA, 0x6FC7, 0x89FA, 0x6B21, 0x8971, 0x676C, 0x87FA, 0x64F8, 0x85CE, 0x6414, 0x8323, 0x64FC, 0x806A, 0x6784, 0x7E2C, 0x6B67, 0x7CA6, 0x7062, 0x7C16, 0x7555, 0x7CA6, 0x7935, 0x7E2F, 0x7BBC, 0x8076, 0x7CA3, 0x833E, 0x7CA3, 0x869C, 0x819A, 0x869C, 0x819A, 0x8223, 0x825F, 0x7FBD, 0x848D, 0x7DD2, 0x87F3, 0x7C8C, 0x8C60, 0x7C16, 0x90DB, 0x7C88, 0x9432, 0x7DC8, 0x9648, 0x7FB2, 0x9701, 0x8223, 0x9701, 0x82BE, 0x90E0, 0x82BE, 0x90E0, 0x820F, 0x9024, 0x807C, 0x8C60, 0x7F7B, 0x890B, 0x8033, 0x87BB, 0x820F, 0x87BB, 0x869C, 0x87BB, 0x89FA, 0x819B, 0x89FA, 0x819B, 0x89FA, 0x819B, 0x89FA, 0xFFFF, 0x62B5, 0x7DD9, 0x61DA, 0x7B47, 0x5F73, 0x7931, 0x5BC1, 0x77C9, 0x5702, 0x7746, 0x521F, 0x77EA, 0x4E6B, 0x79A4, 0x4AB8, 0x77EA, 0x45D5, 0x7746, 0x411D, 0x77C9, 0x3D6E, 0x7931, 0x3B09, 0x7B47, 0x3A2E, 0x7DD9, 0x3A2E, 0x895C, 0x3B51, 0x89FA, 0x4043, 0x89FA, 0x4043, 0x7DCC, 0x41C6, 0x7B95, 0x45D5, 0x7AAB, 0x49D9, 0x7B95, 0x4B5B, 0x7DCC, 0x4B5B, 0x89FA, 0x5188, 0x89FA, 0x5188, 0x7DCC, 0x52FF, 0x7B95, 0x5702, 0x7AAB, 0x5B0C, 0x7B95, 0x5C94, 0x7DCC, 0x5C94, 0x89FA, 0x62B5, 0x89FA, 0x62B5, 0x7DD9, 0x62B5, 0x7DD9, 0x62B5, 0x7DD9, 0xFFFF, 0x986E, 0x844B, 0x991E, 0x86CD, 0x9B2A, 0x88AC, 0x9E85, 0x89C4, 0xA327, 0x89F3, 0xA327, 0x86CB, 0x9FBF, 0x864E, 0x9E9A, 0x844B, 0x9E9A, 0x7668, 0x986E, 0x7668, 0x986E, 0x844B, 0x986E, 0x844B, 0x986E, 0x844B, 0xFFFF, 0xAAE2, 0x7AF5, 0xAAE2, 0x7902, 0xA9FB, 0x77C7, 0xA7D2, 0x7746, 0xA59F, 0x77C7, 0xA4B6, 0x7902, 0xA4B6, 0x7AF5, 0xAAE2, 0x7AF5, 0xAAE2, 0x7AF5, 0xAAE2, 0x7AF5}; + +#define LOGO_BACKGROUND logo_bg_rgb +#define LOGO_PAINT_PATHS \ + LOGO_PAINT_PATH(logo_stroke_rgb, logo_stroke) \ + LOGO_PAINT_PATH(logo_fill_rgb, logo_fill) \ No newline at end of file diff --git a/Marlin/src/lcd/extensible_ui/ui_api.cpp b/Marlin/src/lcd/extensible_ui/ui_api.cpp index 83190438fd..d0676b7f88 100644 --- a/Marlin/src/lcd/extensible_ui/ui_api.cpp +++ b/Marlin/src/lcd/extensible_ui/ui_api.cpp @@ -581,6 +581,7 @@ namespace ExtUI { } void setAxisMaxFeedrate_mm_s(const feedRate_t value, const extruder_t extruder) { + UNUSED_E(extruder); planner.set_max_feedrate(E_AXIS_N(extruder - E0), value); } @@ -598,6 +599,7 @@ namespace ExtUI { } void setAxisMaxAcceleration_mm_s2(const float value, const extruder_t extruder) { + UNUSED_E(extruder); planner.set_max_acceleration(E_AXIS_N(extruder - E0), value); } @@ -908,6 +910,7 @@ namespace ExtUI { } void printFile(const char *filename) { + UNUSED(filename); IFSD(card.openAndPrintFile(filename), NOOP); } @@ -961,6 +964,8 @@ namespace ExtUI { card.getfilename_sorted(nr); return card.filename[0] != '\0'; #else + UNUSED(pos); + UNUSED(skip_range_check); return false; #endif } @@ -1004,6 +1009,8 @@ namespace ExtUI { #if ENABLED(SDSUPPORT) card.cd(dirname); num_files = 0xFFFF; + #else + UNUSED(dirname); #endif } diff --git a/Marlin/src/module/configuration_store.cpp b/Marlin/src/module/configuration_store.cpp index 3d2d78875b..993dfbf5e7 100644 --- a/Marlin/src/module/configuration_store.cpp +++ b/Marlin/src/module/configuration_store.cpp @@ -446,6 +446,13 @@ void MarlinSettings::postprocess() { #endif // SD_FIRMWARE_UPDATE +#ifdef ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE + static_assert( + EEPROM_OFFSET + sizeof(SettingsData) < ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE, + "ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE is insufficient to capture all EEPROM data." + ); +#endif + #define DEBUG_OUT ENABLED(EEPROM_CHITCHAT) #include "../core/debug_out.h" @@ -2076,9 +2083,21 @@ void MarlinSettings::postprocess() { return !eeprom_error; } + #ifdef ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE + extern bool restoreEEPROM(); + #endif + bool MarlinSettings::validate() { validating = true; + #ifdef ARCHIM2_SPI_FLASH_EEPROM_BACKUP_SIZE + bool success = _load(); + if(!success && restoreEEPROM()) { + SERIAL_ECHOLNPGM("Recovered backup EEPROM settings from SPI Flash"); + success = _load(); + } + #else const bool success = _load(); + #endif validating = false; return success; } diff --git a/Marlin/src/module/temperature.h b/Marlin/src/module/temperature.h index 588c451993..6a746626d8 100644 --- a/Marlin/src/module/temperature.h +++ b/Marlin/src/module/temperature.h @@ -478,6 +478,7 @@ class Temperature { #endif static inline uint8_t scaledFanSpeed(const uint8_t target, const uint8_t fs) { + UNUSED(target); // Potentially unused! return (fs * uint16_t( #if ENABLED(ADAPTIVE_FAN_SLOWING) fan_speed_scaler[target] diff --git a/config/default/Configuration_adv.h b/config/default/Configuration_adv.h index d4c758b343..9d085eb305 100644 --- a/config/default/Configuration_adv.h +++ b/config/default/Configuration_adv.h @@ -1269,6 +1269,9 @@ // Output extra debug info for Touch UI events //#define TOUCH_UI_DEBUG + + // Enable developers menu (access by touching the copyright text on the About Printer) + //#define TOUCH_UI_DEVELOPER_MENU #endif //