|
@@ -88,6 +88,7 @@ unsigned long display_time; //just timer for showing pid finished message on lcd
|
|
|
float pid_temp = DEFAULT_PID_TEMP;
|
|
|
|
|
|
static bool forceMenuExpire = false;
|
|
|
+bool lcd_autoDeplete;
|
|
|
|
|
|
|
|
|
static float manual_feedrate[] = MANUAL_FEEDRATE;
|
|
@@ -4513,6 +4514,159 @@ void lcd_settings_linearity_correction_menu(void)
|
|
|
}
|
|
|
#endif // TMC2130
|
|
|
|
|
|
+#ifdef FILAMENT_SENSOR
|
|
|
+#define SETTINGS_FILAMENT_SENSOR \
|
|
|
+do\
|
|
|
+{\
|
|
|
+ if (FSensorStateMenu == 0)\
|
|
|
+ {\
|
|
|
+ if (fsensor_not_responding)\
|
|
|
+ {\
|
|
|
+ /* Filament sensor not working*/\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i("Fil. sensor [N/A]"), lcd_fsensor_state_set);/*////MSG_FSENSOR_NA c=0 r=0*/\
|
|
|
+ MENU_ITEM_SUBMENU_P(_T(MSG_FSENS_AUTOLOAD_NA), lcd_fsensor_fail);\
|
|
|
+ }\
|
|
|
+ else\
|
|
|
+ {\
|
|
|
+ /* Filament sensor turned off, working, no problems*/\
|
|
|
+ MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_OFF), lcd_fsensor_state_set);\
|
|
|
+ if (mmu_enabled == false)if (mmu_enabled == false)\
|
|
|
+ {\
|
|
|
+ MENU_ITEM_SUBMENU_P(_T(MSG_FSENS_AUTOLOAD_NA), lcd_filament_autoload_info);\
|
|
|
+ }\
|
|
|
+ }\
|
|
|
+ }\
|
|
|
+ else\
|
|
|
+ {\
|
|
|
+ /* Filament sensor turned on, working, no problems*/\
|
|
|
+ MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_ON), lcd_fsensor_state_set);\
|
|
|
+ if (mmu_enabled == false)\
|
|
|
+ {\
|
|
|
+ if (fsensor_autoload_enabled)\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i("F. autoload [on]"), lcd_set_filament_autoload);/*////MSG_FSENS_AUTOLOAD_ON c=17 r=1*/\
|
|
|
+ else\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i("F. autoload [off]"), lcd_set_filament_autoload);/*////MSG_FSENS_AUTOLOAD_OFF c=17 r=1*/\
|
|
|
+ }\
|
|
|
+ }\
|
|
|
+}\
|
|
|
+while(0)
|
|
|
+
|
|
|
+#else //FILAMENT_SENSOR
|
|
|
+#define SETTINGS_FILAMENT_SENSOR do{}while(0)
|
|
|
+#endif //FILAMENT_SENSOR
|
|
|
+
|
|
|
+#ifdef TMC2130
|
|
|
+#define SETTINGS_SILENT_MODE \
|
|
|
+do\
|
|
|
+{\
|
|
|
+ if(!farm_mode)\
|
|
|
+ {\
|
|
|
+ if (SilentModeMenu == SILENT_MODE_NORMAL)\
|
|
|
+ {\
|
|
|
+ MENU_ITEM_FUNCTION_P(_T(MSG_STEALTH_MODE_OFF), lcd_silent_mode_set);\
|
|
|
+ }\
|
|
|
+ else MENU_ITEM_FUNCTION_P(_T(MSG_STEALTH_MODE_ON), lcd_silent_mode_set);\
|
|
|
+ if (SilentModeMenu == SILENT_MODE_NORMAL)\
|
|
|
+ {\
|
|
|
+ if (CrashDetectMenu == 0)\
|
|
|
+ {\
|
|
|
+ MENU_ITEM_FUNCTION_P(_T(MSG_CRASHDETECT_OFF), lcd_crash_mode_set);\
|
|
|
+ }\
|
|
|
+ else MENU_ITEM_FUNCTION_P(_T(MSG_CRASHDETECT_ON), lcd_crash_mode_set);\
|
|
|
+ }\
|
|
|
+ else MENU_ITEM_SUBMENU_P(_T(MSG_CRASHDETECT_NA), lcd_crash_mode_info);\
|
|
|
+ }\
|
|
|
+}\
|
|
|
+while (0)
|
|
|
+
|
|
|
+#else //TMC2130
|
|
|
+#define SETTINGS_SILENT_MODE \
|
|
|
+do\
|
|
|
+{\
|
|
|
+ if(!farm_mode)\
|
|
|
+ {\
|
|
|
+ switch (SilentModeMenu)\
|
|
|
+ {\
|
|
|
+ case SILENT_MODE_POWER:\
|
|
|
+ MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_OFF), lcd_silent_mode_set);\
|
|
|
+ break;\
|
|
|
+ case SILENT_MODE_SILENT:\
|
|
|
+ MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_ON), lcd_silent_mode_set);\
|
|
|
+ break;\
|
|
|
+ case SILENT_MODE_AUTO:\
|
|
|
+ MENU_ITEM_FUNCTION_P(_T(MSG_AUTO_MODE_ON), lcd_silent_mode_set);\
|
|
|
+ break;\
|
|
|
+ default:\
|
|
|
+ MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_OFF), lcd_silent_mode_set);\
|
|
|
+ break; /* (probably) not needed*/\
|
|
|
+ }\
|
|
|
+ }\
|
|
|
+}\
|
|
|
+while (0)
|
|
|
+#endif //TMC2130
|
|
|
+
|
|
|
+#ifdef SDCARD_SORT_ALPHA
|
|
|
+#define SETTINGS_SD \
|
|
|
+do\
|
|
|
+{\
|
|
|
+ if (card.ToshibaFlashAir_isEnabled())\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i("SD card [flshAir]"), lcd_toshiba_flash_air_compatibility_toggle);/*////MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1*/\
|
|
|
+ else\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i("SD card [normal]"), lcd_toshiba_flash_air_compatibility_toggle);/*////MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1*/\
|
|
|
+\
|
|
|
+ if (!farm_mode)\
|
|
|
+ {\
|
|
|
+ uint8_t sdSort;\
|
|
|
+ EEPROM_read(EEPROM_SD_SORT, (uint8_t*)&sdSort, sizeof(sdSort));\
|
|
|
+ switch (sdSort)\
|
|
|
+ {\
|
|
|
+ case SD_SORT_TIME: MENU_ITEM_FUNCTION_P(_i("Sort: [time]"), lcd_sort_type_set); break;/*////MSG_SORT_TIME c=17 r=1*/\
|
|
|
+ case SD_SORT_ALPHA: MENU_ITEM_FUNCTION_P(_i("Sort: [alphabet]"), lcd_sort_type_set); break;/*////MSG_SORT_ALPHA c=17 r=1*/\
|
|
|
+ default: MENU_ITEM_FUNCTION_P(_i("Sort: [none]"), lcd_sort_type_set);/*////MSG_SORT_NONE c=17 r=1*/\
|
|
|
+ }\
|
|
|
+ }\
|
|
|
+}\
|
|
|
+while (0)
|
|
|
+#else // SDCARD_SORT_ALPHA
|
|
|
+#define SETTINGS_SD \
|
|
|
+do\
|
|
|
+{\
|
|
|
+ if (card.ToshibaFlashAir_isEnabled())\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i("SD card [flshAir]"), lcd_toshiba_flash_air_compatibility_toggle);/*////MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1*/\
|
|
|
+ else\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i("SD card [normal]"), lcd_toshiba_flash_air_compatibility_toggle);/*////MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1*/\
|
|
|
+}\
|
|
|
+while (0)
|
|
|
+#endif // SDCARD_SORT_ALPHA
|
|
|
+
|
|
|
+#define SETTINGS_SOUND \
|
|
|
+do\
|
|
|
+{\
|
|
|
+ switch(eSoundMode)\
|
|
|
+ {\
|
|
|
+ case e_SOUND_MODE_LOUD:\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_LOUD),lcd_sound_state_set);\
|
|
|
+ break;\
|
|
|
+ case e_SOUND_MODE_ONCE:\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_ONCE),lcd_sound_state_set);\
|
|
|
+ break;\
|
|
|
+ case e_SOUND_MODE_SILENT:\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_SILENT),lcd_sound_state_set);\
|
|
|
+ break;\
|
|
|
+ case e_SOUND_MODE_MUTE:\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_MUTE),lcd_sound_state_set);\
|
|
|
+ break;\
|
|
|
+ default:\
|
|
|
+ MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_LOUD),lcd_sound_state_set);\
|
|
|
+ }\
|
|
|
+}\
|
|
|
+while (0)
|
|
|
+
|
|
|
+static void auto_deplete_switch()
|
|
|
+{
|
|
|
+ lcd_autoDeplete = !lcd_autoDeplete;
|
|
|
+ eeprom_update_byte((unsigned char *)EEPROM_AUTO_DEPLETE, lcd_autoDeplete);
|
|
|
+}
|
|
|
static void lcd_settings_menu()
|
|
|
{
|
|
|
EEPROM_read(EEPROM_SILENT, (uint8_t*)&SilentModeMenu, sizeof(SilentModeMenu));
|
|
@@ -4521,76 +4675,28 @@ static void lcd_settings_menu()
|
|
|
|
|
|
MENU_ITEM_SUBMENU_P(_i("Temperature"), lcd_control_temperature_menu);////MSG_TEMPERATURE c=0 r=0
|
|
|
if (!homing_flag)
|
|
|
- MENU_ITEM_SUBMENU_P(_i("Move axis"), lcd_move_menu_1mm);////MSG_MOVE_AXIS c=0 r=0
|
|
|
+ MENU_ITEM_SUBMENU_P(_i("Move axis"), lcd_move_menu_1mm);////MSG_MOVE_AXIS c=0 r=0
|
|
|
if (!isPrintPaused)
|
|
|
- MENU_ITEM_GCODE_P(_i("Disable steppers"), PSTR("M84"));////MSG_DISABLE_STEPPERS c=0 r=0
|
|
|
+ MENU_ITEM_GCODE_P(_i("Disable steppers"), PSTR("M84"));////MSG_DISABLE_STEPPERS c=0 r=0
|
|
|
|
|
|
-#ifndef TMC2130
|
|
|
- if (!farm_mode)
|
|
|
- { //dont show in menu if we are in farm mode
|
|
|
- switch (SilentModeMenu)
|
|
|
- {
|
|
|
- case SILENT_MODE_POWER: MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_OFF), lcd_silent_mode_set); break;
|
|
|
- case SILENT_MODE_SILENT: MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_ON), lcd_silent_mode_set); break;
|
|
|
- case SILENT_MODE_AUTO: MENU_ITEM_FUNCTION_P(_T(MSG_AUTO_MODE_ON), lcd_silent_mode_set); break;
|
|
|
- default: MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_OFF), lcd_silent_mode_set); break; // (probably) not needed
|
|
|
- }
|
|
|
- }
|
|
|
-#endif //TMC2130
|
|
|
+ SETTINGS_FILAMENT_SENSOR;
|
|
|
|
|
|
-#ifdef FILAMENT_SENSOR
|
|
|
- if (FSensorStateMenu == 0)
|
|
|
- {
|
|
|
- if (fsensor_not_responding)
|
|
|
- {
|
|
|
- // Filament sensor not working
|
|
|
- MENU_ITEM_FUNCTION_P(_i("Fil. sensor [N/A]"), lcd_fsensor_state_set);////MSG_FSENSOR_NA c=0 r=0
|
|
|
- MENU_ITEM_SUBMENU_P(_T(MSG_FSENS_AUTOLOAD_NA), lcd_fsensor_fail);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- // Filament sensor turned off, working, no problems
|
|
|
- MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_OFF), lcd_fsensor_state_set);
|
|
|
- if (mmu_enabled == false)
|
|
|
- {
|
|
|
- MENU_ITEM_SUBMENU_P(_T(MSG_FSENS_AUTOLOAD_NA), lcd_filament_autoload_info);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
+ if (mmu_enabled)
|
|
|
{
|
|
|
- // Filament sensor turned on, working, no problems
|
|
|
- MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_ON), lcd_fsensor_state_set);
|
|
|
- if (mmu_enabled == false)
|
|
|
- {
|
|
|
- if (fsensor_autoload_enabled)
|
|
|
- MENU_ITEM_FUNCTION_P(_i("F. autoload [on]"), lcd_set_filament_autoload);////MSG_FSENS_AUTOLOAD_ON c=17 r=1
|
|
|
- else
|
|
|
- MENU_ITEM_FUNCTION_P(_i("F. autoload [off]"), lcd_set_filament_autoload);////MSG_FSENS_AUTOLOAD_OFF c=17 r=1
|
|
|
- }
|
|
|
+ if (lcd_autoDeplete) MENU_ITEM_FUNCTION_P(_i("Auto deplete [on]"), auto_deplete_switch);
|
|
|
+ else MENU_ITEM_FUNCTION_P(_i("Auto deplete[off]"), auto_deplete_switch);
|
|
|
}
|
|
|
-#endif //FILAMENT_SENSOR
|
|
|
|
|
|
if (fans_check_enabled == true)
|
|
|
MENU_ITEM_FUNCTION_P(_i("Fans check [on]"), lcd_set_fan_check);////MSG_FANS_CHECK_ON c=17 r=1
|
|
|
else
|
|
|
MENU_ITEM_FUNCTION_P(_i("Fans check [off]"), lcd_set_fan_check);////MSG_FANS_CHECK_OFF c=17 r=1
|
|
|
|
|
|
-#ifdef TMC2130
|
|
|
- if(!farm_mode)
|
|
|
- {
|
|
|
- if (SilentModeMenu == SILENT_MODE_NORMAL) { MENU_ITEM_FUNCTION_P(_T(MSG_STEALTH_MODE_OFF), lcd_silent_mode_set); }
|
|
|
- else MENU_ITEM_FUNCTION_P(_T(MSG_STEALTH_MODE_ON), lcd_silent_mode_set);
|
|
|
- if (SilentModeMenu == SILENT_MODE_NORMAL)
|
|
|
- {
|
|
|
- if (CrashDetectMenu == 0) { MENU_ITEM_FUNCTION_P(_T(MSG_CRASHDETECT_OFF), lcd_crash_mode_set); }
|
|
|
- else MENU_ITEM_FUNCTION_P(_T(MSG_CRASHDETECT_ON), lcd_crash_mode_set);
|
|
|
- }
|
|
|
- else MENU_ITEM_SUBMENU_P(_T(MSG_CRASHDETECT_NA), lcd_crash_mode_info);
|
|
|
- }
|
|
|
+ SETTINGS_SILENT_MODE;
|
|
|
|
|
|
+#if defined (TMC2130) && defined (LINEARITY_CORRECTION)
|
|
|
MENU_ITEM_SUBMENU_P(_i("Lin. correction"), lcd_settings_linearity_correction_menu);
|
|
|
-#endif //TMC2130
|
|
|
+#endif //LINEARITY_CORRECTION && TMC2130
|
|
|
|
|
|
if (temp_cal_active == false)
|
|
|
MENU_ITEM_FUNCTION_P(_i("Temp. cal. [off]"), lcd_temp_calibration_set);////MSG_TEMP_CALIBRATION_OFF c=20 r=1
|
|
@@ -4611,45 +4717,9 @@ static void lcd_settings_menu()
|
|
|
MENU_ITEM_SUBMENU_P(_i("Select language"), lcd_language_menu);////MSG_LANGUAGE_SELECT c=0 r=0
|
|
|
#endif //(LANG_MODE != 0)
|
|
|
|
|
|
- if (card.ToshibaFlashAir_isEnabled())
|
|
|
- MENU_ITEM_FUNCTION_P(_i("SD card [flshAir]"), lcd_toshiba_flash_air_compatibility_toggle);////MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
|
|
|
- else
|
|
|
- MENU_ITEM_FUNCTION_P(_i("SD card [normal]"), lcd_toshiba_flash_air_compatibility_toggle);////MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
|
|
|
-
|
|
|
-#ifdef SDCARD_SORT_ALPHA
|
|
|
- if (!farm_mode)
|
|
|
- {
|
|
|
- uint8_t sdSort;
|
|
|
- EEPROM_read(EEPROM_SD_SORT, (uint8_t*)&sdSort, sizeof(sdSort));
|
|
|
- switch (sdSort)
|
|
|
- {
|
|
|
- case SD_SORT_TIME: MENU_ITEM_FUNCTION_P(_i("Sort: [time]"), lcd_sort_type_set); break;////MSG_SORT_TIME c=17 r=1
|
|
|
- case SD_SORT_ALPHA: MENU_ITEM_FUNCTION_P(_i("Sort: [alphabet]"), lcd_sort_type_set); break;////MSG_SORT_ALPHA c=17 r=1
|
|
|
- default: MENU_ITEM_FUNCTION_P(_i("Sort: [none]"), lcd_sort_type_set);////MSG_SORT_NONE c=17 r=1
|
|
|
- }
|
|
|
- }
|
|
|
-#endif // SDCARD_SORT_ALPHA
|
|
|
-
|
|
|
+ SETTINGS_SD;
|
|
|
+ SETTINGS_SOUND;
|
|
|
|
|
|
-//-//
|
|
|
-switch(eSoundMode)
|
|
|
- {
|
|
|
- case e_SOUND_MODE_LOUD:
|
|
|
- MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_LOUD),lcd_sound_state_set);
|
|
|
- break;
|
|
|
- case e_SOUND_MODE_ONCE:
|
|
|
- MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_ONCE),lcd_sound_state_set);
|
|
|
- break;
|
|
|
- case e_SOUND_MODE_SILENT:
|
|
|
- MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_SILENT),lcd_sound_state_set);
|
|
|
- break;
|
|
|
- case e_SOUND_MODE_MUTE:
|
|
|
- MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_MUTE),lcd_sound_state_set);
|
|
|
- break;
|
|
|
- default:
|
|
|
- MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_LOUD),lcd_sound_state_set);
|
|
|
- }
|
|
|
-//-//
|
|
|
if (farm_mode)
|
|
|
{
|
|
|
MENU_ITEM_SUBMENU_P(PSTR("Farm number"), lcd_farm_no);
|
|
@@ -7000,6 +7070,12 @@ void menu_action_sddirectory(const char* filename, char* longFilename)
|
|
|
|
|
|
void ultralcd_init()
|
|
|
{
|
|
|
+ {
|
|
|
+ uint8_t autoDepleteRaw = eeprom_read_byte(reinterpret_cast<uint8_t*>(EEPROM_AUTO_DEPLETE));
|
|
|
+ if (0xff == autoDepleteRaw) lcd_autoDeplete = false;
|
|
|
+ else lcd_autoDeplete = autoDepleteRaw;
|
|
|
+
|
|
|
+ }
|
|
|
lcd_init();
|
|
|
lcd_refresh();
|
|
|
lcd_longpress_func = menu_lcd_longpress_func;
|