Commit a3be0913 authored by MagoKimbra's avatar MagoKimbra

Update 4.1.5

parent 971c0ac5
......@@ -417,6 +417,7 @@ const unsigned int dropsegments = 5; // everything with less than this number of
// Add support for filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
//#define FILAMENTCHANGEENABLE
#if ENABLED(FILAMENTCHANGEENABLE)
#define FILAMENTCHANGE_XPOS 3
#define FILAMENTCHANGE_YPOS 3
......
......@@ -3001,6 +3001,14 @@ inline void gcode_G28() {
set_destination_to_current();
bool come_back = code_seen('B');
float lastpos[NUM_AXIS];
float oldfeedrate;
if(come_back) {
oldfeedrate = feedrate;
memcpy(lastpos, current_position, sizeof(lastpos));
}
feedrate = 0.0;
bool homeX = code_seen(axis_codes[X_AXIS]),
......@@ -3394,6 +3402,32 @@ inline void gcode_G28() {
#endif
clean_up_after_endstop_move();
if(come_back) {
#if ENABLED(DELTA)
feedrate = 1.732 * homing_feedrate[X_AXIS];
memcpy(destination, lastpos, sizeof(destination));
prepare_move();
feedrate = oldfeedrate;
#else
if(homeX) {
feedrate = homing_feedrate[X_AXIS];
destination[X_AXIS] = lastpos[X_AXIS];
prepare_move();
}
if(homeY) {
feedrate = homing_feedrate[Y_AXIS];
destination[Y_AXIS] = lastpos[Y_AXIS];
prepare_move();
}
if(homeZ) {
feedrate = homing_feedrate[Z_AXIS];
destination[Z_AXIS] = lastpos[Z_AXIS];
prepare_move();
}
feedrate = oldfeedrate;
#endif
}
}
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
......@@ -5965,7 +5999,7 @@ inline void gcode_M503() {
inline void gcode_M600() {
if (degHotend(active_extruder) < extrude_min_temp) {
ECHO_LM(ER, MSG_TOO_COLD_FOR_M600);
ECHO_LM(ER, MSG_TOO_COLD_FOR_FILAMENTCHANGE);
return;
}
......@@ -7054,7 +7088,7 @@ void clamp_to_software_endstops(float target[3]) {
}
}
#ifdef PREVENT_DANGEROUS_EXTRUDE
#if ENABLED(PREVENT_DANGEROUS_EXTRUDE)
FORCE_INLINE void prevent_dangerous_extrude(float &curr_e, float &dest_e) {
float de = dest_e - curr_e;
......@@ -7075,7 +7109,7 @@ void clamp_to_software_endstops(float target[3]) {
#endif // PREVENT_DANGEROUS_EXTRUDE
#if defined(DELTA) || defined(SCARA)
#if ENABLED(DELTA) || ENABLED(SCARA)
inline bool prepare_move_delta(float target[NUM_AXIS]) {
......@@ -7135,11 +7169,11 @@ void clamp_to_software_endstops(float target[3]) {
#endif // DELTA || SCARA
#ifdef SCARA
#if ENABLED(SCARA)
inline bool prepare_move_scara(float target[NUM_AXIS]) { return prepare_move_delta(target); }
#endif
#ifdef DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
inline bool prepare_move_dual_x_carriage() {
if (active_extruder_parked) {
......@@ -7177,7 +7211,7 @@ void clamp_to_software_endstops(float target[3]) {
#endif // DUAL_X_CARRIAGE
#if defined(CARTESIAN) || defined(COREXY) || defined(COREXZ)
#if ENABLED(CARTESIAN) || ENABLED(COREXY) || ENABLED(COREXZ)
inline bool prepare_move_cartesian() {
// Do not use feedrate_multiplier for E or Z only moves
......@@ -7202,21 +7236,21 @@ void prepare_move() {
clamp_to_software_endstops(destination);
refresh_cmd_timeout();
#ifdef PREVENT_DANGEROUS_EXTRUDE
#if ENABLED(PREVENT_DANGEROUS_EXTRUDE)
prevent_dangerous_extrude(current_position[E_AXIS], destination[E_AXIS]);
#endif
#ifdef SCARA
#if ENABLED(SCARA)
if (!prepare_move_scara(destination)) return;
#elif defined(DELTA)
#elif ENABLED(DELTA)
if (!prepare_move_delta(destination)) return;
#endif
#ifdef DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
if (!prepare_move_dual_x_carriage()) return;
#endif
#if defined(CARTESIAN) || defined(COREXY) || defined(COREXZ)
#if ENABLED(CARTESIAN) || ENABLED(COREXY) || ENABLED(COREXZ)
if (!prepare_move_cartesian()) return;
#endif
......@@ -7336,7 +7370,7 @@ void plan_arc(
arc_target[E_AXIS] += extruder_per_segment;
clamp_to_software_endstops(arc_target);
#if defined(DELTA) || defined(SCARA)
#if ENABLED(DELTA) || ENABLED(SCARA)
calculate_delta(arc_target);
adjust_delta(arc_target);
plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], arc_target[E_AXIS], feed_rate, active_extruder, active_driver);
......@@ -7346,7 +7380,7 @@ void plan_arc(
}
// Ensure last segment arrives at target location.
#if defined(DELTA) || defined(SCARA)
#if ENABLED(DELTA) || ENABLED(SCARA)
calculate_delta(target);
adjust_delta(arc_target);
plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], target[E_AXIS], feed_rate, active_extruder, active_driver);
......@@ -7404,7 +7438,7 @@ void plan_arc(
#endif // HAS_CONTROLLERFAN
#ifdef SCARA
#if ENABLED(SCARA)
void calculate_SCARA_forward_Transform(float f_scara[3]) {
// Perform forward kinematics, and place results in delta[3]
......
......@@ -395,7 +395,7 @@
* MAX_STEP_FREQUENCY differs for TOSHIBA OR ARDUINO DUE OR ARDUINO MEGA
*/
#ifdef __SAM3X8E__
#if defined(CONFIG_STEPPERS_TOSHIBA)
#if ENABLED(CONFIG_STEPPERS_TOSHIBA) || DISABLED(ENABLE_HIGH_SPEED_STEPPING)
#define MAX_STEP_FREQUENCY 150000 // Max step frequency for Toshiba Stepper Controllers
#define DOUBLE_STEP_FREQUENCY MAX_STEP_FREQUENCY
#else
......@@ -403,7 +403,7 @@
#define DOUBLE_STEP_FREQUENCY 100000 //96kHz is close to maximum for an Arduino Due
#endif
#else
#if defined(CONFIG_STEPPERS_TOSHIBA)
#if ENABLED(CONFIG_STEPPERS_TOSHIBA)
#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
#define DOUBLE_STEP_FREQUENCY MAX_STEP_FREQUENCY
#else
......
......@@ -47,7 +47,7 @@
#define MSG_PREHEAT_GUM_ALL "Preheat GUM All"
#define MSG_PREHEAT_GUM_BEDONLY "Preheat GUM Bed"
#define MSG_PREHEAT_GUM_SETTINGS "Preheat GUM conf"
#define MSG_TOO_COLD_FOR_M600 "M600 Hotend too cold to change filament"
#define MSG_TOO_COLD_FOR_FILAMENTCHANGE "Hotend too cold to change filament"
#define MSG_COOLDOWN "Cooldown"
#define MSG_SWITCH_PS_ON "Switch power on"
#define MSG_SWITCH_PS_OFF "Switch power off"
......@@ -68,6 +68,7 @@
#define MSG_FAN_SPEED "Fan speed"
#define MSG_FLOW "Flow"
#define MSG_CONTROL "Control"
#define MSG_FIX_LOSE_STEPS "Fix axis steps"
#define MSG_MIN LCD_STR_THERMOMETER " Min"
#define MSG_MAX LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
......@@ -104,7 +105,7 @@
#define MSG_E3STEPS "E3steps/mm"
#define MSG_TEMPERATURE "Temperature"
#define MSG_MOTION "Motion"
#define MSG_VOLUMETRIC "Filament"
#define MSG_FILAMENT "Filament"
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
#define MSG_FILAMENT_SIZE_EXTRUDER "Fil. Dia."
#define MSG_CONTRAST "LCD contrast"
......@@ -141,9 +142,10 @@
#define MSG_ZPROBE_OUT "Z probe out. bed"
#define MSG_POSITION_UNKNOWN "Home X/Y before Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
#define MSG_BABYSTEP_X "Babystep X"
#define MSG_BABYSTEP_Y "Babystep Y"
#define MSG_BABYSTEP_Z "Babystep Z"
#define MSG_BABYSTEP "Babystep"
#define MSG_BABYSTEP_X MSG_BABYSTEP " " MSG_X
#define MSG_BABYSTEP_Y MSG_BABYSTEP " " MSG_Y
#define MSG_BABYSTEP_Z MSG_BABYSTEP " " MSG_Z
#define MSG_ENDSTOP_ABORT "Endstop abort"
#define MSG_HEATING_FAILED_LCD "Heating failed"
#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR"
......
......@@ -20,15 +20,15 @@
#define MSG_AUTOSTART "Autostart"
#define MSG_DISABLE_STEPPERS "Disabilita Motori"
#define MSG_AUTO_HOME "Auto Home"
#define MSG_MBL_SETTING "Manual Bed Leveling "
#define MSG_MBL_BUTTON " Press the button "
#define MSG_MBL_INTRO " Leveling bed... "
#define MSG_MBL_1 " Adjust first point "
#define MSG_MBL_2 " Adjust second point"
#define MSG_MBL_3 " Adjust third point "
#define MSG_MBL_4 " Adjust fourth point"
#define MSG_MBL_5 " Is it ok? "
#define MSG_MBL_6 " BED leveled! "
#define MSG_MBL_SETTING "Liv. piatto manuale "
#define MSG_MBL_BUTTON " Premi il tasto "
#define MSG_MBL_INTRO " Liv. piatto... "
#define MSG_MBL_1 " Calibra il primo punto"
#define MSG_MBL_2 " Calibra il secondo punto"
#define MSG_MBL_3 " Calibra il terzo punto"
#define MSG_MBL_4 " Calibra il quarto punto"
#define MSG_MBL_5 " Va bene? "
#define MSG_MBL_6 " Piatto livellato! "
#define MSG_SET_HOME_OFFSETS "Setta offset home"
#define MSG_SET_ORIGIN "Imposta Origine"
#define MSG_PREHEAT_PLA "Preriscalda PLA"
......@@ -43,14 +43,14 @@
#define MSG_PREHEAT_GUM_ALL "Preri. GOMMA Tutto"
#define MSG_PREHEAT_GUM_BEDONLY "Preri. GOMMA Piatto"
#define MSG_PREHEAT_GUM_SETTINGS "Config. prer. GOMMA"
#define MSG_TOO_COLD_FOR_M600 "M600 Hotend troppo freddo per il cambio filo"
#define MSG_TOO_COLD_FOR_FILAMENTCHANGE "Hotend troppo freddo per il cambio filo"
#define MSG_COOLDOWN "Raffredda"
#define MSG_SWITCH_PS_ON "Accendi aliment."
#define MSG_SWITCH_PS_OFF "Spegni aliment."
#define MSG_EXTRUDE "Estrudi"
#define MSG_RETRACT "Ritrai"
#define MSG_MOVE_AXIS "Muovi Asse"
#define MSG_LEVEL_BED "Level bed"
#define MSG_LEVEL_BED "Liv. piatto"
#define MSG_MOVE_X "Muovi X"
#define MSG_MOVE_Y "Muovi Y"
#define MSG_MOVE_Z "Muovi Z"
......@@ -100,7 +100,7 @@
#define MSG_E3STEPS "E3steps/mm"
#define MSG_TEMPERATURE "Temperatura"
#define MSG_MOTION "Movimento"
#define MSG_VOLUMETRIC "Filamento"
#define MSG_FILAMENT "Filamento"
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
#define MSG_FILAMENT_SIZE_EXTRUDER "Diam. filo"
#define MSG_CONTRAST "Contrasto LCD"
......@@ -137,11 +137,12 @@
#define MSG_ZPROBE_OUT "Z probe out. bed"
#define MSG_POSITION_UNKNOWN "Home X/Y before Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset"
#define MSG_BABYSTEP_X "Babystep X"
#define MSG_BABYSTEP_Y "Babystep Y"
#define MSG_BABYSTEP_Z "Babystep Z"
#define MSG_ENDSTOP_ABORT "Finecorsa abort"
#define MSG_HEATING_FAILED_LCD "Heating failed"
#define MSG_BABYSTEP "Babystep"
#define MSG_BABYSTEP_X MSG_BABYSTEP " " MSG_X
#define MSG_BABYSTEP_Y MSG_BABYSTEP " " MSG_Y
#define MSG_BABYSTEP_Z MSG_BABYSTEP " " MSG_Z
#define MSG_ENDSTOP_ABORT "Finecorsa abort."
#define MSG_HEATING_FAILED_LCD "Riscaldamento fallito"
#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_ERR_MAXTEMP "Err: MAXTEMP"
......@@ -175,19 +176,19 @@
#define MSG_HEATING "Riscaldamento..."
#define MSG_HEATING_COMPLETE "Riscaldamento finito."
#define MSG_BED_HEATING "Bed Riscaldamento."
#define MSG_BED_DONE "Bed done."
#define MSG_BED_HEATING "Riscaldamento piatto."
#define MSG_BED_DONE "Piatto riscaldato."
// Extra
#define MSG_LASER "Laser Preset"
#define MSG_CONFIG "Configurazione"
#define MSG_E_BOWDEN_LENGTH "Extrude " STRINGIFY(BOWDEN_LENGTH) "mm"
#define MSG_R_BOWDEN_LENGTH "Retract " STRINGIFY(BOWDEN_LENGTH) "mm"
#define MSG_PURGE_XMM "Purge " STRINGIFY(LCD_PURGE_LENGTH) "mm"
#define MSG_RETRACT_XMM "Retract " STRINGIFY(LCD_RETRACT_LENGTH) "mm"
#define MSG_E_BOWDEN_LENGTH "Estrudi " STRINGIFY(BOWDEN_LENGTH) "mm"
#define MSG_R_BOWDEN_LENGTH "Retrai " STRINGIFY(BOWDEN_LENGTH) "mm"
#define MSG_PURGE_XMM "Purga " STRINGIFY(LCD_PURGE_LENGTH) "mm"
#define MSG_RETRACT_XMM "Retrai " STRINGIFY(LCD_RETRACT_LENGTH) "mm"
#define MSG_SAVED_POS "Posizione Salvata"
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
#define MSG_RESTORING_POS "Ripristino posizione"
#define MSG_INVALID_POS_SLOT "Slot invalido, slot totali: "
// Firmware Test
#ifdef FIRMWARE_TEST
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment