From dbb2d56c894cc77372120fae3c0a17f061318b13 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 19 Dec 2016 21:43:38 -0800 Subject: [PATCH 1/8] Correct comment on watchdog timer --- Marlin/watchdog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/watchdog.cpp b/Marlin/watchdog.cpp index 4397ab603d..ce8e832b61 100644 --- a/Marlin/watchdog.cpp +++ b/Marlin/watchdog.cpp @@ -43,7 +43,7 @@ void watchdog_init() { //=================================== ISR =================================== //=========================================================================== -// Watchdog timer interrupt, called if main program blocks >1sec and manual reset is enabled. +// Watchdog timer interrupt, called if main program blocks >4sec and manual reset is enabled. #if ENABLED(WATCHDOG_RESET_MANUAL) ISR(WDT_vect) { SERIAL_ERROR_START; From 1642f5ed3170b11c7cfa5f9c36dfd7b1d679b216 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 19 Dec 2016 22:06:04 -0800 Subject: [PATCH 2/8] Add macro to some en strings --- Marlin/language_en.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/language_en.h b/Marlin/language_en.h index 219e41fdcd..69b06f3102 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -139,10 +139,10 @@ #define MSG_LEVEL_BED _UxGT("Level bed") #endif #ifndef MSG_MOVING - #define MSG_MOVING "Moving..." + #define MSG_MOVING _UxGT("Moving...") #endif #ifndef MSG_FREE_XY - #define MSG_FREE_XY "Free XY" + #define MSG_FREE_XY _UxGT("Free XY") #endif #ifndef MSG_MOVE_X #define MSG_MOVE_X _UxGT("Move X") From 03af5961b0b0f3bbe74ea1b368b1cbd4ee7f43b5 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 19 Dec 2016 21:35:25 -0800 Subject: [PATCH 3/8] Hide (or remove) custom character change on boot screen --- Marlin/ultralcd_impl_HD44780.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Marlin/ultralcd_impl_HD44780.h b/Marlin/ultralcd_impl_HD44780.h index 3fa45604af..e97c429c63 100644 --- a/Marlin/ultralcd_impl_HD44780.h +++ b/Marlin/ultralcd_impl_HD44780.h @@ -530,11 +530,15 @@ void lcd_print(char c) { charset_mapper(c); } safe_delay(2000); #endif + /* + lcd.clear(); + lcd_set_custom_characters( #if ENABLED(LCD_PROGRESS_BAR) false #endif ); + //*/ } #endif // SHOW_BOOTSCREEN From 18ba31e9b5d946bc540d6c4e79b53c707416684c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 19 Dec 2016 21:36:06 -0800 Subject: [PATCH 4/8] Add Debug Menu with LCD_PROGRESS_BAR_TEST as an example --- Marlin/Conditionals_LCD.h | 2 + Marlin/Configuration_adv.h | 2 + .../Cartesio/Configuration_adv.h | 2 + .../Felix/Configuration_adv.h | 2 + .../Hephestos/Configuration_adv.h | 2 + .../Hephestos_2/Configuration_adv.h | 2 + .../K8200/Configuration_adv.h | 2 + .../K8400/Configuration_adv.h | 2 + .../RigidBot/Configuration_adv.h | 2 + .../SCARA/Configuration_adv.h | 2 + .../TAZ4/Configuration_adv.h | 2 + .../WITBOX/Configuration_adv.h | 2 + .../delta/biv2.5/Configuration_adv.h | 2 + .../delta/generic/Configuration_adv.h | 2 + .../delta/kossel_mini/Configuration_adv.h | 2 + .../delta/kossel_pro/Configuration_adv.h | 2 + .../delta/kossel_xl/Configuration_adv.h | 2 + .../makibox/Configuration_adv.h | 2 + .../tvrrug/Round2/Configuration_adv.h | 2 + Marlin/language_en.h | 6 +++ Marlin/ultralcd.cpp | 49 +++++++++++++++++++ Marlin/ultralcd_impl_HD44780.h | 36 ++++++++------ 22 files changed, 114 insertions(+), 15 deletions(-) diff --git a/Marlin/Conditionals_LCD.h b/Marlin/Conditionals_LCD.h index 8418385026..630e94ca4c 100644 --- a/Marlin/Conditionals_LCD.h +++ b/Marlin/Conditionals_LCD.h @@ -278,6 +278,8 @@ #define BOOTSCREEN_TIMEOUT 2500 #endif + #define HAS_DEBUG_MENU ENABLED(LCD_PROGRESS_BAR_TEST) + /** * Extruders have some combination of stepper motors and hotends * so we separate these concepts into the defines: diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 3138a13ba8..400b2f6e0b 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -454,6 +454,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/Cartesio/Configuration_adv.h b/Marlin/example_configurations/Cartesio/Configuration_adv.h index 5f54f0e758..cca4784368 100644 --- a/Marlin/example_configurations/Cartesio/Configuration_adv.h +++ b/Marlin/example_configurations/Cartesio/Configuration_adv.h @@ -454,6 +454,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/Felix/Configuration_adv.h b/Marlin/example_configurations/Felix/Configuration_adv.h index 2e52c39eb9..ce5fee9f94 100644 --- a/Marlin/example_configurations/Felix/Configuration_adv.h +++ b/Marlin/example_configurations/Felix/Configuration_adv.h @@ -454,6 +454,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/Hephestos/Configuration_adv.h b/Marlin/example_configurations/Hephestos/Configuration_adv.h index 9740e9c754..63214e64f9 100644 --- a/Marlin/example_configurations/Hephestos/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos/Configuration_adv.h @@ -454,6 +454,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h index a7fab871b9..131d6efb46 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h @@ -454,6 +454,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/K8200/Configuration_adv.h b/Marlin/example_configurations/K8200/Configuration_adv.h index c275fa3b68..c4a2f20b9e 100644 --- a/Marlin/example_configurations/K8200/Configuration_adv.h +++ b/Marlin/example_configurations/K8200/Configuration_adv.h @@ -467,6 +467,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/K8400/Configuration_adv.h b/Marlin/example_configurations/K8400/Configuration_adv.h index 8ee66df5e8..1626f2ffe9 100644 --- a/Marlin/example_configurations/K8400/Configuration_adv.h +++ b/Marlin/example_configurations/K8400/Configuration_adv.h @@ -454,6 +454,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/RigidBot/Configuration_adv.h b/Marlin/example_configurations/RigidBot/Configuration_adv.h index 92a337ba1a..589758e337 100644 --- a/Marlin/example_configurations/RigidBot/Configuration_adv.h +++ b/Marlin/example_configurations/RigidBot/Configuration_adv.h @@ -454,6 +454,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/SCARA/Configuration_adv.h b/Marlin/example_configurations/SCARA/Configuration_adv.h index 647fb71224..3033bcdd6d 100644 --- a/Marlin/example_configurations/SCARA/Configuration_adv.h +++ b/Marlin/example_configurations/SCARA/Configuration_adv.h @@ -454,6 +454,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/TAZ4/Configuration_adv.h b/Marlin/example_configurations/TAZ4/Configuration_adv.h index 0211a9caff..0ae81cfbbf 100644 --- a/Marlin/example_configurations/TAZ4/Configuration_adv.h +++ b/Marlin/example_configurations/TAZ4/Configuration_adv.h @@ -462,6 +462,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/WITBOX/Configuration_adv.h b/Marlin/example_configurations/WITBOX/Configuration_adv.h index 9740e9c754..63214e64f9 100644 --- a/Marlin/example_configurations/WITBOX/Configuration_adv.h +++ b/Marlin/example_configurations/WITBOX/Configuration_adv.h @@ -454,6 +454,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h index 114951d57b..bd8bd22970 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h @@ -456,6 +456,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/delta/generic/Configuration_adv.h b/Marlin/example_configurations/delta/generic/Configuration_adv.h index b3a2039e52..14213dac4f 100644 --- a/Marlin/example_configurations/delta/generic/Configuration_adv.h +++ b/Marlin/example_configurations/delta/generic/Configuration_adv.h @@ -456,6 +456,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h index b3a2039e52..14213dac4f 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h @@ -456,6 +456,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h index b438af2894..33e591078f 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h @@ -461,6 +461,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h index a98c53eaec..0fc896f6ba 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h @@ -456,6 +456,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h index 1f5446dc5f..e8d3bec2d1 100644 --- a/Marlin/example_configurations/makibox/Configuration_adv.h +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -454,6 +454,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h index 190c18ce3b..b0b9e917ff 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h @@ -454,6 +454,8 @@ #define PROGRESS_MSG_EXPIRE 0 // Enable this to show messages for MSG_TIME then hide them //#define PROGRESS_MSG_ONCE + // Add a menu item to test the progress bar: + //#define LCD_PROGRESS_BAR_TEST #endif // This allows hosts to request long names for files and folders with M33 diff --git a/Marlin/language_en.h b/Marlin/language_en.h index 69b06f3102..65eaacbbc9 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -51,6 +51,12 @@ #ifndef MSG_DISABLE_STEPPERS #define MSG_DISABLE_STEPPERS _UxGT("Disable steppers") #endif +#ifndef MSG_DEBUG_MENU + #define MSG_DEBUG_MENU _UxGT("Debug Menu") +#endif +#ifndef MSG_PROGRESS_BAR_TEST + #define MSG_PROGRESS_BAR_TEST _UxGT("Progress Bar Test") +#endif #ifndef MSG_AUTO_HOME #define MSG_AUTO_HOME _UxGT("Auto home") #endif diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index e234c27bad..d8b26b579a 100755 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -316,6 +316,7 @@ uint16_t max_display_update_time = 0; #define MENU_BACK(LABEL) MENU_ITEM(back, LABEL, 0) // Used to print static text with no visible cursor. + // Parameters: label [, bool center [, bool invert [, char *value] ] ] #define STATIC_ITEM(LABEL, ...) \ if (_menuLineNr == _thisItemNr) { \ if (_skipStatic && encoderLine <= _thisItemNr) { \ @@ -623,6 +624,47 @@ void kill_screen(const char* lcd_msg) { #endif // MENU_ITEM_CASE_LIGHT + #if ENABLED(LCD_PROGRESS_BAR_TEST) + + static void progress_bar_test() { + static int8_t bar_percent = 0; + if (lcd_clicked) { + lcd_goto_previous_menu(); + lcd_set_custom_characters(false); + return; + } + bar_percent += (int8_t)encoderPosition; + bar_percent = constrain(bar_percent, 0, 100); + encoderPosition = 0; + lcd_implementation_drawmenu_static(0, PSTR(MSG_PROGRESS_BAR_TEST), true, true); + lcd.setCursor((LCD_WIDTH) / 2 - 2, LCD_HEIGHT - 2); + lcd.print(itostr3(bar_percent)); lcd.print('%'); + lcd.setCursor(0, LCD_HEIGHT - 1); lcd_draw_progress_bar(bar_percent); + } + + void _progress_bar_test() { + lcd_goto_screen(progress_bar_test); + lcd_set_custom_characters(); + } + + #endif // LCD_PROGRESS_BAR_TEST + + #if HAS_DEBUG_MENU + + void lcd_debug_menu() { + START_MENU(); + + MENU_BACK(MSG_MAIN); // ^ Main + + #if ENABLED(LCD_PROGRESS_BAR_TEST) + MENU_ITEM(submenu, MSG_PROGRESS_BAR_TEST, _progress_bar_test); + #endif + + END_MENU(); + } + + #endif // HAS_DEBUG_MENU + /** * * "Main" menu @@ -633,6 +675,13 @@ void kill_screen(const char* lcd_msg) { START_MENU(); MENU_BACK(MSG_WATCH); + // + // Debug Menu when certain options are enabled + // + #if HAS_DEBUG_MENU + MENU_ITEM(submenu, MSG_DEBUG_MENU, lcd_debug_menu); + #endif + // // Switch case light on/off // diff --git a/Marlin/ultralcd_impl_HD44780.h b/Marlin/ultralcd_impl_HD44780.h index e97c429c63..38edbc747a 100644 --- a/Marlin/ultralcd_impl_HD44780.h +++ b/Marlin/ultralcd_impl_HD44780.h @@ -573,6 +573,25 @@ FORCE_INLINE void _draw_axis_label(const AxisEnum axis, const char* const pstr, } } +#if ENABLED(LCD_PROGRESS_BAR) + + inline void lcd_draw_progress_bar(const uint8_t percent) { + int tix = (int)(percent * (LCD_WIDTH) * 3) / 100, + cel = tix / 3, rem = tix % 3, i = LCD_WIDTH; + char msg[LCD_WIDTH + 1], b = ' '; + msg[i] = '\0'; + while (i--) { + if (i == cel - 1) + b = LCD_STR_PROGRESS[2]; + else if (i == cel && rem != 0) + b = LCD_STR_PROGRESS[rem - 1]; + msg[i] = b; + } + lcd.print(msg); + } + +#endif // LCD_PROGRESS_BAR + /** Possible status screens: 16x2 |000/000 B000/000| @@ -759,21 +778,8 @@ static void lcd_implementation_status_screen() { if (card.isFileOpen()) { // Draw the progress bar if the message has shown long enough // or if there is no message set. - if (ELAPSED(millis(), progress_bar_ms + PROGRESS_BAR_MSG_TIME) || !lcd_status_message[0]) { - int tix = (int)(card.percentDone() * (LCD_WIDTH) * 3) / 100, - cel = tix / 3, rem = tix % 3, i = LCD_WIDTH; - char msg[LCD_WIDTH + 1], b = ' '; - msg[i] = '\0'; - while (i--) { - if (i == cel - 1) - b = LCD_STR_PROGRESS[2]; - else if (i == cel && rem != 0) - b = LCD_STR_PROGRESS[rem - 1]; - msg[i] = b; - } - lcd.print(msg); - return; - } + if (ELAPSED(millis(), progress_bar_ms + PROGRESS_BAR_MSG_TIME) || !lcd_status_message[0]) + return lcd_draw_progress_bar(card.percentDone()); } //card.isFileOpen #elif ENABLED(FILAMENT_LCD_DISPLAY) From eb68715b946d17217583629b2d60eb5c909a0793 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 19 Dec 2016 22:42:48 -0800 Subject: [PATCH 5/8] No "Cooldown" menu if heaters are off --- Marlin/ultralcd.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index d8b26b579a..dd975b5cae 100755 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1390,7 +1390,12 @@ KeepDrawing: // // Cooldown // - MENU_ITEM(function, MSG_COOLDOWN, lcd_cooldown); + bool has_heat = false; + HOTEND_LOOP() if (thermalManager.target_temperature[e]) { has_heat = true; break; } + #if HAS_TEMP_BED + if (thermalManager.target_temperature_bed) has_heat = true; + #endif + if (has_heat) MENU_ITEM(function, MSG_COOLDOWN, lcd_cooldown); // // BLTouch Self-Test and Reset From 22881f38b97b11f8c3929108acfc922db533a6fc Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 19 Dec 2016 22:51:07 -0800 Subject: [PATCH 6/8] Fix updating of "bool" menu items --- Marlin/ultralcd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index dd975b5cae..41eb7f7d86 100755 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -2752,7 +2752,7 @@ KeepDrawing: #endif //SDSUPPORT - void menu_action_setting_edit_bool(const char* pstr, bool* ptr) {UNUSED(pstr); *ptr = !(*ptr); } + void menu_action_setting_edit_bool(const char* pstr, bool* ptr) {UNUSED(pstr); *ptr = !(*ptr); lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; } void menu_action_setting_edit_callback_bool(const char* pstr, bool* ptr, screenFunc_t callback) { menu_action_setting_edit_bool(pstr, ptr); (*callback)(); @@ -2892,7 +2892,7 @@ bool lcd_blink() { * - Before exiting the handler set lcdDrawUpdate to: * - LCDVIEW_CLEAR_CALL_REDRAW to clear screen and set LCDVIEW_CALL_REDRAW_NEXT. * - LCDVIEW_REDRAW_NOW or LCDVIEW_NONE to keep drawingm but only in this loop. - * - LCDVIEW_REDRAW_NEXT to keep drawing and draw on the next loop also. + * - LCDVIEW_CALL_REDRAW_NEXT to keep drawing and draw on the next loop also. * - LCDVIEW_CALL_NO_REDRAW to keep drawing (or start drawing) with no redraw on the next loop. * - NOTE: For graphical displays menu handlers may be called 2 or more times per loop, * so don't change lcdDrawUpdate without considering this. From b031d28ebfdaab27f644ed110f67fd99001f2657 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 19 Dec 2016 23:18:33 -0800 Subject: [PATCH 7/8] Encoder events should not skip stripes --- Marlin/ultralcd.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 41eb7f7d86..14866ad693 100755 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -3005,12 +3005,15 @@ void lcd_update() { encoderPosition += (encoderDiff * encoderMultiplier) / ENCODER_PULSES_PER_STEP; encoderDiff = 0; - #if ENABLED(DOGLCD) - drawing_screen = false; // refresh the complete screen for a encoder change (different menu-item/value) - #endif } return_to_status_ms = ms + LCD_TIMEOUT_TO_STATUS; - lcdDrawUpdate = LCDVIEW_REDRAW_NOW; + lcdDrawUpdate = + #if ENABLED(DOGLCD) + LCDVIEW_CALL_REDRAW_NEXT + #else + LCDVIEW_REDRAW_NOW + #endif + ; } #endif // ULTIPANEL From 0d2fc135163d99b0f0596587a5461d7a9066f30e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 20 Dec 2016 00:51:03 -0800 Subject: [PATCH 8/8] Place "Level Bed" closer to "Auto Home" --- Marlin/ultralcd.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 14866ad693..e1f73567a0 100755 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1351,12 +1351,6 @@ KeepDrawing: MENU_ITEM(gcode, MSG_AUTO_HOME_Z, PSTR("G28 Z")); #endif - // - // Set Home Offsets - // - MENU_ITEM(function, MSG_SET_HOME_OFFSETS, lcd_set_home_offsets); - //MENU_ITEM(gcode, MSG_SET_ORIGIN, PSTR("G92 X0 Y0 Z0")); - // // Level Bed // @@ -1368,6 +1362,12 @@ KeepDrawing: MENU_ITEM(submenu, MSG_LEVEL_BED, lcd_level_bed); #endif + // + // Set Home Offsets + // + MENU_ITEM(function, MSG_SET_HOME_OFFSETS, lcd_set_home_offsets); + //MENU_ITEM(gcode, MSG_SET_ORIGIN, PSTR("G92 X0 Y0 Z0")); + // // Disable Steppers //