Merge branch 'MK3' into Unload-fix
This commit is contained in:
commit
9158bde378
14 changed files with 15093 additions and 15202 deletions
|
@ -9,9 +9,9 @@
|
|||
|
||||
// Firmware version
|
||||
#define FW_version "3.1.1-RC3"
|
||||
#define FW_build 138m2
|
||||
#define FW_build 138
|
||||
//#define FW_build --BUILD-NUMBER--
|
||||
#define FW_version_build FW_version " b" STR(FW_build)
|
||||
#define FW_version_build FW_version " b" STR(FW_build) "b"
|
||||
|
||||
|
||||
#define FW_PRUSA3D_MAGIC "PRUSA3DFW"
|
||||
|
|
|
@ -75,8 +75,8 @@ const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic o
|
|||
#define MANUAL_FEEDRATE {2700, 2700, 1000, 100} // set the speeds for manual moves (mm/min)
|
||||
|
||||
//Silent mode limits
|
||||
#define SILENT_MAX_ACCEL_X 1024 // X-axis max acceleration in silent mode in mm/s^2
|
||||
#define SILENT_MAX_ACCEL_Y 1024 // Y-axis max axxeleration in silent mode in mm/s^2
|
||||
#define SILENT_MAX_ACCEL_X 1000 // X-axis max acceleration in silent mode in mm/s^2
|
||||
#define SILENT_MAX_ACCEL_Y 1000 // Y-axis max axxeleration in silent mode in mm/s^2
|
||||
#define SILENT_MAX_ACCEL_X_ST (100*SILENT_MAX_ACCEL_X) // X max accel in steps/s^2
|
||||
#define SILENT_MAX_ACCEL_Y_ST (100*SILENT_MAX_ACCEL_Y) // Y max accel in steps/s^2
|
||||
#define SILENT_MAX_FEEDRATE 172 //max feedrate in mm/s, because mode switched to normal for homming , this value limits also homing, it should be greater (160mm/s=9600mm/min>2700mm/min)
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1336,7 +1336,7 @@ void loop()
|
|||
KEEPALIVE_STATE(NOT_BUSY);
|
||||
bool stack_integrity = true;
|
||||
|
||||
if (usb_printing_counter > 0 && millis()-_usb_timer > 1000)
|
||||
if ((usb_printing_counter > 0) && ((millis()-_usb_timer) > 1000))
|
||||
{
|
||||
is_usb_printing = true;
|
||||
usb_printing_counter--;
|
||||
|
@ -2574,7 +2574,7 @@ void process_commands()
|
|||
{
|
||||
st_synchronize();
|
||||
|
||||
#if 1
|
||||
#if 0
|
||||
SERIAL_ECHOPGM("G28, initial "); print_world_coordinates();
|
||||
SERIAL_ECHOPGM("G28, initial "); print_physical_coordinates();
|
||||
#endif
|
||||
|
@ -2819,10 +2819,11 @@ void process_commands()
|
|||
if (farm_mode) { prusa_statistics(20); };
|
||||
|
||||
homing_flag = false;
|
||||
|
||||
#if 0
|
||||
SERIAL_ECHOPGM("G28, final "); print_world_coordinates();
|
||||
SERIAL_ECHOPGM("G28, final "); print_physical_coordinates();
|
||||
SERIAL_ECHOPGM("G28, final "); print_mesh_bed_leveling_table();
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
|
@ -3520,14 +3521,14 @@ void process_commands()
|
|||
offset_z = temp_compensation_pinda_thermistor_offset(current_temperature_pinda);
|
||||
#endif //PINDA_THERMISTOR
|
||||
// #ifdef SUPPORT_VERBOSITY
|
||||
// if (verbosity_level >= 1)
|
||||
/* if (verbosity_level >= 1)
|
||||
{
|
||||
SERIAL_ECHOPGM("mesh bed leveling: ");
|
||||
MYSERIAL.print(current_position[Z_AXIS], 5);
|
||||
SERIAL_ECHOPGM(" offset: ");
|
||||
MYSERIAL.print(offset_z, 5);
|
||||
SERIAL_ECHOLNPGM("");
|
||||
}
|
||||
}*/
|
||||
// #endif // SUPPORT_VERBOSITY
|
||||
mbl.set_z(ix, iy, current_position[Z_AXIS] - offset_z); //store measured z values z_values[iy][ix] = z - offset_z;
|
||||
|
||||
|
@ -3550,7 +3551,7 @@ void process_commands()
|
|||
SERIAL_ECHOLNPGM("killed");
|
||||
}
|
||||
clean_up_after_endstop_move();
|
||||
SERIAL_ECHOLNPGM("clean up finished ");
|
||||
// SERIAL_ECHOLNPGM("clean up finished ");
|
||||
|
||||
bool apply_temp_comp = true;
|
||||
#ifdef PINDA_THERMISTOR
|
||||
|
@ -3559,7 +3560,7 @@ void process_commands()
|
|||
if (apply_temp_comp)
|
||||
if(temp_cal_active == true && calibration_status_pinda() == true) temp_compensation_apply(); //apply PINDA temperature compensation
|
||||
babystep_apply(); // Apply Z height correction aka baby stepping before mesh bed leveing gets activated.
|
||||
SERIAL_ECHOLNPGM("babystep applied");
|
||||
// SERIAL_ECHOLNPGM("babystep applied");
|
||||
bool eeprom_bed_correction_valid = eeprom_read_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID) == 1;
|
||||
#ifdef SUPPORT_VERBOSITY
|
||||
if (verbosity_level >= 1) {
|
||||
|
@ -3616,13 +3617,13 @@ void process_commands()
|
|||
}
|
||||
}
|
||||
}
|
||||
SERIAL_ECHOLNPGM("Bed leveling correction finished");
|
||||
// SERIAL_ECHOLNPGM("Bed leveling correction finished");
|
||||
mbl.upsample_3x3(); //bilinear interpolation from 3x3 to 7x7 points while using the same array z_values[iy][ix] for storing (just coppying measured data to new destination and interpolating between them)
|
||||
SERIAL_ECHOLNPGM("Upsample finished");
|
||||
// SERIAL_ECHOLNPGM("Upsample finished");
|
||||
mbl.active = 1; //activate mesh bed leveling
|
||||
SERIAL_ECHOLNPGM("Mesh bed leveling activated");
|
||||
// SERIAL_ECHOLNPGM("Mesh bed leveling activated");
|
||||
go_home_with_z_lift();
|
||||
SERIAL_ECHOLNPGM("Go home finished");
|
||||
// SERIAL_ECHOLNPGM("Go home finished");
|
||||
//unretract (after PINDA preheat retraction)
|
||||
if (degHotend(active_extruder) > EXTRUDE_MINTEMP && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) {
|
||||
current_position[E_AXIS] += DEFAULT_RETRACTION;
|
||||
|
@ -7486,8 +7487,8 @@ void recover_machine_state_after_power_panic()
|
|||
}
|
||||
if (mbl.active)
|
||||
mbl.upsample_3x3();
|
||||
SERIAL_ECHOPGM("recover_machine_state_after_power_panic, initial ");
|
||||
print_mesh_bed_leveling_table();
|
||||
// SERIAL_ECHOPGM("recover_machine_state_after_power_panic, initial ");
|
||||
// print_mesh_bed_leveling_table();
|
||||
|
||||
// 4) Load the baby stepping value, which is expected to be active at the time of power panic.
|
||||
// The baby stepping value is used to reset the physical Z axis when rehoming the Z axis.
|
||||
|
|
|
@ -26,6 +26,11 @@ void adc_init(void)
|
|||
DIDR0 = (ADC_CHAN_MSK & 0xff);
|
||||
DIDR2 = (ADC_CHAN_MSK >> 8);
|
||||
adc_reset();
|
||||
// adc_sim_mask = 0b0101;
|
||||
// adc_sim_mask = 0b100101;
|
||||
// adc_values[0] = 1023 * 16;
|
||||
// adc_values[2] = 1023 * 16;
|
||||
// adc_values[5] = 1002 * 16;
|
||||
}
|
||||
|
||||
void adc_reset(void)
|
||||
|
|
|
@ -59,9 +59,9 @@ void fsensor_unblock() {
|
|||
|
||||
bool fsensor_enable()
|
||||
{
|
||||
puts_P(PSTR("fsensor_enable\n"));
|
||||
// puts_P(PSTR("fsensor_enable\n"));
|
||||
int pat9125 = pat9125_init(PAT9125_XRES, PAT9125_YRES);
|
||||
printf_P(PSTR("PAT9125_init:%d\n"), pat9125);
|
||||
// printf_P(PSTR("PAT9125_init:%d\n"), pat9125);
|
||||
if (pat9125)
|
||||
fsensor_not_responding = false;
|
||||
else
|
||||
|
@ -77,7 +77,7 @@ bool fsensor_enable()
|
|||
|
||||
void fsensor_disable()
|
||||
{
|
||||
puts_P(PSTR("fsensor_disable\n"));
|
||||
// puts_P(PSTR("fsensor_disable\n"));
|
||||
fsensor_enabled = false;
|
||||
eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, 0x00);
|
||||
FSensorStateMenu = 0;
|
||||
|
@ -105,7 +105,7 @@ void fsensor_setup_interrupt()
|
|||
|
||||
void fsensor_autoload_check_start(void)
|
||||
{
|
||||
puts_P(PSTR("fsensor_autoload_check_start\n"));
|
||||
// puts_P(PSTR("fsensor_autoload_check_start\n"));
|
||||
pat9125_update_y(); //update sensor
|
||||
fsensor_autoload_y = pat9125_y; //save current y value
|
||||
fsensor_autoload_c = 0; //reset number of changes counter
|
||||
|
@ -117,7 +117,7 @@ void fsensor_autoload_check_start(void)
|
|||
|
||||
void fsensor_autoload_check_stop(void)
|
||||
{
|
||||
puts_P(PSTR("fsensor_autoload_check_stop\n"));
|
||||
// puts_P(PSTR("fsensor_autoload_check_stop\n"));
|
||||
fsensor_autoload_sum = 0;
|
||||
fsensor_autoload_enabled = false;
|
||||
fsensor_err_cnt = 0;
|
||||
|
@ -166,7 +166,7 @@ ISR(PCINT2_vect)
|
|||
*digitalPinToPCMSK(fsensor_int_pin) |= bit(digitalPinToPCMSKbit(fsensor_int_pin));*/
|
||||
if (!pat9125_update_y())
|
||||
{
|
||||
puts_P(PSTR("pat9125 not responding.\n"));
|
||||
// puts_P(PSTR("pat9125 not responding.\n"));
|
||||
fsensor_disable();
|
||||
fsensor_not_responding = true;
|
||||
}
|
||||
|
@ -252,7 +252,7 @@ void fsensor_update()
|
|||
if (!fsensor_enabled) return;
|
||||
if (fsensor_err_cnt > FSENSOR_ERR_MAX)
|
||||
{
|
||||
MYSERIAL.println("fsensor_update (fsensor_err_cnt > FSENSOR_ERR_MAX)");
|
||||
// MYSERIAL.println("fsensor_update (fsensor_err_cnt > FSENSOR_ERR_MAX)");
|
||||
/* if (fsensor_ignore_error)
|
||||
{
|
||||
MYSERIAL.println("fsensor_update - error ignored)");
|
||||
|
|
|
@ -389,6 +389,11 @@ const char * const MSG_COUNT_X_LANG_TABLE[1] PROGMEM = {
|
|||
MSG_COUNT_X_EN
|
||||
};
|
||||
|
||||
const char MSG_CRASHDETECT_NA_EN[] PROGMEM = "Crash det. [N/A]";
|
||||
const char * const MSG_CRASHDETECT_NA_LANG_TABLE[1] PROGMEM = {
|
||||
MSG_CRASHDETECT_NA_EN
|
||||
};
|
||||
|
||||
const char MSG_CRASHDETECT_OFF_EN[] PROGMEM = "Crash det. [off]";
|
||||
const char MSG_CRASHDETECT_OFF_CZ[] PROGMEM = "Crash det. [vyp]";
|
||||
const char * const MSG_CRASHDETECT_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||
|
@ -1541,12 +1546,12 @@ const char * const MSG_SD_WRITE_TO_FILE_LANG_TABLE[1] PROGMEM = {
|
|||
MSG_SD_WRITE_TO_FILE_EN
|
||||
};
|
||||
|
||||
const char MSG_SECOND_SERIAL_OFF_EN[] PROGMEM = "2nd USART [off]";
|
||||
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_ON_EN[] PROGMEM = "2nd USART [on]";
|
||||
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
|
||||
};
|
||||
|
|
|
@ -142,6 +142,8 @@ extern const char* const MSG_CORRECTLY_LANG_TABLE[LANG_NUM];
|
|||
#define MSG_CORRECTLY LANG_TABLE_SELECT(MSG_CORRECTLY_LANG_TABLE)
|
||||
extern const char* const MSG_COUNT_X_LANG_TABLE[1];
|
||||
#define MSG_COUNT_X LANG_TABLE_SELECT_EXPLICIT(MSG_COUNT_X_LANG_TABLE, 0)
|
||||
extern const char* const MSG_CRASHDETECT_NA_LANG_TABLE[1];
|
||||
#define MSG_CRASHDETECT_NA LANG_TABLE_SELECT_EXPLICIT(MSG_CRASHDETECT_NA_LANG_TABLE, 0)
|
||||
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];
|
||||
|
|
|
@ -348,6 +348,7 @@
|
|||
#define MSG_FSENSOR_NA "Fil. senzor [err]"
|
||||
#define MSG_FSENSOR_ON "Fil. senzor [zap]"
|
||||
#define MSG_CRASHDETECT_ON "Crash det. [zap]"
|
||||
#define MSG_CRASHDETECT_NA "Crash det. [N/A]"
|
||||
#define MSG_CRASHDETECT_OFF "Crash det. [vyp]"
|
||||
#define MSG_FANS_CHECK_ON "Kontr. vent.[zap]"
|
||||
#define MSG_FANS_CHECK_OFF "Kontr. vent.[vyp]"
|
||||
|
|
|
@ -349,6 +349,7 @@
|
|||
//messages bellow has no translation yet
|
||||
|
||||
#define MSG_CRASHDETECT_OFF "Crash det. [off]"
|
||||
#define MSG_CRASHDETECT_NA "Crash det. [N/A]"
|
||||
#define MSG_CRASHDETECT_ON "Crash det. [on]"
|
||||
#define MSG_FSENSOR_OFF "Fil. sensor [off]"
|
||||
#define MSG_FSENSOR_NA "Fil. sensor [N/A]"
|
||||
|
@ -386,5 +387,5 @@
|
|||
#define(length=17, lines=1) MSG_SORT_NONE "Sort: [None]"
|
||||
#define(length=20, lines=1) MSG_SORTING "Sorting files"
|
||||
#define(length=20, lines=4) MSG_FILE_CNT "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
||||
#define(length=17, lines=1) MSG_SECOND_SERIAL_ON "2nd USART [on]"
|
||||
#define(length=17, lines=1) MSG_SECOND_SERIAL_OFF "2nd USART [off]"
|
||||
#define(length=17, lines=1) MSG_SECOND_SERIAL_ON "rPi port [on]"
|
||||
#define(length=17, lines=1) MSG_SECOND_SERIAL_OFF "rPi port [off]"
|
||||
|
|
|
@ -743,44 +743,44 @@ void world2machine_initialize()
|
|||
|
||||
bool reset = false;
|
||||
if (vec_undef(cntr) || vec_undef(vec_x) || vec_undef(vec_y)) {
|
||||
SERIAL_ECHOLNPGM("Undefined bed correction matrix.");
|
||||
// SERIAL_ECHOLNPGM("Undefined bed correction matrix.");
|
||||
reset = true;
|
||||
}
|
||||
else {
|
||||
// Length of the vec_x shall be close to unity.
|
||||
float l = sqrt(vec_x[0] * vec_x[0] + vec_x[1] * vec_x[1]);
|
||||
if (l < 0.9 || l > 1.1) {
|
||||
SERIAL_ECHOLNPGM("X vector length:");
|
||||
MYSERIAL.println(l);
|
||||
SERIAL_ECHOLNPGM("Invalid bed correction matrix. Length of the X vector out of range.");
|
||||
// SERIAL_ECHOLNPGM("X vector length:");
|
||||
// MYSERIAL.println(l);
|
||||
// SERIAL_ECHOLNPGM("Invalid bed correction matrix. Length of the X vector out of range.");
|
||||
reset = true;
|
||||
}
|
||||
// Length of the vec_y shall be close to unity.
|
||||
l = sqrt(vec_y[0] * vec_y[0] + vec_y[1] * vec_y[1]);
|
||||
if (l < 0.9 || l > 1.1) {
|
||||
SERIAL_ECHOLNPGM("Y vector length:");
|
||||
MYSERIAL.println(l);
|
||||
SERIAL_ECHOLNPGM("Invalid bed correction matrix. Length of the Y vector out of range.");
|
||||
// SERIAL_ECHOLNPGM("Y vector length:");
|
||||
// MYSERIAL.println(l);
|
||||
// SERIAL_ECHOLNPGM("Invalid bed correction matrix. Length of the Y vector out of range.");
|
||||
reset = true;
|
||||
}
|
||||
// Correction of the zero point shall be reasonably small.
|
||||
l = sqrt(cntr[0] * cntr[0] + cntr[1] * cntr[1]);
|
||||
if (l > 15.f) {
|
||||
SERIAL_ECHOLNPGM("Zero point correction:");
|
||||
MYSERIAL.println(l);
|
||||
SERIAL_ECHOLNPGM("Invalid bed correction matrix. Shift out of range.");
|
||||
// SERIAL_ECHOLNPGM("Zero point correction:");
|
||||
// MYSERIAL.println(l);
|
||||
// SERIAL_ECHOLNPGM("Invalid bed correction matrix. Shift out of range.");
|
||||
reset = true;
|
||||
}
|
||||
// vec_x and vec_y shall be nearly perpendicular.
|
||||
l = vec_x[0] * vec_y[0] + vec_x[1] * vec_y[1];
|
||||
if (fabs(l) > 0.1f) {
|
||||
SERIAL_ECHOLNPGM("Invalid bed correction matrix. X/Y axes are far from being perpendicular.");
|
||||
// SERIAL_ECHOLNPGM("Invalid bed correction matrix. X/Y axes are far from being perpendicular.");
|
||||
reset = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (reset) {
|
||||
SERIAL_ECHOLNPGM("Invalid bed correction matrix. Resetting to identity.");
|
||||
// SERIAL_ECHOLNPGM("Invalid bed correction matrix. Resetting to identity.");
|
||||
reset_bed_offset_and_skew();
|
||||
world2machine_reset();
|
||||
} else {
|
||||
|
|
|
@ -1908,9 +1908,8 @@ void check_max_temp()
|
|||
|
||||
}
|
||||
|
||||
void check_min_temp()
|
||||
void check_min_temp_heater0()
|
||||
{
|
||||
if (current_temperature_raw_ambient > OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW) return;
|
||||
//heater
|
||||
#if HEATER_0_RAW_LO_TEMP > HEATER_0_RAW_HI_TEMP
|
||||
if (current_temperature_raw[0] >= minttemp_raw[0]) {
|
||||
|
@ -1919,7 +1918,10 @@ void check_min_temp()
|
|||
#endif
|
||||
min_temp_error(0);
|
||||
}
|
||||
//bed
|
||||
}
|
||||
|
||||
void check_min_temp_bed()
|
||||
{
|
||||
#if HEATER_BED_RAW_LO_TEMP > HEATER_BED_RAW_HI_TEMP
|
||||
if (current_temperature_bed_raw >= bed_minttemp_raw) {
|
||||
#else
|
||||
|
@ -1929,6 +1931,28 @@ void check_min_temp()
|
|||
}
|
||||
}
|
||||
|
||||
void check_min_temp()
|
||||
{
|
||||
static uint8_t heat_cycles = 0;
|
||||
if (current_temperature_raw_ambient > OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW)
|
||||
{
|
||||
if (READ(HEATER_0_PIN) == HIGH)
|
||||
{
|
||||
// if ((heat_cycles % 10) == 0)
|
||||
// printf_P(PSTR("X%d\n"), heat_cycles);
|
||||
if (heat_cycles > 50) //reaction time 5-10s
|
||||
check_min_temp_heater0();
|
||||
else
|
||||
heat_cycles++;
|
||||
}
|
||||
else
|
||||
heat_cycles = 0;
|
||||
return;
|
||||
}
|
||||
check_min_temp_heater0();
|
||||
check_min_temp_bed();
|
||||
}
|
||||
|
||||
void check_fans() {
|
||||
if (READ(TACH_0) != fan_state[0]) {
|
||||
fan_edge_counter[0] ++;
|
||||
|
|
|
@ -255,7 +255,7 @@ void tmc2130_st_isr(uint8_t last_step_mask)
|
|||
if (diag_mask & 0x04) tmc2130_sg_cnt[2]++;
|
||||
if (diag_mask & 0x08) tmc2130_sg_cnt[3]++;
|
||||
}*/
|
||||
if (!is_usb_printing && tmc2130_sg_stop_on_crash && crash)
|
||||
if (/*!is_usb_printing && */tmc2130_sg_stop_on_crash && crash)
|
||||
{
|
||||
tmc2130_sg_crash = true;
|
||||
tmc2130_sg_stop_on_crash = false;
|
||||
|
@ -353,7 +353,7 @@ uint16_t tmc2130_sg_meassure_stop()
|
|||
|
||||
bool tmc2130_wait_standstill_xy(int timeout)
|
||||
{
|
||||
DBG(_n("tmc2130_wait_standstill_xy(timeout=%d)\n"), timeout);
|
||||
// DBG(_n("tmc2130_wait_standstill_xy(timeout=%d)\n"), timeout);
|
||||
bool standstill = false;
|
||||
while (!standstill && (timeout > 0))
|
||||
{
|
||||
|
@ -361,7 +361,7 @@ bool tmc2130_wait_standstill_xy(int timeout)
|
|||
uint32_t drv_status_y = 0;
|
||||
tmc2130_rd(tmc2130_cs[X_AXIS], TMC2130_REG_DRV_STATUS, &drv_status_x);
|
||||
tmc2130_rd(tmc2130_cs[Y_AXIS], TMC2130_REG_DRV_STATUS, &drv_status_y);
|
||||
DBG(_n("\tdrv_status_x=0x%08x drv_status_x=0x%08x\n"), drv_status_x, drv_status_y);
|
||||
// DBG(_n("\tdrv_status_x=0x%08x drv_status_x=0x%08x\n"), drv_status_x, drv_status_y);
|
||||
standstill = (drv_status_x & 0x80000000) && (drv_status_y & 0x80000000);
|
||||
tmc2130_check_overtemp();
|
||||
timeout--;
|
||||
|
|
|
@ -3281,15 +3281,23 @@ static void lcd_sort_type_set() {
|
|||
}
|
||||
#endif //SDCARD_SORT_ALPHA
|
||||
|
||||
static void lcd_crash_mode_info2()
|
||||
{
|
||||
lcd_show_fullscreen_message_and_wait_P(PSTR("WARNING: crashdetection unavailable in STEALTH mode."));
|
||||
}
|
||||
|
||||
|
||||
static void lcd_silent_mode_set() {
|
||||
SilentModeMenu = !SilentModeMenu;
|
||||
eeprom_update_byte((unsigned char *)EEPROM_SILENT, SilentModeMenu);
|
||||
if (CrashDetectMenu && SilentModeMenu)
|
||||
lcd_crash_mode_info2();
|
||||
#ifdef TMC2130
|
||||
st_synchronize();
|
||||
if (tmc2130_wait_standstill_xy(1000))
|
||||
MYSERIAL.print("standstill OK");
|
||||
else
|
||||
MYSERIAL.print("standstill NG!");
|
||||
if (tmc2130_wait_standstill_xy(1000)) {}
|
||||
// MYSERIAL.print("standstill OK");
|
||||
// else
|
||||
// MYSERIAL.print("standstill NG!");
|
||||
cli();
|
||||
tmc2130_mode = SilentModeMenu?TMC2130_MODE_SILENT:TMC2130_MODE_NORMAL;
|
||||
tmc2130_init();
|
||||
|
@ -3300,6 +3308,12 @@ static void lcd_silent_mode_set() {
|
|||
else lcd_goto_menu(lcd_settings_menu, 7);
|
||||
}
|
||||
|
||||
static void lcd_crash_mode_info()
|
||||
{
|
||||
lcd_show_fullscreen_message_and_wait_P(PSTR("Crash-detection can be used only in NORMAL mode."));
|
||||
}
|
||||
|
||||
|
||||
static void lcd_crash_mode_set()
|
||||
{
|
||||
CrashDetectMenu = !CrashDetectMenu; //set also from crashdet_enable() and crashdet_disable()
|
||||
|
@ -3763,14 +3777,15 @@ static void lcd_settings_menu()
|
|||
MENU_ITEM(function, MSG_FANS_CHECK_OFF, lcd_set_fan_check);
|
||||
}
|
||||
|
||||
|
||||
if (SilentModeMenu == 0) {
|
||||
if (CrashDetectMenu == 0) {
|
||||
MENU_ITEM(function, MSG_CRASHDETECT_OFF, lcd_crash_mode_set);
|
||||
} else {
|
||||
MENU_ITEM(function, MSG_CRASHDETECT_ON, lcd_crash_mode_set);
|
||||
}
|
||||
if (SilentModeMenu == 0) MENU_ITEM(function, MSG_SILENT_MODE_OFF, lcd_silent_mode_set);
|
||||
else MENU_ITEM(function, MSG_SILENT_MODE_ON, lcd_silent_mode_set);
|
||||
if (SilentModeMenu == 0)
|
||||
{
|
||||
if (CrashDetectMenu == 0) MENU_ITEM(function, MSG_CRASHDETECT_OFF, lcd_crash_mode_set);
|
||||
else MENU_ITEM(function, MSG_CRASHDETECT_ON, lcd_crash_mode_set);
|
||||
}
|
||||
else MENU_ITEM(function, MSG_CRASHDETECT_NA, lcd_crash_mode_info);
|
||||
|
||||
if (temp_cal_active == false) {
|
||||
MENU_ITEM(function, MSG_TEMP_CALIBRATION_OFF, lcd_temp_calibration_set);
|
||||
}
|
||||
|
@ -3784,13 +3799,7 @@ static void lcd_settings_menu()
|
|||
MENU_ITEM(function, MSG_SECOND_SERIAL_ON, lcd_second_serial_set);
|
||||
}
|
||||
|
||||
if (SilentModeMenu == 0) {
|
||||
MENU_ITEM(function, MSG_SILENT_MODE_OFF, lcd_silent_mode_set);
|
||||
}
|
||||
else {
|
||||
MENU_ITEM(function, MSG_SILENT_MODE_ON, lcd_silent_mode_set);
|
||||
}
|
||||
if (!isPrintPaused && !homing_flag)
|
||||
if (!isPrintPaused && !homing_flag)
|
||||
{
|
||||
MENU_ITEM(submenu, MSG_BABYSTEP_Z, lcd_babystep_z);
|
||||
}
|
||||
|
@ -5075,20 +5084,6 @@ static void lcd_autostart_sd()
|
|||
|
||||
|
||||
|
||||
static void lcd_silent_mode_set_tune() {
|
||||
SilentModeMenu = !SilentModeMenu;
|
||||
eeprom_update_byte((unsigned char*)EEPROM_SILENT, SilentModeMenu);
|
||||
#ifdef TMC2130
|
||||
st_synchronize();
|
||||
cli();
|
||||
tmc2130_mode = SilentModeMenu?TMC2130_MODE_SILENT:TMC2130_MODE_NORMAL;
|
||||
tmc2130_init();
|
||||
sei();
|
||||
#endif //TMC2130
|
||||
digipot_init();
|
||||
lcd_goto_menu(lcd_tune_menu, 9);
|
||||
}
|
||||
|
||||
static void lcd_colorprint_change() {
|
||||
|
||||
enquecommand_P(PSTR("M600"));
|
||||
|
@ -5125,19 +5120,15 @@ static void lcd_tune_menu()
|
|||
MENU_ITEM(function, MSG_FSENSOR_ON, lcd_fsensor_state_set);
|
||||
}
|
||||
|
||||
if (SilentModeMenu == 0) {
|
||||
MENU_ITEM(function, MSG_SILENT_MODE_OFF, lcd_silent_mode_set);
|
||||
} else {
|
||||
MENU_ITEM(function, MSG_SILENT_MODE_ON, lcd_silent_mode_set);
|
||||
}
|
||||
if (SilentModeMenu == 0) MENU_ITEM(function, MSG_SILENT_MODE_OFF, lcd_silent_mode_set);
|
||||
else MENU_ITEM(function, MSG_SILENT_MODE_ON, lcd_silent_mode_set);
|
||||
|
||||
if (SilentModeMenu == 0) {
|
||||
if (CrashDetectMenu == 0) {
|
||||
MENU_ITEM(function, MSG_CRASHDETECT_OFF, lcd_crash_mode_set);
|
||||
} else {
|
||||
MENU_ITEM(function, MSG_CRASHDETECT_ON, lcd_crash_mode_set);
|
||||
}
|
||||
if (SilentModeMenu == 0)
|
||||
{
|
||||
if (CrashDetectMenu == 0) MENU_ITEM(function, MSG_CRASHDETECT_OFF, lcd_crash_mode_set);
|
||||
else MENU_ITEM(function, MSG_CRASHDETECT_ON, lcd_crash_mode_set);
|
||||
}
|
||||
else MENU_ITEM(function, MSG_CRASHDETECT_NA, lcd_crash_mode_info);
|
||||
|
||||
END_MENU();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue