diff --git a/Marlin/src/gcode/calibrate/M48.cpp b/Marlin/src/gcode/calibrate/M48.cpp index ca54ae8f9..1746543cf 100644 --- a/Marlin/src/gcode/calibrate/M48.cpp +++ b/Marlin/src/gcode/calibrate/M48.cpp @@ -30,6 +30,10 @@ #include "../../feature/bedlevel/bedlevel.h" +#if HAS_SPI_LCD + #include "../../lcd/ultralcd.h" +#endif + #if HAS_LEVELING #include "../../module/planner.h" #endif @@ -246,6 +250,13 @@ void GcodeSuite::M48() { SERIAL_ECHOLNPAIR_F("Standard Deviation: ", sigma, 6); SERIAL_EOL(); + + #if HAS_SPI_LCD + // Display M48 results in the status bar + char sigma_str[8]; + dtostrf(sigma, 2, 6, sigma_str); + ui.status_printf_P(0, PSTR(MSG_M48_DEVIATION ": %s"), sigma_str); + #endif } clean_up_after_endstop_or_probe_move(); diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index dff4711fb..a54318c8b 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -265,6 +265,12 @@ #ifndef MSG_LCD_TILTING_MESH #define MSG_LCD_TILTING_MESH _UxGT("Tilting point") #endif +#ifndef MSG_M48_TEST + #define MSG_M48_TEST _UxGT("M48 Probe Test") +#endif +#ifndef MSG_M48_DEVIATION + #define MSG_M48_DEVIATION _UxGT("Deviation") +#endif #ifndef MSG_IDEX_MENU #define MSG_IDEX_MENU _UxGT("IDEX Mode") #endif @@ -1385,6 +1391,7 @@ #ifndef MSG_END_Z #define MSG_END_Z _UxGT(" End Z") #endif + #ifndef MSG_GAMES #define MSG_GAMES _UxGT("Games") #endif diff --git a/Marlin/src/lcd/language/language_ru.h b/Marlin/src/lcd/language/language_ru.h index 35941e7ad..32cac37fb 100644 --- a/Marlin/src/lcd/language/language_ru.h +++ b/Marlin/src/lcd/language/language_ru.h @@ -36,9 +36,12 @@ #define MSG_BACK _UxGT("Назад") #define MSG_SD_INSERTED _UxGT("Карта вставлена") #define MSG_SD_REMOVED _UxGT("Карта извлечена") +#define MSG_SD_RELEASED _UxGT("SD карта не активна") #define MSG_LCD_ENDSTOPS _UxGT("Эндстопы") // Max length 8 characters #define MSG_LCD_SOFT_ENDSTOPS _UxGT("Прогр. эндстопы") #define MSG_MAIN _UxGT("Меню") +#define MSG_ADVANCED_SETTINGS _UxGT("Другие настройки") +#define MSG_CONFIGURATION _UxGT("Настройки") #define MSG_AUTOSTART _UxGT("Автостарт") #define MSG_DISABLE_STEPPERS _UxGT("Выкл. двигатели") #define MSG_DEBUG_MENU _UxGT("Меню отладки") @@ -84,6 +87,17 @@ #define MSG_UBL_UNHOMED _UxGT("Паркуем сначала XYZ") #define MSG_UBL_TOOLS _UxGT("Утилиты UBL") #define MSG_UBL_LEVEL_BED _UxGT("Калибровка UBL") + +#define MSG_M48_TEST _UxGT("Проверка датчика Z") +#define MSG_M48_DEVIATION _UxGT("Отклонение") + +// TODO: IDEX Menu +#define MSG_OFFSETS_MENU _UxGT("Размещение сопел") + +#define MSG_X_OFFSET _UxGT("2-е сопло X") +#define MSG_Y_OFFSET _UxGT("2-е сопло Y") +#define MSG_Z_OFFSET _UxGT("2-е сопло Z") + #define MSG_UBL_MANUAL_MESH _UxGT("Постр. сетку от руки") #define MSG_UBL_BC_INSERT _UxGT("Пост. шимм и измер.") #define MSG_UBL_BC_INSERT2 _UxGT("Измерение") @@ -239,7 +253,7 @@ #define MSG_CONTRAST _UxGT("Контраст LCD") #define MSG_STORE_EEPROM _UxGT("Сохранить настройки") #define MSG_LOAD_EEPROM _UxGT("Загрузить настройки") -#define MSG_RESTORE_FAILSAFE _UxGT("Восстановить настр.") +#define MSG_RESTORE_FAILSAFE _UxGT("Вернуть настройки") #define MSG_INIT_EEPROM _UxGT("Инициализация EEPROM") #define MSG_REFRESH _UxGT("Обновить") #define MSG_WATCH _UxGT("Информационный экран") @@ -266,12 +280,21 @@ #define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Возврат V") #define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("Возврат смены V") #define MSG_AUTORETRACT _UxGT("Авто Втягивание") + +// TODO: Filament Change Swap / Purge Length + +#define MSG_TOOL_CHANGE _UxGT("Смена сопел") +#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Поднятие по Z") + +// TODO: Singlenozzle, nozzle standby + #define MSG_FILAMENTCHANGE _UxGT("Смена филамента") #define MSG_FILAMENTLOAD _UxGT("Загрузка филамента") #define MSG_FILAMENTUNLOAD _UxGT("Выгрузка филамента") #define MSG_FILAMENTUNLOAD_ALL _UxGT("Выгрузить всё") -#define MSG_INIT_SDCARD _UxGT("Иниц. SD карту") +#define MSG_INIT_SDCARD _UxGT("Активировать SD") #define MSG_CHANGE_SDCARD _UxGT("Сменить SD карту") +#define MSG_RELEASE_SDCARD _UxGT("Деактивировать SD") #define MSG_ZPROBE_OUT _UxGT("Z датчик вне стола") #define MSG_SKEW_FACTOR _UxGT("Фактор наклона") #define MSG_BLTOUCH _UxGT("BLTouch") @@ -279,6 +302,9 @@ #define MSG_BLTOUCH_RESET _UxGT("Сброс BLTouch") #define MSG_BLTOUCH_DEPLOY _UxGT("Установка BLTouch") #define MSG_BLTOUCH_STOW _UxGT("Набивка BLTouch") + +// TODO: TouchMI Probe, Manual deploy/stow + #define MSG_HOME _UxGT("Паркуй") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST #define MSG_FIRST _UxGT("первый") #define MSG_ZPROBE_ZOFFSET _UxGT("Смещение Z") @@ -291,10 +317,12 @@ #define MSG_ERR_REDUNDANT_TEMP _UxGT("Ошибка: Избыточная Т") #define MSG_THERMAL_RUNAWAY _UxGT("УБЕГАНИЕ ТЕПЛА") #define MSG_THERMAL_RUNAWAY_BED _UxGT("УБЕГАНИЕ ТЕПЛА СТОЛА") +// TODO: Heated chamber #define MSG_ERR_MAXTEMP _UxGT("Ошибка: Т макс.") #define MSG_ERR_MINTEMP _UxGT("Ошибка: Т мин.") #define MSG_ERR_MAXTEMP_BED _UxGT("Ошибка: Т стола макс") #define MSG_ERR_MINTEMP_BED _UxGT("Ошибка: Т стола мин.") +// TODO: Heated chamber #define MSG_ERR_Z_HOMING MSG_HOME _UxGT(" ") MSG_X MSG_Y _UxGT(" ") MSG_FIRST #define MSG_HALTED _UxGT("ПРИНТЕР ОСТАНОВЛЕН") #define MSG_PLEASE_RESET _UxGT("Сделайте сброс") @@ -303,9 +331,9 @@ #define MSG_SHORT_MINUTE _UxGT("м") // One character only #define MSG_HEATING _UxGT("Нагрев...") #define MSG_COOLING _UxGT("Охлаждение...") -#define MSG_COOLING_COMPLETE _UxGT("Охлаждение выполнено") #define MSG_BED_HEATING _UxGT("Нагрев стола...") #define MSG_BED_COOLING _UxGT("Охлаждение стола...") +// TODO: Heated chamber #define MSG_DELTA_CALIBRATE _UxGT("Калибровка Delta") #define MSG_DELTA_CALIBRATE_X _UxGT("Калибровать X") #define MSG_DELTA_CALIBRATE_Y _UxGT("Калибровать Y") @@ -348,7 +376,7 @@ #endif #define MSG_INFO_MIN_TEMP _UxGT("Мин. Т") #define MSG_INFO_MAX_TEMP _UxGT("Макс. Т") -#define MSG_INFO_PSU _UxGT("Блок питания") +#define MSG_INFO_PSU _UxGT("БП") #define MSG_DRIVE_STRENGTH _UxGT("Сила привода") #define MSG_DAC_PERCENT _UxGT("Привод %") #define MSG_DAC_EEPROM_WRITE _UxGT("Запись DAC EEPROM") @@ -363,6 +391,16 @@ #define MSG_ERR_PROBING_FAILED _UxGT("Не удалось прощупать") #define MSG_M600_TOO_COLD _UxGT("M600: Низкая Т") +// TODO: MMU2 + +// TODO: Mixing + +#define MSG_GAMES _UxGT("Игры") +#define MSG_BRICKOUT _UxGT("Кирпичи") +#define MSG_INVADERS _UxGT("Вторжение") +#define MSG_SNAKE _UxGT("Змейка") +#define MSG_MAZE _UxGT("Лабиринт") + // // Filament Change screens show up to 3 lines on a 4-line display // ...or up to 2 lines on a 3-line display @@ -398,3 +436,14 @@ #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Выдавливание...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Возобновление...") #endif // LCD_HEIGHT < 4 + +#define MSG_TMC_DRIVERS _UxGT("Драйвера TMC") +#define MSG_TMC_CURRENT _UxGT("Текущие настройки") +#define MSG_TMC_HYBRID_THRS _UxGT("Гибридный режим") +#define MSG_TMC_HOMING_THRS _UxGT("Режим без эндстопов") +#define MSG_TMC_STEPPING_MODE _UxGT("Режим шага") +#define MSG_TMC_STEALTH_ENABLED _UxGT("Тихий режим вкл") + +// TODO: Service + +// TODO: Backlash diff --git a/Marlin/src/lcd/menu/menu_motion.cpp b/Marlin/src/lcd/menu/menu_motion.cpp index 15f709ef9..223d1077a 100644 --- a/Marlin/src/lcd/menu/menu_motion.cpp +++ b/Marlin/src/lcd/menu/menu_motion.cpp @@ -503,6 +503,10 @@ void menu_motion() { MENU_ITEM(function, MSG_LEVEL_CORNERS, _lcd_level_bed_corners); #endif + #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST) + MENU_ITEM(gcode, MSG_M48_TEST, PSTR("G28\nM48 P10")); + #endif + // // Disable Steppers //