Merge branch 'MK3' into MK3-Gcode_documentation
This commit is contained in:
commit
422e7fde4a
|
|
@ -345,7 +345,7 @@ your extruder heater takes 2 minutes to hit the target on heating.
|
||||||
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29
|
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29
|
||||||
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
|
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
|
||||||
|
|
||||||
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance.
|
#define Z_RAISE_BEFORE_HOMING 5 // (in mm) Raise Z before homing (G28) for Probe Clearance.
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case
|
// Be sure you have this distance over your Z_MAX_POS in case
|
||||||
|
|
||||||
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min
|
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min
|
||||||
|
|
@ -549,6 +549,12 @@ enum CalibrationStatus
|
||||||
CALIBRATION_STATUS_UNKNOWN = 0,
|
CALIBRATION_STATUS_UNKNOWN = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Try to maintain a minimum distance from the bed even when Z is
|
||||||
|
// unknown when doing the following operations
|
||||||
|
#define MIN_Z_FOR_LOAD 50
|
||||||
|
#define MIN_Z_FOR_UNLOAD 20
|
||||||
|
#define MIN_Z_FOR_PREHEAT 10
|
||||||
|
|
||||||
#include "Configuration_adv.h"
|
#include "Configuration_adv.h"
|
||||||
#include "thermistortables.h"
|
#include "thermistortables.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -358,9 +358,6 @@ extern int fan_speed[2];
|
||||||
// Handling multiple extruders pins
|
// Handling multiple extruders pins
|
||||||
extern uint8_t active_extruder;
|
extern uint8_t active_extruder;
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//Long pause
|
//Long pause
|
||||||
extern unsigned long pause_time;
|
extern unsigned long pause_time;
|
||||||
extern unsigned long start_pause_print;
|
extern unsigned long start_pause_print;
|
||||||
|
|
@ -513,4 +510,6 @@ void M600_wait_for_user(float HotendTempBckp);
|
||||||
void M600_check_state(float nozzle_temp);
|
void M600_check_state(float nozzle_temp);
|
||||||
void load_filament_final_feed();
|
void load_filament_final_feed();
|
||||||
void marlin_wait_for_click();
|
void marlin_wait_for_click();
|
||||||
void marlin_rise_z(void);
|
void raise_z_above(float target, bool plan=true);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -2104,6 +2104,52 @@ bool check_commands() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// raise_z_above: slowly raise Z to the requested height
|
||||||
|
//
|
||||||
|
// contrarily to a simple move, this function will carefully plan a move
|
||||||
|
// when the current Z position is unknown. In such cases, stallguard is
|
||||||
|
// enabled and will prevent prolonged pushing against the Z tops
|
||||||
|
void raise_z_above(float target, bool plan)
|
||||||
|
{
|
||||||
|
if (current_position[Z_AXIS] >= target)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Z needs raising
|
||||||
|
current_position[Z_AXIS] = target;
|
||||||
|
|
||||||
|
if (axis_known_position[Z_AXIS])
|
||||||
|
{
|
||||||
|
// current position is known, it's safe to raise Z
|
||||||
|
if(plan) plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ensure Z is powered in normal mode to overcome initial load
|
||||||
|
enable_z();
|
||||||
|
st_synchronize();
|
||||||
|
|
||||||
|
// rely on crashguard to limit damage
|
||||||
|
bool z_endstop_enabled = enable_z_endstop(true);
|
||||||
|
#ifdef TMC2130
|
||||||
|
tmc2130_home_enter(Z_AXIS_MASK);
|
||||||
|
#endif //TMC2130
|
||||||
|
plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60, active_extruder);
|
||||||
|
st_synchronize();
|
||||||
|
#ifdef TMC2130
|
||||||
|
if (endstop_z_hit_on_purpose())
|
||||||
|
{
|
||||||
|
// not necessarily exact, but will avoid further vertical moves
|
||||||
|
current_position[Z_AXIS] = max_pos[Z_AXIS];
|
||||||
|
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS],
|
||||||
|
current_position[Z_AXIS], current_position[E_AXIS]);
|
||||||
|
}
|
||||||
|
tmc2130_home_exit();
|
||||||
|
#endif //TMC2130
|
||||||
|
enable_z_endstop(z_endstop_enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef TMC2130
|
#ifdef TMC2130
|
||||||
bool calibrate_z_auto()
|
bool calibrate_z_auto()
|
||||||
{
|
{
|
||||||
|
|
@ -2484,9 +2530,7 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon
|
||||||
|
|
||||||
//if we are homing all axes, first move z higher to protect heatbed/steel sheet
|
//if we are homing all axes, first move z higher to protect heatbed/steel sheet
|
||||||
if (home_all_axes) {
|
if (home_all_axes) {
|
||||||
current_position[Z_AXIS] += MESH_HOME_Z_SEARCH;
|
raise_z_above(MESH_HOME_Z_SEARCH);
|
||||||
feedrate = homing_feedrate[Z_AXIS];
|
|
||||||
plan_buffer_line_curposXYZE(feedrate / 60, active_extruder);
|
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
}
|
}
|
||||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||||
|
|
@ -2597,26 +2641,21 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon
|
||||||
#ifndef Z_SAFE_HOMING
|
#ifndef Z_SAFE_HOMING
|
||||||
if(home_z) {
|
if(home_z) {
|
||||||
#if defined (Z_RAISE_BEFORE_HOMING) && (Z_RAISE_BEFORE_HOMING > 0)
|
#if defined (Z_RAISE_BEFORE_HOMING) && (Z_RAISE_BEFORE_HOMING > 0)
|
||||||
destination[Z_AXIS] = Z_RAISE_BEFORE_HOMING * home_dir(Z_AXIS) * (-1); // Set destination away from bed
|
raise_z_above(Z_RAISE_BEFORE_HOMING);
|
||||||
feedrate = max_feedrate[Z_AXIS];
|
|
||||||
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate, active_extruder);
|
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
#endif // defined (Z_RAISE_BEFORE_HOMING) && (Z_RAISE_BEFORE_HOMING > 0)
|
#endif // defined (Z_RAISE_BEFORE_HOMING) && (Z_RAISE_BEFORE_HOMING > 0)
|
||||||
#if (defined(MESH_BED_LEVELING) && !defined(MK1BP)) // If Mesh bed leveling, move X&Y to safe position for home
|
#if (defined(MESH_BED_LEVELING) && !defined(MK1BP)) // If Mesh bed leveling, move X&Y to safe position for home
|
||||||
if (!(axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] ))
|
raise_z_above(MESH_HOME_Z_SEARCH);
|
||||||
{
|
st_synchronize();
|
||||||
homeaxis(X_AXIS);
|
if (!axis_known_position[X_AXIS]) homeaxis(X_AXIS);
|
||||||
homeaxis(Y_AXIS);
|
if (!axis_known_position[Y_AXIS]) homeaxis(Y_AXIS);
|
||||||
}
|
|
||||||
// 1st mesh bed leveling measurement point, corrected.
|
// 1st mesh bed leveling measurement point, corrected.
|
||||||
world2machine_initialize();
|
world2machine_initialize();
|
||||||
world2machine(pgm_read_float(bed_ref_points_4), pgm_read_float(bed_ref_points_4+1), destination[X_AXIS], destination[Y_AXIS]);
|
world2machine(pgm_read_float(bed_ref_points_4), pgm_read_float(bed_ref_points_4+1), destination[X_AXIS], destination[Y_AXIS]);
|
||||||
world2machine_reset();
|
world2machine_reset();
|
||||||
if (destination[Y_AXIS] < Y_MIN_POS)
|
if (destination[Y_AXIS] < Y_MIN_POS)
|
||||||
destination[Y_AXIS] = Y_MIN_POS;
|
destination[Y_AXIS] = Y_MIN_POS;
|
||||||
destination[Z_AXIS] = MESH_HOME_Z_SEARCH; // Set destination away from bed
|
feedrate = homing_feedrate[X_AXIS] / 20;
|
||||||
feedrate = homing_feedrate[Z_AXIS]/10;
|
|
||||||
current_position[Z_AXIS] = 0;
|
|
||||||
enable_endstops(false);
|
enable_endstops(false);
|
||||||
#ifdef DEBUG_BUILD
|
#ifdef DEBUG_BUILD
|
||||||
SERIAL_ECHOLNPGM("plan_set_position()");
|
SERIAL_ECHOLNPGM("plan_set_position()");
|
||||||
|
|
@ -3143,15 +3182,6 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float
|
||||||
custom_message_type = CustomMsg::Status;
|
custom_message_type = CustomMsg::Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! @brief Rise Z if too low to avoid blob/jam before filament loading
|
|
||||||
//!
|
|
||||||
//! It doesn't plan_buffer_line(), as it expects plan_buffer_line() to be called after
|
|
||||||
//! during extruding (loading) filament.
|
|
||||||
void marlin_rise_z(void)
|
|
||||||
{
|
|
||||||
if (current_position[Z_AXIS] < 20) current_position[Z_AXIS] += 30;
|
|
||||||
}
|
|
||||||
|
|
||||||
void gcode_M701()
|
void gcode_M701()
|
||||||
{
|
{
|
||||||
printf_P(PSTR("gcode_M701 begin\n"));
|
printf_P(PSTR("gcode_M701 begin\n"));
|
||||||
|
|
@ -3180,7 +3210,7 @@ void gcode_M701()
|
||||||
plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence
|
plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
|
|
||||||
marlin_rise_z();
|
raise_z_above(MIN_Z_FOR_LOAD, false);
|
||||||
current_position[E_AXIS] += 30;
|
current_position[E_AXIS] += 30;
|
||||||
plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence
|
plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence
|
||||||
|
|
||||||
|
|
@ -8145,27 +8175,33 @@ Sigma_Exit:
|
||||||
case 350:
|
case 350:
|
||||||
{
|
{
|
||||||
#ifdef TMC2130
|
#ifdef TMC2130
|
||||||
if(code_seen('E'))
|
for (int i=0; i<NUM_AXIS; i++)
|
||||||
{
|
{
|
||||||
uint16_t res_new = code_value();
|
if(code_seen(axis_codes[i]))
|
||||||
if ((res_new == 8) || (res_new == 16) || (res_new == 32) || (res_new == 64) || (res_new == 128))
|
|
||||||
{
|
{
|
||||||
st_synchronize();
|
uint16_t res_new = code_value();
|
||||||
uint8_t axis = E_AXIS;
|
bool res_valid = (res_new == 8) || (res_new == 16) || (res_new == 32); // resolutions valid for all axis
|
||||||
uint16_t res = tmc2130_get_res(axis);
|
res_valid |= (i != E_AXIS) && ((res_new == 1) || (res_new == 2) || (res_new == 4)); // resolutions valid for X Y Z only
|
||||||
tmc2130_set_res(axis, res_new);
|
res_valid |= (i == E_AXIS) && ((res_new == 64) || (res_new == 128)); // resolutions valid for E only
|
||||||
cs.axis_ustep_resolution[axis] = res_new;
|
if (res_valid)
|
||||||
if (res_new > res)
|
|
||||||
{
|
{
|
||||||
uint16_t fac = (res_new / res);
|
|
||||||
cs.axis_steps_per_unit[axis] *= fac;
|
st_synchronize();
|
||||||
position[E_AXIS] *= fac;
|
uint16_t res = tmc2130_get_res(i);
|
||||||
}
|
tmc2130_set_res(i, res_new);
|
||||||
else
|
cs.axis_ustep_resolution[i] = res_new;
|
||||||
{
|
if (res_new > res)
|
||||||
uint16_t fac = (res / res_new);
|
{
|
||||||
cs.axis_steps_per_unit[axis] /= fac;
|
uint16_t fac = (res_new / res);
|
||||||
position[E_AXIS] /= fac;
|
cs.axis_steps_per_unit[i] *= fac;
|
||||||
|
position[i] *= fac;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
uint16_t fac = (res / res_new);
|
||||||
|
cs.axis_steps_per_unit[i] /= fac;
|
||||||
|
position[i] /= fac;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -10057,10 +10093,9 @@ void long_pause() //long pause print
|
||||||
current_position[Y_AXIS] = Y_PAUSE_POS;
|
current_position[Y_AXIS] = Y_PAUSE_POS;
|
||||||
plan_buffer_line_curposXYZE(50, active_extruder);
|
plan_buffer_line_curposXYZE(50, active_extruder);
|
||||||
|
|
||||||
// Turn off the print fan
|
// Turn off the hotends and print fan
|
||||||
|
setAllTargetHotends(0);
|
||||||
fanSpeed = 0;
|
fanSpeed = 0;
|
||||||
|
|
||||||
st_synchronize();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void serialecho_temperatures() {
|
void serialecho_temperatures() {
|
||||||
|
|
|
||||||
|
|
@ -1355,7 +1355,7 @@ void lcd_mmu_load_to_nozzle(uint8_t filament_nr)
|
||||||
manage_response(true, true, MMU_TCODE_MOVE);
|
manage_response(true, true, MMU_TCODE_MOVE);
|
||||||
mmu_continue_loading(false);
|
mmu_continue_loading(false);
|
||||||
mmu_extruder = tmp_extruder; //filament change is finished
|
mmu_extruder = tmp_extruder; //filament change is finished
|
||||||
marlin_rise_z();
|
raise_z_above(MIN_Z_FOR_LOAD, false);
|
||||||
mmu_load_to_nozzle();
|
mmu_load_to_nozzle();
|
||||||
load_filament_final_feed();
|
load_filament_final_feed();
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
|
|
@ -1556,19 +1556,23 @@ void mmu_continue_loading(bool blocking)
|
||||||
increment_load_fail();
|
increment_load_fail();
|
||||||
// no break
|
// no break
|
||||||
case Ls::Retry:
|
case Ls::Retry:
|
||||||
#ifdef MMU_HAS_CUTTER
|
++retry; // overflow not handled, as it is not dangerous.
|
||||||
if (1 == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED))
|
if (retry >= max_retry)
|
||||||
{
|
{
|
||||||
mmu_command(MmuCmd::K0 + tmp_extruder);
|
state = Ls::Unload;
|
||||||
manage_response(true, true, MMU_UNLOAD_MOVE);
|
#ifdef MMU_HAS_CUTTER
|
||||||
}
|
if (1 == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED))
|
||||||
|
{
|
||||||
|
mmu_command(MmuCmd::K0 + tmp_extruder);
|
||||||
|
manage_response(true, true, MMU_UNLOAD_MOVE);
|
||||||
|
}
|
||||||
#endif //MMU_HAS_CUTTER
|
#endif //MMU_HAS_CUTTER
|
||||||
|
}
|
||||||
mmu_command(MmuCmd::T0 + tmp_extruder);
|
mmu_command(MmuCmd::T0 + tmp_extruder);
|
||||||
manage_response(true, true, MMU_TCODE_MOVE);
|
manage_response(true, true, MMU_TCODE_MOVE);
|
||||||
success = load_more();
|
success = load_more();
|
||||||
if (success) success = can_load();
|
if (success) success = can_load();
|
||||||
++retry; // overflow not handled, as it is not dangerous.
|
|
||||||
if (retry >= max_retry) state = Ls::Unload;
|
|
||||||
break;
|
break;
|
||||||
case Ls::Unload:
|
case Ls::Unload:
|
||||||
stop_and_save_print_to_ram(0, 0);
|
stop_and_save_print_to_ram(0, 0);
|
||||||
|
|
|
||||||
|
|
@ -427,7 +427,7 @@ void tmc2130_check_overtemp()
|
||||||
|
|
||||||
void tmc2130_setup_chopper(uint8_t axis, uint8_t mres, uint8_t current_h, uint8_t current_r)
|
void tmc2130_setup_chopper(uint8_t axis, uint8_t mres, uint8_t current_h, uint8_t current_r)
|
||||||
{
|
{
|
||||||
uint8_t intpol = 1;
|
uint8_t intpol = (mres != 0); // intpol to 256 only if microsteps aren't 256
|
||||||
uint8_t toff = tmc2130_chopper_config[axis].toff; // toff = 3 (fchop = 27.778kHz)
|
uint8_t toff = tmc2130_chopper_config[axis].toff; // toff = 3 (fchop = 27.778kHz)
|
||||||
uint8_t hstrt = tmc2130_chopper_config[axis].hstr; //initial 4, modified to 5
|
uint8_t hstrt = tmc2130_chopper_config[axis].hstr; //initial 4, modified to 5
|
||||||
uint8_t hend = tmc2130_chopper_config[axis].hend; //original value = 1
|
uint8_t hend = tmc2130_chopper_config[axis].hend; //original value = 1
|
||||||
|
|
@ -600,7 +600,7 @@ void tmc2130_wr_THIGH(uint8_t axis, uint32_t val32)
|
||||||
|
|
||||||
uint8_t tmc2130_usteps2mres(uint16_t usteps)
|
uint8_t tmc2130_usteps2mres(uint16_t usteps)
|
||||||
{
|
{
|
||||||
uint8_t mres = 8; while (mres && (usteps >>= 1)) mres--;
|
uint8_t mres = 8; while (usteps >>= 1) mres--;
|
||||||
return mres;
|
return mres;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -310,18 +310,24 @@ bool bSettings; // flag (i.e. 'fake parameter'
|
||||||
const char STR_SEPARATOR[] PROGMEM = "------------";
|
const char STR_SEPARATOR[] PROGMEM = "------------";
|
||||||
|
|
||||||
|
|
||||||
static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, char* longFilename)
|
static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char* filename, char* longFilename)
|
||||||
{
|
{
|
||||||
char c;
|
char c;
|
||||||
int enc_dif = lcd_encoder_diff;
|
int enc_dif = lcd_encoder_diff / ENCODER_PULSES_PER_STEP;
|
||||||
uint8_t n = LCD_WIDTH - 1;
|
uint8_t n = LCD_WIDTH - 1;
|
||||||
|
|
||||||
for(uint_least8_t g = 0; g<4;g++){
|
for(uint_least8_t g = 0; g<4;g++){
|
||||||
lcd_set_cursor(0, g);
|
lcd_set_cursor(0, g);
|
||||||
lcd_print(' ');
|
lcd_print(' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
lcd_set_cursor(0, row);
|
lcd_set_cursor(0, row);
|
||||||
lcd_print('>');
|
lcd_print('>');
|
||||||
|
|
||||||
|
if (longFilename[0] == '\0')
|
||||||
|
{
|
||||||
|
longFilename = filename;
|
||||||
|
}
|
||||||
|
|
||||||
int i = 1;
|
int i = 1;
|
||||||
int j = 0;
|
int j = 0;
|
||||||
char* longFilenameTMP = longFilename;
|
char* longFilenameTMP = longFilename;
|
||||||
|
|
@ -339,7 +345,7 @@ static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, char* longF
|
||||||
n = LCD_WIDTH - 1;
|
n = LCD_WIDTH - 1;
|
||||||
for(int g = 0; g<300 ;g++){
|
for(int g = 0; g<300 ;g++){
|
||||||
manage_heater();
|
manage_heater();
|
||||||
if(LCD_CLICKED || ( enc_dif != lcd_encoder_diff )){
|
if(LCD_CLICKED || ( enc_dif != (lcd_encoder_diff / ENCODER_PULSES_PER_STEP))){
|
||||||
longFilenameTMP = longFilename;
|
longFilenameTMP = longFilename;
|
||||||
*(longFilenameTMP + LCD_WIDTH - 2) = '\0';
|
*(longFilenameTMP + LCD_WIDTH - 2) = '\0';
|
||||||
i = 1;
|
i = 1;
|
||||||
|
|
@ -537,7 +543,7 @@ static uint8_t menu_item_sdfile(const char*
|
||||||
if (lcd_draw_update)
|
if (lcd_draw_update)
|
||||||
{
|
{
|
||||||
if (lcd_encoder == menu_item)
|
if (lcd_encoder == menu_item)
|
||||||
lcd_implementation_drawmenu_sdfile_selected(menu_row, str_fnl);
|
lcd_implementation_drawmenu_sdfile_selected(menu_row, str_fn, str_fnl);
|
||||||
else
|
else
|
||||||
lcd_implementation_drawmenu_sdfile(menu_row, str_fn, str_fnl);
|
lcd_implementation_drawmenu_sdfile(menu_row, str_fn, str_fnl);
|
||||||
}
|
}
|
||||||
|
|
@ -709,10 +715,10 @@ void lcdui_print_status_line(void)
|
||||||
{
|
{
|
||||||
if (IS_SD_PRINTING)
|
if (IS_SD_PRINTING)
|
||||||
{
|
{
|
||||||
if (strcmp(longFilenameOLD, card.longFilename) != 0)
|
if (strcmp(longFilenameOLD, (card.longFilename[0] ? card.longFilename : card.filename)) != 0)
|
||||||
{
|
{
|
||||||
memset(longFilenameOLD, '\0', strlen(longFilenameOLD));
|
memset(longFilenameOLD, '\0', strlen(longFilenameOLD));
|
||||||
sprintf_P(longFilenameOLD, PSTR("%s"), card.longFilename);
|
sprintf_P(longFilenameOLD, PSTR("%s"), (card.longFilename[0] ? card.longFilename : card.filename));
|
||||||
scrollstuff = 0;
|
scrollstuff = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -760,16 +766,16 @@ void lcdui_print_status_line(void)
|
||||||
}
|
}
|
||||||
else if ((IS_SD_PRINTING) && (custom_message_type == CustomMsg::Status))
|
else if ((IS_SD_PRINTING) && (custom_message_type == CustomMsg::Status))
|
||||||
{ // If printing from SD, show what we are printing
|
{ // If printing from SD, show what we are printing
|
||||||
if(strlen(card.longFilename) > LCD_WIDTH)
|
if(strlen(longFilenameOLD) > LCD_WIDTH)
|
||||||
{
|
{
|
||||||
int inters = 0;
|
int inters = 0;
|
||||||
int gh = scrollstuff;
|
int gh = scrollstuff;
|
||||||
while (((gh - scrollstuff) < LCD_WIDTH) && (inters == 0))
|
while (((gh - scrollstuff) < LCD_WIDTH) && (inters == 0))
|
||||||
{
|
{
|
||||||
if (card.longFilename[gh] == '\0')
|
if (longFilenameOLD[gh] == '\0')
|
||||||
{
|
{
|
||||||
lcd_set_cursor(gh - scrollstuff, 3);
|
lcd_set_cursor(gh - scrollstuff, 3);
|
||||||
lcd_print(card.longFilename[gh - 1]);
|
lcd_print(longFilenameOLD[gh - 1]);
|
||||||
scrollstuff = 0;
|
scrollstuff = 0;
|
||||||
gh = scrollstuff;
|
gh = scrollstuff;
|
||||||
inters = 1;
|
inters = 1;
|
||||||
|
|
@ -777,7 +783,7 @@ void lcdui_print_status_line(void)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lcd_set_cursor(gh - scrollstuff, 3);
|
lcd_set_cursor(gh - scrollstuff, 3);
|
||||||
lcd_print(card.longFilename[gh - 1]);
|
lcd_print(longFilenameOLD[gh - 1]);
|
||||||
gh++;
|
gh++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -785,7 +791,7 @@ void lcdui_print_status_line(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lcd_print(longFilenameOLD);
|
lcd_printf_P(PSTR("%-20s"), longFilenameOLD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -1072,12 +1078,8 @@ void lcd_commands()
|
||||||
if (!blocks_queued() && !homing_flag)
|
if (!blocks_queued() && !homing_flag)
|
||||||
{
|
{
|
||||||
lcd_setstatuspgm(_i("Print paused"));////MSG_PRINT_PAUSED c=20 r=1
|
lcd_setstatuspgm(_i("Print paused"));////MSG_PRINT_PAUSED c=20 r=1
|
||||||
long_pause();
|
lcd_commands_type = LcdCommands::Idle;
|
||||||
if (lcd_commands_type == LcdCommands::LongPause) // !!! because "lcd_commands_type" can be changed during/inside "long_pause()"
|
lcd_commands_step = 0;
|
||||||
{
|
|
||||||
lcd_commands_type = LcdCommands::Idle;
|
|
||||||
lcd_commands_step = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1636,7 +1638,7 @@ void lcd_pause_print()
|
||||||
{
|
{
|
||||||
lcd_return_to_status();
|
lcd_return_to_status();
|
||||||
stop_and_save_print_to_ram(0.0,0.0);
|
stop_and_save_print_to_ram(0.0,0.0);
|
||||||
setAllTargetHotends(0);
|
long_pause();
|
||||||
isPrintPaused = true;
|
isPrintPaused = true;
|
||||||
if (LcdCommands::Idle == lcd_commands_type)
|
if (LcdCommands::Idle == lcd_commands_type)
|
||||||
{
|
{
|
||||||
|
|
@ -2374,9 +2376,11 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed)
|
||||||
{
|
{
|
||||||
lcd_commands_type = LcdCommands::Layer1Cal;
|
lcd_commands_type = LcdCommands::Layer1Cal;
|
||||||
}
|
}
|
||||||
else if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE))
|
else
|
||||||
{
|
{
|
||||||
lcd_wizard(WizState::LoadFilHot);
|
raise_z_above(MIN_Z_FOR_PREHEAT);
|
||||||
|
if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE))
|
||||||
|
lcd_wizard(WizState::LoadFilHot);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -6363,6 +6367,8 @@ void unload_filament()
|
||||||
custom_message_type = CustomMsg::FilamentLoading;
|
custom_message_type = CustomMsg::FilamentLoading;
|
||||||
lcd_setstatuspgm(_T(MSG_UNLOADING_FILAMENT));
|
lcd_setstatuspgm(_T(MSG_UNLOADING_FILAMENT));
|
||||||
|
|
||||||
|
raise_z_above(MIN_Z_FOR_UNLOAD);
|
||||||
|
|
||||||
// extr_unload2();
|
// extr_unload2();
|
||||||
|
|
||||||
current_position[E_AXIS] -= 45;
|
current_position[E_AXIS] -= 45;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue