From 1de41250e55f384181df11335df44794f61c1005 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 14 Oct 2020 13:57:50 -0500 Subject: [PATCH 01/11] Improve STM32 FastIO Co-Authored-By: Serhiy-K <52166448+Serhiy-K@users.noreply.github.com> --- Marlin/src/HAL/STM32/fastio.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Marlin/src/HAL/STM32/fastio.h b/Marlin/src/HAL/STM32/fastio.h index f000d68cf0c3..786be8b7a845 100644 --- a/Marlin/src/HAL/STM32/fastio.h +++ b/Marlin/src/HAL/STM32/fastio.h @@ -54,13 +54,14 @@ void FastIO_init(); // Must be called before using fast io macros if (V) FastIOPortMap[STM_PORT(digitalPin[IO])]->BSRR = _BV32(STM_PIN(digitalPin[IO])) ; \ else FastIOPortMap[STM_PORT(digitalPin[IO])]->BRR = _BV32(STM_PIN(digitalPin[IO])) ; \ }while(0) + #define _READ(IO) bool(READ_BIT(FastIOPortMap[STM_PORT(digitalPin[IO])]->IDR, _BV32(STM_PIN(digitalPin[IO])))) + #define _TOGGLE(IO) (FastIOPortMap[STM_PORT(digitalPin[IO])]->ODR ^= _BV32(STM_PIN(digitalPin[IO]))) #else - #define _WRITE(IO, V) (FastIOPortMap[STM_PORT(digitalPin[IO])]->BSRR = _BV32(STM_PIN(digitalPin[IO]) + ((V) ? 0 : 16))) + #define _WRITE(IO, V) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->BSRR = _BV32((digitalPinToPinName(IO) & 0xF) + ((V) ? 0 : 16))) + #define _READ(IO) bool(READ_BIT(FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->IDR, _BV32(digitalPinToPinName(IO) & 0xF))) + #define _TOGGLE(IO) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->ODR ^= _BV32(digitalPinToPinName(IO) & 0xF)) #endif -#define _READ(IO) bool(READ_BIT(FastIOPortMap[STM_PORT(digitalPin[IO])]->IDR, _BV32(STM_PIN(digitalPin[IO])))) -#define _TOGGLE(IO) (FastIOPortMap[STM_PORT(digitalPin[IO])]->ODR ^= _BV32(STM_PIN(digitalPin[IO]))) - #define _GET_MODE(IO) #define _SET_MODE(IO,M) pinMode(IO, M) #define _SET_OUTPUT(IO) pinMode(IO, OUTPUT) //!< Output Push Pull Mode & GPIO_NOPULL From f8612efc64cbb31f254aa70c0a4a157900462cc2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 15 Oct 2020 03:03:33 -0500 Subject: [PATCH 02/11] Use STM_PIN --- Marlin/src/HAL/STM32/fastio.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Marlin/src/HAL/STM32/fastio.h b/Marlin/src/HAL/STM32/fastio.h index 786be8b7a845..0e4c68beab0e 100644 --- a/Marlin/src/HAL/STM32/fastio.h +++ b/Marlin/src/HAL/STM32/fastio.h @@ -57,9 +57,9 @@ void FastIO_init(); // Must be called before using fast io macros #define _READ(IO) bool(READ_BIT(FastIOPortMap[STM_PORT(digitalPin[IO])]->IDR, _BV32(STM_PIN(digitalPin[IO])))) #define _TOGGLE(IO) (FastIOPortMap[STM_PORT(digitalPin[IO])]->ODR ^= _BV32(STM_PIN(digitalPin[IO]))) #else - #define _WRITE(IO, V) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->BSRR = _BV32((digitalPinToPinName(IO) & 0xF) + ((V) ? 0 : 16))) - #define _READ(IO) bool(READ_BIT(FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->IDR, _BV32(digitalPinToPinName(IO) & 0xF))) - #define _TOGGLE(IO) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->ODR ^= _BV32(digitalPinToPinName(IO) & 0xF)) + #define _WRITE(IO, V) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->BSRR = _BV32(STM_PIN(digitalPinToPinName(IO)) + ((V) ? 0 : 16))) + #define _READ(IO) bool(READ_BIT(FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->IDR, _BV32(STM_PIN(digitalPinToPinName(IO))))) + #define _TOGGLE(IO) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->ODR ^= _BV32(STM_PIN(digitalPinToPinName(IO)))) #endif #define _GET_MODE(IO) From 804b6f9811b859d95c8924bef5121a5f436dda28 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 15 Oct 2020 03:06:41 -0500 Subject: [PATCH 03/11] Apply for all STM32 --- Marlin/src/HAL/STM32/fastio.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Marlin/src/HAL/STM32/fastio.h b/Marlin/src/HAL/STM32/fastio.h index 0e4c68beab0e..ea28b8f3bfaa 100644 --- a/Marlin/src/HAL/STM32/fastio.h +++ b/Marlin/src/HAL/STM32/fastio.h @@ -51,17 +51,16 @@ void FastIO_init(); // Must be called before using fast io macros #if defined(STM32F0xx) || defined(STM32F1xx) || defined(STM32F3xx) || defined(STM32L0xx) || defined(STM32L4xx) #define _WRITE(IO, V) do { \ - if (V) FastIOPortMap[STM_PORT(digitalPin[IO])]->BSRR = _BV32(STM_PIN(digitalPin[IO])) ; \ - else FastIOPortMap[STM_PORT(digitalPin[IO])]->BRR = _BV32(STM_PIN(digitalPin[IO])) ; \ + if (V) FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->BSRR = _BV32(STM_PIN(digitalPinToPinName(IO))) ; \ + else FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->BRR = _BV32(STM_PIN(digitalPinToPinName(IO))) ; \ }while(0) - #define _READ(IO) bool(READ_BIT(FastIOPortMap[STM_PORT(digitalPin[IO])]->IDR, _BV32(STM_PIN(digitalPin[IO])))) - #define _TOGGLE(IO) (FastIOPortMap[STM_PORT(digitalPin[IO])]->ODR ^= _BV32(STM_PIN(digitalPin[IO]))) #else - #define _WRITE(IO, V) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->BSRR = _BV32(STM_PIN(digitalPinToPinName(IO)) + ((V) ? 0 : 16))) - #define _READ(IO) bool(READ_BIT(FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->IDR, _BV32(STM_PIN(digitalPinToPinName(IO))))) - #define _TOGGLE(IO) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->ODR ^= _BV32(STM_PIN(digitalPinToPinName(IO)))) + #define _WRITE(IO, V) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->BSRR = _BV32(STM_PIN(digitalPinToPinName(IO)) + ((V) ? 0 : 16))) #endif +#define _READ(IO) bool(READ_BIT(FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->IDR, _BV32(STM_PIN(digitalPinToPinName(IO))))) +#define _TOGGLE(IO) (FastIOPortMap[STM_PORT(digitalPinToPinName(IO))]->ODR ^= _BV32(STM_PIN(digitalPinToPinName(IO)))) + #define _GET_MODE(IO) #define _SET_MODE(IO,M) pinMode(IO, M) #define _SET_OUTPUT(IO) pinMode(IO, OUTPUT) //!< Output Push Pull Mode & GPIO_NOPULL From dacfcda6b7dcdb89115e9567c169f94b17acdd9d Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 15 Oct 2020 03:15:56 -0500 Subject: [PATCH 04/11] Use digitalPinToPinName in pins debug --- Marlin/src/HAL/STM32/pinsDebug_STM32duino.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Marlin/src/HAL/STM32/pinsDebug_STM32duino.h b/Marlin/src/HAL/STM32/pinsDebug_STM32duino.h index 09f2bb54e66a..71480153a717 100644 --- a/Marlin/src/HAL/STM32/pinsDebug_STM32duino.h +++ b/Marlin/src/HAL/STM32/pinsDebug_STM32duino.h @@ -51,8 +51,8 @@ * It contains: * - name of the signal * - the Ard_num assigned by the pins_YOUR_BOARD.h file using the platform defines. - * EXAMPLE: "#define KILL_PIN PB1" results in Ard_num of 57. 57 is then used as an - * index into digitalPin[] to get the Port_pin number + * EXAMPLE: "#define KILL_PIN PB1" results in Ard_num of 57. 57 is then used as the + * argument to digitalPinToPinName(IO) to get the Port_pin number * - if it is a digital or analog signal. PWMs are considered digital here. * * pin_xref is a structure generated by this header file. It is generated by the @@ -68,8 +68,6 @@ * signal. The Arduino pin number is listed by the M43 I command. */ -extern const PinName digitalPin[]; // provided by the platform - //////////////////////////////////////////////////////// // // make a list of the Arduino pin numbers in the Port/Pin order @@ -137,7 +135,7 @@ const XrefInfo pin_xref[] PROGMEM = { uint8_t get_pin_mode(const pin_t Ard_num) { uint32_t mode_all = 0; - const PinName dp = digitalPin[Ard_num]; + const PinName dp = digitalPinToPinName(Ard_num); switch (PORT_ALPHA(dp)) { case 'A' : mode_all = GPIOA->MODER; break; case 'B' : mode_all = GPIOB->MODER; break; @@ -218,7 +216,7 @@ bool pwm_status(const pin_t Ard_num) { void pwm_details(const pin_t Ard_num) { if (pwm_status(Ard_num)) { uint32_t alt_all = 0; - const PinName dp = digitalPin[Ard_num]; + const PinName dp = digitalPinToPinName(Ard_num); pin_t pin_number = uint8_t(PIN_NUM(dp)); const bool over_7 = pin_number >= 8; const uint8_t ind = over_7 ? 1 : 0; From f34960e48b21703fd70e5c60ef6fdf1ad50b777d Mon Sep 17 00:00:00 2001 From: Serhiy-K <52166448+Serhiy-K@users.noreply.github.com> Date: Sat, 19 Dec 2020 20:42:04 +0200 Subject: [PATCH 05/11] Update Russian and Ukranian translations --- Marlin/src/lcd/language/language_ru.h | 79 +++++++++++++++++++++++---- Marlin/src/lcd/language/language_uk.h | 78 +++++++++++++++++++++++--- 2 files changed, 139 insertions(+), 18 deletions(-) diff --git a/Marlin/src/lcd/language/language_ru.h b/Marlin/src/lcd/language/language_ru.h index 85dc58a15a67..76e444b48739 100644 --- a/Marlin/src/lcd/language/language_ru.h +++ b/Marlin/src/lcd/language/language_ru.h @@ -43,6 +43,11 @@ namespace Language_ru { PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("SD-карта вставлена"); PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("SD-карта извлечена"); PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Вставьте SD-карту"); + #if LCD_WIDTH > 21 + PROGMEM Language_Str MSG_SD_INIT_FAIL = _UxGT("Сбой инициализации SD"); + #else + PROGMEM Language_Str MSG_SD_INIT_FAIL = _UxGT("Сбой инициализ. SD"); + #endif PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Ошибка считывания"); PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB диск удалён"); PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("Ошибка USB диска"); @@ -65,6 +70,9 @@ namespace Language_ru { PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Парковка Y"); PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Парковка Z"); PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Авто Z-выравнивание"); + PROGMEM Language_Str MSG_ITERATION = _UxGT("G34 Итерация: %i"); + PROGMEM Language_Str MSG_DECREASING_ACCURACY = _UxGT("Уменьшение точности!"); + PROGMEM Language_Str MSG_ACCURACY_ACHIEVED = _UxGT("Точность достигнута"); PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Нулевое положение"); PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Нажмите чтобы начать"); PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Следующая точка"); @@ -98,18 +106,18 @@ namespace Language_ru { PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Охлаждение"); PROGMEM Language_Str MSG_CUTTER_FREQUENCY = _UxGT("Частота"); PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Управление лазером"); - PROGMEM Language_Str MSG_LASER_OFF = _UxGT("Выключить лазер"); - PROGMEM Language_Str MSG_LASER_ON = _UxGT("Включить лазер"); + PROGMEM Language_Str MSG_LASER_TOGGLE = _UxGT("Переключить лазер"); PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Мощность лазера"); PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("Управление шпинделем"); - PROGMEM Language_Str MSG_SPINDLE_OFF = _UxGT("Выключить шпиндель"); - PROGMEM Language_Str MSG_SPINDLE_ON = _UxGT("Включить шпиндель"); + PROGMEM Language_Str MSG_SPINDLE_TOGGLE = _UxGT("Переключить шпиндель"); #if LCD_WIDTH > 21 PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("Мощность шпинделя"); #else PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("Мощн.шпинделя"); #endif + PROGMEM Language_Str MSG_SPINDLE_FORWARD = _UxGT("Шпиндель вперёд"); PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("Инверсия шпинделя"); + PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Включить питание"); PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Выключить питание"); PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Экструзия"); @@ -136,14 +144,15 @@ namespace Language_ru { PROGMEM Language_Str MSG_M48_TEST = _UxGT("M48 тест Z-зонда"); PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Отклонение"); PROGMEM Language_Str MSG_M48_POINT = _UxGT("M48 точка"); + PROGMEM Language_Str MSG_M48_OUT_OF_BOUNDS = _UxGT("Зонд за пределами"); PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Меню IDEX"); + PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Размещение сопел"); PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Авто парковка"); PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Размножение"); PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Зеркальная копия"); PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Полный контроль"); - - PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Размещение сопел"); + PROGMEM Language_Str MSG_IDEX_DUPE_GAP = _UxGT("Дублировать X-зазор"); PROGMEM Language_Str MSG_HOTEND_OFFSET_X = _UxGT("2-е сопло X"); PROGMEM Language_Str MSG_HOTEND_OFFSET_Y = _UxGT("2-е сопло Y"); @@ -165,10 +174,8 @@ namespace Language_ru { PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Двигаемся дальше"); PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Активировать UBL"); PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Деактивировать UBL"); - PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Редактор сеток"); PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Править свою сетку"); - #if LCD_WIDTH > 21 PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Температура стола"); PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Температура стола"); @@ -253,6 +260,7 @@ namespace Language_ru { PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Нет хранилища"); PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Ошибка: Сохран. UBL"); PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Ошибка: Восстан.UBL"); + PROGMEM Language_Str MSG_UBL_Z_OFFSET = _UxGT("Смещение Z: "); PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Смещение Z останов."); PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("UBL пошагово"); PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Строить холодную"); @@ -275,6 +283,14 @@ namespace Language_ru { PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Фиолетовый"); PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Белый"); PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Свет по умолчанию"); + PROGMEM Language_Str MSG_LED_CHANNEL_N = _UxGT("Канал ="); + PROGMEM Language_Str MSG_LEDS2 = _UxGT("Свет #2"); + #if LCD_WIDTH > 21 + PROGMEM Language_Str MSG_NEO2_PRESETS = _UxGT("Свет #2 предустановки"); + #else + PROGMEM Language_Str MSG_NEO2_PRESETS = _UxGT("Свет #2 предустан."); + #endif + PROGMEM Language_Str MSG_NEO2_BRIGHTNESS = _UxGT("Яркость"); PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Свой цвет подсветки"); PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Уровень красного"); PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Уровень зелёного"); @@ -418,9 +434,11 @@ namespace Language_ru { PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("Готово"); PROGMEM Language_Str MSG_BUTTON_BACK = _UxGT("Назад"); PROGMEM Language_Str MSG_BUTTON_PROCEED = _UxGT("Продолжить"); + PROGMEM Language_Str MSG_BUTTON_SKIP = _UxGT("Пропустить"); PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Пауза печати"); PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Продолжить печать"); + PROGMEM Language_Str MSG_HOST_START_PRINT = _UxGT("Старт с хоста"); PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Остановить печать"); PROGMEM Language_Str MSG_PRINTING_OBJECT = _UxGT("Печать объекта"); PROGMEM Language_Str MSG_CANCEL_OBJECT = _UxGT("Завершить объект"); @@ -523,6 +541,7 @@ namespace Language_ru { PROGMEM Language_Str MSG_ZPROBE_XOFFSET = _UxGT("Смещение X"); PROGMEM Language_Str MSG_ZPROBE_YOFFSET = _UxGT("Смещение Y"); PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Смещение Z"); + PROGMEM Language_Str MSG_MOVE_NOZZLE_TO_BED = _UxGT("Двигать сопло к столу"); PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Микрошаг X"); PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Микрошаг Y"); PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Микрошаг Z"); @@ -543,8 +562,10 @@ namespace Language_ru { PROGMEM Language_Str MSG_HEATING = _UxGT("Нагрев..."); PROGMEM Language_Str MSG_COOLING = _UxGT("Охлаждение..."); PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Нагрев стола..."); - PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("Нагрев камеры..."); PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Охлаждение стола..."); + PROGMEM Language_Str MSG_PROBE_HEATING = _UxGT("Нагрев зонда..."); + PROGMEM Language_Str MSG_PROBE_COOLING = _UxGT("Охлаждение зонда..."); + PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("Нагрев камеры..."); PROGMEM Language_Str MSG_CHAMBER_COOLING = _UxGT("Охладжение камеры..."); PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Калибровка Delta"); PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Калибровать X"); @@ -664,6 +685,7 @@ namespace Language_ru { PROGMEM Language_Str MSG_MMU2_RESET = _UxGT("Перезапуск MMU"); PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("Перезапуск MMU..."); PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Удалите и нажмите"); + #if LCD_WIDTH > 21 PROGMEM Language_Str MSG_MIX = _UxGT("Смешивание"); #else @@ -683,8 +705,8 @@ namespace Language_ru { PROGMEM Language_Str MSG_END_VTOOL = _UxGT("Конец В-инструмента"); PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Псевдоним В-инструмента"); PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Сброс В-инструментов"); - PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("В-инструменти сброшены"); PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Смешать В-инструменти"); + PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("В-инструменти сброшены"); #else PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Перекл. смешивание"); PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Актив.В-инструм."); @@ -692,8 +714,8 @@ namespace Language_ru { PROGMEM Language_Str MSG_END_VTOOL = _UxGT("В-инструм.кон."); PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Псевдоним В-инстр."); PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Сброс В-инструм."); - PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("В-инструм. сброшены"); PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Смешать В-инструм."); + PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("В-инструм. сброшены"); #endif PROGMEM Language_Str MSG_START_Z = _UxGT("Начало Z"); PROGMEM Language_Str MSG_END_Z = _UxGT(" Конец Z"); @@ -712,6 +734,21 @@ namespace Language_ru { PROGMEM Language_Str MSG_BAD_PAGE_SPEED = _UxGT("Полохая скор.стран."); #endif + PROGMEM Language_Str MSG_EDIT_PASSWORD = _UxGT("Редактировать пароль"); + PROGMEM Language_Str MSG_LOGIN_REQUIRED = _UxGT("Нужен логин"); + PROGMEM Language_Str MSG_PASSWORD_SETTINGS = _UxGT("Настройки пароля"); + PROGMEM Language_Str MSG_ENTER_DIGIT = _UxGT("Введите цифру"); + PROGMEM Language_Str MSG_CHANGE_PASSWORD = _UxGT("Смените пароль"); + PROGMEM Language_Str MSG_REMOVE_PASSWORD = _UxGT("Удалить пароль"); + PROGMEM Language_Str MSG_PASSWORD_SET = _UxGT("Пароль это "); + PROGMEM Language_Str MSG_START_OVER = _UxGT("Старт через"); + #if LCD_WIDTH > 21 + PROGMEM Language_Str MSG_REMINDER_SAVE_SETTINGS = _UxGT("Запомни для сохранения!"); + #else + PROGMEM Language_Str MSG_REMINDER_SAVE_SETTINGS = _UxGT("Запомни, сохрани!"); + #endif + PROGMEM Language_Str MSG_PASSWORD_REMOVED = _UxGT("Пароль удалён"); + PROGMEM Language_Str MSG_PAUSE_PRINT_PARKING = _UxGT(MSG_1_LINE("Парковка...")); // // Filament Change screens show up to 3 lines on a 4-line display @@ -763,6 +800,26 @@ namespace Language_ru { #endif PROGMEM Language_Str MSG_REHEAT = _UxGT("Возобновить нагрев"); PROGMEM Language_Str MSG_REHEATING = _UxGT("Нагрев..."); + + PROGMEM Language_Str MSG_PROBE_WIZARD = _UxGT("Мастер Z-зонда"); + #if LCD_WIDTH > 21 + PROGMEM Language_Str MSG_PROBE_WIZARD_PROBING = _UxGT("Зондиров. контрольной точки Z"); + PROGMEM Language_Str MSG_PROBE_WIZARD_MOVING = _UxGT("Движение к точке зондирования"); + #else + PROGMEM Language_Str MSG_PROBE_WIZARD_PROBING = _UxGT("Зондир.контр.точки Z"); + PROGMEM Language_Str MSG_PROBE_WIZARD_MOVING = _UxGT("Движ. к точке зондир."); + #endif + + PROGMEM Language_Str MSG_SOUND = _UxGT("Звук"); + + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + PROGMEM Language_Str MSG_TOP_LEFT = _UxGT("Верхний левый"); + PROGMEM Language_Str MSG_BOTTOM_LEFT = _UxGT("Нижний левый"); + PROGMEM Language_Str MSG_TOP_RIGHT = _UxGT("Верхний правый"); + PROGMEM Language_Str MSG_BOTTOM_RIGHT = _UxGT("Нижний правый"); + PROGMEM Language_Str MSG_CALIBRATION_COMPLETED = _UxGT("Калибровка успешна"); + PROGMEM Language_Str MSG_CALIBRATION_FAILED = _UxGT("Ошибка калибровки"); + #endif } #if FAN_COUNT == 1 diff --git a/Marlin/src/lcd/language/language_uk.h b/Marlin/src/lcd/language/language_uk.h index 2aa483de506e..211a5c6fadba 100644 --- a/Marlin/src/lcd/language/language_uk.h +++ b/Marlin/src/lcd/language/language_uk.h @@ -44,6 +44,11 @@ namespace Language_uk { PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("SD-картка вставлена"); PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("SD-картка видалена"); PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Вставте SD-картку"); + #if LCD_WIDTH > 21 + PROGMEM Language_Str MSG_SD_INIT_FAIL = _UxGT("Збій ініціалізації SD"); + #else + PROGMEM Language_Str MSG_SD_INIT_FAIL = _UxGT("Збій ініціаліз. SD"); + #endif PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Помилка зчитування"); PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB диск видалений"); PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("Помилка USB диску"); @@ -67,6 +72,9 @@ namespace Language_uk { PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Паркування Y"); PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Паркування Z"); PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Авто Z-вирівнювання"); + PROGMEM Language_Str MSG_ITERATION = _UxGT("G34 Ітерація: %i"); + PROGMEM Language_Str MSG_DECREASING_ACCURACY = _UxGT("Зменьшення точності!"); + PROGMEM Language_Str MSG_ACCURACY_ACHIEVED = _UxGT("Точність досягнута"); PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Паркування XYZ"); PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Почати"); PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Наступна точка"); @@ -100,8 +108,7 @@ namespace Language_uk { PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Вимкнути нагрів"); PROGMEM Language_Str MSG_CUTTER_FREQUENCY = _UxGT("Частота"); PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Керування лазером"); - PROGMEM Language_Str MSG_LASER_OFF = _UxGT("Вимкнути лазер"); - PROGMEM Language_Str MSG_LASER_ON = _UxGT("Увімкнути лазер"); + PROGMEM Language_Str MSG_LASER_TOGGLE = _UxGT("Перемкнути лазер"); #if LCD_WIDTH > 21 PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Потужність лазера"); PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("Керування шпінделем"); @@ -109,14 +116,15 @@ namespace Language_uk { PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Потуж.лазера"); PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("Керув. шпінделем"); #endif - PROGMEM Language_Str MSG_SPINDLE_OFF = _UxGT("Вимкнути шпіндель"); - PROGMEM Language_Str MSG_SPINDLE_ON = _UxGT("Увімкнути шпіндель"); + PROGMEM Language_Str MSG_SPINDLE_TOGGLE = _UxGT("Перемкнути шпіндель"); #if LCD_WIDTH > 21 PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("Потуж. шпінделя"); #else PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("Потуж. шпінд."); #endif + PROGMEM Language_Str MSG_SPINDLE_FORWARD = _UxGT("Шпіндель вперед"); PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("Напрямок шпінделя"); + PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Увімкнути живлення"); PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Вимкнути живлення"); PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Екструзія"); @@ -138,15 +146,20 @@ namespace Language_uk { PROGMEM Language_Str MSG_MESH_Y = _UxGT("Індекс Y"); PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Значення Z"); PROGMEM Language_Str MSG_USER_MENU = _UxGT("Власні команди"); + PROGMEM Language_Str MSG_M48_TEST = _UxGT("M48 тест зонду"); PROGMEM Language_Str MSG_M48_POINT = _UxGT("M48 точка"); + PROGMEM Language_Str MSG_M48_OUT_OF_BOUNDS = _UxGT("Зонд за межами"); PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Відхилення"); + PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Меню IDEX"); PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Зміщення сопел"); PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Авто паркування"); PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Розмноження"); PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Дзеркальна копія"); - PROGMEM Language_Str MSG_IDEX_MODE_FU1L_CTRL = _UxGT("Повний контроль"); + PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Повний контроль"); + PROGMEM Language_Str MSG_IDEX_DUPE_GAP = _UxGT("Дублювати X-зазор"); + PROGMEM Language_Str MSG_HOTEND_OFFSET_X = _UxGT("Друге сопло X"); PROGMEM Language_Str MSG_HOTEND_OFFSET_Y = _UxGT("Друге сопло Y"); PROGMEM Language_Str MSG_HOTEND_OFFSET_Z = _UxGT("Друге сопло Z"); @@ -271,6 +284,14 @@ namespace Language_uk { PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Фіолетовий"); PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Білий"); PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("За умовчанням"); + PROGMEM Language_Str MSG_LED_CHANNEL_N = _UxGT("Канал ="); + PROGMEM Language_Str MSG_LEDS2 = _UxGT("Світло #2"); + #if LCD_WIDTH > 21 + PROGMEM Language_Str MSG_NEO2_PRESETS = _UxGT("Світло #2 передустановки"); + #else + PROGMEM Language_Str MSG_NEO2_PRESETS = _UxGT("Світло #2 передустан."); + #endif + PROGMEM Language_Str MSG_NEO2_BRIGHTNESS = _UxGT("Яскравість"); PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Свої кольори"); PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Рівень червоного"); PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Рівень зеленого"); @@ -416,10 +437,12 @@ namespace Language_uk { PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("Готово"); PROGMEM Language_Str MSG_BUTTON_BACK = _UxGT("Назад"); PROGMEM Language_Str MSG_BUTTON_PROCEED = _UxGT("Продовжити"); + PROGMEM Language_Str MSG_BUTTON_SKIP = _UxGT("Пропустити"); PROGMEM Language_Str MSG_PAUSING = _UxGT("Призупинення..."); PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Призупинити друк"); PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Відновити друк"); + PROGMEM Language_Str MSG_HOST_START_PRINT = _UxGT("Старт з хосту"); PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Скасувати друк"); PROGMEM Language_Str MSG_PRINTING_OBJECT = _UxGT("Друк об'єкта"); PROGMEM Language_Str MSG_CANCEL_OBJECT = _UxGT("Завершити об'єкт"); @@ -517,6 +540,7 @@ namespace Language_uk { PROGMEM Language_Str MSG_ZPROBE_XOFFSET = _UxGT("Тест зміщення X"); PROGMEM Language_Str MSG_ZPROBE_YOFFSET = _UxGT("Тест зміщення Y"); PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Тест зміщення Z"); + PROGMEM Language_Str MSG_MOVE_NOZZLE_TO_BED = _UxGT("Рухати сопло до столу"); PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Мікрокрок X"); PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Мікрокрок Y"); PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Мікрокрок Z"); @@ -538,13 +562,16 @@ namespace Language_uk { PROGMEM Language_Str MSG_COOLING = _UxGT("Охолодження..."); PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Нагрів столу..."); PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("Нагрів камери..."); + PROGMEM Language_Str MSG_PROBE_HEATING = _UxGT("Нагрів зонду..."); #if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Охолодження столу..."); PROGMEM Language_Str MSG_CHAMBER_COOLING = _UxGT("Охолодження камери..."); + PROGMEM Language_Str MSG_PROBE_COOLING = _UxGT("Охолодження зонду..."); PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Калібрування Delta"); #else PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Охол. столу..."); PROGMEM Language_Str MSG_CHAMBER_COOLING = _UxGT("Охол. камери..."); + PROGMEM Language_Str MSG_PROBE_COOLING = _UxGT("Охол. зонду..."); PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Калібрув. Delta"); #endif PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Калібрувати X"); @@ -602,6 +629,7 @@ namespace Language_uk { PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Підсвітка"); PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Яскравість світла"); PROGMEM Language_Str MSG_KILL_EXPECTED_PRINTER = _UxGT("НЕ ТОЙ ПРИНТЕР"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Завершено"); PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Екструдовано"); #if LCD_WIDTH >= 20 @@ -666,6 +694,7 @@ namespace Language_uk { PROGMEM Language_Str MSG_MMU2_RESET = _UxGT("Перезапуск MMU"); PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("Перезапуск MMU..."); PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Видаліть, натисніть"); + #if LCD_WIDTH > 21 PROGMEM Language_Str MSG_MIX = _UxGT("Змішування"); #else @@ -685,8 +714,8 @@ namespace Language_uk { PROGMEM Language_Str MSG_END_VTOOL = _UxGT("Кінець В-інструменту"); PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Псевдонім В-інструменту"); PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Зкидання В-інструментів"); - PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("В-інструменти зкинуті"); PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Змішати В-інструменти"); + PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("В-інструменти зкинуті"); #else PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Перемкнути змішув."); PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Актив.В-інструм."); @@ -694,8 +723,8 @@ namespace Language_uk { PROGMEM Language_Str MSG_END_VTOOL = _UxGT("В-інструм. кін."); PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Псевдонім В-інстр."); PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Зкидання В-інструм"); - PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("В-інструм. зкинуті"); PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Змішати В-інструм."); + PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("В-інструм. зкинуті"); #endif PROGMEM Language_Str MSG_START_Z = _UxGT("Початок Z"); PROGMEM Language_Str MSG_END_Z = _UxGT(" Кінець Z"); @@ -714,6 +743,21 @@ namespace Language_uk { PROGMEM Language_Str MSG_BAD_PAGE_SPEED = _UxGT("Погана швидк.стор"); #endif + PROGMEM Language_Str MSG_EDIT_PASSWORD = _UxGT("Редагувати пароль"); + PROGMEM Language_Str MSG_LOGIN_REQUIRED = _UxGT("Потрібен логін"); + PROGMEM Language_Str MSG_PASSWORD_SETTINGS = _UxGT("Параметри паролю"); + PROGMEM Language_Str MSG_ENTER_DIGIT = _UxGT("Введіть цифру"); + PROGMEM Language_Str MSG_CHANGE_PASSWORD = _UxGT("Змінити пароль"); + PROGMEM Language_Str MSG_REMOVE_PASSWORD = _UxGT("Видалити пароль"); + PROGMEM Language_Str MSG_PASSWORD_SET = _UxGT("Пароль це "); + PROGMEM Language_Str MSG_START_OVER = _UxGT("Старт через"); + #if LCD_WIDTH > 21 + PROGMEM Language_Str MSG_REMINDER_SAVE_SETTINGS = _UxGT("Запам'ятай для збереження!"); + #else + PROGMEM Language_Str MSG_REMINDER_SAVE_SETTINGS = _UxGT("Запам'ятай, збережи!"); + #endif + PROGMEM Language_Str MSG_PASSWORD_REMOVED = _UxGT("Пароль видалений"); + PROGMEM Language_Str MSG_PAUSE_PRINT_PARKING = _UxGT(MSG_1_LINE("Паркування...")); #if LCD_HEIGHT >= 4 // Up to 3 lines allowed @@ -758,6 +802,26 @@ namespace Language_uk { PROGMEM Language_Str MSG_HEATER_TIMEOUT = _UxGT("Час нагрівача збіг"); PROGMEM Language_Str MSG_REHEAT = _UxGT("Поновити нагрів"); PROGMEM Language_Str MSG_REHEATING = _UxGT("Нагрівання..."); + + PROGMEM Language_Str MSG_PROBE_WIZARD = _UxGT("Майстер Z-зонда"); + #if LCD_WIDTH > 21 + PROGMEM Language_Str MSG_PROBE_WIZARD_PROBING = _UxGT("Зондув. контрольної точки Z"); + PROGMEM Language_Str MSG_PROBE_WIZARD_MOVING = _UxGT("Рух до точки зондування"); + #else + PROGMEM Language_Str MSG_PROBE_WIZARD_PROBING = _UxGT("Зондув.контр.точки Z"); + PROGMEM Language_Str MSG_PROBE_WIZARD_MOVING = _UxGT("Рух до точки зондув."); + #endif + + PROGMEM Language_Str MSG_SOUND = _UxGT("Звук"); + + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + PROGMEM Language_Str MSG_TOP_LEFT = _UxGT("Верхній лівий"); + PROGMEM Language_Str MSG_BOTTOM_LEFT = _UxGT("Нижній лівий"); + PROGMEM Language_Str MSG_TOP_RIGHT = _UxGT("Верхній правий"); + PROGMEM Language_Str MSG_BOTTOM_RIGHT = _UxGT("Нижній правий"); + PROGMEM Language_Str MSG_CALIBRATION_COMPLETED = _UxGT("Калібрування успішне"); + PROGMEM Language_Str MSG_CALIBRATION_FAILED = _UxGT("Збій калібрування"); + #endif } #if FAN_COUNT == 1 From 03bb9378018b1f6f890a4f64859a1acda3e79d23 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 20 Dec 2020 00:27:53 -0600 Subject: [PATCH 06/11] Cleanup --- Marlin/src/lcd/language/language_ru.h | 14 ++++++-------- Marlin/src/lcd/language/language_uk.h | 16 +++++++--------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/Marlin/src/lcd/language/language_ru.h b/Marlin/src/lcd/language/language_ru.h index 76e444b48739..ffaa406f18c5 100644 --- a/Marlin/src/lcd/language/language_ru.h +++ b/Marlin/src/lcd/language/language_ru.h @@ -812,14 +812,12 @@ namespace Language_ru { PROGMEM Language_Str MSG_SOUND = _UxGT("Звук"); - #if ENABLED(TOUCH_SCREEN_CALIBRATION) - PROGMEM Language_Str MSG_TOP_LEFT = _UxGT("Верхний левый"); - PROGMEM Language_Str MSG_BOTTOM_LEFT = _UxGT("Нижний левый"); - PROGMEM Language_Str MSG_TOP_RIGHT = _UxGT("Верхний правый"); - PROGMEM Language_Str MSG_BOTTOM_RIGHT = _UxGT("Нижний правый"); - PROGMEM Language_Str MSG_CALIBRATION_COMPLETED = _UxGT("Калибровка успешна"); - PROGMEM Language_Str MSG_CALIBRATION_FAILED = _UxGT("Ошибка калибровки"); - #endif + PROGMEM Language_Str MSG_TOP_LEFT = _UxGT("Верхний левый"); + PROGMEM Language_Str MSG_BOTTOM_LEFT = _UxGT("Нижний левый"); + PROGMEM Language_Str MSG_TOP_RIGHT = _UxGT("Верхний правый"); + PROGMEM Language_Str MSG_BOTTOM_RIGHT = _UxGT("Нижний правый"); + PROGMEM Language_Str MSG_CALIBRATION_COMPLETED = _UxGT("Калибровка успешна"); + PROGMEM Language_Str MSG_CALIBRATION_FAILED = _UxGT("Ошибка калибровки"); } #if FAN_COUNT == 1 diff --git a/Marlin/src/lcd/language/language_uk.h b/Marlin/src/lcd/language/language_uk.h index 211a5c6fadba..b0bffd2009ef 100644 --- a/Marlin/src/lcd/language/language_uk.h +++ b/Marlin/src/lcd/language/language_uk.h @@ -146,7 +146,7 @@ namespace Language_uk { PROGMEM Language_Str MSG_MESH_Y = _UxGT("Індекс Y"); PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Значення Z"); PROGMEM Language_Str MSG_USER_MENU = _UxGT("Власні команди"); - + PROGMEM Language_Str MSG_M48_TEST = _UxGT("M48 тест зонду"); PROGMEM Language_Str MSG_M48_POINT = _UxGT("M48 точка"); PROGMEM Language_Str MSG_M48_OUT_OF_BOUNDS = _UxGT("Зонд за межами"); @@ -814,14 +814,12 @@ namespace Language_uk { PROGMEM Language_Str MSG_SOUND = _UxGT("Звук"); - #if ENABLED(TOUCH_SCREEN_CALIBRATION) - PROGMEM Language_Str MSG_TOP_LEFT = _UxGT("Верхній лівий"); - PROGMEM Language_Str MSG_BOTTOM_LEFT = _UxGT("Нижній лівий"); - PROGMEM Language_Str MSG_TOP_RIGHT = _UxGT("Верхній правий"); - PROGMEM Language_Str MSG_BOTTOM_RIGHT = _UxGT("Нижній правий"); - PROGMEM Language_Str MSG_CALIBRATION_COMPLETED = _UxGT("Калібрування успішне"); - PROGMEM Language_Str MSG_CALIBRATION_FAILED = _UxGT("Збій калібрування"); - #endif + PROGMEM Language_Str MSG_TOP_LEFT = _UxGT("Верхній лівий"); + PROGMEM Language_Str MSG_BOTTOM_LEFT = _UxGT("Нижній лівий"); + PROGMEM Language_Str MSG_TOP_RIGHT = _UxGT("Верхній правий"); + PROGMEM Language_Str MSG_BOTTOM_RIGHT = _UxGT("Нижній правий"); + PROGMEM Language_Str MSG_CALIBRATION_COMPLETED = _UxGT("Калібрування успішне"); + PROGMEM Language_Str MSG_CALIBRATION_FAILED = _UxGT("Збій калібрування"); } #if FAN_COUNT == 1 From 763206b0775d59761dc059408504cac2b4ddf981 Mon Sep 17 00:00:00 2001 From: Serhiy-K <52166448+Serhiy-K@users.noreply.github.com> Date: Sun, 20 Dec 2020 11:19:30 +0200 Subject: [PATCH 07/11] Add STM32F1xx support for TFTGLCD --- Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp | 9 ++++++++- Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp | 12 ++++++------ Marlin/src/pins/stm32f1/pins_MORPHEUS.h | 3 ++- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp index 11bea18c81a9..e255dab35a17 100644 --- a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp +++ b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp @@ -972,7 +972,14 @@ MeshFlags done_flags{0}; const xy_int8_t &lpos = location.pos; - do { + + #if IS_TFTGLCD_PANEL + lcd_mesh_edit_setup(0); // Change current screen before calling ui.ubl_plot + safe_delay(50); + #endif + + do + { location = find_closest_mesh_point_of_type(SET_IN_BITMAP, pos, false, &done_flags); if (lpos.x < 0) break; // Stop when there are no more reachable points diff --git a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp index cadd693f6f9e..604fc0078bb1 100644 --- a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp +++ b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp @@ -32,7 +32,7 @@ * and supports color output. */ -#if NONE(__AVR__, TARGET_LPC1768, __STM32F1__, STM32F4xx) +#if NONE(__AVR__, TARGET_LPC1768, STM32F1, STM32F4xx) #warning "Selected platform not yet tested. Please contribute your good pin mappings." #endif @@ -129,7 +129,7 @@ static uint8_t PanelDetected = 0; #if ANY(__AVR__, TARGET_LPC1768, __STM32F1__, ARDUINO_ARCH_SAM, __SAMD51__, __MK20DX256__, __MK64FX512__) #define SPI_SEND_ONE(V) SPI.transfer(V); #define SPI_SEND_TWO(V) SPI.transfer16(V); -#elif defined(STM32F4xx) +#elif ANY(STM32F4xx, STM32F1xx) #define SPI_SEND_ONE(V) SPI.transfer(V, SPI_CONTINUE); #define SPI_SEND_TWO(V) SPI.transfer16(V, SPI_CONTINUE); #elif defined(ARDUINO_ARCH_ESP32) @@ -139,7 +139,7 @@ static uint8_t PanelDetected = 0; #if ANY(__AVR__, ARDUINO_ARCH_SAM, __SAMD51__, __MK20DX256__, __MK64FX512__) #define SPI_SEND_SOME(V,L,Z) SPI.transfer(&V[Z], L); -#elif defined(STM32F4xx) +#elif ANY(STM32F4xx, STM32F1xx) #define SPI_SEND_SOME(V,L,Z) SPI.transfer(&V[Z], L, SPI_CONTINUE); #elif ANY(TARGET_LPC1768, __STM32F1__, ARDUINO_ARCH_ESP32) #define SPI_SEND_SOME(V,L,Z) do{ for (uint16_t i = 0; i < L; i++) SPI_SEND_ONE(V[(Z)+i]); }while(0) @@ -276,7 +276,7 @@ uint8_t MarlinUI::read_slow_buttons(void) { Wire.endTransmission(); #ifdef __AVR__ Wire.requestFrom((uint8_t)LCD_I2C_ADDRESS, 2, 0, 0, 1); - #elif defined(__STM32F1__) + #elif defined(STM32F1) Wire.requestFrom((uint8_t)LCD_I2C_ADDRESS, (uint8_t)2); #elif EITHER(STM32F4xx, TARGET_LPC1768) Wire.requestFrom(LCD_I2C_ADDRESS, 2); @@ -330,7 +330,7 @@ void MarlinUI::init_lcd() { Wire.endTransmission(); // send buffer #ifdef __AVR__ Wire.requestFrom((uint8_t)LCD_I2C_ADDRESS, 1, 0, 0, 1); - #elif ANY(__STM32F1__, STM32F4xx, TARGET_LPC1768) + #elif ANY(STM32F1, STM32F4xx, TARGET_LPC1768) Wire.requestFrom(LCD_I2C_ADDRESS, 1); #endif t = (uint8_t)Wire.read(); @@ -626,7 +626,7 @@ Equal to 20x10 text LCD | ttc ttc % | ttc - current temperature | tts tts %%% | tts - setted temperature, %%% - percent for FAN | ICO ICO ICO ICO | ICO - icon 48x48, placed in 2 text lines -| ICO ICO ICO ICO | ICO / +| ICO ICO ICO ICO | ICO or diff --git a/Marlin/src/pins/stm32f1/pins_MORPHEUS.h b/Marlin/src/pins/stm32f1/pins_MORPHEUS.h index ccc92b7527d1..05e02c9e4df6 100644 --- a/Marlin/src/pins/stm32f1/pins_MORPHEUS.h +++ b/Marlin/src/pins/stm32f1/pins_MORPHEUS.h @@ -30,7 +30,7 @@ * MORPHEUS Board pin assignments */ -#if NOT_TARGET(__STM32F1__) +#if NOT_TARGET(__STM32F1__, STM32F1xx) #error "Oops! Select an STM32F1 board in 'Tools > Board.'" #endif @@ -90,3 +90,4 @@ #define LED_PIN PC13 #define SDSS PA3 #define TFTGLCD_CS PA4 +#define SD_DETECT_PIN PC14 From 2eb6d0e97d6184641f72ee0557980f34bc0bc397 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 22 Dec 2020 06:54:04 -0600 Subject: [PATCH 08/11] Update ubl_G29.cpp --- Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp index e255dab35a17..549fd7721f19 100644 --- a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp +++ b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp @@ -978,8 +978,7 @@ safe_delay(50); #endif - do - { + do { location = find_closest_mesh_point_of_type(SET_IN_BITMAP, pos, false, &done_flags); if (lpos.x < 0) break; // Stop when there are no more reachable points From 3cc2ac97d615e2efec2cce52891f38893a96aec9 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 22 Dec 2020 06:55:12 -0600 Subject: [PATCH 09/11] Update marlinui_TFTGLCD.cpp --- Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp index 604fc0078bb1..57146519a470 100644 --- a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp +++ b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp @@ -129,7 +129,7 @@ static uint8_t PanelDetected = 0; #if ANY(__AVR__, TARGET_LPC1768, __STM32F1__, ARDUINO_ARCH_SAM, __SAMD51__, __MK20DX256__, __MK64FX512__) #define SPI_SEND_ONE(V) SPI.transfer(V); #define SPI_SEND_TWO(V) SPI.transfer16(V); -#elif ANY(STM32F4xx, STM32F1xx) +#elif EITHER(STM32F4xx, STM32F1xx) #define SPI_SEND_ONE(V) SPI.transfer(V, SPI_CONTINUE); #define SPI_SEND_TWO(V) SPI.transfer16(V, SPI_CONTINUE); #elif defined(ARDUINO_ARCH_ESP32) @@ -139,7 +139,7 @@ static uint8_t PanelDetected = 0; #if ANY(__AVR__, ARDUINO_ARCH_SAM, __SAMD51__, __MK20DX256__, __MK64FX512__) #define SPI_SEND_SOME(V,L,Z) SPI.transfer(&V[Z], L); -#elif ANY(STM32F4xx, STM32F1xx) +#elif EITHER(STM32F4xx, STM32F1xx) #define SPI_SEND_SOME(V,L,Z) SPI.transfer(&V[Z], L, SPI_CONTINUE); #elif ANY(TARGET_LPC1768, __STM32F1__, ARDUINO_ARCH_ESP32) #define SPI_SEND_SOME(V,L,Z) do{ for (uint16_t i = 0; i < L; i++) SPI_SEND_ONE(V[(Z)+i]); }while(0) From c80a0cceb906948c81e420ad03e86cb0fe8cc903 Mon Sep 17 00:00:00 2001 From: Serhiy-K <52166448+Serhiy-K@users.noreply.github.com> Date: Sun, 10 Jan 2021 14:38:43 +0200 Subject: [PATCH 10/11] Fix for TFTGLCD --- Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp index 604fc0078bb1..337f3feec88b 100644 --- a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp +++ b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp @@ -313,7 +313,7 @@ void MarlinUI::init_lcd() { t = 0; #if ENABLED(TFTGLCD_PANEL_SPI) // SPI speed must be less 10MHz - _SET_OUTPUT(TFTGLCD_CS); + SET_OUTPUT(TFTGLCD_CS); WRITE(TFTGLCD_CS, HIGH); spiInit(TERN(__STM32F1__, SPI_QUARTER_SPEED, SPI_FULL_SPEED)); WRITE(TFTGLCD_CS, LOW); @@ -854,14 +854,21 @@ void MarlinUI::draw_status_screen() { // This line moves to the last line of the screen for UBL plot screen on the panel side void MenuEditItemBase::draw_edit_screen(PGM_P const pstr, const char* const value/*=nullptr*/) { if (!PanelDetected) return; + uint8_t y; ui.encoder_direction_normal(); - lcd.setCursor(0, MIDDLE_Y); + #if ENABLED(AUTO_BED_LEVELING_UBL) + if (ui.external_control) + y = LCD_HEIGHT - 1; + else + #endif + y = MIDDLE_Y; + lcd.setCursor(0, y); lcd.write(COLOR_EDIT); lcd_put_u8str_P(pstr); if (value) { lcd.write(':'); - lcd.setCursor((LCD_WIDTH - 1) - (utf8_strlen(value) + 1), MIDDLE_Y); // Right-justified, padded by spaces - lcd.write(' '); // Overwrite char if value gets shorter + lcd.setCursor((LCD_WIDTH - 1) - (utf8_strlen(value) + 1), y); // Right-justified, padded by spaces + lcd.write(' '); // Overwrite char if value gets shorter lcd.print(value); lcd.write(' '); lcd.print_line(); From a75cf2239899880e7f7ec49d9b426ca45e0e8c8c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 10 Jan 2021 21:58:29 -0600 Subject: [PATCH 11/11] neaten --- Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp index 6425f575ccf2..44128cc9f8d1 100644 --- a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp +++ b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp @@ -854,14 +854,8 @@ void MarlinUI::draw_status_screen() { // This line moves to the last line of the screen for UBL plot screen on the panel side void MenuEditItemBase::draw_edit_screen(PGM_P const pstr, const char* const value/*=nullptr*/) { if (!PanelDetected) return; - uint8_t y; ui.encoder_direction_normal(); - #if ENABLED(AUTO_BED_LEVELING_UBL) - if (ui.external_control) - y = LCD_HEIGHT - 1; - else - #endif - y = MIDDLE_Y; + const uint8_t y = TERN0(AUTO_BED_LEVELING_UBL, ui.external_control) ? LCD_HEIGHT - 1 : MIDDLE_Y; lcd.setCursor(0, y); lcd.write(COLOR_EDIT); lcd_put_u8str_P(pstr);