Merge pull request #356 from michalprusa/autoload-logic
Filament autoloading improved and minor tweaks
This commit is contained in:
commit
0c2dba7c55
7 changed files with 141 additions and 50 deletions
|
@ -9,7 +9,7 @@
|
|||
|
||||
// Firmware version
|
||||
#define FW_version "3.1.1-RC4"
|
||||
#define FW_build 139g
|
||||
#define FW_build 140
|
||||
//#define FW_build --BUILD-NUMBER--
|
||||
#define FW_version_build FW_version " b" STR(FW_build)
|
||||
|
||||
|
|
|
@ -6422,17 +6422,35 @@ void handle_status_leds(void) {
|
|||
|
||||
void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument set in Marlin.h
|
||||
{
|
||||
if (fsensor_enabled && filament_autoload_enabled && !fsensor_M600 && !moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LCD_COMMAND_V2_CAL) && (current_temperature[0] > EXTRUDE_MINTEMP))
|
||||
if (fsensor_enabled && filament_autoload_enabled && !fsensor_M600 && !moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LCD_COMMAND_V2_CAL))
|
||||
{
|
||||
if (fsensor_autoload_enabled)
|
||||
{
|
||||
if (fsensor_check_autoload())
|
||||
{
|
||||
fsensor_autoload_check_stop();
|
||||
tone(BEEPER, 1000);
|
||||
delay_keep_alive(50);
|
||||
noTone(BEEPER);
|
||||
enquecommand_front_P((PSTR("M701")));
|
||||
|
||||
if (degHotend0() > EXTRUDE_MINTEMP)
|
||||
{
|
||||
fsensor_autoload_check_stop();
|
||||
tone(BEEPER, 1000);
|
||||
delay_keep_alive(50);
|
||||
noTone(BEEPER);
|
||||
loading_flag = true;
|
||||
enquecommand_front_P((PSTR("M701")));
|
||||
}
|
||||
else
|
||||
{
|
||||
lcd_update_enable(false);
|
||||
lcd_implementation_clear();
|
||||
lcd.setCursor(0, 0);
|
||||
lcd_printPGM(MSG_ERROR);
|
||||
lcd.setCursor(0, 2);
|
||||
lcd_printPGM(MSG_PREHEAT_NOZZLE);
|
||||
delay(2000);
|
||||
lcd_implementation_clear();
|
||||
lcd_update_enable(true);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -35,12 +35,19 @@ const char * const MSG_AUTHOR_LANG_TABLE[1] PROGMEM = {
|
|||
};
|
||||
|
||||
const char MSG_AUTOLOADING_ENABLED_EN[] PROGMEM = "Autoloading filament is active, just press the knob and insert filament...";
|
||||
const char MSG_AUTOLOADING_ENABLED_CZ[] PROGMEM = "Automaticke zavedeni filamentu aktivni, stisknete tlacitko a vlozte filament...";
|
||||
const char MSG_AUTOLOADING_ENABLED_CZ[] PROGMEM = "Automaticke zavadeni filamentu aktivni, stisknete tlacitko a vlozte filament...";
|
||||
const char * const MSG_AUTOLOADING_ENABLED_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_AUTOLOADING_ENABLED_EN,
|
||||
MSG_AUTOLOADING_ENABLED_CZ
|
||||
};
|
||||
|
||||
const char MSG_AUTOLOADING_ONLY_IF_FSENS_ON_EN[] PROGMEM = "Autoloading filament available only when filament sensor is turned on...";
|
||||
const char MSG_AUTOLOADING_ONLY_IF_FSENS_ON_CZ[] PROGMEM = "Automaticke zavadeni filamentu dostupne pouze pri zapnutem filament senzoru...";
|
||||
const char * const MSG_AUTOLOADING_ONLY_IF_FSENS_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_AUTOLOADING_ONLY_IF_FSENS_ON_EN,
|
||||
MSG_AUTOLOADING_ONLY_IF_FSENS_ON_CZ
|
||||
};
|
||||
|
||||
const char MSG_AUTOLOAD_FILAMENT_EN[] PROGMEM = "AutoLoad filament";
|
||||
const char MSG_AUTOLOAD_FILAMENT_CZ[] PROGMEM = "AutoZavedeni fil.";
|
||||
const char * const MSG_AUTOLOAD_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
@ -423,8 +430,10 @@ const char * const MSG_CRASHDETECT_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
};
|
||||
|
||||
const char MSG_CRASH_DETECTED_EN[] PROGMEM = "Crash detected. Continue printing?";
|
||||
const char * const MSG_CRASH_DETECTED_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_CRASH_DETECTED_EN
|
||||
const char MSG_CRASH_DETECTED_CZ[] PROGMEM = "Naraz detekovan, pokracovat v tisku?";
|
||||
const char * const MSG_CRASH_DETECTED_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_CRASH_DETECTED_EN,
|
||||
MSG_CRASH_DETECTED_CZ
|
||||
};
|
||||
|
||||
const char MSG_CRASH_DET_ONLY_IN_NORMAL_EN[] PROGMEM = "Crash detection can be turned on only in Normal mode.";
|
||||
|
@ -624,7 +633,7 @@ const char * const MSG_FILAMENTCHANGE_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
MSG_FILAMENTCHANGE_CZ
|
||||
};
|
||||
|
||||
const char MSG_FILAMENT_CLEAN_EN[] PROGMEM = "Filament extruding & with right color?";
|
||||
const char MSG_FILAMENT_CLEAN_EN[] PROGMEM = "Filament extruding & with correct color?";
|
||||
const char MSG_FILAMENT_CLEAN_CZ[] PROGMEM = "Filament vytlacen a spravne barvy?";
|
||||
const char * const MSG_FILAMENT_CLEAN_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_FILAMENT_CLEAN_EN,
|
||||
|
@ -760,7 +769,7 @@ const char * const MSG_FREE_MEMORY_LANG_TABLE[1] PROGMEM = {
|
|||
};
|
||||
|
||||
const char MSG_FSENSOR_NA_EN[] PROGMEM = "Fil. sensor [N/A]";
|
||||
const char MSG_FSENSOR_NA_CZ[] PROGMEM = "Fil. senzor [err]";
|
||||
const char MSG_FSENSOR_NA_CZ[] PROGMEM = "Fil. senzor [N/A]";
|
||||
const char * const MSG_FSENSOR_NA_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_FSENSOR_NA_EN,
|
||||
MSG_FSENSOR_NA_CZ
|
||||
|
@ -780,20 +789,34 @@ const char * const MSG_FSENSOR_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
MSG_FSENSOR_ON_CZ
|
||||
};
|
||||
|
||||
const char MSG_FSENS_AUTOLOAD_NA_EN[] PROGMEM = "F. autoload [N/A]";
|
||||
const char MSG_FSENS_AUTOLOAD_NA_CZ[] PROGMEM = "F. autozav. [N/A]";
|
||||
const char * const MSG_FSENS_AUTOLOAD_NA_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_FSENS_AUTOLOAD_NA_EN,
|
||||
MSG_FSENS_AUTOLOAD_NA_CZ
|
||||
};
|
||||
|
||||
const char MSG_FSENS_AUTOLOAD_OFF_EN[] PROGMEM = "F. autoload [off]";
|
||||
const char MSG_FSENS_AUTOLOAD_OFF_CZ[] PROGMEM = "F. autozav. [off]";
|
||||
const char MSG_FSENS_AUTOLOAD_OFF_CZ[] PROGMEM = "F. autozav. [vyp]";
|
||||
const char * const MSG_FSENS_AUTOLOAD_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_FSENS_AUTOLOAD_OFF_EN,
|
||||
MSG_FSENS_AUTOLOAD_OFF_CZ
|
||||
};
|
||||
|
||||
const char MSG_FSENS_AUTOLOAD_ON_EN[] PROGMEM = "F. autoload [on]";
|
||||
const char MSG_FSENS_AUTOLOAD_ON_CZ[] PROGMEM = "F. autozav. [on]";
|
||||
const char MSG_FSENS_AUTOLOAD_ON_CZ[] PROGMEM = "F. autozav. [zap]";
|
||||
const char * const MSG_FSENS_AUTOLOAD_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_FSENS_AUTOLOAD_ON_EN,
|
||||
MSG_FSENS_AUTOLOAD_ON_CZ
|
||||
};
|
||||
|
||||
const char MSG_FSENS_NOT_RESPONDING_EN[] PROGMEM = "ERROR: Filament sensor is not responding, please check connection.";
|
||||
const char MSG_FSENS_NOT_RESPONDING_CZ[] PROGMEM = "CHYBA: Filament senzor nereaguje, zkontrolujte zapojeni.";
|
||||
const char * const MSG_FSENS_NOT_RESPONDING_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_FSENS_NOT_RESPONDING_EN,
|
||||
MSG_FSENS_NOT_RESPONDING_CZ
|
||||
};
|
||||
|
||||
const char MSG_HEATING_EN[] PROGMEM = "Heating";
|
||||
const char MSG_HEATING_CZ[] PROGMEM = "Zahrivani";
|
||||
const char * const MSG_HEATING_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
@ -1201,7 +1224,7 @@ const char * const MSG_NO_LANG_TABLE[LANG_NUM] PROGMEM = {
|
|||
MSG_NO_CZ
|
||||
};
|
||||
|
||||
const char MSG_NOT_COLOR_EN[] PROGMEM = "Color not right";
|
||||
const char MSG_NOT_COLOR_EN[] PROGMEM = "Color not correct";
|
||||
const char MSG_NOT_COLOR_CZ[] PROGMEM = "Barva neni cista";
|
||||
const char * const MSG_NOT_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_NOT_COLOR_EN,
|
||||
|
@ -1604,13 +1627,17 @@ const char * const MSG_SD_WRITE_TO_FILE_LANG_TABLE[1] PROGMEM = {
|
|||
};
|
||||
|
||||
const char MSG_SECOND_SERIAL_OFF_EN[] PROGMEM = "RPi port [off]";
|
||||
const char * const MSG_SECOND_SERIAL_OFF_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_SECOND_SERIAL_OFF_EN
|
||||
const char MSG_SECOND_SERIAL_OFF_CZ[] PROGMEM = "RPi port [vyp]";
|
||||
const char * const MSG_SECOND_SERIAL_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_SECOND_SERIAL_OFF_EN,
|
||||
MSG_SECOND_SERIAL_OFF_CZ
|
||||
};
|
||||
|
||||
const char MSG_SECOND_SERIAL_ON_EN[] PROGMEM = "RPi port [on]";
|
||||
const char * const MSG_SECOND_SERIAL_ON_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_SECOND_SERIAL_ON_EN
|
||||
const char MSG_SECOND_SERIAL_ON_CZ[] PROGMEM = "RPi port [zap]";
|
||||
const char * const MSG_SECOND_SERIAL_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
MSG_SECOND_SERIAL_ON_EN,
|
||||
MSG_SECOND_SERIAL_ON_CZ
|
||||
};
|
||||
|
||||
const char MSG_SELFTEST_EN[] PROGMEM = "Selftest ";
|
||||
|
|
|
@ -34,6 +34,8 @@ extern const char* const MSG_AUTHOR_LANG_TABLE[1];
|
|||
#define MSG_AUTHOR LANG_TABLE_SELECT_EXPLICIT(MSG_AUTHOR_LANG_TABLE, 0)
|
||||
extern const char* const MSG_AUTOLOADING_ENABLED_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_AUTOLOADING_ENABLED LANG_TABLE_SELECT(MSG_AUTOLOADING_ENABLED_LANG_TABLE)
|
||||
extern const char* const MSG_AUTOLOADING_ONLY_IF_FSENS_ON_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_AUTOLOADING_ONLY_IF_FSENS_ON LANG_TABLE_SELECT(MSG_AUTOLOADING_ONLY_IF_FSENS_ON_LANG_TABLE)
|
||||
extern const char* const MSG_AUTOLOAD_FILAMENT_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_AUTOLOAD_FILAMENT LANG_TABLE_SELECT(MSG_AUTOLOAD_FILAMENT_LANG_TABLE)
|
||||
extern const char* const MSG_AUTO_HOME_LANG_TABLE[1];
|
||||
|
@ -152,8 +154,8 @@ extern const char* const MSG_CRASHDETECT_OFF_LANG_TABLE[LANG_NUM];
|
|||
#define MSG_CRASHDETECT_OFF LANG_TABLE_SELECT(MSG_CRASHDETECT_OFF_LANG_TABLE)
|
||||
extern const char* const MSG_CRASHDETECT_ON_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_CRASHDETECT_ON LANG_TABLE_SELECT(MSG_CRASHDETECT_ON_LANG_TABLE)
|
||||
extern const char* const MSG_CRASH_DETECTED_LANG_TABLE[1];
|
||||
#define MSG_CRASH_DETECTED LANG_TABLE_SELECT_EXPLICIT(MSG_CRASH_DETECTED_LANG_TABLE, 0)
|
||||
extern const char* const MSG_CRASH_DETECTED_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_CRASH_DETECTED LANG_TABLE_SELECT(MSG_CRASH_DETECTED_LANG_TABLE)
|
||||
extern const char* const MSG_CRASH_DET_ONLY_IN_NORMAL_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_CRASH_DET_ONLY_IN_NORMAL LANG_TABLE_SELECT(MSG_CRASH_DET_ONLY_IN_NORMAL_LANG_TABLE)
|
||||
extern const char* const MSG_CRASH_DET_STEALTH_FORCE_OFF_LANG_TABLE[LANG_NUM];
|
||||
|
@ -272,10 +274,14 @@ extern const char* const MSG_FSENSOR_OFF_LANG_TABLE[LANG_NUM];
|
|||
#define MSG_FSENSOR_OFF LANG_TABLE_SELECT(MSG_FSENSOR_OFF_LANG_TABLE)
|
||||
extern const char* const MSG_FSENSOR_ON_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_FSENSOR_ON LANG_TABLE_SELECT(MSG_FSENSOR_ON_LANG_TABLE)
|
||||
extern const char* const MSG_FSENS_AUTOLOAD_NA_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_FSENS_AUTOLOAD_NA LANG_TABLE_SELECT(MSG_FSENS_AUTOLOAD_NA_LANG_TABLE)
|
||||
extern const char* const MSG_FSENS_AUTOLOAD_OFF_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_FSENS_AUTOLOAD_OFF LANG_TABLE_SELECT(MSG_FSENS_AUTOLOAD_OFF_LANG_TABLE)
|
||||
extern const char* const MSG_FSENS_AUTOLOAD_ON_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_FSENS_AUTOLOAD_ON LANG_TABLE_SELECT(MSG_FSENS_AUTOLOAD_ON_LANG_TABLE)
|
||||
extern const char* const MSG_FSENS_NOT_RESPONDING_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_FSENS_NOT_RESPONDING LANG_TABLE_SELECT(MSG_FSENS_NOT_RESPONDING_LANG_TABLE)
|
||||
extern const char* const MSG_HEATING_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_HEATING LANG_TABLE_SELECT(MSG_HEATING_LANG_TABLE)
|
||||
extern const char* const MSG_HEATING_COMPLETE_LANG_TABLE[LANG_NUM];
|
||||
|
@ -540,10 +546,10 @@ extern const char* const MSG_SD_WORKDIR_FAIL_LANG_TABLE[1];
|
|||
#define MSG_SD_WORKDIR_FAIL LANG_TABLE_SELECT_EXPLICIT(MSG_SD_WORKDIR_FAIL_LANG_TABLE, 0)
|
||||
extern const char* const MSG_SD_WRITE_TO_FILE_LANG_TABLE[1];
|
||||
#define MSG_SD_WRITE_TO_FILE LANG_TABLE_SELECT_EXPLICIT(MSG_SD_WRITE_TO_FILE_LANG_TABLE, 0)
|
||||
extern const char* const MSG_SECOND_SERIAL_OFF_LANG_TABLE[1];
|
||||
#define MSG_SECOND_SERIAL_OFF LANG_TABLE_SELECT_EXPLICIT(MSG_SECOND_SERIAL_OFF_LANG_TABLE, 0)
|
||||
extern const char* const MSG_SECOND_SERIAL_ON_LANG_TABLE[1];
|
||||
#define MSG_SECOND_SERIAL_ON LANG_TABLE_SELECT_EXPLICIT(MSG_SECOND_SERIAL_ON_LANG_TABLE, 0)
|
||||
extern const char* const MSG_SECOND_SERIAL_OFF_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_SECOND_SERIAL_OFF LANG_TABLE_SELECT(MSG_SECOND_SERIAL_OFF_LANG_TABLE)
|
||||
extern const char* const MSG_SECOND_SERIAL_ON_LANG_TABLE[LANG_NUM];
|
||||
#define MSG_SECOND_SERIAL_ON LANG_TABLE_SELECT(MSG_SECOND_SERIAL_ON_LANG_TABLE)
|
||||
extern const char* const MSG_SELFTEST_LANG_TABLE[1];
|
||||
#define MSG_SELFTEST LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_LANG_TABLE, 0)
|
||||
extern const char* const MSG_SELFTEST_AXIS_LANG_TABLE[LANG_NUM];
|
||||
|
|
|
@ -348,7 +348,7 @@
|
|||
ve
|
||||
#define MSG_CALIBRATE_Z_AUTO "Kalibruji Z"
|
||||
#define MSG_FSENSOR_OFF "Fil. senzor [vyp]"
|
||||
#define MSG_FSENSOR_NA "Fil. senzor [err]"
|
||||
#define MSG_FSENSOR_NA "Fil. senzor [N/A]"
|
||||
#define MSG_FSENSOR_ON "Fil. senzor [zap]"
|
||||
#define MSG_CRASHDETECT_ON "Crash det. [zap]"
|
||||
#define MSG_CRASHDETECT_NA "Crash det. [N/A]"
|
||||
|
@ -357,7 +357,10 @@ ve
|
|||
#define MSG_FANS_CHECK_OFF "Kontr. vent.[vyp]"
|
||||
#define(length=17, lines=1) MSG_FSENS_AUTOLOAD_ON "F. autozav. [zap]"
|
||||
#define(length=17, lines=1) MSG_FSENS_AUTOLOAD_OFF "F. autozav. [vyp]"
|
||||
#define(length=17, lines=1) MSG_FSENS_AUTOLOAD_NA "F. autozav. [N/A]"
|
||||
#define MSG_RECOVERING_PRINT "Obnovovani tisku "
|
||||
#define(length=20, lines=2) MSG_CRASH_DETECTED "Naraz detekovan, pokracovat v tisku?"
|
||||
|
||||
#define MSG_SELFTEST_AXIS "Osa"
|
||||
#define MSG_SELFTEST_AXIS_LENGTH "Delka osy"
|
||||
#define MSG_STEEL_SHEET_CHECK "Je tiskovy plat na heatbed?"
|
||||
|
@ -374,11 +377,11 @@ ve
|
|||
#define(length=20, lines=1) MSG_SORTING "Trideni souboru"
|
||||
|
||||
|
||||
#define(length=11, lines=1) MSG_INFO_NOZZLE_FAN "Trysk. vent:"
|
||||
#define(length=11, lines=1) MSG_INFO_PRINT_FAN "Tisk. vent:"
|
||||
#define(length=12, lines=1) MSG_INFO_NOZZLE_FAN "Trysk. vent:"
|
||||
#define(length=12, lines=1) MSG_INFO_PRINT_FAN "Tisk. vent:"
|
||||
|
||||
|
||||
#define(length=17, lines=1) MSG_SECOND_SERIAL_ON "RPi port [zap]"
|
||||
#define(length=17, lines=1) MSG_SECOND_SERIAL_ON "RPi port [zap]"
|
||||
#define(length=17, lines=1) MSG_SECOND_SERIAL_OFF "RPi port [vyp]"
|
||||
|
||||
#define(length=15, lines=1) MSG_INFO_EXTRUDER "Extruder info"
|
||||
|
@ -389,4 +392,8 @@ ve
|
|||
#define(length=20, lines=4) MSG_CRASH_DET_ONLY_IN_NORMAL "Crash detekce muze byt zapnuta pouze v Normal modu"
|
||||
#define(length=20, lines=4) MSG_CRASH_DET_STEALTH_FORCE_OFF "POZOR: Crash detekce deaktivovana ve Stealth modu"
|
||||
|
||||
#define(length=20, lines=4) MSG_AUTOLOADING_ENABLED "Automaticke zavedeni filamentu aktivni, stisknete tlacitko a vlozte filament..."
|
||||
#define(length=20, lines=4) MSG_AUTOLOADING_ENABLED "Automaticke zavadeni filamentu aktivni, stisknete tlacitko a vlozte filament..."
|
||||
#define(length=20, lines=4) MSG_AUTOLOADING_ONLY_IF_FSENS_ON "Automaticke zavadeni filamentu dostupne pouze pri zapnutem filament senzoru..."
|
||||
|
||||
#define(length=20, lines=4) MSG_FSENS_NOT_RESPONDING "CHYBA: Filament senzor nereaguje, zkontrolujte zapojeni."
|
||||
|
||||
|
|
|
@ -92,7 +92,7 @@
|
|||
#define MSG_YES "Yes"
|
||||
#define MSG_NO "No"
|
||||
#define(length=19) MSG_NOT_LOADED "Filament not loaded"
|
||||
#define MSG_NOT_COLOR "Color not right"
|
||||
#define MSG_NOT_COLOR "Color not correct"
|
||||
#define(length=20) MSG_LOADING_FILAMENT "Loading filament"
|
||||
#define(length=20) MSG_PLEASE_WAIT "Please wait"
|
||||
#define MSG_LOADING_COLOR "Loading color"
|
||||
|
@ -269,8 +269,8 @@
|
|||
#define(length=20, lines=8) MSG_MARK_FIL "Mark filament 100mm from extruder body. Click when done."
|
||||
#define(length=20, lines=8) MSG_CLEAN_NOZZLE_E "E calibration finished. Please clean the nozzle. Click when done."
|
||||
#define(length=20, lines=3) MSG_WAITING_TEMP "Waiting for nozzle and bed cooling"
|
||||
#define(length=20, lines=2) MSG_FILAMENT_CLEAN "Filament extruding & with right color?"
|
||||
#define(lenght=18, lines=1) MSG_UNLOADING_FILAMENT "Unloading filament"
|
||||
#define(length=20, lines=2) MSG_FILAMENT_CLEAN "Filament extruding & with correct color?"
|
||||
#define(lenght=20, lines=1) MSG_UNLOADING_FILAMENT "Unloading filament"
|
||||
#define(length=20, lines=8) MSG_PAPER "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."
|
||||
|
||||
#define MSG_BED_CORRECTION_MENU "Bed level correct"
|
||||
|
@ -381,6 +381,7 @@
|
|||
#define(length=17, lines=1) MSG_FANS_CHECK_OFF "Fans check [off]"
|
||||
#define(length=17, lines=1) MSG_FSENS_AUTOLOAD_ON "F. autoload [on]"
|
||||
#define(length=17, lines=1) MSG_FSENS_AUTOLOAD_OFF "F. autoload [off]"
|
||||
#define(length=17, lines=1) MSG_FSENS_AUTOLOAD_NA "F. autoload [N/A]"
|
||||
#define(length=20, lines=4) MSG_PRESS_TO_UNLOAD "Please press the knob to unload filament"
|
||||
#define(length=20, lines=2) MSG_UNLOAD_SUCCESSFULL "Repeat unloading filament?"
|
||||
#define(length=20, lines=2) MSG_FILE_INCOMPLETE "File incomplete. Continue anyway?"
|
||||
|
@ -397,5 +398,7 @@
|
|||
#define(length=20, lines=4) MSG_CRASH_DET_ONLY_IN_NORMAL "Crash detection can be turned on only in Normal mode."
|
||||
#define(length=20, lines=4) MSG_CRASH_DET_STEALTH_FORCE_OFF "WARNING: Crash detection disabled in Stealth mode"
|
||||
|
||||
#define(length=20, lines=4) MSG_AUTOLOADING_ENABLED "Autoloading filament is active, just press the knob and insert filament..."
|
||||
#define(length=20, lines=4) MSG_AUTOLOADING_ENABLED "Autoloading filament is active, just press the knob and insert filament..."
|
||||
#define(length=20, lines=4) MSG_AUTOLOADING_ONLY_IF_FSENS_ON "Autoloading filament available only when filament sensor is turned on..."
|
||||
|
||||
#define(length=20, lines=4) MSG_FSENS_NOT_RESPONDING "ERROR: Filament sensor is not responding, please check connection."
|
||||
|
|
|
@ -33,6 +33,10 @@ extern int lcd_change_fil_state;
|
|||
extern bool fans_check_enabled;
|
||||
extern bool filament_autoload_enabled;
|
||||
|
||||
extern bool fsensor_not_responding;
|
||||
|
||||
extern bool fsensor_enabled;
|
||||
|
||||
//Function pointer to menu functions.
|
||||
typedef void (*menuFunc_t)();
|
||||
|
||||
|
@ -1933,7 +1937,7 @@ void lcd_LoadFilament()
|
|||
{
|
||||
if (degHotend0() > EXTRUDE_MINTEMP)
|
||||
{
|
||||
if (filament_autoload_enabled)
|
||||
if (filament_autoload_enabled && fsensor_enabled)
|
||||
{
|
||||
lcd_show_fullscreen_message_and_wait_P(MSG_AUTOLOADING_ENABLED);
|
||||
return;
|
||||
|
@ -3294,6 +3298,15 @@ static void lcd_crash_mode_info2()
|
|||
lcd_show_fullscreen_message_and_wait_P(MSG_CRASH_DET_STEALTH_FORCE_OFF);
|
||||
}
|
||||
|
||||
static void lcd_filament_autoload_info()
|
||||
{
|
||||
lcd_show_fullscreen_message_and_wait_P(MSG_AUTOLOADING_ONLY_IF_FSENS_ON);
|
||||
}
|
||||
|
||||
static void lcd_fsensor_fail()
|
||||
{
|
||||
lcd_show_fullscreen_message_and_wait_P(MSG_FSENS_NOT_RESPONDING);
|
||||
}
|
||||
|
||||
static void lcd_silent_mode_set() {
|
||||
SilentModeMenu = !SilentModeMenu;
|
||||
|
@ -3350,8 +3363,15 @@ static void lcd_fsensor_state_set()
|
|||
FSensorStateMenu = !FSensorStateMenu; //set also from fsensor_enable() and fsensor_disable()
|
||||
if (FSensorStateMenu==0) {
|
||||
fsensor_disable();
|
||||
if ((filament_autoload_enabled == true)){
|
||||
lcd_filament_autoload_info();
|
||||
}
|
||||
}else{
|
||||
fsensor_enable();
|
||||
if (fsensor_not_responding)
|
||||
{
|
||||
lcd_fsensor_fail();
|
||||
}
|
||||
}
|
||||
if (IS_SD_PRINTING || is_usb_printing || (lcd_commands_type == LCD_COMMAND_V2_CAL)) lcd_goto_menu(lcd_tune_menu, 7);
|
||||
else lcd_goto_menu(lcd_settings_menu, 7);
|
||||
|
@ -3745,7 +3765,7 @@ static void lcd_crash_menu()
|
|||
{
|
||||
}
|
||||
|
||||
extern bool fsensor_not_responding;
|
||||
|
||||
|
||||
static void lcd_settings_menu()
|
||||
{
|
||||
|
@ -3765,19 +3785,29 @@ static void lcd_settings_menu()
|
|||
}
|
||||
|
||||
if (FSensorStateMenu == 0) {
|
||||
if (fsensor_not_responding)
|
||||
MENU_ITEM(function, MSG_FSENSOR_NA, lcd_fsensor_state_set);
|
||||
else
|
||||
MENU_ITEM(function, MSG_FSENSOR_OFF, lcd_fsensor_state_set);
|
||||
if (fsensor_not_responding){
|
||||
// Filament sensor not working
|
||||
MENU_ITEM(function, MSG_FSENSOR_NA, lcd_fsensor_state_set);
|
||||
MENU_ITEM(function, MSG_FSENS_AUTOLOAD_NA, lcd_fsensor_fail);
|
||||
}
|
||||
else{
|
||||
// Filament sensor turned off, working, no problems
|
||||
MENU_ITEM(function, MSG_FSENSOR_OFF, lcd_fsensor_state_set);
|
||||
MENU_ITEM(function, MSG_FSENS_AUTOLOAD_NA, lcd_filament_autoload_info);
|
||||
}
|
||||
} else {
|
||||
MENU_ITEM(function, MSG_FSENSOR_ON, lcd_fsensor_state_set);
|
||||
}
|
||||
if (filament_autoload_enabled == true) {
|
||||
MENU_ITEM(function, MSG_FSENS_AUTOLOAD_ON, lcd_set_filament_autoload);
|
||||
}
|
||||
else {
|
||||
MENU_ITEM(function, MSG_FSENS_AUTOLOAD_OFF, lcd_set_filament_autoload);
|
||||
// Filament sensor turned on, working, no problems
|
||||
MENU_ITEM(function, MSG_FSENSOR_ON, lcd_fsensor_state_set);
|
||||
|
||||
if ((filament_autoload_enabled == true)) {
|
||||
MENU_ITEM(function, MSG_FSENS_AUTOLOAD_ON, lcd_set_filament_autoload);
|
||||
}
|
||||
else {
|
||||
MENU_ITEM(function, MSG_FSENS_AUTOLOAD_OFF, lcd_set_filament_autoload);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (fans_check_enabled == true) {
|
||||
MENU_ITEM(function, MSG_FANS_CHECK_ON, lcd_set_fan_check);
|
||||
}
|
||||
|
@ -5041,10 +5071,10 @@ static void lcd_main_menu()
|
|||
else
|
||||
{
|
||||
#ifndef SNMM
|
||||
if (!filament_autoload_enabled)
|
||||
MENU_ITEM(function, MSG_LOAD_FILAMENT, lcd_LoadFilament);
|
||||
if ( ((filament_autoload_enabled == true) && (fsensor_enabled == true)))
|
||||
MENU_ITEM(function, MSG_AUTOLOAD_FILAMENT, lcd_LoadFilament);
|
||||
else
|
||||
MENU_ITEM(function, MSG_AUTOLOAD_FILAMENT, lcd_LoadFilament);
|
||||
MENU_ITEM(function, MSG_LOAD_FILAMENT, lcd_LoadFilament);
|
||||
MENU_ITEM(function, MSG_UNLOAD_FILAMENT, lcd_unLoadFilament);
|
||||
#endif
|
||||
#ifdef SNMM
|
||||
|
|
Loading…
Reference in a new issue