Merged changes from devel branch.

master
Marcio Teixeira 7 years ago
parent 0e6cb1e7c6
commit 91d9747947

@ -13,7 +13,7 @@
* got disabled.
*/
#define LULZBOT_FW_VERSION ".21" // Change this with each update
#define LULZBOT_FW_VERSION ".23" // Change this with each update
#if ( \
!defined(LULZBOT_Gladiola_Mini) && \
@ -54,6 +54,7 @@
#define LULZBOT_USE_MIN_ENDSTOPS
#define LULZBOT_USE_MAX_ENDSTOPS
#define LULZBOT_USE_NORMALLY_OPEN_ENDSTOPS
#define LULZBOT_USE_Z_SCREW
#define LULZBOT_BAUDRATE 115200
#define LULZBOT_UUID "351487b6-ca9a-4c1a-8765-d668b1da6585"
#endif
@ -70,6 +71,7 @@
#define LULZBOT_USE_EARLY_EINSY
#define LULZBOT_USE_AUTOLEVELING
#define LULZBOT_SENSORLESS_HOMING
#define LULZBOT_USE_Z_SCREW
#define LULZBOT_BAUDRATE 115200
#define LULZBOT_UUID "4479bf92-7e47-4c2c-be95-64dd01bd413b"
#endif
@ -84,6 +86,7 @@
#define LULZBOT_USE_LCD_DISPLAY
#define LULZBOT_USE_AUTOLEVELING
#define LULZBOT_SENSORLESS_HOMING
#define LULZBOT_USE_Z_SCREW
#define LULZBOT_BAUDRATE 115200
#define LULZBOT_UUID "4479bf92-7e47-4c2c-be95-64dd01bd413b"
#endif
@ -98,6 +101,7 @@
#define LULZBOT_USE_MIN_ENDSTOPS
#define LULZBOT_USE_MAX_ENDSTOPS
#define LULZBOT_USE_NORMALLY_CLOSED_ENDSTOPS
#define LULZBOT_USE_Z_BELT
#define LULZBOT_BAUDRATE 250000
#define LULZBOT_PRINTCOUNTER
#define LULZBOT_UUID "1b8d32d3-0596-4335-8cd4-f3741a095087"
@ -113,6 +117,7 @@
#define LULZBOT_TWO_PIECE_BED
#define LULZBOT_USE_AUTOLEVELING
#define LULZBOT_SENSORLESS_HOMING
#define LULZBOT_USE_Z_BELT
#define LULZBOT_BAUDRATE 250000
#define LULZBOT_PRINTCOUNTER
#define LULZBOT_UUID "e5502411-d46d-421d-ba3a-a20126d7930f"
@ -129,6 +134,7 @@
#define LULZBOT_TWO_PIECE_BED
#define LULZBOT_USE_AUTOLEVELING
#define LULZBOT_SENSORLESS_HOMING
#define LULZBOT_USE_Z_BELT
#define LULZBOT_BAUDRATE 250000
#define LULZBOT_PRINTCOUNTER
#define LULZBOT_UUID "e5502411-d46d-421d-ba3a-a20126d7930f"
@ -144,6 +150,7 @@
#define LULZBOT_USE_MIN_ENDSTOPS
#define LULZBOT_USE_MAX_ENDSTOPS
#define LULZBOT_USE_NORMALLY_OPEN_ENDSTOPS
#define LULZBOT_USE_Z_SCREW
#define LULZBOT_BAUDRATE 115200
#define LULZBOT_UUID "083f68f1-028e-494c-98e1-f2e0dfaee9a5"
#endif
@ -160,6 +167,7 @@
#define LULZBOT_USE_MIN_ENDSTOPS
#define LULZBOT_USE_MAX_ENDSTOPS
#define LULZBOT_USE_NORMALLY_CLOSED_ENDSTOPS
#define LULZBOT_USE_Z_BELT
#define LULZBOT_BAUDRATE 250000
#define LULZBOT_PRINTCOUNTER
#define LULZBOT_UUID "80fed4d6-4d15-4512-a02e-61b1dc4fb072"
@ -173,6 +181,7 @@
#define LULZBOT_USE_LCD_DISPLAY
#define LULZBOT_USE_MIN_ENDSTOPS
#define LULZBOT_USE_NORMALLY_OPEN_ENDSTOPS
#define LULZBOT_USE_Z_SCREW
#define LULZBOT_BAUDRATE 250000
#define LULZBOT_UUID "c3255c96-4097-4884-8ed0-ded2ff9bae61"
#endif
@ -188,6 +197,7 @@
#define LULZBOT_USE_MAX_ENDSTOPS
#define LULZBOT_USE_HOME_BUTTON
#define LULZBOT_USE_NORMALLY_CLOSED_ENDSTOPS
#define LULZBOT_USE_Z_SCREW
#define LULZBOT_BAUDRATE 250000
#define LULZBOT_UUID "845f003c-aebd-4e53-a6b9-7d0984fde609"
#endif
@ -203,6 +213,7 @@
#define LULZBOT_USE_MIN_ENDSTOPS
#define LULZBOT_USE_MAX_ENDSTOPS
#define LULZBOT_USE_NORMALLY_CLOSED_ENDSTOPS
#define LULZBOT_USE_Z_BELT
#define LULZBOT_BAUDRATE 250000
#define LULZBOT_PRINTCOUNTER
#define LULZBOT_UUID "a952577d-8722-483a-999d-acdc9e772b7b"
@ -217,6 +228,7 @@
#define LULZBOT_AUTO_REPORT_TEMPERATURES
#define LULZBOT_ADVANCED_OK
#define LULZBOT_HOST_KEEPALIVE_FEATURE_DISABLED
#define LULZBOT_CLARIFY_ERROR_MESSAGES
// Marlin 1.1.4 has changed the behavior of G92 so that
// it changes software endstops, making it less useful
@ -256,6 +268,7 @@
// Whether endstops are inverting
#define LULZBOT_NORMALLY_CLOSED_ENDSTOP false
#define LULZBOT_NORMALLY_OPEN_ENDSTOP true
#define LULZBOT_NO_ENDSTOP true
#if defined(LULZBOT_IS_MINI) && defined(LULZBOT_USE_EINSYRAMBO)
// Experimental Mini retrofitted with EinsyRambo from UltiMachine
@ -322,10 +335,12 @@
#if defined(LULZBOT_MINI_BED)
#define LULZBOT_HOMING_FEEDRATE_XY (30*60) // mm/m
#define LULZBOT_HOMING_FEEDRATE_Z (8*60) // mm/m
#elif defined(LULZBOT_Quiver_TAZ7)
#elif defined(LULZBOT_TAZ_BED) && defined(LULZBOT_USE_Z_BELT)
#define LULZBOT_HOMING_FEEDRATE_XY (50*60) // mm/m
#define LULZBOT_HOMING_FEEDRATE_Z (10*60) // mm/m
#elif defined(LULZBOT_TAZ_BED)
#elif defined(LULZBOT_TAZ_BED) && defined(LULZBOT_USE_Z_SCREW)
#define LULZBOT_HOMING_FEEDRATE_XY (50*60) // mm/m
#define LULZBOT_HOMING_FEEDRATE_Z (3*60) // mm/m
#endif // LULZBOT_TAZ_BED
@ -339,8 +354,8 @@
#define LULZBOT_AFTER_Z_HOME_Z_RAISE 10
#define LULZBOT_AFTER_Z_HOME_Z_ORIGIN 0
#elif defined(LULZBOT_Juniper_TAZ5)
// Set safe homing position so fan duct does not hit.
#elif defined(LULZBOT_IS_TAZ) && !defined(LULZBOT_USE_HOME_BUTTON)
// TAZ 5 safe homing position so fan duct does not hit.
#define LULZBOT_Z_SAFE_HOMING
#define LULZBOT_Z_SAFE_HOMING_X_POINT 10
#define LULZBOT_Z_SAFE_HOMING_Y_POINT 10
@ -389,6 +404,7 @@
#define LULZBOT_NOZZLE_CLEAN_FEATURE
// Select type of leveling to use:
//#define LULZBOT_AUTO_BED_LEVELING_BILINEAR
//#define LULZBOT_AUTO_BED_LEVELING_LINEAR
#define LULZBOT_AUTO_BED_LEVELING_3POINT
#endif
@ -400,7 +416,7 @@
#define LULZBOT_ABL_PROBE_PT_2_Y LULZBOT_FRONT_PROBE_BED_POSITION
#define LULZBOT_ABL_PROBE_PT_3_X LULZBOT_RIGHT_PROBE_BED_POSITION
#define LULZBOT_ABL_PROBE_PT_3_Y LULZBOT_BACK_PROBE_BED_POSITION
#elif defined(LULZBOT_AUTO_BED_LEVELING_BILINEAR)
#elif defined(LULZBOT_AUTO_BED_LEVELING_LINEAR) || defined(LULZBOT_AUTO_BED_LEVELING_BILINEAR)
// Traditionally LulzBot printers have employed a four-point leveling
// using a degenerate 2x2 grid. This is the traditional behavior.
#define LULZBOT_GRID_MAX_POINTS_X 2
@ -722,7 +738,10 @@
#define LULZBOT_SWITCHING_EXTRUDER
#define LULZBOT_SWITCHING_NOZZLE
#define LULZBOT_SWITCHING_SERVO_ANGLES { 0, 67 }
#undef LULZBOT_TOOLHEAD_X_MIN_ADJ
#define LULZBOT_TOOLHEAD_X_MIN_ADJ 14
#define LULZBOT_E_STEPS 420
#define LULZBOT_X_MAX_ENDSTOP_INVERTING LULZBOT_NO_ENDSTOP
#define LULZBOT_AO_Hexagon
#endif /* TOOLHEAD_Devel_ServoDual */
@ -869,7 +888,7 @@
#if defined(LULZBOT_IS_MINI)
// The Mini fan runs rather loud at full speed.
#define LULZBOT_CONTROLLERFAN_SPEED 120
#else
#elif defined(LULZBOT_IS_TAZ)
#define LULZBOT_CONTROLLERFAN_SPEED 255
#endif
@ -906,7 +925,7 @@
#define LULZBOT_X_BED_SIZE 288
#define LULZBOT_Y_BED_SIZE 275
#elif defined(LULZBOT_Quiver_TAZ7)
#elif defined(LULZBOT_IS_TAZ) && defined(LULZBOT_USE_Z_BELT)
#define LULZBOT_STANDARD_X_MAX_POS 300
#define LULZBOT_STANDARD_X_MIN_POS -16
#define LULZBOT_STANDARD_Y_MAX_POS 303
@ -915,7 +934,8 @@
#define LULZBOT_X_BED_SIZE 280
#define LULZBOT_Y_BED_SIZE 280
#elif defined(LULZBOT_IS_TAZ)
#elif defined(LULZBOT_IS_TAZ) && defined(LULZBOT_USE_Z_SCREW)
#define LULZBOT_STANDARD_X_MAX_POS 300
#define LULZBOT_STANDARD_X_MIN_POS -20
#define LULZBOT_STANDARD_Y_MAX_POS 303
@ -925,11 +945,11 @@
#define LULZBOT_Y_BED_SIZE 280
#endif
#if defined(LULZBOT_Gladiola_Mini) || defined(LULZBOT_Gladiola_MiniLCD) || defined(LULZBOT_Gladiola_EinsyMini) || defined(LULZBOT_Gladiola_EinsyMiniLCD)
#if defined(LULZBOT_IS_MINI) && defined(LULZBOT_USE_Z_SCREW)
#define LULZBOT_STANDARD_Z_MIN_POS -2
#define LULZBOT_STANDARD_Z_MAX_POS 159
#elif defined(LULZBOT_Hibiscus_Mini2) || defined(LULZBOT_Hibiscus_Mini2LCD) || defined(LULZBOT_Hibiscus_EinsyMini2) || defined(LULZBOT_Hibiscus_EinsyMini2LCD)
#elif defined(LULZBOT_IS_MINI) && defined(LULZBOT_USE_Z_BELT)
#define LULZBOT_STANDARD_Z_MIN_POS 0
#define LULZBOT_STANDARD_Z_MAX_POS 183
@ -937,11 +957,11 @@
#define LULZBOT_STANDARD_Z_MIN_POS 0
#define LULZBOT_STANDARD_Z_MAX_POS 250
#elif defined(LULZBOT_Oliveoil_TAZ6)
#elif defined(LULZBOT_IS_TAZ) && defined(LULZBOT_USE_Z_SCREW)
#define LULZBOT_STANDARD_Z_MIN_POS 0
#define LULZBOT_STANDARD_Z_MAX_POS 270
#elif defined(LULZBOT_Quiver_TAZ7)
#elif defined(LULZBOT_IS_TAZ) && defined(LULZBOT_USE_Z_BELT)
#define LULZBOT_STANDARD_Z_MIN_POS 0
#define LULZBOT_STANDARD_Z_MAX_POS 299
#endif
@ -983,7 +1003,7 @@
* X_MAX which varies by toolhead. */
#if defined(LULZBOT_USE_NORMALLY_CLOSED_ENDSTOPS)
// TAZ 6+ and Huerfano Mini onwards use normally closed endstops.
// TAZ 6+ and Hibiscus Mini onwards use normally closed endstops.
// This is safer, as a loose connector or broken wire will halt
// the axis
#define LULZBOT_X_MIN_ENDSTOP_INVERTING LULZBOT_NORMALLY_CLOSED_ENDSTOP
@ -1281,7 +1301,7 @@
#define LULZBOT_NUM_REWIPES 1
#if defined(LULZBOT_IS_TAZ)
#define LULZBOT_BED_PROBE_MIN 0 // Limit on pushing into the bed
#else
#else defined(LULZBOT_IS_MINI)
#define LULZBOT_BED_PROBE_MIN -4 // Limit on pushing into the bed
#endif
@ -1319,11 +1339,11 @@
#define LULZBOT_MOTOR_CURRENT_E 960 // mA
#endif
#elif defined(LULZBOT_Gladiola_Mini) || defined(LULZBOT_Gladiola_MiniLCD)
#elif defined(LULZBOT_IS_MINI) && defined(LULZBOT_USE_Z_SCREW)
#define LULZBOT_MOTOR_CURRENT_XY 1300 // mA
#define LULZBOT_MOTOR_CURRENT_Z 1630 // mA
#elif defined(LULZBOT_Hibiscus_Mini2) || defined(LULZBOT_Hibiscus_Mini2LCD)
#elif defined(LULZBOT_IS_MINI) && defined(LULZBOT_USE_Z_BELT)
#define LULZBOT_MOTOR_CURRENT_XY 1300 // mA
#define LULZBOT_MOTOR_CURRENT_Z 1000 // mA
@ -1331,16 +1351,16 @@
#define LULZBOT_MOTOR_CURRENT_XY 950 // mA
#define LULZBOT_MOTOR_CURRENT_Z 1275 // mA
#elif defined(LULZBOT_Oliveoil_TAZ6)
#elif defined(LULZBOT_IS_TAZ) && defined(LULZBOT_USE_Z_SCREW)
#define LULZBOT_MOTOR_CURRENT_XY 950 // mA
#define LULZBOT_MOTOR_CURRENT_Z 1075 // mA
#elif defined(LULZBOT_Quiver_TAZ7)
#elif defined(LULZBOT_IS_TAZ) && defined(LULZBOT_USE_Z_BELT)
#define LULZBOT_MOTOR_CURRENT_XY 950 // mA
#define LULZBOT_MOTOR_CURRENT_Z 950 // mA
#endif
/******************** ACCELERATION, FEEDRATES AND XYZ MOTOR STEPS *******************/
/************ ACCELERATION, FEEDRATES AND XYZ MOTOR STEPS *******************/
// Values for XYZ vary by printer model, values for E vary by toolhead.
@ -1373,10 +1393,10 @@
#define LULZBOT_Z_PROBE_OFFSET_FROM_EXTRUDER -1.200
#endif
#if defined(LULZBOT_Gladiola_Mini) || defined(LULZBOT_Gladiola_MiniLCD) || defined(LULZBOT_Gladiola_EinsyMini) || defined(LULZBOT_Gladiola_EinsyMiniLCD)
#if defined(LULZBOT_IS_MINI) && defined(LULZBOT_USE_Z_SCREW)
#define LULZBOT_Z_STEPS 1600
#elif defined(LULZBOT_Hibiscus_Mini2) || defined(LULZBOT_Hibiscus_Mini2LCD) || defined(LULZBOT_Hibiscus_EinsyMini2) || defined(LULZBOT_Hibiscus_EinsyMini2LCD)
#elif defined(LULZBOT_IS_MINI) && defined(LULZBOT_USE_Z_BELT)
#define Z_FULL_STEPS_PER_ROTATION 200
#define Z_MICROSTEPS 16
#define Z_BELT_PITCH 2
@ -1387,17 +1407,12 @@
#undef LULZBOT_DEFAULT_MAX_FEEDRATE
#define LULZBOT_DEFAULT_MAX_FEEDRATE {300, 300, 8, 25} // (mm/sec)
#elif defined(LULZBOT_Juniper_TAZ5)
#define LULZBOT_DEFAULT_MAX_FEEDRATE {300, 300, 3, 25} // (mm/sec)
#define LULZBOT_DEFAULT_MAX_ACCELERATION {9000,9000,100,10000}
#define LULZBOT_Z_STEPS 1600
#elif defined(LULZBOT_Oliveoil_TAZ6)
#elif defined(LULZBOT_IS_TAZ) && defined(LULZBOT_USE_Z_SCREW)
#define LULZBOT_DEFAULT_MAX_FEEDRATE {300, 300, 3, 25} // (mm/sec)
#define LULZBOT_DEFAULT_MAX_ACCELERATION {9000,9000,100,10000}
#define LULZBOT_Z_STEPS 1600
#elif defined(LULZBOT_Quiver_TAZ7)
#elif defined(LULZBOT_IS_TAZ) && defined(LULZBOT_USE_Z_BELT)
// Prototype Z-belt driven TAZ 7
#define LULZBOT_DEFAULT_MAX_FEEDRATE {300, 300, 10, 25} // (mm/sec)
#define LULZBOT_DEFAULT_MAX_ACCELERATION {9000,9000,10,10000}
@ -1476,7 +1491,7 @@
#define LULZBOT_ENCODER_PULSES_PER_STEP 2
#define LULZBOT_ENCODER_STEPS_PER_MENU_ITEM 1
#define LULZBOT_COOLING_MESSAGES
#if defined(LULZBOT_Gladiola_MiniLCD) || defined(LULZBOT_Hibiscus_Mini2LCD) || defined(LULZBOT_Gladiola_EinsyMiniLCD) || defined(LULZBOT_Hibiscus_EinsyMini2LCD)
#if defined(LULZBOT_IS_MINI)
// In the experimental Gladiola_MiniLCD, the encoder direction is reversed.
#define LULZBOT_REVERSE_ENCODER_DIRECTION
#endif

@ -875,6 +875,10 @@
*/
#if defined(LULZBOT_AUTO_BED_LEVELING_3POINT)
#define AUTO_BED_LEVELING_3POINT LULZBOT_AUTO_BED_LEVELING_3POINT
#elif defined(LULZBOT_AUTO_BED_LEVELING_LINEAR)
#define AUTO_BED_LEVELING_LINEAR
#elif defined(LULZBOT_AUTO_BED_LEVELING_BILINEAR)
#define AUTO_BED_LEVELING_BILINEAR
#endif

@ -156,7 +156,7 @@
#ifndef MSG_LEVEL_BED
#define MSG_LEVEL_BED _UxGT("Level bed")
#endif
#ifndef MSG_REWIPE
#ifndef MSG_REWIPE && defined(LULZBOT_PROBE_Z_WITH_REWIPE)
#define MSG_REWIPE _UxGT("Rewiping")
#endif
#ifndef MSG_LEVEL_CORNERS
@ -689,7 +689,9 @@
#ifndef MSG_ERR_MINTEMP_BED
#define MSG_ERR_MINTEMP_BED _UxGT("Err: MINTEMP BED")
#endif
#ifndef MSG_ERR_Z_HOMING
#ifndef MSG_ERR_Z_HOMING && defined(LULZBOT_CLARIFY_ERROR_MESSAGES)
#define MSG_ERR_Z_HOMING _UxGT("Home XY first")
#else
#define MSG_ERR_Z_HOMING _UxGT("G28 Z Forbidden")
#endif
#ifndef MSG_HALTED
@ -713,16 +715,16 @@
#ifndef MSG_HEATING_COMPLETE
#define MSG_HEATING_COMPLETE _UxGT("Heating done.")
#endif
#ifndef MSG_COOLING
#ifndef MSG_COOLING && defined(LULZBOT_COOLING_MESSAGES)
#define MSG_COOLING _UxGT("Cooling...")
#endif
#ifndef MSG_COOLING_COMPLETE
#ifndef MSG_COOLING_COMPLETE && defined(LULZBOT_COOLING_MESSAGES)
#define MSG_COOLING_COMPLETE _UxGT("Cooling done.")
#endif
#ifndef MSG_BED_HEATING
#define MSG_BED_HEATING _UxGT("Bed heating.")
#endif
#ifndef MSG_BED_COOLING
#ifndef MSG_BED_COOLING && defined(LULZBOT_COOLING_MESSAGES)
#define MSG_BED_COOLING _UxGT("Bed cooling.")
#endif
#ifndef MSG_BED_DONE

@ -901,42 +901,42 @@ void kill_screen(const char* lcd_msg) {
static void lcd_store_settings();
static void lcd_load_settings();
void lcd_main_menu() {
#if ENABLED(SDSUPPORT)
/* If we are printing, the menu will only show options related to pausing/stopping */
if (card.cardOK && card.isFileOpen()) {
START_MENU();
MENU_BACK(MSG_WATCH);
if (card.sdprinting)
MENU_ITEM(function, MSG_PAUSE_PRINT, lcd_sdcard_pause);
else
MENU_ITEM(function, MSG_RESUME_PRINT, lcd_sdcard_resume);
MENU_ITEM(function, MSG_STOP_PRINT, lcd_sdcard_stop);
if (!thermalManager.tooColdToExtrude(active_extruder)) {
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
}
END_MENU();
return;
}
#endif // SDSUPPORT
void lcd_main_menu() {
START_MENU();
MENU_BACK(MSG_WATCH);
if (!thermalManager.tooColdToExtrude(active_extruder)) {
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
}
bool isPrinting = (planner.movesplanned() || IS_SD_PRINTING || (card.cardOK && card.isFileOpen()));
MENU_ITEM(submenu, _UxGT("Movement"), lcd_movement_menu);
MENU_ITEM(submenu, MSG_TEMPERATURE, lcd_control_temperature_menu);
MENU_ITEM(submenu, _UxGT("Configuration"), lcd_configuration_menu);
if (isPrinting) {
MENU_ITEM(submenu, MSG_TUNE, lcd_tune_menu);
#if ENABLED(ADVANCED_PAUSE_FEATURE)
if (!thermalManager.tooColdToExtrude(active_extruder))
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
#endif
} else {
MENU_ITEM(submenu, _UxGT("Movement"), lcd_movement_menu);
MENU_ITEM(submenu, MSG_TEMPERATURE, lcd_control_temperature_menu);
MENU_ITEM(submenu, _UxGT("Configuration"), lcd_configuration_menu);
}
#if ENABLED(SDSUPPORT)
if (card.cardOK) {
if(!card.isFileOpen()) {
if (card.isFileOpen()) {
if (card.sdprinting)
MENU_ITEM(function, MSG_PAUSE_PRINT, lcd_sdcard_pause);
else
MENU_ITEM(function, MSG_RESUME_PRINT, lcd_sdcard_resume);
MENU_ITEM(function, MSG_STOP_PRINT, lcd_sdcard_stop);
}
else if(!isPrinting) {
MENU_ITEM(submenu, MSG_CARD_MENU, lcd_sdcard_menu);
#if !PIN_EXISTS(SD_DETECT)
MENU_ITEM(gcode, MSG_CNG_SDCARD, PSTR("M21")); // SD-card changed by user
#endif
}
} else {
}
else if(!isPrinting) {
MENU_ITEM(submenu, MSG_NO_CARD, lcd_sdcard_menu);
#if !PIN_EXISTS(SD_DETECT)
MENU_ITEM(gcode, MSG_INIT_SDCARD, PSTR("M21")); // Manually initialize the SD-card via user interface
@ -944,11 +944,13 @@ void kill_screen(const char* lcd_msg) {
}
#endif // SDSUPPORT
MENU_ITEM(submenu, MSG_INFO_MENU, lcd_show_custom_bootscreen);
if(!isPrinting) {
MENU_ITEM(submenu, MSG_INFO_MENU, lcd_show_custom_bootscreen);
#if defined(LULZBOT_PRINTERCOUNTER)
MENU_ITEM(submenu, MSG_INFO_STATS_MENU, lcd_info_stats_menu); // Printer Statistics >
#endif
#if defined(LULZBOT_PRINTERCOUNTER)
MENU_ITEM(submenu, MSG_INFO_STATS_MENU, lcd_info_stats_menu); // Printer Statistics >
#endif
}
END_MENU();
}
@ -1365,7 +1367,7 @@ void kill_screen(const char* lcd_msg) {
//
// Change filament
//
#if ENABLED(ADVANCED_PAUSE_FEATURE)
#if ENABLED(ADVANCED_PAUSE_FEATURE) && !defined(LULZBOT_REORDERED_MENUS)
if (!thermalManager.tooColdToExtrude(active_extruder))
MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
#endif

@ -760,9 +760,9 @@ static void lcd_implementation_status_screen() {
#endif // ADVANCED_PAUSE_FEATURE
#if defined(LULZBOT_SCROLL_LONG_FILE_NAMES)
static int scroll_offset;
static int scroll_max;
static int scroll_row;
static uint8_t scroll_offset;
static uint8_t scroll_max;
static uint8_t scroll_hash;
#endif
// Set the colors for a menu item based on whether it is selected
@ -953,16 +953,23 @@ static void lcd_implementation_status_screen() {
uint8_t n = LCD_WIDTH - (START_COL) - 1;
if (longFilename[0]) {
filename = longFilename;
#if defined(LULZBOT_SCROLL_LONG_FILE_NAMES)
if (isSelected) {
if(scroll_row != row) {
scroll_max = max(0, strlen(longFilename) - n);
scroll_row = row;
uint8_t name_hash = row;
for (uint8_t i = 0; filename[i]; ++i) {
name_hash = ((name_hash << 1) | (name_hash >> 7)) ^ filename[i];
}
if(scroll_hash != name_hash) {
scroll_max = max(0, lcd_strlen(longFilename) - n);
scroll_hash = name_hash;
scroll_offset = 0;
}
filename += scroll_offset;
filename = longFilename + scroll_offset;
} else {
filename = longFilename;
}
#else
filename = longFilename;
#endif
}

Loading…
Cancel
Save