Merge branch 'MK3' into use_enum_class_2
This commit is contained in:
commit
72f5e87c61
14 changed files with 258 additions and 15 deletions
Firmware
|
@ -214,6 +214,9 @@ void manage_inactivity(bool ignore_stepper_queue=false);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define FARM_FILAMENT_COLOR_NONE 99;
|
||||||
|
|
||||||
|
|
||||||
enum AxisEnum {X_AXIS=0, Y_AXIS=1, Z_AXIS=2, E_AXIS=3, X_HEAD=4, Y_HEAD=5};
|
enum AxisEnum {X_AXIS=0, Y_AXIS=1, Z_AXIS=2, E_AXIS=3, X_HEAD=4, Y_HEAD=5};
|
||||||
#define X_AXIS_MASK 1
|
#define X_AXIS_MASK 1
|
||||||
#define Y_AXIS_MASK 2
|
#define Y_AXIS_MASK 2
|
||||||
|
|
|
@ -214,8 +214,6 @@ static LongTimer crashDetTimer;
|
||||||
bool mesh_bed_leveling_flag = false;
|
bool mesh_bed_leveling_flag = false;
|
||||||
bool mesh_bed_run_from_menu = false;
|
bool mesh_bed_run_from_menu = false;
|
||||||
|
|
||||||
int8_t FarmMode = 0;
|
|
||||||
|
|
||||||
bool prusa_sd_card_upload = false;
|
bool prusa_sd_card_upload = false;
|
||||||
|
|
||||||
unsigned int status_number = 0;
|
unsigned int status_number = 0;
|
||||||
|
@ -1065,6 +1063,9 @@ void setup()
|
||||||
//disabled filament autoload (PFW360)
|
//disabled filament autoload (PFW360)
|
||||||
fsensor_autoload_set(false);
|
fsensor_autoload_set(false);
|
||||||
#endif //FILAMENT_SENSOR
|
#endif //FILAMENT_SENSOR
|
||||||
|
// ~ FanCheck -> on
|
||||||
|
if(!(eeprom_read_byte((uint8_t*)EEPROM_FAN_CHECK_ENABLED)))
|
||||||
|
eeprom_update_byte((unsigned char *)EEPROM_FAN_CHECK_ENABLED,true);
|
||||||
}
|
}
|
||||||
MYSERIAL.begin(BAUDRATE);
|
MYSERIAL.begin(BAUDRATE);
|
||||||
fdev_setup_stream(uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE); //setup uart out stream
|
fdev_setup_stream(uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE); //setup uart out stream
|
||||||
|
@ -1644,6 +1645,7 @@ void setup()
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif //UVLO_SUPPORT
|
#endif //UVLO_SUPPORT
|
||||||
|
fCheckModeInit();
|
||||||
KEEPALIVE_STATE(NOT_BUSY);
|
KEEPALIVE_STATE(NOT_BUSY);
|
||||||
#ifdef WATCHDOG
|
#ifdef WATCHDOG
|
||||||
wdt_enable(WDTO_4S);
|
wdt_enable(WDTO_4S);
|
||||||
|
@ -3649,7 +3651,39 @@ void process_commands()
|
||||||
} else if(code_seen("FR")) { //! PRUSA FR
|
} else if(code_seen("FR")) { //! PRUSA FR
|
||||||
// Factory full reset
|
// Factory full reset
|
||||||
factory_reset(0);
|
factory_reset(0);
|
||||||
}
|
|
||||||
|
//-//
|
||||||
|
/*
|
||||||
|
} else if(code_seen("qqq")) {
|
||||||
|
MYSERIAL.println("=== checking ===");
|
||||||
|
MYSERIAL.println(eeprom_read_byte((uint8_t*)EEPROM_CHECK_MODE),DEC);
|
||||||
|
MYSERIAL.println(eeprom_read_byte((uint8_t*)EEPROM_NOZZLE_DIAMETER),DEC);
|
||||||
|
MYSERIAL.println(eeprom_read_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM),DEC);
|
||||||
|
MYSERIAL.println(farm_mode,DEC);
|
||||||
|
MYSERIAL.println(eCheckMode,DEC);
|
||||||
|
} else if(code_seen("www")) {
|
||||||
|
MYSERIAL.println("=== @ FF ===");
|
||||||
|
eeprom_update_byte((uint8_t*)EEPROM_CHECK_MODE,0xFF);
|
||||||
|
eeprom_update_byte((uint8_t*)EEPROM_NOZZLE_DIAMETER,0xFF);
|
||||||
|
eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,0xFFFF);
|
||||||
|
*/
|
||||||
|
} else if (code_seen("nozzle")) { //! PRUSA nozzle
|
||||||
|
uint16_t nDiameter;
|
||||||
|
if(code_seen('D'))
|
||||||
|
{
|
||||||
|
nDiameter=(uint16_t)(code_value()*1000.0+0.5); // [,um]
|
||||||
|
nozzle_diameter_check(nDiameter);
|
||||||
|
}
|
||||||
|
else if(code_seen("set") && farm_mode)
|
||||||
|
{
|
||||||
|
strchr_pointer++; // skip 2nd char (~ 'e')
|
||||||
|
strchr_pointer++; // skip 3rd char (~ 't')
|
||||||
|
nDiameter=(uint16_t)(code_value()*1000.0+0.5); // [,um]
|
||||||
|
eeprom_update_byte((uint8_t*)EEPROM_NOZZLE_DIAMETER,(uint8_t)e_NOZZLE_DIAMETER_NULL); // for correct synchronization after farm-mode exiting
|
||||||
|
eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,nDiameter);
|
||||||
|
}
|
||||||
|
else SERIAL_PROTOCOLLN((float)eeprom_read_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM)/1000.0);
|
||||||
|
}
|
||||||
//else if (code_seen('Cal')) {
|
//else if (code_seen('Cal')) {
|
||||||
// lcd_calibration();
|
// lcd_calibration();
|
||||||
// }
|
// }
|
||||||
|
@ -4959,6 +4993,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||||
EEPROM_save_B(EEPROM_FARM_NUMBER, &farm_no);
|
EEPROM_save_B(EEPROM_FARM_NUMBER, &farm_no);
|
||||||
SilentModeMenu = SILENT_MODE_OFF;
|
SilentModeMenu = SILENT_MODE_OFF;
|
||||||
eeprom_update_byte((unsigned char *)EEPROM_SILENT, SilentModeMenu);
|
eeprom_update_byte((unsigned char *)EEPROM_SILENT, SilentModeMenu);
|
||||||
|
fCheckModeInit(); // alternatively invoke printer reset
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 99: //! G99 (deactivate farm mode)
|
case 99: //! G99 (deactivate farm mode)
|
||||||
|
@ -4966,6 +5001,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||||
lcd_printer_connected();
|
lcd_printer_connected();
|
||||||
eeprom_update_byte((unsigned char *)EEPROM_FARM_MODE, farm_mode);
|
eeprom_update_byte((unsigned char *)EEPROM_FARM_MODE, farm_mode);
|
||||||
lcd_update(2);
|
lcd_update(2);
|
||||||
|
fCheckModeInit(); // alternatively invoke printer reset
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printf_P(PSTR("Unknown G code: %s \n"), cmdbuffer + bufindr + CMDHDRSIZE);
|
printf_P(PSTR("Unknown G code: %s \n"), cmdbuffer + bufindr + CMDHDRSIZE);
|
||||||
|
@ -7671,7 +7707,7 @@ static void handleSafetyTimer()
|
||||||
{
|
{
|
||||||
safetyTimer.start();
|
safetyTimer.start();
|
||||||
}
|
}
|
||||||
else if (safetyTimer.expired(safetytimer_inactive_time))
|
else if (safetyTimer.expired(farm_mode?FARM_DEFAULT_SAFETYTIMER_TIME_ms:safetytimer_inactive_time))
|
||||||
{
|
{
|
||||||
setTargetBed(0);
|
setTargetBed(0);
|
||||||
setAllTargetHotends(0);
|
setAllTargetHotends(0);
|
||||||
|
|
|
@ -155,11 +155,18 @@
|
||||||
#define EEPROM_MMU_LOAD_FAIL (EEPROM_MMU_LOAD_FAIL_TOT - 1) //uint8_t
|
#define EEPROM_MMU_LOAD_FAIL (EEPROM_MMU_LOAD_FAIL_TOT - 1) //uint8_t
|
||||||
#define EEPROM_MMU_CUTTER_ENABLED (EEPROM_MMU_LOAD_FAIL - 1)
|
#define EEPROM_MMU_CUTTER_ENABLED (EEPROM_MMU_LOAD_FAIL - 1)
|
||||||
#define EEPROM_UVLO_MESH_BED_LEVELING_FULL (EEPROM_MMU_CUTTER_ENABLED - 12*12*2) //allow 12 calibration points for future expansion
|
#define EEPROM_UVLO_MESH_BED_LEVELING_FULL (EEPROM_MMU_CUTTER_ENABLED - 12*12*2) //allow 12 calibration points for future expansion
|
||||||
|
|
||||||
#define EEPROM_MBL_TYPE (EEPROM_UVLO_MESH_BED_LEVELING_FULL-1) //uint8_t for mesh bed leveling precision
|
#define EEPROM_MBL_TYPE (EEPROM_UVLO_MESH_BED_LEVELING_FULL-1) //uint8_t for mesh bed leveling precision
|
||||||
#define EEPROM_MBL_MAGNET_ELIMINATION (EEPROM_MBL_TYPE -1)
|
#define EEPROM_MBL_MAGNET_ELIMINATION (EEPROM_MBL_TYPE -1)
|
||||||
#define EEPROM_MBL_POINTS_NR (EEPROM_MBL_MAGNET_ELIMINATION -1) //uint8_t number of points in one exis for mesh bed leveling
|
#define EEPROM_MBL_POINTS_NR (EEPROM_MBL_MAGNET_ELIMINATION -1) //uint8_t number of points in one exis for mesh bed leveling
|
||||||
#define EEPROM_MBL_PROBE_NR (EEPROM_MBL_POINTS_NR-1) //number of measurements for each point
|
#define EEPROM_MBL_PROBE_NR (EEPROM_MBL_POINTS_NR-1) //number of measurements for each point
|
||||||
|
|
||||||
#define EEPROM_MMU_STEALTH (EEPROM_MBL_PROBE_NR-1)
|
#define EEPROM_MMU_STEALTH (EEPROM_MBL_PROBE_NR-1)
|
||||||
|
|
||||||
|
#define EEPROM_CHECK_MODE (EEPROM_MMU_STEALTH-1) // uint8
|
||||||
|
#define EEPROM_NOZZLE_DIAMETER (EEPROM_CHECK_MODE-1) // uint8
|
||||||
|
#define EEPROM_NOZZLE_DIAMETER_uM (EEPROM_NOZZLE_DIAMETER-2) // uint16
|
||||||
|
|
||||||
// !!!!!
|
// !!!!!
|
||||||
// !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!!
|
// !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!!
|
||||||
// !!!!!
|
// !!!!!
|
||||||
|
|
|
@ -131,6 +131,7 @@ static void lcd_control_volumetric_menu();
|
||||||
static void lcd_settings_linearity_correction_menu_save();
|
static void lcd_settings_linearity_correction_menu_save();
|
||||||
static void prusa_stat_printerstatus(int _status);
|
static void prusa_stat_printerstatus(int _status);
|
||||||
static void prusa_stat_farm_number();
|
static void prusa_stat_farm_number();
|
||||||
|
static void prusa_stat_diameter();
|
||||||
static void prusa_stat_temperatures();
|
static void prusa_stat_temperatures();
|
||||||
static void prusa_stat_printinfo();
|
static void prusa_stat_printinfo();
|
||||||
static void lcd_farm_no();
|
static void lcd_farm_no();
|
||||||
|
@ -2018,7 +2019,6 @@ static void lcd_preheat_menu()
|
||||||
MENU_ITEM_FUNCTION_P(PSTR("farm - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FARM_PREHEAT_HPB_TEMP)), lcd_preheat_farm);
|
MENU_ITEM_FUNCTION_P(PSTR("farm - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FARM_PREHEAT_HPB_TEMP)), lcd_preheat_farm);
|
||||||
MENU_ITEM_FUNCTION_P(PSTR("nozzle - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/0"), lcd_preheat_farm_nozzle);
|
MENU_ITEM_FUNCTION_P(PSTR("nozzle - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/0"), lcd_preheat_farm_nozzle);
|
||||||
MENU_ITEM_FUNCTION_P(_T(MSG_COOLDOWN), lcd_cooldown);
|
MENU_ITEM_FUNCTION_P(_T(MSG_COOLDOWN), lcd_cooldown);
|
||||||
MENU_ITEM_FUNCTION_P(PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)), lcd_preheat_abs);
|
|
||||||
} else {
|
} else {
|
||||||
MENU_ITEM_FUNCTION_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)), lcd_preheat_pla);
|
MENU_ITEM_FUNCTION_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)), lcd_preheat_pla);
|
||||||
MENU_ITEM_FUNCTION_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)), lcd_preheat_pet);
|
MENU_ITEM_FUNCTION_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)), lcd_preheat_pet);
|
||||||
|
@ -3975,6 +3975,7 @@ void prusa_statistics(int _message, uint8_t _fil_nr) {
|
||||||
SERIAL_ECHO("{");
|
SERIAL_ECHO("{");
|
||||||
prusa_stat_printerstatus(1);
|
prusa_stat_printerstatus(1);
|
||||||
prusa_stat_farm_number();
|
prusa_stat_farm_number();
|
||||||
|
prusa_stat_diameter();
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
status_number = 1;
|
status_number = 1;
|
||||||
}
|
}
|
||||||
|
@ -4129,6 +4130,12 @@ static void prusa_stat_farm_number() {
|
||||||
SERIAL_ECHO("]");
|
SERIAL_ECHO("]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void prusa_stat_diameter() {
|
||||||
|
SERIAL_ECHO("[DIA:");
|
||||||
|
SERIAL_ECHO(eeprom_read_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM));
|
||||||
|
SERIAL_ECHO("]");
|
||||||
|
}
|
||||||
|
|
||||||
static void prusa_stat_temperatures()
|
static void prusa_stat_temperatures()
|
||||||
{
|
{
|
||||||
SERIAL_ECHO("[ST0:");
|
SERIAL_ECHO("[ST0:");
|
||||||
|
@ -4164,6 +4171,7 @@ static void prusa_stat_printinfo()
|
||||||
SERIAL_ECHO("][FWR:");
|
SERIAL_ECHO("][FWR:");
|
||||||
SERIAL_ECHO(FW_VERSION);
|
SERIAL_ECHO(FW_VERSION);
|
||||||
SERIAL_ECHO("]");
|
SERIAL_ECHO("]");
|
||||||
|
prusa_stat_diameter();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -5272,6 +5280,101 @@ do\
|
||||||
}\
|
}\
|
||||||
while (0)
|
while (0)
|
||||||
|
|
||||||
|
//-//
|
||||||
|
static void lcd_check_mode_set(void)
|
||||||
|
{
|
||||||
|
switch(eCheckMode)
|
||||||
|
{
|
||||||
|
case e_CHECK_MODE_none:
|
||||||
|
eCheckMode=e_CHECK_MODE_warn;
|
||||||
|
break;
|
||||||
|
case e_CHECK_MODE_warn:
|
||||||
|
eCheckMode=e_CHECK_MODE_strict;
|
||||||
|
break;
|
||||||
|
case e_CHECK_MODE_strict:
|
||||||
|
eCheckMode=e_CHECK_MODE_none;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
eCheckMode=e_CHECK_MODE_none;
|
||||||
|
}
|
||||||
|
eeprom_update_byte((uint8_t*)EEPROM_CHECK_MODE,(uint8_t)eCheckMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_nozzle_diameter_set(void)
|
||||||
|
{
|
||||||
|
uint16_t nDiameter;
|
||||||
|
|
||||||
|
switch(eNozzleDiameter)
|
||||||
|
{
|
||||||
|
case e_NOZZLE_DIAMETER_250:
|
||||||
|
eNozzleDiameter=e_NOZZLE_DIAMETER_400;
|
||||||
|
nDiameter=400;
|
||||||
|
break;
|
||||||
|
case e_NOZZLE_DIAMETER_400:
|
||||||
|
eNozzleDiameter=e_NOZZLE_DIAMETER_600;
|
||||||
|
nDiameter=600;
|
||||||
|
break;
|
||||||
|
case e_NOZZLE_DIAMETER_600:
|
||||||
|
eNozzleDiameter=e_NOZZLE_DIAMETER_250;
|
||||||
|
nDiameter=250;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
eNozzleDiameter=e_NOZZLE_DIAMETER_400;
|
||||||
|
nDiameter=400;
|
||||||
|
}
|
||||||
|
eeprom_update_byte((uint8_t*)EEPROM_NOZZLE_DIAMETER,(uint8_t)eNozzleDiameter);
|
||||||
|
eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,nDiameter);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define SETTINGS_MODE \
|
||||||
|
do\
|
||||||
|
{\
|
||||||
|
switch(eCheckMode)\
|
||||||
|
{\
|
||||||
|
case e_CHECK_MODE_none:\
|
||||||
|
MENU_ITEM_FUNCTION_P(_i("Action [none]"),lcd_check_mode_set);\
|
||||||
|
break;\
|
||||||
|
case e_CHECK_MODE_warn:\
|
||||||
|
MENU_ITEM_FUNCTION_P(_i("Action [warn]"),lcd_check_mode_set);\
|
||||||
|
break;\
|
||||||
|
case e_CHECK_MODE_strict:\
|
||||||
|
MENU_ITEM_FUNCTION_P(_i("Action [strict]"),lcd_check_mode_set);\
|
||||||
|
break;\
|
||||||
|
default:\
|
||||||
|
MENU_ITEM_FUNCTION_P(_i("Action [none]"),lcd_check_mode_set);\
|
||||||
|
}\
|
||||||
|
}\
|
||||||
|
while (0)
|
||||||
|
|
||||||
|
#define SETTINGS_NOZZLE \
|
||||||
|
do\
|
||||||
|
{\
|
||||||
|
switch(eNozzleDiameter)\
|
||||||
|
{\
|
||||||
|
case e_NOZZLE_DIAMETER_250:\
|
||||||
|
MENU_ITEM_FUNCTION_P(_i("Nozzle [0.25]"),lcd_nozzle_diameter_set);\
|
||||||
|
break;\
|
||||||
|
case e_NOZZLE_DIAMETER_400:\
|
||||||
|
MENU_ITEM_FUNCTION_P(_i("Nozzle [0.40]"),lcd_nozzle_diameter_set);\
|
||||||
|
break;\
|
||||||
|
case e_NOZZLE_DIAMETER_600:\
|
||||||
|
MENU_ITEM_FUNCTION_P(_i("Nozzle [0.60]"),lcd_nozzle_diameter_set);\
|
||||||
|
break;\
|
||||||
|
default:\
|
||||||
|
MENU_ITEM_FUNCTION_P(_i("Nozzle [0.40]"),lcd_nozzle_diameter_set);\
|
||||||
|
}\
|
||||||
|
}\
|
||||||
|
while (0)
|
||||||
|
|
||||||
|
static void lcd_checking_menu()
|
||||||
|
{
|
||||||
|
MENU_BEGIN();
|
||||||
|
MENU_ITEM_BACK_P(_T(MSG_SETTINGS));
|
||||||
|
SETTINGS_MODE;
|
||||||
|
SETTINGS_NOZZLE;
|
||||||
|
MENU_END();
|
||||||
|
}
|
||||||
|
|
||||||
static void lcd_settings_menu()
|
static void lcd_settings_menu()
|
||||||
{
|
{
|
||||||
EEPROM_read(EEPROM_SILENT, (uint8_t*)&SilentModeMenu, sizeof(SilentModeMenu));
|
EEPROM_read(EEPROM_SILENT, (uint8_t*)&SilentModeMenu, sizeof(SilentModeMenu));
|
||||||
|
@ -5323,6 +5426,9 @@ static void lcd_settings_menu()
|
||||||
MENU_ITEM_SUBMENU_P(_i("Select language"), lcd_language_menu);////MSG_LANGUAGE_SELECT
|
MENU_ITEM_SUBMENU_P(_i("Select language"), lcd_language_menu);////MSG_LANGUAGE_SELECT
|
||||||
#endif //(LANG_MODE != 0)
|
#endif //(LANG_MODE != 0)
|
||||||
|
|
||||||
|
if (!farm_mode)
|
||||||
|
MENU_ITEM_SUBMENU_P(_i("Print checking"), lcd_checking_menu);
|
||||||
|
|
||||||
SETTINGS_SD;
|
SETTINGS_SD;
|
||||||
SETTINGS_SOUND;
|
SETTINGS_SOUND;
|
||||||
|
|
||||||
|
@ -6135,10 +6241,11 @@ void lcd_confirm_print()
|
||||||
}
|
}
|
||||||
if (lcd_clicked())
|
if (lcd_clicked())
|
||||||
{
|
{
|
||||||
|
filament_type = FARM_FILAMENT_COLOR_NONE;
|
||||||
if (cursor_pos == 1)
|
if (cursor_pos == 1)
|
||||||
{
|
{
|
||||||
_ret = 1;
|
_ret = 1;
|
||||||
filament_type = lcd_choose_color();
|
// filament_type = lcd_choose_color();
|
||||||
prusa_statistics(4, filament_type);
|
prusa_statistics(4, filament_type);
|
||||||
no_response = true; //we need confirmation by recieving PRUSA thx
|
no_response = true; //we need confirmation by recieving PRUSA thx
|
||||||
important_status = 4;
|
important_status = 4;
|
||||||
|
@ -6148,7 +6255,7 @@ void lcd_confirm_print()
|
||||||
if (cursor_pos == 2)
|
if (cursor_pos == 2)
|
||||||
{
|
{
|
||||||
_ret = 2;
|
_ret = 2;
|
||||||
filament_type = lcd_choose_color();
|
// filament_type = lcd_choose_color();
|
||||||
prusa_statistics(5, filament_type);
|
prusa_statistics(5, filament_type);
|
||||||
no_response = true; //we need confirmation by recieving PRUSA thx
|
no_response = true; //we need confirmation by recieving PRUSA thx
|
||||||
important_status = 5;
|
important_status = 5;
|
||||||
|
@ -6483,6 +6590,14 @@ static void lcd_tune_menu()
|
||||||
|
|
||||||
SETTINGS_CUTTER;
|
SETTINGS_CUTTER;
|
||||||
|
|
||||||
|
if(farm_mode)
|
||||||
|
{
|
||||||
|
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
|
#ifdef TMC2130
|
||||||
if(!farm_mode)
|
if(!farm_mode)
|
||||||
{
|
{
|
||||||
|
@ -6626,6 +6741,12 @@ static void lcd_sd_updir()
|
||||||
|
|
||||||
void lcd_print_stop()
|
void lcd_print_stop()
|
||||||
{
|
{
|
||||||
|
//-//
|
||||||
|
if(!card.sdprinting)
|
||||||
|
{
|
||||||
|
SERIAL_ECHOLNPGM("// action:cancel"); // for Octoprint
|
||||||
|
return;
|
||||||
|
}
|
||||||
saved_printing = false;
|
saved_printing = false;
|
||||||
cancel_heatup = true;
|
cancel_heatup = true;
|
||||||
#ifdef MESH_BED_LEVELING
|
#ifdef MESH_BED_LEVELING
|
||||||
|
|
|
@ -327,3 +327,46 @@ void update_current_firmware_version_to_eeprom()
|
||||||
eeprom_update_word((uint16_t*)EEPROM_FIRMWARE_VERSION_FLAVOR, ver_current[3]);
|
eeprom_update_word((uint16_t*)EEPROM_FIRMWARE_VERSION_FLAVOR, ver_current[3]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-//
|
||||||
|
eNOZZLE_DIAMETER eNozzleDiameter=e_NOZZLE_DIAMETER_400;
|
||||||
|
eCHECK_MODE eCheckMode=e_CHECK_MODE_none;
|
||||||
|
|
||||||
|
void fCheckModeInit()
|
||||||
|
{
|
||||||
|
eCheckMode=(eCHECK_MODE)eeprom_read_byte((uint8_t*)EEPROM_CHECK_MODE);
|
||||||
|
if(eCheckMode==e_CHECK_MODE_NULL)
|
||||||
|
{
|
||||||
|
eCheckMode=e_CHECK_MODE_warn;
|
||||||
|
eeprom_update_byte((uint8_t*)EEPROM_CHECK_MODE,(uint8_t)eCheckMode);
|
||||||
|
}
|
||||||
|
if(farm_mode)
|
||||||
|
eCheckMode=e_CHECK_MODE_strict;
|
||||||
|
eNozzleDiameter=(eNOZZLE_DIAMETER)eeprom_read_byte((uint8_t*)EEPROM_NOZZLE_DIAMETER);
|
||||||
|
if((eNozzleDiameter==e_NOZZLE_DIAMETER_NULL)&& !farm_mode)
|
||||||
|
{
|
||||||
|
eNozzleDiameter=e_NOZZLE_DIAMETER_400;
|
||||||
|
eeprom_update_byte((uint8_t*)EEPROM_NOZZLE_DIAMETER,(uint8_t)eNozzleDiameter);
|
||||||
|
eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,400);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void nozzle_diameter_check(uint16_t nDiameter)
|
||||||
|
{
|
||||||
|
uint16_t nDiameter_um;
|
||||||
|
|
||||||
|
nDiameter_um=eeprom_read_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM);
|
||||||
|
if(nDiameter==nDiameter_um)
|
||||||
|
return;
|
||||||
|
switch(eCheckMode)
|
||||||
|
{
|
||||||
|
case e_CHECK_MODE_warn:
|
||||||
|
lcd_show_fullscreen_message_and_wait_P(_i("Nozzle diameter doesn't match! Press the knob to continue."));
|
||||||
|
break;
|
||||||
|
case e_CHECK_MODE_strict:
|
||||||
|
lcd_show_fullscreen_message_and_wait_P(_i("Nozzle diameter doesn't match! Print is aborted, press the knob."));
|
||||||
|
lcd_print_stop();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -33,4 +33,29 @@ inline void eeprom_update_int8(unsigned char* addr, int8_t v) {
|
||||||
eeprom_update_byte(addr, *reinterpret_cast<uint8_t*>(&v));
|
eeprom_update_byte(addr, *reinterpret_cast<uint8_t*>(&v));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-//
|
||||||
|
#define e_CHECK_MODE_NULL 0xFF
|
||||||
|
#define e_NOZZLE_DIAMETER_NULL 0xFF
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
e_NOZZLE_DIAMETER_250,
|
||||||
|
e_NOZZLE_DIAMETER_400,
|
||||||
|
e_NOZZLE_DIAMETER_600
|
||||||
|
} eNOZZLE_DIAMETER;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
e_CHECK_MODE_none,
|
||||||
|
e_CHECK_MODE_warn,
|
||||||
|
e_CHECK_MODE_strict
|
||||||
|
} eCHECK_MODE;
|
||||||
|
|
||||||
|
extern eNOZZLE_DIAMETER eNozzleDiameter;
|
||||||
|
extern eCHECK_MODE eCheckMode;
|
||||||
|
|
||||||
|
void fCheckModeInit();
|
||||||
|
void nozzle_diameter_check(uint16_t nDiameter);
|
||||||
|
|
||||||
#endif /* UTIL_H */
|
#endif /* UTIL_H */
|
||||||
|
|
|
@ -315,7 +315,7 @@ PREHEAT SETTINGS
|
||||||
*------------------------------------*/
|
*------------------------------------*/
|
||||||
|
|
||||||
#define FARM_PREHEAT_HOTEND_TEMP 250
|
#define FARM_PREHEAT_HOTEND_TEMP 250
|
||||||
#define FARM_PREHEAT_HPB_TEMP 40
|
#define FARM_PREHEAT_HPB_TEMP 80
|
||||||
#define FARM_PREHEAT_FAN_SPEED 0
|
#define FARM_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
#define PLA_PREHEAT_HOTEND_TEMP 215
|
#define PLA_PREHEAT_HOTEND_TEMP 215
|
||||||
|
@ -438,6 +438,7 @@ THERMISTORS SETTINGS
|
||||||
// Safety timer
|
// Safety timer
|
||||||
#define SAFETYTIMER
|
#define SAFETYTIMER
|
||||||
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
||||||
|
#define FARM_DEFAULT_SAFETYTIMER_TIME_ms (45*60*1000ul)
|
||||||
|
|
||||||
#define M600_TIMEOUT 600 //seconds
|
#define M600_TIMEOUT 600 //seconds
|
||||||
|
|
||||||
|
|
|
@ -314,7 +314,7 @@ PREHEAT SETTINGS
|
||||||
*------------------------------------*/
|
*------------------------------------*/
|
||||||
|
|
||||||
#define FARM_PREHEAT_HOTEND_TEMP 250
|
#define FARM_PREHEAT_HOTEND_TEMP 250
|
||||||
#define FARM_PREHEAT_HPB_TEMP 40
|
#define FARM_PREHEAT_HPB_TEMP 80
|
||||||
#define FARM_PREHEAT_FAN_SPEED 0
|
#define FARM_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
#define PLA_PREHEAT_HOTEND_TEMP 215
|
#define PLA_PREHEAT_HOTEND_TEMP 215
|
||||||
|
@ -437,6 +437,7 @@ THERMISTORS SETTINGS
|
||||||
// Safety timer
|
// Safety timer
|
||||||
#define SAFETYTIMER
|
#define SAFETYTIMER
|
||||||
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
||||||
|
#define FARM_DEFAULT_SAFETYTIMER_TIME_ms (45*60*1000ul)
|
||||||
|
|
||||||
#define M600_TIMEOUT 600 //seconds
|
#define M600_TIMEOUT 600 //seconds
|
||||||
|
|
||||||
|
|
|
@ -112,6 +112,7 @@
|
||||||
// Safety timer
|
// Safety timer
|
||||||
#define SAFETYTIMER
|
#define SAFETYTIMER
|
||||||
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
||||||
|
#define FARM_DEFAULT_SAFETYTIMER_TIME_ms (45*60*1000ul)
|
||||||
|
|
||||||
// Filament sensor
|
// Filament sensor
|
||||||
#define FILAMENT_SENSOR
|
#define FILAMENT_SENSOR
|
||||||
|
@ -371,7 +372,7 @@
|
||||||
*------------------------------------*/
|
*------------------------------------*/
|
||||||
|
|
||||||
#define FARM_PREHEAT_HOTEND_TEMP 250
|
#define FARM_PREHEAT_HOTEND_TEMP 250
|
||||||
#define FARM_PREHEAT_HPB_TEMP 40
|
#define FARM_PREHEAT_HPB_TEMP 80
|
||||||
#define FARM_PREHEAT_FAN_SPEED 0
|
#define FARM_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
#define PLA_PREHEAT_HOTEND_TEMP 215
|
#define PLA_PREHEAT_HOTEND_TEMP 215
|
||||||
|
|
|
@ -113,6 +113,7 @@
|
||||||
// Safety timer
|
// Safety timer
|
||||||
#define SAFETYTIMER
|
#define SAFETYTIMER
|
||||||
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
||||||
|
#define FARM_DEFAULT_SAFETYTIMER_TIME_ms (45*60*1000ul)
|
||||||
|
|
||||||
// Filament sensor
|
// Filament sensor
|
||||||
#define FILAMENT_SENSOR
|
#define FILAMENT_SENSOR
|
||||||
|
@ -372,7 +373,7 @@
|
||||||
*------------------------------------*/
|
*------------------------------------*/
|
||||||
|
|
||||||
#define FARM_PREHEAT_HOTEND_TEMP 250
|
#define FARM_PREHEAT_HOTEND_TEMP 250
|
||||||
#define FARM_PREHEAT_HPB_TEMP 40
|
#define FARM_PREHEAT_HPB_TEMP 80
|
||||||
#define FARM_PREHEAT_FAN_SPEED 0
|
#define FARM_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
#define PLA_PREHEAT_HOTEND_TEMP 215
|
#define PLA_PREHEAT_HOTEND_TEMP 215
|
||||||
|
|
|
@ -112,6 +112,7 @@
|
||||||
// Safety timer
|
// Safety timer
|
||||||
#define SAFETYTIMER
|
#define SAFETYTIMER
|
||||||
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
||||||
|
#define FARM_DEFAULT_SAFETYTIMER_TIME_ms (45*60*1000ul)
|
||||||
|
|
||||||
// Filament sensor
|
// Filament sensor
|
||||||
#define FILAMENT_SENSOR
|
#define FILAMENT_SENSOR
|
||||||
|
@ -371,7 +372,7 @@
|
||||||
*------------------------------------*/
|
*------------------------------------*/
|
||||||
|
|
||||||
#define FARM_PREHEAT_HOTEND_TEMP 250
|
#define FARM_PREHEAT_HOTEND_TEMP 250
|
||||||
#define FARM_PREHEAT_HPB_TEMP 40
|
#define FARM_PREHEAT_HPB_TEMP 80
|
||||||
#define FARM_PREHEAT_FAN_SPEED 0
|
#define FARM_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
#define PLA_PREHEAT_HOTEND_TEMP 215
|
#define PLA_PREHEAT_HOTEND_TEMP 215
|
||||||
|
|
|
@ -113,6 +113,7 @@
|
||||||
// Safety timer
|
// Safety timer
|
||||||
#define SAFETYTIMER
|
#define SAFETYTIMER
|
||||||
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
||||||
|
#define FARM_DEFAULT_SAFETYTIMER_TIME_ms (45*60*1000ul)
|
||||||
|
|
||||||
// Filament sensor
|
// Filament sensor
|
||||||
#define FILAMENT_SENSOR
|
#define FILAMENT_SENSOR
|
||||||
|
@ -372,7 +373,7 @@
|
||||||
*------------------------------------*/
|
*------------------------------------*/
|
||||||
|
|
||||||
#define FARM_PREHEAT_HOTEND_TEMP 250
|
#define FARM_PREHEAT_HOTEND_TEMP 250
|
||||||
#define FARM_PREHEAT_HPB_TEMP 40
|
#define FARM_PREHEAT_HPB_TEMP 80
|
||||||
#define FARM_PREHEAT_FAN_SPEED 0
|
#define FARM_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
#define PLA_PREHEAT_HOTEND_TEMP 215
|
#define PLA_PREHEAT_HOTEND_TEMP 215
|
||||||
|
|
|
@ -131,6 +131,7 @@
|
||||||
// Safety timer
|
// Safety timer
|
||||||
#define SAFETYTIMER
|
#define SAFETYTIMER
|
||||||
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
||||||
|
#define FARM_DEFAULT_SAFETYTIMER_TIME_ms (45*60*1000ul)
|
||||||
|
|
||||||
// Filament sensor
|
// Filament sensor
|
||||||
#define FILAMENT_SENSOR
|
#define FILAMENT_SENSOR
|
||||||
|
@ -480,7 +481,7 @@
|
||||||
*------------------------------------*/
|
*------------------------------------*/
|
||||||
|
|
||||||
#define FARM_PREHEAT_HOTEND_TEMP 250
|
#define FARM_PREHEAT_HOTEND_TEMP 250
|
||||||
#define FARM_PREHEAT_HPB_TEMP 60
|
#define FARM_PREHEAT_HPB_TEMP 80
|
||||||
#define FARM_PREHEAT_FAN_SPEED 0
|
#define FARM_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
#define PLA_PREHEAT_HOTEND_TEMP 215
|
#define PLA_PREHEAT_HOTEND_TEMP 215
|
||||||
|
|
|
@ -131,6 +131,7 @@
|
||||||
// Safety timer
|
// Safety timer
|
||||||
#define SAFETYTIMER
|
#define SAFETYTIMER
|
||||||
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
#define DEFAULT_SAFETYTIMER_TIME_MINS 30
|
||||||
|
#define FARM_DEFAULT_SAFETYTIMER_TIME_ms (45*60*1000ul)
|
||||||
|
|
||||||
// Filament sensor
|
// Filament sensor
|
||||||
#define FILAMENT_SENSOR
|
#define FILAMENT_SENSOR
|
||||||
|
@ -480,7 +481,7 @@
|
||||||
*------------------------------------*/
|
*------------------------------------*/
|
||||||
|
|
||||||
#define FARM_PREHEAT_HOTEND_TEMP 250
|
#define FARM_PREHEAT_HOTEND_TEMP 250
|
||||||
#define FARM_PREHEAT_HPB_TEMP 60
|
#define FARM_PREHEAT_HPB_TEMP 80
|
||||||
#define FARM_PREHEAT_FAN_SPEED 0
|
#define FARM_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
#define PLA_PREHEAT_HOTEND_TEMP 215
|
#define PLA_PREHEAT_HOTEND_TEMP 215
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue