Commit e5722514 authored by MagoKimbra's avatar MagoKimbra

Merge remote-tracking branch 'refs/remotes/origin/dev'

parents 01e3b720 2797e1bc
...@@ -608,18 +608,35 @@ ...@@ -608,18 +608,35 @@
* * * *
* Add support for filament exchange support M600 * * Add support for filament exchange support M600 *
* * * *
* Uncomment FILAMENTCHANGEENABLE to enable this feature * * Uncomment FILAMENT CHANGE FEATURE to enable this feature *
* Requires display * * Requires display *
* * * *
**************************************************************************/ **************************************************************************/
//#define FILAMENTCHANGEENABLE //#define FILAMENT_CHANGE_FEATURE
#define FILAMENTCHANGE_XPOS 3 #define FILAMENT_CHANGE_X_POS 3 // X position of hotend
#define FILAMENTCHANGE_YPOS 3 #define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
#define FILAMENTCHANGE_ZADD 10 #define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
#define FILAMENTCHANGE_FIRSTRETRACT -2 #define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define FILAMENTCHANGE_FINALRETRACT -100 #define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#define FILAMENTCHANGE_PRINTEROFF 5 // Minutes #define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
// It is a short retract used immediately after print interrupt before move to filament exchange position
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 50 // Initial retract feedrate in mm/s
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
// Longer length for bowden printers to unload filament from whole bowden tube,
// shorter lenght for printers without bowden to unload filament from extruder only,
// 0 to disable unloading for manual unloading
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 100 // Unload filament feedrate in mm/s - filament unloading can be fast
#define FILAMENT_CHANGE_LOAD_LENGTH 100 // Load filament length over hotend in mm
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
// Short or zero length for printers without bowden where loading is not used
#define FILAMENT_CHANGE_LOAD_FEEDRATE 100 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
// 0 to disable for manual extrusion
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
// or until outcoming filament color is not clear for filament color change
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 5 // Extrude filament feedrate in mm/s - must be slower than load feedrate
#define FILAMENT_CHANGE_PRINTER_OFF 5 // Minutes
/**************************************************************************/ /**************************************************************************/
......
...@@ -229,6 +229,7 @@ double printer_usage_filament; ...@@ -229,6 +229,7 @@ double printer_usage_filament;
static float bed_safe_z; static float bed_safe_z;
static int loopcount; static int loopcount;
static bool home_all_axis = true; static bool home_all_axis = true;
static bool delta_leveling_in_progress = false;
#else #else
static bool home_all_axis = true; static bool home_all_axis = true;
#endif #endif
...@@ -252,7 +253,11 @@ double printer_usage_filament; ...@@ -252,7 +253,11 @@ double printer_usage_filament;
#endif #endif
#if HAS(FILRUNOUT) #if HAS(FILRUNOUT)
static bool filrunoutEnqueued = false; static bool filament_ran_out = false;
#endif
#if ENABLED(FILAMENT_CHANGE_FEATURE)
FilamentChangeMenuResponse filament_change_menu_response;
#endif #endif
#if MB(ALLIGATOR) #if MB(ALLIGATOR)
...@@ -274,10 +279,6 @@ double printer_usage_filament; ...@@ -274,10 +279,6 @@ double printer_usage_filament;
#endif #endif
#endif #endif
#if ENABLED(FILAMENTCHANGEENABLE)
bool filament_changing = false;
#endif
#if ENABLED(IDLE_OOZING_PREVENT) #if ENABLED(IDLE_OOZING_PREVENT)
unsigned long axis_last_activity = 0; unsigned long axis_last_activity = 0;
bool IDLE_OOZING_enabled = true; bool IDLE_OOZING_enabled = true;
...@@ -1337,6 +1338,7 @@ static void setup_for_endstop_move() { ...@@ -1337,6 +1338,7 @@ static void setup_for_endstop_move() {
saved_feedrate_multiplier = feedrate_multiplier; saved_feedrate_multiplier = feedrate_multiplier;
feedrate_multiplier = 100; feedrate_multiplier = 100;
refresh_cmd_timeout(); refresh_cmd_timeout();
if (DEBUGGING(INFO)) ECHO_LM(INFO, "setup_for_endstop_move > endstops.enable()");
endstops.enable(); endstops.enable();
} }
...@@ -1374,7 +1376,12 @@ static void do_blocking_move_to(float x, float y, float z) { ...@@ -1374,7 +1376,12 @@ static void do_blocking_move_to(float x, float y, float z) {
destination[X_AXIS] = x; destination[X_AXIS] = x;
destination[Y_AXIS] = y; destination[Y_AXIS] = y;
destination[Z_AXIS] = z; destination[Z_AXIS] = z;
if (x == current_position[X_AXIS] && y == current_position[Y_AXIS])
prepare_move_raw(); // this will also set_current_to_destination prepare_move_raw(); // this will also set_current_to_destination
else
prepare_move(); // this will also set_current_to_destination
st_synchronize(); st_synchronize();
#else #else
...@@ -2129,14 +2136,14 @@ inline void do_blocking_move_to_z(float z) { do_blocking_move_to(current_positio ...@@ -2129,14 +2136,14 @@ inline void do_blocking_move_to_z(float z) { do_blocking_move_to(current_positio
endstop_adj[i] -= high_endstop; endstop_adj[i] -= high_endstop;
} }
sw_endstop_max[Z_AXIS] -= high_endstop; sw_endstop_max[Z_AXIS] -= high_endstop;
} }/*
else if (high_endstop < 0) { else if (high_endstop < 0) {
ECHO_LMV(DB, "Increment Build height by ", abs(high_endstop)); ECHO_LMV(DB, "Increment Build height by ", abs(high_endstop));
for(uint8_t i = 0; i < 3; i++) { for(uint8_t i = 0; i < 3; i++) {
endstop_adj[i] -= high_endstop; endstop_adj[i] -= high_endstop;
} }
sw_endstop_max[Z_AXIS] -= high_endstop; sw_endstop_max[Z_AXIS] -= high_endstop;
} }*/
set_delta_constants(); set_delta_constants();
} }
...@@ -2578,7 +2585,7 @@ inline void do_blocking_move_to_z(float z) { do_blocking_move_to(current_positio ...@@ -2578,7 +2585,7 @@ inline void do_blocking_move_to_z(float z) { do_blocking_move_to(current_positio
static void calibration_report() { static void calibration_report() {
// Display Report // Display Report
ECHO_LM(DB, "|\tZ-Tower\t\t\tEndstop Offsets"); ECHO_LM(DB, "| \tZ-Tower\t\t\tEndstop Offsets");
ECHO_SM(DB, "| \t"); ECHO_SM(DB, "| \t");
if (bed_level_z >= 0) ECHO_M(" "); if (bed_level_z >= 0) ECHO_M(" ");
...@@ -2622,12 +2629,6 @@ inline void do_blocking_move_to_z(float z) { do_blocking_move_to(current_positio ...@@ -2622,12 +2629,6 @@ inline void do_blocking_move_to_z(float z) { do_blocking_move_to(current_positio
} }
static void home_delta_axis() { static void home_delta_axis() {
saved_feedrate = feedrate;
saved_feedrate_multiplier = feedrate_multiplier;
feedrate_multiplier = 100;
refresh_cmd_timeout();
endstops.enable();
set_destination_to_current(); set_destination_to_current();
...@@ -2654,13 +2655,6 @@ inline void do_blocking_move_to_z(float z) { do_blocking_move_to(current_positio ...@@ -2654,13 +2655,6 @@ inline void do_blocking_move_to_z(float z) { do_blocking_move_to(current_positio
sync_plan_position_delta(); sync_plan_position_delta();
#if ENABLED(ENDSTOPS_ONLY_FOR_HOMING)
endstops.enable(false);
#endif
feedrate = saved_feedrate;
feedrate_multiplier = saved_feedrate_multiplier;
refresh_cmd_timeout();
endstops.hit_on_purpose(); // clear endstop hit flags endstops.hit_on_purpose(); // clear endstop hit flags
} }
...@@ -3333,26 +3327,7 @@ inline void gcode_G28() { ...@@ -3333,26 +3327,7 @@ inline void gcode_G28() {
* all axis have to home at the same time * all axis have to home at the same time
*/ */
// Pretend the current position is 0,0,0 home_delta_axis();
for (int i = X_AXIS; i <= Z_AXIS; i++) current_position[i] = 0;
sync_plan_position();
// Move all carriages up together until the first endstop is hit.
for (int i = X_AXIS; i <= Z_AXIS; i++) destination[i] = 3 * (Z_MAX_LENGTH);
feedrate = 1.732 * homing_feedrate[X_AXIS];
line_to_destination();
st_synchronize();
endstops.hit_on_purpose(); // clear endstop hit flags
// Destination reached
for (int i = X_AXIS; i <= Z_AXIS; i++) current_position[i] = destination[i];
// take care of back off and rehome now we are all at the top
HOMEAXIS(X);
HOMEAXIS(Y);
HOMEAXIS(Z);
sync_plan_position_delta();
if (DEBUGGING(INFO)) if (DEBUGGING(INFO))
DEBUG_POS("(DELTA)", current_position); DEBUG_POS("(DELTA)", current_position);
...@@ -4185,23 +4160,23 @@ inline void gcode_G28() { ...@@ -4185,23 +4160,23 @@ inline void gcode_G28() {
return; return;
} }
saved_feedrate = feedrate; setup_for_endstop_move();
saved_feedrate_multiplier = feedrate_multiplier;
feedrate_multiplier = 100;
if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS] || !axis_homed[Z_AXIS]) if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS] || !axis_homed[Z_AXIS])
home_delta_axis(); home_delta_axis();
delta_leveling_in_progress = true;
deploy_z_probe(); deploy_z_probe();
bed_safe_z = current_position[Z_AXIS]; bed_safe_z = current_position[Z_AXIS];
calibrate_print_surface(); calibrate_print_surface();
retract_z_probe(); retract_z_probe();
clean_up_after_endstop_move(); clean_up_after_endstop_move();
KEEPALIVE_STATE(IN_HANDLER);
if (DEBUGGING(INFO)) ECHO_LM(INFO, "<<< gcode_G29"); if (DEBUGGING(INFO)) ECHO_LM(INFO, "<<< gcode_G29");
delta_leveling_in_progress = false;
report_current_position(); report_current_position();
KEEPALIVE_STATE(IN_HANDLER);
} }
/* G30: Delta AutoCalibration /* G30: Delta AutoCalibration
...@@ -4218,9 +4193,7 @@ inline void gcode_G28() { ...@@ -4218,9 +4193,7 @@ inline void gcode_G28() {
inline void gcode_G30() { inline void gcode_G30() {
if (DEBUGGING(INFO)) ECHO_LM(INFO, "gcode_G30 >>>"); if (DEBUGGING(INFO)) ECHO_LM(INFO, "gcode_G30 >>>");
saved_feedrate = feedrate; setup_for_endstop_move();
saved_feedrate_multiplier = feedrate_multiplier;
feedrate_multiplier = 100;
// Reset the bed level array // Reset the bed level array
reset_bed_level(); reset_bed_level();
...@@ -4228,7 +4201,9 @@ inline void gcode_G28() { ...@@ -4228,7 +4201,9 @@ inline void gcode_G28() {
// Homing and deploy z probe // Homing and deploy z probe
if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS] || !axis_homed[Z_AXIS]) if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS] || !axis_homed[Z_AXIS])
home_delta_axis(); home_delta_axis();
deploy_z_probe(); deploy_z_probe();
delta_leveling_in_progress = true;
bed_safe_z = current_position[Z_AXIS]; bed_safe_z = current_position[Z_AXIS];
if (code_seen('X') and code_seen('Y')) { if (code_seen('X') and code_seen('Y')) {
...@@ -4361,7 +4336,7 @@ inline void gcode_G28() { ...@@ -4361,7 +4336,7 @@ inline void gcode_G28() {
// Tower positions have been changed .. home to endstops // Tower positions have been changed .. home to endstops
ECHO_LM(DB, "Tower Positions changed .. Homing"); ECHO_LM(DB, "Tower Positions changed .. Homing");
home_delta_axis(); home_delta_axis();
deploy_z_probe(); do_blocking_move_to_z(z_probe_deploy_start_location[Z_AXIS]);
} }
else { else {
ECHO_LM(DB, "Checking Diagonal Rod Length"); ECHO_LM(DB, "Checking Diagonal Rod Length");
...@@ -4369,7 +4344,7 @@ inline void gcode_G28() { ...@@ -4369,7 +4344,7 @@ inline void gcode_G28() {
// If diagonal rod length has been changed .. home to endstops // If diagonal rod length has been changed .. home to endstops
ECHO_LM(DB, "Diagonal Rod Length changed .. Homing"); ECHO_LM(DB, "Diagonal Rod Length changed .. Homing");
home_delta_axis(); home_delta_axis();
deploy_z_probe(); do_blocking_move_to_z(z_probe_deploy_start_location[Z_AXIS]);
} }
} }
bed_probe_all(); bed_probe_all();
...@@ -4403,10 +4378,11 @@ inline void gcode_G28() { ...@@ -4403,10 +4378,11 @@ inline void gcode_G28() {
clean_up_after_endstop_move(); clean_up_after_endstop_move();
KEEPALIVE_STATE(IN_HANDLER);
if (DEBUGGING(INFO)) ECHO_LM(INFO, "<<< gcode_G30"); if (DEBUGGING(INFO)) ECHO_LM(INFO, "<<< gcode_G30");
delta_leveling_in_progress = false;
report_current_position(); report_current_position();
KEEPALIVE_STATE(IN_HANDLER);
} }
#endif // DELTA && Z_PROBE_ENDSTOP #endif // DELTA && Z_PROBE_ENDSTOP
...@@ -4604,7 +4580,7 @@ inline void gcode_M11() { ...@@ -4604,7 +4580,7 @@ inline void gcode_M11() {
enqueue_and_echo_commands_P(PSTR(STOP_PRINTING_SCRIPT)); enqueue_and_echo_commands_P(PSTR(STOP_PRINTING_SCRIPT));
#endif #endif
#if HAS(FILRUNOUT) #if HAS(FILRUNOUT)
filrunoutEnqueued = false; filament_ran_out = false;
ECHO_LM(DB, "Filament runout deactivated."); ECHO_LM(DB, "Filament runout deactivated.");
#endif #endif
} }
...@@ -4615,7 +4591,7 @@ inline void gcode_M11() { ...@@ -4615,7 +4591,7 @@ inline void gcode_M11() {
enqueue_and_echo_commands_P(PSTR(START_PRINTING_SCRIPT)); enqueue_and_echo_commands_P(PSTR(START_PRINTING_SCRIPT));
#endif #endif
#if HAS(FILRUNOUT) #if HAS(FILRUNOUT)
filrunoutEnqueued = false; filament_ran_out = false;
ECHO_LM(DB, "Filament runout activated."); ECHO_LM(DB, "Filament runout activated.");
ECHO_S(RESUME); ECHO_S(RESUME);
ECHO_E; ECHO_E;
...@@ -4689,7 +4665,7 @@ inline void gcode_M17() { ...@@ -4689,7 +4665,7 @@ inline void gcode_M17() {
*/ */
inline void gcode_M26() { inline void gcode_M26() {
if (card.cardOK && code_seen('S')) if (card.cardOK && code_seen('S'))
card.setIndex(code_value_short()); card.setIndex(code_value_long());
} }
/** /**
...@@ -6932,7 +6908,7 @@ inline void gcode_M503() { ...@@ -6932,7 +6908,7 @@ inline void gcode_M503() {
} }
#endif // HEATER_USES_AD595 #endif // HEATER_USES_AD595
#if ENABLED(FILAMENTCHANGEENABLE) #if ENABLED(FILAMENT_CHANGE_FEATURE)
/** /**
* M600: Pause for filament change * M600: Pause for filament change
* *
...@@ -6952,57 +6928,68 @@ inline void gcode_M503() { ...@@ -6952,57 +6928,68 @@ inline void gcode_M503() {
return; return;
} }
// Show initial message and wait for synchronize steppers
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_INIT);
st_synchronize();
float lastpos[NUM_AXIS]; float lastpos[NUM_AXIS];
filament_changing = true; // Save current position of all axes
for (int i = 0; i < NUM_AXIS; i++) for (int i = 0; i < NUM_AXIS; i++)
lastpos[i] = destination[i] = current_position[i]; lastpos[i] = destination[i] = current_position[i];
#if MECH(DELTA) #if MECH(DELTA)
float fr60 = feedrate / 60;
#define RUNPLAN calculate_delta(destination); \ #define RUNPLAN calculate_delta(destination); \
plan_buffer_line(delta[TOWER_1], delta[TOWER_2], delta[TOWER_3], destination[E_AXIS], fr60, active_extruder, active_driver); plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], destination[E_AXIS], FILAMENT_CHANGE_XY_FEEDRATE * 60, active_extruder, active_driver);
#else #else
#define RUNPLAN line_to_destination(); #define RUNPLAN line_to_destination(FILAMENT_CHANGE_XY_FEEDRATE * 60);
#endif #endif
//retract by E KEEPALIVE_STATE(IN_HANDLER);
// Initial retract before move to filament change position
if (code_seen('E')) destination[E_AXIS] += code_value(); if (code_seen('E')) destination[E_AXIS] += code_value();
#if ENABLED(FILAMENTCHANGE_FIRSTRETRACT) #if ENABLED(FILAMENT_CHANGE_RETRACT_LENGTH)
else destination[E_AXIS] += FILAMENTCHANGE_FIRSTRETRACT; else destination[E_AXIS] += FILAMENT_CHANGE_RETRACT_LENGTH;
#endif #endif
line_to_destination(FILAMENT_CHANGE_RETRACT_FEEDRATE * 60);
RUNPLAN // Lift Z axis
//lift Z
if (code_seen('Z')) destination[Z_AXIS] += code_value(); if (code_seen('Z')) destination[Z_AXIS] += code_value();
#if ENABLED(FILAMENTCHANGE_ZADD) #if ENABLED(FILAMENT_CHANGE_Z_ADD)
else destination[Z_AXIS] += FILAMENTCHANGE_ZADD; else {
if (destination[Z_AXIS] + FILAMENT_CHANGE_Z_ADD > Z_MAX_POS)
destination[Z_AXIS] = Z_MAX_POS;
else
destination[Z_AXIS] += FILAMENT_CHANGE_Z_ADD;
}
#endif #endif
RUNPLAN RUNPLAN
//move xy // Move XY axes to filament exchange position
if (code_seen('X')) destination[X_AXIS] = code_value(); if (code_seen('X')) destination[X_AXIS] = code_value();
#if ENABLED(FILAMENTCHANGE_XPOS) #if ENABLED(FILAMENT_CHANGE_X_POS)
else destination[X_AXIS] = FILAMENTCHANGE_XPOS; else destination[X_AXIS] = FILAMENT_CHANGE_X_POS;
#endif #endif
if (code_seen('Y')) destination[Y_AXIS] = code_value(); if (code_seen('Y')) destination[Y_AXIS] = code_value();
#if ENABLED(FILAMENTCHANGE_YPOS) #if ENABLED(FILAMENT_CHANGE_Y_POS)
else destination[Y_AXIS] = FILAMENTCHANGE_YPOS; else destination[Y_AXIS] = FILAMENT_CHANGE_Y_POS;
#endif #endif
RUNPLAN RUNPLAN
st_synchronize();
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_UNLOAD);
if (code_seen('L')) destination[E_AXIS] += code_value(); if (code_seen('L')) destination[E_AXIS] += code_value();
#if ENABLED(FILAMENTCHANGE_FINALRETRACT) #if ENABLED(FILAMENT_CHANGE_UNLOAD_LENGTH)
else destination[E_AXIS] += FILAMENTCHANGE_FINALRETRACT; else destination[E_AXIS] += FILAMENT_CHANGE_UNLOAD_LENGTH;
#endif #endif
line_to_destination(FILAMENT_CHANGE_UNLOAD_FEEDRATE * 60);
RUNPLAN // Synchronize steppers and then disable extruders steppers for manual filament changing
//finish moves
st_synchronize(); st_synchronize();
//disable extruder steppers so filament can be removed //disable extruder steppers so filament can be removed
disable_e(); disable_e();
...@@ -7018,31 +7005,34 @@ inline void gcode_M503() { ...@@ -7018,31 +7005,34 @@ inline void gcode_M503() {
int old_target_temperature_bed = target_temperature_bed; int old_target_temperature_bed = target_temperature_bed;
millis_t last_set = millis(); millis_t last_set = millis();
PRESSBUTTON: // Wait for filament insert by user and press button
KEEPALIVE_STATE(PAUSED_FOR_USER); lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_INSERT);
LCD_ALERTMESSAGEPGM(MSG_FILAMENTCHANGE);
while (!lcd_clicked()) { while (!lcd_clicked()) {
idle(); if ((millis() - last_set > 60000) && cnt <= FILAMENT_CHANGE_PRINTER_OFF) beep = true;
if ((millis() - last_set > 60000) && cnt <= FILAMENTCHANGE_PRINTEROFF) beep = true; if (cnt >= FILAMENT_CHANGE_PRINTER_OFF && !sleep) {
if (cnt >= FILAMENTCHANGE_PRINTEROFF && !sleep) {
disable_all_heaters(); disable_all_heaters();
disable_all_steppers();
sleep = true; sleep = true;
lcd_reset_alert_level(); lcd_reset_alert_level();
LCD_ALERTMESSAGEPGM("Zzzz Zzzz Zzzz"); LCD_ALERTMESSAGEPGM("Zzzz Zzzz Zzzz");
} }
if (beep) { if (beep) {
#if HAS(BUZZER) #if HAS(BUZZER)
for(uint8_t i = 0; i < 3; i++) buzz(100, 1000); for(uint8_t i = 0; i < 3; i++) buzz(300, 1000);
#endif #endif
last_set = millis(); last_set = millis();
beep = false; beep = false;
++cnt; ++cnt;
} }
idle(true);
} // while(!lcd_clicked) } // while(!lcd_clicked)
KEEPALIVE_STATE(IN_HANDLER);
lcd_quick_feedback(); // click sound feedback delay(100);
lcd_reset_alert_level(); //reset LCD alert message while (lcd_clicked()) idle(true);
delay(100);
// Reset LCD alert message
lcd_reset_alert_level();
if (sleep) { if (sleep) {
enable_all_steppers(); // Enable all stepper enable_all_steppers(); // Enable all stepper
...@@ -7052,48 +7042,67 @@ inline void gcode_M503() { ...@@ -7052,48 +7042,67 @@ inline void gcode_M503() {
} }
setTargetBed(old_target_temperature_bed); setTargetBed(old_target_temperature_bed);
wait_bed(); wait_bed();
sleep = false;
beep = true;
cnt = 0;
goto PRESSBUTTON;
} }
//return to normal // Show load message
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_LOAD);
// Load filament
if (code_seen('L')) destination[E_AXIS] -= code_value(); if (code_seen('L')) destination[E_AXIS] -= code_value();
#if ENABLED(FILAMENTCHANGE_FINALRETRACT) #if ENABLED(FILAMENT_CHANGE_LOAD_LENGTH)
else destination[E_AXIS] -= FILAMENTCHANGE_FINALRETRACT; else destination[E_AXIS] -= FILAMENT_CHANGE_LOAD_LENGTH;
#endif #endif
current_position[E_AXIS] = destination[E_AXIS]; //the long retract of L is compensated by manual filament feeding line_to_destination(FILAMENT_CHANGE_LOAD_FEEDRATE * 60);
plan_set_e_position(current_position[E_AXIS]); st_synchronize();
RUNPLAN // should do nothing #if ENABLED(FILAMENT_CHANGE_EXTRUDE_LENGTH)
do {
// Extrude filament to get into hotend
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_EXTRUDE);
destination[E_AXIS] += FILAMENT_CHANGE_EXTRUDE_LENGTH;
line_to_destination(FILAMENT_CHANGE_EXTRUDE_FEEDRATE * 60);
st_synchronize();
// Ask user if more filament should be extruded
KEEPALIVE_STATE(PAUSED_FOR_USER);
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_OPTION);
while (filament_change_menu_response == FILAMENT_CHANGE_RESPONSE_WAIT_FOR) idle(true);
KEEPALIVE_STATE(IN_HANDLER);
} while (filament_change_menu_response != FILAMENT_CHANGE_RESPONSE_RESUME_PRINT);
#endif
lcd_reset_alert_level(); lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_RESUME);
KEEPALIVE_STATE(IN_HANDLER);
// Set extruder to saved position
current_position[E_AXIS] = lastpos[E_AXIS];
destination[E_AXIS] = lastpos[E_AXIS];
plan_set_e_position(current_position[E_AXIS]);
#if MECH(DELTA) #if MECH(DELTA)
// Move XYZ to starting position, then E // Move XYZ to starting position, then E
calculate_delta(lastpos); calculate_delta(lastpos);
plan_buffer_line(delta[TOWER_1], delta[TOWER_2], delta[TOWER_3], destination[E_AXIS], fr60, active_extruder, active_driver); plan_buffer_line(delta[TOWER_1], delta[TOWER_2], delta[TOWER_3], destination[E_AXIS], FILAMENT_CHANGE_XY_FEEDRATE * 60, active_extruder, active_driver);
plan_buffer_line(delta[TOWER_1], delta[TOWER_2], delta[TOWER_3], lastpos[E_AXIS], fr60, active_extruder, active_driver); plan_buffer_line(delta[TOWER_1], delta[TOWER_2], delta[TOWER_3], lastpos[E_AXIS], FILAMENT_CHANGE_XY_FEEDRATE * 60, active_extruder, active_driver);
#else #else
// Move XY to starting position, then Z, then E // Move XY to starting position, then Z, then E
destination[X_AXIS] = lastpos[X_AXIS]; destination[X_AXIS] = lastpos[X_AXIS];
destination[Y_AXIS] = lastpos[Y_AXIS]; destination[Y_AXIS] = lastpos[Y_AXIS];
line_to_destination(); line_to_destination(FILAMENT_CHANGE_XY_FEEDRATE * 60);
destination[Z_AXIS] = lastpos[Z_AXIS]; destination[Z_AXIS] = lastpos[Z_AXIS];
line_to_destination(); line_to_destination(FILAMENT_CHANGE_Z_FEEDRATE * 60);
destination[E_AXIS] = lastpos[E_AXIS];
line_to_destination();
#endif #endif
st_synchronize();
#if HAS(FILRUNOUT) #if HAS(FILRUNOUT)
filrunoutEnqueued = false; filament_ran_out = false;
#endif #endif
filament_changing = false; // Show status screen
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_STATUS);
} }
#endif //FILAMENTCHANGEENABLE #endif // FILAMENT_CHANGE_FEATURE
#if ENABLED(DUAL_X_CARRIAGE) #if ENABLED(DUAL_X_CARRIAGE)
/** /**
...@@ -8108,7 +8117,7 @@ void process_next_command() { ...@@ -8108,7 +8117,7 @@ void process_next_command() {
gcode_M595(); break; gcode_M595(); break;
#endif #endif
#if ENABLED(FILAMENTCHANGEENABLE) #if ENABLED(FILAMENT_CHANGE_FEATURE)
case 600: // Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal] case 600: // Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
gcode_M600(); break; gcode_M600(); break;
#endif #endif
...@@ -8319,7 +8328,8 @@ static void report_current_position() { ...@@ -8319,7 +8328,8 @@ static void report_current_position() {
#endif #endif
calculate_delta(target); calculate_delta(target);
adjust_delta(target);
if (!delta_leveling_in_progress) adjust_delta(target);
if (DEBUGGING(DEBUG)) { if (DEBUGGING(DEBUG)) {
DEBUG_POS("prepare_move_delta", target); DEBUG_POS("prepare_move_delta", target);
...@@ -8706,13 +8716,13 @@ void plan_arc( ...@@ -8706,13 +8716,13 @@ void plan_arc(
* Standard idle routine keeps the machine alive * Standard idle routine keeps the machine alive
*/ */
void idle( void idle(
#if ENABLED(FILAMENTCHANGEENABLE) #if ENABLED(FILAMENT_CHANGE_FEATURE)
bool no_stepper_sleep/*=false*/ bool no_stepper_sleep/*=false*/
#endif #endif
) { ) {
manage_heater(); manage_heater();
manage_inactivity( manage_inactivity(
#if ENABLED(FILAMENTCHANGEENABLE) #if ENABLED(FILAMENT_CHANGE_FEATURE)
no_stepper_sleep no_stepper_sleep
#endif #endif
); );
...@@ -8983,8 +8993,8 @@ void kill(const char* lcd_msg) { ...@@ -8983,8 +8993,8 @@ void kill(const char* lcd_msg) {
#if HAS(FILRUNOUT) #if HAS(FILRUNOUT)
void filrunout() { void filrunout() {
if (!filrunoutEnqueued) { if (!filament_ran_out) {
filrunoutEnqueued = true; filament_ran_out = true;
enqueue_and_echo_commands_P(PSTR(FILAMENT_RUNOUT_SCRIPT)); enqueue_and_echo_commands_P(PSTR(FILAMENT_RUNOUT_SCRIPT));
st_synchronize(); st_synchronize();
} }
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
void get_command(); void get_command();
void idle( void idle(
#if ENABLED(FILAMENTCHANGEENABLE) #if ENABLED(FILAMENT_CHANGE_FEATURE)
bool no_stepper_sleep=false // pass true to keep steppers from disabling on timeout bool no_stepper_sleep=false // pass true to keep steppers from disabling on timeout
#endif #endif
); );
...@@ -196,6 +196,15 @@ extern int fanSpeed; ...@@ -196,6 +196,15 @@ extern int fanSpeed;
extern int meas_delay_cm; //delay distance extern int meas_delay_cm; //delay distance
#endif #endif
#if ENABLED(FILAMENT_CHANGE_FEATURE)
enum FilamentChangeMenuResponse {
FILAMENT_CHANGE_RESPONSE_WAIT_FOR,
FILAMENT_CHANGE_RESPONSE_EXTRUDE_MORE,
FILAMENT_CHANGE_RESPONSE_RESUME_PRINT
};
extern FilamentChangeMenuResponse filament_change_menu_response;
#endif
#if HAS(POWER_CONSUMPTION_SENSOR) #if HAS(POWER_CONSUMPTION_SENSOR)
extern float power_consumption_meas; //holds the power consumption as accurately measured extern float power_consumption_meas; //holds the power consumption as accurately measured
extern unsigned long power_consumption_hour; //holds the power consumption per hour as accurately measured extern unsigned long power_consumption_hour; //holds the power consumption per hour as accurately measured
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Aragonese * Aragonese
* *
...@@ -13,7 +35,7 @@ ...@@ -13,7 +35,7 @@
#define WELCOME_MSG MACHINE_NAME " parada." #define WELCOME_MSG MACHINE_NAME " parada."
#define MSG_SD "SD" #define MSG_SD "Tarcheta"
#define MSG_SD_INSERTED MSG_SD " colocada" #define MSG_SD_INSERTED MSG_SD " colocada"
#define MSG_SD_REMOVED MSG_SD " retirada" #define MSG_SD_REMOVED MSG_SD " retirada"
#define MSG_MAIN "Menu prencipal" #define MSG_MAIN "Menu prencipal"
...@@ -34,20 +56,19 @@ ...@@ -34,20 +56,19 @@
#define MSG_ONFOR "On x:" #define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:" #define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:" #define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Prec." #define MSG_PREHEAT "Precalentar"
#define MSG_CONGIG "conf." #define MSG_PREHEAT_PLA "Precalentar PLA"
#define MSG_PREHEAT_PLA MSG_PREHEAT " PLA" #define MSG_PREHEAT_PLA_ALL "Precalentar PLA a"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " All" #define MSG_PREHEAT_PLA_BEDONLY "Prec. PLA Base"
#define MSG_PREHEAT_PLA_BEDONLY MSG_PREHEAT_PLA " Bed" #define MSG_PREHEAT_PLA_SETTINGS "Achustar tem. PLA"
#define MSG_PREHEAT_PLA_SETTINGS MSG_CONGIG " PLA" #define MSG_PREHEAT_ABS "Precalentar ABS"
#define MSG_PREHEAT_ABS MSG_PREHEAT " ABS" #define MSG_PREHEAT_ABS_ALL "Precalentar ABS a"
#define MSG_PREHEAT_ABS_ALL MSG_PREHEAT_ABS " All" #define MSG_PREHEAT_ABS_BEDONLY "Prec. ABS Base"
#define MSG_PREHEAT_ABS_BEDONLY MSG_PREHEAT_ABS " Bed" #define MSG_PREHEAT_ABS_SETTINGS "Achustar tem. ABS"
#define MSG_PREHEAT_ABS_SETTINGS MSG_CONGIG " ABS" #define MSG_PREHEAT_GUM "Precalentar GUM"
#define MSG_PREHEAT_GUM MSG_PREHEAT " GUM" #define MSG_PREHEAT_GUM_ALL "Precalentar GUM a"
#define MSG_PREHEAT_GUM_ALL MSG_PREHEAT_GUM " All" #define MSG_PREHEAT_GUM_BEDONLY "Achustar tem. "
#define MSG_PREHEAT_GUM_BEDONLY MSG_PREHEAT_GUM " Bed" #define MSG_PREHEAT_GUM_SETTINGS "Achustar tem. GUM"
#define MSG_PREHEAT_GUM_SETTINGS MSG_CONGIG " GUM"
#define MSG_TOO_COLD_FOR_FILAMENTCHANGE "Hotend too cold to change filament" #define MSG_TOO_COLD_FOR_FILAMENTCHANGE "Hotend too cold to change filament"
#define MSG_COOLDOWN "Enfriar" #define MSG_COOLDOWN "Enfriar"
#define MSG_SWITCH_PS_ON "Enchegar Fuent" #define MSG_SWITCH_PS_ON "Enchegar Fuent"
...@@ -69,8 +90,8 @@ ...@@ -69,8 +90,8 @@
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact" #define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
#define MSG_IDLEOOZING "Anti oozing" #define MSG_IDLEOOZING "Anti oozing"
#define MSG_AUTOTEMP "Autotemp" #define MSG_AUTOTEMP "Autotemp"
#define MSG_ON "ON " #define MSG_ON "On"
#define MSG_OFF "OFF" #define MSG_OFF "Off"
#define MSG_PID_P "PID-P" #define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I" #define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D" #define MSG_PID_D "PID-D"
...@@ -82,13 +103,13 @@ ...@@ -82,13 +103,13 @@
#define MSG_VXY_JERK "Vxy-jerk" #define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk" #define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ves-jerk" #define MSG_VE_JERK "Ves-jerk"
#define MSG_VMAX "Vmax " #define MSG_VMAX "Vmax"
#define MSG_X "X" #define MSG_X "X"
#define MSG_Y "Y" #define MSG_Y "Y"
#define MSG_Z "Z" #define MSG_Z "Z"
#define MSG_E "E" #define MSG_E "E"
#define MSG_MOVE "Move" #define MSG_MOVE "Mover"
#define MSG_MOVE_AXIS MSG_MOVE " axis" #define MSG_MOVE_AXIS MSG_MOVE " Eixes"
#define MSG_MOVE_X MSG_MOVE " " MSG_X #define MSG_MOVE_X MSG_MOVE " " MSG_X
#define MSG_MOVE_Y MSG_MOVE " " MSG_Y #define MSG_MOVE_Y MSG_MOVE " " MSG_Y
#define MSG_MOVE_Z MSG_MOVE " " MSG_Z #define MSG_MOVE_Z MSG_MOVE " " MSG_Z
...@@ -98,7 +119,7 @@ ...@@ -98,7 +119,7 @@
#define MSG_MOVE_E "Extruder" #define MSG_MOVE_E "Extruder"
#define MSG_VMIN "Vmin" #define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min" #define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax " #define MSG_AMAX "Amax"
#define MSG_A_RETRACT "A-retrac." #define MSG_A_RETRACT "A-retrac."
#define MSG_A_TRAVEL "A-travel" #define MSG_A_TRAVEL "A-travel"
#define MSG_XSTEPS MSG_X " trangos/mm" #define MSG_XSTEPS MSG_X " trangos/mm"
...@@ -124,8 +145,8 @@ ...@@ -124,8 +145,8 @@
#define MSG_PAUSE_PRINT "Pausar impresion" #define MSG_PAUSE_PRINT "Pausar impresion"
#define MSG_RESUME_PRINT "Contin. impresion" #define MSG_RESUME_PRINT "Contin. impresion"
#define MSG_STOP_PRINT "Detener Impresion" #define MSG_STOP_PRINT "Detener Impresion"
#define MSG_CARD_MENU "Menu de " MSG_SD #define MSG_CARD_MENU "Menu de SD"
#define MSG_NO_CARD "No i hai " MSG_SD #define MSG_NO_CARD "No i hai tarcheta"
#define MSG_DWELL "Reposo..." #define MSG_DWELL "Reposo..."
#define MSG_USERWAIT "Asperan. ordines" #define MSG_USERWAIT "Asperan. ordines"
#define MSG_RESUMING "Contin. impresion" #define MSG_RESUMING "Contin. impresion"
...@@ -134,7 +155,7 @@ ...@@ -134,7 +155,7 @@
#define MSG_KILLED "ATURADA D'EMERCH." #define MSG_KILLED "ATURADA D'EMERCH."
#define MSG_STOPPED "ATURADA." #define MSG_STOPPED "ATURADA."
#define MSG_CONTROL_RETRACT "Retraer mm" #define MSG_CONTROL_RETRACT "Retraer mm"
#define MSG_CONTROL_RETRACT_SWAP "Swap Re. mm" #define MSG_CONTROL_RETRACT_SWAP "Swap Retraer mm"
#define MSG_CONTROL_RETRACTF "Retraer F" #define MSG_CONTROL_RETRACTF "Retraer F"
#define MSG_CONTROL_RETRACT_ZLIFT "Devantar mm" #define MSG_CONTROL_RETRACT_ZLIFT "Devantar mm"
#define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" #define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm"
...@@ -142,8 +163,8 @@ ...@@ -142,8 +163,8 @@
#define MSG_CONTROL_RETRACT_RECOVERF "DesRet F" #define MSG_CONTROL_RETRACT_RECOVERF "DesRet F"
#define MSG_AUTORETRACT "AutoRetr." #define MSG_AUTORETRACT "AutoRetr."
#define MSG_FILAMENTCHANGE "Cambear" #define MSG_FILAMENTCHANGE "Cambear"
#define MSG_INIT_SDCARD "Encetan. " MSG_SD #define MSG_INIT_SDCARD "Encetan. tarcheta"
#define MSG_CNG_SDCARD "Cambiar " MSG_SD #define MSG_CNG_SDCARD "Cambiar tarcheta"
#define MSG_ZPROBE_OUT "Z probe out. bed" #define MSG_ZPROBE_OUT "Z probe out. bed"
#define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_POSITION_UNKNOWN "Home X/Y before Z"
#define MSG_ZPROBE_ZOFFSET "Z Offset" #define MSG_ZPROBE_ZOFFSET "Z Offset"
...@@ -155,7 +176,7 @@ ...@@ -155,7 +176,7 @@
#define MSG_HEATING_FAILED_LCD "Heating failed" #define MSG_HEATING_FAILED_LCD "Heating failed"
#define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR" #define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_HOTEND_AD595 "HOTEND AD595 Offset & Gain" #define MSG_AD595 "AD595 Offset & Gain"
#define MSG_ERR_MAXTEMP "MAXTEMP ERROR" #define MSG_ERR_MAXTEMP "MAXTEMP ERROR"
#define MSG_ERR_MINTEMP "MINTEMP ERROR" #define MSG_ERR_MINTEMP "MINTEMP ERROR"
#define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR" #define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR"
...@@ -212,9 +233,13 @@ ...@@ -212,9 +233,13 @@
#if ENABLED(RFID_MODULE) #if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E" #define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: " #define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_TYPE "Type: "
#define MSG_RFID_COLOR "Color: " #define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: " #define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: " #define MSG_RFID_TEMP_HOTEND "Temperature Hotend: "
#define MSG_RFID_TEMP_BED "Temperature Bed: "
#define MSG_RFID_TEMP_USER_HOTEND "User temperature Hotend: "
#define MSG_RFID_TEMP_USER_BED "User temperatura Bed: "
#define MSG_RFID_DENSITY "Density: " #define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: " #define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif #endif
......
/** /**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Bulgarian * Bulgarian
* *
* LCD Menu Messages * LCD Menu Messages
...@@ -13,9 +35,8 @@ ...@@ -13,9 +35,8 @@
#define WELCOME_MSG MACHINE_NAME " Готов." #define WELCOME_MSG MACHINE_NAME " Готов."
#define MSG_SD "SD" #define MSG_SD_INSERTED "Картата е поставена"
#define MSG_SD_INSERTED MSG_SD " поставена" #define MSG_SD_REMOVED "Картата е извадена"
#define MSG_SD_REMOVED MSG_SD " извадена"
#define MSG_MAIN "Меню" #define MSG_MAIN "Меню"
#define MSG_AUTOSTART "Автостарт" #define MSG_AUTOSTART "Автостарт"
#define MSG_DISABLE_STEPPERS "Изкл. двигатели" #define MSG_DISABLE_STEPPERS "Изкл. двигатели"
...@@ -155,7 +176,7 @@ ...@@ -155,7 +176,7 @@
#define MSG_HEATING_FAILED_LCD "Heating failed" #define MSG_HEATING_FAILED_LCD "Heating failed"
#define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR" #define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_HOTEND_AD595 "HOTEND AD595 Offset & Gain" #define MSG_AD595 "AD595 Offset & Gain"
#define MSG_ERR_MAXTEMP "MAXTEMP ERROR" #define MSG_ERR_MAXTEMP "MAXTEMP ERROR"
#define MSG_ERR_MINTEMP "MINTEMP ERROR" #define MSG_ERR_MINTEMP "MINTEMP ERROR"
#define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR" #define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR"
...@@ -212,9 +233,13 @@ ...@@ -212,9 +233,13 @@
#if ENABLED(RFID_MODULE) #if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E" #define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: " #define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_TYPE "Type: "
#define MSG_RFID_COLOR "Color: " #define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: " #define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: " #define MSG_RFID_TEMP_HOTEND "Temperature Hotend: "
#define MSG_RFID_TEMP_BED "Temperature Bed: "
#define MSG_RFID_TEMP_USER_HOTEND "User temperature Hotend: "
#define MSG_RFID_TEMP_USER_BED "User temperatura Bed: "
#define MSG_RFID_DENSITY "Density: " #define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: " #define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif #endif
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Catalan * Catalan
* *
...@@ -154,7 +176,7 @@ ...@@ -154,7 +176,7 @@
#define MSG_HEATING_FAILED_LCD "Heating failed" #define MSG_HEATING_FAILED_LCD "Heating failed"
#define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR" #define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_HOTEND_AD595 "HOTEND AD595 Offset & Gain" #define MSG_AD595 "AD595 Offset & Gain"
#define MSG_ERR_MAXTEMP "MAXTEMP ERROR" #define MSG_ERR_MAXTEMP "MAXTEMP ERROR"
#define MSG_ERR_MINTEMP "MINTEMP ERROR" #define MSG_ERR_MINTEMP "MINTEMP ERROR"
#define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR" #define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR"
...@@ -211,9 +233,13 @@ ...@@ -211,9 +233,13 @@
#if ENABLED(RFID_MODULE) #if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E" #define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: " #define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_TYPE "Type: "
#define MSG_RFID_COLOR "Color: " #define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: " #define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: " #define MSG_RFID_TEMP_HOTEND "Temperature Hotend: "
#define MSG_RFID_TEMP_BED "Temperature Bed: "
#define MSG_RFID_TEMP_USER_HOTEND "User temperature Hotend: "
#define MSG_RFID_TEMP_USER_BED "User temperatura Bed: "
#define MSG_RFID_DENSITY "Density: " #define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: " #define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif #endif
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Chinese * Chinese
* *
...@@ -154,7 +176,7 @@ ...@@ -154,7 +176,7 @@
#define MSG_HEATING_FAILED_LCD "Heating failed" #define MSG_HEATING_FAILED_LCD "Heating failed"
#define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR" #define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_HOTEND_AD595 "HOTEND AD595 Offset & Gain" #define MSG_AD595 "AD595 Offset & Gain"
#define MSG_ERR_MAXTEMP "MAXTEMP ERROR" #define MSG_ERR_MAXTEMP "MAXTEMP ERROR"
#define MSG_ERR_MINTEMP "MINTEMP ERROR" #define MSG_ERR_MINTEMP "MINTEMP ERROR"
#define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR" #define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR"
...@@ -211,9 +233,13 @@ ...@@ -211,9 +233,13 @@
#if ENABLED(RFID_MODULE) #if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E" #define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: " #define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_TYPE "Type: "
#define MSG_RFID_COLOR "Color: " #define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: " #define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: " #define MSG_RFID_TEMP_HOTEND "Temperature Hotend: "
#define MSG_RFID_TEMP_BED "Temperature Bed: "
#define MSG_RFID_TEMP_USER_HOTEND "User temperature Hotend: "
#define MSG_RFID_TEMP_USER_BED "User temperatura Bed: "
#define MSG_RFID_DENSITY "Density: " #define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: " #define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif #endif
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Czech
*
* LCD Menu Messages
* See also documentation/LCDLanguageFont.md
*
* Translated by Petr Zahradnik, Computer Laboratory
* Blog and video blog Zahradnik se bavi
* http://www.zahradniksebavi.cz
*
*/
#ifndef LANGUAGE_CZ_H
#define LANGUAGE_CZ_H
#define MAPPER_NON // For direct asci codes
#define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays.
#define WELCOME_MSG MACHINE_NAME " pripraven."
#define MSG_SD_INSERTED "Karta vlozena"
#define MSG_SD_REMOVED "Karta vyjmuta"
#define MSG_MAIN "Hlavni nabidka"
#define MSG_AUTOSTART "Autostart"
#define MSG_DISABLE_STEPPERS "Uvolnit motory"
#define MSG_AUTO_HOME "Domovska pozice"
#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_SET_HOME_OFFSETS "Nastavit ofsety"
#define MSG_SET_ORIGIN "Nastavit pocatek"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.er:"
#define MSG_FILCONSUMED "F:"
#define MSG_PREHEAT "Zahrat"
#define MSG_PREHEAT_PLA "Zahrat PLA"
#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " Vse"
#define MSG_PREHEAT_PLA_BEDONLY MSG_PREHEAT_PLA " Podloz"
#define MSG_PREHEAT_PLA_SETTINGS MSG_PREHEAT_PLA " Nast"
#define MSG_PREHEAT_ABS "Zahrat ABS"
#define MSG_PREHEAT_ABS_ALL MSG_PREHEAT_ABS " Vse"
#define MSG_PREHEAT_ABS_BEDONLY MSG_PREHEAT_ABS " Podloz"
#define MSG_PREHEAT_ABS_SETTINGS MSG_PREHEAT_ABS " Nast"
#define MSG_PREHEAT_GUM MSG_PREHEAT " GUM"
#define MSG_PREHEAT_GUM_ALL MSG_PREHEAT_GUM " All"
#define MSG_PREHEAT_GUM_BEDONLY MSG_PREHEAT_GUM " Bed"
#define MSG_PREHEAT_GUM_SETTINGS "GUM conf."
#define MSG_TOO_COLD_FOR_FILAMENTCHANGE "Hotend too cold to change filament"
#define MSG_COOLDOWN "Zchladit"
#define MSG_SWITCH_PS_ON "Zapnout napajeni"
#define MSG_SWITCH_PS_OFF "Vypnout napajeni"
#define MSG_EXTRUDE "Vytlacit (extr.)"
#define MSG_RETRACT "Zatlacit (retr.)"
#define MSG_MOVE_AXIS "Posunout osy"
#define MSG_LEVEL_BED "Vyrovnat podlozku"
#define MSG_MOVE_X "Posunout X"
#define MSG_MOVE_Y "Posunout Y"
#define MSG_MOVE_Z "Posunout Z"
#define MSG_FAN_SPEED "Rychlost vent."
#define MSG_FLOW "Prutok"
#define MSG_CONTROL "Ovladani"
#define MSG_STATS "Statistics"
#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 " Fakt"
#define MSG_IDLEOOZING "Anti oozing"
#define MSG_AUTOTEMP "Autoteplota"
#define MSG_ON "Zap"
#define MSG_OFF "Vyp"
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_H1 " H1"
#define MSG_H2 " H2"
#define MSG_H3 " H3"
#define MSG_ACC "Zrychl"
#define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX "Vmax "
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_MOVE "Posunout"
#define MSG_MOVE_AXIS MSG_MOVE " axis"
#define MSG_MOVE_X MSG_MOVE " " MSG_X
#define MSG_MOVE_Y MSG_MOVE " " MSG_Y
#define MSG_MOVE_Z MSG_MOVE " " MSG_Z
#define MSG_MOVE_01MM MSG_MOVE " 0.1mm"
#define MSG_MOVE_1MM MSG_MOVE " 1mm"
#define MSG_MOVE_10MM MSG_MOVE " 10mm"
#define MSG_MOVE_E "Extruder"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "A-retrakt"
#define MSG_A_TRAVEL "A-prejezd"
#define MSG_XSTEPS "Xkroku/mm"
#define MSG_YSTEPS "Ykroku/mm"
#define MSG_ZSTEPS "Zkroku/mm"
#define MSG_E0STEPS MSG_E "0 Zkroku/mm"
#define MSG_E1STEPS MSG_E "1 Zkroku/mm"
#define MSG_E2STEPS MSG_E "2 Zkroku/mm"
#define MSG_E3STEPS MSG_E "3 Zkroku/mm"
#define MSG_TEMPERATURE "Teplota"
#define MSG_MOTION "Pohyb"
#define MSG_FILAMENT "Filament"
#define MSG_VOLUMETRIC_ENABLED "E na mm3"
#define MSG_FILAMENT_SIZE_EXTRUDER "Fil. Prum."
#define MSG_CONTRAST "Kontrast LCD"
#define MSG_STORE_EPROM "Ulozit nastaveni"
#define MSG_LOAD_EPROM "Nacist nastaveni"
#define MSG_RESTORE_FAILSAFE "Obnovit vychozi"
#define MSG_REFRESH "Obnovit"
#define MSG_WATCH "Info obrazovka"
#define MSG_PREPARE "Priprava tisku"
#define MSG_TUNE "Doladeni tisku"
#define MSG_PAUSE_PRINT "Pozastavit tisk"
#define MSG_RESUME_PRINT "Obnovit tisk"
#define MSG_STOP_PRINT "Zastavit tisk"
#define MSG_CARD_MENU "Tisknout z SD"
#define MSG_NO_CARD "Zadna SD karta"
#define MSG_DWELL "Uspano..."
#define MSG_USERWAIT "Cekani na uziv..."
#define MSG_RESUMING "Obnovovani tisku"
#define MSG_PRINT_ABORTED "Tisk zrusen"
#define MSG_NO_MOVE "Zadny pohyb."
#define MSG_KILLED "PRERUSENO. "
#define MSG_STOPPED "ZASTAVENO. "
#define MSG_CONTROL_RETRACT "Retrakt mm"
#define MSG_CONTROL_RETRACT_SWAP "Vymena Re.mm"
#define MSG_CONTROL_RETRACTF "Retraktovat V"
#define MSG_CONTROL_RETRACT_ZLIFT "Zvednuti Z mm"
#define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm"
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V"
#define MSG_AUTORETRACT "AutoRetr."
#define MSG_FILAMENTCHANGE "Vymenit filament"
#define MSG_INIT_SDCARD "Nacist SD kartu"
#define MSG_CNG_SDCARD "Vymenit SD kartu"
#define MSG_ZPROBE_OUT "Sonda Z mimo podl"
#define MSG_POSITION_UNKNOWN "Domu X/Y pred Z"
#define MSG_ZPROBE_ZOFFSET "Z ofset"
#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 "Chyba zahrivani"
#define MSG_ERR_REDUNDANT_TEMP "Chyba: REDUNDANTNI TEPLOTA"
#define MSG_THERMAL_RUNAWAY "TEPLOTNI SKOK"
#define MSG_ERR_MAXTEMP "Chyba: VYSOKA TEPLOTA"
#define MSG_ERR_MINTEMP "Chyba: NIZKA TEPLOTA"
#define MSG_ERR_MAXTEMP_BED "Chyba: VYSOKA TEPLOTA PODL."
#define MSG_ERR_MINTEMP_BED "Chyba: NIZKA TEPLOTA PODL."
#define MSG_END_DAY "days"
#define MSG_END_HOUR "hod"
#define MSG_END_MINUTE "min"
#define MSG_ENDSTOPS_HIT "endstops hit: "
#define MSG_BABYSTEPPING "Babystepping"
#define MSG_BABYSTEPPING_X MSG_BABYSTEPPING " " MSG_X
#define MSG_BABYSTEPPING_Y MSG_BABYSTEPPING " " MSG_Y
#define MSG_BABYSTEPPING_Z MSG_BABYSTEPPING " " MSG_Z
#define MSG_ENDSTOP_XS MSG_X
#define MSG_ENDSTOP_YS MSG_Y
#define MSG_ENDSTOP_ZS MSG_Z
#define MSG_ENDSTOP_ZPS MSG_Z "P"
#define MSG_ENDSTOP_ES MSG_E
// Calibrate Delta
#if MECH(DELTA)
#define MSG_DELTA_CALIBRATE "Delta Calibration"
#define MSG_DELTA_CALIBRATE_X "Calibrate " MSG_X
#define MSG_DELTA_CALIBRATE_Y "Calibrate " MSG_Y
#define MSG_DELTA_CALIBRATE_Z "Calibrate " MSG_Z
#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center"
#endif // DELTA
// Scara
#if MECH(SCARA)
#define MSG_SCALE "Scale"
#define MSG_XSCALE MSG_X " " MSG_SCALE
#define MSG_YSCALE MSG_Y " " MSG_SCALE
#endif
#define MSG_HEATING "Heating..."
#define MSG_HEATING_COMPLETE "Heating done."
#define MSG_BED_HEATING "Bed Heating."
#define MSG_BED_DONE "Bed done."
// Extra
#define MSG_LASER "Laser Preset"
#define MSG_CONFIG "Configuration"
#define MSG_E_BOWDEN_LENGTH MSG_EXTRUDE " " STRINGIFY(BOWDEN_LENGTH) "mm"
#define MSG_R_BOWDEN_LENGTH MSG_RETRACT " " STRINGIFY(BOWDEN_LENGTH) "mm"
#define MSG_PURGE_XMM MSG_PURGE " " STRINGIFY(LCD_PURGE_LENGTH) "mm"
#define MSG_RETRACT_XMM MSG_RETRACT " " STRINGIFY(LCD_RETRACT_LENGTH) "mm"
#define MSG_SAVED_POS "Saved position"
#define MSG_RESTORING_POS "Restoring position"
#define MSG_INVALID_POS_SLOT "Invalid slot, total slots: "
// Rfid module
#if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_TYPE "Type: "
#define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMP_HOTEND "Temperature Hotend: "
#define MSG_RFID_TEMP_BED "Temperature Bed: "
#define MSG_RFID_TEMP_USER_HOTEND "User temperature Hotend: "
#define MSG_RFID_TEMP_USER_BED "User temperatura Bed: "
#define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif
// Firmware Test
#if ENABLED(FIRMWARE_TEST)
#define MSG_FWTEST_YES "Put the Y command to go next"
#define MSG_FWTEST_NO "Put the N command to go next"
#define MSG_FWTEST_YES_NO "Put the Y or N command to go next"
#define MSG_FWTEST_ENDSTOP_ERR "ENDSTOP ERROR! Check wire and connection"
#define MSG_FWTEST_PRESS "Press and hold the endstop "
#define MSG_FWTEST_INVERT "Reverse value of "
#define MSG_FWTEST_XAXIS "Has the nozzle moved to the right?"
#define MSG_FWTEST_YAXIS "Has the nozzle moved forward?"
#define MSG_FWTEST_ZAXIS "Has the nozzle moved up?"
#define MSG_FWTEST_01 "Manually move the axes X, Y and Z away from the endstop"
#define MSG_FWTEST_02 "Do you want check ENDSTOP?"
#define MSG_FWTEST_03 "Start check ENDSTOP"
#define MSG_FWTEST_04 "Start check MOTOR"
#define MSG_FWTEST_ATTENTION "ATTENTION! Check that the three axes are more than 5 mm from the endstop!"
#define MSG_FWTEST_END "Finish Test. Disable FIRMWARE_TEST and recompile."
#define MSG_FWTEST_INTO "into "
#define MSG_FWTEST_ERROR "ERROR"
#define MSG_FWTEST_OK "OK"
#define MSG_FWTEST_NDEF "not defined"
#endif // FIRMWARE_TEST
#endif // LANGUAGE_CZ_H
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Danish * Danish
* *
...@@ -154,7 +176,7 @@ ...@@ -154,7 +176,7 @@
#define MSG_HEATING_FAILED_LCD "Heating failed" #define MSG_HEATING_FAILED_LCD "Heating failed"
#define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR" #define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_HOTEND_AD595 "HOTEND AD595 Offset & Gain" #define MSG_AD595 "AD595 Offset & Gain"
#define MSG_ERR_MAXTEMP "MAXTEMP ERROR" #define MSG_ERR_MAXTEMP "MAXTEMP ERROR"
#define MSG_ERR_MINTEMP "MINTEMP ERROR" #define MSG_ERR_MINTEMP "MINTEMP ERROR"
#define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR" #define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR"
...@@ -211,9 +233,13 @@ ...@@ -211,9 +233,13 @@
#if ENABLED(RFID_MODULE) #if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E" #define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: " #define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_TYPE "Type: "
#define MSG_RFID_COLOR "Color: " #define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: " #define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: " #define MSG_RFID_TEMP_HOTEND "Temperature Hotend: "
#define MSG_RFID_TEMP_BED "Temperature Bed: "
#define MSG_RFID_TEMP_USER_HOTEND "User temperature Hotend: "
#define MSG_RFID_TEMP_USER_BED "User temperatura Bed: "
#define MSG_RFID_DENSITY "Density: " #define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: " #define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif #endif
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* German * German
* *
...@@ -154,7 +176,7 @@ ...@@ -154,7 +176,7 @@
#define MSG_HEATING_FAILED_LCD "Heating failed" #define MSG_HEATING_FAILED_LCD "Heating failed"
#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR" #define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_HOTEND_AD595 "HOTEND AD595 Offset & Gain" #define MSG_AD595 "AD595 Offset & Gain"
#define MSG_ERR_MAXTEMP "MAXTEMP ERROR" #define MSG_ERR_MAXTEMP "MAXTEMP ERROR"
#define MSG_ERR_MINTEMP "MINTEMP ERROR" #define MSG_ERR_MINTEMP "MINTEMP ERROR"
#define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR" #define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR"
...@@ -211,9 +233,13 @@ ...@@ -211,9 +233,13 @@
#if ENABLED(RFID_MODULE) #if ENABLED(RFID_MODULE)
#define MSG_RFID_SPOOL "Spool on E" #define MSG_RFID_SPOOL "Spool on E"
#define MSG_RFID_BRAND "Brand: " #define MSG_RFID_BRAND "Brand: "
#define MSG_RFID_TYPE "Type: "
#define MSG_RFID_COLOR "Color: " #define MSG_RFID_COLOR "Color: "
#define MSG_RFID_SIZE "Size: " #define MSG_RFID_SIZE "Size: "
#define MSG_RFID_TEMPERATURE "Temperature: " #define MSG_RFID_TEMP_HOTEND "Temperature Hotend: "
#define MSG_RFID_TEMP_BED "Temperature Bed: "
#define MSG_RFID_TEMP_USER_HOTEND "User temperature Hotend: "
#define MSG_RFID_TEMP_USER_BED "User temperatura Bed: "
#define MSG_RFID_DENSITY "Density: " #define MSG_RFID_DENSITY "Density: "
#define MSG_RFID_SPOOL_LENGHT "Spool Lenght: " #define MSG_RFID_SPOOL_LENGHT "Spool Lenght: "
#endif #endif
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* English * English
* *
...@@ -140,7 +162,7 @@ ...@@ -140,7 +162,7 @@
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Swap UnRet +mm" #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Swap UnRet +mm"
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F"
#define MSG_AUTORETRACT "AutoRetr." #define MSG_AUTORETRACT "AutoRetr."
#define MSG_FILAMENTCHANGE "Change filament" #define MSG_FILAMENT_CHANGE "Change filament"
#define MSG_INIT_SDCARD "Init. " MSG_SD #define MSG_INIT_SDCARD "Init. " MSG_SD
#define MSG_CNG_SDCARD "Change " MSG_SD #define MSG_CNG_SDCARD "Change " MSG_SD
#define MSG_ZPROBE_OUT "Z probe out. bed" #define MSG_ZPROBE_OUT "Z probe out. bed"
...@@ -184,6 +206,30 @@ ...@@ -184,6 +206,30 @@
#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center" #define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center"
#endif // DELTA #endif // DELTA
// FILAMENT_CHANGE_FEATURE
#define MSG_FILAMENT_CHANGE_HEADER "CHANGE FILAMENT"
#define MSG_FILAMENT_CHANGE_INIT_1 "Wait for start"
#define MSG_FILAMENT_CHANGE_INIT_2 "of the filament"
#define MSG_FILAMENT_CHANGE_INIT_3 "change"
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Wait for"
#define MSG_FILAMENT_CHANGE_UNLOAD_2 "filament unload"
#define MSG_FILAMENT_CHANGE_UNLOAD_3 ""
#define MSG_FILAMENT_CHANGE_INSERT_1 "Insert filament"
#define MSG_FILAMENT_CHANGE_INSERT_2 "and press button"
#define MSG_FILAMENT_CHANGE_INSERT_3 "to continue..."
#define MSG_FILAMENT_CHANGE_LOAD_1 "Wait for"
#define MSG_FILAMENT_CHANGE_LOAD_2 "filament load"
#define MSG_FILAMENT_CHANGE_LOAD_3 ""
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Wait for"
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 "filament extrude"
#define MSG_FILAMENT_CHANGE_EXTRUDE_3 ""
#define MSG_FILAMENT_CHANGE_OPTION_HEADER "WHAT NEXT?"
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE "Extrude more"
#define MSG_FILAMENT_CHANGE_OPTION_RESUME "Resume print"
#define MSG_FILAMENT_CHANGE_RESUME_1 "Wait for print"
#define MSG_FILAMENT_CHANGE_RESUME_2 "resume"
#define MSG_FILAMENT_CHANGE_RESUME_3 ""
// Scara // Scara
#if MECH(SCARA) #if MECH(SCARA)
#define MSG_SCALE "Scale" #define MSG_SCALE "Scale"
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Spanish * Spanish
* *
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Basque-Euskera * Basque-Euskera
* *
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Finnish * Finnish
* *
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* French * French
* *
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Galician language (ISO "gl")
*
* LCD Menu Messages
* See also documentation/LCDLanguageFont.md
*
*/
#ifndef LANGUAGE_GL_H
#define LANGUAGE_GL_H
#define MAPPER_C2C3
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME " lista."
#define MSG_SD_INSERTED "Tarxeta inserida"
#define MSG_SD_REMOVED "Tarxeta retirada"
#define MSG_MAIN "Menu principal"
#define MSG_AUTOSTART "Autoarranque"
#define MSG_DISABLE_STEPPERS "Apagar motores"
#define MSG_AUTO_HOME "Ir a orixe"
#define MSG_SET_ORIGIN "Fixar orixe"
#define MSG_PREHEAT_PLA "Prequentar PLA"
#define MSG_PREHEAT_PLA_N "Prequentar PLA "
#define MSG_PREHEAT_PLA_ALL "Preque. PLA Todo"
#define MSG_PREHEAT_PLA_BEDONLY "Preque. PLA Cama"
#define MSG_PREHEAT_PLA_SETTINGS "Preque. PLA conf"
#define MSG_PREHEAT_ABS "Prequentar ABS"
#define MSG_PREHEAT_ABS_N "Prequentar ABS "
#define MSG_PREHEAT_ABS_ALL "Preque. ABS Todo"
#define MSG_PREHEAT_ABS_BEDONLY "Preque. ABS Cama"
#define MSG_PREHEAT_ABS_SETTINGS "Preque. ABS conf"
#define MSG_COOLDOWN "Arrefriar"
#define MSG_SWITCH_PS_ON "Acender"
#define MSG_SWITCH_PS_OFF "Apagar"
#define MSG_EXTRUDE "Extrudir"
#define MSG_RETRACT "Retraer"
#define MSG_MOVE_AXIS "Mover eixe"
#define MSG_LEVEL_BED "Nivelar cama"
#define MSG_MOVE_X "Mover X"
#define MSG_MOVE_Y "Mover Y"
#define MSG_MOVE_Z "Mover Z"
#define MSG_MOVE_E "Extruir"
#define MSG_MOVE_01MM "Mover 0.1mm"
#define MSG_MOVE_1MM "Mover 1mm"
#define MSG_MOVE_10MM "Mover 10mm"
#define MSG_SPEED "Velocidade"
#define MSG_NOZZLE "Bico"
#define MSG_BED "Cama"
#define MSG_FAN_SPEED "Velocidade vent."
#define MSG_FLOW "Fluxo"
#define MSG_CONTROL "Control"
#define MSG_MIN " " LCD_STR_THERMOMETER " Min"
#define MSG_MAX " " LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR " " LCD_STR_THERMOMETER " Fact"
#define MSG_AUTOTEMP "Autotemp"
#define MSG_ON "On "
#define MSG_OFF "Off"
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_E1 " E1"
#define MSG_E2 " E2"
#define MSG_E3 " E3"
#define MSG_E4 " E4"
#define MSG_ACC "Acel"
#define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX "Vmax "
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "A-retract"
#define MSG_A_TRAVEL "A-travel"
#define MSG_XSTEPS "Xpasos/mm"
#define MSG_YSTEPS "Ypasos/mm"
#define MSG_ZSTEPS "Zpasos/mm"
#define MSG_ESTEPS "Epasos/mm"
#define MSG_TEMPERATURE "Temperatura"
#define MSG_MOTION "Movemento"
#define MSG_VOLUMETRIC "Filamento"
#define MSG_VOLUMETRIC_ENABLED "E en mm3"
#define MSG_FILAMENT_DIAM "Diametro filam."
#define MSG_CONTRAST "Constraste LCD"
#define MSG_STORE_EPROM "Gardar en memo."
#define MSG_LOAD_EPROM "Cargar de memo."
#define MSG_RESTORE_FAILSAFE "Cargar de firm."
#define MSG_REFRESH "Volver a cargar"
#define MSG_WATCH "Monitorizacion"
#define MSG_PREPARE "Preparar"
#define MSG_TUNE "Axustar"
#define MSG_PAUSE_PRINT "Pausar impres."
#define MSG_RESUME_PRINT "Seguir impres."
#define MSG_STOP_PRINT "Deter impres."
#define MSG_CARD_MENU "Tarxeta SD"
#define MSG_NO_CARD "Sen tarxeta SD"
#define MSG_DWELL "En repouso..."
#define MSG_USERWAIT "A espera..."
#define MSG_RESUMING "Imprimindo..."
#define MSG_PRINT_ABORTED "Impre. cancelada"
#define MSG_NO_MOVE "Sen movemento."
#define MSG_KILLED "PROGRAMA MORTO"
#define MSG_STOPPED "PROGRAMA PARADO"
#define MSG_CONTROL_RETRACT "Retraccion mm"
#define MSG_CONTROL_RETRACT_SWAP "Cambio retra. mm"
#define MSG_CONTROL_RETRACTF "Retraccion V"
#define MSG_CONTROL_RETRACT_ZLIFT "Alzar Z mm"
#define MSG_CONTROL_RETRACT_RECOVER "Recup. retra. mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Cambio recup. mm"
#define MSG_CONTROL_RETRACT_RECOVERF "Recuperacion V"
#define MSG_AUTORETRACT "Retraccion auto."
#define MSG_FILAMENTCHANGE "Cambiar filamen."
#define MSG_INIT_SDCARD "Iniciando SD"
#define MSG_CNG_SDCARD "Cambiar SD"
#define MSG_ZPROBE_OUT "Sonda-Z sen cama"
#define MSG_YX_UNHOMED "X/Y antes que Z"
#define MSG_ZPROBE_ZOFFSET "Offset Z"
#define MSG_BABYSTEP_X "Micropaso X"
#define MSG_BABYSTEP_Y "Micropaso Y"
#define MSG_BABYSTEP_Z "Micropaso Z"
#define MSG_ENDSTOP_ABORT "Erro fin carro"
#define MSG_HEATING_FAILED_LCD "Fallo quentando"
#define MSG_ERR_REDUNDANT_TEMP "Erro temperatura"
#define MSG_THERMAL_RUNAWAY "Temp. excesiva"
#define MSG_ERR_MAXTEMP "Err: temp. max."
#define MSG_ERR_MINTEMP "Err: temp. min."
#define MSG_ERR_MAXTEMP_BED "Err: MAXTEMP BED"
#define MSG_ERR_MINTEMP_BED "Err: MINTEMP BED"
#define MSG_END_HOUR "horas"
#define MSG_END_MINUTE "minutos"
#define MSG_HEATING "Quentando..."
#define MSG_HEATING_COMPLETE "Xa esta quente"
#define MSG_BED_HEATING "Quentando cama"
#define MSG_BED_DONE "Cama esta quente"
#define MSG_DELTA_CALIBRATE "Calibracion Delta"
#define MSG_DELTA_CALIBRATE_X "Calibrar X"
#define MSG_DELTA_CALIBRATE_Y "Calibrar Y"
#define MSG_DELTA_CALIBRATE_Z "Calibrar Z"
#define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro"
#endif // LANGUAGE_GL_H
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Italian * Italian
* *
...@@ -140,7 +162,7 @@ ...@@ -140,7 +162,7 @@
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Scamb. UnRet +mm" #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Scamb. UnRet +mm"
#define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V"
#define MSG_AUTORETRACT "AutoArretramento" #define MSG_AUTORETRACT "AutoArretramento"
#define MSG_FILAMENTCHANGE "Cambia filamento" #define MSG_FILAMENT_CHANGE "Cambia filamento"
#define MSG_INIT_SDCARD "Iniz. SD-Card" #define MSG_INIT_SDCARD "Iniz. SD-Card"
#define MSG_CNG_SDCARD "Cambia SD-Card" #define MSG_CNG_SDCARD "Cambia SD-Card"
#define MSG_ZPROBE_OUT "Z probe out. bed" #define MSG_ZPROBE_OUT "Z probe out. bed"
...@@ -184,6 +206,30 @@ ...@@ -184,6 +206,30 @@
#define MSG_DELTA_CALIBRATE_CENTER "Calibra Centro" #define MSG_DELTA_CALIBRATE_CENTER "Calibra Centro"
#endif // DELTA #endif // DELTA
// FILAMENT_CHANGE_FEATURE
#define MSG_FILAMENT_CHANGE_HEADER "CAMBIO FILO"
#define MSG_FILAMENT_CHANGE_INIT_1 "Attendere"
#define MSG_FILAMENT_CHANGE_INIT_2 "per il cambio"
#define MSG_FILAMENT_CHANGE_INIT_3 "filamento"
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Attendere lo"
#define MSG_FILAMENT_CHANGE_UNLOAD_2 "scarico filamento"
#define MSG_FILAMENT_CHANGE_UNLOAD_3 ""
#define MSG_FILAMENT_CHANGE_INSERT_1 "Inserire filamento"
#define MSG_FILAMENT_CHANGE_INSERT_2 "premere il bottone"
#define MSG_FILAMENT_CHANGE_INSERT_3 "per continuare..."
#define MSG_FILAMENT_CHANGE_LOAD_1 "Attendere il"
#define MSG_FILAMENT_CHANGE_LOAD_2 "caricamento filo"
#define MSG_FILAMENT_CHANGE_LOAD_3 ""
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Attendere"
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 "estrusione filamento"
#define MSG_FILAMENT_CHANGE_EXTRUDE_3 ""
#define MSG_FILAMENT_CHANGE_OPTION_HEADER "Cosa faccio?"
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE "Estrudere ancora"
#define MSG_FILAMENT_CHANGE_OPTION_RESUME "Riprendere la stampa"
#define MSG_FILAMENT_CHANGE_RESUME_1 "Attendere che la"
#define MSG_FILAMENT_CHANGE_RESUME_2 "stampa riprenda"
#define MSG_FILAMENT_CHANGE_RESUME_3 ""
// Scara // Scara
#if MECH(SCARA) #if MECH(SCARA)
#define MSG_SCALE "Scale" #define MSG_SCALE "Scale"
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Japanese (Kana) * Japanese (Kana)
* *
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Japanese (Kana UTF8 version) * Japanese (Kana UTF8 version)
* *
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Dutch * Dutch
* *
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Polish * Polish
* *
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Portuguese (Brazil) * Portuguese (Brazil)
* *
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Portuguese (Brazil)
*
* LCD Menu Messages
* See also documentation/LCDLanguageFont.md
*
*/
#ifndef LANGUAGE_PT_BR_UTF_H
#define LANGUAGE_PT_BR_UTF_H
#define MAPPER_NON
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME " pronto."
#define MSG_SD_INSERTED "Cartão inserido"
#define MSG_SD_REMOVED "Cartão removido"
#define MSG_MAIN "Menu principal"
#define MSG_AUTOSTART "Autostart"
#define MSG_DISABLE_STEPPERS "Desabi. motores"
#define MSG_AUTO_HOME "Ir para origen"
#define MSG_LEVEL_BED_HOMING "Indo para origem"
#define MSG_LEVEL_BED_WAITING "Click to Begin"
#define MSG_LEVEL_BED_DONE "Leveling Done!"
#define MSG_LEVEL_BED_CANCEL "Cancel"
#define MSG_SET_HOME_OFFSETS "Ajustar Jogo"
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
#define MSG_SET_ORIGIN "Ajustar orig."
#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
#define MSG_PREHEAT_PLA_N "Pre-aquecer PLA"
#define MSG_PREHEAT_PLA_ALL "Pre-aq.Todo PLA"
#define MSG_PREHEAT_PLA_BEDONLY "Pre-aq. PLA " LCD_STR_THERMOMETER "Base"
#define MSG_PREHEAT_PLA_SETTINGS "Ajustar PLA"
#define MSG_PREHEAT_ABS "Pre-aquecer ABS"
#define MSG_PREHEAT_ABS_N "Pre-aquecer ABS"
#define MSG_PREHEAT_ABS_ALL "Pre-aq.Todo ABS"
#define MSG_PREHEAT_ABS_BEDONLY "Pre-aq. ABS " LCD_STR_THERMOMETER "Base"
#define MSG_PREHEAT_ABS_SETTINGS "Ajustar ABS"
#define MSG_COOLDOWN "Esfriar"
#define MSG_SWITCH_PS_ON "Ligar"
#define MSG_SWITCH_PS_OFF "Desligar"
#define MSG_EXTRUDE "Extrudar"
#define MSG_RETRACT "Retrair"
#define MSG_MOVE_AXIS "Mover eixo"
#define MSG_MOVE_X "Mover X"
#define MSG_MOVE_Y "Mover Y"
#define MSG_MOVE_Z "Mover Z"
#define MSG_MOVE_E "Mover Extrusor"
#define MSG_MOVE_01MM "Mover 0.1mm"
#define MSG_MOVE_1MM "Mover 1mm"
#define MSG_MOVE_10MM "Mover 10mm"
#define MSG_SPEED "Velocidade"
#define MSG_BED_Z "Base Z"
#define MSG_NOZZLE LCD_STR_THERMOMETER " Bocal"
#define MSG_BED LCD_STR_THERMOMETER " Base"
#define MSG_FAN_SPEED "Vel. Ventoinha"
#define MSG_FLOW "Fluxo"
#define MSG_CONTROL "Controle"
#define MSG_MIN LCD_STR_THERMOMETER " Min"
#define MSG_MAX LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
#define MSG_AUTOTEMP "Temp. Automática"
#define MSG_ON "Ligado "
#define MSG_OFF "Desligado"
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_ACC "Acc"
#define MSG_VXY_JERK "jogo VXY"
#define MSG_VZ_JERK "jogo VZ"
#define MSG_VE_JERK "jogo VE"
#define MSG_VMAX " Vmax "
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "Retrair A"
#define MSG_A_TRAVEL "A-movimento"
#define MSG_XSTEPS "Passo X/mm"
#define MSG_YSTEPS "Passo Y/mm"
#define MSG_ZSTEPS "Passo Z/mm"
#define MSG_ESTEPS "E/mm"
#define MSG_TEMPERATURE "Temperatura"
#define MSG_MOTION "Movimento"
#define MSG_VOLUMETRIC "Filamento"
#define MSG_VOLUMETRIC_ENABLED "Extr. em mm3"
#define MSG_FILAMENT_DIAM "Diametro Fil."
#define MSG_CONTRAST "Contraste"
#define MSG_STORE_EPROM "Salvar"
#define MSG_LOAD_EPROM "Ler"
#define MSG_RESTORE_FAILSAFE "Rest. de emerg."
#define MSG_REFRESH LCD_STR_REFRESH " Restaurar"
#define MSG_WATCH "Monitorar"
#define MSG_PREPARE "Preparar"
#define MSG_TUNE "Afinar"
#define MSG_PAUSE_PRINT "Pausar impressão"
#define MSG_RESUME_PRINT "Resumir impressão"
#define MSG_STOP_PRINT "Parar impressão"
#define MSG_CARD_MENU "Imprimir do SD"
#define MSG_NO_CARD "Sem cartão SD"
#define MSG_DWELL "Repouso..."
#define MSG_USERWAIT "Esperando ordem"
#define MSG_RESUMING "Resumindo Impres."
#define MSG_PRINT_ABORTED "Impres. Abortada."
#define MSG_NO_MOVE "Sem movimento"
#define MSG_KILLED "PARADA DE EMERG."
#define MSG_STOPPED "PARADA. "
#define MSG_CONTROL_RETRACT "Retrair mm"
#define MSG_CONTROL_RETRACT_SWAP "Retrair Troca mm"
#define MSG_CONTROL_RETRACTF "Retrair V"
#define MSG_CONTROL_RETRACT_ZLIFT "Levantar mm"
#define MSG_CONTROL_RETRACT_RECOVER "Des Retrair +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Des RetTroca +mm"
#define MSG_CONTROL_RETRACT_RECOVERF "Des Retrair V"
#define MSG_AUTORETRACT "Retração Autom."
#define MSG_FILAMENTCHANGE "Trocar Filamento"
#define MSG_INIT_SDCARD "Iniciar SD"
#define MSG_CNG_SDCARD "Trocar SD"
#define MSG_ZPROBE_OUT "Son. fora da mesa"
#define MSG_YX_UNHOMED "Pos. Desconhecida"
#define MSG_ZPROBE_ZOFFSET "Deslocamento no Z"
#define MSG_BABYSTEP_X "Passinho X"
#define MSG_BABYSTEP_Y "Passinho Y"
#define MSG_BABYSTEP_Z "Passinho Z"
#define MSG_ENDSTOP_ABORT "Fim de Curso"
#define MSG_HEATING_FAILED_LCD "Aquecimento falhou"
#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_ERR_MAXTEMP "Err: T Máxima"
#define MSG_ERR_MINTEMP "Err: T Mínima"
#define MSG_ERR_MAXTEMP_BED "Err: T Base Máxima"
#define MSG_ERR_MINTEMP_BED "Err: T Base Mínima"
#define MSG_END_HOUR "Horas"
#define MSG_END_MINUTE "Minutos"
#define MSG_HEATING "Aquecendo..."
#define MSG_HEATING_COMPLETE "Aquecida."
#define MSG_BED_HEATING "Aquecendo base.."
#define MSG_BED_DONE "Base aquecida."
#define MSG_DELTA_CALIBRATE "Calibrar Delta"
#define MSG_DELTA_CALIBRATE_X "Calibrar X"
#define MSG_DELTA_CALIBRATE_Y "Calibrar Y"
#define MSG_DELTA_CALIBRATE_Z "Calibrar Z"
#define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro"
#endif // LANGUAGE_PT_BR_UTF_H
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Portuguese * Portuguese
* *
......
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Portuguese
*
* LCD Menu Messages
* See also documentation/LCDLanguageFont.md
*
*/
#ifndef LANGUAGE_PT_UTF_H
#define LANGUAGE_PT_UTF_H
#define MAPPER_NON
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME " pronto."
#define MSG_SD_INSERTED "Cartão inserido"
#define MSG_SD_REMOVED "Cartão removido"
#define MSG_MAIN "Menu principal"
#define MSG_AUTOSTART "Autostart"
#define MSG_DISABLE_STEPPERS "Desactivar motores"
#define MSG_AUTO_HOME "Ir para origem"
#define MSG_LEVEL_BED_HOMING "Indo para origem"
#define MSG_LEVEL_BED_WAITING "Click to Begin"
#define MSG_LEVEL_BED_DONE "Leveling Done!"
#define MSG_LEVEL_BED_CANCEL "Cancel"
#define MSG_SET_HOME_OFFSETS "Definir desvio"
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
#define MSG_SET_ORIGIN "Definir origem"
#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
#define MSG_PREHEAT_PLA_N "Pre-aquecer PLA"
#define MSG_PREHEAT_PLA_ALL "Pre-aq. PLA Tudo"
#define MSG_PREHEAT_PLA_BEDONLY "Pre-aq. PLA " LCD_STR_THERMOMETER "Base"
#define MSG_PREHEAT_PLA_SETTINGS "Definições PLA"
#define MSG_PREHEAT_ABS "Pre-aquecer ABS"
#define MSG_PREHEAT_ABS_N "Pre-aquecer ABS "
#define MSG_PREHEAT_ABS_ALL "Pre-aq. ABS Tudo"
#define MSG_PREHEAT_ABS_BEDONLY "Pre-aq. ABS " LCD_STR_THERMOMETER "Base"
#define MSG_PREHEAT_ABS_SETTINGS "Definições ABS"
#define MSG_COOLDOWN "Arrefecer"
#define MSG_SWITCH_PS_ON "Ligar"
#define MSG_SWITCH_PS_OFF "Desligar"
#define MSG_EXTRUDE "Extrudir"
#define MSG_RETRACT "Retrair"
#define MSG_MOVE_AXIS "Mover eixo"
#define MSG_MOVE_X "Mover X"
#define MSG_MOVE_Y "Mover Y"
#define MSG_MOVE_Z "Mover Z"
#define MSG_MOVE_E "Mover Extrusor"
#define MSG_MOVE_01MM "Mover 0.1mm"
#define MSG_MOVE_1MM "Mover 1mm"
#define MSG_MOVE_10MM "Mover 10mm"
#define MSG_SPEED "Velocidade"
#define MSG_BED_Z "Base Z"
#define MSG_NOZZLE LCD_STR_THERMOMETER " Bico"
#define MSG_BED LCD_STR_THERMOMETER " Base"
#define MSG_FAN_SPEED "Vel. ventoinha"
#define MSG_FLOW "Fluxo"
#define MSG_CONTROL "Controlo"
#define MSG_MIN LCD_STR_THERMOMETER " Min"
#define MSG_MAX LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
#define MSG_AUTOTEMP "Temp. Automática"
#define MSG_ON "On "
#define MSG_OFF "Off"
#define MSG_PID_P "PID-P"
#define MSG_PID_I "PID-I"
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_E1 "E1"
#define MSG_E2 "E2"
#define MSG_E3 "E3"
#define MSG_E4 "E4"
#define MSG_ACC "Acc"
#define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX " Vmax "
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "A-retracção"
#define MSG_A_TRAVEL "A-movimento"
#define MSG_XSTEPS "X passo/mm"
#define MSG_YSTEPS "Y passo/mm"
#define MSG_ZSTEPS "Z passo/mm"
#define MSG_ESTEPS "E passo/mm"
#define MSG_TEMPERATURE "Temperatura"
#define MSG_MOTION "Movimento"
#define MSG_VOLUMETRIC "Filamento"
#define MSG_VOLUMETRIC_ENABLED "E em mm3"
#define MSG_FILAMENT_DIAM "Fil. Diam."
#define MSG_CONTRAST "Contraste"
#define MSG_STORE_EPROM "Guardar na memoria"
#define MSG_LOAD_EPROM "Carregar da memoria"
#define MSG_RESTORE_FAILSAFE "Rest. de emergen."
#define MSG_REFRESH LCD_STR_REFRESH " Recarregar"
#define MSG_WATCH "Monitorizar"
#define MSG_PREPARE "Preparar"
#define MSG_TUNE "Afinar"
#define MSG_PAUSE_PRINT "Pausar impressão"
#define MSG_RESUME_PRINT "Retomar impressão"
#define MSG_STOP_PRINT "Parar impressão"
#define MSG_CARD_MENU "Imprimir do SD"
#define MSG_NO_CARD "Sem cartão SD"
#define MSG_DWELL "Em espera..."
#define MSG_USERWAIT "Á espera de ordem"
#define MSG_RESUMING "Retomando impressão"
#define MSG_PRINT_ABORTED "Impressão cancelada"
#define MSG_NO_MOVE "Sem movimento"
#define MSG_KILLED "EMERGÊNCIA. "
#define MSG_STOPPED "PARADO. "
#define MSG_CONTROL_RETRACT " Retrair mm"
#define MSG_CONTROL_RETRACT_SWAP "Troca Retrair mm"
#define MSG_CONTROL_RETRACTF " Retrair V"
#define MSG_CONTROL_RETRACT_ZLIFT " Levantar mm"
#define MSG_CONTROL_RETRACT_RECOVER " DesRet +mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Troca DesRet +mm"
#define MSG_CONTROL_RETRACT_RECOVERF " DesRet V"
#define MSG_AUTORETRACT " AutoRetr."
#define MSG_FILAMENTCHANGE "Trocar filamento"
#define MSG_INIT_SDCARD "Inici. cartão SD"
#define MSG_CNG_SDCARD "Trocar cartão SD"
#define MSG_ZPROBE_OUT "Sensor fora/base"
#define MSG_YX_UNHOMED "XY antes de Z"
#define MSG_ZPROBE_ZOFFSET "Desvio Z"
#define MSG_BABYSTEP_X "Babystep X"
#define MSG_BABYSTEP_Y "Babystep Y"
#define MSG_BABYSTEP_Z "Babystep Z"
#define MSG_ENDSTOP_ABORT "Fim de curso"
#define MSG_HEATING_FAILED_LCD "Aquecimento falhou"
#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_ERR_MAXTEMP "Err: T Máxima"
#define MSG_ERR_MINTEMP "Err: T Mínima"
#define MSG_ERR_MAXTEMP_BED "Err: T Base Máxima"
#define MSG_ERR_MINTEMP_BED "Err: T Base Mínima"
#define MSG_END_HOUR "horas"
#define MSG_END_MINUTE "minutos"
#define MSG_HEATING "Aquecendo..."
#define MSG_HEATING_COMPLETE "Aquecida."
#define MSG_BED_HEATING "Aquecendo base.."
#define MSG_BED_DONE "Base aquecida."
#define MSG_DELTA_CALIBRATE "Calibração Delta"
#define MSG_DELTA_CALIBRATE_X "Calibrar X"
#define MSG_DELTA_CALIBRATE_Y "Calibrar Y"
#define MSG_DELTA_CALIBRATE_Z "Calibrar Z"
#define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro"
#endif // LANGUAGE_PT_UTF_H
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/** /**
* Russian * Russian
* *
......
...@@ -110,6 +110,16 @@ static void lcd_status_screen(); ...@@ -110,6 +110,16 @@ static void lcd_status_screen();
static void lcd_control_motion_menu(); static void lcd_control_motion_menu();
static void lcd_control_volumetric_menu(); static void lcd_control_volumetric_menu();
#if ENABLED(FILAMENT_CHANGE_FEATURE)
static void lcd_filament_change_option_menu();
static void lcd_filament_change_init_message();
static void lcd_filament_change_unload_message();
static void lcd_filament_change_insert_message();
static void lcd_filament_change_load_message();
static void lcd_filament_change_extrude_message();
static void lcd_filament_change_resume_message();
#endif
#if HAS(LCD_CONTRAST) #if HAS(LCD_CONTRAST)
static void lcd_set_contrast(); static void lcd_set_contrast();
#endif #endif
...@@ -786,8 +796,8 @@ static void lcd_tune_menu() { ...@@ -786,8 +796,8 @@ static void lcd_tune_menu() {
// //
// Change filament // Change filament
// //
#if ENABLED(FILAMENTCHANGEENABLE) #if ENABLED(FILAMENT_CHANGE_FEATURE)
MENU_ITEM(gcode, MSG_FILAMENTCHANGE, PSTR("M600")); MENU_ITEM(gcode, MSG_FILAMENT_CHANGE, PSTR("M600"));
#endif #endif
END_MENU(); END_MENU();
...@@ -1756,6 +1766,117 @@ static void lcd_control_volumetric_menu() { ...@@ -1756,6 +1766,117 @@ static void lcd_control_volumetric_menu() {
#endif // SDSUPPORT #endif // SDSUPPORT
#if ENABLED(FILAMENT_CHANGE_FEATURE)
static void lcd_filament_change_nothing() {
}
static void lcd_filament_change_resume_print() {
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_RESUME_PRINT;
lcdDrawUpdate = 2;
lcd_goto_menu(lcd_status_screen);
}
static void lcd_filament_change_extrude_more() {
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_EXTRUDE_MORE;
}
static void lcd_filament_change_option_menu() {
START_MENU();
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_HEADER, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_RESUME, lcd_filament_change_resume_print);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_EXTRUDE, lcd_filament_change_extrude_more);
END_MENU();
}
static void lcd_filament_change_init_message() {
START_MENU();
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INIT_1, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INIT_2, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INIT_3, lcd_filament_change_nothing);
END_MENU();
}
static void lcd_filament_change_unload_message() {
START_MENU();
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_UNLOAD_1, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_UNLOAD_2, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_UNLOAD_3, lcd_filament_change_nothing);
END_MENU();
}
static void lcd_filament_change_insert_message() {
START_MENU();
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INSERT_1, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INSERT_2, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INSERT_3, lcd_filament_change_nothing);
END_MENU();
}
static void lcd_filament_change_load_message() {
START_MENU();
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_LOAD_1, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_LOAD_2, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_LOAD_3, lcd_filament_change_nothing);
END_MENU();
}
static void lcd_filament_change_extrude_message() {
START_MENU();
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_EXTRUDE_1, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_EXTRUDE_2, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_EXTRUDE_3, lcd_filament_change_nothing);
END_MENU();
}
static void lcd_filament_change_resume_message() {
START_MENU();
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_RESUME_1, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_RESUME_2, lcd_filament_change_nothing);
MENU_ITEM(function, MSG_FILAMENT_CHANGE_RESUME_3, lcd_filament_change_nothing);
END_MENU();
}
void lcd_filament_change_show_message(FilamentChangeMessage message) {
switch (message) {
case FILAMENT_CHANGE_MESSAGE_INIT:
defer_return_to_status = true;
lcd_goto_menu(lcd_filament_change_init_message);
break;
case FILAMENT_CHANGE_MESSAGE_UNLOAD:
lcd_goto_menu(lcd_filament_change_unload_message);
break;
case FILAMENT_CHANGE_MESSAGE_INSERT:
lcd_goto_menu(lcd_filament_change_insert_message);
break;
case FILAMENT_CHANGE_MESSAGE_LOAD:
lcd_goto_menu(lcd_filament_change_load_message);
break;
case FILAMENT_CHANGE_MESSAGE_EXTRUDE:
lcd_goto_menu(lcd_filament_change_extrude_message);
break;
case FILAMENT_CHANGE_MESSAGE_OPTION:
while (lcd_clicked()) idle(true);
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_WAIT_FOR;
lcd_goto_menu(lcd_filament_change_option_menu);
break;
case FILAMENT_CHANGE_MESSAGE_RESUME:
lcd_goto_menu(lcd_filament_change_resume_message);
break;
case FILAMENT_CHANGE_MESSAGE_STATUS:
lcd_return_to_status();
break;
}
}
#endif // FILAMENT_CHANGE_FEATURE
/** /**
* *
* Functions for editing single values * Functions for editing single values
......
...@@ -68,6 +68,19 @@ ...@@ -68,6 +68,19 @@
#if ENABLED(ULTIPANEL) #if ENABLED(ULTIPANEL)
void lcd_buttons_update(); void lcd_buttons_update();
extern volatile uint8_t buttons; // the last checked buttons in a bit array. extern volatile uint8_t buttons; // the last checked buttons in a bit array.
#if ENABLED(FILAMENT_CHANGE_FEATURE)
enum FilamentChangeMessage {
FILAMENT_CHANGE_MESSAGE_INIT,
FILAMENT_CHANGE_MESSAGE_UNLOAD,
FILAMENT_CHANGE_MESSAGE_INSERT,
FILAMENT_CHANGE_MESSAGE_LOAD,
FILAMENT_CHANGE_MESSAGE_EXTRUDE,
FILAMENT_CHANGE_MESSAGE_OPTION,
FILAMENT_CHANGE_MESSAGE_RESUME,
FILAMENT_CHANGE_MESSAGE_STATUS
};
void lcd_filament_change_show_message(FilamentChangeMessage message);
#endif
#else #else
FORCE_INLINE void lcd_buttons_update() {} FORCE_INLINE void lcd_buttons_update() {}
#endif #endif
......
...@@ -321,7 +321,7 @@ void Endstops::update() { ...@@ -321,7 +321,7 @@ void Endstops::update() {
#endif // !Z_DUAL_ENDSTOPS #endif // !Z_DUAL_ENDSTOPS
#endif // HAS_Z_MIN #endif // HAS_Z_MIN
#if ENABLED(Z_PROBE_ENDSTOP) #if HAS(Z_PROBE)
if (z_probe_enabled) { if (z_probe_enabled) {
UPDATE_ENDSTOP(Z, PROBE); UPDATE_ENDSTOP(Z, PROBE);
if (TEST_ENDSTOP(Z_PROBE)) SBI(endstop_hit_bits, Z_PROBE); if (TEST_ENDSTOP(Z_PROBE)) SBI(endstop_hit_bits, Z_PROBE);
......
...@@ -68,7 +68,7 @@ class Endstops { ...@@ -68,7 +68,7 @@ class Endstops {
/** /**
* Print an error message reporting the position when the endstops were last hit. * Print an error message reporting the position when the endstops were last hit.
*/ */
void report_state(); //call from somewhere to create an serial error message with the locations the endstops where hit, in case they were triggered void report_state(); // call from somewhere to create an serial error message with the locations the endstops where hit, in case they were triggered
/** /**
* Report endstop positions in response to M119 * Report endstop positions in response to M119
......
...@@ -406,24 +406,24 @@ ...@@ -406,24 +406,24 @@
#endif #endif
#endif #endif
#if ENABLED(FILAMENTCHANGEENABLE) #if ENABLED(FILAMENT_CHANGE_FEATURE)
#if DISABLED(FILAMENTCHANGE_XPOS) #if DISABLED(FILAMENT_CHANGE_X_POS)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_XPOS #error DEPENDENCY ERROR: Missing setting FILAMENT_CHANGE_X_POS
#endif #endif
#if DISABLED(FILAMENTCHANGE_YPOS) #if DISABLED(FILAMENT_CHANGE_Y_POS)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_YPOS #error DEPENDENCY ERROR: Missing setting FILAMENT_CHANGE_Y_POS
#endif #endif
#if DISABLED(FILAMENTCHANGE_ZADD) #if DISABLED(FILAMENT_CHANGE_Z_ADD)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_ZADD #error DEPENDENCY ERROR: Missing setting FILAMENT_CHANGE_Z_ADD
#endif #endif
#if DISABLED(FILAMENTCHANGE_FIRSTRETRACT) #if DISABLED(FILAMENT_CHANGE_RETRACT_LENGTH)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_FIRSTRETRACT #error DEPENDENCY ERROR: Missing setting FILAMENT_CHANGE_RETRACT_LENGTH
#endif #endif
#if DISABLED(FILAMENTCHANGE_FINALRETRACT) #if DISABLED(FILAMENT_CHANGE_UNLOAD_LENGTH)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_FINALRETRACT #error DEPENDENCY ERROR: Missing setting FILAMENT_CHANGE_UNLOAD_LENGTH
#endif #endif
#if DISABLED(FILAMENTCHANGE_PRINTEROFF) #if DISABLED(FILAMENT_CHANGE_PRINTER_OFF)
#error DEPENDENCY ERROR: Missing setting FILAMENTCHANGE_PRINTEROFF #error DEPENDENCY ERROR: Missing setting FILAMENT_CHANGE_PRINTER_OFF
#endif #endif
#endif #endif
...@@ -1472,10 +1472,10 @@ ...@@ -1472,10 +1472,10 @@
#endif #endif
/** /**
* Required LCD for FILAMENTCHANGEENABLE * Required LCD for FILAMENT_CHANGE_FEATURE
*/ */
#if ENABLED(FILAMENTCHANGEENABLE) && DISABLED(ULTRA_LCD) #if ENABLED(FILAMENT_CHANGE_FEATURE) && DISABLED(ULTRA_LCD)
#error DEPENDENCY ERROR: You must have LCD in order to use FILAMENTCHANGEENABLE #error DEPENDENCY ERROR: You must have LCD in order to use FILAMENT_CHANGE_FEATURE
#endif #endif
/** /**
......
...@@ -97,14 +97,14 @@ unsigned char soft_pwm_bed; ...@@ -97,14 +97,14 @@ unsigned char soft_pwm_bed;
#endif #endif
#if ENABLED(THERMAL_PROTECTION_HOTENDS) || ENABLED(THERMAL_PROTECTION_BED) #if ENABLED(THERMAL_PROTECTION_HOTENDS) || ENABLED(THERMAL_PROTECTION_BED)
enum TRState { TRReset, TRInactive, TRFirstHeating, TRStable, TRRunaway }; enum TRState { TRInactive, TRFirstHeating, TRStable, TRRunaway };
void thermal_runaway_protection(TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc); void thermal_runaway_protection(TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc);
#if ENABLED(THERMAL_PROTECTION_HOTENDS) #if ENABLED(THERMAL_PROTECTION_HOTENDS)
static TRState thermal_runaway_state_machine[HOTENDS] = { TRReset }; static TRState thermal_runaway_state_machine[HOTENDS] = { TRInactive };
static millis_t thermal_runaway_timer[HOTENDS] = { 0 }; static millis_t thermal_runaway_timer[HOTENDS] = { 0 };
#endif #endif
#if ENABLED(THERMAL_PROTECTION_BED) && TEMP_SENSOR_BED != 0 #if ENABLED(THERMAL_PROTECTION_BED) && TEMP_SENSOR_BED != 0
static TRState thermal_runaway_bed_state_machine = TRReset; static TRState thermal_runaway_bed_state_machine = TRInactive;
static millis_t thermal_runaway_bed_timer; static millis_t thermal_runaway_bed_timer;
#endif #endif
#endif #endif
...@@ -1284,33 +1284,26 @@ void tp_init() { ...@@ -1284,33 +1284,26 @@ void tp_init() {
int heater_index = heater_id >= 0 ? heater_id : HOTENDS; int heater_index = heater_id >= 0 ? heater_id : HOTENDS;
// If the target temperature changes, restart // If the target temperature changes, restart
if (tr_target_temperature[heater_index] != target_temperature) if (tr_target_temperature[heater_index] != target_temperature) {
*state = TRReset; tr_target_temperature[heater_index] = target_temperature;
*state = target_temperature > 0 ? TRFirstHeating : TRInactive;
}
switch (*state) { switch (*state) {
case TRReset:
*timer = 0;
*state = TRInactive;
// Inactive state waits for a target temperature to be set // Inactive state waits for a target temperature to be set
case TRInactive: case TRInactive: break;
if (target_temperature > 0) {
tr_target_temperature[heater_index] = target_temperature;
*state = TRFirstHeating;
}
break;
// When first heating, wait for the temperature to be reached then go to Stable state // When first heating, wait for the temperature to be reached then go to Stable state
case TRFirstHeating: case TRFirstHeating:
if (temperature >= tr_target_temperature[heater_index]) *state = TRStable; if (temperature < tr_target_temperature[heater_index]) break;
break; *state = TRStable;
// While the temperature is stable watch for a bad temperature // While the temperature is stable watch for a bad temperature
case TRStable: case TRStable:
// If the temperature is over the target (-hysteresis) restart the timer if (temperature < tr_target_temperature[heater_index] - hysteresis_degc && ELAPSED(millis(), *timer))
if (temperature >= tr_target_temperature[heater_index] - hysteresis_degc)
*timer = millis();
// If the timer goes too long without a reset, trigger shutdown
else if (ELAPSED(millis(), *timer + period_seconds * 1000UL))
*state = TRRunaway; *state = TRRunaway;
else {
*timer = millis() + period_seconds * 1000UL;
break; break;
}
case TRRunaway: case TRRunaway:
_temp_error(heater_id, PSTR(SERIAL_T_THERMAL_RUNAWAY), PSTR(MSG_THERMAL_RUNAWAY)); _temp_error(heater_id, PSTR(SERIAL_T_THERMAL_RUNAWAY), PSTR(MSG_THERMAL_RUNAWAY));
} }
......
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