From 469aa100974072bbec469608a84cd181b503f336 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Fri, 29 Mar 2019 07:27:29 +0100 Subject: [PATCH 001/271] Enable MMU cutter. --- Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h | 2 +- Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h | 2 +- Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h | 2 +- Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h | 2 +- Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 2 +- Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h index b5e9c1af0..cd6367422 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h @@ -500,7 +500,7 @@ #define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_FORCE_STEALTH_MODE #define MMU_DEBUG //print communication between MMU2 and printer on serial -//#define MMU_HAS_CUTTER +#define MMU_HAS_CUTTER #define MMU_IDLER_SENSOR_ATTEMPTS_NR 21 //max. number of attempts to load filament if first load failed; value for max bowden length and case when loading fails right at the beginning diff --git a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h index 05b5e0923..4d76675ce 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h @@ -501,7 +501,7 @@ #define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_FORCE_STEALTH_MODE #define MMU_DEBUG //print communication between MMU2 and printer on serial -//#define MMU_HAS_CUTTER +#define MMU_HAS_CUTTER #define MMU_IDLER_SENSOR_ATTEMPTS_NR 21 //max. number of attempts to load filament if first load failed; value for max bowden length and case when loading fails right at the beginning diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h index a1822970c..1c24d1a17 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h @@ -500,7 +500,7 @@ #define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_FORCE_STEALTH_MODE #define MMU_DEBUG //print communication between MMU2 and printer on serial -//#define MMU_HAS_CUTTER +#define MMU_HAS_CUTTER #define MMU_IDLER_SENSOR_ATTEMPTS_NR 21 //max. number of attempts to load filament if first load failed; value for max bowden length and case when loading fails right at the beginning diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h index 92773807c..997929941 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h @@ -501,7 +501,7 @@ #define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_FORCE_STEALTH_MODE #define MMU_DEBUG //print communication between MMU2 and printer on serial -//#define MMU_HAS_CUTTER +#define MMU_HAS_CUTTER #define MMU_IDLER_SENSOR_ATTEMPTS_NR 21 //max. number of attempts to load filament if first load failed; value for max bowden length and case when loading fails right at the beginning diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index 4a1fe53cf..d5ff5dfa4 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -626,7 +626,7 @@ #define MMU_REQUIRED_FW_BUILDNR 83 #define MMU_HWRESET #define MMU_DEBUG //print communication between MMU2 and printer on serial -//#define MMU_HAS_CUTTER +#define MMU_HAS_CUTTER #define MMU_IDLER_SENSOR_ATTEMPTS_NR 21 //max. number of attempts to load filament if first load failed; value for max bowden length and case when loading fails right at the beginning #endif //__CONFIGURATION_PRUSA_H diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index 1c0c6d28e..d0227fdf7 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -626,7 +626,7 @@ #define MMU_REQUIRED_FW_BUILDNR 83 #define MMU_HWRESET #define MMU_DEBUG //print communication between MMU2 and printer on serial -//#define MMU_HAS_CUTTER +#define MMU_HAS_CUTTER #define MMU_IDLER_SENSOR_ATTEMPTS_NR 21 //max. number of attempts to load filament if first load failed; value for max bowden length and case when loading fails right at the beginning #endif //__CONFIGURATION_PRUSA_H From eeea2725cba04a94c78bfd1cf58c7465087a6c25 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 17 Mar 2019 19:49:21 +0100 Subject: [PATCH 002/271] Partial LA15 support --- Firmware/ConfigurationStore.cpp | 4 +- Firmware/Configuration_adv.h | 51 +++++---------- Firmware/Marlin_main.cpp | 28 +++------ Firmware/planner.cpp | 107 ++++++++++++++++++++------------ Firmware/planner.h | 7 ++- 5 files changed, 99 insertions(+), 98 deletions(-) diff --git a/Firmware/ConfigurationStore.cpp b/Firmware/ConfigurationStore.cpp index f2df8fc6c..8ed2dd708 100644 --- a/Firmware/ConfigurationStore.cpp +++ b/Firmware/ConfigurationStore.cpp @@ -165,8 +165,8 @@ void Config_PrintSettings(uint8_t level) #endif if (level >= 10) { #ifdef LIN_ADVANCE - printf_P(PSTR("%SLinear advance settings:\n M900 K%.2f E/D = %.2f\n"), - echomagic, extruder_advance_k, advance_ed_ratio); + printf_P(PSTR("%SLinear advance settings:\n M900 K%.2f\n"), + echomagic, extruder_advance_K); #endif //LIN_ADVANCE } } diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index 951302877..d731e8633 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -276,43 +276,26 @@ #endif /** - * Implementation of linear pressure control - * - * Assumption: advance = k * (delta velocity) - * K=0 means advance disabled. - * See Marlin documentation for calibration instructions. - */ + * Linear Pressure Control v1.5 + * + * Assumption: advance [steps] = k * (delta velocity [steps/s]) + * K=0 means advance disabled. + * + * NOTE: K values for LIN_ADVANCE 1.5 differ from earlier versions! + * + * Set K around 0.22 for 3mm PLA Direct Drive with ~6.5cm between the drive gear and heatbreak. + * Larger K values will be needed for flexible filament and greater distances. + * If this algorithm produces a higher speed offset than the extruder can handle (compared to E jerk) + * print acceleration will be reduced during the affected moves to keep within the limit. + * + * See http://marlinfw.org/docs/features/lin_advance.html for full instructions. + * Mention @Sebastianv650 on GitHub to alert the author of any issues. + */ #define LIN_ADVANCE #ifdef LIN_ADVANCE - #define LIN_ADVANCE_K 0 //Try around 45 for PLA, around 25 for ABS. - - /** - * Some Slicers produce Gcode with randomly jumping extrusion widths occasionally. - * For example within a 0.4mm perimeter it may produce a single segment of 0.05mm width. - * While this is harmless for normal printing (the fluid nature of the filament will - * close this very, very tiny gap), it throws off the LIN_ADVANCE pressure adaption. - * - * For this case LIN_ADVANCE_E_D_RATIO can be used to set the extrusion:distance ratio - * to a fixed value. Note that using a fixed ratio will lead to wrong nozzle pressures - * if the slicer is using variable widths or layer heights within one print! - * - * This option sets the default E:D ratio at startup. Use `M900` to override this value. - * - * Example: `M900 W0.4 H0.2 D1.75`, where: - * - W is the extrusion width in mm - * - H is the layer height in mm - * - D is the filament diameter in mm - * - * Example: `M900 R0.0458` to set the ratio directly. - * - * Set to 0 to auto-detect the ratio based on given Gcode G1 print moves. - * - * Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode. - * Cura (as of this writing) may produce Gcode incompatible with the automatic mode. - */ -#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI) - // Example: 0.4 * 0.2 / ((1.75 / 2) ^ 2 * PI) = 0.033260135 + #define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed + //#define LA_DEBUG // If enabled, this will generate debug information output over USB. #endif // Arc interpretation settings: diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index d37fbb38e..b9af28b7a 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2073,35 +2073,23 @@ static float probe_pt(float x, float y, float z_before) { #ifdef LIN_ADVANCE /** - * M900: Set and/or Get advance K factor and WH/D ratio + * M900: Set and/or Get advance K factor * * K Set advance K factor - * R Set ratio directly (overrides WH/D) - * W H D Set ratio from WH/D */ inline void gcode_M900() { st_synchronize(); const float newK = code_seen('K') ? code_value_float() : -1; - if (newK >= 0) extruder_advance_k = newK; - - float newR = code_seen('R') ? code_value_float() : -1; - if (newR < 0) { - const float newD = code_seen('D') ? code_value_float() : -1, - newW = code_seen('W') ? code_value_float() : -1, - newH = code_seen('H') ? code_value_float() : -1; - if (newD >= 0 && newW >= 0 && newH >= 0) - newR = newD ? (newW * newH) / (sq(newD * 0.5) * M_PI) : 0; - } - if (newR >= 0) advance_ed_ratio = newR; - + if (newK >= 0 && newK < 10) + extruder_advance_K = newK; + else + SERIAL_ECHOLNPGM("K out of allowed range!"); + SERIAL_ECHO_START; SERIAL_ECHOPGM("Advance K="); - SERIAL_ECHOLN(extruder_advance_k); - SERIAL_ECHOPGM(" E/D="); - const float ratio = advance_ed_ratio; - if (ratio) SERIAL_ECHOLN(ratio); else SERIAL_ECHOLNPGM("Auto"); - } + SERIAL_ECHOLN(extruder_advance_K); +} #endif // LIN_ADVANCE bool check_commands() { diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 4a8d6659a..43c9f10b7 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -126,8 +126,7 @@ float extrude_min_temp=EXTRUDE_MINTEMP; #endif #ifdef LIN_ADVANCE - float extruder_advance_k = LIN_ADVANCE_K, - advance_ed_ratio = LIN_ADVANCE_E_D_RATIO, + float extruder_advance_K = LIN_ADVANCE_K, position_float[NUM_AXIS] = { 0 }; #endif @@ -402,6 +401,13 @@ void planner_recalculate(const float &safe_final_speed) if ((prev->flag | current->flag) & BLOCK_FLAG_RECALCULATE) { // NOTE: Entry and exit factors always > 0 by all previous logic operations. calculate_trapezoid_for_block(prev, prev->entry_speed, current->entry_speed); + #ifdef LIN_ADVANCE + if (current->use_advance_lead) { + const float comp = current->e_D_ratio * extruder_advance_K * axis_steps_per_unit[E_AXIS]; + current->max_adv_steps = current->nominal_speed * comp; + current->final_adv_steps = next->entry_speed * comp; + } + #endif // Reset current only to ensure next trapezoid is computed. prev->flag &= ~BLOCK_FLAG_RECALCULATE; } @@ -415,6 +421,13 @@ void planner_recalculate(const float &safe_final_speed) // Last/newest block in buffer. Exit speed is set with safe_final_speed. Always recalculated. current = block_buffer + prev_block_index(block_buffer_head); calculate_trapezoid_for_block(current, current->entry_speed, safe_final_speed); + #ifdef LIN_ADVANCE + if (current->use_advance_lead) { + const float comp = current->e_D_ratio * extruder_advance_K * axis_steps_per_unit[E_AXIS]; + current->max_adv_steps = current->nominal_speed * comp; + current->final_adv_steps = safe_final_speed * comp; + } + #endif current->flag &= ~BLOCK_FLAG_RECALCULATE; // SERIAL_ECHOLNPGM("planner_recalculate - 4"); @@ -748,11 +761,6 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate #endif // ENABLE_MESH_BED_LEVELING target[E_AXIS] = lround(e*cs.axis_steps_per_unit[E_AXIS]); -#ifdef LIN_ADVANCE - const float mm_D_float = sqrt(sq(x - position_float[X_AXIS]) + sq(y - position_float[Y_AXIS])); - float de_float = e - position_float[E_AXIS]; -#endif - #ifdef PREVENT_DANGEROUS_EXTRUDE if(target[E_AXIS]!=position[E_AXIS]) { @@ -761,7 +769,6 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate position[E_AXIS]=target[E_AXIS]; //behave as if the move really took place, but ignore E part #ifdef LIN_ADVANCE position_float[E_AXIS] = e; - de_float = 0; #endif SERIAL_ECHO_START; SERIAL_ECHOLNRPGM(_n(" cold extrusion prevented"));////MSG_ERR_COLD_EXTRUDE_STOP @@ -773,7 +780,6 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate position[E_AXIS]=target[E_AXIS]; //behave as if the move really took place, but ignore E part #ifdef LIN_ADVANCE position_float[E_AXIS] = e; - de_float = 0; #endif SERIAL_ECHO_START; SERIAL_ECHOLNRPGM(_n(" too long extrusion prevented"));////MSG_ERR_LONG_EXTRUDE_STOP @@ -1001,10 +1007,50 @@ Having the real displacement of the head, we can calculate the total movement le if(block->steps_x.wide == 0 && block->steps_y.wide == 0 && block->steps_z.wide == 0) { block->acceleration_st = ceil(cs.retract_acceleration * steps_per_mm); // convert to: acceleration steps/sec^2 + #ifdef LIN_ADVANCE + block->use_advance_lead = false; + #endif } else { block->acceleration_st = ceil(cs.acceleration * steps_per_mm); // convert to: acceleration steps/sec^2 + + #ifdef LIN_ADVANCE + /** + * + * Use LIN_ADVANCE for blocks if all these are true: + * + * block->steps_e : This is a print move, because we checked for X, Y, Z steps before. + * + * extruder_advance_K : There is an advance factor set. + * + * delta_mm[E_AXIS] > 0 : Extruder is running forward (e.g., for "Wipe while retracting" (Slic3r) or "Combing" (Cura) moves) + */ + block->use_advance_lead = block->steps_e + && extruder_advance_K + && delta_mm[E_AXIS] > 0; + + if (block->use_advance_lead) { + block->e_D_ratio = (e - position_float[E_AXIS]) / + sqrt(sq(x - position_float[X_AXIS]) + + sq(y - position_float[Y_AXIS]) + + sq(z - position_float[Z_AXIS])); + + // Check for unusual high e_D ratio to detect if a retract move was combined with the last print move due to min. steps per segment. Never execute this with advance! + // This assumes no one will use a retract length of 0mm < retr_length < ~0.2mm and no one will print 100mm wide lines using 3mm filament or 35mm wide lines using 1.75mm filament. + if (block->e_D_ratio > 3.0) + block->use_advance_lead = false; + else { + const uint32_t max_accel_steps_per_s2 = max_jerk[E_AXIS] / (extruder_advance_K * block->e_D_ratio) * steps_per_mm; + #ifdef LA_DEBUG + if (block->acceleration_st > max_accel_steps_per_s2) + SERIAL_ECHOLNPGM("Acceleration limited."); + #endif + NOMORE(block->acceleration_st, max_accel_steps_per_s2); + } + } + #endif + // Limit acceleration per axis //FIXME Vojtech: One shall rather limit a projection of the acceleration vector instead of using the limit. if(((float)block->acceleration_st * (float)block->steps_x.wide / (float)block->step_event_count.wide) > axis_steps_per_sqr_second[X_AXIS]) @@ -1037,6 +1083,18 @@ Having the real displacement of the head, we can calculate the total movement le block->acceleration_rate = (long)((float)block->acceleration_st * (16777216.0 / (F_CPU / 8.0))); + #ifdef LIN_ADVANCE + if (block->use_advance_lead) { + block->advance_speed = ((F_CPU) * 0.125) / (extruder_advance_K * block->e_D_ratio * block->acceleration * axis_steps_per_unit[E_AXIS]); + #ifdef LA_DEBUG + if (extruder_advance_K * block->e_D_ratio * block->acceleration * 2 < block->nominal_speed * block->e_D_ratio) + SERIAL_ECHOLNPGM("More than 2 steps per eISR loop executed."); + if (block->advance_speed < 200) + SERIAL_ECHOLNPGM("eISR running at > 10kHz."); + #endif + } + #endif + // Start with a safe speed. // Safe speed is the speed, from which the machine may halt to stop immediately. float safe_speed = block->nominal_speed; @@ -1153,37 +1211,6 @@ Having the real displacement of the head, we can calculate the total movement le previous_nominal_speed = block->nominal_speed; previous_safe_speed = safe_speed; -#ifdef LIN_ADVANCE - - // - // Use LIN_ADVANCE for blocks if all these are true: - // - // esteps : We have E steps todo (a printing move) - // - // block->steps[X_AXIS] || block->steps[Y_AXIS] : We have a movement in XY direction (i.e., not retract / prime). - // - // extruder_advance_k : There is an advance factor set. - // - // block->steps[E_AXIS] != block->step_event_count : A problem occurs if the move before a retract is too small. - // In that case, the retract and move will be executed together. - // This leads to too many advance steps due to a huge e_acceleration. - // The math is good, but we must avoid retract moves with advance! - // de_float > 0.0 : Extruder is running forward (e.g., for "Wipe while retracting" (Slic3r) or "Combing" (Cura) moves) - // - block->use_advance_lead = block->steps_e.wide - && (block->steps_x.wide || block->steps_y.wide) - && extruder_advance_k - && (uint32_t)block->steps_e.wide != block->step_event_count.wide - && de_float > 0.0; - if (block->use_advance_lead) - block->abs_adv_steps_multiplier8 = lround( - extruder_advance_k - * ((advance_ed_ratio < 0.000001) ? de_float / mm_D_float : advance_ed_ratio) // Use the fixed ratio, if set - * (block->nominal_speed / (float)block->nominal_rate) - * cs.axis_steps_per_unit[E_AXIS] * 256.0 - ); -#endif - // Precalculate the division, so when all the trapezoids in the planner queue get recalculated, the division is not repeated. block->speed_factor = block->nominal_rate / block->nominal_speed; calculate_trapezoid_for_block(block, block->entry_speed, safe_speed); diff --git a/Firmware/planner.h b/Firmware/planner.h index b6a9f8361..a99f02ede 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -113,14 +113,17 @@ typedef struct { #ifdef LIN_ADVANCE bool use_advance_lead; - unsigned long abs_adv_steps_multiplier8; // Factorised by 2^8 to avoid float + uint16_t advance_speed, // Timer value for extruder speed offset + max_adv_steps, // max. advance steps to get cruising speed pressure (not always nominal_speed!) + final_adv_steps; // advance steps due to exit speed + float e_D_ratio; #endif uint16_t sdlen; } block_t; #ifdef LIN_ADVANCE - extern float extruder_advance_k, advance_ed_ratio; + extern float extruder_advance_K; #endif #ifdef ENABLE_AUTO_BED_LEVELING From 45563bfdd3d3cb2df1e08c9ea39e6a3abbb94dc5 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 18 Mar 2019 18:43:22 +0100 Subject: [PATCH 003/271] Formatting sanity --- Firmware/planner.cpp | 134 +++++++++++++++++++++---------------------- 1 file changed, 65 insertions(+), 69 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 43c9f10b7..a84411980 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -126,8 +126,8 @@ float extrude_min_temp=EXTRUDE_MINTEMP; #endif #ifdef LIN_ADVANCE - float extruder_advance_K = LIN_ADVANCE_K, - position_float[NUM_AXIS] = { 0 }; +float extruder_advance_K = LIN_ADVANCE_K; +float position_float[NUM_AXIS] = { 0 }; #endif // Returns the index of the next block in the ring buffer @@ -402,11 +402,11 @@ void planner_recalculate(const float &safe_final_speed) // NOTE: Entry and exit factors always > 0 by all previous logic operations. calculate_trapezoid_for_block(prev, prev->entry_speed, current->entry_speed); #ifdef LIN_ADVANCE - if (current->use_advance_lead) { - const float comp = current->e_D_ratio * extruder_advance_K * axis_steps_per_unit[E_AXIS]; - current->max_adv_steps = current->nominal_speed * comp; - current->final_adv_steps = next->entry_speed * comp; - } + if (current->use_advance_lead) { + const float comp = current->e_D_ratio * extruder_advance_K * axis_steps_per_unit[E_AXIS]; + current->max_adv_steps = current->nominal_speed * comp; + current->final_adv_steps = next->entry_speed * comp; + } #endif // Reset current only to ensure next trapezoid is computed. prev->flag &= ~BLOCK_FLAG_RECALCULATE; @@ -422,11 +422,11 @@ void planner_recalculate(const float &safe_final_speed) current = block_buffer + prev_block_index(block_buffer_head); calculate_trapezoid_for_block(current, current->entry_speed, safe_final_speed); #ifdef LIN_ADVANCE - if (current->use_advance_lead) { - const float comp = current->e_D_ratio * extruder_advance_K * axis_steps_per_unit[E_AXIS]; - current->max_adv_steps = current->nominal_speed * comp; - current->final_adv_steps = safe_final_speed * comp; - } + if (current->use_advance_lead) { + const float comp = current->e_D_ratio * extruder_advance_K * axis_steps_per_unit[E_AXIS]; + current->max_adv_steps = current->nominal_speed * comp; + current->final_adv_steps = safe_final_speed * comp; + } #endif current->flag &= ~BLOCK_FLAG_RECALCULATE; @@ -437,9 +437,9 @@ void plan_init() { block_buffer_head = 0; block_buffer_tail = 0; memset(position, 0, sizeof(position)); // clear position -#ifdef LIN_ADVANCE + #ifdef LIN_ADVANCE memset(position_float, 0, sizeof(position)); // clear position -#endif + #endif previous_speed[0] = 0.0; previous_speed[1] = 0.0; previous_speed[2] = 0.0; @@ -767,9 +767,9 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate if(degHotend(active_extruder)cs.axis_steps_per_unit[E_AXIS]*EXTRUDE_MAXLENGTH) { position[E_AXIS]=target[E_AXIS]; //behave as if the move really took place, but ignore E part -#ifdef LIN_ADVANCE - position_float[E_AXIS] = e; -#endif + #ifdef LIN_ADVANCE + position_float[E_AXIS] = e; + #endif SERIAL_ECHO_START; SERIAL_ECHOLNRPGM(_n(" too long extrusion prevented"));////MSG_ERR_LONG_EXTRUDE_STOP } @@ -1008,7 +1008,7 @@ Having the real displacement of the head, we can calculate the total movement le { block->acceleration_st = ceil(cs.retract_acceleration * steps_per_mm); // convert to: acceleration steps/sec^2 #ifdef LIN_ADVANCE - block->use_advance_lead = false; + block->use_advance_lead = false; #endif } else @@ -1016,39 +1016,35 @@ Having the real displacement of the head, we can calculate the total movement le block->acceleration_st = ceil(cs.acceleration * steps_per_mm); // convert to: acceleration steps/sec^2 #ifdef LIN_ADVANCE - /** - * - * Use LIN_ADVANCE for blocks if all these are true: - * - * block->steps_e : This is a print move, because we checked for X, Y, Z steps before. - * - * extruder_advance_K : There is an advance factor set. - * - * delta_mm[E_AXIS] > 0 : Extruder is running forward (e.g., for "Wipe while retracting" (Slic3r) or "Combing" (Cura) moves) - */ - block->use_advance_lead = block->steps_e - && extruder_advance_K - && delta_mm[E_AXIS] > 0; + /** + * Use LIN_ADVANCE for blocks if all these are true: + * + * block->steps_e : This is a print move, because we checked for X, Y, Z steps before. + * extruder_advance_K : There is an advance factor set. + * delta_mm[E_AXIS] > 0 : Extruder is running forward (e.g., for "Wipe while retracting" (Slic3r) or "Combing" (Cura) moves) + */ + block->use_advance_lead = block->steps_e + && extruder_advance_K + && delta_mm[E_AXIS] > 0; + if (block->use_advance_lead) { + block->e_D_ratio = (e - position_float[E_AXIS]) / + sqrt(sq(x - position_float[X_AXIS]) + + sq(y - position_float[Y_AXIS]) + + sq(z - position_float[Z_AXIS])); - if (block->use_advance_lead) { - block->e_D_ratio = (e - position_float[E_AXIS]) / - sqrt(sq(x - position_float[X_AXIS]) - + sq(y - position_float[Y_AXIS]) - + sq(z - position_float[Z_AXIS])); - - // Check for unusual high e_D ratio to detect if a retract move was combined with the last print move due to min. steps per segment. Never execute this with advance! - // This assumes no one will use a retract length of 0mm < retr_length < ~0.2mm and no one will print 100mm wide lines using 3mm filament or 35mm wide lines using 1.75mm filament. - if (block->e_D_ratio > 3.0) - block->use_advance_lead = false; - else { - const uint32_t max_accel_steps_per_s2 = max_jerk[E_AXIS] / (extruder_advance_K * block->e_D_ratio) * steps_per_mm; - #ifdef LA_DEBUG - if (block->acceleration_st > max_accel_steps_per_s2) - SERIAL_ECHOLNPGM("Acceleration limited."); - #endif - NOMORE(block->acceleration_st, max_accel_steps_per_s2); - } + // Check for unusual high e_D ratio to detect if a retract move was combined with the last print move due to min. steps per segment. Never execute this with advance! + // This assumes no one will use a retract length of 0mm < retr_length < ~0.2mm and no one will print 100mm wide lines using 3mm filament or 35mm wide lines using 1.75mm filament. + if (block->e_D_ratio > 3.0) + block->use_advance_lead = false; + else { + const uint32_t max_accel_steps_per_s2 = max_jerk[E_AXIS] / (extruder_advance_K * block->e_D_ratio) * steps_per_mm; + #ifdef LA_DEBUG + if (block->acceleration_st > max_accel_steps_per_s2) + SERIAL_ECHOLNPGM("Acceleration limited."); + #endif + NOMORE(block->acceleration_st, max_accel_steps_per_s2); } + } #endif // Limit acceleration per axis @@ -1084,15 +1080,15 @@ Having the real displacement of the head, we can calculate the total movement le block->acceleration_rate = (long)((float)block->acceleration_st * (16777216.0 / (F_CPU / 8.0))); #ifdef LIN_ADVANCE - if (block->use_advance_lead) { - block->advance_speed = ((F_CPU) * 0.125) / (extruder_advance_K * block->e_D_ratio * block->acceleration * axis_steps_per_unit[E_AXIS]); - #ifdef LA_DEBUG - if (extruder_advance_K * block->e_D_ratio * block->acceleration * 2 < block->nominal_speed * block->e_D_ratio) - SERIAL_ECHOLNPGM("More than 2 steps per eISR loop executed."); - if (block->advance_speed < 200) - SERIAL_ECHOLNPGM("eISR running at > 10kHz."); - #endif - } + if (block->use_advance_lead) { + block->advance_speed = (F_CPU / 8.0) / (extruder_advance_K * block->e_D_ratio * block->acceleration * axis_steps_per_unit[E_AXIS]); + #ifdef LA_DEBUG + if (extruder_advance_K * block->e_D_ratio * block->acceleration * 2 < block->nominal_speed * block->e_D_ratio) + SERIAL_ECHOLNPGM("More than 2 steps per eISR loop executed."); + if (block->advance_speed < 200) + SERIAL_ECHOLNPGM("eISR running at > 10kHz."); + #endif + } #endif // Start with a safe speed. @@ -1224,12 +1220,12 @@ Having the real displacement of the head, we can calculate the total movement le // Update position memcpy(position, target, sizeof(target)); // position[] = target[] -#ifdef LIN_ADVANCE + #ifdef LIN_ADVANCE position_float[X_AXIS] = x; position_float[Y_AXIS] = y; position_float[Z_AXIS] = z; position_float[E_AXIS] = e; -#endif + #endif // Recalculate the trapezoids to maximize speed at the segment transitions while respecting // the machine limits (maximum acceleration and maximum jerk). @@ -1292,12 +1288,12 @@ void plan_set_position(float x, float y, float z, const float &e) position[Z_AXIS] = lround(z*cs.axis_steps_per_unit[Z_AXIS]); #endif // ENABLE_MESH_BED_LEVELING position[E_AXIS] = lround(e*cs.axis_steps_per_unit[E_AXIS]); -#ifdef LIN_ADVANCE + #ifdef LIN_ADVANCE position_float[X_AXIS] = x; position_float[Y_AXIS] = y; position_float[Z_AXIS] = z; position_float[E_AXIS] = e; -#endif + #endif st_set_position(position[X_AXIS], position[Y_AXIS], position[Z_AXIS], position[E_AXIS]); previous_nominal_speed = 0.0; // Resets planner junction speeds. Assumes start from rest. previous_speed[0] = 0.0; @@ -1309,11 +1305,11 @@ void plan_set_position(float x, float y, float z, const float &e) // Only useful in the bed leveling routine, when the mesh bed leveling is off. void plan_set_z_position(const float &z) { - #ifdef LIN_ADVANCE - position_float[Z_AXIS] = z; - #endif - position[Z_AXIS] = lround(z*cs.axis_steps_per_unit[Z_AXIS]); - st_set_position(position[X_AXIS], position[Y_AXIS], position[Z_AXIS], position[E_AXIS]); + #ifdef LIN_ADVANCE + position_float[Z_AXIS] = z; + #endif + position[Z_AXIS] = lround(z*cs.axis_steps_per_unit[Z_AXIS]); + st_set_position(position[X_AXIS], position[Y_AXIS], position[Z_AXIS], position[E_AXIS]); } void plan_set_e_position(const float &e) From 124540a06f2f9140bcb1478433a24c7337633a7e Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 18 Mar 2019 20:58:01 +0100 Subject: [PATCH 004/271] Adapt LA changes to ConfigurationStore --- Firmware/planner.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index a84411980..f8ac2f596 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -127,7 +127,7 @@ float extrude_min_temp=EXTRUDE_MINTEMP; #ifdef LIN_ADVANCE float extruder_advance_K = LIN_ADVANCE_K; -float position_float[NUM_AXIS] = { 0 }; +float position_float[NUM_AXIS] = { 0, 0, 0, 0 }; #endif // Returns the index of the next block in the ring buffer @@ -403,7 +403,7 @@ void planner_recalculate(const float &safe_final_speed) calculate_trapezoid_for_block(prev, prev->entry_speed, current->entry_speed); #ifdef LIN_ADVANCE if (current->use_advance_lead) { - const float comp = current->e_D_ratio * extruder_advance_K * axis_steps_per_unit[E_AXIS]; + const float comp = current->e_D_ratio * extruder_advance_K * cs.axis_steps_per_unit[E_AXIS]; current->max_adv_steps = current->nominal_speed * comp; current->final_adv_steps = next->entry_speed * comp; } @@ -423,7 +423,7 @@ void planner_recalculate(const float &safe_final_speed) calculate_trapezoid_for_block(current, current->entry_speed, safe_final_speed); #ifdef LIN_ADVANCE if (current->use_advance_lead) { - const float comp = current->e_D_ratio * extruder_advance_K * axis_steps_per_unit[E_AXIS]; + const float comp = current->e_D_ratio * extruder_advance_K * cs.axis_steps_per_unit[E_AXIS]; current->max_adv_steps = current->nominal_speed * comp; current->final_adv_steps = safe_final_speed * comp; } @@ -1023,7 +1023,7 @@ Having the real displacement of the head, we can calculate the total movement le * extruder_advance_K : There is an advance factor set. * delta_mm[E_AXIS] > 0 : Extruder is running forward (e.g., for "Wipe while retracting" (Slic3r) or "Combing" (Cura) moves) */ - block->use_advance_lead = block->steps_e + block->use_advance_lead = block->steps_e.wide && extruder_advance_K && delta_mm[E_AXIS] > 0; if (block->use_advance_lead) { @@ -1037,12 +1037,13 @@ Having the real displacement of the head, we can calculate the total movement le if (block->e_D_ratio > 3.0) block->use_advance_lead = false; else { - const uint32_t max_accel_steps_per_s2 = max_jerk[E_AXIS] / (extruder_advance_K * block->e_D_ratio) * steps_per_mm; + const uint32_t max_accel_steps_per_s2 = cs.max_jerk[E_AXIS] / (extruder_advance_K * block->e_D_ratio) * steps_per_mm; + if (block->acceleration_st > max_accel_steps_per_s2) { + block->acceleration_st = max_accel_steps_per_s2; #ifdef LA_DEBUG - if (block->acceleration_st > max_accel_steps_per_s2) SERIAL_ECHOLNPGM("Acceleration limited."); #endif - NOMORE(block->acceleration_st, max_accel_steps_per_s2); + } } } #endif @@ -1081,7 +1082,7 @@ Having the real displacement of the head, we can calculate the total movement le #ifdef LIN_ADVANCE if (block->use_advance_lead) { - block->advance_speed = (F_CPU / 8.0) / (extruder_advance_K * block->e_D_ratio * block->acceleration * axis_steps_per_unit[E_AXIS]); + block->advance_speed = (F_CPU / 8.0) / (extruder_advance_K * block->e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); #ifdef LA_DEBUG if (extruder_advance_K * block->e_D_ratio * block->acceleration * 2 < block->nominal_speed * block->e_D_ratio) SERIAL_ECHOLNPGM("More than 2 steps per eISR loop executed."); From bf0c60dd4563d1dbaa2fdf72dd67b60f680702ad Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 29 Apr 2019 16:09:13 +0200 Subject: [PATCH 005/271] Factor-out some repetition into fsensor_step --- Firmware/stepper.cpp | 75 ++++++++++++++++---------------------------- 1 file changed, 27 insertions(+), 48 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 74d25777c..c80581a5e 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -352,6 +352,30 @@ FORCE_INLINE unsigned short calc_timer(uint16_t step_rate) { return timer; } + +#ifndef FILAMENT_SENSOR +#define fsensor_step(cnt) +#else +FORCE_INLINE void fsensor_step(uint8_t cnt) +{ + if (READ(E0_DIR_PIN) == INVERT_E0_DIR) + { + if (count_direction[E_AXIS] == 1) + fsensor_counter -= cnt; + else + fsensor_counter += cnt; + } + else + { + if (count_direction[E_AXIS] == 1) + fsensor_counter += cnt; + else + fsensor_counter -= cnt; + } +} +#endif + + // "The Stepper Driver Interrupt" - This timer interrupt is the workhorse. // It pops blocks from the block_buffer and executes them by pulsing the stepper pins appropriately. ISR(TIMER1_COMPA_vect) { @@ -372,22 +396,7 @@ ISR(TIMER1_COMPA_vect) { cnt++; WRITE_NC(E0_STEP_PIN, INVERT_E_STEP_PIN); } -#ifdef FILAMENT_SENSOR - if (READ(E0_DIR_PIN) == INVERT_E0_DIR) - { - if (count_direction[E_AXIS] == 1) - fsensor_counter -= cnt; - else - fsensor_counter += cnt; - } - else - { - if (count_direction[E_AXIS] == 1) - fsensor_counter += cnt; - else - fsensor_counter -= cnt; - } -#endif //FILAMENT_SENSOR + fsensor_step(cnt); if (e_steps) { // Plan another Linear Advance tick. OCR1A = eISR_Rate; @@ -916,22 +925,7 @@ FORCE_INLINE void isr() { estep_loops = (e_steps & 0x0ff00) ? 4 : e_steps; if (step_loops < estep_loops) estep_loops = step_loops; -#ifdef FILAMENT_SENSOR - if (READ(E0_DIR_PIN) == INVERT_E0_DIR) - { - if (count_direction[E_AXIS] == 1) - fsensor_counter -= estep_loops; - else - fsensor_counter += estep_loops; - } - else - { - if (count_direction[E_AXIS] == 1) - fsensor_counter += estep_loops; - else - fsensor_counter -= estep_loops; - } -#endif //FILAMENT_SENSOR + fsensor_step(estep_loops); do { WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); -- e_steps; @@ -1056,22 +1050,7 @@ FORCE_INLINE void isr() { // There is not enough time to fit even a single additional tick. // Tick all the extruder ticks now. MSerial.checkRx(); // Check for serial chars. -#ifdef FILAMENT_SENSOR - if (READ(E0_DIR_PIN) == INVERT_E0_DIR) - { - if (count_direction[E_AXIS] == 1) - fsensor_counter -= e_steps; - else - fsensor_counter += e_steps; - } - else - { - if (count_direction[E_AXIS] == 1) - fsensor_counter += e_steps; - else - fsensor_counter -= e_steps; - } -#endif //FILAMENT_SENSOR + fsensor_step(e_steps); do { WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); -- e_steps; From cbf1a85ec38fc57ca27fe77abf8f2be34e03ebf6 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 4 May 2019 21:02:33 +0200 Subject: [PATCH 006/271] Switch original LA implementation with LA1.5 This discards several Prusa optimizations for LA1.0. We'll re-implement those later if needed. Debugging is turned on. --- Firmware/Configuration_adv.h | 2 + Firmware/planner.h | 10 +- Firmware/stepper.cpp | 356 +++++++++++++---------------------- Firmware/stepper.h | 4 +- 4 files changed, 140 insertions(+), 232 deletions(-) diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index d731e8633..455033024 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -292,6 +292,8 @@ * Mention @Sebastianv650 on GitHub to alert the author of any issues. */ #define LIN_ADVANCE +#define LA_DEBUG +#define DEBUG_STEPPER_TIMER_MISSED #ifdef LIN_ADVANCE #define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed diff --git a/Firmware/planner.h b/Firmware/planner.h index a99f02ede..41e4c61bf 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -112,10 +112,10 @@ typedef struct { float speed_factor; #ifdef LIN_ADVANCE - bool use_advance_lead; - uint16_t advance_speed, // Timer value for extruder speed offset - max_adv_steps, // max. advance steps to get cruising speed pressure (not always nominal_speed!) - final_adv_steps; // advance steps due to exit speed + bool use_advance_lead; // Whether the current block uses LA + uint16_t advance_speed, // Step-rate for extruder speed + max_adv_steps, // max. advance steps to get cruising speed pressure (not always nominal_speed!) + final_adv_steps; // advance steps due to exit speed float e_D_ratio; #endif @@ -123,7 +123,7 @@ typedef struct { } block_t; #ifdef LIN_ADVANCE - extern float extruder_advance_K; +extern float extruder_advance_K; // Linear-advance K factor #endif #ifdef ENABLE_AUTO_BED_LEVELING diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index c80581a5e..6b52c5ace 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -113,21 +113,24 @@ volatile long count_position[NUM_AXIS] = { 0, 0, 0, 0}; volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1}; #ifdef LIN_ADVANCE + void advance_isr_scheduler(); + void advance_isr(); + + static const uint16_t ADV_NEVER = 0xFFFF; static uint16_t nextMainISR = 0; - static uint16_t eISR_Rate; + static uint16_t nextAdvanceISR = ADV_NEVER; - // Extrusion steps to be executed by the stepper. - // If set to non zero, the timer ISR routine will tick the Linear Advance extruder ticks first. - // If e_steps is zero, then the timer ISR routine will perform the usual DDA step. - static volatile int16_t e_steps = 0; - // How many extruder steps shall be ticked at a single ISR invocation? - static uint8_t estep_loops; - // The current speed of the extruder, scaled by the linear advance constant, so it has the same measure - // as current_adv_steps. - static int current_estep_rate; - // The current pretension of filament expressed in extruder micro steps. - static int current_adv_steps; + static uint16_t eISR_Rate = ADV_NEVER; + + static bool use_advance_lead; + + static uint16_t current_adv_steps; + static uint16_t final_adv_steps; + static uint16_t max_adv_steps; + static uint32_t LA_decelerate_after; + + static volatile int8_t e_steps; #define _NEXT_ISR(T) nextMainISR = T #else @@ -353,29 +356,6 @@ FORCE_INLINE unsigned short calc_timer(uint16_t step_rate) { } -#ifndef FILAMENT_SENSOR -#define fsensor_step(cnt) -#else -FORCE_INLINE void fsensor_step(uint8_t cnt) -{ - if (READ(E0_DIR_PIN) == INVERT_E0_DIR) - { - if (count_direction[E_AXIS] == 1) - fsensor_counter -= cnt; - else - fsensor_counter += cnt; - } - else - { - if (count_direction[E_AXIS] == 1) - fsensor_counter += cnt; - else - fsensor_counter -= cnt; - } -} -#endif - - // "The Stepper Driver Interrupt" - This timer interrupt is the workhorse. // It pops blocks from the block_buffer and executes them by pulsing the stepper pins appropriately. ISR(TIMER1_COMPA_vect) { @@ -385,38 +365,10 @@ ISR(TIMER1_COMPA_vect) { #endif //DEBUG_STACK_MONITOR #ifdef LIN_ADVANCE - // If there are any e_steps planned, tick them. - bool run_main_isr = false; - if (e_steps) { - //WRITE_NC(LOGIC_ANALYZER_CH7, true); - uint8_t cnt = 0; - for (uint8_t i = estep_loops; e_steps && i --;) { - WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); - -- e_steps; - cnt++; - WRITE_NC(E0_STEP_PIN, INVERT_E_STEP_PIN); - } - fsensor_step(cnt); - if (e_steps) { - // Plan another Linear Advance tick. - OCR1A = eISR_Rate; - nextMainISR -= eISR_Rate; - } else if (! (nextMainISR & 0x8000) || nextMainISR < 16) { - // The timer did not overflow and it is big enough, so it makes sense to plan it. - OCR1A = nextMainISR; - } else { - // The timer has overflown, or it is too small. Run the main ISR just after the Linear Advance routine - // in the current interrupt tick. - run_main_isr = true; - //FIXME pick the serial line. - } - //WRITE_NC(LOGIC_ANALYZER_CH7, false); - } else - run_main_isr = true; - - if (run_main_isr) -#endif + advance_isr_scheduler(); +#else isr(); +#endif // Don't run the ISR faster than possible // Is there a 8us time left before the next interrupt triggers? @@ -517,9 +469,14 @@ FORCE_INLINE void stepper_next_block() step_loops_nominal = 0; acc_step_rate = uint16_t(current_block->initial_rate); acceleration_time = calc_timer(acc_step_rate); + #ifdef LIN_ADVANCE - current_estep_rate = ((unsigned long)acc_step_rate * current_block->abs_adv_steps_multiplier8) >> 17; -#endif /* LIN_ADVANCE */ + if ((use_advance_lead = current_block->use_advance_lead)) { + LA_decelerate_after = current_block->decelerate_after; + final_adv_steps = current_block->final_adv_steps; + max_adv_steps = current_block->max_adv_steps; + } +#endif if (current_block->flag & BLOCK_FLAG_DDA_LOWRES) { counter_x.lo = -(current_block->step_event_count.lo >> 1); @@ -788,7 +745,7 @@ FORCE_INLINE void stepper_tick_lowres() counter_e.lo -= current_block->step_event_count.lo; count_position[E_AXIS] += count_direction[E_AXIS]; #ifdef LIN_ADVANCE - ++ e_steps; + e_steps += count_direction[E_AXIS]; #else #ifdef FILAMENT_SENSOR ++ fsensor_counter; @@ -850,11 +807,11 @@ FORCE_INLINE void stepper_tick_highres() counter_e.wide -= current_block->step_event_count.wide; count_position[E_AXIS]+=count_direction[E_AXIS]; #ifdef LIN_ADVANCE - ++ e_steps; + e_steps += count_direction[E_AXIS]; #else - #ifdef FILAMENT_SENSOR + #ifdef FILAMENT_SENSOR ++ fsensor_counter; - #endif //FILAMENT_SENSOR + #endif //FILAMENT_SENSOR WRITE(E0_STEP_PIN, INVERT_E_STEP_PIN); #endif } @@ -863,9 +820,6 @@ FORCE_INLINE void stepper_tick_highres() } } -// 50us delay -#define LIN_ADV_FIRST_TICK_DELAY 100 - FORCE_INLINE void isr() { //WRITE_NC(LOGIC_ANALYZER_CH0, true); @@ -877,65 +831,11 @@ FORCE_INLINE void isr() { if (current_block != NULL) { stepper_check_endstops(); -#ifdef LIN_ADVANCE - e_steps = 0; -#endif /* LIN_ADVANCE */ if (current_block->flag & BLOCK_FLAG_DDA_LOWRES) stepper_tick_lowres(); else stepper_tick_highres(); -#ifdef LIN_ADVANCE - if (out_bits&(1<use_advance_lead) { - //int esteps_inc = 0; - //esteps_inc = current_estep_rate - current_adv_steps; - //e_steps += esteps_inc; - e_steps += current_estep_rate - current_adv_steps; -#if 0 - if (abs(esteps_inc) > 4) { - LOGIC_ANALYZER_SERIAL_TX_WRITE(esteps_inc); - if (esteps_inc < -511 || esteps_inc > 511) - LOGIC_ANALYZER_SERIAL_TX_WRITE(esteps_inc >> 9); - } -#endif - current_adv_steps = current_estep_rate; - } - // If we have esteps to execute, step some of them now. - if (e_steps) { - //WRITE_NC(LOGIC_ANALYZER_CH7, true); - // Set the step direction. - bool neg = e_steps < 0; - { - bool dir = - #ifdef SNMM - (neg == (mmu_extruder & 1)) - #else - neg - #endif - ? INVERT_E0_DIR : !INVERT_E0_DIR; //If we have SNMM, reverse every second extruder. - WRITE_NC(E0_DIR_PIN, dir); - if (neg) - // Flip the e_steps counter to be always positive. - e_steps = - e_steps; - } - // Tick min(step_loops, abs(e_steps)). - estep_loops = (e_steps & 0x0ff00) ? 4 : e_steps; - if (step_loops < estep_loops) - estep_loops = step_loops; - fsensor_step(estep_loops); - do { - WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); - -- e_steps; - WRITE_NC(E0_STEP_PIN, INVERT_E_STEP_PIN); - } while (-- estep_loops != 0); - //WRITE_NC(LOGIC_ANALYZER_CH7, false); - MSerial.checkRx(); // Check for serial chars. - } -#endif - // Calculare new timer value // 13.38-14.63us for steady state, // 25.12us for acceleration / deceleration. @@ -952,11 +852,18 @@ FORCE_INLINE void isr() { uint16_t timer = calc_timer(acc_step_rate); _NEXT_ISR(timer); acceleration_time += timer; - #ifdef LIN_ADVANCE - if (current_block->use_advance_lead) - // int32_t = (uint16_t * uint32_t) >> 17 - current_estep_rate = ((uint32_t)acc_step_rate * current_block->abs_adv_steps_multiplier8) >> 17; - #endif +#ifdef LIN_ADVANCE + if (current_block->use_advance_lead) { + if (step_events_completed.wide == (unsigned long int)step_loops || (e_steps && eISR_Rate != current_block->advance_speed)) { + nextAdvanceISR = 0; // Wake up eISR on first acceleration loop and fire ISR if final adv_rate is reached + eISR_Rate = current_block->advance_speed; + } + } + else { + eISR_Rate = ADV_NEVER; + if (e_steps) nextAdvanceISR = 0; + } +#endif } else if (step_events_completed.wide > (unsigned long int)current_block->decelerate_after) { uint16_t step_rate; @@ -970,103 +877,35 @@ FORCE_INLINE void isr() { uint16_t timer = calc_timer(step_rate); _NEXT_ISR(timer); deceleration_time += timer; - #ifdef LIN_ADVANCE - if (current_block->use_advance_lead) - current_estep_rate = ((uint32_t)step_rate * current_block->abs_adv_steps_multiplier8) >> 17; - #endif +#ifdef LIN_ADVANCE + if (current_block->use_advance_lead) { + if (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops || (e_steps && eISR_Rate != current_block->advance_speed)) { + nextAdvanceISR = 0; // Wake up eISR on first deceleration loop + eISR_Rate = current_block->advance_speed; + } + } + else { + eISR_Rate = ADV_NEVER; + if (e_steps) nextAdvanceISR = 0; + } +#endif } else { +#ifdef LIN_ADVANCE + // If we have esteps to execute, fire the next advance_isr "now" + if (e_steps && eISR_Rate != current_block->advance_speed) nextAdvanceISR = 0; +#endif if (! step_loops_nominal) { // Calculation of the steady state timer rate has been delayed to the 1st tick of the steady state to lower // the initial interrupt blocking. OCR1A_nominal = calc_timer(uint16_t(current_block->nominal_rate)); step_loops_nominal = step_loops; - #ifdef LIN_ADVANCE - if (current_block->use_advance_lead) - current_estep_rate = (current_block->nominal_rate * current_block->abs_adv_steps_multiplier8) >> 17; - #endif } _NEXT_ISR(OCR1A_nominal); } //WRITE_NC(LOGIC_ANALYZER_CH1, false); } -#ifdef LIN_ADVANCE - if (e_steps && current_block->use_advance_lead) { - //WRITE_NC(LOGIC_ANALYZER_CH7, true); - MSerial.checkRx(); // Check for serial chars. - // Some of the E steps were not ticked yet. Plan additional interrupts. - uint16_t now = TCNT1; - // Plan the first linear advance interrupt after 50us from now. - uint16_t to_go = nextMainISR - now - LIN_ADV_FIRST_TICK_DELAY; - eISR_Rate = 0; - if ((to_go & 0x8000) == 0) { - // The to_go number is not negative. - // Count the number of 7812,5 ticks, that fit into to_go 2MHz ticks. - uint8_t ticks = to_go >> 8; - if (ticks == 1) { - // Avoid running the following loop for a very short interval. - estep_loops = 255; - eISR_Rate = 1; - } else if ((e_steps & 0x0ff00) == 0) { - // e_steps <= 0x0ff - if (uint8_t(e_steps) <= ticks) { - // Spread the e_steps along the whole go_to interval. - eISR_Rate = to_go / uint8_t(e_steps); - estep_loops = 1; - } else if (ticks != 0) { - // At least one tick fits into the to_go interval. Calculate the e-step grouping. - uint8_t e = uint8_t(e_steps) >> 1; - estep_loops = 2; - while (e > ticks) { - e >>= 1; - estep_loops <<= 1; - } - // Now the estep_loops contains the number of loops of power of 2, that will be sufficient - // to squeeze enough of Linear Advance ticks until nextMainISR. - // Calculate the tick rate. - eISR_Rate = to_go / ticks; - } - } else { - // This is an exterme case with too many e_steps inserted by the linear advance. - // At least one tick fits into the to_go interval. Calculate the e-step grouping. - estep_loops = 2; - uint16_t e = e_steps >> 1; - while (e & 0x0ff00) { - e >>= 1; - estep_loops <<= 1; - } - while (uint8_t(e) > ticks) { - e >>= 1; - estep_loops <<= 1; - } - // Now the estep_loops contains the number of loops of power of 2, that will be sufficient - // to squeeze enough of Linear Advance ticks until nextMainISR. - // Calculate the tick rate. - eISR_Rate = to_go / ticks; - } - } - if (eISR_Rate == 0) { - // There is not enough time to fit even a single additional tick. - // Tick all the extruder ticks now. - MSerial.checkRx(); // Check for serial chars. - fsensor_step(e_steps); - do { - WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); - -- e_steps; - WRITE_NC(E0_STEP_PIN, INVERT_E_STEP_PIN); - } while (e_steps); - OCR1A = nextMainISR; - } else { - // Tick the 1st Linear Advance interrupt after 50us from now. - nextMainISR -= LIN_ADV_FIRST_TICK_DELAY; - OCR1A = now + LIN_ADV_FIRST_TICK_DELAY; - } - //WRITE_NC(LOGIC_ANALYZER_CH7, false); - } else - OCR1A = nextMainISR; -#endif - // If current block is finished, reset pointer if (step_events_completed.wide >= current_block->step_event_count.wide) { #ifdef FILAMENT_SENSOR @@ -1094,14 +933,84 @@ FORCE_INLINE void isr() { } #ifdef LIN_ADVANCE +// Timer interrupt for E. e_steps is set in the main routine. + +FORCE_INLINE void advance_isr() { + if (use_advance_lead) { + if (step_events_completed.wide > LA_decelerate_after && current_adv_steps > final_adv_steps) { + e_steps--; + current_adv_steps--; + nextAdvanceISR = eISR_Rate; + } + else if (step_events_completed.wide < LA_decelerate_after && current_adv_steps < max_adv_steps) { + e_steps++; + current_adv_steps++; + nextAdvanceISR = eISR_Rate; + } + else { + nextAdvanceISR = ADV_NEVER; + eISR_Rate = ADV_NEVER; + } + } + else + nextAdvanceISR = ADV_NEVER; + + if (e_steps) { + MSerial.checkRx(); // Check for serial chars. + + bool dir = +#ifdef SNMM + ((e_steps < 0) == (snmm_extruder & 1)) +#else + (e_steps < 0) +#endif + ? INVERT_E0_DIR : !INVERT_E0_DIR; //If we have SNMM, reverse every second extruder. + WRITE(E0_DIR_PIN, dir); + + if(e_steps < 0) e_steps = -e_steps; + fsensor_counter += e_steps; + while (e_steps) { + WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); + --e_steps; + WRITE_NC(E0_STEP_PIN, INVERT_E_STEP_PIN); + } + } +} + +FORCE_INLINE void advance_isr_scheduler() { + // Run main stepping ISR if flagged + if (!nextMainISR) isr(); + + // Run Advance stepping ISR if flagged + if (!nextAdvanceISR) advance_isr(); + + // Is the next advance ISR scheduled before the next main ISR? + if (nextAdvanceISR <= nextMainISR) { + // Set up the next interrupt + OCR1A = nextAdvanceISR; + // New interval for the next main ISR + if (nextMainISR) nextMainISR -= nextAdvanceISR; + // Will call Stepper::advance_isr on the next interrupt + nextAdvanceISR = 0; + } + else { + // The next main ISR comes first + OCR1A = nextMainISR; + // New interval for the next advance ISR, if any + if (nextAdvanceISR && nextAdvanceISR != ADV_NEVER) + nextAdvanceISR -= nextMainISR; + // Will call Stepper::isr on the next interrupt + nextMainISR = 0; + } +} void clear_current_adv_vars() { - e_steps = 0; //Should be already 0 at an filament change event, but just to be sure.. - current_adv_steps = 0; + e_steps = 0; + current_adv_steps = 0; } #endif // LIN_ADVANCE - + void st_init() { #ifdef TMC2130 @@ -1326,10 +1235,9 @@ void st_init() ENABLE_STEPPER_DRIVER_INTERRUPT(); #ifdef LIN_ADVANCE - e_steps = 0; - current_adv_steps = 0; + clear_current_adv_vars(); #endif - + enable_endstops(true); // Start with endstops active. After homing they can be disabled sei(); } diff --git a/Firmware/stepper.h b/Firmware/stepper.h index 6130f3bb1..23b791848 100644 --- a/Firmware/stepper.h +++ b/Firmware/stepper.h @@ -38,9 +38,7 @@ void st_init(); void isr(); #ifdef LIN_ADVANCE - void advance_isr(); - void advance_isr_scheduler(); - void clear_current_adv_vars(); //Used to reset the built up pretension and remaining esteps on filament change. +void clear_current_adv_vars(); // Used to reset the built up pretension and remaining esteps on filament change. #endif // Block until all buffered steps are executed From ebdc5e35e7587035f783466def32fed7922af72d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 4 May 2019 23:05:30 +0200 Subject: [PATCH 007/271] Remove two more OCR1A direct manipulations Use _NEXT_ISR and st_reset_timer to correctly reinitialize and re-schedule the advance ticks. --- Firmware/stepper.cpp | 33 +++++++++++++++++++++++++++------ Firmware/stepper.h | 10 +--------- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 6b52c5ace..5a3d4010a 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -535,7 +535,7 @@ FORCE_INLINE void stepper_next_block() } } else { - OCR1A = 2000; // 1kHz. + _NEXT_ISR(2000); // 1kHz. } //WRITE_NC(LOGIC_ANALYZER_CH2, false); } @@ -1229,20 +1229,41 @@ void st_init() // create_speed_lookuptable.py TCCR1B = (TCCR1B & ~(0x07< Date: Sun, 5 May 2019 17:22:27 +0200 Subject: [PATCH 008/271] Move speed lookup defs into a separate source --- Firmware/speed_lookuptable.cpp | 147 ++++++++++++++++++++++ Firmware/speed_lookuptable.h | 217 ++++++++++++--------------------- Firmware/stepper.cpp | 86 ------------- 3 files changed, 224 insertions(+), 226 deletions(-) create mode 100644 Firmware/speed_lookuptable.cpp diff --git a/Firmware/speed_lookuptable.cpp b/Firmware/speed_lookuptable.cpp new file mode 100644 index 000000000..b8930e7bb --- /dev/null +++ b/Firmware/speed_lookuptable.cpp @@ -0,0 +1,147 @@ +#include "speed_lookuptable.h" + +#if F_CPU == 16000000 + +const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {\ +{ 62500, 55556}, { 6944, 3268}, { 3676, 1176}, { 2500, 607}, { 1893, 369}, { 1524, 249}, { 1275, 179}, { 1096, 135}, +{ 961, 105}, { 856, 85}, { 771, 69}, { 702, 58}, { 644, 49}, { 595, 42}, { 553, 37}, { 516, 32}, +{ 484, 28}, { 456, 25}, { 431, 23}, { 408, 20}, { 388, 19}, { 369, 16}, { 353, 16}, { 337, 14}, +{ 323, 13}, { 310, 11}, { 299, 11}, { 288, 11}, { 277, 9}, { 268, 9}, { 259, 8}, { 251, 8}, +{ 243, 8}, { 235, 7}, { 228, 6}, { 222, 6}, { 216, 6}, { 210, 6}, { 204, 5}, { 199, 5}, +{ 194, 5}, { 189, 4}, { 185, 4}, { 181, 4}, { 177, 4}, { 173, 4}, { 169, 4}, { 165, 3}, +{ 162, 3}, { 159, 4}, { 155, 3}, { 152, 3}, { 149, 2}, { 147, 3}, { 144, 3}, { 141, 2}, +{ 139, 3}, { 136, 2}, { 134, 2}, { 132, 3}, { 129, 2}, { 127, 2}, { 125, 2}, { 123, 2}, +{ 121, 2}, { 119, 1}, { 118, 2}, { 116, 2}, { 114, 1}, { 113, 2}, { 111, 2}, { 109, 1}, +{ 108, 2}, { 106, 1}, { 105, 2}, { 103, 1}, { 102, 1}, { 101, 1}, { 100, 2}, { 98, 1}, +{ 97, 1}, { 96, 1}, { 95, 2}, { 93, 1}, { 92, 1}, { 91, 1}, { 90, 1}, { 89, 1}, +{ 88, 1}, { 87, 1}, { 86, 1}, { 85, 1}, { 84, 1}, { 83, 0}, { 83, 1}, { 82, 1}, +{ 81, 1}, { 80, 1}, { 79, 1}, { 78, 0}, { 78, 1}, { 77, 1}, { 76, 1}, { 75, 0}, +{ 75, 1}, { 74, 1}, { 73, 1}, { 72, 0}, { 72, 1}, { 71, 1}, { 70, 0}, { 70, 1}, +{ 69, 0}, { 69, 1}, { 68, 1}, { 67, 0}, { 67, 1}, { 66, 0}, { 66, 1}, { 65, 0}, +{ 65, 1}, { 64, 1}, { 63, 0}, { 63, 1}, { 62, 0}, { 62, 1}, { 61, 0}, { 61, 1}, +{ 60, 0}, { 60, 0}, { 60, 1}, { 59, 0}, { 59, 1}, { 58, 0}, { 58, 1}, { 57, 0}, +{ 57, 1}, { 56, 0}, { 56, 0}, { 56, 1}, { 55, 0}, { 55, 1}, { 54, 0}, { 54, 0}, +{ 54, 1}, { 53, 0}, { 53, 0}, { 53, 1}, { 52, 0}, { 52, 0}, { 52, 1}, { 51, 0}, +{ 51, 0}, { 51, 1}, { 50, 0}, { 50, 0}, { 50, 1}, { 49, 0}, { 49, 0}, { 49, 1}, +{ 48, 0}, { 48, 0}, { 48, 1}, { 47, 0}, { 47, 0}, { 47, 0}, { 47, 1}, { 46, 0}, +{ 46, 0}, { 46, 1}, { 45, 0}, { 45, 0}, { 45, 0}, { 45, 1}, { 44, 0}, { 44, 0}, +{ 44, 0}, { 44, 1}, { 43, 0}, { 43, 0}, { 43, 0}, { 43, 1}, { 42, 0}, { 42, 0}, +{ 42, 0}, { 42, 1}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 1}, { 40, 0}, +{ 40, 0}, { 40, 0}, { 40, 0}, { 40, 1}, { 39, 0}, { 39, 0}, { 39, 0}, { 39, 0}, +{ 39, 1}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 1}, { 37, 0}, { 37, 0}, +{ 37, 0}, { 37, 0}, { 37, 0}, { 37, 1}, { 36, 0}, { 36, 0}, { 36, 0}, { 36, 0}, +{ 36, 1}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 1}, +{ 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 1}, { 33, 0}, { 33, 0}, +{ 33, 0}, { 33, 0}, { 33, 0}, { 33, 0}, { 33, 1}, { 32, 0}, { 32, 0}, { 32, 0}, +{ 32, 0}, { 32, 0}, { 32, 0}, { 32, 0}, { 32, 1}, { 31, 0}, { 31, 0}, { 31, 0}, +{ 31, 0}, { 31, 0}, { 31, 0}, { 31, 1}, { 30, 0}, { 30, 0}, { 30, 0}, { 30, 0} +}; + +const uint16_t speed_lookuptable_slow[256][2] PROGMEM = {\ +{ 62500, 12500}, { 50000, 8334}, { 41666, 5952}, { 35714, 4464}, { 31250, 3473}, { 27777, 2777}, { 25000, 2273}, { 22727, 1894}, +{ 20833, 1603}, { 19230, 1373}, { 17857, 1191}, { 16666, 1041}, { 15625, 920}, { 14705, 817}, { 13888, 731}, { 13157, 657}, +{ 12500, 596}, { 11904, 541}, { 11363, 494}, { 10869, 453}, { 10416, 416}, { 10000, 385}, { 9615, 356}, { 9259, 331}, +{ 8928, 308}, { 8620, 287}, { 8333, 269}, { 8064, 252}, { 7812, 237}, { 7575, 223}, { 7352, 210}, { 7142, 198}, +{ 6944, 188}, { 6756, 178}, { 6578, 168}, { 6410, 160}, { 6250, 153}, { 6097, 145}, { 5952, 139}, { 5813, 132}, +{ 5681, 126}, { 5555, 121}, { 5434, 115}, { 5319, 111}, { 5208, 106}, { 5102, 102}, { 5000, 99}, { 4901, 94}, +{ 4807, 91}, { 4716, 87}, { 4629, 84}, { 4545, 81}, { 4464, 79}, { 4385, 75}, { 4310, 73}, { 4237, 71}, +{ 4166, 68}, { 4098, 66}, { 4032, 64}, { 3968, 62}, { 3906, 60}, { 3846, 59}, { 3787, 56}, { 3731, 55}, +{ 3676, 53}, { 3623, 52}, { 3571, 50}, { 3521, 49}, { 3472, 48}, { 3424, 46}, { 3378, 45}, { 3333, 44}, +{ 3289, 43}, { 3246, 41}, { 3205, 41}, { 3164, 39}, { 3125, 39}, { 3086, 38}, { 3048, 36}, { 3012, 36}, +{ 2976, 35}, { 2941, 35}, { 2906, 33}, { 2873, 33}, { 2840, 32}, { 2808, 31}, { 2777, 30}, { 2747, 30}, +{ 2717, 29}, { 2688, 29}, { 2659, 28}, { 2631, 27}, { 2604, 27}, { 2577, 26}, { 2551, 26}, { 2525, 25}, +{ 2500, 25}, { 2475, 25}, { 2450, 23}, { 2427, 24}, { 2403, 23}, { 2380, 22}, { 2358, 22}, { 2336, 22}, +{ 2314, 21}, { 2293, 21}, { 2272, 20}, { 2252, 20}, { 2232, 20}, { 2212, 20}, { 2192, 19}, { 2173, 18}, +{ 2155, 19}, { 2136, 18}, { 2118, 18}, { 2100, 17}, { 2083, 17}, { 2066, 17}, { 2049, 17}, { 2032, 16}, +{ 2016, 16}, { 2000, 16}, { 1984, 16}, { 1968, 15}, { 1953, 16}, { 1937, 14}, { 1923, 15}, { 1908, 15}, +{ 1893, 14}, { 1879, 14}, { 1865, 14}, { 1851, 13}, { 1838, 14}, { 1824, 13}, { 1811, 13}, { 1798, 13}, +{ 1785, 12}, { 1773, 13}, { 1760, 12}, { 1748, 12}, { 1736, 12}, { 1724, 12}, { 1712, 12}, { 1700, 11}, +{ 1689, 12}, { 1677, 11}, { 1666, 11}, { 1655, 11}, { 1644, 11}, { 1633, 10}, { 1623, 11}, { 1612, 10}, +{ 1602, 10}, { 1592, 10}, { 1582, 10}, { 1572, 10}, { 1562, 10}, { 1552, 9}, { 1543, 10}, { 1533, 9}, +{ 1524, 9}, { 1515, 9}, { 1506, 9}, { 1497, 9}, { 1488, 9}, { 1479, 9}, { 1470, 9}, { 1461, 8}, +{ 1453, 8}, { 1445, 9}, { 1436, 8}, { 1428, 8}, { 1420, 8}, { 1412, 8}, { 1404, 8}, { 1396, 8}, +{ 1388, 7}, { 1381, 8}, { 1373, 7}, { 1366, 8}, { 1358, 7}, { 1351, 7}, { 1344, 8}, { 1336, 7}, +{ 1329, 7}, { 1322, 7}, { 1315, 7}, { 1308, 6}, { 1302, 7}, { 1295, 7}, { 1288, 6}, { 1282, 7}, +{ 1275, 6}, { 1269, 7}, { 1262, 6}, { 1256, 6}, { 1250, 7}, { 1243, 6}, { 1237, 6}, { 1231, 6}, +{ 1225, 6}, { 1219, 6}, { 1213, 6}, { 1207, 6}, { 1201, 5}, { 1196, 6}, { 1190, 6}, { 1184, 5}, +{ 1179, 6}, { 1173, 5}, { 1168, 6}, { 1162, 5}, { 1157, 5}, { 1152, 6}, { 1146, 5}, { 1141, 5}, +{ 1136, 5}, { 1131, 5}, { 1126, 5}, { 1121, 5}, { 1116, 5}, { 1111, 5}, { 1106, 5}, { 1101, 5}, +{ 1096, 5}, { 1091, 5}, { 1086, 4}, { 1082, 5}, { 1077, 5}, { 1072, 4}, { 1068, 5}, { 1063, 4}, +{ 1059, 5}, { 1054, 4}, { 1050, 4}, { 1046, 5}, { 1041, 4}, { 1037, 4}, { 1033, 5}, { 1028, 4}, +{ 1024, 4}, { 1020, 4}, { 1016, 4}, { 1012, 4}, { 1008, 4}, { 1004, 4}, { 1000, 4}, { 996, 4}, +{ 992, 4}, { 988, 4}, { 984, 4}, { 980, 4}, { 976, 4}, { 972, 4}, { 968, 3}, { 965, 3} +}; + +#elif F_CPU == 20000000 + +const uint16_t speed_lookuptable_fast[256][2] PROGMEM = { + {62500, 54055}, {8445, 3917}, {4528, 1434}, {3094, 745}, {2349, 456}, {1893, 307}, {1586, 222}, {1364, 167}, + {1197, 131}, {1066, 105}, {961, 86}, {875, 72}, {803, 61}, {742, 53}, {689, 45}, {644, 40}, + {604, 35}, {569, 32}, {537, 28}, {509, 25}, {484, 23}, {461, 21}, {440, 19}, {421, 17}, + {404, 16}, {388, 15}, {373, 14}, {359, 13}, {346, 12}, {334, 11}, {323, 10}, {313, 10}, + {303, 9}, {294, 9}, {285, 8}, {277, 7}, {270, 8}, {262, 7}, {255, 6}, {249, 6}, + {243, 6}, {237, 6}, {231, 5}, {226, 5}, {221, 5}, {216, 5}, {211, 4}, {207, 5}, + {202, 4}, {198, 4}, {194, 4}, {190, 3}, {187, 4}, {183, 3}, {180, 3}, {177, 4}, + {173, 3}, {170, 3}, {167, 2}, {165, 3}, {162, 3}, {159, 2}, {157, 3}, {154, 2}, + {152, 3}, {149, 2}, {147, 2}, {145, 2}, {143, 2}, {141, 2}, {139, 2}, {137, 2}, + {135, 2}, {133, 2}, {131, 2}, {129, 1}, {128, 2}, {126, 2}, {124, 1}, {123, 2}, + {121, 1}, {120, 2}, {118, 1}, {117, 1}, {116, 2}, {114, 1}, {113, 1}, {112, 2}, + {110, 1}, {109, 1}, {108, 1}, {107, 2}, {105, 1}, {104, 1}, {103, 1}, {102, 1}, + {101, 1}, {100, 1}, {99, 1}, {98, 1}, {97, 1}, {96, 1}, {95, 1}, {94, 1}, + {93, 1}, {92, 1}, {91, 0}, {91, 1}, {90, 1}, {89, 1}, {88, 1}, {87, 0}, + {87, 1}, {86, 1}, {85, 1}, {84, 0}, {84, 1}, {83, 1}, {82, 1}, {81, 0}, + {81, 1}, {80, 1}, {79, 0}, {79, 1}, {78, 0}, {78, 1}, {77, 1}, {76, 0}, + {76, 1}, {75, 0}, {75, 1}, {74, 1}, {73, 0}, {73, 1}, {72, 0}, {72, 1}, + {71, 0}, {71, 1}, {70, 0}, {70, 1}, {69, 0}, {69, 1}, {68, 0}, {68, 1}, + {67, 0}, {67, 1}, {66, 0}, {66, 1}, {65, 0}, {65, 0}, {65, 1}, {64, 0}, + {64, 1}, {63, 0}, {63, 1}, {62, 0}, {62, 0}, {62, 1}, {61, 0}, {61, 1}, + {60, 0}, {60, 0}, {60, 1}, {59, 0}, {59, 0}, {59, 1}, {58, 0}, {58, 0}, + {58, 1}, {57, 0}, {57, 0}, {57, 1}, {56, 0}, {56, 0}, {56, 1}, {55, 0}, + {55, 0}, {55, 1}, {54, 0}, {54, 0}, {54, 1}, {53, 0}, {53, 0}, {53, 0}, + {53, 1}, {52, 0}, {52, 0}, {52, 1}, {51, 0}, {51, 0}, {51, 0}, {51, 1}, + {50, 0}, {50, 0}, {50, 0}, {50, 1}, {49, 0}, {49, 0}, {49, 0}, {49, 1}, + {48, 0}, {48, 0}, {48, 0}, {48, 1}, {47, 0}, {47, 0}, {47, 0}, {47, 1}, + {46, 0}, {46, 0}, {46, 0}, {46, 0}, {46, 1}, {45, 0}, {45, 0}, {45, 0}, + {45, 1}, {44, 0}, {44, 0}, {44, 0}, {44, 0}, {44, 1}, {43, 0}, {43, 0}, + {43, 0}, {43, 0}, {43, 1}, {42, 0}, {42, 0}, {42, 0}, {42, 0}, {42, 0}, + {42, 1}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 1}, {40, 0}, + {40, 0}, {40, 0}, {40, 0}, {40, 1}, {39, 0}, {39, 0}, {39, 0}, {39, 0}, + {39, 0}, {39, 0}, {39, 1}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, +}; + +const uint16_t speed_lookuptable_slow[256][2] PROGMEM = { + {62500, 10417}, {52083, 7441}, {44642, 5580}, {39062, 4340}, {34722, 3472}, {31250, 2841}, {28409, 2368}, {26041, 2003}, + {24038, 1717}, {22321, 1488}, {20833, 1302}, {19531, 1149}, {18382, 1021}, {17361, 914}, {16447, 822}, {15625, 745}, + {14880, 676}, {14204, 618}, {13586, 566}, {13020, 520}, {12500, 481}, {12019, 445}, {11574, 414}, {11160, 385}, + {10775, 359}, {10416, 336}, {10080, 315}, {9765, 296}, {9469, 278}, {9191, 263}, {8928, 248}, {8680, 235}, + {8445, 222}, {8223, 211}, {8012, 200}, {7812, 191}, {7621, 181}, {7440, 173}, {7267, 165}, {7102, 158}, + {6944, 151}, {6793, 145}, {6648, 138}, {6510, 133}, {6377, 127}, {6250, 123}, {6127, 118}, {6009, 113}, + {5896, 109}, {5787, 106}, {5681, 101}, {5580, 98}, {5482, 95}, {5387, 91}, {5296, 88}, {5208, 86}, + {5122, 82}, {5040, 80}, {4960, 78}, {4882, 75}, {4807, 73}, {4734, 70}, {4664, 69}, {4595, 67}, + {4528, 64}, {4464, 63}, {4401, 61}, {4340, 60}, {4280, 58}, {4222, 56}, {4166, 55}, {4111, 53}, + {4058, 52}, {4006, 51}, {3955, 49}, {3906, 48}, {3858, 48}, {3810, 45}, {3765, 45}, {3720, 44}, + {3676, 43}, {3633, 42}, {3591, 40}, {3551, 40}, {3511, 39}, {3472, 38}, {3434, 38}, {3396, 36}, + {3360, 36}, {3324, 35}, {3289, 34}, {3255, 34}, {3221, 33}, {3188, 32}, {3156, 31}, {3125, 31}, + {3094, 31}, {3063, 30}, {3033, 29}, {3004, 28}, {2976, 28}, {2948, 28}, {2920, 27}, {2893, 27}, + {2866, 26}, {2840, 25}, {2815, 25}, {2790, 25}, {2765, 24}, {2741, 24}, {2717, 24}, {2693, 23}, + {2670, 22}, {2648, 22}, {2626, 22}, {2604, 22}, {2582, 21}, {2561, 21}, {2540, 20}, {2520, 20}, + {2500, 20}, {2480, 20}, {2460, 19}, {2441, 19}, {2422, 19}, {2403, 18}, {2385, 18}, {2367, 18}, + {2349, 17}, {2332, 18}, {2314, 17}, {2297, 16}, {2281, 17}, {2264, 16}, {2248, 16}, {2232, 16}, + {2216, 16}, {2200, 15}, {2185, 15}, {2170, 15}, {2155, 15}, {2140, 15}, {2125, 14}, {2111, 14}, + {2097, 14}, {2083, 14}, {2069, 14}, {2055, 13}, {2042, 13}, {2029, 13}, {2016, 13}, {2003, 13}, + {1990, 13}, {1977, 12}, {1965, 12}, {1953, 13}, {1940, 11}, {1929, 12}, {1917, 12}, {1905, 12}, + {1893, 11}, {1882, 11}, {1871, 11}, {1860, 11}, {1849, 11}, {1838, 11}, {1827, 11}, {1816, 10}, + {1806, 11}, {1795, 10}, {1785, 10}, {1775, 10}, {1765, 10}, {1755, 10}, {1745, 9}, {1736, 10}, + {1726, 9}, {1717, 10}, {1707, 9}, {1698, 9}, {1689, 9}, {1680, 9}, {1671, 9}, {1662, 9}, + {1653, 9}, {1644, 8}, {1636, 9}, {1627, 8}, {1619, 9}, {1610, 8}, {1602, 8}, {1594, 8}, + {1586, 8}, {1578, 8}, {1570, 8}, {1562, 8}, {1554, 7}, {1547, 8}, {1539, 8}, {1531, 7}, + {1524, 8}, {1516, 7}, {1509, 7}, {1502, 7}, {1495, 7}, {1488, 7}, {1481, 7}, {1474, 7}, + {1467, 7}, {1460, 7}, {1453, 7}, {1446, 6}, {1440, 7}, {1433, 7}, {1426, 6}, {1420, 6}, + {1414, 7}, {1407, 6}, {1401, 6}, {1395, 7}, {1388, 6}, {1382, 6}, {1376, 6}, {1370, 6}, + {1364, 6}, {1358, 6}, {1352, 6}, {1346, 5}, {1341, 6}, {1335, 6}, {1329, 5}, {1324, 6}, + {1318, 5}, {1313, 6}, {1307, 5}, {1302, 6}, {1296, 5}, {1291, 5}, {1286, 6}, {1280, 5}, + {1275, 5}, {1270, 5}, {1265, 5}, {1260, 5}, {1255, 5}, {1250, 5}, {1245, 5}, {1240, 5}, + {1235, 5}, {1230, 5}, {1225, 5}, {1220, 5}, {1215, 4}, {1211, 5}, {1206, 5}, {1201, 5}, +}; + +#endif diff --git a/Firmware/speed_lookuptable.h b/Firmware/speed_lookuptable.h index b7c00f1ae..6a1a44ef1 100644 --- a/Firmware/speed_lookuptable.h +++ b/Firmware/speed_lookuptable.h @@ -3,150 +3,87 @@ #include "Marlin.h" -#if F_CPU == 16000000 +extern const uint16_t speed_lookuptable_fast[256][2] PROGMEM; +extern const uint16_t speed_lookuptable_slow[256][2] PROGMEM; -const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {\ -{ 62500, 55556}, { 6944, 3268}, { 3676, 1176}, { 2500, 607}, { 1893, 369}, { 1524, 249}, { 1275, 179}, { 1096, 135}, -{ 961, 105}, { 856, 85}, { 771, 69}, { 702, 58}, { 644, 49}, { 595, 42}, { 553, 37}, { 516, 32}, -{ 484, 28}, { 456, 25}, { 431, 23}, { 408, 20}, { 388, 19}, { 369, 16}, { 353, 16}, { 337, 14}, -{ 323, 13}, { 310, 11}, { 299, 11}, { 288, 11}, { 277, 9}, { 268, 9}, { 259, 8}, { 251, 8}, -{ 243, 8}, { 235, 7}, { 228, 6}, { 222, 6}, { 216, 6}, { 210, 6}, { 204, 5}, { 199, 5}, -{ 194, 5}, { 189, 4}, { 185, 4}, { 181, 4}, { 177, 4}, { 173, 4}, { 169, 4}, { 165, 3}, -{ 162, 3}, { 159, 4}, { 155, 3}, { 152, 3}, { 149, 2}, { 147, 3}, { 144, 3}, { 141, 2}, -{ 139, 3}, { 136, 2}, { 134, 2}, { 132, 3}, { 129, 2}, { 127, 2}, { 125, 2}, { 123, 2}, -{ 121, 2}, { 119, 1}, { 118, 2}, { 116, 2}, { 114, 1}, { 113, 2}, { 111, 2}, { 109, 1}, -{ 108, 2}, { 106, 1}, { 105, 2}, { 103, 1}, { 102, 1}, { 101, 1}, { 100, 2}, { 98, 1}, -{ 97, 1}, { 96, 1}, { 95, 2}, { 93, 1}, { 92, 1}, { 91, 1}, { 90, 1}, { 89, 1}, -{ 88, 1}, { 87, 1}, { 86, 1}, { 85, 1}, { 84, 1}, { 83, 0}, { 83, 1}, { 82, 1}, -{ 81, 1}, { 80, 1}, { 79, 1}, { 78, 0}, { 78, 1}, { 77, 1}, { 76, 1}, { 75, 0}, -{ 75, 1}, { 74, 1}, { 73, 1}, { 72, 0}, { 72, 1}, { 71, 1}, { 70, 0}, { 70, 1}, -{ 69, 0}, { 69, 1}, { 68, 1}, { 67, 0}, { 67, 1}, { 66, 0}, { 66, 1}, { 65, 0}, -{ 65, 1}, { 64, 1}, { 63, 0}, { 63, 1}, { 62, 0}, { 62, 1}, { 61, 0}, { 61, 1}, -{ 60, 0}, { 60, 0}, { 60, 1}, { 59, 0}, { 59, 1}, { 58, 0}, { 58, 1}, { 57, 0}, -{ 57, 1}, { 56, 0}, { 56, 0}, { 56, 1}, { 55, 0}, { 55, 1}, { 54, 0}, { 54, 0}, -{ 54, 1}, { 53, 0}, { 53, 0}, { 53, 1}, { 52, 0}, { 52, 0}, { 52, 1}, { 51, 0}, -{ 51, 0}, { 51, 1}, { 50, 0}, { 50, 0}, { 50, 1}, { 49, 0}, { 49, 0}, { 49, 1}, -{ 48, 0}, { 48, 0}, { 48, 1}, { 47, 0}, { 47, 0}, { 47, 0}, { 47, 1}, { 46, 0}, -{ 46, 0}, { 46, 1}, { 45, 0}, { 45, 0}, { 45, 0}, { 45, 1}, { 44, 0}, { 44, 0}, -{ 44, 0}, { 44, 1}, { 43, 0}, { 43, 0}, { 43, 0}, { 43, 1}, { 42, 0}, { 42, 0}, -{ 42, 0}, { 42, 1}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 1}, { 40, 0}, -{ 40, 0}, { 40, 0}, { 40, 0}, { 40, 1}, { 39, 0}, { 39, 0}, { 39, 0}, { 39, 0}, -{ 39, 1}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 1}, { 37, 0}, { 37, 0}, -{ 37, 0}, { 37, 0}, { 37, 0}, { 37, 1}, { 36, 0}, { 36, 0}, { 36, 0}, { 36, 0}, -{ 36, 1}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 1}, -{ 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 1}, { 33, 0}, { 33, 0}, -{ 33, 0}, { 33, 0}, { 33, 0}, { 33, 0}, { 33, 1}, { 32, 0}, { 32, 0}, { 32, 0}, -{ 32, 0}, { 32, 0}, { 32, 0}, { 32, 0}, { 32, 1}, { 31, 0}, { 31, 0}, { 31, 0}, -{ 31, 0}, { 31, 0}, { 31, 0}, { 31, 1}, { 30, 0}, { 30, 0}, { 30, 0}, { 30, 0} -}; +#ifndef _NO_ASM -const uint16_t speed_lookuptable_slow[256][2] PROGMEM = {\ -{ 62500, 12500}, { 50000, 8334}, { 41666, 5952}, { 35714, 4464}, { 31250, 3473}, { 27777, 2777}, { 25000, 2273}, { 22727, 1894}, -{ 20833, 1603}, { 19230, 1373}, { 17857, 1191}, { 16666, 1041}, { 15625, 920}, { 14705, 817}, { 13888, 731}, { 13157, 657}, -{ 12500, 596}, { 11904, 541}, { 11363, 494}, { 10869, 453}, { 10416, 416}, { 10000, 385}, { 9615, 356}, { 9259, 331}, -{ 8928, 308}, { 8620, 287}, { 8333, 269}, { 8064, 252}, { 7812, 237}, { 7575, 223}, { 7352, 210}, { 7142, 198}, -{ 6944, 188}, { 6756, 178}, { 6578, 168}, { 6410, 160}, { 6250, 153}, { 6097, 145}, { 5952, 139}, { 5813, 132}, -{ 5681, 126}, { 5555, 121}, { 5434, 115}, { 5319, 111}, { 5208, 106}, { 5102, 102}, { 5000, 99}, { 4901, 94}, -{ 4807, 91}, { 4716, 87}, { 4629, 84}, { 4545, 81}, { 4464, 79}, { 4385, 75}, { 4310, 73}, { 4237, 71}, -{ 4166, 68}, { 4098, 66}, { 4032, 64}, { 3968, 62}, { 3906, 60}, { 3846, 59}, { 3787, 56}, { 3731, 55}, -{ 3676, 53}, { 3623, 52}, { 3571, 50}, { 3521, 49}, { 3472, 48}, { 3424, 46}, { 3378, 45}, { 3333, 44}, -{ 3289, 43}, { 3246, 41}, { 3205, 41}, { 3164, 39}, { 3125, 39}, { 3086, 38}, { 3048, 36}, { 3012, 36}, -{ 2976, 35}, { 2941, 35}, { 2906, 33}, { 2873, 33}, { 2840, 32}, { 2808, 31}, { 2777, 30}, { 2747, 30}, -{ 2717, 29}, { 2688, 29}, { 2659, 28}, { 2631, 27}, { 2604, 27}, { 2577, 26}, { 2551, 26}, { 2525, 25}, -{ 2500, 25}, { 2475, 25}, { 2450, 23}, { 2427, 24}, { 2403, 23}, { 2380, 22}, { 2358, 22}, { 2336, 22}, -{ 2314, 21}, { 2293, 21}, { 2272, 20}, { 2252, 20}, { 2232, 20}, { 2212, 20}, { 2192, 19}, { 2173, 18}, -{ 2155, 19}, { 2136, 18}, { 2118, 18}, { 2100, 17}, { 2083, 17}, { 2066, 17}, { 2049, 17}, { 2032, 16}, -{ 2016, 16}, { 2000, 16}, { 1984, 16}, { 1968, 15}, { 1953, 16}, { 1937, 14}, { 1923, 15}, { 1908, 15}, -{ 1893, 14}, { 1879, 14}, { 1865, 14}, { 1851, 13}, { 1838, 14}, { 1824, 13}, { 1811, 13}, { 1798, 13}, -{ 1785, 12}, { 1773, 13}, { 1760, 12}, { 1748, 12}, { 1736, 12}, { 1724, 12}, { 1712, 12}, { 1700, 11}, -{ 1689, 12}, { 1677, 11}, { 1666, 11}, { 1655, 11}, { 1644, 11}, { 1633, 10}, { 1623, 11}, { 1612, 10}, -{ 1602, 10}, { 1592, 10}, { 1582, 10}, { 1572, 10}, { 1562, 10}, { 1552, 9}, { 1543, 10}, { 1533, 9}, -{ 1524, 9}, { 1515, 9}, { 1506, 9}, { 1497, 9}, { 1488, 9}, { 1479, 9}, { 1470, 9}, { 1461, 8}, -{ 1453, 8}, { 1445, 9}, { 1436, 8}, { 1428, 8}, { 1420, 8}, { 1412, 8}, { 1404, 8}, { 1396, 8}, -{ 1388, 7}, { 1381, 8}, { 1373, 7}, { 1366, 8}, { 1358, 7}, { 1351, 7}, { 1344, 8}, { 1336, 7}, -{ 1329, 7}, { 1322, 7}, { 1315, 7}, { 1308, 6}, { 1302, 7}, { 1295, 7}, { 1288, 6}, { 1282, 7}, -{ 1275, 6}, { 1269, 7}, { 1262, 6}, { 1256, 6}, { 1250, 7}, { 1243, 6}, { 1237, 6}, { 1231, 6}, -{ 1225, 6}, { 1219, 6}, { 1213, 6}, { 1207, 6}, { 1201, 5}, { 1196, 6}, { 1190, 6}, { 1184, 5}, -{ 1179, 6}, { 1173, 5}, { 1168, 6}, { 1162, 5}, { 1157, 5}, { 1152, 6}, { 1146, 5}, { 1141, 5}, -{ 1136, 5}, { 1131, 5}, { 1126, 5}, { 1121, 5}, { 1116, 5}, { 1111, 5}, { 1106, 5}, { 1101, 5}, -{ 1096, 5}, { 1091, 5}, { 1086, 4}, { 1082, 5}, { 1077, 5}, { 1072, 4}, { 1068, 5}, { 1063, 4}, -{ 1059, 5}, { 1054, 4}, { 1050, 4}, { 1046, 5}, { 1041, 4}, { 1037, 4}, { 1033, 5}, { 1028, 4}, -{ 1024, 4}, { 1020, 4}, { 1016, 4}, { 1012, 4}, { 1008, 4}, { 1004, 4}, { 1000, 4}, { 996, 4}, -{ 992, 4}, { 988, 4}, { 984, 4}, { 980, 4}, { 976, 4}, { 972, 4}, { 968, 3}, { 965, 3} -}; +// intRes = intIn1 * intIn2 >> 16 +// uses: +// r26 to store 0 +// r27 to store the byte 1 of the 24 bit result +#define MultiU16X8toH16(intRes, charIn1, intIn2) \ +asm volatile ( \ +"clr r26 \n\t" \ +"mul %A1, %B2 \n\t" \ +"movw %A0, r0 \n\t" \ +"mul %A1, %A2 \n\t" \ +"add %A0, r1 \n\t" \ +"adc %B0, r26 \n\t" \ +"lsr r0 \n\t" \ +"adc %A0, r26 \n\t" \ +"adc %B0, r26 \n\t" \ +"clr r1 \n\t" \ +: \ +"=&r" (intRes) \ +: \ +"d" (charIn1), \ +"d" (intIn2) \ +: \ +"r26" \ +) -#elif F_CPU == 20000000 +// intRes = longIn1 * longIn2 >> 24 +// uses: +// r26 to store 0 +// r27 to store the byte 1 of the 48bit result +#define MultiU24X24toH16(intRes, longIn1, longIn2) \ +asm volatile ( \ +"clr r26 \n\t" \ +"mul %A1, %B2 \n\t" \ +"mov r27, r1 \n\t" \ +"mul %B1, %C2 \n\t" \ +"movw %A0, r0 \n\t" \ +"mul %C1, %C2 \n\t" \ +"add %B0, r0 \n\t" \ +"mul %C1, %B2 \n\t" \ +"add %A0, r0 \n\t" \ +"adc %B0, r1 \n\t" \ +"mul %A1, %C2 \n\t" \ +"add r27, r0 \n\t" \ +"adc %A0, r1 \n\t" \ +"adc %B0, r26 \n\t" \ +"mul %B1, %B2 \n\t" \ +"add r27, r0 \n\t" \ +"adc %A0, r1 \n\t" \ +"adc %B0, r26 \n\t" \ +"mul %C1, %A2 \n\t" \ +"add r27, r0 \n\t" \ +"adc %A0, r1 \n\t" \ +"adc %B0, r26 \n\t" \ +"mul %B1, %A2 \n\t" \ +"add r27, r1 \n\t" \ +"adc %A0, r26 \n\t" \ +"adc %B0, r26 \n\t" \ +"lsr r27 \n\t" \ +"adc %A0, r26 \n\t" \ +"adc %B0, r26 \n\t" \ +"clr r1 \n\t" \ +: \ +"=&r" (intRes) \ +: \ +"d" (longIn1), \ +"d" (longIn2) \ +: \ +"r26" , "r27" \ +) -const uint16_t speed_lookuptable_fast[256][2] PROGMEM = { - {62500, 54055}, {8445, 3917}, {4528, 1434}, {3094, 745}, {2349, 456}, {1893, 307}, {1586, 222}, {1364, 167}, - {1197, 131}, {1066, 105}, {961, 86}, {875, 72}, {803, 61}, {742, 53}, {689, 45}, {644, 40}, - {604, 35}, {569, 32}, {537, 28}, {509, 25}, {484, 23}, {461, 21}, {440, 19}, {421, 17}, - {404, 16}, {388, 15}, {373, 14}, {359, 13}, {346, 12}, {334, 11}, {323, 10}, {313, 10}, - {303, 9}, {294, 9}, {285, 8}, {277, 7}, {270, 8}, {262, 7}, {255, 6}, {249, 6}, - {243, 6}, {237, 6}, {231, 5}, {226, 5}, {221, 5}, {216, 5}, {211, 4}, {207, 5}, - {202, 4}, {198, 4}, {194, 4}, {190, 3}, {187, 4}, {183, 3}, {180, 3}, {177, 4}, - {173, 3}, {170, 3}, {167, 2}, {165, 3}, {162, 3}, {159, 2}, {157, 3}, {154, 2}, - {152, 3}, {149, 2}, {147, 2}, {145, 2}, {143, 2}, {141, 2}, {139, 2}, {137, 2}, - {135, 2}, {133, 2}, {131, 2}, {129, 1}, {128, 2}, {126, 2}, {124, 1}, {123, 2}, - {121, 1}, {120, 2}, {118, 1}, {117, 1}, {116, 2}, {114, 1}, {113, 1}, {112, 2}, - {110, 1}, {109, 1}, {108, 1}, {107, 2}, {105, 1}, {104, 1}, {103, 1}, {102, 1}, - {101, 1}, {100, 1}, {99, 1}, {98, 1}, {97, 1}, {96, 1}, {95, 1}, {94, 1}, - {93, 1}, {92, 1}, {91, 0}, {91, 1}, {90, 1}, {89, 1}, {88, 1}, {87, 0}, - {87, 1}, {86, 1}, {85, 1}, {84, 0}, {84, 1}, {83, 1}, {82, 1}, {81, 0}, - {81, 1}, {80, 1}, {79, 0}, {79, 1}, {78, 0}, {78, 1}, {77, 1}, {76, 0}, - {76, 1}, {75, 0}, {75, 1}, {74, 1}, {73, 0}, {73, 1}, {72, 0}, {72, 1}, - {71, 0}, {71, 1}, {70, 0}, {70, 1}, {69, 0}, {69, 1}, {68, 0}, {68, 1}, - {67, 0}, {67, 1}, {66, 0}, {66, 1}, {65, 0}, {65, 0}, {65, 1}, {64, 0}, - {64, 1}, {63, 0}, {63, 1}, {62, 0}, {62, 0}, {62, 1}, {61, 0}, {61, 1}, - {60, 0}, {60, 0}, {60, 1}, {59, 0}, {59, 0}, {59, 1}, {58, 0}, {58, 0}, - {58, 1}, {57, 0}, {57, 0}, {57, 1}, {56, 0}, {56, 0}, {56, 1}, {55, 0}, - {55, 0}, {55, 1}, {54, 0}, {54, 0}, {54, 1}, {53, 0}, {53, 0}, {53, 0}, - {53, 1}, {52, 0}, {52, 0}, {52, 1}, {51, 0}, {51, 0}, {51, 0}, {51, 1}, - {50, 0}, {50, 0}, {50, 0}, {50, 1}, {49, 0}, {49, 0}, {49, 0}, {49, 1}, - {48, 0}, {48, 0}, {48, 0}, {48, 1}, {47, 0}, {47, 0}, {47, 0}, {47, 1}, - {46, 0}, {46, 0}, {46, 0}, {46, 0}, {46, 1}, {45, 0}, {45, 0}, {45, 0}, - {45, 1}, {44, 0}, {44, 0}, {44, 0}, {44, 0}, {44, 1}, {43, 0}, {43, 0}, - {43, 0}, {43, 0}, {43, 1}, {42, 0}, {42, 0}, {42, 0}, {42, 0}, {42, 0}, - {42, 1}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 1}, {40, 0}, - {40, 0}, {40, 0}, {40, 0}, {40, 1}, {39, 0}, {39, 0}, {39, 0}, {39, 0}, - {39, 0}, {39, 0}, {39, 1}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, -}; +#else //_NO_ASM -const uint16_t speed_lookuptable_slow[256][2] PROGMEM = { - {62500, 10417}, {52083, 7441}, {44642, 5580}, {39062, 4340}, {34722, 3472}, {31250, 2841}, {28409, 2368}, {26041, 2003}, - {24038, 1717}, {22321, 1488}, {20833, 1302}, {19531, 1149}, {18382, 1021}, {17361, 914}, {16447, 822}, {15625, 745}, - {14880, 676}, {14204, 618}, {13586, 566}, {13020, 520}, {12500, 481}, {12019, 445}, {11574, 414}, {11160, 385}, - {10775, 359}, {10416, 336}, {10080, 315}, {9765, 296}, {9469, 278}, {9191, 263}, {8928, 248}, {8680, 235}, - {8445, 222}, {8223, 211}, {8012, 200}, {7812, 191}, {7621, 181}, {7440, 173}, {7267, 165}, {7102, 158}, - {6944, 151}, {6793, 145}, {6648, 138}, {6510, 133}, {6377, 127}, {6250, 123}, {6127, 118}, {6009, 113}, - {5896, 109}, {5787, 106}, {5681, 101}, {5580, 98}, {5482, 95}, {5387, 91}, {5296, 88}, {5208, 86}, - {5122, 82}, {5040, 80}, {4960, 78}, {4882, 75}, {4807, 73}, {4734, 70}, {4664, 69}, {4595, 67}, - {4528, 64}, {4464, 63}, {4401, 61}, {4340, 60}, {4280, 58}, {4222, 56}, {4166, 55}, {4111, 53}, - {4058, 52}, {4006, 51}, {3955, 49}, {3906, 48}, {3858, 48}, {3810, 45}, {3765, 45}, {3720, 44}, - {3676, 43}, {3633, 42}, {3591, 40}, {3551, 40}, {3511, 39}, {3472, 38}, {3434, 38}, {3396, 36}, - {3360, 36}, {3324, 35}, {3289, 34}, {3255, 34}, {3221, 33}, {3188, 32}, {3156, 31}, {3125, 31}, - {3094, 31}, {3063, 30}, {3033, 29}, {3004, 28}, {2976, 28}, {2948, 28}, {2920, 27}, {2893, 27}, - {2866, 26}, {2840, 25}, {2815, 25}, {2790, 25}, {2765, 24}, {2741, 24}, {2717, 24}, {2693, 23}, - {2670, 22}, {2648, 22}, {2626, 22}, {2604, 22}, {2582, 21}, {2561, 21}, {2540, 20}, {2520, 20}, - {2500, 20}, {2480, 20}, {2460, 19}, {2441, 19}, {2422, 19}, {2403, 18}, {2385, 18}, {2367, 18}, - {2349, 17}, {2332, 18}, {2314, 17}, {2297, 16}, {2281, 17}, {2264, 16}, {2248, 16}, {2232, 16}, - {2216, 16}, {2200, 15}, {2185, 15}, {2170, 15}, {2155, 15}, {2140, 15}, {2125, 14}, {2111, 14}, - {2097, 14}, {2083, 14}, {2069, 14}, {2055, 13}, {2042, 13}, {2029, 13}, {2016, 13}, {2003, 13}, - {1990, 13}, {1977, 12}, {1965, 12}, {1953, 13}, {1940, 11}, {1929, 12}, {1917, 12}, {1905, 12}, - {1893, 11}, {1882, 11}, {1871, 11}, {1860, 11}, {1849, 11}, {1838, 11}, {1827, 11}, {1816, 10}, - {1806, 11}, {1795, 10}, {1785, 10}, {1775, 10}, {1765, 10}, {1755, 10}, {1745, 9}, {1736, 10}, - {1726, 9}, {1717, 10}, {1707, 9}, {1698, 9}, {1689, 9}, {1680, 9}, {1671, 9}, {1662, 9}, - {1653, 9}, {1644, 8}, {1636, 9}, {1627, 8}, {1619, 9}, {1610, 8}, {1602, 8}, {1594, 8}, - {1586, 8}, {1578, 8}, {1570, 8}, {1562, 8}, {1554, 7}, {1547, 8}, {1539, 8}, {1531, 7}, - {1524, 8}, {1516, 7}, {1509, 7}, {1502, 7}, {1495, 7}, {1488, 7}, {1481, 7}, {1474, 7}, - {1467, 7}, {1460, 7}, {1453, 7}, {1446, 6}, {1440, 7}, {1433, 7}, {1426, 6}, {1420, 6}, - {1414, 7}, {1407, 6}, {1401, 6}, {1395, 7}, {1388, 6}, {1382, 6}, {1376, 6}, {1370, 6}, - {1364, 6}, {1358, 6}, {1352, 6}, {1346, 5}, {1341, 6}, {1335, 6}, {1329, 5}, {1324, 6}, - {1318, 5}, {1313, 6}, {1307, 5}, {1302, 6}, {1296, 5}, {1291, 5}, {1286, 6}, {1280, 5}, - {1275, 5}, {1270, 5}, {1265, 5}, {1260, 5}, {1255, 5}, {1250, 5}, {1245, 5}, {1240, 5}, - {1235, 5}, {1230, 5}, {1225, 5}, {1220, 5}, {1215, 4}, {1211, 5}, {1206, 5}, {1201, 5}, -}; - -#endif +// NOTE: currently not implemented +void MultiU16X8toH16(unsigned short& intRes, unsigned char& charIn1, unsigned short& intIn2); +void MultiU24X24toH16(uint16_t& intRes, int32_t& longIn1, long& longIn2); + +#endif //_NO_ASM #endif diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 5a3d4010a..ddf69c8cb 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -146,92 +146,6 @@ extern uint16_t stepper_timer_overflow_last; //=============================functions ============================ //=========================================================================== -#ifndef _NO_ASM - -// intRes = intIn1 * intIn2 >> 16 -// uses: -// r26 to store 0 -// r27 to store the byte 1 of the 24 bit result -#define MultiU16X8toH16(intRes, charIn1, intIn2) \ -asm volatile ( \ -"clr r26 \n\t" \ -"mul %A1, %B2 \n\t" \ -"movw %A0, r0 \n\t" \ -"mul %A1, %A2 \n\t" \ -"add %A0, r1 \n\t" \ -"adc %B0, r26 \n\t" \ -"lsr r0 \n\t" \ -"adc %A0, r26 \n\t" \ -"adc %B0, r26 \n\t" \ -"clr r1 \n\t" \ -: \ -"=&r" (intRes) \ -: \ -"d" (charIn1), \ -"d" (intIn2) \ -: \ -"r26" \ -) - -// intRes = longIn1 * longIn2 >> 24 -// uses: -// r26 to store 0 -// r27 to store the byte 1 of the 48bit result -#define MultiU24X24toH16(intRes, longIn1, longIn2) \ -asm volatile ( \ -"clr r26 \n\t" \ -"mul %A1, %B2 \n\t" \ -"mov r27, r1 \n\t" \ -"mul %B1, %C2 \n\t" \ -"movw %A0, r0 \n\t" \ -"mul %C1, %C2 \n\t" \ -"add %B0, r0 \n\t" \ -"mul %C1, %B2 \n\t" \ -"add %A0, r0 \n\t" \ -"adc %B0, r1 \n\t" \ -"mul %A1, %C2 \n\t" \ -"add r27, r0 \n\t" \ -"adc %A0, r1 \n\t" \ -"adc %B0, r26 \n\t" \ -"mul %B1, %B2 \n\t" \ -"add r27, r0 \n\t" \ -"adc %A0, r1 \n\t" \ -"adc %B0, r26 \n\t" \ -"mul %C1, %A2 \n\t" \ -"add r27, r0 \n\t" \ -"adc %A0, r1 \n\t" \ -"adc %B0, r26 \n\t" \ -"mul %B1, %A2 \n\t" \ -"add r27, r1 \n\t" \ -"adc %A0, r26 \n\t" \ -"adc %B0, r26 \n\t" \ -"lsr r27 \n\t" \ -"adc %A0, r26 \n\t" \ -"adc %B0, r26 \n\t" \ -"clr r1 \n\t" \ -: \ -"=&r" (intRes) \ -: \ -"d" (longIn1), \ -"d" (longIn2) \ -: \ -"r26" , "r27" \ -) - -#else //_NO_ASM - -void MultiU16X8toH16(unsigned short& intRes, unsigned char& charIn1, unsigned short& intIn2) -{ -} - -void MultiU24X24toH16(uint16_t& intRes, int32_t& longIn1, long& longIn2) -{ -} - -#endif //_NO_ASM - -// Some useful constants - void checkHitEndstops() { if( endstop_x_hit || endstop_y_hit || endstop_z_hit) { From 3b528196dd22db2237b6bd7e9699c8ea0f7c164d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 18 May 2019 16:41:25 +0200 Subject: [PATCH 009/271] Fixup prefix echomagic for the LA config report --- Firmware/ConfigurationStore.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/ConfigurationStore.cpp b/Firmware/ConfigurationStore.cpp index 8ed2dd708..0bd13a3a1 100644 --- a/Firmware/ConfigurationStore.cpp +++ b/Firmware/ConfigurationStore.cpp @@ -165,8 +165,8 @@ void Config_PrintSettings(uint8_t level) #endif if (level >= 10) { #ifdef LIN_ADVANCE - printf_P(PSTR("%SLinear advance settings:\n M900 K%.2f\n"), - echomagic, extruder_advance_K); + printf_P(PSTR("%SLinear advance settings:%S M900 K%.2f\n"), + echomagic, echomagic, extruder_advance_K); #endif //LIN_ADVANCE } } From 2c8e04bd5f7ee847203afae796c6546996453e24 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 18 May 2019 18:03:20 +0200 Subject: [PATCH 010/271] Planner: use the correct block when updating LA factors --- Firmware/planner.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index f8ac2f596..af87f77e6 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -402,10 +402,10 @@ void planner_recalculate(const float &safe_final_speed) // NOTE: Entry and exit factors always > 0 by all previous logic operations. calculate_trapezoid_for_block(prev, prev->entry_speed, current->entry_speed); #ifdef LIN_ADVANCE - if (current->use_advance_lead) { - const float comp = current->e_D_ratio * extruder_advance_K * cs.axis_steps_per_unit[E_AXIS]; - current->max_adv_steps = current->nominal_speed * comp; - current->final_adv_steps = next->entry_speed * comp; + if (prev->use_advance_lead) { + const float comp = prev->e_D_ratio * extruder_advance_K * cs.axis_steps_per_unit[E_AXIS]; + prev->max_adv_steps = prev->nominal_speed * comp; + prev->final_adv_steps = current->entry_speed * comp; } #endif // Reset current only to ensure next trapezoid is computed. From 9425b6b07a69b7d7c75e9e5488822b36709f3ed5 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 18 May 2019 20:10:20 +0200 Subject: [PATCH 011/271] Planner: do not recalculate max_adv_steps, since it doesn't change --- Firmware/planner.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index af87f77e6..76b53fbbc 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -404,7 +404,6 @@ void planner_recalculate(const float &safe_final_speed) #ifdef LIN_ADVANCE if (prev->use_advance_lead) { const float comp = prev->e_D_ratio * extruder_advance_K * cs.axis_steps_per_unit[E_AXIS]; - prev->max_adv_steps = prev->nominal_speed * comp; prev->final_adv_steps = current->entry_speed * comp; } #endif From 2d3fe3197c0344a88fd954f8f3e94a74f8d0af6b Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 18 May 2019 20:16:05 +0200 Subject: [PATCH 012/271] Move calc_timer into speed_lookup_table for planner reuse --- Firmware/speed_lookuptable.h | 36 +++++++++++++++++++++++++++++ Firmware/stepper.cpp | 45 ++++-------------------------------- 2 files changed, 40 insertions(+), 41 deletions(-) diff --git a/Firmware/speed_lookuptable.h b/Firmware/speed_lookuptable.h index 6a1a44ef1..2748dd71a 100644 --- a/Firmware/speed_lookuptable.h +++ b/Firmware/speed_lookuptable.h @@ -86,4 +86,40 @@ void MultiU24X24toH16(uint16_t& intRes, int32_t& longIn1, long& longIn2); #endif //_NO_ASM + +FORCE_INLINE unsigned short calc_timer(uint16_t step_rate, uint8_t& step_loops) { + unsigned short timer; + if(step_rate > MAX_STEP_FREQUENCY) step_rate = MAX_STEP_FREQUENCY; + + if(step_rate > 20000) { // If steprate > 20kHz >> step 4 times + step_rate = (step_rate >> 2)&0x3fff; + step_loops = 4; + } + else if(step_rate > 10000) { // If steprate > 10kHz >> step 2 times + step_rate = (step_rate >> 1)&0x7fff; + step_loops = 2; + } + else { + step_loops = 1; + } + + if(step_rate < (F_CPU/500000)) step_rate = (F_CPU/500000); + step_rate -= (F_CPU/500000); // Correct for minimal speed + if(step_rate >= (8*256)){ // higher step rate + unsigned short table_address = (unsigned short)&speed_lookuptable_fast[(unsigned char)(step_rate>>8)][0]; + unsigned char tmp_step_rate = (step_rate & 0x00ff); + unsigned short gain = (unsigned short)pgm_read_word_near(table_address+2); + MultiU16X8toH16(timer, tmp_step_rate, gain); + timer = (unsigned short)pgm_read_word_near(table_address) - timer; + } + else { // lower step rates + unsigned short table_address = (unsigned short)&speed_lookuptable_slow[0][0]; + table_address += ((step_rate)>>1) & 0xfffc; + timer = (unsigned short)pgm_read_word_near(table_address); + timer -= (((unsigned short)pgm_read_word_near(table_address+2) * (unsigned char)(step_rate & 0x0007))>>3); + } + if(timer < 100) { timer = 100; }//(20kHz this should never happen)////MSG_STEPPER_TOO_HIGH c=0 r=0 + return timer; +} + #endif diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index ddf69c8cb..19cd5d816 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -233,43 +233,6 @@ void invert_z_endstop(bool endstop_invert) // step_events_completed reaches block->decelerate_after after which it decelerates until the trapezoid generator is reset. // The slope of acceleration is calculated with the leib ramp alghorithm. -FORCE_INLINE unsigned short calc_timer(uint16_t step_rate) { - unsigned short timer; - if(step_rate > MAX_STEP_FREQUENCY) step_rate = MAX_STEP_FREQUENCY; - - if(step_rate > 20000) { // If steprate > 20kHz >> step 4 times - step_rate = (step_rate >> 2)&0x3fff; - step_loops = 4; - } - else if(step_rate > 10000) { // If steprate > 10kHz >> step 2 times - step_rate = (step_rate >> 1)&0x7fff; - step_loops = 2; - } - else { - step_loops = 1; - } -// step_loops = 1; - - if(step_rate < (F_CPU/500000)) step_rate = (F_CPU/500000); - step_rate -= (F_CPU/500000); // Correct for minimal speed - if(step_rate >= (8*256)){ // higher step rate - unsigned short table_address = (unsigned short)&speed_lookuptable_fast[(unsigned char)(step_rate>>8)][0]; - unsigned char tmp_step_rate = (step_rate & 0x00ff); - unsigned short gain = (unsigned short)pgm_read_word_near(table_address+2); - MultiU16X8toH16(timer, tmp_step_rate, gain); - timer = (unsigned short)pgm_read_word_near(table_address) - timer; - } - else { // lower step rates - unsigned short table_address = (unsigned short)&speed_lookuptable_slow[0][0]; - table_address += ((step_rate)>>1) & 0xfffc; - timer = (unsigned short)pgm_read_word_near(table_address); - timer -= (((unsigned short)pgm_read_word_near(table_address+2) * (unsigned char)(step_rate & 0x0007))>>3); - } - if(timer < 100) { timer = 100; MYSERIAL.print(_N("Steprate too high: ")); MYSERIAL.println(step_rate); }//(20kHz this should never happen)////MSG_STEPPER_TOO_HIGH - return timer; -} - - // "The Stepper Driver Interrupt" - This timer interrupt is the workhorse. // It pops blocks from the block_buffer and executes them by pulsing the stepper pins appropriately. ISR(TIMER1_COMPA_vect) { @@ -382,7 +345,7 @@ FORCE_INLINE void stepper_next_block() // state is reached. step_loops_nominal = 0; acc_step_rate = uint16_t(current_block->initial_rate); - acceleration_time = calc_timer(acc_step_rate); + acceleration_time = calc_timer(acc_step_rate, step_loops); #ifdef LIN_ADVANCE if ((use_advance_lead = current_block->use_advance_lead)) { @@ -763,7 +726,7 @@ FORCE_INLINE void isr() { if(acc_step_rate > uint16_t(current_block->nominal_rate)) acc_step_rate = current_block->nominal_rate; // step_rate to timer interval - uint16_t timer = calc_timer(acc_step_rate); + uint16_t timer = calc_timer(acc_step_rate, step_loops); _NEXT_ISR(timer); acceleration_time += timer; #ifdef LIN_ADVANCE @@ -788,7 +751,7 @@ FORCE_INLINE void isr() { step_rate = uint16_t(current_block->final_rate); } // Step_rate to timer interval. - uint16_t timer = calc_timer(step_rate); + uint16_t timer = calc_timer(step_rate, step_loops); _NEXT_ISR(timer); deceleration_time += timer; #ifdef LIN_ADVANCE @@ -812,7 +775,7 @@ FORCE_INLINE void isr() { if (! step_loops_nominal) { // Calculation of the steady state timer rate has been delayed to the 1st tick of the steady state to lower // the initial interrupt blocking. - OCR1A_nominal = calc_timer(uint16_t(current_block->nominal_rate)); + OCR1A_nominal = calc_timer(uint16_t(current_block->nominal_rate), step_loops); step_loops_nominal = step_loops; } _NEXT_ISR(OCR1A_nominal); From a2fa8e5313f7f393b3dcd9381ea9bce37d99a893 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 18 May 2019 21:55:03 +0200 Subject: [PATCH 013/271] Rewrite the advance_isr scheduler --- Firmware/Configuration_adv.h | 2 - Firmware/planner.cpp | 53 ++++---- Firmware/planner.h | 3 +- Firmware/stepper.cpp | 230 +++++++++++++++++++++-------------- 4 files changed, 167 insertions(+), 121 deletions(-) diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index 455033024..d731e8633 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -292,8 +292,6 @@ * Mention @Sebastianv650 on GitHub to alert the author of any issues. */ #define LIN_ADVANCE -#define LA_DEBUG -#define DEBUG_STEPPER_TIMER_MISSED #ifdef LIN_ADVANCE #define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 76b53fbbc..078abac4c 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -58,6 +58,7 @@ #include "ultralcd.h" #include "language.h" #include "ConfigurationStore.h" +#include "speed_lookuptable.h" #ifdef MESH_BED_LEVELING #include "mesh_bed_leveling.h" @@ -1023,27 +1024,27 @@ Having the real displacement of the head, we can calculate the total movement le * delta_mm[E_AXIS] > 0 : Extruder is running forward (e.g., for "Wipe while retracting" (Slic3r) or "Combing" (Cura) moves) */ block->use_advance_lead = block->steps_e.wide - && extruder_advance_K - && delta_mm[E_AXIS] > 0; + && extruder_advance_K + && delta_mm[E_AXIS] > 0; if (block->use_advance_lead) { - block->e_D_ratio = (e - position_float[E_AXIS]) / - sqrt(sq(x - position_float[X_AXIS]) - + sq(y - position_float[Y_AXIS]) - + sq(z - position_float[Z_AXIS])); + block->e_D_ratio = (e - position_float[E_AXIS]) / + sqrt(sq(x - position_float[X_AXIS]) + + sq(y - position_float[Y_AXIS]) + + sq(z - position_float[Z_AXIS])); - // Check for unusual high e_D ratio to detect if a retract move was combined with the last print move due to min. steps per segment. Never execute this with advance! - // This assumes no one will use a retract length of 0mm < retr_length < ~0.2mm and no one will print 100mm wide lines using 3mm filament or 35mm wide lines using 1.75mm filament. - if (block->e_D_ratio > 3.0) - block->use_advance_lead = false; - else { - const uint32_t max_accel_steps_per_s2 = cs.max_jerk[E_AXIS] / (extruder_advance_K * block->e_D_ratio) * steps_per_mm; - if (block->acceleration_st > max_accel_steps_per_s2) { - block->acceleration_st = max_accel_steps_per_s2; - #ifdef LA_DEBUG - SERIAL_ECHOLNPGM("Acceleration limited."); - #endif - } - } + // Check for unusual high e_D ratio to detect if a retract move was combined with the last print move due to min. steps per segment. Never execute this with advance! + // This assumes no one will use a retract length of 0mm < retr_length < ~0.2mm and no one will print 100mm wide lines using 3mm filament or 35mm wide lines using 1.75mm filament. + if (block->e_D_ratio > 3.0) + block->use_advance_lead = false; + else { + const uint32_t max_accel_steps_per_s2 = cs.max_jerk[E_AXIS] / (extruder_advance_K * block->e_D_ratio) * steps_per_mm; + if (block->acceleration_st > max_accel_steps_per_s2) { + block->acceleration_st = max_accel_steps_per_s2; + #ifdef LA_DEBUG + SERIAL_ECHOLNPGM("Acceleration limited."); + #endif + } + } } #endif @@ -1081,13 +1082,13 @@ Having the real displacement of the head, we can calculate the total movement le #ifdef LIN_ADVANCE if (block->use_advance_lead) { - block->advance_speed = (F_CPU / 8.0) / (extruder_advance_K * block->e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); - #ifdef LA_DEBUG - if (extruder_advance_K * block->e_D_ratio * block->acceleration * 2 < block->nominal_speed * block->e_D_ratio) - SERIAL_ECHOLNPGM("More than 2 steps per eISR loop executed."); - if (block->advance_speed < 200) - SERIAL_ECHOLNPGM("eISR running at > 10kHz."); - #endif + float advance_speed = (extruder_advance_K * block->e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); + block->advance_rate = calc_timer(advance_speed, block->advance_step_loops); + + #ifdef LA_DEBUG + if (block->advance_step_loops > 2) + SERIAL_ECHOLNPGM("More than 2 steps per eISR loop executed."); + #endif } #endif diff --git a/Firmware/planner.h b/Firmware/planner.h index 41e4c61bf..56e1c66c3 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -113,9 +113,10 @@ typedef struct { #ifdef LIN_ADVANCE bool use_advance_lead; // Whether the current block uses LA - uint16_t advance_speed, // Step-rate for extruder speed + uint16_t advance_rate, // Step-rate for extruder speed max_adv_steps, // max. advance steps to get cruising speed pressure (not always nominal_speed!) final_adv_steps; // advance steps due to exit speed + uint8_t advance_step_loops; // Number of stepper ticks for each advance isr float e_D_ratio; #endif diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 19cd5d816..a98c8ff29 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -117,22 +117,24 @@ volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1}; void advance_isr(); static const uint16_t ADV_NEVER = 0xFFFF; - - static uint16_t nextMainISR = 0; - static uint16_t nextAdvanceISR = ADV_NEVER; - - static uint16_t eISR_Rate = ADV_NEVER; - static bool use_advance_lead; - static uint16_t current_adv_steps; + static uint16_t nextMainISR; + static uint16_t nextAdvanceISR; + + static uint16_t main_Rate; + static uint16_t eISR_Rate; + + static volatile uint16_t current_adv_steps; static uint16_t final_adv_steps; static uint16_t max_adv_steps; static uint32_t LA_decelerate_after; - static volatile int8_t e_steps; + static int8_t e_steps; + static uint8_t e_step_loops; + static int8_t LA_phase; - #define _NEXT_ISR(T) nextMainISR = T + #define _NEXT_ISR(T) main_Rate = nextMainISR = T #else #define _NEXT_ISR(T) OCR1A = T #endif @@ -352,6 +354,13 @@ FORCE_INLINE void stepper_next_block() LA_decelerate_after = current_block->decelerate_after; final_adv_steps = current_block->final_adv_steps; max_adv_steps = current_block->max_adv_steps; + e_step_loops = current_block->advance_step_loops; + LA_phase = -1; + } else { + nextAdvanceISR = ADV_NEVER; + eISR_Rate = ADV_NEVER; + e_step_loops = 1; + LA_phase = -1; } #endif @@ -731,15 +740,12 @@ FORCE_INLINE void isr() { acceleration_time += timer; #ifdef LIN_ADVANCE if (current_block->use_advance_lead) { - if (step_events_completed.wide == (unsigned long int)step_loops || (e_steps && eISR_Rate != current_block->advance_speed)) { - nextAdvanceISR = 0; // Wake up eISR on first acceleration loop and fire ISR if final adv_rate is reached - eISR_Rate = current_block->advance_speed; + if (step_events_completed.wide <= (unsigned long int)step_loops) { + // First acceleration loop + eISR_Rate = current_block->advance_rate; + nextAdvanceISR = 0; } } - else { - eISR_Rate = ADV_NEVER; - if (e_steps) nextAdvanceISR = 0; - } #endif } else if (step_events_completed.wide > (unsigned long int)current_block->decelerate_after) { @@ -756,22 +762,15 @@ FORCE_INLINE void isr() { deceleration_time += timer; #ifdef LIN_ADVANCE if (current_block->use_advance_lead) { - if (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops || (e_steps && eISR_Rate != current_block->advance_speed)) { - nextAdvanceISR = 0; // Wake up eISR on first deceleration loop - eISR_Rate = current_block->advance_speed; + if (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops) { + // First deceleration loop + eISR_Rate = current_block->advance_rate; + nextAdvanceISR = 0; } } - else { - eISR_Rate = ADV_NEVER; - if (e_steps) nextAdvanceISR = 0; - } #endif } else { -#ifdef LIN_ADVANCE - // If we have esteps to execute, fire the next advance_isr "now" - if (e_steps && eISR_Rate != current_block->advance_speed) nextAdvanceISR = 0; -#endif if (! step_loops_nominal) { // Calculation of the steady state timer rate has been delayed to the 1st tick of the steady state to lower // the initial interrupt blocking. @@ -813,76 +812,111 @@ FORCE_INLINE void isr() { // Timer interrupt for E. e_steps is set in the main routine. FORCE_INLINE void advance_isr() { - if (use_advance_lead) { - if (step_events_completed.wide > LA_decelerate_after && current_adv_steps > final_adv_steps) { - e_steps--; - current_adv_steps--; - nextAdvanceISR = eISR_Rate; + if (step_events_completed.wide > LA_decelerate_after && current_adv_steps > final_adv_steps) { + // decompression + e_steps -= e_step_loops; + current_adv_steps -= e_step_loops; + nextAdvanceISR = eISR_Rate; + if(nextAdvanceISR == ADV_NEVER) + { + LA_phase = 1; + e_step_loops = 1; } - else if (step_events_completed.wide < LA_decelerate_after && current_adv_steps < max_adv_steps) { - e_steps++; - current_adv_steps++; - nextAdvanceISR = eISR_Rate; - } - else { - nextAdvanceISR = ADV_NEVER; - eISR_Rate = ADV_NEVER; + else + { + if (step_loops == e_step_loops) + LA_phase = (eISR_Rate > main_Rate); + else + { + // avoid overflow through division (TODO: this can be + // improved as both step_loops and e_step_loops are + // guaranteed to be powers of two) + LA_phase = (eISR_Rate / step_loops > main_Rate / e_step_loops); + } } } - else + else if (step_events_completed.wide < LA_decelerate_after && current_adv_steps < max_adv_steps) { + // compression + e_steps += e_step_loops; + current_adv_steps += e_step_loops; + nextAdvanceISR = eISR_Rate; + LA_phase = -1; + if(nextAdvanceISR == ADV_NEVER) + e_step_loops = 1; + } + else { + // advance steps completed nextAdvanceISR = ADV_NEVER; - - if (e_steps) { - MSerial.checkRx(); // Check for serial chars. - - bool dir = -#ifdef SNMM - ((e_steps < 0) == (snmm_extruder & 1)) -#else - (e_steps < 0) -#endif - ? INVERT_E0_DIR : !INVERT_E0_DIR; //If we have SNMM, reverse every second extruder. - WRITE(E0_DIR_PIN, dir); - - if(e_steps < 0) e_steps = -e_steps; - fsensor_counter += e_steps; - while (e_steps) { - WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); - --e_steps; - WRITE_NC(E0_STEP_PIN, INVERT_E_STEP_PIN); - } + eISR_Rate = ADV_NEVER; + LA_phase = -1; + e_step_loops = 1; } } FORCE_INLINE void advance_isr_scheduler() { - // Run main stepping ISR if flagged - if (!nextMainISR) isr(); - - // Run Advance stepping ISR if flagged - if (!nextAdvanceISR) advance_isr(); - - // Is the next advance ISR scheduled before the next main ISR? - if (nextAdvanceISR <= nextMainISR) { - // Set up the next interrupt - OCR1A = nextAdvanceISR; - // New interval for the next main ISR - if (nextMainISR) nextMainISR -= nextAdvanceISR; - // Will call Stepper::advance_isr on the next interrupt - nextAdvanceISR = 0; + // Integrate the final timer value, accounting for scheduling adjustments + if(nextAdvanceISR && nextAdvanceISR != ADV_NEVER) + { + if(nextAdvanceISR > OCR1A) + nextAdvanceISR -= OCR1A; + else + nextAdvanceISR = 0; } - else { - // The next main ISR comes first - OCR1A = nextMainISR; - // New interval for the next advance ISR, if any - if (nextAdvanceISR && nextAdvanceISR != ADV_NEVER) - nextAdvanceISR -= nextMainISR; - // Will call Stepper::isr on the next interrupt + if(nextMainISR > OCR1A) + nextMainISR -= OCR1A; + else nextMainISR = 0; + + // Run main stepping ISR if flagged + if (!nextMainISR) + { +#ifdef LA_DEBUG_LOGIC + WRITE_NC(LOGIC_ANALYZER_CH0, true); +#endif + isr(); +#ifdef LA_DEBUG_LOGIC + WRITE_NC(LOGIC_ANALYZER_CH0, false); +#endif } + + // Run the next advance isr if triggered now or soon enough + bool eisr = nextAdvanceISR < (TCNT1 + nextAdvanceISR / 8); + if (eisr) + { +#ifdef LA_DEBUG_LOGIC + WRITE_NC(LOGIC_ANALYZER_CH1, true); +#endif + advance_isr(); +#ifdef LA_DEBUG_LOGIC + WRITE_NC(LOGIC_ANALYZER_CH1, false); +#endif + } + + // Tick E steps if any + if (e_steps && (LA_phase < 0 || LA_phase == eisr)) { + uint8_t max_ticks = max(e_step_loops, step_loops); + max_ticks = min(abs(e_steps), max_ticks); +#ifdef FILAMENT_SENSOR + fsensor_counter += max_ticks; +#endif + WRITE(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); + while(max_ticks--) + { + WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); + e_steps += (e_steps < 0)? 1: -1; + WRITE_NC(E0_STEP_PIN, INVERT_E_STEP_PIN); + } + } + + // Schedule the next closest tick, ignoring advance if scheduled to + // soon in order to avoid skewing the regular stepper acceleration + if (nextAdvanceISR != ADV_NEVER && (nextAdvanceISR + TCNT1 + nextAdvanceISR / 8) < nextMainISR) + OCR1A = nextAdvanceISR; + else + OCR1A = nextMainISR; } void clear_current_adv_vars() { - e_steps = 0; current_adv_steps = 0; } @@ -1106,15 +1140,28 @@ void st_init() // create_speed_lookuptable.py TCCR1B = (TCCR1B & ~(0x07< Date: Sun, 19 May 2019 14:23:37 +0200 Subject: [PATCH 014/271] Use a define instead of hard-coding a divider --- Firmware/stepper.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index a98c8ff29..8f0fef2ac 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -853,6 +853,10 @@ FORCE_INLINE void advance_isr() { } } +#define LA_FREQ_MDIV 8 // divider for the advance frequency for maximum + // time allotted to merge regular and advance + // ticks (stick to a power-of-two) + FORCE_INLINE void advance_isr_scheduler() { // Integrate the final timer value, accounting for scheduling adjustments if(nextAdvanceISR && nextAdvanceISR != ADV_NEVER) @@ -880,7 +884,7 @@ FORCE_INLINE void advance_isr_scheduler() { } // Run the next advance isr if triggered now or soon enough - bool eisr = nextAdvanceISR < (TCNT1 + nextAdvanceISR / 8); + bool eisr = nextAdvanceISR < (TCNT1 + nextAdvanceISR / LA_FREQ_MDIV); if (eisr) { #ifdef LA_DEBUG_LOGIC @@ -910,7 +914,7 @@ FORCE_INLINE void advance_isr_scheduler() { // Schedule the next closest tick, ignoring advance if scheduled to // soon in order to avoid skewing the regular stepper acceleration - if (nextAdvanceISR != ADV_NEVER && (nextAdvanceISR + TCNT1 + nextAdvanceISR / 8) < nextMainISR) + if (nextAdvanceISR != ADV_NEVER && (nextAdvanceISR + TCNT1 + nextAdvanceISR / LA_FREQ_MDIV) < nextMainISR) OCR1A = nextAdvanceISR; else OCR1A = nextMainISR; From a1be8b6784f7363dbf5436c2d212942d7d363ce8 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 19 May 2019 14:26:23 +0200 Subject: [PATCH 015/271] Initialize current_adv_steps correctly Initialize at 0 both on startup and on reset on regular (non-LA) segments to avoid cumulating errors. --- Firmware/stepper.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 8f0fef2ac..9339b4bf3 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -361,6 +361,7 @@ FORCE_INLINE void stepper_next_block() eISR_Rate = ADV_NEVER; e_step_loops = 1; LA_phase = -1; + current_adv_steps = 0; } #endif @@ -1165,6 +1166,7 @@ void st_init() e_steps = 0; e_step_loops = 1; LA_phase = -1; + current_adv_steps = 0; #endif enable_endstops(true); // Start with endstops active. After homing they can be disabled From 9586d71adbbaf4e459961b491216801f0c963397 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 19 May 2019 14:31:26 +0200 Subject: [PATCH 016/271] Mention LA_DEBUG_LOGIC --- Firmware/Configuration_adv.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index d731e8633..e464b4de4 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -294,8 +294,9 @@ #define LIN_ADVANCE #ifdef LIN_ADVANCE - #define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed - //#define LA_DEBUG // If enabled, this will generate debug information output over USB. + #define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed + //#define LA_DEBUG // If enabled, this will generate debug information output over USB. + //#define LA_DEBUG_LOGIC // @wavexx: setup logic channels for isr debugging #endif // Arc interpretation settings: From 942c38c18bbc28cf2f68dd1aafa3dc9cf3b62c9d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 19 May 2019 14:34:03 +0200 Subject: [PATCH 017/271] Minor reformatting --- Firmware/planner.cpp | 18 ++++++++++-------- Firmware/planner.h | 4 ++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 078abac4c..0d0f3e36e 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1019,21 +1019,23 @@ Having the real displacement of the head, we can calculate the total movement le /** * Use LIN_ADVANCE for blocks if all these are true: * - * block->steps_e : This is a print move, because we checked for X, Y, Z steps before. - * extruder_advance_K : There is an advance factor set. - * delta_mm[E_AXIS] > 0 : Extruder is running forward (e.g., for "Wipe while retracting" (Slic3r) or "Combing" (Cura) moves) + * block->steps_e : This is a print move, because we checked for X, Y, Z steps before. + * extruder_advance_K : There is an advance factor set. + * delta_mm[E_AXIS] > 0 : Extruder is running forward (e.g., for "Wipe while retracting" (Slic3r) or "Combing" (Cura) moves) */ - block->use_advance_lead = block->steps_e.wide - && extruder_advance_K - && delta_mm[E_AXIS] > 0; + block->use_advance_lead = block->steps_e.wide + && extruder_advance_K + && delta_mm[E_AXIS] > 0; if (block->use_advance_lead) { block->e_D_ratio = (e - position_float[E_AXIS]) / sqrt(sq(x - position_float[X_AXIS]) + sq(y - position_float[Y_AXIS]) + sq(z - position_float[Z_AXIS])); - // Check for unusual high e_D ratio to detect if a retract move was combined with the last print move due to min. steps per segment. Never execute this with advance! - // This assumes no one will use a retract length of 0mm < retr_length < ~0.2mm and no one will print 100mm wide lines using 3mm filament or 35mm wide lines using 1.75mm filament. + // Check for unusual high e_D ratio to detect if a retract move was combined with the last + // print move due to min. steps per segment. Never execute this with advance! This assumes + // no one will use a retract length of 0mm < retr_length < ~0.2mm and no one will print + // 100mm wide lines using 3mm filament or 35mm wide lines using 1.75mm filament. if (block->e_D_ratio > 3.0) block->use_advance_lead = false; else { diff --git a/Firmware/planner.h b/Firmware/planner.h index 56e1c66c3..44c57ea5e 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -110,10 +110,10 @@ typedef struct { // Pre-calculated division for the calculate_trapezoid_for_block() routine to run faster. float speed_factor; - + #ifdef LIN_ADVANCE bool use_advance_lead; // Whether the current block uses LA - uint16_t advance_rate, // Step-rate for extruder speed + uint16_t advance_rate, // Step-rate for extruder speed max_adv_steps, // max. advance steps to get cruising speed pressure (not always nominal_speed!) final_adv_steps; // advance steps due to exit speed uint8_t advance_step_loops; // Number of stepper ticks for each advance isr From c6dbcc494f6fff2915fcb1f29c451f4d41079a9b Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 19 May 2019 15:42:14 +0200 Subject: [PATCH 018/271] Typo --- Firmware/stepper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 9339b4bf3..5fc0006b3 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -913,7 +913,7 @@ FORCE_INLINE void advance_isr_scheduler() { } } - // Schedule the next closest tick, ignoring advance if scheduled to + // Schedule the next closest tick, ignoring advance if scheduled too // soon in order to avoid skewing the regular stepper acceleration if (nextAdvanceISR != ADV_NEVER && (nextAdvanceISR + TCNT1 + nextAdvanceISR / LA_FREQ_MDIV) < nextMainISR) OCR1A = nextAdvanceISR; From aae5cce28f177a65df8823ddf8d908723036b45d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 19 May 2019 16:32:14 +0200 Subject: [PATCH 019/271] Use the nominal frequency to merge ticks --- Firmware/stepper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 5fc0006b3..65f39c7d9 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -885,7 +885,7 @@ FORCE_INLINE void advance_isr_scheduler() { } // Run the next advance isr if triggered now or soon enough - bool eisr = nextAdvanceISR < (TCNT1 + nextAdvanceISR / LA_FREQ_MDIV); + bool eisr = nextAdvanceISR < (TCNT1 + eISR_Rate / LA_FREQ_MDIV); if (eisr) { #ifdef LA_DEBUG_LOGIC @@ -915,7 +915,7 @@ FORCE_INLINE void advance_isr_scheduler() { // Schedule the next closest tick, ignoring advance if scheduled too // soon in order to avoid skewing the regular stepper acceleration - if (nextAdvanceISR != ADV_NEVER && (nextAdvanceISR + TCNT1 + nextAdvanceISR / LA_FREQ_MDIV) < nextMainISR) + if (nextAdvanceISR != ADV_NEVER && (nextAdvanceISR + TCNT1 + eISR_Rate / LA_FREQ_MDIV) < nextMainISR) OCR1A = nextAdvanceISR; else OCR1A = nextMainISR; From 53b77bab360349d88936785a934cee24bbb74108 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 21 May 2019 11:54:14 +0200 Subject: [PATCH 020/271] Do not operate on the prev block when already in use --- Firmware/planner.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 0d0f3e36e..b9e693e7c 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -400,14 +400,18 @@ void planner_recalculate(const float &safe_final_speed) } // Recalculate if current block entry or exit junction speed has changed. if ((prev->flag | current->flag) & BLOCK_FLAG_RECALCULATE) { - // NOTE: Entry and exit factors always > 0 by all previous logic operations. - calculate_trapezoid_for_block(prev, prev->entry_speed, current->entry_speed); - #ifdef LIN_ADVANCE - if (prev->use_advance_lead) { - const float comp = prev->e_D_ratio * extruder_advance_K * cs.axis_steps_per_unit[E_AXIS]; - prev->final_adv_steps = current->entry_speed * comp; + // @wavexx: FIXME: the following check is not really enough. calculate_trapezoid does block + // the isr to update the rates, but we don't. we should update atomically + if (!prev->busy) { + // NOTE: Entry and exit factors always > 0 by all previous logic operations. + calculate_trapezoid_for_block(prev, prev->entry_speed, current->entry_speed); + #ifdef LIN_ADVANCE + if (prev->use_advance_lead) { + const float comp = prev->e_D_ratio * extruder_advance_K * cs.axis_steps_per_unit[E_AXIS]; + prev->final_adv_steps = current->entry_speed * comp; + } + #endif } - #endif // Reset current only to ensure next trapezoid is computed. prev->flag &= ~BLOCK_FLAG_RECALCULATE; } From 294bf4068de454ed2c86f8096722621db51ee888 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 21 May 2019 21:28:31 +0200 Subject: [PATCH 021/271] Improve debug messages --- Firmware/planner.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index b9e693e7c..466cd340c 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1047,7 +1047,7 @@ Having the real displacement of the head, we can calculate the total movement le if (block->acceleration_st > max_accel_steps_per_s2) { block->acceleration_st = max_accel_steps_per_s2; #ifdef LA_DEBUG - SERIAL_ECHOLNPGM("Acceleration limited."); + SERIAL_ECHOLNPGM("LA: Block acceleration limited due to max E-jerk"); #endif } } @@ -1093,7 +1093,11 @@ Having the real displacement of the head, we can calculate the total movement le #ifdef LA_DEBUG if (block->advance_step_loops > 2) - SERIAL_ECHOLNPGM("More than 2 steps per eISR loop executed."); + // @wavexx: we should really check for the difference between step_loops and + // advance_step_loops instead. A difference of more than 1 will lead + // to uneven speed and *should* be adjusted here by furthermore + // reducing the speed. + SERIAL_ECHOLNPGM("LA: More than 2 steps per eISR loop executed."); #endif } #endif From 282b5023932358fa4d5c49c746e7b4ddf830a882 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 21 May 2019 21:32:38 +0200 Subject: [PATCH 022/271] Improve the distribution of the advance steps --- Firmware/stepper.cpp | 117 ++++++++++++++++++++++++++----------------- 1 file changed, 71 insertions(+), 46 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 65f39c7d9..f0b39905f 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -124,8 +124,9 @@ volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1}; static uint16_t main_Rate; static uint16_t eISR_Rate; + static uint16_t eISR_Err; - static volatile uint16_t current_adv_steps; + static uint16_t current_adv_steps; static uint16_t final_adv_steps; static uint16_t max_adv_steps; static uint32_t LA_decelerate_after; @@ -355,14 +356,13 @@ FORCE_INLINE void stepper_next_block() final_adv_steps = current_block->final_adv_steps; max_adv_steps = current_block->max_adv_steps; e_step_loops = current_block->advance_step_loops; - LA_phase = -1; } else { - nextAdvanceISR = ADV_NEVER; - eISR_Rate = ADV_NEVER; + e_steps = 0; e_step_loops = 1; - LA_phase = -1; current_adv_steps = 0; } + nextAdvanceISR = ADV_NEVER; + LA_phase = -1; #endif if (current_block->flag & BLOCK_FLAG_DDA_LOWRES) { @@ -707,6 +707,39 @@ FORCE_INLINE void stepper_tick_highres() } } + +#ifdef LIN_ADVANCE +FORCE_INLINE void advance_spread(uint16_t timer) +{ + if(eISR_Err > timer) + { + // advance-step skipped + eISR_Err -= timer; + eISR_Rate = timer; + nextAdvanceISR = timer; + return; + } + + // at least one step + uint8_t ticks = 1; + uint32_t block = current_block->advance_rate; + uint16_t max_t = timer - eISR_Err; + while (block < max_t) + { + ++ticks; + block += current_block->advance_rate; + } + if (block > timer) + eISR_Err += block - timer; + else + eISR_Err -= timer - block; + + eISR_Rate = timer / ticks; + nextAdvanceISR = eISR_Rate / 2; +} +#endif + + FORCE_INLINE void isr() { //WRITE_NC(LOGIC_ANALYZER_CH0, true); @@ -741,11 +774,10 @@ FORCE_INLINE void isr() { acceleration_time += timer; #ifdef LIN_ADVANCE if (current_block->use_advance_lead) { - if (step_events_completed.wide <= (unsigned long int)step_loops) { - // First acceleration loop - eISR_Rate = current_block->advance_rate; - nextAdvanceISR = 0; - } + bool first = (step_events_completed.wide <= (unsigned long int)step_loops); + if (first) eISR_Err = current_block->advance_rate / 2; + if (first || nextAdvanceISR != ADV_NEVER) + advance_spread(timer); } #endif } @@ -763,10 +795,20 @@ FORCE_INLINE void isr() { deceleration_time += timer; #ifdef LIN_ADVANCE if (current_block->use_advance_lead) { - if (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops) { - // First deceleration loop - eISR_Rate = current_block->advance_rate; - nextAdvanceISR = 0; + bool first = (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops); + if (first) eISR_Err = current_block->advance_rate / 2; + if (first || nextAdvanceISR != ADV_NEVER) + { + advance_spread(timer); + if (step_loops == e_step_loops) + LA_phase = (eISR_Rate > main_Rate); + else + { + // avoid overflow through division (TODO: this can be + // improved as both step_loops and e_step_loops are + // currently guaranteed to be powers of two) + LA_phase = (eISR_Rate / step_loops > main_Rate / e_step_loops); + } } } #endif @@ -779,6 +821,11 @@ FORCE_INLINE void isr() { step_loops_nominal = step_loops; } _NEXT_ISR(OCR1A_nominal); +#ifdef LIN_ADVANCE + if (current_block->use_advance_lead && nextAdvanceISR != ADV_NEVER) { + advance_spread(OCR1A_nominal); + } +#endif } //WRITE_NC(LOGIC_ANALYZER_CH1, false); } @@ -816,48 +863,26 @@ FORCE_INLINE void advance_isr() { if (step_events_completed.wide > LA_decelerate_after && current_adv_steps > final_adv_steps) { // decompression e_steps -= e_step_loops; - current_adv_steps -= e_step_loops; - nextAdvanceISR = eISR_Rate; - if(nextAdvanceISR == ADV_NEVER) - { - LA_phase = 1; - e_step_loops = 1; - } + if(current_adv_steps > e_step_loops) + current_adv_steps -= e_step_loops; else - { - if (step_loops == e_step_loops) - LA_phase = (eISR_Rate > main_Rate); - else - { - // avoid overflow through division (TODO: this can be - // improved as both step_loops and e_step_loops are - // guaranteed to be powers of two) - LA_phase = (eISR_Rate / step_loops > main_Rate / e_step_loops); - } - } + current_adv_steps = 0; + nextAdvanceISR = eISR_Rate; } else if (step_events_completed.wide < LA_decelerate_after && current_adv_steps < max_adv_steps) { // compression e_steps += e_step_loops; current_adv_steps += e_step_loops; nextAdvanceISR = eISR_Rate; - LA_phase = -1; - if(nextAdvanceISR == ADV_NEVER) - e_step_loops = 1; } else { // advance steps completed nextAdvanceISR = ADV_NEVER; - eISR_Rate = ADV_NEVER; LA_phase = -1; e_step_loops = 1; } } -#define LA_FREQ_MDIV 8 // divider for the advance frequency for maximum - // time allotted to merge regular and advance - // ticks (stick to a power-of-two) - FORCE_INLINE void advance_isr_scheduler() { // Integrate the final timer value, accounting for scheduling adjustments if(nextAdvanceISR && nextAdvanceISR != ADV_NEVER) @@ -884,8 +909,8 @@ FORCE_INLINE void advance_isr_scheduler() { #endif } - // Run the next advance isr if triggered now or soon enough - bool eisr = nextAdvanceISR < (TCNT1 + eISR_Rate / LA_FREQ_MDIV); + // Run the next advance isr if triggered + bool eisr = !nextAdvanceISR; if (eisr) { #ifdef LA_DEBUG_LOGIC @@ -899,23 +924,24 @@ FORCE_INLINE void advance_isr_scheduler() { // Tick E steps if any if (e_steps && (LA_phase < 0 || LA_phase == eisr)) { - uint8_t max_ticks = max(e_step_loops, step_loops); + uint8_t max_ticks = (eisr? e_step_loops: step_loops); max_ticks = min(abs(e_steps), max_ticks); #ifdef FILAMENT_SENSOR fsensor_counter += max_ticks; #endif WRITE(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); - while(max_ticks--) + do { WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); e_steps += (e_steps < 0)? 1: -1; WRITE_NC(E0_STEP_PIN, INVERT_E_STEP_PIN); } + while(--max_ticks); } // Schedule the next closest tick, ignoring advance if scheduled too // soon in order to avoid skewing the regular stepper acceleration - if (nextAdvanceISR != ADV_NEVER && (nextAdvanceISR + TCNT1 + eISR_Rate / LA_FREQ_MDIV) < nextMainISR) + if (nextAdvanceISR != ADV_NEVER && (nextAdvanceISR + TCNT1 + 40) < nextMainISR) OCR1A = nextAdvanceISR; else OCR1A = nextMainISR; @@ -1162,7 +1188,6 @@ void st_init() nextMainISR = 0; nextAdvanceISR = ADV_NEVER; main_Rate = ADV_NEVER; - eISR_Rate = ADV_NEVER; e_steps = 0; e_step_loops = 1; LA_phase = -1; From 0a26de1e7f2aeb544273ef48969140bff32cb4d2 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 25 May 2019 17:49:18 +0200 Subject: [PATCH 023/271] Allow to live-tune K during a print --- Firmware/menu.cpp | 4 +-- Firmware/menu.h | 3 +++ Firmware/ultralcd.cpp | 59 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 63 insertions(+), 3 deletions(-) diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index 847e63c80..42bfd0d93 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -96,7 +96,7 @@ void menu_back(void) menu_back(1); } -static void menu_back_no_reset(void) +void menu_back_no_reset(void) { if (menu_depth > 0) { @@ -130,7 +130,7 @@ void menu_submenu(menu_func_t submenu) } } -static void menu_submenu_no_reset(menu_func_t submenu) +void menu_submenu_no_reset(menu_func_t submenu) { if (menu_depth < MENU_DEPTH_MAX) { diff --git a/Firmware/menu.h b/Firmware/menu.h index 9800550b9..a129dfc82 100755 --- a/Firmware/menu.h +++ b/Firmware/menu.h @@ -54,6 +54,7 @@ void menu_start(void); extern void menu_end(void); extern void menu_back(void); +extern void menu_back_no_reset(void); extern void menu_back(uint8_t nLevel); extern void menu_back_if_clicked(void); @@ -61,6 +62,7 @@ extern void menu_back_if_clicked(void); extern void menu_back_if_clicked_fb(void); extern void menu_submenu(menu_func_t submenu); +extern void menu_submenu_no_reset(menu_func_t submenu); extern uint8_t menu_item_ret(void); @@ -98,6 +100,7 @@ extern const char menu_fmt_int3[]; extern const char menu_fmt_float31[]; extern const char menu_fmt_float13[]; +extern const char menu_fmt_float13off[]; extern void menu_draw_float31(const char* str, float val); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 97304adb2..8036c3a82 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6606,6 +6606,60 @@ static void lcd_colorprint_change() { lcd_draw_update = 3; } + +#ifdef LIN_ADVANCE +// @wavexx: looks like there's no generic float editing function in menu.cpp so we +// redefine our custom handling functions to mimick other tunables +#define MSG_ADVANCE_K PSTR("Advance K:") + +static void lcd_advance_draw_K(char chr, float val) +{ + if (val <= 0) + lcd_printf_P(menu_fmt_float13off, chr, MSG_ADVANCE_K, " [off]"); + else + lcd_printf_P(menu_fmt_float13, chr, MSG_ADVANCE_K, val); +} + +static void lcd_advance_edit_K(void) +{ + if (lcd_draw_update) + { + if (lcd_encoder < 0) lcd_encoder = 0; + if (lcd_encoder > 999) lcd_encoder = 999; + lcd_set_cursor(0, 1); + lcd_advance_draw_K(' ', 0.01 * lcd_encoder); + } + if (LCD_CLICKED) + { + extruder_advance_K = 0.01 * lcd_encoder; + menu_back_no_reset(); + } +} + +static uint8_t lcd_advance_K() +{ + if (menu_item == menu_line) + { + if (lcd_draw_update) + { + lcd_set_cursor(0, menu_row); + lcd_advance_draw_K((lcd_encoder == menu_item)?'>':' ', extruder_advance_K); + } + if (menu_clicked && (lcd_encoder == menu_item)) + { + menu_submenu_no_reset(lcd_advance_edit_K); + lcd_encoder = 100. * extruder_advance_K; + return menu_item_ret(); + } + } + menu_item++; + return 0; +} + +#define MENU_ITEM_EDIT_advance_K() do { if (lcd_advance_K()) return; } while (0) +#endif + + static void lcd_tune_menu() { typedef struct @@ -6644,8 +6698,11 @@ static void lcd_tune_menu() MENU_ITEM_EDIT_int3_P(_T(MSG_FAN_SPEED), &fanSpeed, 0, 255);//5 MENU_ITEM_EDIT_int3_P(_i("Flow"), &extrudemultiply, 10, 999);//6////MSG_FLOW +#ifdef LIN_ADVANCE + MENU_ITEM_EDIT_advance_K();//7 +#endif #ifdef FILAMENTCHANGEENABLE - MENU_ITEM_FUNCTION_P(_T(MSG_FILAMENTCHANGE), lcd_colorprint_change);//7 + MENU_ITEM_FUNCTION_P(_T(MSG_FILAMENTCHANGE), lcd_colorprint_change);//8 #endif #ifdef FILAMENT_SENSOR From fa7ecfc38e534c5623068b3d7eed76e8fee91af9 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 25 May 2019 18:39:50 +0200 Subject: [PATCH 024/271] Check for serial roughtly in the middle of the stepper isr --- Firmware/stepper.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index f0b39905f..37898f9ce 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -830,6 +830,12 @@ FORCE_INLINE void isr() { //WRITE_NC(LOGIC_ANALYZER_CH1, false); } +#ifdef LIN_ADVANCE + // Check for serial chars. This executes roughtly between 50-60% of the total length of the isr, + // making this spot a much better choice than checking during esteps + MSerial.checkRx(); +#endif + // If current block is finished, reset pointer if (step_events_completed.wide >= current_block->step_event_count.wide) { #ifdef FILAMENT_SENSOR From 935a7982369da88b56d6d6b10453559f9448c46b Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 25 May 2019 21:38:59 +0200 Subject: [PATCH 025/271] Speedup advance_spread for common divisors --- Firmware/stepper.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 37898f9ce..b3e6427a8 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -734,7 +734,14 @@ FORCE_INLINE void advance_spread(uint16_t timer) else eISR_Err -= timer - block; - eISR_Rate = timer / ticks; + if (ticks == 1) + eISR_Rate = timer; + else if (ticks == 2) + eISR_Rate = timer / 2; + else if (ticks == 4) + eISR_Rate = timer / 4; + else + eISR_Rate = timer / ticks; nextAdvanceISR = eISR_Rate / 2; } #endif @@ -822,9 +829,8 @@ FORCE_INLINE void isr() { } _NEXT_ISR(OCR1A_nominal); #ifdef LIN_ADVANCE - if (current_block->use_advance_lead && nextAdvanceISR != ADV_NEVER) { + if (current_block->use_advance_lead && nextAdvanceISR != ADV_NEVER) advance_spread(OCR1A_nominal); - } #endif } //WRITE_NC(LOGIC_ANALYZER_CH1, false); From aae03ad83eac79afb49e6e3899abc4e00fade6e5 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 25 May 2019 21:49:43 +0200 Subject: [PATCH 026/271] Correctly handle direction for the filament sensor --- Firmware/stepper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index b3e6427a8..ffbfed195 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -939,7 +939,7 @@ FORCE_INLINE void advance_isr_scheduler() { uint8_t max_ticks = (eisr? e_step_loops: step_loops); max_ticks = min(abs(e_steps), max_ticks); #ifdef FILAMENT_SENSOR - fsensor_counter += max_ticks; + fsensor_counter += (e_steps < 0? -max_ticks: max_ticks); #endif WRITE(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); do From bddc3e84ab5ee72a00af426e4ef055b0d60ab4db Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 25 May 2019 21:50:53 +0200 Subject: [PATCH 027/271] Use WRITE_NC directly in the isr --- Firmware/stepper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index ffbfed195..4a34105e5 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -941,7 +941,7 @@ FORCE_INLINE void advance_isr_scheduler() { #ifdef FILAMENT_SENSOR fsensor_counter += (e_steps < 0? -max_ticks: max_ticks); #endif - WRITE(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); + WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); do { WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); From 6f6cef65b5c254b17565e029fb6925ff2b6fefee Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 May 2019 15:35:13 +0200 Subject: [PATCH 028/271] Revert "Correctly handle direction for the filament sensor" This reverts commit aae03ad83eac79afb49e6e3899abc4e00fade6e5. --- Firmware/stepper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 4a34105e5..e45e5eaf5 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -939,7 +939,7 @@ FORCE_INLINE void advance_isr_scheduler() { uint8_t max_ticks = (eisr? e_step_loops: step_loops); max_ticks = min(abs(e_steps), max_ticks); #ifdef FILAMENT_SENSOR - fsensor_counter += (e_steps < 0? -max_ticks: max_ticks); + fsensor_counter += max_ticks; #endif WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); do From daa8007de5903c43100971cd1bcce26cbd5c007c Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 May 2019 16:30:59 +0200 Subject: [PATCH 029/271] Allow to exclude Live K from the build --- Firmware/Configuration_adv.h | 1 + Firmware/ultralcd.cpp | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index e464b4de4..f739cde26 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -295,6 +295,7 @@ #ifdef LIN_ADVANCE #define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed + #define LA_LIVE_K // Allow adjusting K in the Tune menu //#define LA_DEBUG // If enabled, this will generate debug information output over USB. //#define LA_DEBUG_LOGIC // @wavexx: setup logic channels for isr debugging #endif diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 8036c3a82..dd1da7201 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6607,7 +6607,7 @@ static void lcd_colorprint_change() { } -#ifdef LIN_ADVANCE +#ifdef LA_LIVE_K // @wavexx: looks like there's no generic float editing function in menu.cpp so we // redefine our custom handling functions to mimick other tunables #define MSG_ADVANCE_K PSTR("Advance K:") @@ -6698,7 +6698,7 @@ static void lcd_tune_menu() MENU_ITEM_EDIT_int3_P(_T(MSG_FAN_SPEED), &fanSpeed, 0, 255);//5 MENU_ITEM_EDIT_int3_P(_i("Flow"), &extrudemultiply, 10, 999);//6////MSG_FLOW -#ifdef LIN_ADVANCE +#ifdef LA_LIVE_K MENU_ITEM_EDIT_advance_K();//7 #endif #ifdef FILAMENTCHANGEENABLE From a28fb65bb21e1cb65a42934dd974cb666de000fa Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 May 2019 14:58:57 +0200 Subject: [PATCH 030/271] Optimize advance_spread further --- Firmware/stepper.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index e45e5eaf5..63ded9d59 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -709,6 +709,14 @@ FORCE_INLINE void stepper_tick_highres() #ifdef LIN_ADVANCE +// @wavexx: fast uint16_t division for small dividends<5 +// q/3 based on "Hacker's delight" formula +FORCE_INLINE uint16_t fastdiv(uint16_t q, uint8_t d) +{ + if(d != 3) return q >> (d / 2); + else return ((uint32_t)0xAAAB * q) >> 17; +} + FORCE_INLINE void advance_spread(uint16_t timer) { if(eISR_Err > timer) @@ -734,14 +742,14 @@ FORCE_INLINE void advance_spread(uint16_t timer) else eISR_Err -= timer - block; - if (ticks == 1) - eISR_Rate = timer; - else if (ticks == 2) - eISR_Rate = timer / 2; - else if (ticks == 4) - eISR_Rate = timer / 4; + if (ticks <= 4) + eISR_Rate = fastdiv(timer, ticks); else + { + // >4 ticks are still possible on slow moves eISR_Rate = timer / ticks; + } + nextAdvanceISR = eISR_Rate / 2; } #endif @@ -811,10 +819,9 @@ FORCE_INLINE void isr() { LA_phase = (eISR_Rate > main_Rate); else { - // avoid overflow through division (TODO: this can be - // improved as both step_loops and e_step_loops are - // currently guaranteed to be powers of two) - LA_phase = (eISR_Rate / step_loops > main_Rate / e_step_loops); + // avoid overflow through division. warning: we need to _guarantee_ step_loops + // and e_step_loops are <= 4 due to fastdiv's limit + LA_phase = (fastdiv(eISR_Rate, step_loops) > fastdiv(main_Rate, e_step_loops)); } } } From 20694aeabc8d23a1680f6c22f7819f54abd948ac Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 May 2019 15:34:05 +0200 Subject: [PATCH 031/271] Save 316 bytes by avoiding advance_spread copies --- Firmware/stepper.cpp | 51 ++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 63ded9d59..372f16f09 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -116,7 +116,10 @@ volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1}; void advance_isr_scheduler(); void advance_isr(); - static const uint16_t ADV_NEVER = 0xFFFF; + static const uint16_t ADV_NEVER = 0xFFFF; + static const uint8_t ADV_INIT = 0b01; + static const uint8_t ADV_DECELERATE = 0b10; + static bool use_advance_lead; static uint16_t nextMainISR; @@ -771,6 +774,11 @@ FORCE_INLINE void isr() { else stepper_tick_highres(); + +#ifdef LIN_ADVANCE + uint8_t la_state = 0; +#endif + // Calculare new timer value // 13.38-14.63us for steady state, // 25.12us for acceleration / deceleration. @@ -789,10 +797,8 @@ FORCE_INLINE void isr() { acceleration_time += timer; #ifdef LIN_ADVANCE if (current_block->use_advance_lead) { - bool first = (step_events_completed.wide <= (unsigned long int)step_loops); - if (first) eISR_Err = current_block->advance_rate / 2; - if (first || nextAdvanceISR != ADV_NEVER) - advance_spread(timer); + if (step_events_completed.wide <= (unsigned long int)step_loops) + la_state = ADV_INIT; } #endif } @@ -810,20 +816,8 @@ FORCE_INLINE void isr() { deceleration_time += timer; #ifdef LIN_ADVANCE if (current_block->use_advance_lead) { - bool first = (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops); - if (first) eISR_Err = current_block->advance_rate / 2; - if (first || nextAdvanceISR != ADV_NEVER) - { - advance_spread(timer); - if (step_loops == e_step_loops) - LA_phase = (eISR_Rate > main_Rate); - else - { - // avoid overflow through division. warning: we need to _guarantee_ step_loops - // and e_step_loops are <= 4 due to fastdiv's limit - LA_phase = (fastdiv(eISR_Rate, step_loops) > fastdiv(main_Rate, e_step_loops)); - } - } + if (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops) + la_state = ADV_INIT | ADV_DECELERATE; } #endif } @@ -835,15 +829,26 @@ FORCE_INLINE void isr() { step_loops_nominal = step_loops; } _NEXT_ISR(OCR1A_nominal); -#ifdef LIN_ADVANCE - if (current_block->use_advance_lead && nextAdvanceISR != ADV_NEVER) - advance_spread(OCR1A_nominal); -#endif } //WRITE_NC(LOGIC_ANALYZER_CH1, false); } #ifdef LIN_ADVANCE + // avoid multiple instances or function calls to advance_spread + if (la_state & ADV_INIT) eISR_Rate = current_block->advance_rate; + if (la_state & ADV_INIT || nextAdvanceISR != ADV_NEVER) { + advance_spread(main_Rate); + if (la_state & ADV_DECELERATE) { + if (step_loops == e_step_loops) + LA_phase = (eISR_Rate > main_Rate); + else { + // avoid overflow through division. warning: we need to _guarantee_ step_loops + // and e_step_loops are <= 4 due to fastdiv's limit + LA_phase = (fastdiv(eISR_Rate, step_loops) > fastdiv(main_Rate, e_step_loops)); + } + } + } + // Check for serial chars. This executes roughtly between 50-60% of the total length of the isr, // making this spot a much better choice than checking during esteps MSerial.checkRx(); From ab478ec2810700689698cad48b9f343792f263aa Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 May 2019 16:05:41 +0200 Subject: [PATCH 032/271] Save another 144b by avoiding a calc_timer copy --- Firmware/planner.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 466cd340c..ddf94cb81 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1088,8 +1088,17 @@ Having the real displacement of the head, we can calculate the total movement le #ifdef LIN_ADVANCE if (block->use_advance_lead) { + // to save more space we avoid another copy of calc_timer and go through slow division, but we + // still need to replicate the *exact* same step grouping policy (see below) float advance_speed = (extruder_advance_K * block->e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); - block->advance_rate = calc_timer(advance_speed, block->advance_step_loops); + if (advance_speed > MAX_STEP_FREQUENCY) advance_speed = MAX_STEP_FREQUENCY; + block->advance_rate = (F_CPU / 8.0) / advance_speed; + if (block->advance_rate > 20000) + block->advance_step_loops = 4; + else if (block->advance_rate > 10000) + block->advance_step_loops = 2; + else + block->advance_step_loops = 1; #ifdef LA_DEBUG if (block->advance_step_loops > 2) From 3abb2188dff6c781e93ac6bb7ff78312fc65024d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 May 2019 16:58:57 +0200 Subject: [PATCH 033/271] Fixup initial error by defect --- Firmware/stepper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 372f16f09..6eaa9003d 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -835,7 +835,7 @@ FORCE_INLINE void isr() { #ifdef LIN_ADVANCE // avoid multiple instances or function calls to advance_spread - if (la_state & ADV_INIT) eISR_Rate = current_block->advance_rate; + if (la_state & ADV_INIT) eISR_Rate = current_block->advance_rate / 2; if (la_state & ADV_INIT || nextAdvanceISR != ADV_NEVER) { advance_spread(main_Rate); if (la_state & ADV_DECELERATE) { From 9d834925c03f82994cb1c93471966eca536c8d01 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 May 2019 17:05:47 +0200 Subject: [PATCH 034/271] Recalculate LA_phase correctly --- Firmware/stepper.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 6eaa9003d..ed265da61 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -816,8 +816,9 @@ FORCE_INLINE void isr() { deceleration_time += timer; #ifdef LIN_ADVANCE if (current_block->use_advance_lead) { + la_state = ADV_DECELERATE; if (step_events_completed.wide <= (unsigned long int)current_block->decelerate_after + step_loops) - la_state = ADV_INIT | ADV_DECELERATE; + la_state |= ADV_INIT; } #endif } From 823f7b069c6e047291990b458b1e8a1663809f87 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 May 2019 19:56:31 +0200 Subject: [PATCH 035/271] Fix filament sensor direction again --- Firmware/stepper.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index ed265da61..d0b1d3120 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -951,14 +951,18 @@ FORCE_INLINE void advance_isr_scheduler() { if (e_steps && (LA_phase < 0 || LA_phase == eisr)) { uint8_t max_ticks = (eisr? e_step_loops: step_loops); max_ticks = min(abs(e_steps), max_ticks); + bool rev = (e_steps < 0); #ifdef FILAMENT_SENSOR - fsensor_counter += max_ticks; + if (count_direction[E_AXIS] == 1) + fsensor_counter += (rev? -max_ticks: max_ticks); + else + fsensor_counter -= (rev? -max_ticks: max_ticks); #endif - WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); + WRITE_NC(E0_DIR_PIN, rev? INVERT_E0_DIR: !INVERT_E0_DIR); do { WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); - e_steps += (e_steps < 0)? 1: -1; + e_steps += (rev? 1: -1); WRITE_NC(E0_STEP_PIN, INVERT_E_STEP_PIN); } while(--max_ticks); From 47d2562510c7dd7c3bb9a0b86ee779040558b0a8 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 May 2019 17:14:06 +0200 Subject: [PATCH 036/271] Typos --- Firmware/Configuration_adv.h | 2 +- Firmware/stepper.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index f739cde26..9225ec250 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -281,7 +281,7 @@ * Assumption: advance [steps] = k * (delta velocity [steps/s]) * K=0 means advance disabled. * - * NOTE: K values for LIN_ADVANCE 1.5 differ from earlier versions! + * NOTE: K values for LIN_ADVANCE 1.5 differs from earlier versions! * * Set K around 0.22 for 3mm PLA Direct Drive with ~6.5cm between the drive gear and heatbreak. * Larger K values will be needed for flexible filament and greater distances. diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index d0b1d3120..fda9f11c7 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -779,7 +779,7 @@ FORCE_INLINE void isr() { uint8_t la_state = 0; #endif - // Calculare new timer value + // Calculate new timer value // 13.38-14.63us for steady state, // 25.12us for acceleration / deceleration. { @@ -850,8 +850,8 @@ FORCE_INLINE void isr() { } } - // Check for serial chars. This executes roughtly between 50-60% of the total length of the isr, - // making this spot a much better choice than checking during esteps + // Check for serial chars. This executes roughtly inbetween 50-60% of the total runtime of the + // entire isr, making this spot a much better choice than checking during esteps MSerial.checkRx(); #endif From 4772532524327bf92f398b1113c82c3c0b42a462 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 May 2019 22:14:31 +0200 Subject: [PATCH 037/271] Allow Live-K to be used on stock 3.7.1 using a stub --- Firmware/ultralcd.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index dd1da7201..ceccfbe57 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6612,6 +6612,18 @@ static void lcd_colorprint_change() { // redefine our custom handling functions to mimick other tunables #define MSG_ADVANCE_K PSTR("Advance K:") +#if FW_COMMIT_NR <= 2266 +// TODO: this is a stub to be removed for FW >3.7.1 +const static char menu_fmt_float13_k[] PROGMEM = "%c%-13.13S%+5.3f"; +const static char menu_fmt_float13off_k[] PROGMEM = "%c%-13.13S%6.6s"; +static void lcd_advance_draw_K(char chr, float val) +{ + if (val <= 0) + lcd_printf_P(menu_fmt_float13off_k, chr, MSG_ADVANCE_K, " [off]"); + else + lcd_printf_P(menu_fmt_float13_k, chr, MSG_ADVANCE_K, val); +} +#else static void lcd_advance_draw_K(char chr, float val) { if (val <= 0) @@ -6619,6 +6631,7 @@ static void lcd_advance_draw_K(char chr, float val) else lcd_printf_P(menu_fmt_float13, chr, MSG_ADVANCE_K, val); } +#endif static void lcd_advance_edit_K(void) { From a742afcebd743920791937da6c7b0eee7839adbe Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 May 2019 22:43:06 +0200 Subject: [PATCH 038/271] Remove version check --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ceccfbe57..5d774eb14 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6612,7 +6612,7 @@ static void lcd_colorprint_change() { // redefine our custom handling functions to mimick other tunables #define MSG_ADVANCE_K PSTR("Advance K:") -#if FW_COMMIT_NR <= 2266 +#if 1 // TODO: this is a stub to be removed for FW >3.7.1 const static char menu_fmt_float13_k[] PROGMEM = "%c%-13.13S%+5.3f"; const static char menu_fmt_float13off_k[] PROGMEM = "%c%-13.13S%6.6s"; From 51d6904dad10e1554233e508dfa23f8e0db97018 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 27 May 2019 00:44:17 +0200 Subject: [PATCH 039/271] Multiply the step rate when grouping advance steps --- Firmware/planner.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index ddf94cb81..67aa3c9a1 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1093,10 +1093,14 @@ Having the real displacement of the head, we can calculate the total movement le float advance_speed = (extruder_advance_K * block->e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); if (advance_speed > MAX_STEP_FREQUENCY) advance_speed = MAX_STEP_FREQUENCY; block->advance_rate = (F_CPU / 8.0) / advance_speed; - if (block->advance_rate > 20000) + if (block->advance_rate > 20000) { + block->advance_rate = (block->advance_rate >> 2)&0x3fff; block->advance_step_loops = 4; - else if (block->advance_rate > 10000) + } + else if (block->advance_rate > 10000) { + block->advance_rate = (block->advance_rate >> 1)&0x7fff; block->advance_step_loops = 2; + } else block->advance_step_loops = 1; From c50b1c035156a0abfc4f0bd8c688b9ed420ed711 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 1 Jun 2019 19:59:39 +0200 Subject: [PATCH 040/271] Rework the filament counter logic - Move direction checks out of fsensor: fsensor_counter is now always in the same direction as e_steps - Check the filament chunk after e_steps have been physically done, using the real e_step count so far --- Firmware/fsensor.cpp | 11 +++++------ Firmware/fsensor.h | 4 ++-- Firmware/stepper.cpp | 33 +++++++++++++++++++-------------- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index d520ba533..d296a6e74 100644 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -492,11 +492,10 @@ void fsensor_setup_interrupt(void) #endif //PAT9125 -void fsensor_st_block_begin(block_t* bl) +void fsensor_st_block_begin(bool rev) { if (!fsensor_enabled) return; - if (((fsensor_st_cnt > 0) && (bl->direction_bits & 0x8)) || - ((fsensor_st_cnt < 0) && !(bl->direction_bits & 0x8))) + if (fsensor_st_cnt && ((fsensor_st_cnt > 0) ^ rev)) { // !!! bit toggling (PINxn <- 1) (for PinChangeInterrupt) does not work for some MCU pins if (PIN_GET(FSENSOR_INT_PIN)) {PIN_VAL(FSENSOR_INT_PIN, LOW);} @@ -504,11 +503,11 @@ void fsensor_st_block_begin(block_t* bl) } } -void fsensor_st_block_chunk(block_t* bl, int cnt) +void fsensor_st_block_chunk(int cnt) { if (!fsensor_enabled) return; - fsensor_st_cnt += (bl->direction_bits & 0x8)?-cnt:cnt; - if ((fsensor_st_cnt >= fsensor_chunk_len) || (fsensor_st_cnt <= -fsensor_chunk_len)) + fsensor_st_cnt += cnt; + if (abs(fsensor_st_cnt) >= fsensor_chunk_len) { // !!! bit toggling (PINxn <- 1) (for PinChangeInterrupt) does not work for some MCU pins if (PIN_GET(FSENSOR_INT_PIN)) {PIN_VAL(FSENSOR_INT_PIN, LOW);} diff --git a/Firmware/fsensor.h b/Firmware/fsensor.h index 71922fbfc..85992d39d 100644 --- a/Firmware/fsensor.h +++ b/Firmware/fsensor.h @@ -60,8 +60,8 @@ extern bool fsensor_oq_result(void); #include "planner.h" //! @name callbacks from stepper //! @{ -extern void fsensor_st_block_begin(block_t* bl); -extern void fsensor_st_block_chunk(block_t* bl, int cnt); +extern void fsensor_st_block_begin(bool rev); +extern void fsensor_st_block_chunk(int cnt); //! @} #endif //FSENSOR_H diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index fda9f11c7..111d1fa7a 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -339,7 +339,7 @@ FORCE_INLINE void stepper_next_block() #ifdef FILAMENT_SENSOR fsensor_counter = 0; - fsensor_st_block_begin(current_block); + fsensor_st_block_begin(count_direction[E_AXIS] < 0); #endif //FILAMENT_SENSOR // The busy flag is set by the plan_get_current_block() call. // current_block->busy = true; @@ -638,7 +638,7 @@ FORCE_INLINE void stepper_tick_lowres() e_steps += count_direction[E_AXIS]; #else #ifdef FILAMENT_SENSOR - ++ fsensor_counter; + fsensor_counter += count_direction[E_AXIS]; #endif //FILAMENT_SENSOR WRITE(E0_STEP_PIN, INVERT_E_STEP_PIN); #endif @@ -700,7 +700,7 @@ FORCE_INLINE void stepper_tick_highres() e_steps += count_direction[E_AXIS]; #else #ifdef FILAMENT_SENSOR - ++ fsensor_counter; + fsensor_counter += count_direction[E_AXIS]; #endif //FILAMENT_SENSOR WRITE(E0_STEP_PIN, INVERT_E_STEP_PIN); #endif @@ -857,18 +857,18 @@ FORCE_INLINE void isr() { // If current block is finished, reset pointer if (step_events_completed.wide >= current_block->step_event_count.wide) { -#ifdef FILAMENT_SENSOR - fsensor_st_block_chunk(current_block, fsensor_counter); +#if !defined(LIN_ADVANCE) && defined(FILAMENT_SENSOR) + fsensor_st_block_chunk(fsensor_counter); fsensor_counter = 0; #endif //FILAMENT_SENSOR current_block = NULL; plan_discard_current_block(); } -#ifdef FILAMENT_SENSOR - else if ((fsensor_counter >= fsensor_chunk_len)) +#if !defined(LIN_ADVANCE) && defined(FILAMENT_SENSOR) + else if ((abs(fsensor_counter) >= fsensor_chunk_len)) { - fsensor_st_block_chunk(current_block, fsensor_counter); + fsensor_st_block_chunk(fsensor_counter); fsensor_counter = 0; } #endif //FILAMENT_SENSOR @@ -952,20 +952,25 @@ FORCE_INLINE void advance_isr_scheduler() { uint8_t max_ticks = (eisr? e_step_loops: step_loops); max_ticks = min(abs(e_steps), max_ticks); bool rev = (e_steps < 0); -#ifdef FILAMENT_SENSOR - if (count_direction[E_AXIS] == 1) - fsensor_counter += (rev? -max_ticks: max_ticks); - else - fsensor_counter -= (rev? -max_ticks: max_ticks); -#endif WRITE_NC(E0_DIR_PIN, rev? INVERT_E0_DIR: !INVERT_E0_DIR); do { WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); e_steps += (rev? 1: -1); WRITE_NC(E0_STEP_PIN, INVERT_E_STEP_PIN); +#ifdef FILAMENT_SENSOR + fsensor_counter += (rev? -1: 1); +#endif } while(--max_ticks); + +#ifdef FILAMENT_SENSOR + if (!current_block || (abs(fsensor_counter) >= fsensor_chunk_len)) + { + fsensor_st_block_chunk(fsensor_counter); + fsensor_counter = 0; + } +#endif } // Schedule the next closest tick, ignoring advance if scheduled too From b4bf79297f804568f2f1cb82a3bfd0968e8e4a94 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 2 Jun 2019 00:42:32 +0200 Subject: [PATCH 041/271] Remove unneeded includes from fsensor --- Firmware/fsensor.cpp | 3 --- Firmware/fsensor.h | 2 -- 2 files changed, 5 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index d296a6e74..471518b22 100644 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -6,12 +6,9 @@ #include #include "pat9125.h" #include "stepper.h" -#include "planner.h" -#include "fastio.h" #include "io_atmega2560.h" #include "cmdqueue.h" #include "ultralcd.h" -#include "ConfigurationStore.h" #include "mmu.h" #include "cardreader.h" diff --git a/Firmware/fsensor.h b/Firmware/fsensor.h index 85992d39d..1abf13b9a 100644 --- a/Firmware/fsensor.h +++ b/Firmware/fsensor.h @@ -56,8 +56,6 @@ extern void fsensor_oq_meassure_stop(void); extern bool fsensor_oq_result(void); //! @} - -#include "planner.h" //! @name callbacks from stepper //! @{ extern void fsensor_st_block_begin(bool rev); From 5cd0177389c5f0dc93da3b70dd404582e3022f4a Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 2 Jun 2019 15:01:56 +0200 Subject: [PATCH 042/271] Cleanup fsensor_st_block_begin --- Firmware/fsensor.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 471518b22..563d37d65 100644 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -489,15 +489,13 @@ void fsensor_setup_interrupt(void) #endif //PAT9125 -void fsensor_st_block_begin(bool rev) +void fsensor_st_block_begin(bool rev __attribute__((unused))) { - if (!fsensor_enabled) return; - if (fsensor_st_cnt && ((fsensor_st_cnt > 0) ^ rev)) - { -// !!! bit toggling (PINxn <- 1) (for PinChangeInterrupt) does not work for some MCU pins - if (PIN_GET(FSENSOR_INT_PIN)) {PIN_VAL(FSENSOR_INT_PIN, LOW);} - else {PIN_VAL(FSENSOR_INT_PIN, HIGH);} - } + // There's really nothing to do here: the stepper ISR likely has called us + // already at the end of the last block, making this integration redundant. + // LA1.5 might not always do that during a coasting move, so attempt to drain + // fsensor_st_cnt anyway at the beginning of the new block. + fsensor_st_block_chunk(0); } void fsensor_st_block_chunk(int cnt) From d2432056bdcb570884f92f53ab6d2468d82260f5 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Jun 2019 11:48:36 +0200 Subject: [PATCH 043/271] Elide fsensor_st_block_begin, saving some cycles/bytes --- Firmware/fsensor.cpp | 9 --------- Firmware/fsensor.h | 7 ++++++- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 563d37d65..4ab87586c 100644 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -489,15 +489,6 @@ void fsensor_setup_interrupt(void) #endif //PAT9125 -void fsensor_st_block_begin(bool rev __attribute__((unused))) -{ - // There's really nothing to do here: the stepper ISR likely has called us - // already at the end of the last block, making this integration redundant. - // LA1.5 might not always do that during a coasting move, so attempt to drain - // fsensor_st_cnt anyway at the beginning of the new block. - fsensor_st_block_chunk(0); -} - void fsensor_st_block_chunk(int cnt) { if (!fsensor_enabled) return; diff --git a/Firmware/fsensor.h b/Firmware/fsensor.h index 1abf13b9a..e40568bb1 100644 --- a/Firmware/fsensor.h +++ b/Firmware/fsensor.h @@ -58,8 +58,13 @@ extern bool fsensor_oq_result(void); //! @name callbacks from stepper //! @{ -extern void fsensor_st_block_begin(bool rev); extern void fsensor_st_block_chunk(int cnt); + +// There's really nothing to do in block_begin: the stepper ISR likely has +// called us already at the end of the last block, making this integration +// redundant. LA1.5 might not always do that during a coasting move, so attempt +// to drain fsensor_st_cnt anyway at the beginning of the new block. +#define fsensor_st_block_begin(rev) fsensor_st_block_chunk(0) //! @} #endif //FSENSOR_H From fa7c0fb2c92f5bfaa0f996ee2c650df7116d1694 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Jun 2019 12:24:08 +0200 Subject: [PATCH 044/271] Avoid triggering LA during a Z-priming move When recovering from a pause, the nozzle is often primed while being lowered. If LA is triggered under such a move, the pressure advance will be wasted. --- Firmware/planner.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 67aa3c9a1..e1b04702a 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1023,13 +1023,15 @@ Having the real displacement of the head, we can calculate the total movement le /** * Use LIN_ADVANCE for blocks if all these are true: * - * block->steps_e : This is a print move, because we checked for X, Y, Z steps before. - * extruder_advance_K : There is an advance factor set. - * delta_mm[E_AXIS] > 0 : Extruder is running forward (e.g., for "Wipe while retracting" (Slic3r) or "Combing" (Cura) moves) + * block->steps_e : This is a print move, because we checked for X, Y, Z steps before. + * extruder_advance_K : There is an advance factor set. + * delta_mm[E_AXIS] > 0 : Extruder is running forward (e.g., for "Wipe while retracting" (Slic3r) or "Combing" (Cura) moves) + * |delta_mm[Z_AXIS]| < 0.5 : Z is only moved for leveling (_not_ for priming) */ block->use_advance_lead = block->steps_e.wide && extruder_advance_K - && delta_mm[E_AXIS] > 0; + && delta_mm[E_AXIS] > 0 + && abs(delta_mm[Z_AXIS]) < 0.5; if (block->use_advance_lead) { block->e_D_ratio = (e - position_float[E_AXIS]) / sqrt(sq(x - position_float[X_AXIS]) From 84009e1e8e80ccc48374beed9d3e90272b1ed1dd Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Jun 2019 14:52:12 +0200 Subject: [PATCH 045/271] Do a full fsensor_update() when initializing the sensor This correctly populates the "extruder info" details even when the menu is entered for the first time after starting a print. --- Firmware/fsensor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 4ab87586c..29673231f 100644 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -216,7 +216,7 @@ void fsensor_autoload_check_start(void) if (!fsensor_enabled) return; if (!fsensor_autoload_enabled) return; if (fsensor_watch_autoload) return; - if (!pat9125_update_y()) //update sensor + if (!pat9125_update()) //update sensor { fsensor_disable(); fsensor_not_responding = true; From bca5618145dcee174f01ba82aa66742f1bb5b173 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Jun 2019 16:53:55 +0200 Subject: [PATCH 046/271] Save/restore K during a power panic --- Firmware/Marlin_main.cpp | 6 ++++++ Firmware/eeprom.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index b9af28b7a..663d36e57 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8801,6 +8801,9 @@ void uvlo_() #endif #endif eeprom_update_word((uint16_t*)(EEPROM_EXTRUDEMULTIPLY), (uint16_t)extrudemultiply); +#ifdef LIN_ADVANCE + eeprom_update_float((float*)(EEPROM_UVLO_LA_K), extruder_advance_K); +#endif // Finaly store the "power outage" flag. if(sd_print) eeprom_update_byte((uint8_t*)EEPROM_UVLO, 1); @@ -9046,6 +9049,9 @@ void recover_machine_state_after_power_panic(bool bTiny) #endif #endif extrudemultiply = (int)eeprom_read_word((uint16_t*)(EEPROM_EXTRUDEMULTIPLY)); +#ifdef LIN_ADVANCE + extruder_advance_K = eeprom_read_float((float*)EEPROM_UVLO_LA_K); +#endif } void restore_print_from_eeprom() { diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index c96e1d8db..624025e8b 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -160,6 +160,8 @@ #define EEPROM_MBL_POINTS_NR (EEPROM_MBL_MAGNET_ELIMINATION -1) //uint8_t number of points in one exis for mesh bed leveling #define EEPROM_MBL_PROBE_NR (EEPROM_MBL_POINTS_NR-1) //number of measurements for each point #define EEPROM_MMU_STEALTH (EEPROM_MBL_PROBE_NR-1) + +#define EEPROM_UVLO_LA_K (EEPROM_MMU_STEALTH-4) // float // !!!!! // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!! // !!!!! From 8ce1c047405aec9fd383e55f47fbcd9297e15461 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 4 Jun 2019 14:36:41 +0200 Subject: [PATCH 047/271] Remove useless "extruder under pressure" flag That's exactly what LA does --- Firmware/Marlin_main.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 663d36e57..a1eec5a61 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -356,10 +356,6 @@ unsigned long starttime=0; unsigned long stoptime=0; unsigned long _usb_timer = 0; - -bool extruder_under_pressure = true; - - bool Stopped=false; #if NUM_SERVOS > 0 @@ -385,7 +381,6 @@ static float saved_pos[4] = { 0, 0, 0, 0 }; static float saved_feedrate2 = 0; static uint8_t saved_active_extruder = 0; static float saved_extruder_temperature = 0.0; //!< Active extruder temperature -static bool saved_extruder_under_pressure = false; static bool saved_extruder_relative_mode = false; static int saved_fanSpeed = 0; //!< Print fan speed //! @} @@ -9270,8 +9265,6 @@ void stop_and_save_print_to_ram(float z_move, float e_move) memcpy(saved_pos, current_position, sizeof(saved_pos)); saved_active_extruder = active_extruder; //save active_extruder saved_extruder_temperature = degTargetHotend(active_extruder); - - saved_extruder_under_pressure = extruder_under_pressure; //extruder under pressure flag - currently unused saved_extruder_relative_mode = axis_relative_modes[E_AXIS]; saved_fanSpeed = fanSpeed; cmdqueue_reset(); //empty cmdqueue From 1bed8cfa941a29ec304f0cbc19677c24338fbc78 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 4 Jun 2019 16:02:03 +0200 Subject: [PATCH 048/271] Don't call fsensor_st_next_block repeatedly during the last step Rely on st_block_begin to perform a single call instead of calling block_chunk for each advance tick in the last step --- Firmware/stepper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 111d1fa7a..68f36342f 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -965,7 +965,7 @@ FORCE_INLINE void advance_isr_scheduler() { while(--max_ticks); #ifdef FILAMENT_SENSOR - if (!current_block || (abs(fsensor_counter) >= fsensor_chunk_len)) + if (abs(fsensor_counter) >= fsensor_chunk_len) { fsensor_st_block_chunk(fsensor_counter); fsensor_counter = 0; From cda9ed4a1d404d676fd975b3d4e4fdadcf74a079 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 4 Jun 2019 14:37:35 +0200 Subject: [PATCH 049/271] Reset LA state more carefully during stop conditions --- Firmware/stepper.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 68f36342f..cd590013b 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -426,6 +426,13 @@ FORCE_INLINE void stepper_next_block() } else { _NEXT_ISR(2000); // 1kHz. + +#ifdef LIN_ADVANCE + // reset LA state and pressure when there's no block + nextAdvanceISR = ADV_NEVER; + e_steps = 0; + current_adv_steps = 0; +#endif } //WRITE_NC(LOGIC_ANALYZER_CH2, false); } @@ -982,6 +989,8 @@ FORCE_INLINE void advance_isr_scheduler() { } void clear_current_adv_vars() { + nextAdvanceISR = ADV_NEVER; + e_steps = 0; current_adv_steps = 0; } @@ -1336,6 +1345,9 @@ void quickStop() DISABLE_STEPPER_DRIVER_INTERRUPT(); while (blocks_queued()) plan_discard_current_block(); current_block = NULL; +#ifdef LIN_ADVANCE + clear_current_adv_vars(); +#endif st_reset_timer(); ENABLE_STEPPER_DRIVER_INTERRUPT(); } From fa454f61e41c9373de27c255be7694842f40e102 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Jun 2019 15:23:59 +0200 Subject: [PATCH 050/271] Drop unused "speed_lookup_table.h" from planner.cpp --- Firmware/planner.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index e1b04702a..57c312e84 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -58,7 +58,6 @@ #include "ultralcd.h" #include "language.h" #include "ConfigurationStore.h" -#include "speed_lookuptable.h" #ifdef MESH_BED_LEVELING #include "mesh_bed_leveling.h" From dc436b71fe6052b8b31192bd113197895c4c277a Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Jun 2019 13:00:26 +0200 Subject: [PATCH 051/271] Fix position_float after a quickStop condition --- Firmware/planner.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 57c312e84..c8f18f417 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -127,7 +127,7 @@ float extrude_min_temp=EXTRUDE_MINTEMP; #ifdef LIN_ADVANCE float extruder_advance_K = LIN_ADVANCE_K; -float position_float[NUM_AXIS] = { 0, 0, 0, 0 }; +float position_float[NUM_AXIS]; #endif // Returns the index of the next block in the ring buffer @@ -441,7 +441,7 @@ void plan_init() { block_buffer_tail = 0; memset(position, 0, sizeof(position)); // clear position #ifdef LIN_ADVANCE - memset(position_float, 0, sizeof(position)); // clear position + memset(position_float, 0, sizeof(position_float)); // clear position #endif previous_speed[0] = 0.0; previous_speed[1] = 0.0; @@ -655,7 +655,9 @@ void planner_abort_hard() // Apply inverse world correction matrix. machine2world(current_position[X_AXIS], current_position[Y_AXIS]); memcpy(destination, current_position, sizeof(destination)); - +#ifdef LIN_ADVANCE + memcpy(position_float, current_position, sizeof(position_float)); +#endif // Resets planner junction speeds. Assumes start from rest. previous_nominal_speed = 0.0; previous_speed[0] = 0.0; From 7d33089d9aa1a3442149f2362aa6a90cef0a72e3 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Jun 2019 13:02:04 +0200 Subject: [PATCH 052/271] Remove use_advance_lead The per-step state is kept implicitly using nextAdvanceISR, while the current pressure is decoupled anyway. --- Firmware/stepper.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index cd590013b..6daddaa43 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -120,8 +120,6 @@ volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1}; static const uint8_t ADV_INIT = 0b01; static const uint8_t ADV_DECELERATE = 0b10; - static bool use_advance_lead; - static uint16_t nextMainISR; static uint16_t nextAdvanceISR; @@ -354,7 +352,7 @@ FORCE_INLINE void stepper_next_block() acceleration_time = calc_timer(acc_step_rate, step_loops); #ifdef LIN_ADVANCE - if ((use_advance_lead = current_block->use_advance_lead)) { + if (current_block->use_advance_lead) { LA_decelerate_after = current_block->decelerate_after; final_adv_steps = current_block->final_adv_steps; max_adv_steps = current_block->max_adv_steps; @@ -1227,7 +1225,6 @@ void st_init() #endif // Initialize state for the linear advance scheduler - use_advance_lead = false; nextMainISR = 0; nextAdvanceISR = ADV_NEVER; main_Rate = ADV_NEVER; From 048628083a637c356bec59a5a1f8ffff331d85dd Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Jun 2019 13:03:25 +0200 Subject: [PATCH 053/271] Remove clear_current_adv_vars() The pressure state is already reset implicitly at the end of each block, meaning an extruder switch will never have to reset the internal state anyway. We clear the internal backpressure in the following conditions: - when switching to a non-LA block - when quickStop is called - when the scheduler is idling (losing pressure) --- Firmware/Marlin_main.cpp | 7 ------- Firmware/stepper.cpp | 17 +++++++---------- Firmware/stepper.h | 4 ---- 3 files changed, 7 insertions(+), 21 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a1eec5a61..c423df1bf 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7086,15 +7086,8 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE)) else { #ifdef SNMM - -#ifdef LIN_ADVANCE - if (mmu_extruder != tmp_extruder) - clear_current_adv_vars(); //Check if the selected extruder is not the active one and reset LIN_ADVANCE variables if so. -#endif - mmu_extruder = tmp_extruder; - _delay(100); disable_e0(); diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 6daddaa43..ba5e84141 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -426,10 +426,13 @@ FORCE_INLINE void stepper_next_block() _NEXT_ISR(2000); // 1kHz. #ifdef LIN_ADVANCE - // reset LA state and pressure when there's no block + // reset LA state when there's no block nextAdvanceISR = ADV_NEVER; e_steps = 0; - current_adv_steps = 0; + + // incrementally lose pressure + if(current_adv_steps) + --current_adv_steps; #endif } //WRITE_NC(LOGIC_ANALYZER_CH2, false); @@ -985,13 +988,6 @@ FORCE_INLINE void advance_isr_scheduler() { else OCR1A = nextMainISR; } - -void clear_current_adv_vars() { - nextAdvanceISR = ADV_NEVER; - e_steps = 0; - current_adv_steps = 0; -} - #endif // LIN_ADVANCE void st_init() @@ -1343,7 +1339,8 @@ void quickStop() while (blocks_queued()) plan_discard_current_block(); current_block = NULL; #ifdef LIN_ADVANCE - clear_current_adv_vars(); + nextAdvanceISR = ADV_NEVER; + current_adv_steps = 0; #endif st_reset_timer(); ENABLE_STEPPER_DRIVER_INTERRUPT(); diff --git a/Firmware/stepper.h b/Firmware/stepper.h index 1bdb1f17a..7c41743cd 100644 --- a/Firmware/stepper.h +++ b/Firmware/stepper.h @@ -37,10 +37,6 @@ void st_init(); void isr(); -#ifdef LIN_ADVANCE -void clear_current_adv_vars(); // Used to reset the built up pretension and remaining esteps on filament change. -#endif - // Block until all buffered steps are executed void st_synchronize(); From 0239f4bce19f1dabe430c51087771798b7449d6f Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Jun 2019 15:10:31 +0200 Subject: [PATCH 054/271] Update/compute advance steps inside calculate_trapezoid_for_block Do not store the block e_D ratio, store directly the computed compression factor so that we can recompute the advance steps quickly and update them in sync with the acceleration rates. --- Firmware/planner.cpp | 59 ++++++++++++++++++++++---------------------- Firmware/planner.h | 2 +- Firmware/stepper.cpp | 3 ++- 3 files changed, 33 insertions(+), 31 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index c8f18f417..cb286c586 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -261,6 +261,13 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit } } +#ifdef LIN_ADVANCE + uint16_t final_adv_steps = 0; + if (block->use_advance_lead) { + final_adv_steps = exit_speed * block->adv_comp; + } +#endif + CRITICAL_SECTION_START; // Fill variables used by the stepper in a critical section // This block locks the interrupts globally for 4.38 us, // which corresponds to a maximum repeat frequency of 228.57 kHz. @@ -271,6 +278,9 @@ void calculate_trapezoid_for_block(block_t *block, float entry_speed, float exit block->decelerate_after = accelerate_steps+plateau_steps; block->initial_rate = initial_rate; block->final_rate = final_rate; +#ifdef LIN_ADVANCE + block->final_adv_steps = final_adv_steps; +#endif } CRITICAL_SECTION_END; } @@ -399,18 +409,8 @@ void planner_recalculate(const float &safe_final_speed) } // Recalculate if current block entry or exit junction speed has changed. if ((prev->flag | current->flag) & BLOCK_FLAG_RECALCULATE) { - // @wavexx: FIXME: the following check is not really enough. calculate_trapezoid does block - // the isr to update the rates, but we don't. we should update atomically - if (!prev->busy) { - // NOTE: Entry and exit factors always > 0 by all previous logic operations. - calculate_trapezoid_for_block(prev, prev->entry_speed, current->entry_speed); - #ifdef LIN_ADVANCE - if (prev->use_advance_lead) { - const float comp = prev->e_D_ratio * extruder_advance_K * cs.axis_steps_per_unit[E_AXIS]; - prev->final_adv_steps = current->entry_speed * comp; - } - #endif - } + // NOTE: Entry and exit factors always > 0 by all previous logic operations. + calculate_trapezoid_for_block(prev, prev->entry_speed, current->entry_speed); // Reset current only to ensure next trapezoid is computed. prev->flag &= ~BLOCK_FLAG_RECALCULATE; } @@ -424,13 +424,6 @@ void planner_recalculate(const float &safe_final_speed) // Last/newest block in buffer. Exit speed is set with safe_final_speed. Always recalculated. current = block_buffer + prev_block_index(block_buffer_head); calculate_trapezoid_for_block(current, current->entry_speed, safe_final_speed); - #ifdef LIN_ADVANCE - if (current->use_advance_lead) { - const float comp = current->e_D_ratio * extruder_advance_K * cs.axis_steps_per_unit[E_AXIS]; - current->max_adv_steps = current->nominal_speed * comp; - current->final_adv_steps = safe_final_speed * comp; - } - #endif current->flag &= ~BLOCK_FLAG_RECALCULATE; // SERIAL_ECHOLNPGM("planner_recalculate - 4"); @@ -1005,6 +998,9 @@ Having the real displacement of the head, we can calculate the total movement le block->nominal_rate *= speed_factor; } +#ifdef LIN_ADVANCE + float e_D_ratio = 0; +#endif // Compute and limit the acceleration rate for the trapezoid generator. // block->step_event_count ... event count of the fastest axis // block->millimeters ... Euclidian length of the XYZ movement or the E length, if no XYZ movement. @@ -1022,7 +1018,7 @@ Having the real displacement of the head, we can calculate the total movement le #ifdef LIN_ADVANCE /** - * Use LIN_ADVANCE for blocks if all these are true: + * Use LIN_ADVANCE within this block if all these are true: * * block->steps_e : This is a print move, because we checked for X, Y, Z steps before. * extruder_advance_K : There is an advance factor set. @@ -1034,19 +1030,19 @@ Having the real displacement of the head, we can calculate the total movement le && delta_mm[E_AXIS] > 0 && abs(delta_mm[Z_AXIS]) < 0.5; if (block->use_advance_lead) { - block->e_D_ratio = (e - position_float[E_AXIS]) / - sqrt(sq(x - position_float[X_AXIS]) - + sq(y - position_float[Y_AXIS]) - + sq(z - position_float[Z_AXIS])); + e_D_ratio = (e - position_float[E_AXIS]) / + sqrt(sq(x - position_float[X_AXIS]) + + sq(y - position_float[Y_AXIS]) + + sq(z - position_float[Z_AXIS])); // Check for unusual high e_D ratio to detect if a retract move was combined with the last // print move due to min. steps per segment. Never execute this with advance! This assumes // no one will use a retract length of 0mm < retr_length < ~0.2mm and no one will print // 100mm wide lines using 3mm filament or 35mm wide lines using 1.75mm filament. - if (block->e_D_ratio > 3.0) + if (e_D_ratio > 3.0) block->use_advance_lead = false; else { - const uint32_t max_accel_steps_per_s2 = cs.max_jerk[E_AXIS] / (extruder_advance_K * block->e_D_ratio) * steps_per_mm; + const uint32_t max_accel_steps_per_s2 = cs.max_jerk[E_AXIS] / (extruder_advance_K * e_D_ratio) * steps_per_mm; if (block->acceleration_st > max_accel_steps_per_s2) { block->acceleration_st = max_accel_steps_per_s2; #ifdef LA_DEBUG @@ -1089,11 +1085,16 @@ Having the real displacement of the head, we can calculate the total movement le block->acceleration_rate = (long)((float)block->acceleration_st * (16777216.0 / (F_CPU / 8.0))); - #ifdef LIN_ADVANCE +#ifdef LIN_ADVANCE if (block->use_advance_lead) { + // the nominal speed doesn't change past this point: calculate the compression ratio for the + // segment and the required advance steps + block->adv_comp = extruder_advance_K * e_D_ratio * cs.axis_steps_per_unit[E_AXIS]; + block->max_adv_steps = block->nominal_speed * block->adv_comp; + // to save more space we avoid another copy of calc_timer and go through slow division, but we // still need to replicate the *exact* same step grouping policy (see below) - float advance_speed = (extruder_advance_K * block->e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); + float advance_speed = (extruder_advance_K * e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); if (advance_speed > MAX_STEP_FREQUENCY) advance_speed = MAX_STEP_FREQUENCY; block->advance_rate = (F_CPU / 8.0) / advance_speed; if (block->advance_rate > 20000) { @@ -1116,7 +1117,7 @@ Having the real displacement of the head, we can calculate the total movement le SERIAL_ECHOLNPGM("LA: More than 2 steps per eISR loop executed."); #endif } - #endif +#endif // Start with a safe speed. // Safe speed is the speed, from which the machine may halt to stop immediately. diff --git a/Firmware/planner.h b/Firmware/planner.h index 44c57ea5e..bb7b17c8a 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -117,7 +117,7 @@ typedef struct { max_adv_steps, // max. advance steps to get cruising speed pressure (not always nominal_speed!) final_adv_steps; // advance steps due to exit speed uint8_t advance_step_loops; // Number of stepper ticks for each advance isr - float e_D_ratio; + float adv_comp; // Precomputed E compression factor #endif uint16_t sdlen; diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index ba5e84141..d6faee967 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -430,7 +430,8 @@ FORCE_INLINE void stepper_next_block() nextAdvanceISR = ADV_NEVER; e_steps = 0; - // incrementally lose pressure + // incrementally lose pressure to give a chance for + // a new LA block to be scheduled and recover if(current_adv_steps) --current_adv_steps; #endif From c40e3b550dde8118d1c1ba8c7e0662c09e9913cf Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 10 Jun 2019 19:34:00 +0200 Subject: [PATCH 055/271] Remove stubs and live K by default --- Firmware/Configuration_adv.h | 2 +- Firmware/ultralcd.cpp | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index 9225ec250..50496704a 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -295,7 +295,7 @@ #ifdef LIN_ADVANCE #define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed - #define LA_LIVE_K // Allow adjusting K in the Tune menu + //#define LA_LIVE_K // Allow adjusting K in the Tune menu //#define LA_DEBUG // If enabled, this will generate debug information output over USB. //#define LA_DEBUG_LOGIC // @wavexx: setup logic channels for isr debugging #endif diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5d774eb14..dd1da7201 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6612,18 +6612,6 @@ static void lcd_colorprint_change() { // redefine our custom handling functions to mimick other tunables #define MSG_ADVANCE_K PSTR("Advance K:") -#if 1 -// TODO: this is a stub to be removed for FW >3.7.1 -const static char menu_fmt_float13_k[] PROGMEM = "%c%-13.13S%+5.3f"; -const static char menu_fmt_float13off_k[] PROGMEM = "%c%-13.13S%6.6s"; -static void lcd_advance_draw_K(char chr, float val) -{ - if (val <= 0) - lcd_printf_P(menu_fmt_float13off_k, chr, MSG_ADVANCE_K, " [off]"); - else - lcd_printf_P(menu_fmt_float13_k, chr, MSG_ADVANCE_K, val); -} -#else static void lcd_advance_draw_K(char chr, float val) { if (val <= 0) @@ -6631,7 +6619,6 @@ static void lcd_advance_draw_K(char chr, float val) else lcd_printf_P(menu_fmt_float13, chr, MSG_ADVANCE_K, val); } -#endif static void lcd_advance_edit_K(void) { From 4b3af0d2dfc82cb5a605ed2ea5cbad5b32111c18 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 18 Jun 2019 17:49:59 +0200 Subject: [PATCH 056/271] Respect minimum direction change delay --- Firmware/stepper.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index d6faee967..b9d151266 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -785,6 +785,7 @@ FORCE_INLINE void isr() { #ifdef LIN_ADVANCE + WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); uint8_t la_state = 0; #endif @@ -897,6 +898,7 @@ FORCE_INLINE void advance_isr() { if (step_events_completed.wide > LA_decelerate_after && current_adv_steps > final_adv_steps) { // decompression e_steps -= e_step_loops; + WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); if(current_adv_steps > e_step_loops) current_adv_steps -= e_step_loops; else @@ -906,6 +908,7 @@ FORCE_INLINE void advance_isr() { else if (step_events_completed.wide < LA_decelerate_after && current_adv_steps < max_adv_steps) { // compression e_steps += e_step_loops; + WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); current_adv_steps += e_step_loops; nextAdvanceISR = eISR_Rate; } @@ -961,7 +964,6 @@ FORCE_INLINE void advance_isr_scheduler() { uint8_t max_ticks = (eisr? e_step_loops: step_loops); max_ticks = min(abs(e_steps), max_ticks); bool rev = (e_steps < 0); - WRITE_NC(E0_DIR_PIN, rev? INVERT_E0_DIR: !INVERT_E0_DIR); do { WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN); From 2e073527fb872021555d1248f05a8ae79f15d780 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 19 Jun 2019 14:18:23 +0200 Subject: [PATCH 057/271] Also avoid E direction inversions while coasting --- Firmware/stepper.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index b9d151266..1283675c4 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -785,7 +785,7 @@ FORCE_INLINE void isr() { #ifdef LIN_ADVANCE - WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); + if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); uint8_t la_state = 0; #endif @@ -898,7 +898,7 @@ FORCE_INLINE void advance_isr() { if (step_events_completed.wide > LA_decelerate_after && current_adv_steps > final_adv_steps) { // decompression e_steps -= e_step_loops; - WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); + if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); if(current_adv_steps > e_step_loops) current_adv_steps -= e_step_loops; else @@ -908,7 +908,7 @@ FORCE_INLINE void advance_isr() { else if (step_events_completed.wide < LA_decelerate_after && current_adv_steps < max_adv_steps) { // compression e_steps += e_step_loops; - WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); + if (e_steps) WRITE_NC(E0_DIR_PIN, e_steps < 0? INVERT_E0_DIR: !INVERT_E0_DIR); current_adv_steps += e_step_loops; nextAdvanceISR = eISR_Rate; } From e54497d80266ff818e6c08979cc53fee1a47b8e7 Mon Sep 17 00:00:00 2001 From: Renzo Date: Thu, 20 Jun 2019 00:09:55 +0200 Subject: [PATCH 058/271] added new function belt test under calibration menu --- Firmware/ultralcd.cpp | 60 +++++++++++++++++++++++++++++++++++++++++++ Firmware/ultralcd.h | 1 + 2 files changed, 61 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 3b2be088a..46ae201c1 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -152,6 +152,7 @@ static void mmu_cut_filament_menu(); static void lcd_menu_fails_stats(); #endif //TMC2130 or FILAMENT_SENSOR +static void lcd_belttest_v(); static void lcd_selftest_v(); #ifdef TMC2130 @@ -5568,6 +5569,9 @@ static void lcd_calibration_menu() MENU_ITEM_FUNCTION_P(_i("Wizard"), lcd_wizard);////MSG_WIZARD c=17 r=1 MENU_ITEM_SUBMENU_P(_i("First layer cal."), lcd_v2_calibration);////MSG_V2_CALIBRATION c=17 r=1 MENU_ITEM_GCODE_P(_T(MSG_AUTO_HOME), PSTR("G28 W")); +#ifdef TMC2130 + MENU_ITEM_FUNCTION_P(_i("Belt test "), lcd_belttest_v);////MSG_BELTTEST +#endif //TMC2130 MENU_ITEM_FUNCTION_P(_i("Selftest "), lcd_selftest_v);////MSG_SELFTEST #ifdef MK1BP // MK1 @@ -6942,6 +6946,62 @@ void lcd_sdcard_menu() MENU_END(); } +static void lcd_belttest_v() +{ + lcd_belttest(); + menu_back_if_clicked(); +} +void lcd_belttest_print(const char* msg, uint16_t X, uint16_t Y) +{ + lcd_clear(); + lcd_printf_P( + _N( + ESC_H(0,0) + "%S:\n" + "%S\n" + "X:%d\n" + "Y:%d" + ), + _i("Belt status"), + msg, + X,Y + ); +} +void lcd_belttest() +{ + int _progress = 0; + bool _result = true; + uint16_t X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X)); + uint16_t Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y)); + lcd_belttest_print(_i("Checking X..."), X, Y); + + _delay(2000); + KEEPALIVE_STATE(IN_HANDLER); + + _result = lcd_selfcheck_axis_sg(X_AXIS); + X = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_X)); + if (!_result){ + lcd_belttest_print(_i("Error"), X, Y); + return; + } + + lcd_belttest_print(_i("Checking Y..."), X, Y); + _result = lcd_selfcheck_axis_sg(Y_AXIS); + Y = eeprom_read_word((uint16_t*)(EEPROM_BELTSTATUS_Y)); + + if (!_result){ + lcd_belttest_print(_i("Error"), X, Y); + lcd_clear(); + return; + } + + + lcd_belttest_print(_i("Done"), X, Y); + + KEEPALIVE_STATE(NOT_BUSY); + _delay(3000); +} + static void lcd_selftest_v() { (void)lcd_selftest(); diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 665c1233f..ac3a017d8 100644 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -50,6 +50,7 @@ unsigned char lcd_choose_color(); void lcd_load_filament_color_check(); //void lcd_mylang(); +extern void lcd_belttest(); extern bool lcd_selftest(); void lcd_menu_statistics(); From 9a904362e5a0da174786d556b8bc9795e07c7f4e Mon Sep 17 00:00:00 2001 From: Renzo Dani Date: Thu, 20 Jun 2019 10:17:48 +0200 Subject: [PATCH 059/271] code only for TMC2130 --- Firmware/ultralcd.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 46ae201c1..7dd8b0274 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -152,7 +152,10 @@ static void mmu_cut_filament_menu(); static void lcd_menu_fails_stats(); #endif //TMC2130 or FILAMENT_SENSOR +#ifdef TMC2130 static void lcd_belttest_v(); +#endif //TMC2130 + static void lcd_selftest_v(); #ifdef TMC2130 @@ -6945,7 +6948,7 @@ void lcd_sdcard_menu() } MENU_END(); } - +#ifdef TMC2130 static void lcd_belttest_v() { lcd_belttest(); @@ -7001,6 +7004,7 @@ void lcd_belttest() KEEPALIVE_STATE(NOT_BUSY); _delay(3000); } +#endif //TMC2130 static void lcd_selftest_v() { From b6bcb901f35a2558c349e468b28c9e3b04c8e022 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 27 Jun 2019 12:50:53 +0200 Subject: [PATCH 060/271] Correct initialization of eISR_Err Further tweak the initial term to improve the linearity of the resulting speed after BW filtering. --- Firmware/stepper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 1283675c4..b30f77e67 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -846,7 +846,7 @@ FORCE_INLINE void isr() { #ifdef LIN_ADVANCE // avoid multiple instances or function calls to advance_spread - if (la_state & ADV_INIT) eISR_Rate = current_block->advance_rate / 2; + if (la_state & ADV_INIT) eISR_Err = current_block->advance_rate / 4; if (la_state & ADV_INIT || nextAdvanceISR != ADV_NEVER) { advance_spread(main_Rate); if (la_state & ADV_DECELERATE) { From 556b87edece80f38bfaa8c3aa05dd97786e0f74f Mon Sep 17 00:00:00 2001 From: leptun Date: Mon, 29 Jul 2019 09:41:33 +0300 Subject: [PATCH 061/271] M350 for all axis - MK3 --- Firmware/Marlin_main.cpp | 43 +++++++++++++++++++++++----------------- Firmware/tmc2130.cpp | 4 ++-- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 35722679b..d987fad98 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7538,27 +7538,34 @@ Sigma_Exit: case 350: { #ifdef TMC2130 - if(code_seen('E')) + for (int i=0; i res) + uint16_t res_new = code_value(); + bool res_valid = (res_new == 8) || (res_new == 16) || (res_new == 32); // resolutions valid for all axis + res_valid |= (i != E_AXIS) && ((res_new == 1) || (res_new == 2) || (res_new == 4)); // resolutions valid for X Y Z only + res_valid |= (i == E_AXIS) && ((res_new == 64) || (res_new == 128)); // resolutions valid for E only + if (res_valid) { - uint16_t fac = (res_new / res); - cs.axis_steps_per_unit[axis] *= fac; - position[E_AXIS] *= fac; - } - else - { - uint16_t fac = (res / res_new); - cs.axis_steps_per_unit[axis] /= fac; - position[E_AXIS] /= fac; + + st_synchronize(); + uint16_t res = tmc2130_get_res(i); + tmc2130_set_res(i, res_new); + cs.axis_ustep_resolution[i] = res_new; + uint16_t fac; + if (res_new > res) + { + fac = (res_new / res); + cs.axis_steps_per_unit[i] *= fac; + position[i] *= fac; + } + else + { + fac = (res / res_new); + cs.axis_steps_per_unit[i] /= fac; + position[i] /= fac; + } } } } diff --git a/Firmware/tmc2130.cpp b/Firmware/tmc2130.cpp index 15188fc42..bff7030be 100755 --- a/Firmware/tmc2130.cpp +++ b/Firmware/tmc2130.cpp @@ -425,7 +425,7 @@ void tmc2130_check_overtemp() void tmc2130_setup_chopper(uint8_t axis, uint8_t mres, uint8_t current_h, uint8_t current_r) { - uint8_t intpol = 1; + uint8_t intpol = (mres != 0); // intpol to 256 only if microsteps aren't 256 uint8_t toff = tmc2130_chopper_config[axis].toff; // toff = 3 (fchop = 27.778kHz) uint8_t hstrt = tmc2130_chopper_config[axis].hstr; //initial 4, modified to 5 uint8_t hend = tmc2130_chopper_config[axis].hend; //original value = 1 @@ -598,7 +598,7 @@ void tmc2130_wr_THIGH(uint8_t axis, uint32_t val32) uint8_t tmc2130_usteps2mres(uint16_t usteps) { - uint8_t mres = 8; while (mres && (usteps >>= 1)) mres--; + uint8_t mres = 8; while (usteps >>= 1) mres--; return mres; } From 5fdaead6633478946dd2f6eddaaf9636327a486c Mon Sep 17 00:00:00 2001 From: leptun Date: Mon, 29 Jul 2019 15:55:42 +0300 Subject: [PATCH 062/271] Fix language related warnings in LANG_MODE 0 --- Firmware/language.c | 6 +++--- Firmware/ultralcd.cpp | 4 ++++ Firmware/ultralcd.h | 3 +++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Firmware/language.c b/Firmware/language.c index c4b501b97..e43760967 100644 --- a/Firmware/language.c +++ b/Firmware/language.c @@ -17,10 +17,10 @@ uint8_t lang_selected = 0; #if (LANG_MODE == 0) //primary language only -uint8_t lang_select(uint8_t lang) { return 0; } +uint8_t lang_select(__attribute__((unused)) uint8_t lang) { return 0; } uint8_t lang_get_count() { return 1; } -uint16_t lang_get_code(uint8_t lang) { return LANG_CODE_EN; } -const char* lang_get_name_by_code(uint16_t code) { return _n("English"); } +uint16_t lang_get_code(__attribute__((unused)) uint8_t lang) { return LANG_CODE_EN; } +const char* lang_get_name_by_code(__attribute__((unused)) uint16_t code) { return _n("English"); } void lang_reset(void) { } uint8_t lang_is_selected(void) { return 1; } diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index acb369d95..cac952db8 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -114,7 +114,9 @@ static const char* lcd_display_message_fullscreen_nonBlocking_P(const char *msg, /* Different menus */ static void lcd_status_screen(); +#if (LANG_MODE != 0) static void lcd_language_menu(); +#endif static void lcd_main_menu(); static void lcd_tune_menu(); //static void lcd_move_menu(); @@ -4733,6 +4735,7 @@ void lcd_wizard() { } } +#if (LANG_MODE != 0) void lcd_language() { lcd_update_enable(true); @@ -4752,6 +4755,7 @@ void lcd_language() else lang_select(LANG_ID_PRI); } +#endif static void wait_preheat() { diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 2c57c9443..62ba75195 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -6,6 +6,7 @@ #include "conv2str.h" #include "menu.h" #include "mesh_bed_calibration.h" +#include "config.h" extern void menu_lcd_longpress_func(void); extern void menu_lcd_charsetup_func(void); @@ -208,7 +209,9 @@ void lcd_set_degree(); void lcd_set_progress(); #endif +#if (LANG_MODE != 0) void lcd_language(); +#endif void lcd_wizard(); bool lcd_autoDepleteEnabled(); From 9ff1f6c3ee827d5af07af19109e7f44662c32aed Mon Sep 17 00:00:00 2001 From: leptun Date: Tue, 30 Jul 2019 16:05:40 +0300 Subject: [PATCH 063/271] Re-enable Tone --- Firmware/system_timer.h | 8 ++++---- Firmware/timer02.c | 10 ---------- Firmware/timer02.h | 7 ------- 3 files changed, 4 insertions(+), 21 deletions(-) diff --git a/Firmware/system_timer.h b/Firmware/system_timer.h index ca8f2f9ab..626e82348 100644 --- a/Firmware/system_timer.h +++ b/Firmware/system_timer.h @@ -11,8 +11,8 @@ #define _millis millis2 #define _micros micros2 #define _delay delay2 -#define _tone tone2 -#define _noTone noTone2 +#define _tone tone +#define _noTone noTone #define timer02_set_pwm0(pwm0) @@ -20,8 +20,8 @@ #define _millis millis #define _micros micros #define _delay delay -#define _tone(x, y) /*tone*/ -#define _noTone(x) /*noTone*/ +#define _tone tone +#define _noTone noTone #define timer02_set_pwm0(pwm0) #endif //SYSTEM_TIMER_2 diff --git a/Firmware/timer02.c b/Firmware/timer02.c index 6b6cbe2cf..1f8989406 100644 --- a/Firmware/timer02.c +++ b/Firmware/timer02.c @@ -136,14 +136,4 @@ void delay2(unsigned long ms) } } -void tone2(__attribute__((unused)) uint8_t _pin, __attribute__((unused)) unsigned int frequency/*, unsigned long duration*/) -{ - PIN_SET(BEEPER); -} - -void noTone2(__attribute__((unused)) uint8_t _pin) -{ - PIN_CLR(BEEPER); -} - #endif //SYSTEM_TIMER_2 diff --git a/Firmware/timer02.h b/Firmware/timer02.h index 48a4842fe..2eef98f6e 100644 --- a/Firmware/timer02.h +++ b/Firmware/timer02.h @@ -23,13 +23,6 @@ extern unsigned long micros2(void); ///! Reimplemented original delay() using timer2 extern void delay2(unsigned long ms); -///! Reimplemented original tone() using timer2 -///! Does not perform any PWM tone generation, it just sets the beeper pin to 1 -extern void tone2(uint8_t _pin, unsigned int frequency/*, unsigned long duration*/); - -///! Turn off beeping - set beeper pin to 0 -extern void noTone2(uint8_t _pin); - #if defined(__cplusplus) } #endif //defined(__cplusplus) From 1435e4a68d3be539fa55b6f4cbb0e054dd4816b7 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 16 Jul 2019 18:12:21 +0200 Subject: [PATCH 064/271] Use the computed direction in fsensor_st_block_begin --- Firmware/stepper.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index b30f77e67..15e809b47 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -335,10 +335,6 @@ FORCE_INLINE void stepper_next_block() } #endif -#ifdef FILAMENT_SENSOR - fsensor_counter = 0; - fsensor_st_block_begin(count_direction[E_AXIS] < 0); -#endif //FILAMENT_SENSOR // The busy flag is set by the plan_get_current_block() call. // current_block->busy = true; // Initializes the trapezoid generator from the current block. Called whenever a new @@ -421,6 +417,10 @@ FORCE_INLINE void stepper_next_block() #endif /* LIN_ADVANCE */ count_direction[E_AXIS] = 1; } +#ifdef FILAMENT_SENSOR + fsensor_counter = 0; + fsensor_st_block_begin(count_direction[E_AXIS] < 0); +#endif //FILAMENT_SENSOR } else { _NEXT_ISR(2000); // 1kHz. From 7cae064611c7dfae0b20df623d4095ac5b7c4f99 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 4 Aug 2019 18:39:28 +0200 Subject: [PATCH 065/271] Update EEPROM_LAST_ITEM --- Firmware/eeprom.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 6b4b3318f..4cd616cbb 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -206,7 +206,7 @@ static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); #define EEPROM_UVLO_LA_K (EEPROM_SHEETS_BASE-4) // float //This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items. -#define EEPROM_LAST_ITEM EEPROM_SHEETS_BASE +#define EEPROM_LAST_ITEM EEPROM_UVLO_LA_K // !!!!! // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!! // !!!!! From 4e58a112e8935b5bf685e37a7cf2922b6171c6c9 Mon Sep 17 00:00:00 2001 From: rhounsell <53660397+rhounsell@users.noreply.github.com> Date: Thu, 8 Aug 2019 15:45:59 -0400 Subject: [PATCH 066/271] Fix for Toshiba FlashAir (or other) SD card initialization - add clock cycles between sending CMD0 and CMD8. Redone for MK3 branch) --- Firmware/Sd2Card.cpp | 15 +++++++++++++++ Firmware/Sd2Card.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/Firmware/Sd2Card.cpp b/Firmware/Sd2Card.cpp index c00c7ef91..cb1959be7 100644 --- a/Firmware/Sd2Card.cpp +++ b/Firmware/Sd2Card.cpp @@ -319,6 +319,21 @@ bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) { goto fail; } } + + // send 0xFF until 0xFF received to give card some clock cycles + SERIAL_ECHOLNRPGM(PSTR("Sending 0xFF")); + spiSend(0XFF); + while ((status_ = spiRec()) != 0xFF) + { + spiSend(0XFF); + if (((uint16_t)_millis() - t0) > SD_CARD_ERROR_FF_TIMEOUT) + { + error(SD_CARD_ERROR_CMD8); + SERIAL_ECHOLNRPGM(PSTR("No 0xFF received")); + goto fail; + } + } + // check SD version if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) { type(SD_CARD_TYPE_SD1); diff --git a/Firmware/Sd2Card.h b/Firmware/Sd2Card.h index 537d249c9..f4cc59d76 100644 --- a/Firmware/Sd2Card.h +++ b/Firmware/Sd2Card.h @@ -105,6 +105,8 @@ uint8_t const SD_CARD_ERROR_SCK_RATE = 0X18; uint8_t const SD_CARD_ERROR_INIT_NOT_CALLED = 0X19; /** crc check error */ uint8_t const SD_CARD_ERROR_CRC = 0X20; +/** no response to sent 0xFF */ +uint8_t const SD_CARD_ERROR_FF_TIMEOUT = 0X21; /** Toshiba FlashAir: iSDIO */ uint8_t const SD_CARD_ERROR_CMD48 = 0x80; From 505deb28fd85f3baf4259d302865b64be181d411 Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 10 Aug 2019 08:42:33 +0300 Subject: [PATCH 067/271] Toggle menu item --- Firmware/menu.cpp | 30 ++++++++++++++++++++++++++++++ Firmware/menu.h | 3 +++ 2 files changed, 33 insertions(+) diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index 7839bbdc0..085031110 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -184,6 +184,17 @@ static void menu_draw_item_puts_P(char type_char, const char* str) lcd_printf_P(PSTR("%c%-18.18S%c"), menu_selection_mark(), str, type_char); } +static void menu_draw_toggle_puts_P(const char* str, const char* toggle) +{ + menu_draw_item_puts_P(LCD_STR_REFRESH[0], str); + lcd_set_cursor(LCD_WIDTH - 4 - strlen_P(toggle), menu_row); + lcd_putc('['); + lcd_puts_P(toggle); + lcd_putc(']'); + + // lcd_printf_P(PSTR("[%s]"), toggle); +} + //! @brief Format sheet name //! //! @param[in] sheet_E Sheet in EEPROM @@ -367,6 +378,25 @@ uint8_t menu_item_function_P(const char* str, char number, void (*func)(uint8_t) return 0; } +uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func) +{ + if (menu_item == menu_line) + { + if (lcd_draw_update) menu_draw_toggle_puts_P(str, toggle); + if (menu_clicked && (lcd_encoder == menu_item)) + { + menu_clicked = false; + lcd_consume_click(); + lcd_update_enabled = 0; + if (func) func(); + lcd_update_enabled = 1; + return menu_item_ret(); + } + } + menu_item++; + return 0; +} + uint8_t menu_item_gcode_P(const char* str, const char* str_gcode) { if (menu_item == menu_line) diff --git a/Firmware/menu.h b/Firmware/menu.h index d9bbf876c..d7676661c 100755 --- a/Firmware/menu.h +++ b/Firmware/menu.h @@ -118,6 +118,9 @@ extern uint8_t menu_item_function_P(const char* str, menu_func_t func); #define MENU_ITEM_FUNCTION_NR_P(str, number, func, fn_par) do { if (menu_item_function_P(str, number, func, fn_par)) return; } while (0) extern uint8_t menu_item_function_P(const char* str, char number, void (*func)(uint8_t), uint8_t fn_par); +#define MENU_ITEM_TOGGLE_P(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func)) return; } while (0) +extern uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func); + #define MENU_ITEM_GCODE_P(str, str_gcode) do { if (menu_item_gcode_P(str, str_gcode)) return; } while (0) extern uint8_t menu_item_gcode_P(const char* str, const char* str_gcode); From 29dcb1cad356e1b2e43647591d84cd748023bfaa Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 10 Aug 2019 08:43:07 +0300 Subject: [PATCH 068/271] Toggle FANS_CHECK --- Firmware/messages.c | 4 ++-- Firmware/messages.h | 4 ++-- Firmware/ultralcd.cpp | 10 ++-------- lang/lang_en.txt | 12 ++++++------ lang/lang_en_cz.txt | 18 +++++++++--------- lang/lang_en_de.txt | 18 +++++++++--------- lang/lang_en_es.txt | 18 +++++++++--------- lang/lang_en_fr.txt | 16 ++++++++-------- lang/lang_en_it.txt | 16 ++++++++-------- lang/lang_en_pl.txt | 18 +++++++++--------- 10 files changed, 64 insertions(+), 70 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index 1c36e43c5..4c1dbc275 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -104,13 +104,13 @@ const char MSG_WIZARD_QUIT[] PROGMEM_I1 = ISTR("You can always resume the Wizard const char MSG_YES[] PROGMEM_I1 = ISTR("Yes"); //// const char MSG_V2_CALIBRATION[] PROGMEM_I1 = ISTR("First layer cal."); ////c=17 r=1 const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " OK."); ////c=20 +const char MSG_OFF[] PROGMEM_I1 = "Off"; ////c=3 r=1 +const char MSG_ON[] PROGMEM_I1 = "On"; ////c=2 r=1 //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// const char MSG_BROWNOUT_RESET[] PROGMEM_N1 = " Brown out Reset"; //// const char MSG_EXTERNAL_RESET[] PROGMEM_N1 = " External Reset"; //// const char MSG_FILE_SAVED[] PROGMEM_N1 = "Done saving file."; //// -const char MSG_OFF[] PROGMEM_N1 = "Off"; //// -const char MSG_ON[] PROGMEM_N1 = "On "; //// const char MSG_POSITION_UNKNOWN[] PROGMEM_N1 = "Home X/Y before Z"; //// const char MSG_SOFTWARE_RESET[] PROGMEM_N1 = " Software Reset"; //// const char MSG_UNKNOWN_COMMAND[] PROGMEM_N1 = "Unknown command: \""; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index b48337efd..65ddbab3f 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -104,12 +104,12 @@ extern const char MSG_WIZARD_QUIT[]; extern const char MSG_YES[]; extern const char MSG_V2_CALIBRATION[]; extern const char WELCOME_MSG[]; +extern const char MSG_OFF[]; +extern const char MSG_ON[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; extern const char MSG_EXTERNAL_RESET[]; extern const char MSG_FILE_SAVED[]; -extern const char MSG_OFF[]; -extern const char MSG_ON[]; extern const char MSG_POSITION_UNKNOWN[]; extern const char MSG_SOFTWARE_RESET[]; extern const char MSG_UNKNOWN_COMMAND[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ac8a302fd..cf81908d5 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5569,10 +5569,7 @@ static void lcd_settings_menu() SETTINGS_CUTTER; - if (fans_check_enabled == true) - MENU_ITEM_FUNCTION_P(_i("Fans check [on]"), lcd_set_fan_check);////MSG_FANS_CHECK_ON c=17 r=1 - else - MENU_ITEM_FUNCTION_P(_i("Fans check [off]"), lcd_set_fan_check);////MSG_FANS_CHECK_OFF c=17 r=1 + MENU_ITEM_TOGGLE_P(_i("Fans check"), fans_check_enabled ? _T(MSG_ON) : _T(MSG_OFF), lcd_set_fan_check); SETTINGS_SILENT_MODE; @@ -6881,10 +6878,7 @@ static void lcd_tune_menu() if(farm_mode) { - if (fans_check_enabled == true) - MENU_ITEM_FUNCTION_P(_i("Fans check [on]"), lcd_set_fan_check);////MSG_FANS_CHECK_ON c=17 r=1 - else - MENU_ITEM_FUNCTION_P(_i("Fans check [off]"), lcd_set_fan_check);////MSG_FANS_CHECK_OFF c=17 r=1 + MENU_ITEM_TOGGLE_P(_i("Fans check"), fans_check_enabled ? _T(MSG_ON) : _T(MSG_OFF), lcd_set_fan_check); } #ifdef TMC2130 diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 2da37fc06..8819d40ae 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -220,11 +220,8 @@ #MSG_SELFTEST_FAN c=20 "Fan test" -#MSG_FANS_CHECK_ON c=17 r=1 -"Fans check [on]" - -#MSG_FANS_CHECK_OFF c=17 r=1 -"Fans check [off]" +#MSG_FANS_CHECK +"Fans check" #MSG_FSENSOR_ON "Fil. sensor [on]" @@ -929,4 +926,7 @@ "Y-correct:" #MSG_OFF -" [off]" +"Off" + +#MSG_ON +"On" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index ed682e812..9a4b75795 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -294,13 +294,9 @@ "Fan test" "Test ventilatoru" -#MSG_FANS_CHECK_ON c=17 r=1 -"Fans check [on]" -"Kontr. vent.[zap]" - -#MSG_FANS_CHECK_OFF c=17 r=1 -"Fans check [off]" -"Kontr. vent.[vyp]" +#MSG_FANS_CHECK +"Fans check" +"Kontr. vent." #MSG_FSENSOR_ON "Fil. sensor [on]" @@ -1239,5 +1235,9 @@ "Korekce Y:" #MSG_OFF -" [off]" -"\x00" +"Off" +"Vyp" + +#MSG_ON +"On" +"Zap" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index cb73f8f26..1dc09798c 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -294,13 +294,9 @@ "Fan test" "Lueftertest" -#MSG_FANS_CHECK_ON c=17 r=1 -"Fans check [on]" -"Luefter Chk. [an]" - -#MSG_FANS_CHECK_OFF c=17 r=1 -"Fans check [off]" -"Luefter Chk.[aus]" +#MSG_FANS_CHECK +"Fans check" +"Luefter Chk." #MSG_FSENSOR_ON "Fil. sensor [on]" @@ -1240,5 +1236,9 @@ "Y-Korrektur:" #MSG_OFF -" [off]" -"\x00" +"Off" +"Aus" + +#MSG_ON +"On" +"An" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index a48da96f5..ba1fea1ee 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -294,13 +294,9 @@ "Fan test" "Test ventiladores" -#MSG_FANS_CHECK_ON c=17 r=1 -"Fans check [on]" -"Comprob.vent[act]" - -#MSG_FANS_CHECK_OFF c=17 r=1 -"Fans check [off]" -"Comprob.vent[ina]" +#MSG_FANS_CHECK +"Fans check" +"Comprob.vent" #MSG_FSENSOR_ON "Fil. sensor [on]" @@ -1239,5 +1235,9 @@ "Y-correcion:" #MSG_OFF -" [off]" -"\x00" +"Off" +"Ina" + +#MSG_ON +"On" +"Act" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index 320b91d9e..f86795d71 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -294,13 +294,9 @@ "Fan test" "Test ventilateur" -#MSG_FANS_CHECK_ON c=17 r=1 -"Fans check [on]" -"Verif ventilo[on]" - -#MSG_FANS_CHECK_OFF c=17 r=1 -"Fans check [off]" -"Verif venti [off]" +#MSG_FANS_CHECK +"Fans check" +"Verif ventilo" #MSG_FSENSOR_ON "Fil. sensor [on]" @@ -1239,5 +1235,9 @@ "Correct-Y:" #MSG_OFF -" [off]" +"Off" +"\x00" + +#MSG_ON +"On" "\x00" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 0b82c587f..4130aedb7 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -294,13 +294,9 @@ "Fan test" "Test ventola" -#MSG_FANS_CHECK_ON c=17 r=1 -"Fans check [on]" -"Controllo ventole [on]" - -#MSG_FANS_CHECK_OFF c=17 r=1 -"Fans check [off]" -"Control.vent[off]" +#MSG_FANS_CHECK +"Fans check" +"Control.vent" #MSG_FSENSOR_ON "Fil. sensor [on]" @@ -1239,5 +1235,9 @@ "Correzione-Y:" #MSG_OFF -" [off]" +"Off" +"\x00" + +#MSG_ON +"On" "\x00" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 47e0fbb06..45b402fa9 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -294,13 +294,9 @@ "Fan test" "Test wentylatora" -#MSG_FANS_CHECK_ON c=17 r=1 -"Fans check [on]" -"Sprawd.went. [wl]" - -#MSG_FANS_CHECK_OFF c=17 r=1 -"Fans check [off]" -"Sprawd.went.[wyl]" +#MSG_FANS_CHECK +"Fans check" +"Sprawd.went." #MSG_FSENSOR_ON "Fil. sensor [on]" @@ -1239,5 +1235,9 @@ "Korekcja Y:" #MSG_OFF -" [off]" -"\x00" +"Off" +"Wyl" + +#MSG_ON +"On" +"Wl" From 7ce2fedac71e8bedd1cc3ad494584cd8f1726b71 Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 10 Aug 2019 09:16:23 +0300 Subject: [PATCH 069/271] Fix missing first two characters in multi-lang mode --- Firmware/Marlin_main.cpp | 2 +- Firmware/messages.c | 2 -- Firmware/messages.h | 2 -- Firmware/ultralcd.cpp | 4 ++-- lang/lang_en.txt | 4 ++-- lang/lang_en_cz.txt | 4 ++-- lang/lang_en_de.txt | 4 ++-- lang/lang_en_es.txt | 4 ++-- lang/lang_en_fr.txt | 4 ++-- lang/lang_en_it.txt | 4 ++-- lang/lang_en_pl.txt | 4 ++-- 11 files changed, 17 insertions(+), 21 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a9fbf958a..c1d46be1e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -6131,7 +6131,7 @@ Sigma_Exit: WRITE(PS_ON_PIN, PS_ON_ASLEEP); #endif powersupply = false; - LCD_MESSAGERPGM(CAT4(CUSTOM_MENDEL_NAME,PSTR(" "),MSG_OFF,PSTR("."))); + LCD_MESSAGERPGM(CAT4(CUSTOM_MENDEL_NAME,PSTR(" "),_i("Off"),PSTR("."))); lcd_update(0); break; diff --git a/Firmware/messages.c b/Firmware/messages.c index 4c1dbc275..83665d4bf 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -104,8 +104,6 @@ const char MSG_WIZARD_QUIT[] PROGMEM_I1 = ISTR("You can always resume the Wizard const char MSG_YES[] PROGMEM_I1 = ISTR("Yes"); //// const char MSG_V2_CALIBRATION[] PROGMEM_I1 = ISTR("First layer cal."); ////c=17 r=1 const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " OK."); ////c=20 -const char MSG_OFF[] PROGMEM_I1 = "Off"; ////c=3 r=1 -const char MSG_ON[] PROGMEM_I1 = "On"; ////c=2 r=1 //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// const char MSG_BROWNOUT_RESET[] PROGMEM_N1 = " Brown out Reset"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index 65ddbab3f..f944f52de 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -104,8 +104,6 @@ extern const char MSG_WIZARD_QUIT[]; extern const char MSG_YES[]; extern const char MSG_V2_CALIBRATION[]; extern const char WELCOME_MSG[]; -extern const char MSG_OFF[]; -extern const char MSG_ON[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; extern const char MSG_EXTERNAL_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index cf81908d5..35afc9549 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5569,7 +5569,7 @@ static void lcd_settings_menu() SETTINGS_CUTTER; - MENU_ITEM_TOGGLE_P(_i("Fans check"), fans_check_enabled ? _T(MSG_ON) : _T(MSG_OFF), lcd_set_fan_check); + MENU_ITEM_TOGGLE_P(_i("Fans check"), fans_check_enabled ? _i("On") : _i("Off"), lcd_set_fan_check); SETTINGS_SILENT_MODE; @@ -6878,7 +6878,7 @@ static void lcd_tune_menu() if(farm_mode) { - MENU_ITEM_TOGGLE_P(_i("Fans check"), fans_check_enabled ? _T(MSG_ON) : _T(MSG_OFF), lcd_set_fan_check); + MENU_ITEM_TOGGLE_P(_i("Fans check"), fans_check_enabled ? _i("On") : _i("Off"), lcd_set_fan_check); } #ifdef TMC2130 diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 8819d40ae..8e00dd803 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -925,8 +925,8 @@ # "Y-correct:" -#MSG_OFF +# "Off" -#MSG_ON +# "On" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 9a4b75795..701693945 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -1234,10 +1234,10 @@ "Y-correct:" "Korekce Y:" -#MSG_OFF +# "Off" "Vyp" -#MSG_ON +# "On" "Zap" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 1dc09798c..fbfb27fdf 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -1235,10 +1235,10 @@ "Y-correct:" "Y-Korrektur:" -#MSG_OFF +# "Off" "Aus" -#MSG_ON +# "On" "An" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index ba1fea1ee..b1da127d4 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -1234,10 +1234,10 @@ "Y-correct:" "Y-correcion:" -#MSG_OFF +# "Off" "Ina" -#MSG_ON +# "On" "Act" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index f86795d71..57ed8d119 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -1234,10 +1234,10 @@ "Y-correct:" "Correct-Y:" -#MSG_OFF +# "Off" "\x00" -#MSG_ON +# "On" "\x00" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 4130aedb7..b79b678ae 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -1234,10 +1234,10 @@ "Y-correct:" "Correzione-Y:" -#MSG_OFF +# "Off" "\x00" -#MSG_ON +# "On" "\x00" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 45b402fa9..79765625d 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -1234,10 +1234,10 @@ "Y-correct:" "Korekcja Y:" -#MSG_OFF +# "Off" "Wyl" -#MSG_ON +# "On" "Wl" From 596ffe1dc2fcd57e4ddbba98b06872823ed31078 Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 10 Aug 2019 21:03:45 +0300 Subject: [PATCH 070/271] Actual fix to the missing first two characters --- Firmware/Marlin_main.cpp | 2 +- Firmware/menu.cpp | 6 +----- Firmware/messages.c | 2 ++ Firmware/messages.h | 2 ++ Firmware/ultralcd.cpp | 4 ++-- lang/lang_en.txt | 4 ++-- lang/lang_en_cz.txt | 4 ++-- lang/lang_en_de.txt | 4 ++-- lang/lang_en_es.txt | 4 ++-- lang/lang_en_fr.txt | 4 ++-- lang/lang_en_it.txt | 4 ++-- lang/lang_en_pl.txt | 4 ++-- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index c1d46be1e..a9fbf958a 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -6131,7 +6131,7 @@ Sigma_Exit: WRITE(PS_ON_PIN, PS_ON_ASLEEP); #endif powersupply = false; - LCD_MESSAGERPGM(CAT4(CUSTOM_MENDEL_NAME,PSTR(" "),_i("Off"),PSTR("."))); + LCD_MESSAGERPGM(CAT4(CUSTOM_MENDEL_NAME,PSTR(" "),MSG_OFF,PSTR("."))); lcd_update(0); break; diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index 085031110..8d3c8d649 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -188,11 +188,7 @@ static void menu_draw_toggle_puts_P(const char* str, const char* toggle) { menu_draw_item_puts_P(LCD_STR_REFRESH[0], str); lcd_set_cursor(LCD_WIDTH - 4 - strlen_P(toggle), menu_row); - lcd_putc('['); - lcd_puts_P(toggle); - lcd_putc(']'); - - // lcd_printf_P(PSTR("[%s]"), toggle); + lcd_printf_P(PSTR("[%S]"), toggle); } //! @brief Format sheet name diff --git a/Firmware/messages.c b/Firmware/messages.c index 83665d4bf..8ba32a4d9 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -104,6 +104,8 @@ const char MSG_WIZARD_QUIT[] PROGMEM_I1 = ISTR("You can always resume the Wizard const char MSG_YES[] PROGMEM_I1 = ISTR("Yes"); //// const char MSG_V2_CALIBRATION[] PROGMEM_I1 = ISTR("First layer cal."); ////c=17 r=1 const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " OK."); ////c=20 +const char MSG_OFF[] PROGMEM_I1 = ISTR("Off"); //// +const char MSG_ON[] PROGMEM_I1 = ISTR("On"); //// //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// const char MSG_BROWNOUT_RESET[] PROGMEM_N1 = " Brown out Reset"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index f944f52de..65ddbab3f 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -104,6 +104,8 @@ extern const char MSG_WIZARD_QUIT[]; extern const char MSG_YES[]; extern const char MSG_V2_CALIBRATION[]; extern const char WELCOME_MSG[]; +extern const char MSG_OFF[]; +extern const char MSG_ON[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; extern const char MSG_EXTERNAL_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 35afc9549..cf81908d5 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5569,7 +5569,7 @@ static void lcd_settings_menu() SETTINGS_CUTTER; - MENU_ITEM_TOGGLE_P(_i("Fans check"), fans_check_enabled ? _i("On") : _i("Off"), lcd_set_fan_check); + MENU_ITEM_TOGGLE_P(_i("Fans check"), fans_check_enabled ? _T(MSG_ON) : _T(MSG_OFF), lcd_set_fan_check); SETTINGS_SILENT_MODE; @@ -6878,7 +6878,7 @@ static void lcd_tune_menu() if(farm_mode) { - MENU_ITEM_TOGGLE_P(_i("Fans check"), fans_check_enabled ? _i("On") : _i("Off"), lcd_set_fan_check); + MENU_ITEM_TOGGLE_P(_i("Fans check"), fans_check_enabled ? _T(MSG_ON) : _T(MSG_OFF), lcd_set_fan_check); } #ifdef TMC2130 diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 8e00dd803..8819d40ae 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -925,8 +925,8 @@ # "Y-correct:" -# +#MSG_OFF "Off" -# +#MSG_ON "On" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 701693945..9a4b75795 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -1234,10 +1234,10 @@ "Y-correct:" "Korekce Y:" -# +#MSG_OFF "Off" "Vyp" -# +#MSG_ON "On" "Zap" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index fbfb27fdf..1dc09798c 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -1235,10 +1235,10 @@ "Y-correct:" "Y-Korrektur:" -# +#MSG_OFF "Off" "Aus" -# +#MSG_ON "On" "An" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index b1da127d4..ba1fea1ee 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -1234,10 +1234,10 @@ "Y-correct:" "Y-correcion:" -# +#MSG_OFF "Off" "Ina" -# +#MSG_ON "On" "Act" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index 57ed8d119..f86795d71 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -1234,10 +1234,10 @@ "Y-correct:" "Correct-Y:" -# +#MSG_OFF "Off" "\x00" -# +#MSG_ON "On" "\x00" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index b79b678ae..4130aedb7 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -1234,10 +1234,10 @@ "Y-correct:" "Correzione-Y:" -# +#MSG_OFF "Off" "\x00" -# +#MSG_ON "On" "\x00" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 79765625d..45b402fa9 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -1234,10 +1234,10 @@ "Y-correct:" "Korekcja Y:" -# +#MSG_OFF "Off" "Wyl" -# +#MSG_ON "On" "Wl" From 32fa8caab873e5b959f9393b825c236a85740347 Mon Sep 17 00:00:00 2001 From: rhounsell <53660397+rhounsell@users.noreply.github.com> Date: Sun, 11 Aug 2019 17:57:41 -0400 Subject: [PATCH 071/271] reinitialize the timestamp to ensure enough time to receive response for 0xFF sent. --- Firmware/Sd2Card.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Firmware/Sd2Card.cpp b/Firmware/Sd2Card.cpp index cb1959be7..449590f17 100644 --- a/Firmware/Sd2Card.cpp +++ b/Firmware/Sd2Card.cpp @@ -321,6 +321,7 @@ bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) { } // send 0xFF until 0xFF received to give card some clock cycles + t0 = (uint16_t)_millis(); SERIAL_ECHOLNRPGM(PSTR("Sending 0xFF")); spiSend(0XFF); while ((status_ = spiRec()) != 0xFF) From 5a3f14b752334465e17dbec65d619d8633e9bc93 Mon Sep 17 00:00:00 2001 From: leptun Date: Mon, 19 Aug 2019 10:20:17 +0300 Subject: [PATCH 072/271] "N/A" toggle support and format update --- Firmware/menu.cpp | 27 ++++++++++++++++++--------- Firmware/messages.c | 2 ++ Firmware/messages.h | 2 ++ Firmware/ultralcd.cpp | 10 +++++----- lang/lang_en.txt | 2 +- lang/lang_en_cz.txt | 2 +- lang/lang_en_de.txt | 2 +- lang/lang_en_es.txt | 4 ++-- lang/lang_en_fr.txt | 2 +- lang/lang_en_it.txt | 2 +- lang/lang_en_pl.txt | 2 +- 11 files changed, 35 insertions(+), 22 deletions(-) diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index 8d3c8d649..971122dc8 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -184,10 +184,11 @@ static void menu_draw_item_puts_P(char type_char, const char* str) lcd_printf_P(PSTR("%c%-18.18S%c"), menu_selection_mark(), str, type_char); } -static void menu_draw_toggle_puts_P(const char* str, const char* toggle) +static void menu_draw_toggle_puts_P(const char* str, char* toggle) { - menu_draw_item_puts_P(LCD_STR_REFRESH[0], str); - lcd_set_cursor(LCD_WIDTH - 4 - strlen_P(toggle), menu_row); + menu_draw_item_puts_P((toggle == NULL)?LCD_STR_ARROW_RIGHT[0]:LCD_STR_REFRESH[0], str); + if (toggle == NULL) toggle = _T(MSG_NA); + lcd_set_cursor(LCD_WIDTH - 3 - strlen_P(toggle), menu_row); lcd_printf_P(PSTR("[%S]"), toggle); } @@ -381,12 +382,20 @@ uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func if (lcd_draw_update) menu_draw_toggle_puts_P(str, toggle); if (menu_clicked && (lcd_encoder == menu_item)) { - menu_clicked = false; - lcd_consume_click(); - lcd_update_enabled = 0; - if (func) func(); - lcd_update_enabled = 1; - return menu_item_ret(); + if (toggle == NULL) // print N/A warning message + { + menu_submenu(func); + return menu_item_ret(); + } + else // do the actual toggling + { + menu_clicked = false; + lcd_consume_click(); + lcd_update_enabled = 0; + if (func) func(); + lcd_update_enabled = 1; + return menu_item_ret(); + } } } menu_item++; diff --git a/Firmware/messages.c b/Firmware/messages.c index 8ba32a4d9..61082c157 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -106,6 +106,8 @@ const char MSG_V2_CALIBRATION[] PROGMEM_I1 = ISTR("First layer cal."); ////c=17 const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " OK."); ////c=20 const char MSG_OFF[] PROGMEM_I1 = ISTR("Off"); //// const char MSG_ON[] PROGMEM_I1 = ISTR("On"); //// +const char MSG_NA[] PROGMEM_I1 = ISTR("N/A"); //// + //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// const char MSG_BROWNOUT_RESET[] PROGMEM_N1 = " Brown out Reset"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index 65ddbab3f..b2f72a1a1 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -106,6 +106,8 @@ extern const char MSG_V2_CALIBRATION[]; extern const char WELCOME_MSG[]; extern const char MSG_OFF[]; extern const char MSG_ON[]; +extern const char MSG_NA[]; + //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; extern const char MSG_EXTERNAL_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index cf81908d5..9e93c20c3 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2970,7 +2970,7 @@ static void lcd_menu_xyz_y_min() for (uint8_t i = 0; i < 2; i++) { lcd_set_cursor(11,2+i); - if (distanceMin[i] >= 200) lcd_puts_P(_N("N/A")); + if (distanceMin[i] >= 200) lcd_puts_P(_T(MSG_NA)); else lcd_printf_P(_N("%6.2fmm"), distanceMin[i]); } if (lcd_clicked()) @@ -3010,7 +3010,7 @@ static void lcd_menu_xyz_skew() } else{ lcd_set_cursor(15,0); - lcd_puts_P(_N("N/A")); + lcd_puts_P(_T(MSG_NA)); } if (lcd_clicked()) menu_goto(lcd_menu_xyz_offset, 0, true, true); @@ -3910,13 +3910,13 @@ static void lcd_print_state(uint8_t state) { switch (state) { case STATE_ON: - lcd_puts_P(_i(" 1")); + lcd_puts_P(_N(" 1")); break; case STATE_OFF: - lcd_puts_P(_i(" 0")); + lcd_puts_P(_N(" 0")); break; default: - lcd_puts_P(_i("N/A")); + lcd_puts_P(_T(MSG_NA)); break; } } diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 8819d40ae..c55ca2b1a 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -481,7 +481,7 @@ #MSG_NO_CARD "No SD card" -# +#MSG_NA "N/A" #MSG_NO diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 9a4b75795..177b88f74 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -642,7 +642,7 @@ "No SD card" "Zadna SD karta" -# +#MSG_NA "N/A" "\x00" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 1dc09798c..06d5016bc 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -642,7 +642,7 @@ "No SD card" "Keine SD Karte" -# +#MSG_NA "N/A" "N.V." diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index ba1fea1ee..f684dd298 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -642,9 +642,9 @@ "No SD card" "No hay tarjeta SD" -# +#MSG_NA "N/A" -"No disponible" +"N/D" #MSG_NO "No" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index f86795d71..bc9f6062d 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -642,7 +642,7 @@ "No SD card" "Pas de carte SD" -# +#MSG_NA "N/A" "\x00" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 4130aedb7..19eed4d8f 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -642,7 +642,7 @@ "No SD card" "Nessuna SD" -# +#MSG_NA "N/A" "\x00" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 45b402fa9..e1feb11f4 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -642,7 +642,7 @@ "No SD card" "Brak karty SD" -# +#MSG_NA "N/A" "N/D" From 6e9c44af2dd5f6132f0743ccba4ec6da6174edbb Mon Sep 17 00:00:00 2001 From: leptun Date: Mon, 19 Aug 2019 11:07:11 +0300 Subject: [PATCH 073/271] Fix warning --- Firmware/menu.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index 971122dc8..7dd791b8f 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -184,12 +184,11 @@ static void menu_draw_item_puts_P(char type_char, const char* str) lcd_printf_P(PSTR("%c%-18.18S%c"), menu_selection_mark(), str, type_char); } -static void menu_draw_toggle_puts_P(const char* str, char* toggle) +static void menu_draw_toggle_puts_P(const char* str, const char* toggle) { menu_draw_item_puts_P((toggle == NULL)?LCD_STR_ARROW_RIGHT[0]:LCD_STR_REFRESH[0], str); - if (toggle == NULL) toggle = _T(MSG_NA); - lcd_set_cursor(LCD_WIDTH - 3 - strlen_P(toggle), menu_row); - lcd_printf_P(PSTR("[%S]"), toggle); + lcd_set_cursor(LCD_WIDTH - 3 - strlen_P((toggle == NULL)?_T(MSG_NA):toggle), menu_row); + lcd_printf_P(PSTR("[%S]"), (toggle == NULL)?_T(MSG_NA):toggle); } //! @brief Format sheet name From 0d22f8039e1b43a28eed6dd102c7077c230cbec2 Mon Sep 17 00:00:00 2001 From: leptun Date: Mon, 19 Aug 2019 11:58:16 +0300 Subject: [PATCH 074/271] Toggle FSENSOR and FSENSOR_AUTOLOAD --- Firmware/messages.c | 5 ++--- Firmware/messages.h | 5 ++--- Firmware/ultralcd.cpp | 18 +++++++++--------- lang/lang_en.txt | 20 ++++---------------- lang/lang_en_cz.txt | 28 ++++++---------------------- lang/lang_en_de.txt | 28 ++++++---------------------- lang/lang_en_es.txt | 28 ++++++---------------------- lang/lang_en_fr.txt | 28 ++++++---------------------- lang/lang_en_it.txt | 28 ++++++---------------------- lang/lang_en_pl.txt | 28 ++++++---------------------- 10 files changed, 53 insertions(+), 163 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index 61082c157..4c1508c38 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -40,9 +40,8 @@ const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2[] PROGMEM_I1 = ISTR(" of 4"); //// const char MSG_FINISHING_MOVEMENTS[] PROGMEM_I1 = ISTR("Finishing movements"); ////c=20 r=1 const char MSG_FOLLOW_CALIBRATION_FLOW[] PROGMEM_I1 = ISTR("Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."); ////c=20 r=8 const char MSG_FOLLOW_Z_CALIBRATION_FLOW[] PROGMEM_I1 = ISTR("There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."); ////c=20 r=8 -const char MSG_FSENS_AUTOLOAD_NA[] PROGMEM_I1 = ISTR("F. autoload [N/A]"); ////c=17 r=1 -const char MSG_FSENSOR_OFF[] PROGMEM_I1 = ISTR("Fil. sensor [off]"); //// -const char MSG_FSENSOR_ON[] PROGMEM_I1 = ISTR("Fil. sensor [on]"); //// +const char MSG_FSENSOR_AUTOLOAD[] PROGMEM_I1 = ISTR("F. autoload"); ////c=17 r=1 +const char MSG_FSENSOR[] PROGMEM_I1 = ISTR("Fil. sensor"); //// const char MSG_HEATING[] PROGMEM_I1 = ISTR("Heating"); //// const char MSG_HEATING_COMPLETE[] PROGMEM_I1 = ISTR("Heating done."); ////c=20 const char MSG_HOMEYZ[] PROGMEM_I1 = ISTR("Calibrate Z"); //// diff --git a/Firmware/messages.h b/Firmware/messages.h index b2f72a1a1..d584324a7 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -41,9 +41,8 @@ extern const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2[]; extern const char MSG_FINISHING_MOVEMENTS[]; extern const char MSG_FOLLOW_CALIBRATION_FLOW[]; extern const char MSG_FOLLOW_Z_CALIBRATION_FLOW[]; -extern const char MSG_FSENS_AUTOLOAD_NA[]; -extern const char MSG_FSENSOR_OFF[]; -extern const char MSG_FSENSOR_ON[]; +extern const char MSG_FSENSOR_AUTOLOAD[]; +extern const char MSG_FSENSOR[]; extern const char MSG_HEATING[]; extern const char MSG_HEATING_COMPLETE[]; extern const char MSG_HOMEYZ[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 9e93c20c3..67d8391d0 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5056,29 +5056,29 @@ do\ if (fsensor_not_responding && (mmu_enabled == false))\ {\ /* Filament sensor not working*/\ - MENU_ITEM_FUNCTION_P(_i("Fil. sensor [N/A]"), lcd_fsensor_state_set);/*////MSG_FSENSOR_NA*/\ - MENU_ITEM_SUBMENU_P(_T(MSG_FSENS_AUTOLOAD_NA), lcd_fsensor_fail);\ + MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR), _T(MSG_NA), lcd_fsensor_state_set);/*////MSG_FSENSOR_NA*/\ + MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR_AUTOLOAD), NULL, lcd_fsensor_fail);\ }\ else\ {\ /* Filament sensor turned off, working, no problems*/\ - MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_OFF), lcd_fsensor_state_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR), _T(MSG_OFF), lcd_fsensor_state_set);\ if (mmu_enabled == false)\ {\ - MENU_ITEM_SUBMENU_P(_T(MSG_FSENS_AUTOLOAD_NA), lcd_filament_autoload_info);\ + MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR_AUTOLOAD), NULL, lcd_filament_autoload_info);\ }\ }\ }\ else\ {\ /* Filament sensor turned on, working, no problems*/\ - MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_ON), lcd_fsensor_state_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR), _T(MSG_ON), lcd_fsensor_state_set);\ if (mmu_enabled == false)\ {\ if (fsensor_autoload_enabled)\ - MENU_ITEM_FUNCTION_P(_i("F. autoload [on]"), lcd_set_filament_autoload);/*////MSG_FSENS_AUTOLOAD_ON c=17 r=1*/\ + MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR_AUTOLOAD), _T(MSG_ON), lcd_set_filament_autoload);/*////MSG_FSENS_AUTOLOAD_ON c=17 r=1*/\ else\ - MENU_ITEM_FUNCTION_P(_i("F. autoload [off]"), lcd_set_filament_autoload);/*////MSG_FSENS_AUTOLOAD_OFF c=17 r=1*/\ + MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR_AUTOLOAD), _T(MSG_OFF), lcd_set_filament_autoload);/*////MSG_FSENS_AUTOLOAD_OFF c=17 r=1*/\ /*if (fsensor_oq_meassure_enabled)*/\ /*MENU_ITEM_FUNCTION_P(_i("F. OQ meass. [on]"), lcd_set_filament_oq_meass);*//*////MSG_FSENS_OQMEASS_ON c=17 r=1*/\ /*else*/\ @@ -6865,10 +6865,10 @@ static void lcd_tune_menu() #ifdef FILAMENT_SENSOR if (FSensorStateMenu == 0) { - MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_OFF), lcd_fsensor_state_set); + MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR), _T(MSG_OFF), lcd_fsensor_state_set); } else { - MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_ON), lcd_fsensor_state_set); + MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR), _T(MSG_ON), lcd_fsensor_state_set); } #endif //FILAMENT_SENSOR diff --git a/lang/lang_en.txt b/lang/lang_en.txt index c55ca2b1a..4580e25e3 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -202,14 +202,8 @@ # "Fail stats MMU" -#MSG_FSENS_AUTOLOAD_ON c=17 r=1 -"F. autoload [on]" - -#MSG_FSENS_AUTOLOAD_NA c=17 r=1 -"F. autoload [N/A]" - -#MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -"F. autoload [off]" +#MSG_FSENSOR_AUTOLOAD +"F. autoload" # "Fail stats" @@ -223,14 +217,8 @@ #MSG_FANS_CHECK "Fans check" -#MSG_FSENSOR_ON -"Fil. sensor [on]" - -#MSG_FSENSOR_NA -"Fil. sensor [N/A]" - -#MSG_FSENSOR_OFF -"Fil. sensor [off]" +#MSG_FSENSOR +"Fil. sensor" # "Filam. runouts" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 177b88f74..dc4b61013 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -270,17 +270,9 @@ "Fail stats MMU" "Selhani MMU" -#MSG_FSENS_AUTOLOAD_ON c=17 r=1 -"F. autoload [on]" -"F. autozav. [zap]" - -#MSG_FSENS_AUTOLOAD_NA c=17 r=1 -"F. autoload [N/A]" -"F. autozav. [N/A]" - -#MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -"F. autoload [off]" -"F. autozav. [vyp]" +#MSG_FSENSOR_AUTOLOAD +"F. autoload" +"F. autozav." # "Fail stats" @@ -298,17 +290,9 @@ "Fans check" "Kontr. vent." -#MSG_FSENSOR_ON -"Fil. sensor [on]" -"Fil. senzor [zap]" - -#MSG_FSENSOR_NA -"Fil. sensor [N/A]" -"Fil. senzor [N/A]" - -#MSG_FSENSOR_OFF -"Fil. sensor [off]" -"Fil. senzor [vyp]" +#MSG_FSENSOR +"Fil. sensor" +"Fil. senzor" # "Filam. runouts" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 06d5016bc..fb168d489 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -270,17 +270,9 @@ "Fail stats MMU" "MMU-Fehler" -#MSG_FSENS_AUTOLOAD_ON c=17 r=1 -"F. autoload [on]" -"F.Autoladen [an]" - -#MSG_FSENS_AUTOLOAD_NA c=17 r=1 -"F. autoload [N/A]" -"F. Autoload [nv]" - -#MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -"F. autoload [off]" -"F. Autoload [aus]" +#MSG_FSENSOR_AUTOLOAD +"F. autoload" +"F. autoladen" # "Fail stats" @@ -298,17 +290,9 @@ "Fans check" "Luefter Chk." -#MSG_FSENSOR_ON -"Fil. sensor [on]" -"Fil. Sensor [an]" - -#MSG_FSENSOR_NA -"Fil. sensor [N/A]" -"Fil. Sensor [nv]" - -#MSG_FSENSOR_OFF -"Fil. sensor [off]" -"Fil. Sensor [aus]" +#MSG_FSENSOR +"Fil. sensor" +"\x00" # "Filam. runouts" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index f684dd298..e68bdf3fb 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -270,17 +270,9 @@ "Fail stats MMU" "Estadistica de fallos MMU" -#MSG_FSENS_AUTOLOAD_ON c=17 r=1 -"F. autoload [on]" -"Autocarg.Fil[act]" - -#MSG_FSENS_AUTOLOAD_NA c=17 r=1 -"F. autoload [N/A]" -"Autocarg.Fil[N/D]" - -#MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -"F. autoload [off]" -"Autocarg.Fil[ina]" +#MSG_FSENSOR_AUTOLOAD +"F. autoload" +"Autocarg.fil." # "Fail stats" @@ -298,17 +290,9 @@ "Fans check" "Comprob.vent" -#MSG_FSENSOR_ON -"Fil. sensor [on]" -"Sensor Fil. [act]" - -#MSG_FSENSOR_NA -"Fil. sensor [N/A]" -"Sensor Fil. [N/D]" - -#MSG_FSENSOR_OFF -"Fil. sensor [off]" -"Sensor Fil. [ina]" +#MSG_FSENSOR +"Fil. sensor" +"Sensor Fil." # "Filam. runouts" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index bc9f6062d..8c50b060b 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -270,17 +270,9 @@ "Fail stats MMU" "Stat. echecs MMU" -#MSG_FSENS_AUTOLOAD_ON c=17 r=1 -"F. autoload [on]" -"ChargAuto f. [on]" - -#MSG_FSENS_AUTOLOAD_NA c=17 r=1 -"F. autoload [N/A]" -"AutoCharg F [N/A]" - -#MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -"F. autoload [off]" -"AutoCharg F [off]" +#MSG_FSENSOR_AUTOLOAD +"F. autoload" +"Charg.auto.F." # "Fail stats" @@ -298,17 +290,9 @@ "Fans check" "Verif ventilo" -#MSG_FSENSOR_ON -"Fil. sensor [on]" -"Capteur Fil. [on]" - -#MSG_FSENSOR_NA -"Fil. sensor [N/A]" -"Capteur Fil. [N/A]" - -#MSG_FSENSOR_OFF -"Fil. sensor [off]" -"Capteur Fil.[off]" +#MSG_FSENSOR +"Fil. sensor" +"Capteur Fil." # "Filam. runouts" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 19eed4d8f..2a0a00fb9 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -270,17 +270,9 @@ "Fail stats MMU" "Statistiche fallimenti MMU" -#MSG_FSENS_AUTOLOAD_ON c=17 r=1 -"F. autoload [on]" -"Autocar.filam[on]" - -#MSG_FSENS_AUTOLOAD_NA c=17 r=1 -"F. autoload [N/A]" -"Autocar.fil.[N/A]" - -#MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -"F. autoload [off]" -"Autocar.fil.[off]" +#MSG_FSENSOR_AUTOLOAD +"F. autoload" +"Autocar.filam" # "Fail stats" @@ -298,17 +290,9 @@ "Fans check" "Control.vent" -#MSG_FSENSOR_ON -"Fil. sensor [on]" -"Sensor filam.[On]" - -#MSG_FSENSOR_NA -"Fil. sensor [N/A]" -"Sensor filam[N/A]" - -#MSG_FSENSOR_OFF -"Fil. sensor [off]" -"Sensor filam[off]" +#MSG_FSENSOR +"Fil. sensor" +"Sensor filam." # "Filam. runouts" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index e1feb11f4..3ddd63acc 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -270,17 +270,9 @@ "Fail stats MMU" "Bledy MMU" -#MSG_FSENS_AUTOLOAD_ON c=17 r=1 -"F. autoload [on]" -"Autolad. fil [wl]" - -#MSG_FSENS_AUTOLOAD_NA c=17 r=1 -"F. autoload [N/A]" -"Autolad.fil.[N/D]" - -#MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -"F. autoload [off]" -"Autolad.fil.[wyl]" +#MSG_FSENSOR_AUTOLOAD +"F. autoload" +"Autolad. fil." # "Fail stats" @@ -298,17 +290,9 @@ "Fans check" "Sprawd.went." -#MSG_FSENSOR_ON -"Fil. sensor [on]" -"Czuj. filam. [wl]" - -#MSG_FSENSOR_NA -"Fil. sensor [N/A]" -"Czuj. filam.[N/D]" - -#MSG_FSENSOR_OFF -"Fil. sensor [off]" -"Czuj. filam.[wyl]" +#MSG_FSENSOR +"Fil. sensor" +"Czuj. filam." # "Filam. runouts" From e0acb23993d7067cc40e8973c4ccb41c6b22a2fe Mon Sep 17 00:00:00 2001 From: leptun Date: Mon, 19 Aug 2019 12:46:07 +0300 Subject: [PATCH 075/271] Fix N/A for German --- lang/lang_en_de.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index fb168d489..8c91b2dea 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -628,7 +628,7 @@ #MSG_NA "N/A" -"N.V." +"N/V" #MSG_NO "No" From 1937cf20740c398540cd9e1fb1552faae2a9deec Mon Sep 17 00:00:00 2001 From: leptun Date: Thu, 29 Aug 2019 15:40:04 +0300 Subject: [PATCH 076/271] Toggle SpoolJoin --- Firmware/ultralcd.cpp | 11 +++++------ lang/lang_en.txt | 10 ++-------- lang/lang_en_cz.txt | 12 ++---------- lang/lang_en_de.txt | 14 +++----------- lang/lang_en_es.txt | 12 ++---------- lang/lang_en_fr.txt | 12 ++---------- lang/lang_en_it.txt | 12 ++---------- lang/lang_en_pl.txt | 14 +++----------- 8 files changed, 21 insertions(+), 76 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index c1f40d749..622152663 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5106,30 +5106,29 @@ static void auto_deplete_switch() eeprom_update_byte((unsigned char *)EEPROM_AUTO_DEPLETE, lcd_autoDeplete); } -static bool settingsAutoDeplete() +static void settingsAutoDeplete() { if (mmu_enabled) { if (!fsensor_enabled) { - if (menu_item_text_P(_i("SpoolJoin [N/A]"))) return true; + MENU_ITEM_TOGGLE_P(_i("SpoolJoin"), _T(MSG_NA), NULL); } else if (lcd_autoDeplete) { - if (menu_item_function_P(_i("SpoolJoin [on]"), auto_deplete_switch)) return true; + MENU_ITEM_TOGGLE_P(_i("SpoolJoin"), _T(MSG_ON), auto_deplete_switch); } else { - if (menu_item_function_P(_i("SpoolJoin [off]"), auto_deplete_switch)) return true; + MENU_ITEM_TOGGLE_P(_i("SpoolJoin"), _T(MSG_OFF), auto_deplete_switch); } } - return false; } #define SETTINGS_AUTO_DEPLETE \ do\ {\ - if(settingsAutoDeplete()) return;\ + settingsAutoDeplete();\ }\ while(0)\ diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 4580e25e3..41501d064 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -34,14 +34,8 @@ #MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 "Are left and right Z~carriages all up?" -#MSG_AUTO_DEPLETE_ON c=17 r=1 -"SpoolJoin [on]" - -# -"SpoolJoin [N/A]" - -#MSG_AUTO_DEPLETE_OFF c=17 r=1 -"SpoolJoin [off]" +#MSG_AUTO_DEPLETE c=17 r=1 +"SpoolJoin" #MSG_AUTO_HOME "Auto home" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index dc4b61013..88ffa69c5 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -46,18 +46,10 @@ "Are left and right Z~carriages all up?" "Dojely oba Z voziky k~hornimu dorazu?" -#MSG_AUTO_DEPLETE_ON c=17 r=1 -"SpoolJoin [on]" -"SpoolJoin [zap]" - -# -"SpoolJoin [N/A]" +#MSG_AUTO_DEPLETE c=17 r=1 +"SpoolJoin" "\x00" -#MSG_AUTO_DEPLETE_OFF c=17 r=1 -"SpoolJoin [off]" -"SpoolJoin [vyp]" - #MSG_AUTO_HOME "Auto home" "\x00" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 8c91b2dea..68859bd8b 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -46,17 +46,9 @@ "Are left and right Z~carriages all up?" "Sind linke+rechte Z- Schlitten ganz oben?" -#MSG_AUTO_DEPLETE_ON c=17 r=1 -"SpoolJoin [on]" -"SpoolJoin [an]" - -# -"SpoolJoin [N/A]" -"SpoolJoin [N/V]" - -#MSG_AUTO_DEPLETE_OFF c=17 r=1 -"SpoolJoin [off]" -"SpoolJoin [aus]" +#MSG_AUTO_DEPLETE c=17 r=1 +"SpoolJoin" +"\x00" #MSG_AUTO_HOME "Auto home" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index e68bdf3fb..b33a5e083 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -46,16 +46,8 @@ "Are left and right Z~carriages all up?" "Carros Z izq./der. estan arriba maximo?" -#MSG_AUTO_DEPLETE_ON c=17 r=1 -"SpoolJoin [on]" -"\x00" - -# -"SpoolJoin [N/A]" -"\x00" - -#MSG_AUTO_DEPLETE_OFF c=17 r=1 -"SpoolJoin [off]" +#MSG_AUTO_DEPLETE c=17 r=1 +"SpoolJoin" "\x00" #MSG_AUTO_HOME diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index 8c50b060b..512a52555 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -46,16 +46,8 @@ "Are left and right Z~carriages all up?" "Z~carriages gauche + droite tout en haut?" -#MSG_AUTO_DEPLETE_ON c=17 r=1 -"SpoolJoin [on]" -"\x00" - -# -"SpoolJoin [N/A]" -"\x00" - -#MSG_AUTO_DEPLETE_OFF c=17 r=1 -"SpoolJoin [off]" +#MSG_AUTO_DEPLETE c=17 r=1 +"SpoolJoin" "\x00" #MSG_AUTO_HOME diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 2a0a00fb9..839cbec76 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -46,16 +46,8 @@ "Are left and right Z~carriages all up?" "I carrelli Z sin/des sono altezza max?" -#MSG_AUTO_DEPLETE_ON c=17 r=1 -"SpoolJoin [on]" -"\x00" - -# -"SpoolJoin [N/A]" -"\x00" - -#MSG_AUTO_DEPLETE_OFF c=17 r=1 -"SpoolJoin [off]" +#MSG_AUTO_DEPLETE c=17 r=1 +"SpoolJoin" "\x00" #MSG_AUTO_HOME diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 3ddd63acc..09d393b7c 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -46,17 +46,9 @@ "Are left and right Z~carriages all up?" "Obydwa konce osi dojechaly do gornych ogranicznikow?" -#MSG_AUTO_DEPLETE_ON c=17 r=1 -"SpoolJoin [on]" -"SpoolJoin [wl]" - -# -"SpoolJoin [N/A]" -"SpoolJoin [nd]" - -#MSG_AUTO_DEPLETE_OFF c=17 r=1 -"SpoolJoin [off]" -"SpoolJoin [wyl]" +#MSG_AUTO_DEPLETE c=17 r=1 +"SpoolJoin" +"\x00" #MSG_AUTO_HOME "Auto home" From d0f9f10ed63c5bf1d8b3aabf1393d8b794f07beb Mon Sep 17 00:00:00 2001 From: leptun Date: Thu, 29 Aug 2019 15:43:41 +0300 Subject: [PATCH 077/271] Toggle Cutter --- Firmware/ultralcd.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 622152663..043e06b64 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5139,17 +5139,17 @@ static bool settingsCutter() { if (EEPROM_MMU_CUTTER_ENABLED_enabled == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED)) { - if (menu_item_function_P(_i("Cutter [on]"), lcd_cutter_enabled)) return true;//// c=17 r=1 + MENU_ITEM_TOGGLE_P(_i("Cutter"), _T(MSG_ON), lcd_cutter_enabled); } #ifdef MMU_ALWAYS_CUT else if (EEPROM_MMU_CUTTER_ENABLED_always == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED)) { - if (menu_item_function_P(_i("Cutter [always]"), lcd_cutter_enabled)) return true;//// c=17 r=1 + MENU_ITEM_TOGGLE_P(_i("Cutter"), _i("Always"), lcd_cutter_enabled); } #endif else { - if (menu_item_function_P(_i("Cutter [off]"), lcd_cutter_enabled)) return true;//// c=17 r=1 + MENU_ITEM_TOGGLE_P(_i("Cutter"), _T(MSG_OFF), lcd_cutter_enabled); } } return false; @@ -5158,7 +5158,7 @@ static bool settingsCutter() #define SETTINGS_CUTTER \ do\ {\ - if(settingsCutter()) return;\ + settingsCutter();\ }\ while(0) #else From 0b21acec46d70bcbf847725a3b537a04bb14b772 Mon Sep 17 00:00:00 2001 From: leptun Date: Thu, 29 Aug 2019 15:49:26 +0300 Subject: [PATCH 078/271] Minor fix to Toggle Cutter --- Firmware/ultralcd.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 043e06b64..800a72983 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5133,7 +5133,7 @@ do\ while(0)\ #ifdef MMU_HAS_CUTTER -static bool settingsCutter() +static void settingsCutter() { if (mmu_enabled) { @@ -5152,7 +5152,6 @@ static bool settingsCutter() MENU_ITEM_TOGGLE_P(_i("Cutter"), _T(MSG_OFF), lcd_cutter_enabled); } } - return false; } #define SETTINGS_CUTTER \ From 7f51e0bad826b6207f4c6b224df1a5f65d8629a0 Mon Sep 17 00:00:00 2001 From: leptun Date: Thu, 29 Aug 2019 17:35:26 +0300 Subject: [PATCH 079/271] Move SpoolJoin and Cutter to MSGs --- Firmware/messages.c | 2 ++ Firmware/messages.h | 2 ++ Firmware/ultralcd.cpp | 12 ++++++------ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index 4c1508c38..5eac34a00 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -106,6 +106,8 @@ const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " OK."); ////c=20 const char MSG_OFF[] PROGMEM_I1 = ISTR("Off"); //// const char MSG_ON[] PROGMEM_I1 = ISTR("On"); //// const char MSG_NA[] PROGMEM_I1 = ISTR("N/A"); //// +const char MSG_AUTO_DEPLETE[] PROGMEM_I1 = ISTR("SpoolJoin"); //// +const char MSG_CUTTER[] PROGMEM_I1 = ISTR("Cutter"); //// //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index d584324a7..10d14074f 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -106,6 +106,8 @@ extern const char WELCOME_MSG[]; extern const char MSG_OFF[]; extern const char MSG_ON[]; extern const char MSG_NA[]; +extern const char MSG_AUTO_DEPLETE[]; +extern const char MSG_CUTTER[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 800a72983..713f590c6 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5112,15 +5112,15 @@ static void settingsAutoDeplete() { if (!fsensor_enabled) { - MENU_ITEM_TOGGLE_P(_i("SpoolJoin"), _T(MSG_NA), NULL); + MENU_ITEM_TOGGLE_P(_T(MSG_AUTO_DEPLETE), _T(MSG_NA), NULL); } else if (lcd_autoDeplete) { - MENU_ITEM_TOGGLE_P(_i("SpoolJoin"), _T(MSG_ON), auto_deplete_switch); + MENU_ITEM_TOGGLE_P(_T(MSG_AUTO_DEPLETE), _T(MSG_ON), auto_deplete_switch); } else { - MENU_ITEM_TOGGLE_P(_i("SpoolJoin"), _T(MSG_OFF), auto_deplete_switch); + MENU_ITEM_TOGGLE_P(_T(MSG_AUTO_DEPLETE), _T(MSG_OFF), auto_deplete_switch); } } } @@ -5139,17 +5139,17 @@ static void settingsCutter() { if (EEPROM_MMU_CUTTER_ENABLED_enabled == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED)) { - MENU_ITEM_TOGGLE_P(_i("Cutter"), _T(MSG_ON), lcd_cutter_enabled); + MENU_ITEM_TOGGLE_P(_T(MSG_CUTTER), _T(MSG_ON), lcd_cutter_enabled); } #ifdef MMU_ALWAYS_CUT else if (EEPROM_MMU_CUTTER_ENABLED_always == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED)) { - MENU_ITEM_TOGGLE_P(_i("Cutter"), _i("Always"), lcd_cutter_enabled); + MENU_ITEM_TOGGLE_P(_T(MSG_CUTTER), _i("Always"), lcd_cutter_enabled); } #endif else { - MENU_ITEM_TOGGLE_P(_i("Cutter"), _T(MSG_OFF), lcd_cutter_enabled); + MENU_ITEM_TOGGLE_P(_T(MSG_CUTTER), _T(MSG_OFF), lcd_cutter_enabled); } } } From db6e2e0525052685d7a7843e17c5fcc609f60bde Mon Sep 17 00:00:00 2001 From: leptun Date: Thu, 29 Aug 2019 22:31:30 +0300 Subject: [PATCH 080/271] Toggle Crash det. --- Firmware/messages.c | 4 +--- Firmware/messages.h | 4 +--- Firmware/ultralcd.cpp | 15 ++++++--------- lang/lang_en.txt | 10 ++-------- lang/lang_en_cz.txt | 12 ++---------- lang/lang_en_de.txt | 14 +++----------- lang/lang_en_es.txt | 14 +++----------- lang/lang_en_fr.txt | 14 +++----------- lang/lang_en_it.txt | 14 +++----------- lang/lang_en_pl.txt | 12 ++---------- 10 files changed, 26 insertions(+), 87 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index 5eac34a00..085cf2e9e 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -22,9 +22,7 @@ const char MSG_CARD_MENU[] PROGMEM_I1 = ISTR("Print from SD"); //// const char MSG_CONFIRM_NOZZLE_CLEAN[] PROGMEM_I1 = ISTR("Please clean the nozzle for calibration. Click when done."); ////c=20 r=8 const char MSG_COOLDOWN[] PROGMEM_I1 = ISTR("Cooldown"); //// const char MSG_CRASH_DETECTED[] PROGMEM_I1 = ISTR("Crash detected."); ////c=20 r=1 -const char MSG_CRASHDETECT_NA[] PROGMEM_I1 = ISTR("Crash det. [N/A]"); //// -const char MSG_CRASHDETECT_OFF[] PROGMEM_I1 = ISTR("Crash det. [off]"); //// -const char MSG_CRASHDETECT_ON[] PROGMEM_I1 = ISTR("Crash det. [on]"); //// +const char MSG_CRASHDETECT[] PROGMEM_I1 = ISTR("Crash det."); //// const char MSG_ERROR[] PROGMEM_I1 = ISTR("ERROR:"); //// const char MSG_EXTRUDER[] PROGMEM_I1 = ISTR("Extruder"); ////c=17 r=1 const char MSG_FILAMENT[] PROGMEM_I1 = ISTR("Filament"); ////c=17 r=1 diff --git a/Firmware/messages.h b/Firmware/messages.h index 10d14074f..334d21162 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -23,9 +23,7 @@ extern const char MSG_CARD_MENU[]; extern const char MSG_CONFIRM_NOZZLE_CLEAN[]; extern const char MSG_COOLDOWN[]; extern const char MSG_CRASH_DETECTED[]; -extern const char MSG_CRASHDETECT_NA[]; -extern const char MSG_CRASHDETECT_OFF[]; -extern const char MSG_CRASHDETECT_ON[]; +extern const char MSG_CRASHDETECT[]; extern const char MSG_ERROR[]; extern const char MSG_EXTRUDER[]; extern const char MSG_FILAMENT[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 713f590c6..d0f0da91f 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5177,13 +5177,10 @@ do\ else MENU_ITEM_FUNCTION_P(_T(MSG_STEALTH_MODE_ON), lcd_silent_mode_set);\ if (SilentModeMenu == SILENT_MODE_NORMAL)\ {\ - if (lcd_crash_detect_enabled())\ - {\ - MENU_ITEM_FUNCTION_P(_T(MSG_CRASHDETECT_ON), crash_mode_switch);\ - }\ - else MENU_ITEM_FUNCTION_P(_T(MSG_CRASHDETECT_OFF), crash_mode_switch);\ + if (lcd_crash_detect_enabled()) MENU_ITEM_TOGGLE_P(_T(MSG_CRASHDETECT), _T(MSG_ON), crash_mode_switch);\ + else MENU_ITEM_TOGGLE_P(_T(MSG_CRASHDETECT), _T(MSG_OFF), crash_mode_switch);\ }\ - else MENU_ITEM_SUBMENU_P(_T(MSG_CRASHDETECT_NA), lcd_crash_mode_info);\ + else MENU_ITEM_TOGGLE_P(_T(MSG_CRASHDETECT), NULL, lcd_crash_mode_info);\ }\ }\ while (0) @@ -6895,10 +6892,10 @@ static void lcd_tune_menu() if (SilentModeMenu == SILENT_MODE_NORMAL) { - if (lcd_crash_detect_enabled()) MENU_ITEM_FUNCTION_P(_T(MSG_CRASHDETECT_ON), crash_mode_switch); - else MENU_ITEM_FUNCTION_P(_T(MSG_CRASHDETECT_OFF), crash_mode_switch); + if (lcd_crash_detect_enabled()) MENU_ITEM_TOGGLE_P(_T(MSG_CRASHDETECT), _T(MSG_ON), crash_mode_switch); + else MENU_ITEM_TOGGLE_P(_T(MSG_CRASHDETECT), _T(MSG_OFF), crash_mode_switch); } - else MENU_ITEM_SUBMENU_P(_T(MSG_CRASHDETECT_NA), lcd_crash_mode_info); + else MENU_ITEM_TOGGLE_P(_T(MSG_CRASHDETECT), NULL, lcd_crash_mode_info); } #else //TMC2130 if (!farm_mode) { //dont show in menu if we are in farm mode diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 41501d064..29f7c2130 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -121,14 +121,8 @@ # "Copy selected language?" -#MSG_CRASHDETECT_ON -"Crash det. [on]" - -#MSG_CRASHDETECT_NA -"Crash det. [N/A]" - -#MSG_CRASHDETECT_OFF -"Crash det. [off]" +#MSG_CRASHDETECT +"Crash det." #MSG_CRASH_DETECTED c=20 r=1 "Crash detected." diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 88ffa69c5..91144ece5 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -162,18 +162,10 @@ "Copy selected language?" "Kopirovat vybrany jazyk?" -#MSG_CRASHDETECT_ON -"Crash det. [on]" -"Crash det. [zap]" - -#MSG_CRASHDETECT_NA -"Crash det. [N/A]" +#MSG_CRASHDETECT +"Crash det." "\x00" -#MSG_CRASHDETECT_OFF -"Crash det. [off]" -"Crash det. [vyp]" - #MSG_CRASH_DETECTED c=20 r=1 "Crash detected." "Detekovan naraz." diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 68859bd8b..43fc9fb93 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -162,17 +162,9 @@ "Copy selected language?" "Gewaehlte Sprache kopieren?" -#MSG_CRASHDETECT_ON -"Crash det. [on]" -"Crash Erk. [an]" - -#MSG_CRASHDETECT_NA -"Crash det. [N/A]" -"Crash Erk. [nv]" - -#MSG_CRASHDETECT_OFF -"Crash det. [off]" -"Crash Erk. [aus]" +#MSG_CRASHDETECT +"Crash det." +"Crash Erk." #MSG_CRASH_DETECTED c=20 r=1 "Crash detected." diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index b33a5e083..efd92b123 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -162,17 +162,9 @@ "Copy selected language?" "Copiar idioma seleccionado?" -#MSG_CRASHDETECT_ON -"Crash det. [on]" -"Det. choque [act]" - -#MSG_CRASHDETECT_NA -"Crash det. [N/A]" -"Dec. choque [N/D]" - -#MSG_CRASHDETECT_OFF -"Crash det. [off]" -"Det. choque [ina]" +#MSG_CRASHDETECT +"Crash det." +"Det. choque" #MSG_CRASH_DETECTED c=20 r=1 "Crash detected." diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index 512a52555..d2d03346f 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -162,17 +162,9 @@ "Copy selected language?" "Copier la langue selectionne ?" -#MSG_CRASHDETECT_ON -"Crash det. [on]" -"Detect. crash[on]" - -#MSG_CRASHDETECT_NA -"Crash det. [N/A]" -"Detect. crash [N/A]" - -#MSG_CRASHDETECT_OFF -"Crash det. [off]" -"Detect. crash[off]" +#MSG_CRASHDETECT +"Crash det." +"Detect. crash" #MSG_CRASH_DETECTED c=20 r=1 "Crash detected." diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 839cbec76..b99eb148c 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -162,17 +162,9 @@ "Copy selected language?" "Copiare la lingua selezionata?" -#MSG_CRASHDETECT_ON -"Crash det. [on]" -"Rilevam.imp. [on]" - -#MSG_CRASHDETECT_NA -"Crash det. [N/A]" -"Rilevam.imp.[N/A]" - -#MSG_CRASHDETECT_OFF -"Crash det. [off]" -"Rilevam.imp.[off]" +#MSG_CRASHDETECT +"Crash det." +"Rilevam.imp." #MSG_CRASH_DETECTED c=20 r=1 "Crash detected." diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 09d393b7c..cf9a0c71e 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -163,16 +163,8 @@ "Skopiowac wybrany jezyk?" #MSG_CRASHDETECT_ON -"Crash det. [on]" -"Wykr.zderzen [wl]" - -#MSG_CRASHDETECT_NA -"Crash det. [N/A]" -"Wykr.zderzen[n/d]" - -#MSG_CRASHDETECT_OFF -"Crash det. [off]" -"Wykr.zderzen[wyl]" +"Crash det." +"Wykr.zderzen" #MSG_CRASH_DETECTED c=20 r=1 "Crash detected." From 8df6691819581dd6e35c42e6810569040d6b3487 Mon Sep 17 00:00:00 2001 From: vintagepc Date: Thu, 29 Aug 2019 18:07:24 -0400 Subject: [PATCH 081/271] Relocate sheet menu, show sheet on info screen -Sheet is shown instead of percentage done either if idle, or during print preheat. -Relocated sheet menu to below SD menu for additional visibility to current sheet. --- Firmware/ultralcd.cpp | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index e601fd755..5591586b2 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -598,11 +598,21 @@ void lcdui_print_feedrate(void) // Print percent done in form "USB---%", " SD---%", " ---%" (7 chars total) void lcdui_print_percent_done(void) { + char sheet[8]; const char* src = is_usb_printing?_N("USB"):(IS_SD_PRINTING?_N(" SD"):_N(" ")); char per[4]; bool num = IS_SD_PRINTING || (PRINTER_ACTIVE && (print_percent_done_normal != PRINT_PERCENT_DONE_INIT)); - sprintf_P(per, num?_N("%3hhd"):_N("---"), calc_percent_done()); - lcd_printf_P(_N("%3S%3s%%"), src, per); + if (!num || heating_status) // either not printing or heating + { + eeprom_read_block(sheet, EEPROM_Sheets_base->s[selected_sheet].name, 7); + sheet[7] = '\0'; + lcd_printf_P(PSTR("%s"),sheet); + } + else + { + sprintf_P(per, num?_N("%3hhd"):_N("---"), calc_percent_done()); + lcd_printf_P(_N("%3S%3s%%"), src, per); + } } // Print extruder status (5 chars total) @@ -6714,6 +6724,14 @@ static void lcd_main_menu() } #endif + if(!isPrintPaused && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal)) + { + if (!farm_mode) + { + MENU_ITEM_SUBMENU_SELECT_SHEET_E(EEPROM_Sheets_base->s[eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet))], change_sheet_from_menu); + } + } + if (IS_SD_PRINTING || is_usb_printing || (lcd_commands_type == LcdCommands::Layer1Cal)) { @@ -6759,14 +6777,6 @@ static void lcd_main_menu() } - if(!isPrintPaused && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal)) - { - if (!farm_mode) - { - MENU_ITEM_SUBMENU_SELECT_SHEET_E(EEPROM_Sheets_base->s[eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet))], change_sheet_from_menu); - } - } - if (!is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal)) { MENU_ITEM_SUBMENU_P(_i("Statistics "), lcd_menu_statistics);////MSG_STATISTICS From b86a92a7d6c7ee096d32dca562f0eaf4c46d714d Mon Sep 17 00:00:00 2001 From: leptun Date: Fri, 30 Aug 2019 07:59:58 +0300 Subject: [PATCH 082/271] Toggle Mode (stepper power) --- Firmware/messages.c | 11 ++++++----- Firmware/messages.h | 11 ++++++----- Firmware/ultralcd.cpp | 24 ++++++++++++------------ lang/lang_en.txt | 23 +++++++++++++---------- lang/lang_en_cz.txt | 34 +++++++++++++++++++--------------- lang/lang_en_de.txt | 34 +++++++++++++++++++--------------- lang/lang_en_es.txt | 34 +++++++++++++++++++--------------- lang/lang_en_fr.txt | 32 ++++++++++++++++++-------------- lang/lang_en_it.txt | 34 +++++++++++++++++++--------------- lang/lang_en_pl.txt | 34 +++++++++++++++++++--------------- 10 files changed, 150 insertions(+), 121 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index 085cf2e9e..111ec0b44 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -9,7 +9,6 @@ //internationalized messages const char MSG_AUTO_HOME[] PROGMEM_I1 = ISTR("Auto home"); //// -const char MSG_AUTO_MODE_ON[] PROGMEM_I1 = ISTR("Mode [auto power]"); //// const char MSG_BABYSTEP_Z[] PROGMEM_I1 = ISTR("Live adjust Z"); //// c=18 const char MSG_BABYSTEP_Z_NOT_SET[] PROGMEM_I1 = ISTR("Distance between tip of the nozzle and the bed surface has not been set yet. Please follow the manual, chapter First steps, section First layer calibration."); ////c=20 r=12 const char MSG_BED[] PROGMEM_I1 = ISTR("Bed"); //// @@ -82,10 +81,12 @@ const char MSG_SELFTEST_FILAMENT_SENSOR[] PROGMEM_I1 = ISTR("Filament sensor"); const char MSG_SELFTEST_WIRINGERROR[] PROGMEM_I1 = ISTR("Wiring error"); //// const char MSG_SETTINGS[] PROGMEM_I1 = ISTR("Settings"); //// const char MSG_HW_SETUP[] PROGMEM_I1 = ISTR("HW Setup"); //// -const char MSG_SILENT_MODE_OFF[] PROGMEM_I1 = ISTR("Mode [high power]"); //// -const char MSG_SILENT_MODE_ON[] PROGMEM_I1 = ISTR("Mode [silent]"); //// -const char MSG_STEALTH_MODE_OFF[] PROGMEM_I1 = ISTR("Mode [Normal]"); //// -const char MSG_STEALTH_MODE_ON[] PROGMEM_I1 = ISTR("Mode [Stealth]"); //// +const char MSG_MODE[] PROGMEM_I1 = ISTR("Mode"); //// +const char MSG_HIGH_POWER[] PROGMEM_I1 = ISTR("High power"); //// +const char MSG_AUTO_POWER[] PROGMEM_I1 = ISTR("Auto power"); //// +const char MSG_SILENT[] PROGMEM_I1 = ISTR("Silent"); //// +const char MSG_NORMAL[] PROGMEM_I1 = ISTR("Normal"); //// +const char MSG_STEALTH[] PROGMEM_I1 = ISTR("Stealth"); //// const char MSG_STEEL_SHEET_CHECK[] PROGMEM_I1 = ISTR("Is steel sheet on heatbed?"); ////c=20 r=2 const char MSG_STOP_PRINT[] PROGMEM_I1 = ISTR("Stop print"); //// const char MSG_STOPPED[] PROGMEM_I1 = ISTR("STOPPED. "); //// diff --git a/Firmware/messages.h b/Firmware/messages.h index 334d21162..b11517177 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -10,7 +10,6 @@ extern "C" { // LCD Menu Messages //internationalized messages extern const char MSG_AUTO_HOME[]; -extern const char MSG_AUTO_MODE_ON[]; extern const char MSG_BABYSTEP_Z[]; extern const char MSG_BABYSTEP_Z_NOT_SET[]; extern const char MSG_BED[]; @@ -82,10 +81,12 @@ extern const char MSG_SELFTEST_FILAMENT_SENSOR[]; extern const char MSG_SELFTEST_WIRINGERROR[]; extern const char MSG_SETTINGS[]; extern const char MSG_HW_SETUP[]; -extern const char MSG_SILENT_MODE_OFF[]; -extern const char MSG_SILENT_MODE_ON[]; -extern const char MSG_STEALTH_MODE_OFF[]; -extern const char MSG_STEALTH_MODE_ON[]; +extern const char MSG_MODE[]; +extern const char MSG_HIGH_POWER[]; +extern const char MSG_AUTO_POWER[]; +extern const char MSG_SILENT[]; +extern const char MSG_NORMAL[]; +extern const char MSG_STEALTH[]; extern const char MSG_STEEL_SHEET_CHECK[]; extern const char MSG_STOP_PRINT[]; extern const char MSG_STOPPED[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index d0f0da91f..f690ea288 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5172,9 +5172,9 @@ do\ {\ if (SilentModeMenu == SILENT_MODE_NORMAL)\ {\ - MENU_ITEM_FUNCTION_P(_T(MSG_STEALTH_MODE_OFF), lcd_silent_mode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_NORMAL), lcd_silent_mode_set);\ }\ - else MENU_ITEM_FUNCTION_P(_T(MSG_STEALTH_MODE_ON), lcd_silent_mode_set);\ + else MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_STEALTH), lcd_silent_mode_set);\ if (SilentModeMenu == SILENT_MODE_NORMAL)\ {\ if (lcd_crash_detect_enabled()) MENU_ITEM_TOGGLE_P(_T(MSG_CRASHDETECT), _T(MSG_ON), crash_mode_switch);\ @@ -5194,16 +5194,16 @@ do\ switch (SilentModeMenu)\ {\ case SILENT_MODE_POWER:\ - MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_OFF), lcd_silent_mode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_HIGH_POWER), lcd_silent_mode_set);\ break;\ case SILENT_MODE_SILENT:\ - MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_ON), lcd_silent_mode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_SILENT), lcd_silent_mode_set);\ break;\ case SILENT_MODE_AUTO:\ - MENU_ITEM_FUNCTION_P(_T(MSG_AUTO_MODE_ON), lcd_silent_mode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_AUTO_POWER), lcd_silent_mode_set);\ break;\ default:\ - MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_OFF), lcd_silent_mode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_HIGH_POWER), lcd_silent_mode_set);\ break; /* (probably) not needed*/\ }\ }\ @@ -6887,8 +6887,8 @@ static void lcd_tune_menu() #ifdef TMC2130 if(!farm_mode) { - if (SilentModeMenu == SILENT_MODE_NORMAL) MENU_ITEM_FUNCTION_P(_T(MSG_STEALTH_MODE_OFF), lcd_silent_mode_set); - else MENU_ITEM_FUNCTION_P(_T(MSG_STEALTH_MODE_ON), lcd_silent_mode_set); + if (SilentModeMenu == SILENT_MODE_NORMAL) MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_NORMAL), lcd_silent_mode_set); + else MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_STEALTH), lcd_silent_mode_set); if (SilentModeMenu == SILENT_MODE_NORMAL) { @@ -6900,10 +6900,10 @@ static void lcd_tune_menu() #else //TMC2130 if (!farm_mode) { //dont show in menu if we are in farm mode switch (SilentModeMenu) { - case SILENT_MODE_POWER: MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_OFF), lcd_silent_mode_set); break; - case SILENT_MODE_SILENT: MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_ON), lcd_silent_mode_set); break; - case SILENT_MODE_AUTO: MENU_ITEM_FUNCTION_P(_T(MSG_AUTO_MODE_ON), lcd_silent_mode_set); break; - default: MENU_ITEM_FUNCTION_P(_T(MSG_SILENT_MODE_OFF), lcd_silent_mode_set); break; // (probably) not needed + case SILENT_MODE_POWER: MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_HIGH_POWER), lcd_silent_mode_set); break; + case SILENT_MODE_SILENT: MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_SILENT), lcd_silent_mode_set); break; + case SILENT_MODE_AUTO: MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_AUTO_POWER), lcd_silent_mode_set); break; + default: MENU_ITEM_TOGGLE_P(_T(MSG_MODE), _T(MSG_HIGH_POWER), lcd_silent_mode_set); break; // (probably) not needed } } #endif //TMC2130 diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 29f7c2130..344cccb88 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -412,11 +412,14 @@ #MSG_MMU_OK_RESUMING c=20 r=4 "MMU OK. Resuming..." -#MSG_STEALTH_MODE_OFF -"Mode [Normal]" +#MSG_MODE +"Mode" -#MSG_SILENT_MODE_ON -"Mode [silent]" +#MSG_NORMAL +"Normal" + +#MSG_SILENT +"Silent" # "MMU needs user attention." @@ -424,14 +427,14 @@ # "MMU power fails" -#MSG_STEALTH_MODE_ON -"Mode [Stealth]" +#MSG_STEALTH +"Stealth" -#MSG_AUTO_MODE_ON -"Mode [auto power]" +#MSG_AUTO_POWER +"Auto power" -#MSG_SILENT_MODE_OFF -"Mode [high power]" +#MSG_HIGH_POWER +"High power" # "MMU2 connected" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 91144ece5..0f1ce9f6e 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -550,13 +550,17 @@ "MMU OK. Resuming..." "MMU OK. Pokracuji..." -#MSG_STEALTH_MODE_OFF -"Mode [Normal]" -"Mod [Normal]" +#MSG_MODE +"Mode" +"Mod" -#MSG_SILENT_MODE_ON -"Mode [silent]" -"Mod [tichy]" +#MSG_NORMAL +"Normal" +"\x00" + +#MSG_SILENT +"Silent" +"Tichy" # "MMU needs user attention." @@ -566,17 +570,17 @@ "MMU power fails" "MMU vypadky proudu" -#MSG_STEALTH_MODE_ON -"Mode [Stealth]" -"Mod [tichy]" +#MSG_STEALTH +"Stealth" +"Tichy" -#MSG_AUTO_MODE_ON -"Mode [auto power]" -"Mod [automaticky]" +#MSG_AUTO_POWER +"Auto power" +"Automaticky" -#MSG_SILENT_MODE_OFF -"Mode [high power]" -"Mod [vys. vykon]" +#MSG_HIGH_POWER +"High power" +"Vys. vykon" # "MMU2 connected" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 43fc9fb93..8e059a3b7 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -550,13 +550,17 @@ "MMU OK. Resuming..." "MMU OK. Weiterdrucken..." -#MSG_STEALTH_MODE_OFF -"Mode [Normal]" -"Modus [Normal]" +#MSG_MODE +"Mode" +"Modus" -#MSG_SILENT_MODE_ON -"Mode [silent]" -"Modus [leise]" +#MSG_NORMAL +"Normal" +"\x00" + +#MSG_SILENT +"Silent" +"Leise" # "MMU needs user attention." @@ -566,17 +570,17 @@ "MMU power fails" "MMU Netzfehler" -#MSG_STEALTH_MODE_ON -"Mode [Stealth]" -"Modus [Stealth]" +#MSG_STEALTH +"Stealth" +"\x00" -#MSG_AUTO_MODE_ON -"Mode [auto power]" -"Modus[Auto Power]" +#MSG_AUTO_POWER +"Auto power" +"\x00" -#MSG_SILENT_MODE_OFF -"Mode [high power]" -"Modus[Hohe Leist]" +#MSG_HIGH_POWER +"High power" +"Hohe leist" # "MMU2 connected" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index efd92b123..c74c1557d 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -550,13 +550,17 @@ "MMU OK. Resuming..." "MMU OK. Resumiendo..." -#MSG_STEALTH_MODE_OFF -"Mode [Normal]" -"Modo [Normal]" +#MSG_MODE +"Mode" +"Modo" -#MSG_SILENT_MODE_ON -"Mode [silent]" -"Modo [silencio]" +#MSG_NORMAL +"Normal" +"\x00" + +#MSG_SILENT +"Silent" +"Silencio" # "MMU needs user attention." @@ -566,17 +570,17 @@ "MMU power fails" "Fallo de energia en MMU" -#MSG_STEALTH_MODE_ON -"Mode [Stealth]" -"Modo [Silencio]" +#MSG_STEALTH +"Stealth" +"Silencio" -#MSG_AUTO_MODE_ON -"Mode [auto power]" -"Modo[fuerza auto]" +#MSG_AUTO_POWER +"Auto power" +"Fuerza auto" -#MSG_SILENT_MODE_OFF -"Mode [high power]" -"Modo [rend.pleno]" +#MSG_HIGH_POWER +"High power" +"Rend.pleno" # "MMU2 connected" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index d2d03346f..b21b638a3 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -550,13 +550,17 @@ "MMU OK. Resuming..." "MMU OK. Reprise ..." -#MSG_STEALTH_MODE_OFF -"Mode [Normal]" +#MSG_MODE +"Mode" "\x00" -#MSG_SILENT_MODE_ON -"Mode [silent]" -"Mode [silencieux]" +#MSG_NORMAL +"Normal" +"\x00" + +#MSG_SILENT +"Silent" +"Silencieux" # "MMU needs user attention." @@ -566,17 +570,17 @@ "MMU power fails" "Echecs alim. MMU" -#MSG_STEALTH_MODE_ON -"Mode [Stealth]" -"Mode [Furtif]" +#MSG_STEALTH +"Stealth" +"Furtif" -#MSG_AUTO_MODE_ON -"Mode [auto power]" -"Mode [puiss.auto]" +#MSG_AUTO_POWER +"Auto power" +"Puiss.auto" -#MSG_SILENT_MODE_OFF -"Mode [high power]" -"Mode [haute puiss]" +#MSG_HIGH_POWER +"High power" +"Haute puiss" # "MMU2 connected" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index b99eb148c..f2873971e 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -550,13 +550,17 @@ "MMU OK. Resuming..." "MMU OK. Riprendendo... " -#MSG_STEALTH_MODE_OFF -"Mode [Normal]" -"Modo [normale]" +#MSG_MODE +"Mode" +"Modo" -#MSG_SILENT_MODE_ON -"Mode [silent]" -"Modo [silenzioso]" +#MSG_NORMAL +"Normal" +"Normale" + +#MSG_SILENT +"Silent" +"Silenzioso" # "MMU needs user attention." @@ -566,17 +570,17 @@ "MMU power fails" "Mancanza corrente MMU" -#MSG_STEALTH_MODE_ON -"Mode [Stealth]" -"Modo [Silenziosa]" +#MSG_STEALTH +"Stealth" +"Silenziosa" -#MSG_AUTO_MODE_ON -"Mode [auto power]" -"Modo [auto]" +#MSG_AUTO_POWER +"Auto power" +"Auto" -#MSG_SILENT_MODE_OFF -"Mode [high power]" -"Mode [forte]" +#MSG_HIGH_POWER +"High power" +"Forte" # "MMU2 connected" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index cf9a0c71e..c523c064b 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -550,13 +550,17 @@ "MMU OK. Resuming..." "MMU OK. Wznawianie..." -#MSG_STEALTH_MODE_OFF -"Mode [Normal]" -"Tryb [normalny]" +#MSG_MODE +"Mode" +"Tryb" -#MSG_SILENT_MODE_ON -"Mode [silent]" -"Tryb [cichy]" +#MSG_NORMAL +"Normal" +"Normalny" + +#MSG_SILENT +"Silent" +"Cichy" # "MMU needs user attention." @@ -566,17 +570,17 @@ "MMU power fails" "Zaniki zasil. MMU" -#MSG_STEALTH_MODE_ON -"Mode [Stealth]" -"Tryb [Stealth]" +#MSG_STEALTH +"Stealth" +"\x00" -#MSG_AUTO_MODE_ON -"Mode [auto power]" -"Tryb [automatycz]" +#MSG_AUTO_POWER +"Auto power" +"Automatycz" -#MSG_SILENT_MODE_OFF -"Mode [high power]" -"Tryb[wysoka wyd.]" +#MSG_HIGH_POWER +"High power" +"Wysoka wyd." # "MMU2 connected" From 6a8330a43b364ac9b7410adf4157d5fe788890cb Mon Sep 17 00:00:00 2001 From: leptun Date: Fri, 30 Aug 2019 17:36:21 +0300 Subject: [PATCH 083/271] Toggle "HW Setup"* All toggles from "HW Setup" were changed. This includes: -"Nozzle d." -all "Checks" Also added an option to provide a string from sram (not from progmem) as the toggle argument. This can be useful when toggling numbers or even when toggling sheets in the future. --- Firmware/menu.cpp | 10 ++++---- Firmware/menu.h | 5 ++-- Firmware/messages.c | 7 ++++++ Firmware/messages.h | 7 ++++++ Firmware/ultralcd.cpp | 55 ++++++++++++++++++++----------------------- 5 files changed, 48 insertions(+), 36 deletions(-) diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index 7dd791b8f..33f9b7482 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -184,11 +184,11 @@ static void menu_draw_item_puts_P(char type_char, const char* str) lcd_printf_P(PSTR("%c%-18.18S%c"), menu_selection_mark(), str, type_char); } -static void menu_draw_toggle_puts_P(const char* str, const char* toggle) +static void menu_draw_toggle_puts_P(const char* str, const char* toggle, const bool fromProgmem) { menu_draw_item_puts_P((toggle == NULL)?LCD_STR_ARROW_RIGHT[0]:LCD_STR_REFRESH[0], str); - lcd_set_cursor(LCD_WIDTH - 3 - strlen_P((toggle == NULL)?_T(MSG_NA):toggle), menu_row); - lcd_printf_P(PSTR("[%S]"), (toggle == NULL)?_T(MSG_NA):toggle); + lcd_set_cursor(LCD_WIDTH - 3 - (fromProgmem?(strlen_P((toggle == NULL)?_T(MSG_NA):toggle)):(strlen(toggle))), menu_row); + lcd_printf_P(fromProgmem?PSTR("[%S]"):PSTR("[%s]"), (toggle == NULL)?_T(MSG_NA):toggle); } //! @brief Format sheet name @@ -374,11 +374,11 @@ uint8_t menu_item_function_P(const char* str, char number, void (*func)(uint8_t) return 0; } -uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func) +uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func, const bool fromProgmem) { if (menu_item == menu_line) { - if (lcd_draw_update) menu_draw_toggle_puts_P(str, toggle); + if (lcd_draw_update) menu_draw_toggle_puts_P(str, toggle, fromProgmem); if (menu_clicked && (lcd_encoder == menu_item)) { if (toggle == NULL) // print N/A warning message diff --git a/Firmware/menu.h b/Firmware/menu.h index d7676661c..d447581fd 100755 --- a/Firmware/menu.h +++ b/Firmware/menu.h @@ -118,8 +118,9 @@ extern uint8_t menu_item_function_P(const char* str, menu_func_t func); #define MENU_ITEM_FUNCTION_NR_P(str, number, func, fn_par) do { if (menu_item_function_P(str, number, func, fn_par)) return; } while (0) extern uint8_t menu_item_function_P(const char* str, char number, void (*func)(uint8_t), uint8_t fn_par); -#define MENU_ITEM_TOGGLE_P(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func)) return; } while (0) -extern uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func); +#define MENU_ITEM_TOGGLE_P(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func, true)) return; } while (0) +#define MENU_ITEM_TOGGLE(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func, false)) return; } while (0) +extern uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func, const bool fromProgmem); #define MENU_ITEM_GCODE_P(str, str_gcode) do { if (menu_item_gcode_P(str, str_gcode)) return; } while (0) extern uint8_t menu_item_gcode_P(const char* str, const char* str_gcode); diff --git a/Firmware/messages.c b/Firmware/messages.c index 111ec0b44..d5c504d72 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -107,6 +107,13 @@ const char MSG_ON[] PROGMEM_I1 = ISTR("On"); //// const char MSG_NA[] PROGMEM_I1 = ISTR("N/A"); //// const char MSG_AUTO_DEPLETE[] PROGMEM_I1 = ISTR("SpoolJoin"); //// const char MSG_CUTTER[] PROGMEM_I1 = ISTR("Cutter"); //// +const char MSG_NONE[] PROGMEM_I1 = ISTR("None"); //// +const char MSG_WARN[] PROGMEM_I1 = ISTR("Warn"); //// +const char MSG_STRICT[] PROGMEM_I1 = ISTR("Strict"); //// +const char MSG_MODEL[] PROGMEM_I1 = ISTR("Model"); //// +const char MSG_FIRMWARE[] PROGMEM_I1 = ISTR("Firmware"); //// +const char MSG_GCODE[] PROGMEM_I1 = ISTR("Gcode"); //// +const char MSG_NOZZLE_DIAMETER[] PROGMEM_I1 = ISTR("Nozzle d."); //// //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index b11517177..9c9a99ea9 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -107,6 +107,13 @@ extern const char MSG_ON[]; extern const char MSG_NA[]; extern const char MSG_AUTO_DEPLETE[]; extern const char MSG_CUTTER[]; +extern const char MSG_NONE[]; +extern const char MSG_WARN[]; +extern const char MSG_STRICT[]; +extern const char MSG_MODEL[]; +extern const char MSG_FIRMWARE[]; +extern const char MSG_GCODE[]; +extern const char MSG_NOZZLE_DIAMETER[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index f690ea288..f4f3cceb6 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5332,16 +5332,16 @@ do\ switch(oCheckMode)\ {\ case ClCheckMode::_None:\ - MENU_ITEM_FUNCTION_P(_i("Nozzle [none]"),lcd_check_mode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_NONE), lcd_check_mode_set);\ break;\ case ClCheckMode::_Warn:\ - MENU_ITEM_FUNCTION_P(_i("Nozzle [warn]"),lcd_check_mode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_WARN), lcd_check_mode_set);\ break;\ case ClCheckMode::_Strict:\ - MENU_ITEM_FUNCTION_P(_i("Nozzle [strict]"),lcd_check_mode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_STRICT), lcd_check_mode_set);\ break;\ default:\ - MENU_ITEM_FUNCTION_P(_i("Nozzle [none]"),lcd_check_mode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_NONE), lcd_check_mode_set);\ }\ }\ while (0) @@ -5375,20 +5375,17 @@ eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,nDiameter); #define SETTINGS_NOZZLE \ do\ {\ + char sNozzleDiam[5];/*enough for two decimals*/\ + float fNozzleDiam;\ switch(oNozzleDiameter)\ - {\ - case ClNozzleDiameter::_Diameter_250:\ - MENU_ITEM_FUNCTION_P(_i("Nozzle d. [0.25]"),lcd_nozzle_diameter_set);\ - break;\ - case ClNozzleDiameter::_Diameter_400:\ - MENU_ITEM_FUNCTION_P(_i("Nozzle d. [0.40]"),lcd_nozzle_diameter_set);\ - break;\ - case ClNozzleDiameter::_Diameter_600:\ - MENU_ITEM_FUNCTION_P(_i("Nozzle d. [0.60]"),lcd_nozzle_diameter_set);\ - break;\ - default:\ - MENU_ITEM_FUNCTION_P(_i("Nozzle d. [0.40]"),lcd_nozzle_diameter_set);\ - }\ + {\ + case ClNozzleDiameter::_Diameter_250: fNozzleDiam = 0.25f; break;\ + case ClNozzleDiameter::_Diameter_400: fNozzleDiam = 0.4f; break;\ + case ClNozzleDiameter::_Diameter_600: fNozzleDiam = 0.6f; break;\ + default: fNozzleDiam = 0.4f; break;\ + }\ + sprintf_P(sNozzleDiam, PSTR("%.2f"), fNozzleDiam);\ + MENU_ITEM_TOGGLE(_T(MSG_NOZZLE_DIAMETER), sNozzleDiam, lcd_nozzle_diameter_set);\ }\ while (0) @@ -5417,16 +5414,16 @@ do\ switch(oCheckModel)\ {\ case ClCheckModel::_None:\ - MENU_ITEM_FUNCTION_P(_i("Model [none]"),lcd_check_model_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_NONE), lcd_check_model_set);\ break;\ case ClCheckModel::_Warn:\ - MENU_ITEM_FUNCTION_P(_i("Model [warn]"),lcd_check_model_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_WARN), lcd_check_model_set);\ break;\ case ClCheckModel::_Strict:\ - MENU_ITEM_FUNCTION_P(_i("Model [strict]"),lcd_check_model_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_STRICT), lcd_check_model_set);\ break;\ default:\ - MENU_ITEM_FUNCTION_P(_i("Model [none]"),lcd_check_model_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_NONE), lcd_check_model_set);\ }\ }\ while (0) @@ -5456,16 +5453,16 @@ do\ switch(oCheckVersion)\ {\ case ClCheckVersion::_None:\ - MENU_ITEM_FUNCTION_P(_i("Firmware [none]"),lcd_check_version_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_FIRMWARE), _T(MSG_NONE), lcd_check_version_set);\ break;\ case ClCheckVersion::_Warn:\ - MENU_ITEM_FUNCTION_P(_i("Firmware [warn]"),lcd_check_version_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_FIRMWARE), _T(MSG_WARN), lcd_check_version_set);\ break;\ case ClCheckVersion::_Strict:\ - MENU_ITEM_FUNCTION_P(_i("Firmware [strict]"),lcd_check_version_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_FIRMWARE), _T(MSG_STRICT), lcd_check_version_set);\ break;\ default:\ - MENU_ITEM_FUNCTION_P(_i("Firmware [none]"),lcd_check_version_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_FIRMWARE), _T(MSG_NONE), lcd_check_version_set);\ }\ }\ while (0) @@ -5495,16 +5492,16 @@ do\ switch(oCheckGcode)\ {\ case ClCheckGcode::_None:\ - MENU_ITEM_FUNCTION_P(_i("Gcode [none]"),lcd_check_gcode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_GCODE), _T(MSG_NONE), lcd_check_gcode_set);\ break;\ case ClCheckGcode::_Warn:\ - MENU_ITEM_FUNCTION_P(_i("Gcode [warn]"),lcd_check_gcode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_GCODE), _T(MSG_WARN), lcd_check_gcode_set);\ break;\ case ClCheckGcode::_Strict:\ - MENU_ITEM_FUNCTION_P(_i("Gcode [strict]"),lcd_check_gcode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_GCODE), _T(MSG_STRICT), lcd_check_gcode_set);\ break;\ default:\ - MENU_ITEM_FUNCTION_P(_i("Gcode [none]"),lcd_check_gcode_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_GCODE), _T(MSG_NONE), lcd_check_gcode_set);\ }\ }\ while (0) From 871e29621f90e1e05031b45793ac813cb14dfec7 Mon Sep 17 00:00:00 2001 From: vintagepc Date: Fri, 30 Aug 2019 19:14:22 -0400 Subject: [PATCH 084/271] Fix "stuck" rename cursor --- Firmware/ultralcd.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5591586b2..4af82c2d5 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6580,6 +6580,15 @@ static void lcd_rename_sheet_menu() lcd_putc(menuData->name[i]); } lcd_set_cursor(menuData->selected, 1); + if (menuData->selected>0) + { + lcd_set_cursor(menuData->selected-1, 1); + lcd_putc(' '); + } + else + { + lcd_set_cursor(menuData->selected, 1); + } lcd_putc('^'); if (lcd_clicked()) { From a821002f02d727907e10898477fca1bba6ac8546 Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 31 Aug 2019 07:38:40 +0300 Subject: [PATCH 085/271] Toggle MMU Mode --- Firmware/messages.c | 1 + Firmware/messages.h | 1 + Firmware/ultralcd.cpp | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index d5c504d72..7fc598cd7 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -114,6 +114,7 @@ const char MSG_MODEL[] PROGMEM_I1 = ISTR("Model"); //// const char MSG_FIRMWARE[] PROGMEM_I1 = ISTR("Firmware"); //// const char MSG_GCODE[] PROGMEM_I1 = ISTR("Gcode"); //// const char MSG_NOZZLE_DIAMETER[] PROGMEM_I1 = ISTR("Nozzle d."); //// +const char MSG_MMU_MODE[] PROGMEM_I1 = ISTR("MMU Mode"); //// //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index 9c9a99ea9..e7cebf806 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -114,6 +114,7 @@ extern const char MSG_MODEL[]; extern const char MSG_FIRMWARE[]; extern const char MSG_GCODE[]; extern const char MSG_NOZZLE_DIAMETER[]; +extern const char MSG_MMU_MODE[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index f4f3cceb6..8933f701c 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5217,8 +5217,8 @@ do\ {\ if (mmu_enabled)\ {\ - if (SilentModeMenu_MMU == 0) MENU_ITEM_FUNCTION_P(_i("MMU Mode [Normal]"), lcd_silent_mode_mmu_set); \ - else MENU_ITEM_FUNCTION_P(_i("MMU Mode[Stealth]"), lcd_silent_mode_mmu_set); \ + if (SilentModeMenu_MMU == 0) MENU_ITEM_TOGGLE_P(_T(MSG_MMU_MODE), _T(MSG_NORMAL), lcd_silent_mode_mmu_set);\ + else MENU_ITEM_TOGGLE_P(_T(MSG_MMU_MODE), _T(MSG_STEALTH), lcd_silent_mode_mmu_set);\ }\ }\ while (0) From f69035323a78c3d2f7f97fcc830ba3990ddec1e2 Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 31 Aug 2019 14:55:51 +0300 Subject: [PATCH 086/271] Toggle SD Settings This includes FlashAir support and SD Sorting type --- Firmware/messages.c | 5 +++++ Firmware/messages.h | 5 +++++ Firmware/ultralcd.cpp | 14 +++++++------- lang/lang_en.txt | 23 +++++++++++++---------- lang/lang_en_cz.txt | 32 ++++++++++++++++++-------------- lang/lang_en_de.txt | 34 +++++++++++++++++++--------------- lang/lang_en_es.txt | 34 +++++++++++++++++++--------------- lang/lang_en_fr.txt | 34 +++++++++++++++++++--------------- lang/lang_en_it.txt | 34 +++++++++++++++++++--------------- lang/lang_en_pl.txt | 34 +++++++++++++++++++--------------- 10 files changed, 143 insertions(+), 106 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index 7fc598cd7..d55027b30 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -115,6 +115,11 @@ const char MSG_FIRMWARE[] PROGMEM_I1 = ISTR("Firmware"); //// const char MSG_GCODE[] PROGMEM_I1 = ISTR("Gcode"); //// const char MSG_NOZZLE_DIAMETER[] PROGMEM_I1 = ISTR("Nozzle d."); //// const char MSG_MMU_MODE[] PROGMEM_I1 = ISTR("MMU Mode"); //// +const char MSG_SD_CARD[] PROGMEM_I1 = ISTR("SD card"); //// +const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY[] PROGMEM_I1 = ISTR("FlashAir"); //// +const char MSG_SORT[] PROGMEM_I1 = ISTR("Sort"); //// +const char MSG_SORT_TIME[] PROGMEM_I1 = ISTR("Time"); //// +const char MSG_SORT_ALPHA[] PROGMEM_I1 = ISTR("Alphabet"); //// //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index e7cebf806..ed8d5d541 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -115,6 +115,11 @@ extern const char MSG_FIRMWARE[]; extern const char MSG_GCODE[]; extern const char MSG_NOZZLE_DIAMETER[]; extern const char MSG_MMU_MODE[]; +extern const char MSG_SD_CARD[]; +extern const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY[]; +extern const char MSG_SORT[]; +extern const char MSG_SORT_TIME[]; +extern const char MSG_SORT_ALPHA[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 8933f701c..95290d8b7 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5231,9 +5231,9 @@ while (0) do\ {\ if (card.ToshibaFlashAir_isEnabled())\ - MENU_ITEM_FUNCTION_P(_i("SD card [flshAir]"), lcd_toshiba_flash_air_compatibility_toggle);/*////MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1*/\ + MENU_ITEM_TOGGLE_P(_T(MSG_SD_CARD), _T(MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY), lcd_toshiba_flash_air_compatibility_toggle);\ else\ - MENU_ITEM_FUNCTION_P(_i("SD card [normal]"), lcd_toshiba_flash_air_compatibility_toggle);/*////MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1*/\ + MENU_ITEM_TOGGLE_P(_T(MSG_SD_CARD), _T(MSG_NORMAL), lcd_toshiba_flash_air_compatibility_toggle);\ \ if (!farm_mode)\ {\ @@ -5241,9 +5241,9 @@ do\ EEPROM_read(EEPROM_SD_SORT, (uint8_t*)&sdSort, sizeof(sdSort));\ switch (sdSort)\ {\ - case SD_SORT_TIME: MENU_ITEM_FUNCTION_P(_i("Sort [time]"), lcd_sort_type_set); break;/*////MSG_SORT_TIME c=17 r=1*/\ - case SD_SORT_ALPHA: MENU_ITEM_FUNCTION_P(_i("Sort [alphabet]"), lcd_sort_type_set); break;/*////MSG_SORT_ALPHA c=17 r=1*/\ - default: MENU_ITEM_FUNCTION_P(_i("Sort [none]"), lcd_sort_type_set);/*////MSG_SORT_NONE c=17 r=1*/\ + case SD_SORT_TIME: MENU_ITEM_TOGGLE_P(_T(MSG_SORT), _T(MSG_SORT_TIME), lcd_sort_type_set); break;\ + case SD_SORT_ALPHA: MENU_ITEM_TOGGLE_P(_T(MSG_SORT), _T(MSG_SORT_ALPHA), lcd_sort_type_set); break;\ + default: MENU_ITEM_TOGGLE_P(_T(MSG_SORT), _T(MSG_NONE), lcd_sort_type_set);\ }\ }\ }\ @@ -5253,9 +5253,9 @@ while (0) do\ {\ if (card.ToshibaFlashAir_isEnabled())\ - MENU_ITEM_FUNCTION_P(_i("SD card [flshAir]"), lcd_toshiba_flash_air_compatibility_toggle);/*////MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1*/\ + MENU_ITEM_TOGGLE_P(_T(MSG_SD_CARD), _T(MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY), lcd_toshiba_flash_air_compatibility_toggle);\ else\ - MENU_ITEM_FUNCTION_P(_i("SD card [normal]"), lcd_toshiba_flash_air_compatibility_toggle);/*////MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1*/\ + MENU_ITEM_TOGGLE_P(_T(MSG_SD_CARD), _T(MSG_NORMAL), lcd_toshiba_flash_air_compatibility_toggle);\ }\ while (0) #endif // SDCARD_SORT_ALPHA diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 344cccb88..d11fc47df 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -649,11 +649,11 @@ #MSG_WIZARD_RERUN c=20 r=7 "Running Wizard will delete current calibration results and start from the beginning. Continue?" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -"SD card [normal]" +#MSG_SD_CARD +"SD card" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -"SD card [flshAir]" +#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +"FlashAir" # "Right" @@ -703,17 +703,20 @@ #MSG_FILE_CNT c=20 r=4 "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." -#MSG_SORT_NONE c=17 r=1 -"Sort [none]" +#MSG_SORT +"Sort" -#MSG_SORT_TIME c=17 r=1 -"Sort [time]" +#MSG_NONE +"None" + +#MSG_SORT_TIME +"Time" # "Severe skew" -#MSG_SORT_ALPHA c=17 r=1 -"Sort [alphabet]" +#MSG_SORT_ALPHA +"Alphabet" #MSG_SORTING c=20 r=1 "Sorting files" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 0f1ce9f6e..e601fe622 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -866,13 +866,13 @@ "Running Wizard will delete current calibration results and start from the beginning. Continue?" "Spusteni Pruvodce vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -"SD card [normal]" +#MSG_SD_CARD +"SD card" "\x00" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -"SD card [flshAir]" -"SD card [FlshAir]" +#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +"FlashAir" +"\x00" # "Right" @@ -938,21 +938,25 @@ "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." "Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100." -#MSG_SORT_NONE c=17 r=1 -"Sort [none]" -"Trideni [Zadne]" +#MSG_SORT +"Sort" +"Trideni" -#MSG_SORT_TIME c=17 r=1 -"Sort [time]" -"Trideni [cas]" +#MSG_NONE +"None" +"Zadne" + +#MSG_SORT_TIME +"Time" +"Cas" # "Severe skew" "Tezke zkoseni" -#MSG_SORT_ALPHA c=17 r=1 -"Sort [alphabet]" -"Trideni [Abeceda]" +#MSG_SORT_ALPHA +"Alphabet" +"Abeceda" #MSG_SORTING c=20 r=1 "Sorting files" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 8e059a3b7..5a0ae6717 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -866,13 +866,13 @@ "Running Wizard will delete current calibration results and start from the beginning. Continue?" "Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -"SD card [normal]" -"SD Karte [normal]" +#MSG_SD_CARD +"SD card" +"SD Karte" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -"SD card [flshAir]" -"SD Karte[flshAir]" +#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +"FlashAir" +"\x00" # "Right" @@ -938,21 +938,25 @@ "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." "Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100." -#MSG_SORT_NONE c=17 r=1 -"Sort [none]" -"Sort. [Keine]" +#MSG_SORT +"Sort" +"Sort." -#MSG_SORT_TIME c=17 r=1 -"Sort [time]" -"Sort. [Zeit]" +#MSG_NONE +"None" +"Keine" + +#MSG_SORT_TIME +"Time" +"Zeit" # "Severe skew" "Schwerer Schraeglauf" -#MSG_SORT_ALPHA c=17 r=1 -"Sort [alphabet]" -"Sort. [Alphabet]" +#MSG_SORT_ALPHA +"Alphabet" +"\x00" #MSG_SORTING c=20 r=1 "Sorting files" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index c74c1557d..cb9bea163 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -866,13 +866,13 @@ "Running Wizard will delete current calibration results and start from the beginning. Continue?" "Ejecutar el Wizard borrara los valores de calibracion actuales y comenzara de nuevo. Continuar?" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -"SD card [normal]" -"Tarj. SD [normal]" +#MSG_SD_CARD +"SD card" +"Tarj. SD" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -"SD card [flshAir]" -"Tarj. SD[FlshAir]" +#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +"FlashAir" +"\x00" # "Right" @@ -938,21 +938,25 @@ "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. " -#MSG_SORT_NONE c=17 r=1 -"Sort [none]" -"Ordenar [nada]" +#MSG_SORT +"Sort" +"Ordenar" -#MSG_SORT_TIME c=17 r=1 -"Sort [time]" -"Ordenar [Fecha]" +#MSG_NONE +"None" +"Nada" + +#MSG_SORT_TIME +"Time" +"Fecha" # "Severe skew" "Inclinacion severa" -#MSG_SORT_ALPHA c=17 r=1 -"Sort [alphabet]" -"Ordenar [alfabet]" +#MSG_SORT_ALPHA +"Alphabet" +"Alfabet" #MSG_SORTING c=20 r=1 "Sorting files" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index b21b638a3..d4a21e7e2 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -866,13 +866,13 @@ "Running Wizard will delete current calibration results and start from the beginning. Continue?" "Lancer l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer ?" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -"SD card [normal]" -"Carte SD [normal]" +#MSG_SD_CARD +"SD card" +"Carte SD" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -"SD card [flshAir]" -"Carte SD [flashAir]" +#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +"FlashAir" +"\x00" # "Right" @@ -938,21 +938,25 @@ "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." "Certains fichiers ne seront pas tries. Max 100 fichiers tries par dossier." -#MSG_SORT_NONE c=17 r=1 -"Sort [none]" -"Tri : [aucun]" +#MSG_SORT +"Sort" +"Tri" -#MSG_SORT_TIME c=17 r=1 -"Sort [time]" -"Tri [heure]" +#MSG_NONE +"None" +"Aucun" + +#MSG_SORT_TIME +"Time" +"Heure" # "Severe skew" "Deviation severe" -#MSG_SORT_ALPHA c=17 r=1 -"Sort [alphabet]" -"Tri [alphabet]" +#MSG_SORT_ALPHA +"Alphabet" +"\x00" #MSG_SORTING c=20 r=1 "Sorting files" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index f2873971e..8ee3e2ddf 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -866,13 +866,13 @@ "Running Wizard will delete current calibration results and start from the beginning. Continue?" "Se avvi il Wizard perderai la calibrazione preesistente e dovrai ricominciare dall'inizio. Continuare?" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -"SD card [normal]" -"Mem. SD [normale]" +#MSG_SD_CARD +"SD card" +"Mem. SD" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -"SD card [flshAir]" -"Mem. SD [flshAir]" +#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +"FlashAir" +"\x00" # "Right" @@ -938,21 +938,25 @@ "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." "Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati." -#MSG_SORT_NONE c=17 r=1 -"Sort [none]" -"Ordina [none]" +#MSG_SORT +"Sort" +"Ordina" -#MSG_SORT_TIME c=17 r=1 -"Sort [time]" -"Ordina [time]" +#MSG_NONE +"None" +"\x00" + +#MSG_SORT_TIME +"Time" +"\x00" # "Severe skew" "Disassamento grave" -#MSG_SORT_ALPHA c=17 r=1 -"Sort [alphabet]" -"Ordine [alfabet]" +#MSG_SORT_ALPHA +"Alphabet" +"Alfabet" #MSG_SORTING c=20 r=1 "Sorting files" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index c523c064b..797dbb934 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -866,13 +866,13 @@ "Running Wizard will delete current calibration results and start from the beginning. Continue?" "Wlaczenie Asystenta usunie obecne dane kalibracyjne i zacznie od poczatku. Kontynuowac?" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -"SD card [normal]" -"Karta SD [normal]" +#MSG_SD_CARD +"SD card" +"Karta SD" -#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -"SD card [flshAir]" -"Karta SD[FlshAir]" +#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +"FlashAir" +"\x00" # "Right" @@ -938,21 +938,25 @@ "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." "Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100." -#MSG_SORT_NONE c=17 r=1 -"Sort [none]" -"Sortuj [brak]" +#MSG_SORT +"Sort" +"Sortuj" -#MSG_SORT_TIME c=17 r=1 -"Sort [time]" -"Sortuj [czas]" +#MSG_NONE +"None" +"Brak" + +#MSG_SORT_TIME +"Time" +"Czas" # "Severe skew" "Znaczny skos" -#MSG_SORT_ALPHA c=17 r=1 -"Sort [alphabet]" -"Sortuj [alfabet]" +#MSG_SORT_ALPHA +"Alphabet" +"Alfabet" #MSG_SORTING c=20 r=1 "Sorting files" From a5a5f5cf0b1cfdf551e6caae4fb85bcf7aaed511 Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 31 Aug 2019 15:25:00 +0300 Subject: [PATCH 087/271] Toggle RPi port Probably works, needs to be tested. --- Firmware/messages.c | 1 + Firmware/messages.h | 1 + Firmware/ultralcd.cpp | 5 +---- lang/lang_en.txt | 7 ++----- lang/lang_en_cz.txt | 10 +++------- lang/lang_en_de.txt | 10 +++------- lang/lang_en_es.txt | 10 +++------- lang/lang_en_fr.txt | 10 +++------- lang/lang_en_it.txt | 10 +++------- lang/lang_en_pl.txt | 10 +++------- 10 files changed, 23 insertions(+), 51 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index d55027b30..07ca88833 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -120,6 +120,7 @@ const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY[] PROGMEM_I1 = ISTR("FlashAir"); const char MSG_SORT[] PROGMEM_I1 = ISTR("Sort"); //// const char MSG_SORT_TIME[] PROGMEM_I1 = ISTR("Time"); //// const char MSG_SORT_ALPHA[] PROGMEM_I1 = ISTR("Alphabet"); //// +const char MSG_RPI_PORT[] PROGMEM_I1 = ISTR("RPi port"); //// //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index ed8d5d541..3bcfc288a 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -120,6 +120,7 @@ extern const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY[]; extern const char MSG_SORT[]; extern const char MSG_SORT_TIME[]; extern const char MSG_SORT_ALPHA[]; +extern const char MSG_RPI_PORT[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 95290d8b7..ad45cf75d 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5593,10 +5593,7 @@ static void lcd_settings_menu() MENU_ITEM_FUNCTION_P(_i("Temp. cal. [on]"), lcd_temp_calibration_set);////MSG_TEMP_CALIBRATION_ON c=20 r=1 #ifdef HAS_SECOND_SERIAL_PORT - if (selectedSerialPort == 0) - MENU_ITEM_FUNCTION_P(_i("RPi port [off]"), lcd_second_serial_set);////MSG_SECOND_SERIAL_OFF c=17 r=1 - else - MENU_ITEM_FUNCTION_P(_i("RPi port [on]"), lcd_second_serial_set);////MSG_SECOND_SERIAL_ON c=17 r=1 + MENU_ITEM_TOGGLE_P(_T(MSG_RPI_PORT), (selectedSerialPort == 0) ? _T(MSG_OFF) : _T(MSG_ON), lcd_second_serial_set); #endif //HAS_SECOND_SERIAL if (!isPrintPaused && !homing_flag) diff --git a/lang/lang_en.txt b/lang/lang_en.txt index d11fc47df..1e17b8692 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -640,11 +640,8 @@ #MSG_BED_CORRECTION_RIGHT c=14 r=1 "Right side[um]" -#MSG_SECOND_SERIAL_ON c=17 r=1 -"RPi port [on]" - -#MSG_SECOND_SERIAL_OFF c=17 r=1 -"RPi port [off]" +#MSG_RPI_PORT +"RPi port" #MSG_WIZARD_RERUN c=20 r=7 "Running Wizard will delete current calibration results and start from the beginning. Continue?" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index e601fe622..1966166e0 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -854,13 +854,9 @@ "Right side[um]" "Vpravo [um]" -#MSG_SECOND_SERIAL_ON c=17 r=1 -"RPi port [on]" -"RPi port [zap]" - -#MSG_SECOND_SERIAL_OFF c=17 r=1 -"RPi port [off]" -"RPi port [vyp]" +#MSG_RPI_PORT +"RPi port" +"\x00" #MSG_WIZARD_RERUN c=20 r=7 "Running Wizard will delete current calibration results and start from the beginning. Continue?" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 5a0ae6717..e53195ec8 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -854,13 +854,9 @@ "Right side[um]" "Rechts [um]" -#MSG_SECOND_SERIAL_ON c=17 r=1 -"RPi port [on]" -"RPi Port [an]" - -#MSG_SECOND_SERIAL_OFF c=17 r=1 -"RPi port [off]" -"RPi Port [aus]" +#MSG_RPI_PORT +"RPi port" +"\x00" #MSG_WIZARD_RERUN c=20 r=7 "Running Wizard will delete current calibration results and start from the beginning. Continue?" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index cb9bea163..35b7e5df1 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -854,13 +854,9 @@ "Right side[um]" "Derecha [um]" -#MSG_SECOND_SERIAL_ON c=17 r=1 -"RPi port [on]" -"Puerto RPi [act]" - -#MSG_SECOND_SERIAL_OFF c=17 r=1 -"RPi port [off]" -"Puerto RPi [ina]" +#MSG_RPI_PORT +"RPi port" +"Puerto RPi" #MSG_WIZARD_RERUN c=20 r=7 "Running Wizard will delete current calibration results and start from the beginning. Continue?" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index d4a21e7e2..619456ef2 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -854,13 +854,9 @@ "Right side[um]" "Droite [um]" -#MSG_SECOND_SERIAL_ON c=17 r=1 -"RPi port [on]" -"Port RPi [on]" - -#MSG_SECOND_SERIAL_OFF c=17 r=1 -"RPi port [off]" -"Port RPi [off]" +#MSG_RPI_PORT +"RPi port" +"Port RPi" #MSG_WIZARD_RERUN c=20 r=7 "Running Wizard will delete current calibration results and start from the beginning. Continue?" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 8ee3e2ddf..20dba9960 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -854,13 +854,9 @@ "Right side[um]" "Destra [um]" -#MSG_SECOND_SERIAL_ON c=17 r=1 -"RPi port [on]" -"Porta RPi [on]" - -#MSG_SECOND_SERIAL_OFF c=17 r=1 -"RPi port [off]" -"Porta RPi [off]" +#MSG_RPI_PORT +"RPi port" +"Porta RPi" #MSG_WIZARD_RERUN c=20 r=7 "Running Wizard will delete current calibration results and start from the beginning. Continue?" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 797dbb934..9906f8f9f 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -854,13 +854,9 @@ "Right side[um]" "Prawo [um]" -#MSG_SECOND_SERIAL_ON c=17 r=1 -"RPi port [on]" -"Port RPi [wl]" - -#MSG_SECOND_SERIAL_OFF c=17 r=1 -"RPi port [off]" -"Port RPi [wyl]" +#MSG_RPI_PORT +"RPi port" +"Port RPi" #MSG_WIZARD_RERUN c=20 r=7 "Running Wizard will delete current calibration results and start from the beginning. Continue?" From 2345288d401d157a75ddc5225a4f2c41f034f5e6 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 31 Aug 2019 15:28:31 +0200 Subject: [PATCH 088/271] Fix the LCD pause function Do not call long_pause recursively! long_pause() is called before resetting the lcd_command_type. As long_pause uses st_synchronize() internally, there could be time to schedule another call to long_pause(). --- Firmware/Marlin_main.cpp | 5 ++--- Firmware/ultralcd.cpp | 10 +++------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a034f94ea..275326abc 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9492,10 +9492,9 @@ void long_pause() //long pause print current_position[Y_AXIS] = Y_PAUSE_POS; plan_buffer_line_curposXYZE(50, active_extruder); - // Turn off the print fan + // Turn off the hotends and print fan + setAllTargetHotends(0); fanSpeed = 0; - - st_synchronize(); } void serialecho_temperatures() { diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 2efc1e099..0f4af7cef 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1059,12 +1059,8 @@ void lcd_commands() if (!blocks_queued() && !homing_flag) { lcd_setstatuspgm(_i("Print paused"));////MSG_PRINT_PAUSED c=20 r=1 - long_pause(); - if (lcd_commands_type == LcdCommands::LongPause) // !!! because "lcd_commands_type" can be changed during/inside "long_pause()" - { - lcd_commands_type = LcdCommands::Idle; - lcd_commands_step = 0; - } + lcd_commands_type = LcdCommands::Idle; + lcd_commands_step = 0; } } @@ -1644,7 +1640,7 @@ void lcd_pause_print() { lcd_return_to_status(); stop_and_save_print_to_ram(0.0,0.0); - setAllTargetHotends(0); + long_pause(); isPrintPaused = true; if (LcdCommands::Idle == lcd_commands_type) { From 795b1d1cf79324630ed360f93863363d57f1b007 Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 31 Aug 2019 16:56:14 +0300 Subject: [PATCH 089/271] Toggle Sound --- Firmware/messages.c | 4 ++++ Firmware/messages.h | 4 ++++ Firmware/sound.h | 6 ----- Firmware/ultralcd.cpp | 53 +++++++++++++++---------------------------- lang/lang_en.txt | 15 +++++------- lang/lang_en_cz.txt | 22 ++++++++---------- lang/lang_en_de.txt | 22 ++++++++---------- lang/lang_en_es.txt | 22 ++++++++---------- lang/lang_en_fr.txt | 22 ++++++++---------- lang/lang_en_it.txt | 22 ++++++++---------- lang/lang_en_pl.txt | 22 ++++++++---------- 11 files changed, 86 insertions(+), 128 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index 07ca88833..46bd750b7 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -121,6 +121,10 @@ const char MSG_SORT[] PROGMEM_I1 = ISTR("Sort"); //// const char MSG_SORT_TIME[] PROGMEM_I1 = ISTR("Time"); //// const char MSG_SORT_ALPHA[] PROGMEM_I1 = ISTR("Alphabet"); //// const char MSG_RPI_PORT[] PROGMEM_I1 = ISTR("RPi port"); //// +const char MSG_SOUND[] PROGMEM_I1 = ISTR("Sound"); //// +const char MSG_SOUND_LOUD[] PROGMEM_I1 = ISTR("Loud"); //// +const char MSG_SOUND_ONCE[] PROGMEM_I1 = ISTR("Once"); //// +const char MSG_SOUND_BLIND[] PROGMEM_I1 = ISTR("Assist"); //// //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index 3bcfc288a..96d13816e 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -121,6 +121,10 @@ extern const char MSG_SORT[]; extern const char MSG_SORT_TIME[]; extern const char MSG_SORT_ALPHA[]; extern const char MSG_RPI_PORT[]; +extern const char MSG_SOUND[]; +extern const char MSG_SOUND_LOUD[]; +extern const char MSG_SOUND_ONCE[]; +extern const char MSG_SOUND_BLIND[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; diff --git a/Firmware/sound.h b/Firmware/sound.h index 90f3e7234..a80d01550 100644 --- a/Firmware/sound.h +++ b/Firmware/sound.h @@ -3,12 +3,6 @@ #define SOUND_H -#define MSG_SOUND_MODE_LOUD "Sound [loud]" -#define MSG_SOUND_MODE_ONCE "Sound [once]" -#define MSG_SOUND_MODE_SILENT "Sound [silent]" -#define MSG_SOUND_MODE_BLIND "Sound [assist]" - - #define e_SOUND_MODE_NULL 0xFF typedef enum {e_SOUND_MODE_LOUD,e_SOUND_MODE_ONCE,e_SOUND_MODE_SILENT,e_SOUND_MODE_BLIND} eSOUND_MODE; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index a6732c4f9..6a82f277f 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5282,22 +5282,22 @@ while (0) do\ {\ switch(eSoundMode)\ - {\ - case e_SOUND_MODE_LOUD:\ - MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_LOUD),lcd_sound_state_set);\ - break;\ - case e_SOUND_MODE_ONCE:\ - MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_ONCE),lcd_sound_state_set);\ - break;\ - case e_SOUND_MODE_SILENT:\ - MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_SILENT),lcd_sound_state_set);\ - break;\ - case e_SOUND_MODE_BLIND:\ - MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_BLIND),lcd_sound_state_set);\ - break;\ - default:\ - MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_LOUD),lcd_sound_state_set);\ - }\ + {\ + case e_SOUND_MODE_LOUD:\ + MENU_ITEM_TOGGLE_P(_T(MSG_SOUND), _T(MSG_SOUND_LOUD), lcd_sound_state_set);\ + break;\ + case e_SOUND_MODE_ONCE:\ + MENU_ITEM_TOGGLE_P(_T(MSG_SOUND), _T(MSG_SOUND_ONCE), lcd_sound_state_set);\ + break;\ + case e_SOUND_MODE_SILENT:\ + MENU_ITEM_TOGGLE_P(_T(MSG_SOUND), _T(MSG_SILENT), lcd_sound_state_set);\ + break;\ + case e_SOUND_MODE_BLIND:\ + MENU_ITEM_TOGGLE_P(_T(MSG_SOUND), _T(MSG_SOUND_BLIND), lcd_sound_state_set);\ + break;\ + default:\ + MENU_ITEM_TOGGLE_P(_T(MSG_SOUND), _T(MSG_SOUND_LOUD), lcd_sound_state_set);\ + }\ }\ while (0) @@ -6875,25 +6875,8 @@ static void lcd_tune_menu() } } #endif //TMC2130 - SETTINGS_MMU_MODE; - switch(eSoundMode) - { - case e_SOUND_MODE_LOUD: - MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_LOUD),lcd_sound_state_set); - break; - case e_SOUND_MODE_ONCE: - MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_ONCE),lcd_sound_state_set); - break; - case e_SOUND_MODE_SILENT: - MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_SILENT),lcd_sound_state_set); - break; - case e_SOUND_MODE_BLIND: - MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_BLIND),lcd_sound_state_set); - break; - default: - MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_LOUD),lcd_sound_state_set); - } - + SETTINGS_MMU_MODE; + SETTINGS_SOUND; MENU_END(); } diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 1e17b8692..e2add8054 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -718,23 +718,20 @@ #MSG_SORTING c=20 r=1 "Sorting files" -#MSG_SOUND_LOUD c=17 r=1 -"Sound [loud]" +#MSG_SOUND_LOUD +"Loud" # "Slight skew" -#MSG_SOUND_MUTE c=17 r=1 -"Sound [mute]" +#MSG_SOUND +"Sound" # "Some problem encountered, Z-leveling enforced ..." -#MSG_SOUND_ONCE c=17 r=1 -"Sound [once]" - -#MSG_SOUND_SILENT c=17 r=1 -"Sound [silent]" +#MSG_SOUND_ONCE +"Once" #MSG_SPEED "Speed" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 1966166e0..6bb5293f9 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -958,29 +958,25 @@ "Sorting files" "Trideni souboru" -#MSG_SOUND_LOUD c=17 r=1 -"Sound [loud]" -"Zvuk [hlasity]" +#MSG_SOUND_LOUD +"Loud" +"Hlasity" # "Slight skew" "Lehke zkoseni" -#MSG_SOUND_MUTE c=17 r=1 -"Sound [mute]" -"Zvuk [vypnuto]" +#MSG_SOUND +"Sound" +"Zvuk" # "Some problem encountered, Z-leveling enforced ..." "Vyskytl se problem, srovnavam osu Z ..." -#MSG_SOUND_ONCE c=17 r=1 -"Sound [once]" -"Zvuk [jednou]" - -#MSG_SOUND_SILENT c=17 r=1 -"Sound [silent]" -"Zvuk [tichy]" +#MSG_SOUND_ONCE +"Once" +"Jednou" #MSG_SPEED "Speed" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index e53195ec8..044156c1c 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -958,29 +958,25 @@ "Sorting files" "Sortiere Dateien" -#MSG_SOUND_LOUD c=17 r=1 -"Sound [loud]" -"Sound [laut]" +#MSG_SOUND_LOUD +"Loud" +"Laut" # "Slight skew" "Leichter Schraeglauf" -#MSG_SOUND_MUTE c=17 r=1 -"Sound [mute]" -"Sound [stumm]" +#MSG_SOUND +"Sound" +"\x00" # "Some problem encountered, Z-leveling enforced ..." "Fehler aufgetreten, Z-Kalibrierung erforderlich..." -#MSG_SOUND_ONCE c=17 r=1 -"Sound [once]" -"Sound [einmal]" - -#MSG_SOUND_SILENT c=17 r=1 -"Sound [silent]" -"Sound [leise]" +#MSG_SOUND_ONCE +"Once" +"Einmal" #MSG_SPEED "Speed" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index 35b7e5df1..40b7af190 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -958,29 +958,25 @@ "Sorting files" "Ordenando archivos" -#MSG_SOUND_LOUD c=17 r=1 -"Sound [loud]" -"Sonido [alto]" +#MSG_SOUND_LOUD +"Loud" +"Alto" # "Slight skew" "Ligeramente inclinado" -#MSG_SOUND_MUTE c=17 r=1 -"Sound [mute]" -"Sonido[silenciad]" +#MSG_SOUND +"Sound" +"Sonido" # "Some problem encountered, Z-leveling enforced ..." "Problema encontrado, nivelacion Z forzosa ..." -#MSG_SOUND_ONCE c=17 r=1 -"Sound [once]" -"Sonido [una vez]" - -#MSG_SOUND_SILENT c=17 r=1 -"Sound [silent]" -"Sonido[silencios]" +#MSG_SOUND_ONCE +"Once" +"Una vez" #MSG_SPEED "Speed" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index 619456ef2..973f4c14e 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -958,29 +958,25 @@ "Sorting files" "Tri des fichiers" -#MSG_SOUND_LOUD c=17 r=1 -"Sound [loud]" -"Son [fort]" +#MSG_SOUND_LOUD +"Loud" +"Fort" # "Slight skew" "Deviation legere" -#MSG_SOUND_MUTE c=17 r=1 -"Sound [mute]" -"Son [muet]" +#MSG_SOUND +"Sound" +"Son" # "Some problem encountered, Z-leveling enforced ..." "Problemes rencontres, nivellement de l'axe Z applique..." -#MSG_SOUND_ONCE c=17 r=1 -"Sound [once]" -"Son [une fois]" - -#MSG_SOUND_SILENT c=17 r=1 -"Sound [silent]" -"Son [silencieux]" +#MSG_SOUND_ONCE +"Once" +"Une fois" #MSG_SPEED "Speed" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 20dba9960..8bf6038da 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -958,29 +958,25 @@ "Sorting files" "Ordinando i file" -#MSG_SOUND_LOUD c=17 r=1 -"Sound [loud]" -"Suono [forte]" +#MSG_SOUND_LOUD +"Loud" +"Forte" # "Slight skew" "Disassamento lieve" -#MSG_SOUND_MUTE c=17 r=1 -"Sound [mute]" -"Suono [mute]" +#MSG_SOUND +"Sound" +"Suono" # "Some problem encountered, Z-leveling enforced ..." "Sono stati rilevati problemi, avviato livellamento Z ..." -#MSG_SOUND_ONCE c=17 r=1 -"Sound [once]" -"Suono [singolo]" - -#MSG_SOUND_SILENT c=17 r=1 -"Sound [silent]" -"Suono[silenzioso]" +#MSG_SOUND_ONCE +"Once" +"Singolo" #MSG_SPEED "Speed" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 9906f8f9f..54c482487 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -958,29 +958,25 @@ "Sorting files" "Sortowanie plikow" -#MSG_SOUND_LOUD c=17 r=1 -"Sound [loud]" -"Dzwiek [Glosny]" +#MSG_SOUND_LOUD +"Loud" +"Glosny" # "Slight skew" "Lekki skos" -#MSG_SOUND_MUTE c=17 r=1 -"Sound [mute]" -"Dzwiek[Wylaczony]" +#MSG_SOUND +"Sound" +"Dzwiek" # "Some problem encountered, Z-leveling enforced ..." "Wykryto problem, wymuszono poziomowanie osi Z ..." -#MSG_SOUND_ONCE c=17 r=1 -"Sound [once]" -"Dzwiek [1-raz]" - -#MSG_SOUND_SILENT c=17 r=1 -"Sound [silent]" -"Dzwiek [Cichy]" +#MSG_SOUND_ONCE +"Once" +"1-raz" #MSG_SPEED "Speed" From 10cdcb3ae3dd91d7d7063bd8ba0c488e61eae288 Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 31 Aug 2019 17:00:39 +0300 Subject: [PATCH 090/271] SD Scroll workaround --- Firmware/ultralcd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 2efc1e099..e72db256c 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -305,7 +305,7 @@ const char STR_SEPARATOR[] PROGMEM = "------------"; static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, char* longFilename) { char c; - int enc_dif = lcd_encoder_diff; + int enc_dif = lcd_encoder_diff / ENCODER_PULSES_PER_STEP; uint8_t n = LCD_WIDTH - 1; for(uint_least8_t g = 0; g<4;g++){ lcd_set_cursor(0, g); @@ -331,7 +331,7 @@ static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, char* longF n = LCD_WIDTH - 1; for(int g = 0; g<300 ;g++){ manage_heater(); - if(LCD_CLICKED || ( enc_dif != lcd_encoder_diff )){ + if(LCD_CLICKED || ( enc_dif != (lcd_encoder_diff / ENCODER_PULSES_PER_STEP))){ longFilenameTMP = longFilename; *(longFilenameTMP + LCD_WIDTH - 2) = '\0'; i = 1; From 339771a5fb3f13456429234e120d5d2bbdca8edc Mon Sep 17 00:00:00 2001 From: vintagepc Date: Sat, 31 Aug 2019 21:27:08 -0400 Subject: [PATCH 091/271] Fixed info screen when selected_sheet hasn't been initialized. --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 0460e1471..66e08143d 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -600,7 +600,7 @@ void lcdui_print_percent_done(void) bool num = IS_SD_PRINTING || (PRINTER_ACTIVE && (print_percent_done_normal != PRINT_PERCENT_DONE_INIT)); if (!num || heating_status) // either not printing or heating { - eeprom_read_block(sheet, EEPROM_Sheets_base->s[selected_sheet].name, 7); + eeprom_read_block(sheet, EEPROM_Sheets_base->s[eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet))].name, 7); sheet[7] = '\0'; lcd_printf_P(PSTR("%s"),sheet); } From bb1fb4989489c2b01906e68bc08f408872d84590 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 10 Sep 2019 18:36:14 +0200 Subject: [PATCH 092/271] Use MMU cutter only as last resort. Cut filament only before last load retry. --- Firmware/mmu.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index e7a59e75c..f44bad97b 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -1577,19 +1577,23 @@ void mmu_continue_loading(bool blocking) increment_load_fail(); // no break case Ls::Retry: -#ifdef MMU_HAS_CUTTER - if (1 == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED)) + ++retry; // overflow not handled, as it is not dangerous. + if (retry >= max_retry) { - mmu_command(MmuCmd::K0 + tmp_extruder); - manage_response(true, true, MMU_UNLOAD_MOVE); - } + state = Ls::Unload; +#ifdef MMU_HAS_CUTTER + if (1 == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED)) + { + mmu_command(MmuCmd::K0 + tmp_extruder); + manage_response(true, true, MMU_UNLOAD_MOVE); + } #endif //MMU_HAS_CUTTER + } mmu_command(MmuCmd::T0 + tmp_extruder); manage_response(true, true, MMU_TCODE_MOVE); success = load_more(); if (success) success = can_load(); - ++retry; // overflow not handled, as it is not dangerous. - if (retry >= max_retry) state = Ls::Unload; + break; case Ls::Unload: stop_and_save_print_to_ram(0, 0); From 608aa6ff3c1293cec62393c395adc188fb7a3b4c Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 10 Sep 2019 18:49:23 +0200 Subject: [PATCH 093/271] Increase number of MMU load tries, so the same number of retries are done without cutter as before enabling cutter. --- Firmware/mmu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index f44bad97b..8f2c0400b 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -1566,7 +1566,7 @@ void mmu_continue_loading(bool blocking) }; Ls state = Ls::Enter; - const uint_least8_t max_retry = 2; + const uint_least8_t max_retry = 3; uint_least8_t retry = 0; while (!success) From bf9f66857436500afb887f55f3581292a34dfddb Mon Sep 17 00:00:00 2001 From: leptun Date: Wed, 11 Sep 2019 22:03:56 +0300 Subject: [PATCH 094/271] Fix short filenames scrolling in sdprint menu and status screen --- Firmware/ultralcd.cpp | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ee8475d12..33b2b555e 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -302,18 +302,24 @@ bool bSettings; // flag (i.e. 'fake parameter' const char STR_SEPARATOR[] PROGMEM = "------------"; -static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, char* longFilename) +static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char* filename, char* longFilename) { char c; int enc_dif = lcd_encoder_diff; uint8_t n = LCD_WIDTH - 1; + for(uint_least8_t g = 0; g<4;g++){ lcd_set_cursor(0, g); lcd_print(' '); } - lcd_set_cursor(0, row); lcd_print('>'); + + if (longFilename[0] == '\0') + { + longFilename = filename; + } + int i = 1; int j = 0; char* longFilenameTMP = longFilename; @@ -529,7 +535,7 @@ static uint8_t menu_item_sdfile(const char* if (lcd_draw_update) { if (lcd_encoder == menu_item) - lcd_implementation_drawmenu_sdfile_selected(menu_row, str_fnl); + lcd_implementation_drawmenu_sdfile_selected(menu_row, str_fn, str_fnl); else lcd_implementation_drawmenu_sdfile(menu_row, str_fn, str_fnl); } @@ -701,10 +707,10 @@ void lcdui_print_status_line(void) { if (IS_SD_PRINTING) { - if (strcmp(longFilenameOLD, card.longFilename) != 0) + if (strcmp(longFilenameOLD, (card.longFilename[0] ? card.longFilename : card.filename)) != 0) { memset(longFilenameOLD, '\0', strlen(longFilenameOLD)); - sprintf_P(longFilenameOLD, PSTR("%s"), card.longFilename); + sprintf_P(longFilenameOLD, PSTR("%s"), (card.longFilename[0] ? card.longFilename : card.filename)); scrollstuff = 0; } } @@ -752,16 +758,16 @@ void lcdui_print_status_line(void) } else if ((IS_SD_PRINTING) && (custom_message_type == CustomMsg::Status)) { // If printing from SD, show what we are printing - if(strlen(card.longFilename) > LCD_WIDTH) + if(strlen(longFilenameOLD) > LCD_WIDTH) { int inters = 0; int gh = scrollstuff; while (((gh - scrollstuff) < LCD_WIDTH) && (inters == 0)) { - if (card.longFilename[gh] == '\0') + if (longFilenameOLD[gh] == '\0') { lcd_set_cursor(gh - scrollstuff, 3); - lcd_print(card.longFilename[gh - 1]); + lcd_print(longFilenameOLD[gh - 1]); scrollstuff = 0; gh = scrollstuff; inters = 1; @@ -769,7 +775,7 @@ void lcdui_print_status_line(void) else { lcd_set_cursor(gh - scrollstuff, 3); - lcd_print(card.longFilename[gh - 1]); + lcd_print(longFilenameOLD[gh - 1]); gh++; } } @@ -777,7 +783,7 @@ void lcdui_print_status_line(void) } else { - lcd_print(longFilenameOLD); + lcd_printf_P(PSTR("%-20s"), longFilenameOLD); } } else From ae839aee311ddcb8432a693e88cda3745bab2b8f Mon Sep 17 00:00:00 2001 From: leptun Date: Thu, 12 Sep 2019 16:28:36 +0300 Subject: [PATCH 095/271] Merge branch 'MK3' into MK3_Translations --- Firmware/Configuration.h | 11 +- Firmware/Configuration_adv.h | 12 - Firmware/Marlin_main.cpp | 9 +- Firmware/config.h | 2 +- Firmware/eeprom.cpp | 56 +- Firmware/lcd.cpp | 3 +- Firmware/lcd.h | 1 - Firmware/menu.cpp | 3 +- Firmware/stepper.cpp | 3 +- Firmware/temperature.cpp | 68 +- Firmware/temperature.h | 4 - Firmware/ultralcd.cpp | 537 +++----- Firmware/ultralcd.h | 1 + .../variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h | 2 +- .../variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h | 10 +- .../variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h | 10 +- .../variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h | 10 +- .../1_75mm_MK25S-RAMBo10a-E3Dv6full.h | 10 +- .../1_75mm_MK25S-RAMBo13a-E3Dv6full.h | 10 +- .../variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 10 +- .../variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 10 +- lang/lang-export.sh | 2 +- lang/lang-import.sh | 2 +- lang/lang_en.txt | 144 ++ lang/lang_en_cz.txt | 210 ++- lang/lang_en_de.txt | 218 ++- lang/lang_en_es.txt | 230 +++- lang/lang_en_fr.txt | 210 ++- lang/lang_en_it.txt | 236 +++- lang/lang_en_pl.txt | 220 +++- lang/po/Firmware.pot | 978 +++++++------- lang/po/Firmware_cs.po | 1054 ++++++++------- lang/po/Firmware_de.po | 1065 ++++++++------- lang/po/Firmware_es.po | 1058 ++++++++------- lang/po/Firmware_fr.po | 1168 +++++++++-------- lang/po/Firmware_it.po | 1058 ++++++++------- lang/po/Firmware_pl.po | 1056 ++++++++------- lang/po/new/cs.po | 851 ++++++++---- lang/po/new/de.po | 862 ++++++++---- lang/po/new/es.po | 892 +++++++++---- lang/po/new/fr.po | 850 ++++++++---- lang/po/new/it.po | 880 +++++++++---- lang/po/new/pl.po | 864 ++++++++---- 43 files changed, 9185 insertions(+), 5705 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index ebda49608..d3544c93f 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -16,8 +16,8 @@ extern uint16_t nPrinterType; extern PGM_P sPrinterName; // Firmware version -#define FW_VERSION "3.8.0-RC2" -#define FW_COMMIT_NR 2639 +#define FW_VERSION "3.8.0" +#define FW_COMMIT_NR 2684 // FW_VERSION_UNKNOWN means this is an unofficial build. // The firmware should only be checked into github with this symbol. #define FW_DEV_VERSION FW_VERSION_UNKNOWN @@ -113,11 +113,6 @@ extern PGM_P sPrinterName; // #define PS_DEFAULT_OFF - -// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted. -//#define TEMP_SENSOR_1_AS_REDUNDANT -#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 - // Actual temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 3 // (seconds) #define TEMP_HYSTERESIS 5 // (degC) range of +/- temperatures considered "close" to the target one @@ -291,6 +286,8 @@ your extruder heater takes 2 minutes to hit the target on heating. #define Z_HEIGHT_HIDE_LIVE_ADJUST_MENU 2.0f +#define HOME_Z_SEARCH_THRESHOLD 0.15f // Threshold of the Z height in calibration + //============================= Bed Auto Leveling =========================== //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index 951302877..dd77c91c6 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -10,14 +10,6 @@ #endif #define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control -//// Heating sanity check: -// This waits for the watch period in milliseconds whenever an M104 or M109 increases the target temperatureLCD_PROGRESS_BAR -// If the temperature has not increased at the end of that period, the target temperature is set to zero. -// It can be reset with another M104/M109. This check is also only triggered if the target temperature and the current temperature -// differ by at least 2x WATCH_TEMP_INCREASE -//#define WATCH_TEMP_PERIOD 40000 //40 seconds -//#define WATCH_TEMP_INCREASE 10 //Heat up at least 10 degree in 20 seconds - #ifdef PIDTEMP // this adds an experimental additional term to the heating power, proportional to the extrusion speed. // if Kc is chosen well, the additional required power due to increased melting should be compensated. @@ -400,10 +392,6 @@ const unsigned int dropsegments=5; //everything with less than this number of st //============================= Define Defines ============================ //=========================================================================== -#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT - #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1" -#endif - #if EXTRUDERS > 1 && defined HEATERS_PARALLEL #error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1" #endif diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a034f94ea..2423beafb 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2860,7 +2860,8 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level) #endif //TMC2130 enable_endstops(endstops_enabled); - if (st_get_position_mm(Z_AXIS) == MESH_HOME_Z_SEARCH) + if ((st_get_position_mm(Z_AXIS) <= (MESH_HOME_Z_SEARCH + HOME_Z_SEARCH_THRESHOLD)) && + (st_get_position_mm(Z_AXIS) >= (MESH_HOME_Z_SEARCH - HOME_Z_SEARCH_THRESHOLD))) { if (onlyZ) { @@ -3261,7 +3262,7 @@ static void gcode_PRUSA_SN() //! May be that's why the bad RAMBo's still produce some fan RPM reading, but not corresponding to reality static void gcode_PRUSA_BadRAMBoFanTest(){ //printf_P(PSTR("Enter fan pin test\n")); -#if !defined(DEBUG_DISABLE_FANCHECK) && defined(FANCHECK) && defined(TACH_1) && TACH_1 >-1 && defined(IR_SENSOR) +#if !defined(DEBUG_DISABLE_FANCHECK) && defined(FANCHECK) && defined(TACH_1) && TACH_1 >-1 fan_measuring = false; // prevent EXTINT7 breaking into the measurement unsigned long tach1max = 0; uint8_t tach1cntr = 0; @@ -5891,7 +5892,6 @@ Sigma_Exit: { setTargetHotendSafe(code_value(), extruder); } - setWatch(); break; } @@ -6036,7 +6036,6 @@ Sigma_Exit: } #endif - setWatch(); codenum = _millis(); /* See if we are heating up or cooling down */ @@ -10207,7 +10206,7 @@ void restore_print_from_ram_and_continue(float e_move) else { //not sd printing nor usb printing } - printf_P(PSTR("ok\n")); //dummy response because of octoprint is waiting for this + SERIAL_PROTOCOLLNRPGM(MSG_OK); //dummy response because of octoprint is waiting for this lcd_setstatuspgm(_T(WELCOME_MSG)); saved_printing = false; } diff --git a/Firmware/config.h b/Firmware/config.h index a712839b7..0473c3ff2 100644 --- a/Firmware/config.h +++ b/Firmware/config.h @@ -49,7 +49,7 @@ //#define LANG_MODE 0 // primary language only #define LANG_MODE 1 // sec. language support -#define LANG_SIZE_RESERVED 0x2800 // reserved space for secondary language (10240 bytes) +#define LANG_SIZE_RESERVED 0x3000 // reserved space for secondary language (12288 bytes) #endif //_CONFIG_H diff --git a/Firmware/eeprom.cpp b/Firmware/eeprom.cpp index dd1a410b1..b33b2c3ca 100644 --- a/Firmware/eeprom.cpp +++ b/Firmware/eeprom.cpp @@ -97,14 +97,66 @@ void eeprom_init() //! @brief Get default sheet name for index //! +//! | index | sheetName | +//! | ----- | --------- | +//! | 0 | Smooth1 | +//! | 1 | Smooth2 | +//! | 2 | Textur1 | +//! | 3 | Textur2 | +//! | 4 | Custom1 | +//! | 5 | Custom2 | +//! | 6 | Custom3 | +//! | 7 | Custom4 | +//! //! @param[in] index //! @param[out] sheetName void eeprom_default_sheet_name(uint8_t index, SheetName &sheetName) { static_assert(8 == sizeof(SheetName),"Default sheet name needs to be adjusted."); - sprintf_P(sheetName.c, PSTR("%-6.6S"), _T(MSG_SHEET)); - sheetName.c[6] = '1' + index; + if (index < 2) + { + strcpy_P(sheetName.c, PSTR("Smooth")); + } + else if (index < 4) + { + strcpy_P(sheetName.c, PSTR("Textur")); + } + else + { + strcpy_P(sheetName.c, PSTR("Custom")); + } + + switch (index) + { + case 0: + sheetName.c[6] = '1'; + break; + case 1: + sheetName.c[6] = '2'; + break; + case 2: + sheetName.c[6] = '1'; + break; + case 3: + sheetName.c[6] = '2'; + break; + case 4: + sheetName.c[6] = '1'; + break; + case 5: + sheetName.c[6] = '2'; + break; + case 6: + sheetName.c[6] = '3'; + break; + case 7: + sheetName.c[6] = '4'; + break; + default: + break; + } + sheetName.c[7] = '\0'; } diff --git a/Firmware/lcd.cpp b/Firmware/lcd.cpp index fd3e1328f..71948789b 100644 --- a/Firmware/lcd.cpp +++ b/Firmware/lcd.cpp @@ -189,9 +189,10 @@ static void lcd_begin(uint8_t clear) #endif } -static void lcd_putchar(char c, FILE *) +static int lcd_putchar(char c, FILE *) { lcd_write(c); + return 0; } void lcd_init(void) diff --git a/Firmware/lcd.h b/Firmware/lcd.h index 307e9486c..790c0a955 100644 --- a/Firmware/lcd.h +++ b/Firmware/lcd.h @@ -11,7 +11,6 @@ extern FILE _lcdout; #define lcdout (&_lcdout) -extern void lcd_putchar(char c, FILE *stream); extern void lcd_init(void); diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index 17770208d..d516be37e 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -457,7 +457,8 @@ void menu_draw_P(char chr, const char* str, int16_t val) float factor = 1.0f + static_cast(val) / 1000.0f; if (val <= _md->minEditValue) { - lcd_printf_P(menu_fmt_float13off, chr, str, " [off]"); + // lcd_printf_P(menu_fmt_float13off, chr, str, " [off]"); + menu_draw_toggle_puts_P(str, _T(MSG_OFF), true); } else { diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index 860d761cf..5b102f42b 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -1562,7 +1562,8 @@ void EEPROM_read_st(int pos, uint8_t* value, uint8_t size) void st_current_init() //Initialize Digipot Motor Current { -uint8_t SilentMode = eeprom_read_byte((uint8_t*)EEPROM_SILENT); + uint8_t SilentMode = eeprom_read_byte((uint8_t*)EEPROM_SILENT); + if (SilentMode == 0xff) SilentMode = 0; //set power to High Power (MK2.5) or Normal Power (MK3, unused) SilentModeMenu = SilentMode; #ifdef MOTOR_CURRENT_PWM_XY_PIN pinMode(MOTOR_CURRENT_PWM_XY_PIN, OUTPUT); diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 391607e8c..3c7f5fbc4 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -73,10 +73,6 @@ int current_voltage_raw_bed = 0; int current_temperature_bed_raw = 0; float current_temperature_bed = 0.0; -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - int redundant_temperature_raw = 0; - float redundant_temperature = 0.0; -#endif #ifdef PIDTEMP @@ -175,13 +171,8 @@ static int bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP; static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP; #endif -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - static void *heater_ttbl_map[2] = {(void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE }; - static uint8_t heater_ttbllen_map[2] = { HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN }; -#else - static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( (void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE, (void *)HEATER_2_TEMPTABLE ); - static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN ); -#endif +static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( (void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE, (void *)HEATER_2_TEMPTABLE ); +static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN ); static float analog2temp(int raw, uint8_t e); static float analog2tempBed(int raw); @@ -195,11 +186,6 @@ enum TempRunawayStates TempRunaway_ACTIVE = 2, }; -#ifdef WATCH_TEMP_PERIOD -int watch_start_temp[EXTRUDERS] = ARRAY_BY_EXTRUDERS(0,0,0); -unsigned long watchmillis[EXTRUDERS] = ARRAY_BY_EXTRUDERS(0,0,0); -#endif //WATCH_TEMP_PERIOD - #ifndef SOFT_PWM_SCALE #define SOFT_PWM_SCALE 0 #endif @@ -728,34 +714,6 @@ void manage_heater() { soft_pwm[e] = 0; } - - #ifdef WATCH_TEMP_PERIOD - if(watchmillis[e] && _millis() - watchmillis[e] > WATCH_TEMP_PERIOD) - { - if(degHotend(e) < watch_start_temp[e] + WATCH_TEMP_INCREASE) - { - setTargetHotend(0, e); - LCD_MESSAGEPGM("Heating failed"); - SERIAL_ECHO_START; - SERIAL_ECHOLN("Heating failed"); - }else{ - watchmillis[e] = 0; - } - } - #endif - #ifdef TEMP_SENSOR_1_AS_REDUNDANT - if(fabs(current_temperature[0] - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF) { - disable_heater(); - if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLNPGM("Extruder switched off. Temperature difference between temp sensors is too high !"); - LCD_ALERTMESSAGEPGM("Err: REDUNDANT TEMP ERROR"); - } - #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE - Stop(); - #endif - } - #endif } // End extruder for loop #define FAN_CHECK_PERIOD 5000 //5s @@ -907,11 +865,7 @@ void manage_heater() // Derived from RepRap FiveD extruder::getTemperature() // For hot end temperature measurement. static float analog2temp(int raw, uint8_t e) { -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - if(e > EXTRUDERS) -#else if(e >= EXTRUDERS) -#endif { SERIAL_ERROR_START; SERIAL_ERROR((int)e); @@ -1054,10 +1008,6 @@ static void updateTemperaturesFromRawValues() current_temperature_bed = analog2tempBed(current_temperature_bed_raw); #endif //DEBUG_HEATER_BED_SIM - #ifdef TEMP_SENSOR_1_AS_REDUNDANT - redundant_temperature = analog2temp(redundant_temperature_raw, 1); - #endif - CRITICAL_SECTION_START; temp_meas_ready = false; CRITICAL_SECTION_END; @@ -1221,20 +1171,6 @@ void tp_init() #endif //BED_MAXTEMP } -void setWatch() -{ -#ifdef WATCH_TEMP_PERIOD - for (int e = 0; e < EXTRUDERS; e++) - { - if(degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE * 2)) - { - watch_start_temp[e] = degHotend(e); - watchmillis[e] = _millis(); - } - } -#endif -} - #if (defined (TEMP_RUNAWAY_BED_HYSTERESIS) && TEMP_RUNAWAY_BED_TIMEOUT > 0) || (defined (TEMP_RUNAWAY_EXTRUDER_HYSTERESIS) && TEMP_RUNAWAY_EXTRUDER_TIMEOUT > 0) void temp_runaway_check(int _heater_id, float _target_temperature, float _current_temperature, float _output, bool _isbed) { diff --git a/Firmware/temperature.h b/Firmware/temperature.h index e9ba11b47..7f4daa2e4 100755 --- a/Firmware/temperature.h +++ b/Firmware/temperature.h @@ -74,9 +74,6 @@ extern int current_voltage_raw_pwr; extern int current_voltage_raw_bed; #endif -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - extern float redundant_temperature; -#endif #if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1 extern unsigned char soft_pwm_bed; @@ -220,7 +217,6 @@ FORCE_INLINE bool isCoolingBed() { int getHeaterPower(int heater); void disable_heater(); -void setWatch(); void updatePID(); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 6a82f277f..f29ea5c93 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1661,100 +1661,12 @@ static void lcd_move_menu_axis(); /* Menu implementation */ -static void lcd_preheat_farm() -{ - setTargetHotend0(FARM_PREHEAT_HOTEND_TEMP); - setTargetBed(FARM_PREHEAT_HPB_TEMP); - fanSpeed = 0; - lcd_return_to_status(); - setWatch(); // heater sanity check timer -} - -static void lcd_preheat_farm_nozzle() -{ - setTargetHotend0(FARM_PREHEAT_HOTEND_TEMP); - setTargetBed(0); - fanSpeed = 0; - lcd_return_to_status(); - setWatch(); // heater sanity check timer -} - -static void lcd_preheat_pla() -{ - setTargetHotend0(PLA_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(PLA_PREHEAT_HPB_TEMP); - fanSpeed = PLA_PREHEAT_FAN_SPEED; - lcd_return_to_status(); - setWatch(); // heater sanity check timer - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_asa() -{ - setTargetHotend0(ASA_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(ASA_PREHEAT_HPB_TEMP); - fanSpeed = ASA_PREHEAT_FAN_SPEED; - lcd_return_to_status(); - setWatch(); // heater sanity check timer - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_abs() -{ - setTargetHotend0(ABS_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(ABS_PREHEAT_HPB_TEMP); - fanSpeed = ABS_PREHEAT_FAN_SPEED; - lcd_return_to_status(); - setWatch(); // heater sanity check timer - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_pp() -{ - setTargetHotend0(PP_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(PP_PREHEAT_HPB_TEMP); - fanSpeed = PP_PREHEAT_FAN_SPEED; - lcd_return_to_status(); - setWatch(); // heater sanity check timer - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_pet() -{ - setTargetHotend0(PET_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(PET_PREHEAT_HPB_TEMP); - fanSpeed = PET_PREHEAT_FAN_SPEED; - lcd_return_to_status(); - setWatch(); // heater sanity check timer - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_hips() -{ - setTargetHotend0(HIPS_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(HIPS_PREHEAT_HPB_TEMP); - fanSpeed = HIPS_PREHEAT_FAN_SPEED; - lcd_return_to_status(); - setWatch(); // heater sanity check timer - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_flex() -{ - setTargetHotend0(FLEX_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(FLEX_PREHEAT_HPB_TEMP); - fanSpeed = FLEX_PREHEAT_FAN_SPEED; - lcd_return_to_status(); - setWatch(); // heater sanity check timer - if (wizard_active) lcd_wizard(WizState::Unload); -} - - static void lcd_cooldown() { setAllTargetHotends(0); setTargetBed(0); fanSpeed = 0; + eFilamentAction = FilamentAction::None; lcd_return_to_status(); } @@ -2021,27 +1933,8 @@ static void lcd_menu_test_restore() static void lcd_preheat_menu() { - MENU_BEGIN(); - - if (!wizard_active) MENU_ITEM_BACK_P(_T(MSG_MAIN)); - - if (farm_mode) { - MENU_ITEM_FUNCTION_P(PSTR("farm - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FARM_PREHEAT_HPB_TEMP)), lcd_preheat_farm); - MENU_ITEM_FUNCTION_P(PSTR("nozzle - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/0"), lcd_preheat_farm_nozzle); - MENU_ITEM_FUNCTION_P(_T(MSG_COOLDOWN), lcd_cooldown); - } else { - MENU_ITEM_FUNCTION_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)), lcd_preheat_pla); - MENU_ITEM_FUNCTION_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)), lcd_preheat_pet); - MENU_ITEM_FUNCTION_P(PSTR("ASA - " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ASA_PREHEAT_HPB_TEMP)), lcd_preheat_asa); - MENU_ITEM_FUNCTION_P(PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)), lcd_preheat_abs); - MENU_ITEM_FUNCTION_P(PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)), lcd_preheat_hips); - MENU_ITEM_FUNCTION_P(PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)), lcd_preheat_pp); - MENU_ITEM_FUNCTION_P(PSTR("FLEX - " STRINGIFY(FLEX_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FLEX_PREHEAT_HPB_TEMP)), lcd_preheat_flex); - if (!wizard_active) MENU_ITEM_FUNCTION_P(_T(MSG_COOLDOWN), lcd_cooldown); - } - - - MENU_END(); + eFilamentAction = FilamentAction::Preheat; + mFilamentMenu(); } static void lcd_support_menu() @@ -2194,7 +2087,7 @@ FilamentAction eFilamentAction=FilamentAction::None; // must be initialized as ' bool bFilamentFirstRun; bool bFilamentPreheatState; bool bFilamentAction=false; -bool bFilamentWaitingFlag=false; +static bool bFilamentWaitingFlag=false; static void mFilamentPrompt() { @@ -2219,6 +2112,7 @@ switch(eFilamentAction) case FilamentAction::MmuEject: case FilamentAction::MmuCut: case FilamentAction::None: + case FilamentAction::Preheat: break; } if(lcd_clicked()) @@ -2247,290 +2141,220 @@ if(lcd_clicked()) case FilamentAction::MmuEject: case FilamentAction::MmuCut: case FilamentAction::None: + case FilamentAction::Preheat: break; } } } -/* -void _mFilamentItem(uint16_t nTemp,uint16_t nTempBed) +void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) { -static int nTargetOld,nTargetBedOld; -uint8_t nLevel; -static bool bBeep=false; + static int nTargetOld; + static int nTargetBedOld; + uint8_t nLevel; -//if(bPreheatState) // not necessary - nTargetOld=target_temperature[0]; - nTargetBedOld=target_temperature_bed; -setTargetHotend0((float)nTemp); -setTargetBed((float)nTempBed); -lcd_timeoutToStatus.stop(); -lcd_set_cursor(0,0); -lcdui_print_temp(LCD_STR_THERMOMETER[0],(int)degHotend(0),(int)degTargetHotend(0)); -lcd_set_cursor(0,1); -switch(eFilamentAction) - { - case eFILAMENT_ACTION::load: - case eFILAMENT_ACTION::autoLoad: - case eFILAMENT_ACTION::mmuLoad: - lcd_puts_P(_i("Preheating to load")); ////MSG_ c=20 r=1 - break; - case eFILAMENT_ACTION::unLoad: - case eFILAMENT_ACTION::mmuUnLoad: - lcd_puts_P(_i("Preheating to unload")); ////MSG_ c=20 r=1 - break; - case eFILAMENT_ACTION::mmuEject: - lcd_puts_P(_i("Preheating to eject")); ////MSG_ c=20 r=1 - break; - case eFILAMENT_ACTION::mmuCut: - lcd_puts_P(_i("Preheating to cut")); ////MSG_ c=20 r=1 - break; - } -lcd_set_cursor(0,3); -lcd_puts_P(_i(">Cancel")); ////MSG_ c=20 r=1 -if(lcd_clicked()) - { - if(!bFilamentPreheatState) - { - setTargetHotend0(0.0); - setTargetBed(0.0); - menu_back(); - } - else { - setTargetHotend0((float)nTargetOld); - setTargetBed((float)nTargetBedOld); - } - menu_back(); - if(eFilamentAction==eFILAMENT_ACTION::autoLoad) - eFilamentAction=eFILAMENT_ACTION::none; // i.e. non-autoLoad - } -else { - if(current_temperature[0]>(target_temperature[0]*0.95)) - { - switch(eFilamentAction) - { - case eFILAMENT_ACTION::load: - case eFILAMENT_ACTION::autoLoad: - case eFILAMENT_ACTION::unLoad: - menu_submenu(mFilamentPrompt); - break; - case eFILAMENT_ACTION::mmuLoad: - nLevel=1; - if(!bFilamentPreheatState) - nLevel++; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_load_to_nozzle_menu); - break; - case eFILAMENT_ACTION::mmuUnLoad: - nLevel=1; - if(!bFilamentPreheatState) - nLevel++; - bFilamentAction=true; - menu_back(nLevel); - extr_unload(); - break; - case eFILAMENT_ACTION::mmuEject: - nLevel=1; - if(!bFilamentPreheatState) - nLevel++; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_fil_eject_menu); - break; - case eFILAMENT_ACTION::mmuCut: - nLevel=1; - if(!bFilamentPreheatState) - nLevel++; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_cut_filament_menu); - break; - } - if(bBeep) - Sound_MakeSound(e_SOUND_TYPE_StandardPrompt); - bBeep=false; - } - else bBeep=true; - } -} -*/ + nTargetOld = target_temperature[0]; + nTargetBedOld = target_temperature_bed; + setTargetHotend0((float )nTemp); + if (!wizard_active) setTargetBed((float) nTempBed); -void mFilamentItem(uint16_t nTemp,uint16_t nTempBed) -{ -static int nTargetOld,nTargetBedOld; -uint8_t nLevel; + if (eFilamentAction == FilamentAction::Preheat) + { + eFilamentAction = FilamentAction::None; + lcd_return_to_status(); + if (wizard_active) lcd_wizard(WizState::Unload); + return; + } -//if(bPreheatState) // not necessary - nTargetOld=target_temperature[0]; - nTargetBedOld=target_temperature_bed; -setTargetHotend0((float)nTemp); -setTargetBed((float)nTempBed); -lcd_timeoutToStatus.stop(); -if(current_temperature[0]>(target_temperature[0]*0.95)) - { - switch(eFilamentAction) - { - case FilamentAction::Load: - case FilamentAction::AutoLoad: - case FilamentAction::UnLoad: - if(bFilamentWaitingFlag) - menu_submenu(mFilamentPrompt); - else { - nLevel=bFilamentPreheatState?1:2; - menu_back(nLevel); - if((eFilamentAction==FilamentAction::Load)||(eFilamentAction==FilamentAction::AutoLoad)) - { - loading_flag=true; - enquecommand_P(PSTR("M701")); // load filament - if(eFilamentAction==FilamentAction::AutoLoad) - eFilamentAction=FilamentAction::None; // i.e. non-autoLoad - } - if(eFilamentAction==FilamentAction::UnLoad) - enquecommand_P(PSTR("M702")); // unload filament - } - break; - case FilamentAction::MmuLoad: - nLevel=bFilamentPreheatState?1:2; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_load_to_nozzle_menu); - break; - case FilamentAction::MmuUnLoad: - nLevel=bFilamentPreheatState?1:2; - bFilamentAction=true; - menu_back(nLevel); - extr_unload(); - break; - case FilamentAction::MmuEject: - nLevel=bFilamentPreheatState?1:2; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_fil_eject_menu); - break; - case FilamentAction::MmuCut: + lcd_timeoutToStatus.stop(); + + if (current_temperature[0] > (target_temperature[0] * 0.95)) + { + switch (eFilamentAction) + { + case FilamentAction::Load: + case FilamentAction::AutoLoad: + case FilamentAction::UnLoad: + if (bFilamentWaitingFlag) menu_submenu(mFilamentPrompt); + else + { + nLevel = bFilamentPreheatState ? 1 : 2; + menu_back(nLevel); + if ((eFilamentAction == FilamentAction::Load) || (eFilamentAction == FilamentAction::AutoLoad)) + { + loading_flag = true; + enquecommand_P(PSTR("M701")); // load filament + if (eFilamentAction == FilamentAction::AutoLoad) eFilamentAction = FilamentAction::None; // i.e. non-autoLoad + } + if (eFilamentAction == FilamentAction::UnLoad) + enquecommand_P(PSTR("M702")); // unload filament + } + break; + case FilamentAction::MmuLoad: + nLevel = bFilamentPreheatState ? 1 : 2; + bFilamentAction = true; + menu_back(nLevel); + menu_submenu(mmu_load_to_nozzle_menu); + break; + case FilamentAction::MmuUnLoad: + nLevel = bFilamentPreheatState ? 1 : 2; + bFilamentAction = true; + menu_back(nLevel); + extr_unload(); + break; + case FilamentAction::MmuEject: + nLevel = bFilamentPreheatState ? 1 : 2; + bFilamentAction = true; + menu_back(nLevel); + menu_submenu(mmu_fil_eject_menu); + break; + case FilamentAction::MmuCut: #ifdef MMU_HAS_CUTTER - nLevel=bFilamentPreheatState?1:2; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_cut_filament_menu); + nLevel=bFilamentPreheatState?1:2; + bFilamentAction=true; + menu_back(nLevel); + menu_submenu(mmu_cut_filament_menu); #endif //MMU_HAS_CUTTER - break; - case FilamentAction::None: - break; - } - if(bFilamentWaitingFlag) - Sound_MakeSound(e_SOUND_TYPE_StandardPrompt); - bFilamentWaitingFlag=false; - } -else { - bFilamentWaitingFlag=true; - lcd_set_cursor(0,0); - lcdui_print_temp(LCD_STR_THERMOMETER[0],(int)degHotend(0),(int)degTargetHotend(0)); - lcd_set_cursor(0,1); - switch(eFilamentAction) - { - case FilamentAction::Load: - case FilamentAction::AutoLoad: - case FilamentAction::MmuLoad: - lcd_puts_P(_i("Preheating to load")); ////MSG_ c=20 r=1 - break; - case FilamentAction::UnLoad: - case FilamentAction::MmuUnLoad: - lcd_puts_P(_i("Preheating to unload")); ////MSG_ c=20 r=1 - break; - case FilamentAction::MmuEject: - lcd_puts_P(_i("Preheating to eject")); ////MSG_ c=20 r=1 - break; - case FilamentAction::MmuCut: - lcd_puts_P(_i("Preheating to cut")); ////MSG_ c=20 r=1 - break; - case FilamentAction::None: - break; - } - lcd_set_cursor(0,3); - lcd_puts_P(_i(">Cancel")); ////MSG_ c=20 r=1 - if(lcd_clicked()) - { - bFilamentWaitingFlag=false; - if(!bFilamentPreheatState) - { - setTargetHotend0(0.0); - setTargetBed(0.0); - menu_back(); - } - else { - setTargetHotend0((float)nTargetOld); - setTargetBed((float)nTargetBedOld); - } - menu_back(); - if(eFilamentAction==FilamentAction::AutoLoad) - eFilamentAction=FilamentAction::None; // i.e. non-autoLoad - } - } + break; + case FilamentAction::None: + case FilamentAction::Preheat: + break; + } + if (bFilamentWaitingFlag) Sound_MakeSound(e_SOUND_TYPE_StandardPrompt); + bFilamentWaitingFlag = false; + } + else + { + bFilamentWaitingFlag = true; + lcd_set_cursor(0, 0); + lcdui_print_temp(LCD_STR_THERMOMETER[0], (int) degHotend(0), (int) degTargetHotend(0)); + lcd_set_cursor(0, 1); + switch (eFilamentAction) + { + case FilamentAction::Load: + case FilamentAction::AutoLoad: + case FilamentAction::MmuLoad: + lcd_puts_P(_i("Preheating to load")); ////MSG_ c=20 r=1 + break; + case FilamentAction::UnLoad: + case FilamentAction::MmuUnLoad: + lcd_puts_P(_i("Preheating to unload")); ////MSG_ c=20 r=1 + break; + case FilamentAction::MmuEject: + lcd_puts_P(_i("Preheating to eject")); ////MSG_ c=20 r=1 + break; + case FilamentAction::MmuCut: + lcd_puts_P(_i("Preheating to cut")); ////MSG_ c=20 r=1 + break; + case FilamentAction::None: + case FilamentAction::Preheat: + break; + } + lcd_set_cursor(0, 3); + lcd_puts_P(_i(">Cancel")); ////MSG_ c=20 r=1 + if (lcd_clicked()) + { + bFilamentWaitingFlag = false; + if (!bFilamentPreheatState) + { + setTargetHotend0(0.0); + setTargetBed(0.0); + menu_back(); + } + else + { + setTargetHotend0((float )nTargetOld); + setTargetBed((float) nTargetBedOld); + } + menu_back(); + if (eFilamentAction == FilamentAction::AutoLoad) eFilamentAction = FilamentAction::None; // i.e. non-autoLoad + } + } +} + +static void mFilamentItem_farm() +{ + bFilamentPreheatState = false; + mFilamentItem(FARM_PREHEAT_HOTEND_TEMP, FARM_PREHEAT_HPB_TEMP); +} +static void mFilamentItem_farm_nozzle() +{ + bFilamentPreheatState = false; + mFilamentItem(FARM_PREHEAT_HOTEND_TEMP, 0); } static void mFilamentItem_PLA() { -bFilamentPreheatState=false; -mFilamentItem(PLA_PREHEAT_HOTEND_TEMP,PLA_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(PLA_PREHEAT_HOTEND_TEMP, PLA_PREHEAT_HPB_TEMP); } static void mFilamentItem_PET() { -bFilamentPreheatState=false; -mFilamentItem(PET_PREHEAT_HOTEND_TEMP,PET_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(PET_PREHEAT_HOTEND_TEMP, PET_PREHEAT_HPB_TEMP); } static void mFilamentItem_ASA() { - bFilamentPreheatState=false; - mFilamentItem(ASA_PREHEAT_HOTEND_TEMP,ASA_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(ASA_PREHEAT_HOTEND_TEMP, ASA_PREHEAT_HPB_TEMP); } static void mFilamentItem_ABS() { -bFilamentPreheatState=false; -mFilamentItem(ABS_PREHEAT_HOTEND_TEMP,ABS_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(ABS_PREHEAT_HOTEND_TEMP, ABS_PREHEAT_HPB_TEMP); } static void mFilamentItem_HIPS() { -bFilamentPreheatState=false; -mFilamentItem(HIPS_PREHEAT_HOTEND_TEMP,HIPS_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(HIPS_PREHEAT_HOTEND_TEMP, HIPS_PREHEAT_HPB_TEMP); } static void mFilamentItem_PP() { -bFilamentPreheatState=false; -mFilamentItem(PP_PREHEAT_HOTEND_TEMP,PP_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(PP_PREHEAT_HOTEND_TEMP, PP_PREHEAT_HPB_TEMP); } static void mFilamentItem_FLEX() { -bFilamentPreheatState=false; -mFilamentItem(FLEX_PREHEAT_HOTEND_TEMP,FLEX_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(FLEX_PREHEAT_HOTEND_TEMP, FLEX_PREHEAT_HPB_TEMP); } - void mFilamentBack() { -menu_back(); -if(eFilamentAction==FilamentAction::AutoLoad) - eFilamentAction=FilamentAction::None; // i.e. non-autoLoad + menu_back(); + if (eFilamentAction == FilamentAction::AutoLoad || + eFilamentAction == FilamentAction::Preheat) + { + eFilamentAction = FilamentAction::None; // i.e. non-autoLoad + } } void mFilamentMenu() { MENU_BEGIN(); - MENU_ITEM_FUNCTION_P(_T(MSG_MAIN),mFilamentBack); - MENU_ITEM_SUBMENU_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)),mFilamentItem_PLA); - MENU_ITEM_SUBMENU_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)),mFilamentItem_PET); - MENU_ITEM_SUBMENU_P(PSTR("ASA - " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ASA_PREHEAT_HPB_TEMP)),mFilamentItem_ASA); - MENU_ITEM_SUBMENU_P(PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)),mFilamentItem_ABS); - MENU_ITEM_SUBMENU_P(PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)),mFilamentItem_HIPS); - MENU_ITEM_SUBMENU_P(PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)),mFilamentItem_PP); - MENU_ITEM_SUBMENU_P(PSTR("FLEX - " STRINGIFY(FLEX_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FLEX_PREHEAT_HPB_TEMP)),mFilamentItem_FLEX); + if (!wizard_active) MENU_ITEM_FUNCTION_P(_T(MSG_MAIN),mFilamentBack); + if (farm_mode) + { + MENU_ITEM_FUNCTION_P(PSTR("farm - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FARM_PREHEAT_HPB_TEMP)), mFilamentItem_farm); + MENU_ITEM_FUNCTION_P(PSTR("nozzle - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/0"), mFilamentItem_farm_nozzle); + } + else + { + MENU_ITEM_SUBMENU_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)),mFilamentItem_PLA); + MENU_ITEM_SUBMENU_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)),mFilamentItem_PET); + MENU_ITEM_SUBMENU_P(PSTR("ASA - " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ASA_PREHEAT_HPB_TEMP)),mFilamentItem_ASA); + MENU_ITEM_SUBMENU_P(PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)),mFilamentItem_ABS); + MENU_ITEM_SUBMENU_P(PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)),mFilamentItem_HIPS); + MENU_ITEM_SUBMENU_P(PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)),mFilamentItem_PP); + MENU_ITEM_SUBMENU_P(PSTR("FLEX - " STRINGIFY(FLEX_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FLEX_PREHEAT_HPB_TEMP)),mFilamentItem_FLEX); + } + if (!wizard_active && eFilamentAction == FilamentAction::Preheat) MENU_ITEM_FUNCTION_P(_T(MSG_COOLDOWN), lcd_cooldown); MENU_END(); } @@ -8489,8 +8313,23 @@ uint8_t get_message_level() void menu_lcd_longpress_func(void) { - move_menu_scale = 1.0; - menu_submenu(lcd_move_z); + if (homing_flag || mesh_bed_leveling_flag || menu_menu == lcd_babystep_z || menu_menu == lcd_move_z) + { + // disable longpress during re-entry, while homing or calibration + lcd_quick_feedback(); + return; + } + + if (current_position[Z_AXIS] < Z_HEIGHT_HIDE_LIVE_ADJUST_MENU && (moves_planned() || IS_SD_PRINTING || is_usb_printing )) + { + lcd_clear(); + menu_submenu(lcd_babystep_z); + } + else + { + move_menu_scale = 1.0; + menu_submenu(lcd_move_z); + } } void menu_lcd_charsetup_func(void) diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index f414a1cc1..516a31356 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -167,6 +167,7 @@ enum class FilamentAction : uint_least8_t MmuUnLoad, MmuEject, MmuCut, + Preheat, }; extern FilamentAction eFilamentAction; diff --git a/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h index 2539e82c3..45b88c7ba 100644 --- a/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h @@ -257,7 +257,7 @@ BED SETTINGS #define BED_ADJUSTMENT_UM_MAX 100 #define MESH_HOME_Z_CALIB 0.2 -#define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc. +#define MESH_HOME_Z_SEARCH 5.0f // Z lift for homing, mesh bed leveling etc. #define X_PROBE_OFFSET_FROM_EXTRUDER 23 // Z probe to nozzle X offset: -left +right #define Y_PROBE_OFFSET_FROM_EXTRUDER 9 // Z probe to nozzle Y offset: -front +behind diff --git a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h index fbbc332da..7b3e24458 100644 --- a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h @@ -256,7 +256,7 @@ BED SETTINGS #define BED_ADJUSTMENT_UM_MAX 100 #define MESH_HOME_Z_CALIB 0.2 -#define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc. +#define MESH_HOME_Z_SEARCH 5.0f // Z lift for homing, mesh bed leveling etc. #define X_PROBE_OFFSET_FROM_EXTRUDER 23 // Z probe to nozzle X offset: -left +right #define Y_PROBE_OFFSET_FROM_EXTRUDER 9 // Z probe to nozzle Y offset: -front +behind @@ -319,35 +319,27 @@ PREHEAT SETTINGS #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 55 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 240 #define PET_PREHEAT_HPB_TEMP 90 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 230 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h index d0d0341ca..6b918c0ce 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h @@ -314,7 +314,7 @@ #define BED_ADJUSTMENT_UM_MAX 100 #define MESH_HOME_Z_CALIB 0.2 -#define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc. +#define MESH_HOME_Z_SEARCH 5.0f // Z lift for homing, mesh bed leveling etc. #define X_PROBE_OFFSET_FROM_EXTRUDER 23 // Z probe to nozzle X offset: -left +right #define Y_PROBE_OFFSET_FROM_EXTRUDER 5 // Z probe to nozzle Y offset: -front +behind @@ -377,35 +377,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h index c931b7db0..f37a00db2 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h @@ -315,7 +315,7 @@ #define BED_ADJUSTMENT_UM_MAX 100 #define MESH_HOME_Z_CALIB 0.2 -#define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc. +#define MESH_HOME_Z_SEARCH 5.0f // Z lift for homing, mesh bed leveling etc. #define X_PROBE_OFFSET_FROM_EXTRUDER 23 // Z probe to nozzle X offset: -left +right #define Y_PROBE_OFFSET_FROM_EXTRUDER 5 // Z probe to nozzle Y offset: -front +behind @@ -378,35 +378,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h index c5df948c2..935066d2a 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h @@ -314,7 +314,7 @@ #define BED_ADJUSTMENT_UM_MAX 100 #define MESH_HOME_Z_CALIB 0.2 -#define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc. +#define MESH_HOME_Z_SEARCH 5.0f // Z lift for homing, mesh bed leveling etc. #define X_PROBE_OFFSET_FROM_EXTRUDER 23 // Z probe to nozzle X offset: -left +right #define Y_PROBE_OFFSET_FROM_EXTRUDER 5 // Z probe to nozzle Y offset: -front +behind @@ -377,35 +377,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h index cc2498d63..d5d0b7916 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h @@ -315,7 +315,7 @@ #define BED_ADJUSTMENT_UM_MAX 100 #define MESH_HOME_Z_CALIB 0.2 -#define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc. +#define MESH_HOME_Z_SEARCH 5.0f // Z lift for homing, mesh bed leveling etc. #define X_PROBE_OFFSET_FROM_EXTRUDER 23 // Z probe to nozzle X offset: -left +right #define Y_PROBE_OFFSET_FROM_EXTRUDER 5 // Z probe to nozzle Y offset: -front +behind @@ -378,35 +378,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index b2b266171..54f0c4699 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -422,7 +422,7 @@ #define BED_ADJUSTMENT_UM_MAX 100 #define MESH_HOME_Z_CALIB 0.2 -#define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc. +#define MESH_HOME_Z_SEARCH 5.0f // Z lift for homing, mesh bed leveling etc. #define X_PROBE_OFFSET_FROM_EXTRUDER 23 // Z probe to nozzle X offset: -left +right #define Y_PROBE_OFFSET_FROM_EXTRUDER 5 // Z probe to nozzle Y offset: -front +behind @@ -487,35 +487,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index 5736b632f..62dae6aca 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -424,7 +424,7 @@ #define BED_ADJUSTMENT_UM_MAX 100 #define MESH_HOME_Z_CALIB 0.2 -#define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc. +#define MESH_HOME_Z_SEARCH 5.0f // Z lift for homing, mesh bed leveling etc. #define X_PROBE_OFFSET_FROM_EXTRUDER 23 // Z probe to nozzle X offset: -left +right #define Y_PROBE_OFFSET_FROM_EXTRUDER 5 // Z probe to nozzle Y offset: -front +behind @@ -489,35 +489,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/lang/lang-export.sh b/lang/lang-export.sh index 4fa6bc598..ab123dbe8 100755 --- a/lang/lang-export.sh +++ b/lang/lang-export.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # # lang-export.sh - multi-language support script # for generating lang_xx.po diff --git a/lang/lang-import.sh b/lang/lang-import.sh index 6176e053f..092afb981 100755 --- a/lang/lang-import.sh +++ b/lang/lang-import.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # # lang-import.sh - multi-language support script # for importing translated xx.po diff --git a/lang/lang_en.txt b/lang/lang_en.txt index e2add8054..88d538a36 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -906,3 +906,147 @@ #MSG_ON "On" + +# +"Back" + +# +"Checks" + +# +"False triggering" + +# +"FINDA:" + +# +"Firmware [none]" + +# +"Firmware [strict]" + +# +"Firmware [warn]" + +# +"HW Setup" + +# +"IR:" + +# +"Magnets comp.[N/A]" + +# +"Magnets comp.[Off]" + +# +"Magnets comp. [On]" + +# +"Mesh [3x3]" + +# +"Mesh [7x7]" + +# +"Mesh bed leveling" + +# +"MK3S firmware detected on MK3 printer" + +# +"MMU Mode [Normal]" + +# +"MMU Mode[Stealth]" + +# +"Mode change in progress ..." + +# +"Model [none]" + +# +"Model [strict]" + +# +"Model [warn]" + +# +"Nozzle d. [0.25]" + +# +"Nozzle d. [0.40]" + +# +"Nozzle d. [0.60]" + +# +"Nozzle [none]" + +# +"Nozzle [strict]" + +# +"Nozzle [warn]" + +# +"G-code sliced for a different level. Continue?" + +# +"G-code sliced for a different level. Please re-slice the model again. Print cancelled." + +# +"G-code sliced for a different printer type. Continue?" + +# +"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." + +# +"G-code sliced for a newer firmware. Continue?" + +# +"G-code sliced for a newer firmware. Please update the firmware. Print cancelled." + +# +"PINDA:" + +# +"Preheating to cut" + +# +"Preheating to eject" + +# +"Printer nozzle diameter differs from the G-code. Continue?" + +# +"Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." + +# +"Rename" + +# +"Select" + +# +"Sensor info" + +# +"Sheet" + +# +"Sound [assist]" + +# +"Steel sheets" + +# +"Z-correct:" + +# +"Z-probe nr. [1]" + +# +"Z-probe nr. [3]" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 6bb5293f9..341c37b32 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -24,7 +24,7 @@ #MSG_BABYSTEPPING_Z c=15 "Adjusting Z:" -"Dostavovani Z:" +"Doladeni Z:" #MSG_SELFTEST_CHECK_ALLCORRECT c=20 "All correct " @@ -280,7 +280,7 @@ # "Filam. runouts" -"Vypadky filamentu" +"Vypadky filam." #MSG_FILAMENT_CLEAN c=20 r=2 "Filament extruding & with correct color?" @@ -656,7 +656,7 @@ # "Nozzle FAN" -"Trysk. vent." +"Tryska V." #MSG_PAUSE_PRINT "Pause print" @@ -760,7 +760,7 @@ #MSG_WIZARD_HEATING c=20 r=3 "Preheating nozzle. Please wait." -"Predehrivam trysku. Prosim cekejte." +"Predehrev trysky. Prosim cekejte." # "Please upgrade." @@ -780,15 +780,15 @@ # "Preheating to load" -"Predehrivam k zavedeni" +"Predehrev k zavedeni" # "Preheating to unload" -"Predehrivam k vyjmuti" +"Predehrev k vyjmuti" #MSG_SELFTEST_PRINT_FAN_SPEED c=18 "Print fan:" -"Tiskovy vent.:" +"Tiskovy v:" #MSG_CARD_MENU "Print from SD" @@ -796,7 +796,7 @@ # "Press the knob" -"Stisknete tlacitko" +"Stisknete hl. tlacitko" #MSG_PRINT_PAUSED c=20 r=1 "Print paused" @@ -812,7 +812,7 @@ # "Print FAN" -"Tiskovy vent." +"Tiskovy v" #MSG_PRUSA3D "prusa3d.com" @@ -1206,6 +1206,198 @@ "Off" "Vyp" +# +"Back" +"Zpet" + +# +"Checks" +"Kontrola" + +# +"False triggering" +"Falesne spusteni" + +# +"FINDA:" +"\x00" + #MSG_ON "On" "Zap" + +# +"Firmware [none]" +"Firmware [Zadne]" + +# +"Firmware [strict]" +"Firmware [Prisne]" + +# +"Firmware [warn]" +"Firmware[Varovat]" + +# +"HW Setup" +"HW nastaveni" + +# +"IR:" +"\x00" + +# +"Magnets comp.[N/A]" +"Komp. magnetu[N/A]" + +# +"Magnets comp.[Off]" +"Komp. magnetu[Vyp]" + +# +"Magnets comp. [On]" +"Komp. magnetu[Zap]" + +# +"Mesh [3x3]" +"Mesh [3x3]" + +# +"Mesh [7x7]" +"Mesh [7x7]" + +# +"Mesh bed leveling" +"Mesh Bed Leveling" + +# +"MK3S firmware detected on MK3 printer" +"MK3S firmware detekovan na tiskarne MK3" + +# +"MMU Mode [Normal]" +"MMU mod [Normal]" + +# +"MMU Mode[Stealth]" +"MMU Mod [Tichy]" + +# +"Mode change in progress ..." +"Probiha zmena modu..." + +# +"Model [none]" +"Model [Zadne]" + +# +"Model [strict]" +"Model [Prisne]" + +# +"Model [warn]" +"Model [Varovat]" + +# +"Nozzle d. [0.25]" +"Tryska [0.25]" + +# +"Nozzle d. [0.40]" +"Tryska [0.40]" + +# +"Nozzle d. [0.60]" +"Tryska [0.60]" + +# +"Nozzle [none]" +"Tryska [Zadne]" + +# +"Nozzle [strict]" +"Tryska [Prisne]" + +# +"Nozzle [warn]" +"Tryska [Varovat]" + +# +"G-code sliced for a different level. Continue?" +"\x00" + +# +"G-code sliced for a different level. Please re-slice the model again. Print cancelled." +"\x00" + +# +"G-code sliced for a different printer type. Continue?" +"G-code je pripraven pro jiny typ tiskarny. Pokracovat?" + +# +"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +"G-code je pripraven pro jiny typ tiskarny. Prosim preslicujte model znovu. Tisk zrusen." + +# +"G-code sliced for a newer firmware. Continue?" +"G-code je pripraven pro novejsi firmware. Pokracovat?" + +# +"G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +"G-code je pripraven pro novejsi firmware. Prosim aktualizujte firmware. Tisk zrusen." + +# +"PINDA:" +"\x00" + +# +"Preheating to cut" +"Predehrev k ustrizeni" + +# +"Preheating to eject" +"Predehrev k vysunuti" + +# +"Printer nozzle diameter differs from the G-code. Continue?" +"Prumer trysky tiskarny se lisi od G-code. Pokracovat?" + +# +"Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +"Prumer trysky tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen." + +# +"Rename" +"Prejmenovat" + +# +"Select" +"Vybrat" + +# +"Sensor info" +"Senzor info" + +# +"Sheet" +"Plat" + +# +"Sound [assist]" +"Zvuk [Asist.]" + +# +"Steel sheets" +"Tiskove platy" + +# +"Z-correct:" +"Korekce Z:" + +# +"Z-probe nr. [1]" +"Pocet mereni Z [1]" + +# +"Z-probe nr. [3]" +"Pocet mereni Z [3]" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 044156c1c..d9ac2d77c 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -24,11 +24,11 @@ #MSG_BABYSTEPPING_Z c=15 "Adjusting Z:" -"Z Einstellung:" +"Z Anpassen:" #MSG_SELFTEST_CHECK_ALLCORRECT c=20 "All correct " -"Alles richtig " +"Alles richtig " #MSG_WIZARD_DONE c=20 r=8 "All is done. Happy printing!" @@ -656,7 +656,7 @@ # "Nozzle FAN" -"Duesen Luefter" +"Duesevent." #MSG_PAUSE_PRINT "Pause print" @@ -812,7 +812,7 @@ # "Print FAN" -"Druckluefter" +"Druckvent" #MSG_PRUSA3D "prusa3d.com" @@ -852,7 +852,7 @@ #MSG_BED_CORRECTION_RIGHT c=14 r=1 "Right side[um]" -"Rechts [um]" +"Rechts [um]" #MSG_RPI_PORT "RPi port" @@ -892,7 +892,7 @@ #MSG_SELFTEST "Selftest " -"Selbsttest " +"Selbsttest " #MSG_SELFTEST_ERROR "Selftest error !" @@ -940,7 +940,7 @@ #MSG_NONE "None" -"Keine" +"Ohne" #MSG_SORT_TIME "Time" @@ -948,7 +948,7 @@ # "Severe skew" -"Schwerer Schraeglauf" +"Schwer.Schr" #MSG_SORT_ALPHA "Alphabet" @@ -964,7 +964,7 @@ # "Slight skew" -"Leichter Schraeglauf" +"Leicht.Schr" #MSG_SOUND "Sound" @@ -1000,7 +1000,7 @@ #MSG_STOPPED "STOPPED. " -"GESTOPPT. " +"GESTOPPT." #MSG_SUPPORT "Support" @@ -1012,15 +1012,15 @@ #MSG_TEMP_CALIBRATION c=20 r=1 "Temp. cal. " -"Temp Kalib. " +"Temp Kalib. " #MSG_TEMP_CALIBRATION_ON c=20 r=1 "Temp. cal. [on]" -"Temp. Kal. [AN]" +"Temp. Kal. [an]" #MSG_TEMP_CALIBRATION_OFF c=20 r=1 "Temp. cal. [off]" -"Temp. Kal. [AUS]" +"Temp. Kal. [aus]" #MSG_CALIBRATION_PINDA_MENU c=17 r=1 "Temp. calibration" @@ -1207,6 +1207,198 @@ "Off" "Aus" +# +"Back" +"Zurueck" + +# +"Checks" +"\x00" + #MSG_ON "On" "An" + +# +"False triggering" +"Falschtriggerung" + +# +"FINDA:" +"\x00" + +# +"Firmware [none]" +"Firmware [ohne]" + +# +"Firmware [strict]" +"Firmware [streng]" + +# +"Firmware [warn]" +"\x00" + +# +"HW Setup" +"HW Einstellungen" + +# +"IR:" +"\x00" + +# +"Magnets comp.[N/A]" +"Magnet Komp. [nv]" + +# +"Magnets comp.[Off]" +"Magnet Komp. [Aus]" + +# +"Magnets comp. [On]" +"Magnet Komp. [An]" + +# +"Mesh [3x3]" +"\x00" + +# +"Mesh [7x7]" +"\x00" + +# +"Mesh bed leveling" +"Mesh Bett Ausgleich" + +# +"MK3S firmware detected on MK3 printer" +"MK3S-Firmware auf MK3-Drucker erkannt" + +# +"MMU Mode [Normal]" +"MMU Modus[Normal]" + +# +"MMU Mode[Stealth]" +"MMU Mod.[Stealth]" + +# +"Mode change in progress ..." +"Moduswechsel erfolgt..." + +# +"Model [none]" +"Modell [ohne]" + +# +"Model [strict]" +"Modell [streng]" + +# +"Model [warn]" +"Modell [warn]" + +# +"Nozzle d. [0.25]" +"Duese D. [0.25]" + +# +"Nozzle d. [0.40]" +"Duese D. [0.40]" + +# +"Nozzle d. [0.60]" +"Duese D. [0.60]" + +# +"Nozzle [none]" +"Duese [ohne]" + +# +"Nozzle [strict]" +"Duese [streng]" + +# +"Nozzle [warn]" +"Duese [warn]" + +# +"G-code sliced for a different level. Continue?" +"G-Code ist fuer einen anderen Level geslict. Fortfahren?" + +# +"G-code sliced for a different level. Please re-slice the model again. Print cancelled." +"G-Code ist fuer einen anderen Level geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen." + +# +"G-code sliced for a different printer type. Continue?" +"G-Code ist fuer einen anderen Drucker geslict. Fortfahren?" + +# +"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +"G-Code ist fuer einen anderen Drucker geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen." + +# +"G-code sliced for a newer firmware. Continue?" +"G-Code ist fuer eine neuere Firmware geslict. Fortfahren?" + +# +"G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +"G-Code ist fuer eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen." + +# +"PINDA:" +"\x00" + +# +"Preheating to cut" +"Heizen zum Schnitt" + +# +"Preheating to eject" +"Heizen zum Auswurf" + +# +"Printer nozzle diameter differs from the G-code. Continue?" +"Der Durchmesser der Druckerduese weicht vom G-Code ab. Fortfahren?" + +# +"Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +"Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen." + +# +"Rename" +"Umbenennen" + +# +"Select" +"Auswahl" + +# +"Sensor info" +"Sensor Info" + +# +"Sheet" +"Blech" + +# +"Sound [assist]" +"Sound [Assist]" + +# +"Steel sheets" +"Stahlbleche" + +# +"Z-correct:" +"Z-Korrektur:" + +# +"Z-probe nr. [1]" +"Z-Probe Nr. [1]" + +# +"Z-probe nr. [3]" +"Z-Probe Nr. [3]" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index 40b7af190..d46fef5bf 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -24,7 +24,7 @@ #MSG_BABYSTEPPING_Z c=15 "Adjusting Z:" -"Ajustar Z:" +"Ajustando Z:" #MSG_SELFTEST_CHECK_ALLCORRECT c=20 "All correct " @@ -96,7 +96,7 @@ #MSG_BED "Bed" -"Base calefactable " +"Base" #MSG_MENU_BELT_STATUS c=15 r=1 "Belt status" @@ -200,7 +200,7 @@ #MSG_EXTRUDER_CORRECTION c=10 "E-correct:" -"E-correcion:" +"Correccion-E:" #MSG_EJECT_FILAMENT c=17 r=1 "Eject filament" @@ -240,7 +240,7 @@ #MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 "Extruder fan:" -"Ventilador del extrusor:" +"Vent.extrusor:" #MSG_INFO_EXTRUDER c=15 r=1 "Extruder info" @@ -532,7 +532,7 @@ # "Measured skew" -"Desviacion medida:" +"Desviacion med:" # "MMU fails" @@ -616,7 +616,7 @@ #MSG_NA "N/A" -"N/D" +"N/A" #MSG_NO "No" @@ -640,7 +640,7 @@ #MSG_WIZARD_WILL_PREHEAT c=20 r=4 "Now I will preheat nozzle for PLA." -"Voy a precalentar la boquilla para PLA ahora." +"Ahora precalentare la boquilla para PLA." #MSG_NOZZLE "Nozzle" @@ -656,7 +656,7 @@ # "Nozzle FAN" -"Ventilador de capa" +"Vent. capa" #MSG_PAUSE_PRINT "Pause print" @@ -788,7 +788,7 @@ #MSG_SELFTEST_PRINT_FAN_SPEED c=18 "Print fan:" -"Ventilador del fusor:" +"Vent.fusor:" #MSG_CARD_MENU "Print from SD" @@ -812,7 +812,7 @@ # "Print FAN" -"Ventilador del extrusor" +"Vent.extr" #MSG_PRUSA3D "prusa3d.com" @@ -848,7 +848,7 @@ #MSG_RESUMING_PRINT c=20 r=1 "Resuming print" -"Resumiendo impresion" +"Continuando impresion" #MSG_BED_CORRECTION_RIGHT c=14 r=1 "Right side[um]" @@ -940,15 +940,15 @@ #MSG_NONE "None" -"Nada" +"Ninguno" #MSG_SORT_TIME "Time" -"Fecha" +"Tiempo" # "Severe skew" -"Inclinacion severa" +"Incl.severa" #MSG_SORT_ALPHA "Alphabet" @@ -964,7 +964,7 @@ # "Slight skew" -"Ligeramente inclinado" +"Liger.incl." #MSG_SOUND "Sound" @@ -1016,11 +1016,11 @@ #MSG_TEMP_CALIBRATION_ON c=20 r=1 "Temp. cal. [on]" -"Cal. temp. [ON]" +"Cal. temp. [on]" #MSG_TEMP_CALIBRATION_OFF c=20 r=1 "Temp. cal. [off]" -"Cal. temp. [OFF]" +"Cal. temp. [off]" #MSG_CALIBRATION_PINDA_MENU c=17 r=1 "Temp. calibration" @@ -1164,7 +1164,7 @@ # "X-correct:" -"X-correcion:" +"Correccion-X:" #MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" @@ -1200,12 +1200,204 @@ # "Y-correct:" -"Y-correcion:" +"Correccion-Y:" #MSG_OFF "Off" "Ina" +# +"Back" +"atras" + +# +"Checks" +"Comprobaciones" + +# +"False triggering" +"Falsa activacion" + +# +"FINDA:" +"FINDA:" + +# +"Firmware [none]" +"Firmware[ninguno]" + +# +"Firmware [strict]" +"Firmware[estrict]" + +# +"Firmware [warn]" +"Firmware [aviso]" + +# +"HW Setup" +"Configuracion HW" + +# +"IR:" +"\x00" + #MSG_ON "On" "Act" + +# +"Magnets comp.[N/A]" +"Comp. imanes [N/A]" + +# +"Magnets comp.[Off]" +"Comp. imanes [Off]" + +# +"Magnets comp. [On]" +"Comp. imanes [On]" + +# +"Mesh [3x3]" +"Malla [3x3]" + +# +"Mesh [7x7]" +"Malla [7x7]" + +# +"Mesh bed leveling" +"Nivelacion Malla Base" + +# +"MK3S firmware detected on MK3 printer" +"Firmware MK3S detectado en impresora MK3" + +# +"MMU Mode [Normal]" +"Modo MMU [Normal]" + +# +"MMU Mode[Stealth]" +"Modo MMU[Silenci]" + +# +"Mode change in progress ..." +"Cambio de modo progresando ..." + +# +"Model [none]" +"Modelo [ninguno]" + +# +"Model [strict]" +"Modelo [estricto]" + +# +"Model [warn]" +"Modelo [aviso]" + +# +"Nozzle d. [0.25]" +"Diam. nozzl[0.25]" + +# +"Nozzle d. [0.40]" +"Diam. nozzl[0.40]" + +# +"Nozzle d. [0.60]" +"Diam. nozzl[0.60]" + +# +"Nozzle [none]" +"Nozzle [ninguno]" + +# +"Nozzle [strict]" +"Nozzle [estricto]" + +# +"Nozzle [warn]" +"Nozzle [aviso]" + +# +"G-code sliced for a different level. Continue?" +"Codigo G laminado para un nivel diferente. ?Continuar?" + +# +"G-code sliced for a different level. Please re-slice the model again. Print cancelled." +"Codigo G laminado para un nivel diferente. Por favor relamina el modelo de nuevo. Impresion cancelada." + +# +"G-code sliced for a different printer type. Continue?" +"Codigo G laminado para un tipo de impresora diferente. ?Continuar?" + +# +"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +"Codigo G laminado para una impresora diferente. Por favor relamina el modelo de nuevo. Impresion cancelada." + +# +"G-code sliced for a newer firmware. Continue?" +"Codigo G laminado para nuevo firmware. ?Continuar?" + +# +"G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +"Codigo G laminado para nuevo firmware. Por favor actualiza el firmware. Impresion cancelada." + +# +"PINDA:" +"PINDA:" + +# +"Preheating to cut" +"Precalentando para laminar" + +# +"Preheating to eject" +"Precalentar para expulsar" + +# +"Printer nozzle diameter differs from the G-code. Continue?" +"Diametro nozzle impresora difiere de cod.G. ?Continuar?" + +# +"Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +"Diametro nozzle Impresora difiere de cod.G. Comprueba los valores en ajustes. Impresion cancelada." + +# +"Rename" +"Renombrar" + +# +"Select" +"Seleccionar" + +# +"Sensor info" +"Info sensor" + +# +"Sheet" +"Lamina" + +# +"Sound [assist]" +"Sonido [asistido]" + +# +"Steel sheets" +"Lamina de acero" + +# +"Z-correct:" +"Correccion-Z:" + +# +"Z-probe nr. [1]" +"Z-sensor nr. [1]" + +# +"Z-probe nr. [3]" +"Z-sensor nr. [3]" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index 973f4c14e..ed58ece56 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -24,7 +24,7 @@ #MSG_BABYSTEPPING_Z c=15 "Adjusting Z:" -"Ajust. de Z:" +"Ajuster Z :" #MSG_SELFTEST_CHECK_ALLCORRECT c=20 "All correct " @@ -264,7 +264,7 @@ #MSG_FAN_SPEED c=14 "Fan speed" -"Vitesse ventil" +"Vitesse vent." #MSG_SELFTEST_FAN c=20 "Fan test" @@ -656,7 +656,7 @@ # "Nozzle FAN" -"Ventilateur buse" +"Vent. buse" #MSG_PAUSE_PRINT "Pause print" @@ -772,7 +772,7 @@ # "Power failures" -"Coupures de courant" +"Coup.de courant" #MSG_PRINT_ABORTED c=20 "Print aborted" @@ -788,7 +788,7 @@ #MSG_SELFTEST_PRINT_FAN_SPEED c=18 "Print fan:" -"Ventilo impr. :" +"Vent.impr:" #MSG_CARD_MENU "Print from SD" @@ -812,7 +812,7 @@ # "Print FAN" -"Ventilo impression" +"Vent.impr" #MSG_PRUSA3D "prusa3d.com" @@ -836,7 +836,7 @@ #MSG_CALIBRATE_BED_RESET "Reset XYZ calibr." -"Reinit. calibr. XYZ" +"Reinit.calibr. XYZ" #MSG_BED_CORRECTION_RESET "Reset" @@ -948,7 +948,7 @@ # "Severe skew" -"Deviation severe" +"Deviat.sev." #MSG_SORT_ALPHA "Alphabet" @@ -964,7 +964,7 @@ # "Slight skew" -"Deviation legere" +"Deviat.leg." #MSG_SOUND "Sound" @@ -1206,6 +1206,198 @@ "Off" "\x00" +# +"Back" +"Retour" + +# +"Checks" +"Verifications" + +# +"False triggering" +"Faux declenchement" + +# +"FINDA:" +"FINDA:" + +# +"Firmware [none]" +"Firmware [aucune]" + +# +"Firmware [strict]" +"Firmware[stricte]" + +# +"Firmware [warn]" +"Firmware [avert]" + +# +"HW Setup" +"Config HW" + +# +"IR:" +"IR:" + +# +"Magnets comp.[N/A]" +"Comp. aimants[N/A]" + +# +"Magnets comp.[Off]" +"Comp. aimants[Off]" + +# +"Magnets comp. [On]" +"Comp. aimants [On]" + +# +"Mesh [3x3]" +"\x00" + #MSG_ON "On" "\x00" + +# +"Mesh [7x7]" +"\x00" + +# +"Mesh bed leveling" +"\x00" + +# +"MK3S firmware detected on MK3 printer" +"Firmware MK3S detecte sur imprimante MK3" + +# +"MMU Mode [Normal]" +"Mode MMU [Normal]" + +# +"MMU Mode[Stealth]" +"Mode MMU [Furtif]" + +# +"Mode change in progress ..." +"Changement de mode en cours..." + +# +"Model [none]" +"Modele [aucune]" + +# +"Model [strict]" +"Modele [stricte]" + +# +"Model [warn]" +"Modele [avert]" + +# +"Nozzle d. [0.25]" +"Diam. buse [0.25]" + +# +"Nozzle d. [0.40]" +"Diam. buse [0.40]" + +# +"Nozzle d. [0.60]" +"Diam. buse [0.60]" + +# +"Nozzle [none]" +"Buse [aucune]" + +# +"Nozzle [strict]" +"Buse [stricte]" + +# +"Nozzle [warn]" +"Buse [avert]" + +# +"G-code sliced for a different level. Continue?" +"\x00" + +# +"G-code sliced for a different level. Please re-slice the model again. Print cancelled." +"\x00" + +# +"G-code sliced for a different printer type. Continue?" +"Le G-code a ete prepare pour une autre version de l'imprimante. Continuer?" + +# +"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +"Le G-code a ete prepare pour une autre version de l'imprimante. Veuillez decouper le modele a nouveau. L'impression a ete annulee. " + +# +"G-code sliced for a newer firmware. Continue?" +"Le G-code a ete prepare pour une version plus recente du firmware. Continuer?" + +# +"G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +"Le G-code a ete prepare pour une version plus recente du firmware. Veuillez mettre a jour le firmware. L'impression annulee." + +# +"PINDA:" +"PINDA:" + +# +"Preheating to cut" +"Prechauffage pour couper" + +# +"Preheating to eject" +"Prechauffage pour ejecter" + +# +"Printer nozzle diameter differs from the G-code. Continue?" +"Diametre de la buse de l'imprimante different du G-Code. Continuer ?" + +# +"Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +"Diametre de la buse de l'imprimante different du G-Code. Merci de verifier le parametre dans les reglages. Impression annulee." + +# +"Rename" +"Renommer" + +# +"Select" +"Selectionner" + +# +"Sensor info" +"Info capteur" + +# +"Sheet" +"Feuille" + +# +"Sound [assist]" +"Son [Assist]" + +# +"Steel sheets" +"Plaques en acier" + +# +"Z-correct:" +"Correct-Z:" + +# +"Z-probe nr. [1]" +"Sonde-Z num. [1]" + +# +"Z-probe nr. [3]" +"Sonde-Z num. [3]" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 8bf6038da..c5479d317 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -15,7 +15,7 @@ "Rilev. impatto\x0aattivabile solo\x0ain Modalita normale" #MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 -"WARNING:\x0aCrash detection disabled in Stealth mode" +"WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" "ATTENZIONE:\x0aRilev. impatto\x0adisattivato in\x0aModalita silenziosa" # @@ -240,7 +240,7 @@ #MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 "Extruder fan:" -"Ventola estrusore:" +"Ventola estr:" #MSG_INFO_EXTRUDER c=15 r=1 "Extruder info" @@ -252,7 +252,7 @@ # "Fail stats MMU" -"Statistiche fallimenti MMU" +"Stat.fall. MMU" #MSG_FSENSOR_AUTOLOAD "F. autoload" @@ -260,11 +260,11 @@ # "Fail stats" -"Statistiche fallimenti" +"Stat. fallimenti" #MSG_FAN_SPEED c=14 "Fan speed" -"Velocita ventola" +"Velocita vent." #MSG_SELFTEST_FAN c=20 "Fan test" @@ -476,7 +476,7 @@ #MSG_BED_CORRECTION_LEFT c=14 r=1 "Left side [um]" -"Lato sinistro [um]" +"Sinistra [um]" # "Lin. correction" @@ -532,7 +532,7 @@ # "Measured skew" -"Disassamento misurato" +"Deviazione mis" # "MMU fails" @@ -568,7 +568,7 @@ # "MMU power fails" -"Mancanza corrente MMU" +"Manc. corr. MMU" #MSG_STEALTH "Stealth" @@ -596,15 +596,15 @@ #MSG_MOVE_X "Move X" -"Muovi X" +"Sposta X" #MSG_MOVE_Y "Move Y" -"Muovi Y" +"Sposta Y" #MSG_MOVE_Z "Move Z" -"Muovi Z" +"Sposta Z" #MSG_NO_MOVE "No move." @@ -648,7 +648,7 @@ #MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 "Old settings found. Default PID, Esteps etc. will be set." -"Sono state trovate impostazioni vecchie. I valori di default di PID, Esteps etc. saranno impostati" +"Sono state trovate impostazioni vecchie. Verranno impostati i valori predefiniti di PID, Esteps etc." # "Now remove the test print from steel sheet." @@ -788,7 +788,7 @@ #MSG_SELFTEST_PRINT_FAN_SPEED c=18 "Print fan:" -"Ventola di stampa:" +"Vent.stam:" #MSG_CARD_MENU "Print from SD" @@ -940,19 +940,19 @@ #MSG_NONE "None" -"\x00" +"Nessuno" #MSG_SORT_TIME "Time" -"\x00" +"Tempo" # "Severe skew" -"Disassamento grave" +"Devia.grave" #MSG_SORT_ALPHA "Alphabet" -"Alfabet" +"Alfabeti" #MSG_SORTING c=20 r=1 "Sorting files" @@ -964,7 +964,7 @@ # "Slight skew" -"Disassamento lieve" +"Devia.lieve" #MSG_SOUND "Sound" @@ -1016,11 +1016,11 @@ #MSG_TEMP_CALIBRATION_ON c=20 r=1 "Temp. cal. [on]" -"Calib. temp. [ON]" +"Calib. temp. [on]" #MSG_TEMP_CALIBRATION_OFF c=20 r=1 "Temp. cal. [off]" -"Calib. temp.[OFF]" +"Calib. temp.[off]" #MSG_CALIBRATION_PINDA_MENU c=17 r=1 "Temp. calibration" @@ -1052,7 +1052,7 @@ # "Total print time" -"Tempo di stampa totale" +"Tempo stampa totale" #MSG_TUNE "Tune" @@ -1076,7 +1076,7 @@ #MSG_UNLOAD_FILAMENT c=17 "Unload filament" -"Scarica filam." +"Scarica filamento" #MSG_UNLOADING_FILAMENT c=20 r=1 "Unloading filament" @@ -1209,3 +1209,195 @@ #MSG_ON "On" "\x00" + +# +"Back" +"Indietro" + +# +"Checks" +"Controlli" + +# +"False triggering" +"Falso innesco" + +# +"FINDA:" +"\x00" + +# +"Firmware [none]" +"Firmware[nessuno]" + +# +"Firmware [strict]" +"Firmware [esatto]" + +# +"Firmware [warn]" +"Firmware [avviso]" + +# +"HW Setup" +"Installazione HW" + +# +"IR:" +"\x00" + +# +"Magnets comp.[N/A]" +"Comp. Magneti[N/A]" + +# +"Magnets comp.[Off]" +"Comp. Magneti[off]" + +# +"Magnets comp. [On]" +"Comp. Magneti [on]" + +# +"Mesh [3x3]" +"Griglia [3x3]" + +# +"Mesh [7x7]" +"Griglia [7x7]" + +# +"Mesh bed leveling" +"Mesh livel. letto" + +# +"MK3S firmware detected on MK3 printer" +"Firmware MK3S rilevato su stampante MK3" + +# +"MMU Mode [Normal]" +"Modalita MMU [Normale]" + +# +"MMU Mode[Stealth]" +"Modalita MMU [Silenziosa]" + +# +"Mode change in progress ..." +"Cambio modalita in corso ..." + +# +"Model [none]" +"Modello [nessuno]" + +# +"Model [strict]" +"Modello [esatto]" + +# +"Model [warn]" +"Modello [avviso]" + +# +"Nozzle d. [0.25]" +"Diam.Ugello[0.25]" + +# +"Nozzle d. [0.40]" +"Diam.Ugello[0.40]" + +# +"Nozzle d. [0.60]" +"Diam.Ugello[0.60]" + +# +"Nozzle [none]" +"Ugello [nessuno]" + +# +"Nozzle [strict]" +"Ugello [esatto]" + +# +"Nozzle [warn]" +"Ugello [avviso]" + +# +"G-code sliced for a different level. Continue?" +"G-code processato per un livello diverso. Continuare?" + +# +"G-code sliced for a different level. Please re-slice the model again. Print cancelled." +"G-code processato per un livello diverso. Per favore esegui nuovamente lo slice del modello. Stampa annullata." + +# +"G-code sliced for a different printer type. Continue?" +"G-code processato per una stampante diversa. Continuare?" + +# +"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +"G-code processato per una stampante diversa. Per favore esegui nuovamente lo slice del modello. Stampa annullata." + +# +"G-code sliced for a newer firmware. Continue?" +"G-code processato per un firmware piu recente. Continuare?" + +# +"G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +"G-code processato per un firmware piu recente. Per favore aggiorna il firmware. Stampa annullata." + +# +"PINDA:" +"\x00" + +# +"Preheating to cut" +"Preriscaldamento per taglio" + +# +"Preheating to eject" +"Preriscaldamento per espulsione" + +# +"Printer nozzle diameter differs from the G-code. Continue?" +"Diametro ugello diverso da G-Code. Continuare?" + +# +"Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +"Diametro ugello diverso dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata." + +# +"Rename" +"Rinomina" + +# +"Select" +"Seleziona" + +# +"Sensor info" +"Info Sensore" + +# +"Sheet" +"Piano" + +# +"Sound [assist]" +"Suono [assistito]" + +# +"Steel sheets" +"Piani d'acciaio" + +# +"Z-correct:" +"Correzione-Z:" + +# +"Z-probe nr. [1]" +"Z-probe nr. [1]" + +# +"Z-probe nr. [3]" +"Z-probe nr. [3]" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 54c482487..dcc923bb6 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -8,7 +8,7 @@ #MSG_MEASURED_OFFSET "[0;0] point offset" -"[0;0] przesuniecie punktu" +"[0;0] przesun.punktu" #MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 "Crash detection can\x0abe turned on only in\x0aNormal mode" @@ -24,7 +24,7 @@ #MSG_BABYSTEPPING_Z c=15 "Adjusting Z:" -"Dostrajanie Z:" +"Ustawianie Z:" #MSG_SELFTEST_CHECK_ALLCORRECT c=20 "All correct " @@ -44,7 +44,7 @@ #MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 "Are left and right Z~carriages all up?" -"Obydwa konce osi dojechaly do gornych ogranicznikow?" +"Obydwa konce osi sa na szczycie?" #MSG_AUTO_DEPLETE c=17 r=1 "SpoolJoin" @@ -200,7 +200,7 @@ #MSG_EXTRUDER_CORRECTION c=10 "E-correct:" -"Korekcja E:" +"Korekcja-E:" #MSG_EJECT_FILAMENT c=17 r=1 "Eject filament" @@ -240,7 +240,7 @@ #MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 "Extruder fan:" -"Went. ekstrudera:" +"Went. ekstr:" #MSG_INFO_EXTRUDER c=15 r=1 "Extruder info" @@ -656,7 +656,7 @@ # "Nozzle FAN" -"Went. hotendu" +"Went. Hotend" #MSG_PAUSE_PRINT "Pause print" @@ -788,7 +788,7 @@ #MSG_SELFTEST_PRINT_FAN_SPEED c=18 "Print fan:" -"Went. wydruku:" +"Went.wydr:" #MSG_CARD_MENU "Print from SD" @@ -812,7 +812,7 @@ # "Print FAN" -"Went. wydruku" +"Went.wydr" #MSG_PRUSA3D "prusa3d.com" @@ -936,7 +936,7 @@ #MSG_SORT "Sort" -"Sortuj" +"Sortowanie" #MSG_NONE "None" @@ -948,7 +948,7 @@ # "Severe skew" -"Znaczny skos" +"ZnacznySkos" #MSG_SORT_ALPHA "Alphabet" @@ -996,7 +996,7 @@ #MSG_STOP_PRINT "Stop print" -"Zatrzymac druk" +"Przerwanie druku" #MSG_STOPPED "STOPPED. " @@ -1016,7 +1016,7 @@ #MSG_TEMP_CALIBRATION_ON c=20 r=1 "Temp. cal. [on]" -"Kalibr. temp.[wl]" +"Kalibr.temp. [wl]" #MSG_TEMP_CALIBRATION_OFF c=20 r=1 "Temp. cal. [off]" @@ -1164,7 +1164,7 @@ # "X-correct:" -"Korekcja X:" +"Korekcja-X:" #MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" @@ -1200,12 +1200,204 @@ # "Y-correct:" -"Korekcja Y:" +"Korekcja-Y:" #MSG_OFF "Off" "Wyl" +# +"Back" +"Wstecz" + +# +"Checks" +"Testy" + +# +"False triggering" +"Falszywy alarm" + +# +"FINDA:" +"\x00" + #MSG_ON "On" "Wl" + +# +"Firmware [none]" +"Firmware [brak]" + +# +"Firmware [strict]" +"Firmware [restr.]" + +# +"Firmware [warn]" +"Firmware[ostrzez]" + +# +"HW Setup" +"Ustawienia HW" + +# +"IR:" +"\x00" + +# +"Magnets comp.[N/A]" +"Kor. magnesow [nd]" + +# +"Magnets comp.[Off]" +"Kor. magnesow[wyl]" + +# +"Magnets comp. [On]" +"Kor. magnesow [wl]" + +# +"Mesh [3x3]" +"Siatka [3x3]" + +# +"Mesh [7x7]" +"Siatka [7x7]" + +# +"Mesh bed leveling" +"Poziomowanie wg siatki" + +# +"MK3S firmware detected on MK3 printer" +"Wykryto firmware MK3S w drukarce MK3" + +# +"MMU Mode [Normal]" +"Tryb MMU[Normaln]" + +# +"MMU Mode[Stealth]" +"Tryb MMU[Stealth]" + +# +"Mode change in progress ..." +"Trwa zmiana trybu..." + +# +"Model [none]" +"Model [brak]" + +# +"Model [strict]" +"Model [restrykc.]" + +# +"Model [warn]" +"Model [ostrzez.]" + +# +"Nozzle d. [0.25]" +"Sr. dyszy [0,25]" + +# +"Nozzle d. [0.40]" +"Sr. dyszy [0,40]" + +# +"Nozzle d. [0.60]" +"Sr. dyszy [0,60]" + +# +"Nozzle [none]" +"Dysza [brak]" + +# +"Nozzle [strict]" +"Dysza [restrykc.]" + +# +"Nozzle [warn]" +"Dysza [ostrzez.]" + +# +"G-code sliced for a different level. Continue?" +"\x00" + +# +"G-code sliced for a different level. Please re-slice the model again. Print cancelled." +"G-code pociety na innym poziomie. Potnij model ponownie. Druk anulowany." + +# +"G-code sliced for a different printer type. Continue?" +"G-code pociety dla innej drukarki. Kontynuowac?" + +# +"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +"G-code pociety dla drukarki innego typu. Potnij model ponownie. Druk anulowany." + +# +"G-code sliced for a newer firmware. Continue?" +"G-code pociety dla nowszego firmware. Kontynuowac?" + +# +"G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +"G-code pociety dla nowszego firmware. Zaktualizuj firmware. Druk anulowany." + +# +"PINDA:" +"\x00" + +# +"Preheating to cut" +"Nagrzewanie do obciecia" + +# +"Preheating to eject" +"Nagrzewanie do wysuniecia" + +# +"Printer nozzle diameter differs from the G-code. Continue?" +"Srednica dyszy drukarki rozni sie od tej w G-code. Kontynuowac?" + +# +"Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +"Srednica dyszy rozni sie od tej w G-code. Sprawdz ustawienia. Druk anulowany." + +# +"Rename" +"Zmien nazwe" + +# +"Select" +"Wybierz" + +# +"Sensor info" +"Info o sensorach" + +# +"Sheet" +"Plyta" + +# +"Sound [assist]" +"Dzwiek [asyst.]" + +# +"Steel sheets" +"Plyty stalowe" + +# +"Z-correct:" +"Korekcja-Z:" + +# +"Z-probe nr. [1]" +"Pomiar-Z [1]" + +# +"Z-probe nr. [3]" +"Pomiar-Z [3]" diff --git a/lang/po/Firmware.pot b/lang/po/Firmware.pot index d61a746f2..d2e5bfd16 100644 --- a/lang/po/Firmware.pot +++ b/lang/po/Firmware.pot @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: en\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Ät 7. úno 2019 14:41:39\n" -"PO-Revision-Date: Ät 7. úno 2019 14:41:39\n" +"POT-Creation-Date: Wed Sep 4 16:13:32 CEST 2019\n" +"PO-Revision-Date: Wed Sep 4 16:13:32 CEST 2019\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -21,72 +21,72 @@ msgid " of 4" msgstr "" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr "" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3027 msgid "[0;0] point offset" msgstr "" # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: ultralcd.cpp:4219 -msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode" +#: +msgid "Crash detection can\x0abe turned on only in\x0aNormal mode" msgstr "" # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 -#: ultralcd.cpp:4231 -msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode" +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" msgstr "" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2290 msgid ">Cancel" msgstr "" -# MSG_BABYSTEPPING_Z c=20 -#: ultralcd.cpp:3043 -msgid "Adjusting Z" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3147 +msgid "Adjusting Z:" msgstr "" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "" # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "" # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1974 msgid "Ambient" msgstr "" # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2576 msgid "and press the knob" msgstr "" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3445 msgid "Are left and right Z~carriages all up?" msgstr "" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5114 msgid "SpoolJoin [on]" msgstr "" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5110 msgid "SpoolJoin [N/A]" msgstr "" -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +# MSG_AUTO_DEPLETE_OFF c=17 r=1 +#: ultralcd.cpp:5118 msgid "SpoolJoin [off]" msgstr "" @@ -96,32 +96,32 @@ msgid "Auto home" msgstr "" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6736 msgid "AutoLoad filament" msgstr "" # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4378 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "" # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2771 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "" # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "" @@ -136,7 +136,7 @@ msgid "Bed Heating" msgstr "" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5682 msgid "Bed level correct" msgstr "" @@ -145,38 +145,28 @@ msgstr "" msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." msgstr "" -# MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4 -#: Marlin_main.cpp:4508 -msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset." -msgstr "" - -# MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4 -#: Marlin_main.cpp:4512 -msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset." -msgstr "" - # MSG_BED #: messages.c:15 msgid "Bed" msgstr "" # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2002 msgid "Belt status" msgstr "" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" msgstr "" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5671 msgid "Calibrate XYZ" msgstr "" @@ -186,12 +176,12 @@ msgid "Calibrate Z" msgstr "" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4570 msgid "Calibrate" msgstr "" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "" @@ -201,37 +191,32 @@ msgid "Calibrating Z" msgstr "" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "" # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:813 msgid "Calibration done" msgstr "" # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Cancel" msgstr "" -# MSG_SD_INSERTED -#: -msgid "Card inserted" -msgstr "" - # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2676 msgid "Color not correct" msgstr "" @@ -241,7 +226,7 @@ msgid "Cooldown" msgstr "" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4503 msgid "Copy selected language?" msgstr "" @@ -266,27 +251,27 @@ msgid "Crash detected." msgstr "" # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:600 msgid "Crash detected. Resume print?" msgstr "" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Crash" msgstr "" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5823 msgid "Current" msgstr "" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2102 msgid "Date:" msgstr "" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5568 msgid "Disable steppers" msgstr "" @@ -296,77 +281,52 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "" # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4984 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "" -# MSG_EXTRUDER_CORRECTION c=9 -#: ultralcd.cpp:4889 -msgid "E-correct" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5048 +msgid "E-correct:" msgstr "" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "" -# MSG_EJECT_FILAMENT1 c=17 r=1 -#: ultralcd.cpp:5603 -msgid "Eject filament 1" -msgstr "" - -# MSG_EJECT_FILAMENT2 c=17 r=1 -#: ultralcd.cpp:5604 -msgid "Eject filament 2" -msgstr "" - -# MSG_EJECT_FILAMENT3 c=17 r=1 -#: ultralcd.cpp:5605 -msgid "Eject filament 3" -msgstr "" - -# MSG_EJECT_FILAMENT4 c=17 r=1 -#: ultralcd.cpp:5606 -msgid "Eject filament 4" -msgstr "" - -# MSG_EJECT_FILAMENT5 c=17 r=1 -#: ultralcd.cpp:5607 -msgid "Eject filament 5" -msgstr "" - # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Eject" msgstr "" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1434 msgid "Ejecting filament" msgstr "" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4391 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "" @@ -375,38 +335,13 @@ msgstr "" msgid "ERROR:" msgstr "" -# -#: Marlin_main.cpp:1006 -msgid "External SPI flash W25X20CL not responding." -msgstr "" - -# -#: ultralcd.cpp:5633 -msgid "Extruder 1" -msgstr "" - -# -#: ultralcd.cpp:5634 -msgid "Extruder 2" -msgstr "" - -# -#: ultralcd.cpp:5635 -msgid "Extruder 3" -msgstr "" - -# -#: ultralcd.cpp:5636 -msgid "Extruder 4" -msgstr "" - # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2133 msgid "Extruder info" msgstr "" @@ -416,12 +351,12 @@ msgid "Extruder" msgstr "" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" msgstr "" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5082 msgid "F. autoload [on]" msgstr "" @@ -431,12 +366,12 @@ msgid "F. autoload [N/A]" msgstr "" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5084 msgid "F. autoload [off]" msgstr "" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" msgstr "" @@ -446,17 +381,17 @@ msgid "Fan speed" msgstr "" # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5577 msgid "Fans check [on]" msgstr "" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5579 msgid "Fans check [off]" msgstr "" @@ -465,13 +400,8 @@ msgstr "" msgid "Fil. sensor [on]" msgstr "" -# MSG_RESPONSE_POOR c=20 r=2 -#: Marlin_main.cpp:3146 -msgid "Fil. sensor response is poor, disable it?" -msgstr "" - # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5062 msgid "Fil. sensor [N/A]" msgstr "" @@ -481,7 +411,7 @@ msgid "Fil. sensor [off]" msgstr "" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Filam. runouts" msgstr "" @@ -491,32 +421,27 @@ msgid "Filament extruding & with correct color?" msgstr "" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2672 msgid "Filament not loaded" msgstr "" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "" -# MSG_SELFTEST_FILAMENT_SENSOR c=18 -#: ultralcd.cpp:7477 -msgid "Filament sensor:" -msgstr "" - # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2841 msgid "Filament used" msgstr "" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2841 msgid "Print time" msgstr "" # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "" @@ -526,52 +451,52 @@ msgid "Finishing movements" msgstr "" # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4896 msgid "First, I will run the selftest to check most common assembly problems." msgstr "" # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "" # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2095 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3220 msgid "Front side[um]" msgstr "" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8468 msgid "Heating disabled by safety timer." msgstr "" @@ -586,67 +511,62 @@ msgid "Heating" msgstr "" # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4875 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2096 msgid "howto.prusa3d.com" msgstr "" -# -#: ultralcd.cpp:6087 -msgid "Change extruder" -msgstr "" - # MSG_FILAMENTCHANGE #: messages.c:37 msgid "Change filament" msgstr "" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2587 msgid "Change success!" msgstr "" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2664 msgid "Changed correctly?" msgstr "" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "" @@ -666,112 +586,82 @@ msgid "Filament" msgstr "" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4905 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "" # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4913 msgid "I will run z calibration now." msgstr "" # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4978 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "" -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: mesh_bed_calibration.cpp:2481 -msgid "Improving bed calibration point" -msgstr "" - # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "" -# MSG_FILAMENT_LOADING_T0 c=20 r=4 -#: messages.c:33 -msgid "Insert filament into extruder 1. Click when done." -msgstr "" - -# MSG_FILAMENT_LOADING_T1 c=20 r=4 -#: messages.c:34 -msgid "Insert filament into extruder 2. Click when done." -msgstr "" - -# MSG_FILAMENT_LOADING_T2 c=20 r=4 -#: messages.c:35 -msgid "Insert filament into extruder 3. Click when done." -msgstr "" - -# MSG_FILAMENT_LOADING_T3 c=20 r=4 -#: messages.c:36 -msgid "Insert filament into extruder 4. Click when done." -msgstr "" - # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:4938 msgid "Is filament 1 loaded?" msgstr "" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2572 msgid "Insert filament" msgstr "" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4941 msgid "Is filament loaded?" msgstr "" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4972 msgid "Is it PLA filament?" msgstr "" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4704 msgid "Is PLA filament loaded?" msgstr "" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" msgstr "" -# MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20 -#: mesh_bed_calibration.cpp:2223 -msgid "Iteration " -msgstr "" - # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1840 msgid "Last print failures" msgstr "" # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1823 msgid "Last print" msgstr "" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2970 msgid "Left" msgstr "" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3218 msgid "Left side [um]" msgstr "" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5594 msgid "Lin. correction" msgstr "" @@ -786,7 +676,7 @@ msgid "Load filament" msgstr "" # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2612 msgid "Loading color" msgstr "" @@ -796,92 +686,92 @@ msgid "Loading filament" msgstr "" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6719 msgid "Load to nozzle" msgstr "" # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "" # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5677 msgid "Mesh Bed Leveling" msgstr "" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "" # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "" # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3005 msgid "Measured skew" msgstr "" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU fails" msgstr "" # -#: mmu.cpp:1399 +#: mmu.cpp:1613 msgid "MMU load failed " msgstr "" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU load fails" msgstr "" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "" # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "" # -#: mmu.cpp:635 +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "" # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "MMU power fails" msgstr "" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" msgstr "" @@ -891,62 +781,62 @@ msgid "Mode [auto power]" msgstr "" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2108 msgid "MMU2 connected" msgstr "" # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5566 msgid "Move axis" msgstr "" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4294 msgid "Move X" msgstr "" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4295 msgid "Move Y" msgstr "" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4296 msgid "Move Z" msgstr "" # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5291 msgid "No move." msgstr "" # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6686 msgid "No SD card" msgstr "" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2976 msgid "N/A" msgstr "" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "" @@ -955,78 +845,73 @@ msgstr "" msgid "New firmware version available:" msgstr "" -# -#: -msgid "No " -msgstr "" - # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4977 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "" # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4921 msgid "Now I will preheat nozzle for PLA." msgstr "" # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1519 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "" # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4912 msgid "Now remove the test print from steel sheet." msgstr "" # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:1782 msgid "Nozzle FAN" msgstr "" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6649 msgid "Pause print" msgstr "" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1598 msgid "PID cal. " msgstr "" # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1604 msgid "PID cal. finished" msgstr "" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5683 msgid "PID calibration" msgstr "" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:843 msgid "PINDA Heating" msgstr "" # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "" # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4986 msgid "Please clean heatbed and then press the knob." msgstr "" @@ -1036,92 +921,92 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "" # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "" # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4808 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "" # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4709 msgid "Please load PLA filament first." msgstr "" # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3063 msgid "Please open idler and remove filament manually." msgstr "" # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "" # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "" # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4803 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "" # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1440 msgid "Please remove filament and then press the knob." msgstr "" # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "" # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4354 msgid "Please run XYZ calibration first." msgstr "" # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1359 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "" # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "" # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4911 msgid "Please remove shipping helpers first." msgstr "" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6636 msgid "Preheat" msgstr "" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "" @@ -1131,32 +1016,32 @@ msgid "Please upgrade." msgstr "" # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10365 msgid "Press knob to preheat nozzle and continue." msgstr "" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Power failures" msgstr "" # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "" # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2276 msgid "Preheating to load" msgstr "" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2280 msgid "Preheating to unload" msgstr "" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "" @@ -1166,17 +1051,17 @@ msgid "Print from SD" msgstr "" # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2206 msgid "Press the knob" msgstr "" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1061 msgid "Print paused" msgstr "" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "" @@ -1186,37 +1071,27 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi msgstr "" # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1784 msgid "Print FAN" msgstr "" -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK2.5 ready." -msgstr "" - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK3 ready." -msgstr "" - # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2094 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3221 msgid "Rear side [um]" msgstr "" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9765 msgid "Recovering print " msgstr "" # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "" @@ -1225,63 +1100,58 @@ msgstr "" msgid "Prusa i3 MK3S OK." msgstr "" -# -#: -msgid "Prusa i3 MK2 ready." -msgstr "" - # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5688 msgid "Reset XYZ calibr." msgstr "" # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3222 msgid "Reset" msgstr "" # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6656 msgid "Resume print" msgstr "" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3219 msgid "Right side[um]" msgstr "" # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5606 msgid "RPi port [on]" msgstr "" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5604 msgid "RPi port [off]" msgstr "" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4726 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5236 msgid "SD card [normal]" msgstr "" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5234 msgid "SD card [flshAir]" msgstr "" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2971 msgid "Right" msgstr "" @@ -1291,217 +1161,207 @@ msgid "Searching bed calibration point" msgstr "" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5613 msgid "Select language" msgstr "" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "" # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5664 msgid "Selftest " msgstr "" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1551 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "" # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4959 msgid "Select nozzle preheat temperature which matches your material." msgstr "" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Select PLA filament:" msgstr "" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3230 msgid "Set temperature:" msgstr "" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "" # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5685 msgid "Show end stops" msgstr "" # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:3941 msgid "Sensor state" msgstr "" -# -#: -msgid "Sensors info" -msgstr "" - -# -#: -msgid "Show pinda state" -msgstr "" - # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "" # MSG_SORT_NONE c=17 r=1 -#: ultralcd.cpp:5043 -msgid "Sort: [none]" +#: ultralcd.cpp:5246 +msgid "Sort [none]" msgstr "" # MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5041 -msgid "Sort: [time]" +#: ultralcd.cpp:5244 +msgid "Sort [time]" msgstr "" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3008 msgid "Severe skew" msgstr "" # MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5042 -msgid "Sort: [alphabet]" +#: ultralcd.cpp:5245 +msgid "Sort [alphabet]" msgstr "" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "" # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3007 msgid "Slight skew" msgstr "" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "" # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4870 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "" # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "" # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4367 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "" # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "" # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "" # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "" # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5600 msgid "Temp. cal. [on]" msgstr "" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5598 msgid "Temp. cal. [off]" msgstr "" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5694 msgid "Temp. calibration" msgstr "" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3867 msgid "Temperature calibration failed" msgstr "" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "" # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5564 msgid "Temperature" msgstr "" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2140 msgid "Temperatures" msgstr "" @@ -1511,127 +1371,122 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "" # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2863 msgid "Total filament" msgstr "" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2863 msgid "Total print time" msgstr "" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6633 msgid "Tune" msgstr "" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Unload" msgstr "" # -#: ultralcd.cpp:5617 -msgid "Unload all" -msgstr "" - -# -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "Total failures" msgstr "" # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2213 msgid "to load filament" msgstr "" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2217 msgid "to unload filament" msgstr "" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "" # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1824 msgid "Total" msgstr "" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5822 msgid "Used during print" msgstr "" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2143 msgid "Voltages" msgstr "" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2116 msgid "unknown" msgstr "" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5262 msgid "Wait for user..." msgstr "" # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3374 msgid "Waiting for nozzle and bed cooling" msgstr "" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3338 msgid "Waiting for PINDA probe cooling" msgstr "" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4782 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "" # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1511 msgid "Warning: both printer type and motherboard type changed." msgstr "" # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1503 msgid "Warning: motherboard type changed." msgstr "" # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1507 msgid "Warning: printer type changed." msgstr "" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3053 msgid "Was filament unload successful?" msgstr "" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5661 msgid "Wizard" msgstr "" # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2132 msgid "XYZ cal. details" msgstr "" @@ -1641,107 +1496,312 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "" # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3838 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "" # -#: ultralcd.cpp:4885 -msgid "X-correct" +#: ultralcd.cpp:5044 +msgid "X-correct:" msgstr "" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3832 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3819 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "" -# MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8 -#: ultralcd.cpp:3699 -msgid "XYZ calibration compromised. Left front calibration point not reachable." -msgstr "" - # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6080 msgid "Load all" msgstr "" -# MSG_LOAD_FILAMENT_1 c=17 -#: ultralcd.cpp:5576 -msgid "Load filament 1" -msgstr "" - # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3798 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "" # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "" # -#: ultralcd.cpp:3687 -msgid "XYZ calibration failed. Left front calibration point not reachable." -msgstr "" - -# MSG_LOAD_FILAMENT_2 c=17 -#: ultralcd.cpp:5577 -msgid "Load filament 2" -msgstr "" - -# -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3807 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "" -# MSG_LOAD_FILAMENT_3 c=17 -#: ultralcd.cpp:5578 -msgid "Load filament 3" -msgstr "" - # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2968 msgid "Y distance from min" msgstr "" # -#: ultralcd.cpp:4886 -msgid "Y-correct" +#: ultralcd.cpp:5045 +msgid "Y-correct:" msgstr "" -# MSG_LOAD_FILAMENT_4 c=17 -#: ultralcd.cpp:5579 -msgid "Load filament 4" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" msgstr "" -# MSG_LOAD_FILAMENT_5 c=17 -#: ultralcd.cpp:5582 -msgid "Load filament 5" +# +#: messages.c:57 +msgid "Back" +msgstr "" + +# +#: ultralcd.cpp:5553 +msgid "Checks" +msgstr "" + +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "" + +# +#: ultralcd.cpp:3946 +msgid "FINDA:" +msgstr "" + +# +#: ultralcd.cpp:5459 +msgid "Firmware [none]" +msgstr "" + +# +#: ultralcd.cpp:5465 +msgid "Firmware [strict]" +msgstr "" + +# +#: ultralcd.cpp:5462 +msgid "Firmware [warn]" +msgstr "" + +# +#: messages.c:87 +msgid "HW Setup" +msgstr "" + +# +#: ultralcd.cpp:3950 +msgid "IR:" +msgstr "" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "" + +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "" + +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "" + +# +#: ultralcd.cpp:5591 +msgid "Mesh bed leveling" +msgstr "" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "" + +# +#: ultralcd.cpp:5220 +msgid "MMU Mode [Normal]" +msgstr "" + +# +#: ultralcd.cpp:5221 +msgid "MMU Mode[Stealth]" +msgstr "" + +# +#: ultralcd.cpp:4427 +msgid "Mode change in progress ..." +msgstr "" + +# +#: ultralcd.cpp:5420 +msgid "Model [none]" +msgstr "" + +# +#: ultralcd.cpp:5426 +msgid "Model [strict]" +msgstr "" + +# +#: ultralcd.cpp:5423 +msgid "Model [warn]" +msgstr "" + +# +#: ultralcd.cpp:5381 +msgid "Nozzle d. [0.25]" +msgstr "" + +# +#: ultralcd.cpp:5384 +msgid "Nozzle d. [0.40]" +msgstr "" + +# +#: ultralcd.cpp:5387 +msgid "Nozzle d. [0.60]" +msgstr "" + +# +#: ultralcd.cpp:5335 +msgid "Nozzle [none]" +msgstr "" + +# +#: ultralcd.cpp:5341 +msgid "Nozzle [strict]" +msgstr "" + +# +#: ultralcd.cpp:5338 +msgid "Nozzle [warn]" +msgstr "" + +# +#: util.cpp:510 +msgid "G-code sliced for a different level. Continue?" +msgstr "" + +# +#: util.cpp:516 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "" + +# +#: ultralcd.cpp:3942 +msgid "PINDA:" +msgstr "" + +# +#: ultralcd.cpp:2286 +msgid "Preheating to cut" +msgstr "" + +# +#: ultralcd.cpp:2283 +msgid "Preheating to eject" +msgstr "" + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "" + +# +#: ultralcd.cpp:6597 +msgid "Rename" +msgstr "" + +# +#: ultralcd.cpp:6593 +msgid "Select" +msgstr "" + +# +#: ultralcd.cpp:2134 +msgid "Sensor info" +msgstr "" + +# +#: messages.c:58 +msgid "Sheet" +msgstr "" + +# +#: +msgid "Sound [assist]" +msgstr "" + +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "" + +# +#: ultralcd.cpp:5046 +msgid "Z-correct:" +msgstr "" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" msgstr "" diff --git a/lang/po/Firmware_cs.po b/lang/po/Firmware_cs.po index 3a1ab8858..c9130c600 100644 --- a/lang/po/Firmware_cs.po +++ b/lang/po/Firmware_cs.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: cs\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Ät 7. úno 2019 14:43:00\n" -"PO-Revision-Date: Ät 7. úno 2019 14:43:00\n" +"POT-Creation-Date: Wed Sep 4 16:13:39 CEST 2019\n" +"PO-Revision-Date: Wed Sep 4 16:13:39 CEST 2019\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -21,72 +21,72 @@ msgid " of 4" msgstr " z 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr " z 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3027 msgid "[0;0] point offset" msgstr "[0;0] odsazeni bodu" # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: ultralcd.cpp:4219 -msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode" -msgstr "\x1b[2JCrash detekce muze\x1b[1;0Hbyt zapnuta pouze v\x1b[2;0HNormal modu" +#: +msgid "Crash detection can\x0abe turned on only in\x0aNormal mode" +msgstr "Crash detekce muze\x0abyt zapnuta pouze v\x0aNormal modu" # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 -#: ultralcd.cpp:4231 -msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode" -msgstr "\x1b[2JPOZOR:\x1b[1;0HCrash detekce\x1b[2;0Hdeaktivovana ve\x1b[3;0HStealth modu" +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "POZOR:\x0aCrash detekce\x0adeaktivovana ve\x0aStealth modu" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2290 msgid ">Cancel" -msgstr "" +msgstr ">Zrusit" -# MSG_BABYSTEPPING_Z c=20 -#: ultralcd.cpp:3043 -msgid "Adjusting Z" -msgstr "Dostavovani Z" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3147 +msgid "Adjusting Z:" +msgstr "Dostavovani Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Vse OK " # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "Vse je hotovo." # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1974 msgid "Ambient" -msgstr "" +msgstr "Okoli" # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2576 msgid "and press the knob" msgstr "a stisknete tlacitko" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3445 msgid "Are left and right Z~carriages all up?" msgstr "Dojely oba Z voziky k~hornimu dorazu?" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5114 msgid "SpoolJoin [on]" msgstr "SpoolJoin [zap]" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5110 msgid "SpoolJoin [N/A]" -msgstr "SpoolJoin [N/A]" +msgstr "" -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +# MSG_AUTO_DEPLETE_OFF c=17 r=1 +#: ultralcd.cpp:5118 msgid "SpoolJoin [off]" msgstr "SpoolJoin [vyp]" @@ -96,32 +96,32 @@ msgid "Auto home" msgstr "" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6736 msgid "AutoLoad filament" msgstr "AutoZavedeni fil." # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4378 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "Automaticke zavadeni filamentu je dostupne pouze pri zapnutem filament senzoru..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2771 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "Automaticke zavadeni filamentu aktivni, stisknete tlacitko a vlozte filament..." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Delka osy" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Osa" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Podlozka / Topeni" @@ -136,7 +136,7 @@ msgid "Bed Heating" msgstr "Zahrivani bed" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5682 msgid "Bed level correct" msgstr "Korekce podlozky" @@ -145,38 +145,28 @@ msgstr "Korekce podlozky" msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." msgstr "Kalibrace Z selhala. Sensor nesepnul. Znecistena tryska? Cekam na reset." -# MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4 -#: Marlin_main.cpp:4508 -msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset." -msgstr "Kalibrace Z selhala. Sensor je odpojeny nebo preruseny kabel. Cekam na reset." - -# MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4 -#: Marlin_main.cpp:4512 -msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset." -msgstr "Kalibrace Z selhala. Sensor sepnul prilis vysoko. Cekam na reset." - # MSG_BED #: messages.c:15 msgid "Bed" msgstr "Podlozka" # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2002 msgid "Belt status" msgstr "Stav remenu" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "Detekovan vypadek proudu.Obnovit tisk?" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" -msgstr "" +msgstr "Kalibruji vychozi poz." # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5671 msgid "Calibrate XYZ" msgstr "Kalibrace XYZ" @@ -186,12 +176,12 @@ msgid "Calibrate Z" msgstr "Kalibrovat Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4570 msgid "Calibrate" msgstr "Zkalibrovat" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Kalibrace XYZ. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem." @@ -201,37 +191,32 @@ msgid "Calibrating Z" msgstr "Kalibruji Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Kalibrace Z. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem." # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:813 msgid "Calibration done" msgstr "Kalibrace OK" # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "Kalibrace" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Cancel" msgstr "Zrusit" -# MSG_SD_INSERTED -#: -msgid "Card inserted" -msgstr "Karta vlozena" - # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "Karta vyjmuta" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2676 msgid "Color not correct" msgstr "Barva neni cista" @@ -241,7 +226,7 @@ msgid "Cooldown" msgstr "Zchladit" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4503 msgid "Copy selected language?" msgstr "Kopirovat vybrany jazyk?" @@ -253,7 +238,7 @@ msgstr "Crash det. [zap]" # MSG_CRASHDETECT_NA #: messages.c:25 msgid "Crash det. [N/A]" -msgstr "Crash det. [N/A]" +msgstr "" # MSG_CRASHDETECT_OFF #: messages.c:26 @@ -266,27 +251,27 @@ msgid "Crash detected." msgstr "Detekovan naraz." # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:600 msgid "Crash detected. Resume print?" msgstr "Detekovan naraz. Obnovit tisk?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Crash" -msgstr "" +msgstr "Naraz" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5823 msgid "Current" msgstr "Pouze aktualni" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2102 msgid "Date:" msgstr "Datum:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5568 msgid "Disable steppers" msgstr "Vypnout motory" @@ -296,77 +281,52 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "Neni zkalibrovana vzdalenost trysky od tiskove podlozky. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Nastaveni prvni vrstvy." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4984 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "Chcete opakovat posledni krok a pozmenit vzdalenost mezi tryskou a podlozkou?" -# MSG_EXTRUDER_CORRECTION c=9 -#: ultralcd.cpp:4889 -msgid "E-correct" -msgstr "Korekce E" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5048 +msgid "E-correct:" +msgstr "Korekce E:" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "Vysunout filament" -# MSG_EJECT_FILAMENT1 c=17 r=1 -#: ultralcd.cpp:5603 -msgid "Eject filament 1" -msgstr "Vysunout filament 1" - -# MSG_EJECT_FILAMENT2 c=17 r=1 -#: ultralcd.cpp:5604 -msgid "Eject filament 2" -msgstr "Vysunout filament 2" - -# MSG_EJECT_FILAMENT3 c=17 r=1 -#: ultralcd.cpp:5605 -msgid "Eject filament 3" -msgstr "Vysunout filament 3" - -# MSG_EJECT_FILAMENT4 c=17 r=1 -#: ultralcd.cpp:5606 -msgid "Eject filament 4" -msgstr "Vysunout filament 4" - -# MSG_EJECT_FILAMENT5 c=17 r=1 -#: ultralcd.cpp:5607 -msgid "Eject filament 5" -msgstr "Vysunout filament 5" - # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Eject" msgstr "Vysunout" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1434 msgid "Ejecting filament" msgstr "Vysouvam filament" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Kon. spinac nesepnut" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "Koncovy spinac" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "Konc. spinace" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Chyba - Doslo k prepisu staticke pameti!" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4391 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte zapojeni." @@ -375,38 +335,13 @@ msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte zapojeni." msgid "ERROR:" msgstr "CHYBA:" -# -#: Marlin_main.cpp:1006 -msgid "External SPI flash W25X20CL not responding." -msgstr "Externi SPI flash W25X20CL neodpovida." - -# -#: ultralcd.cpp:5633 -msgid "Extruder 1" -msgstr "" - -# -#: ultralcd.cpp:5634 -msgid "Extruder 2" -msgstr "" - -# -#: ultralcd.cpp:5635 -msgid "Extruder 3" -msgstr "" - -# -#: ultralcd.cpp:5636 -msgid "Extruder 4" -msgstr "" - # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Levy vent.:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2133 msgid "Extruder info" msgstr "" @@ -416,12 +351,12 @@ msgid "Extruder" msgstr "" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" -msgstr "" +msgstr "Selhani MMU" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5082 msgid "F. autoload [on]" msgstr "F. autozav. [zap]" @@ -431,14 +366,14 @@ msgid "F. autoload [N/A]" msgstr "F. autozav. [N/A]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5084 msgid "F. autoload [off]" msgstr "F. autozav. [vyp]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" -msgstr "" +msgstr "Selhani" # MSG_FAN_SPEED c=14 #: messages.c:31 @@ -446,17 +381,17 @@ msgid "Fan speed" msgstr "Rychlost vent." # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Test ventilatoru" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5577 msgid "Fans check [on]" msgstr "Kontr. vent.[zap]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5579 msgid "Fans check [off]" msgstr "Kontr. vent.[vyp]" @@ -465,13 +400,8 @@ msgstr "Kontr. vent.[vyp]" msgid "Fil. sensor [on]" msgstr "Fil. senzor [zap]" -# MSG_RESPONSE_POOR c=20 r=2 -#: Marlin_main.cpp:3146 -msgid "Fil. sensor response is poor, disable it?" -msgstr "Senzor nerozpoznal filament, vypnout?" - # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5062 msgid "Fil. sensor [N/A]" msgstr "Fil. senzor [N/A]" @@ -481,9 +411,9 @@ msgid "Fil. sensor [off]" msgstr "Fil. senzor [vyp]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Filam. runouts" -msgstr "" +msgstr "Vypadky filamentu" # MSG_FILAMENT_CLEAN c=20 r=2 #: messages.c:32 @@ -491,32 +421,27 @@ msgid "Filament extruding & with correct color?" msgstr "Filament vytlacen a spravne barvy?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2672 msgid "Filament not loaded" msgstr "Filament nezaveden" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Senzor filamentu" -# MSG_SELFTEST_FILAMENT_SENSOR c=18 -#: ultralcd.cpp:7477 -msgid "Filament sensor:" -msgstr "Senzor filamentu:" - # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2841 msgid "Filament used" msgstr "Spotrebovano filamentu" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2841 msgid "Print time" msgstr "Cas tisku" # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "Soubor nekompletni. Pokracovat?" @@ -526,52 +451,52 @@ msgid "Finishing movements" msgstr "Dokoncovani pohybu" # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Kal. prvni vrstvy" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4896 msgid "First, I will run the selftest to check most common assembly problems." msgstr "Nejdriv pomoci selftestu zkontoluji nejcastejsi chyby vznikajici pri sestaveni tiskarny." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Opravte chybu a pote stisknete tlacitko na jednotce MMU." # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Prutok" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2095 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Predni tiskovy vent?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3220 msgid "Front side[um]" msgstr "Vpredu [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Predni/levy vent." # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Topeni/Termistor" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8468 msgid "Heating disabled by safety timer." msgstr "Zahrivani preruseno bezpecnostnim casovacem." @@ -586,67 +511,62 @@ msgid "Heating" msgstr "Zahrivani" # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4875 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Dobry den, jsem vase tiskarna Original Prusa i3. Chcete abych Vas provedla kalibracnim procesem?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2096 msgid "howto.prusa3d.com" msgstr "" -# -#: ultralcd.cpp:6087 -msgid "Change extruder" -msgstr "Zmenit extruder" - # MSG_FILAMENTCHANGE #: messages.c:37 msgid "Change filament" msgstr "Vymenit filament" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2587 msgid "Change success!" msgstr "Zmena uspesna!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2664 msgid "Changed correctly?" msgstr "Vymena ok?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Kontrola podlozky" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Kontrola endstopu" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Kontrola hotend " # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Kontrola senzoru" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Kontrola osy X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Kontrola osy Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Kontrola osy Z" @@ -666,112 +586,82 @@ msgid "Filament" msgstr "" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4905 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Nyni provedu xyz kalibraci. Zabere to priblizne 12 min." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4913 msgid "I will run z calibration now." msgstr "Nyni provedu z kalibraci." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4978 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "Zacnu tisknout linku a Vy budete postupne snizovat trysku otacenim tlacitka dokud nedosahnete optimalni vysky. Prohlednete si obrazky v nasi prirucce v kapitole Kalibrace." -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: mesh_bed_calibration.cpp:2481 -msgid "Improving bed calibration point" -msgstr "Zlepsuji presnost kalibracniho bodu" - # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Informace" -# MSG_FILAMENT_LOADING_T0 c=20 r=4 -#: messages.c:33 -msgid "Insert filament into extruder 1. Click when done." -msgstr "Vlozte filament do extruderu 1. Potvrdte tlacitkem." - -# MSG_FILAMENT_LOADING_T1 c=20 r=4 -#: messages.c:34 -msgid "Insert filament into extruder 2. Click when done." -msgstr "Vlozte filament do extruderu 2. Potvrdte tlacitkem." - -# MSG_FILAMENT_LOADING_T2 c=20 r=4 -#: messages.c:35 -msgid "Insert filament into extruder 3. Click when done." -msgstr "Vlozte filament do extruderu 3. Potvrdte tlacitkem." - -# MSG_FILAMENT_LOADING_T3 c=20 r=4 -#: messages.c:36 -msgid "Insert filament into extruder 4. Click when done." -msgstr "Vlozte filament do extruderu 4. Potvrdte tlacitkem." - # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:4938 msgid "Is filament 1 loaded?" msgstr "Je filament 1 zaveden?" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2572 msgid "Insert filament" msgstr "Vlozte filament" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4941 msgid "Is filament loaded?" msgstr "Je filament zaveden?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4972 msgid "Is it PLA filament?" msgstr "Je to PLA filament?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4704 msgid "Is PLA filament loaded?" msgstr "Je PLA filament zaveden?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" msgstr "Je tiskovy plat na podlozce?" -# MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20 -#: mesh_bed_calibration.cpp:2223 -msgid "Iteration " -msgstr "Iterace " - # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1840 msgid "Last print failures" -msgstr "" +msgstr "Selhani posl. tisku" # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1823 msgid "Last print" -msgstr "" +msgstr "Posledni tisk" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Levy vent na trysce?" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2970 msgid "Left" msgstr "Vlevo:" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3218 msgid "Left side [um]" msgstr "Vlevo [um]" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5594 msgid "Lin. correction" msgstr "Korekce lin." @@ -786,7 +676,7 @@ msgid "Load filament" msgstr "Zavest filament" # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2612 msgid "Loading color" msgstr "Cisteni barvy" @@ -796,92 +686,92 @@ msgid "Loading filament" msgstr "Zavadeni filamentu" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Uvolnena remenicka" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6719 msgid "Load to nozzle" msgstr "Zavest do trysky" # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Kal. prvni vrstvy" # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Hlavni nabidka" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Merim referencni vysku kalibracniho bodu" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5677 msgid "Mesh Bed Leveling" msgstr "" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Pokracuji v tisku..." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Pokracuji v nahrivani..." # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3005 msgid "Measured skew" msgstr "Merene zkoseni" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU fails" -msgstr "" +msgstr "Selhani MMU" # -#: mmu.cpp:1399 +#: mmu.cpp:1613 msgid "MMU load failed " -msgstr "" +msgstr "Zavedeni MMU selhalo" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU load fails" -msgstr "" +msgstr "MMU selhani zavadeni" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Pokracuji..." # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "Mod [Normal]" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Mod [tichy]" # -#: mmu.cpp:635 +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "MMU potrebuje zasah uzivatele." # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "MMU power fails" -msgstr "" +msgstr "MMU vypadky proudu" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" msgstr "Mod [tichy]" @@ -891,62 +781,62 @@ msgid "Mode [auto power]" msgstr "Mod [automaticky]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "Mod [vys. vykon]" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2108 msgid "MMU2 connected" -msgstr "" +msgstr "MMU2 pripojeno" # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5566 msgid "Move axis" msgstr "Posunout osu" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4294 msgid "Move X" msgstr "Posunout X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4295 msgid "Move Y" msgstr "Posunout Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4296 msgid "Move Z" msgstr "Posunout Z" # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5291 msgid "No move." msgstr "Bez pohybu." # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6686 msgid "No SD card" msgstr "Zadna SD karta" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2976 msgid "N/A" msgstr "" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "Ne" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "Nezapojeno " @@ -955,78 +845,73 @@ msgstr "Nezapojeno " msgid "New firmware version available:" msgstr "Vysla nova verze firmware:" -# -#: -msgid "No " -msgstr "Ne" - # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Netoci se" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4977 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "Nyni zkalibruji vzdalenost mezi koncem trysky a povrchem podlozky." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4921 msgid "Now I will preheat nozzle for PLA." msgstr "Nyni predehreji trysku pro PLA." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Tryska" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1519 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd." # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4912 msgid "Now remove the test print from steel sheet." msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu." # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:1782 msgid "Nozzle FAN" -msgstr "" +msgstr "Trysk. vent." # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6649 msgid "Pause print" msgstr "Pozastavit tisk" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1598 msgid "PID cal. " msgstr "PID kal. " # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1604 msgid "PID cal. finished" msgstr "PID kal. ukoncena" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5683 msgid "PID calibration" msgstr "PID kalibrace" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:843 msgid "PINDA Heating" msgstr "Nahrivani PINDA" # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, okamzite vypnete tiskarnu." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4986 msgid "Please clean heatbed and then press the knob." msgstr "Prosim ocistete podlozku a stisknete tlacitko." @@ -1036,92 +921,92 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Zkontrolujte :" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Prosim nahlednete do prirucky 3D tiskare a opravte problem. Pote obnovte Pruvodce restartovanim tiskarny." # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4808 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "Prosim vlozte PLA filament do extruderu, pote stisknete tlacitko pro zavedeni filamentu." # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4709 msgid "Please load PLA filament first." msgstr "Nejdrive prosim zavedte PLA filament." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3063 msgid "Please open idler and remove filament manually." msgstr "Prosim otevrete idler a manualne odstrante filament." # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "Umistete prosim tiskovy plat na podlozku" # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Pro vysunuti filamentu stisknete prosim tlacitko" # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4803 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Prosim vlozte PLA filament do trubicky MMU, pote stisknete tlacitko pro zavedeni filamentu." # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Prosim vyjmete urychlene filament" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1440 msgid "Please remove filament and then press the knob." msgstr "Prosim vyjmete filament a pote stisknete tlacitko." # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "Odstrante prosim tiskovy plat z podlozky." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4354 msgid "Please run XYZ calibration first." msgstr "Nejprve spustte kalibraci XYZ." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1359 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Prosim aktualizujte firmware ve vasi MMU2 jednotce. Cekam na reset." # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Prosim cekejte" # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4911 msgid "Please remove shipping helpers first." msgstr "Nejprve prosim sundejte transportni soucastky." # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Predehrejte trysku!" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6636 msgid "Preheat" msgstr "Predehrev" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "Predehrivam trysku. Prosim cekejte." @@ -1131,32 +1016,32 @@ msgid "Please upgrade." msgstr "Prosim aktualizujte." # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10365 msgid "Press knob to preheat nozzle and continue." msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko." # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Power failures" -msgstr "" +msgstr "Vypadky proudu" # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Tisk prerusen" # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2276 msgid "Preheating to load" -msgstr "" +msgstr "Predehrivam k zavedeni" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2280 msgid "Preheating to unload" -msgstr "" +msgstr "Predehrivam k vyjmuti" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "Tiskovy vent.:" @@ -1166,17 +1051,17 @@ msgid "Print from SD" msgstr "Tisk z SD" # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2206 msgid "Press the knob" -msgstr "" +msgstr "Stisknete hl. tlacitko" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1061 msgid "Print paused" msgstr "Tisk pozastaven" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Pro pokracovani nahrivani trysky stisknete tlacitko." @@ -1186,37 +1071,27 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi msgstr "Tiskarna nebyla jeste zkalibrovana. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Postup kalibrace." # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1784 msgid "Print FAN" -msgstr "" - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK2.5 ready." -msgstr "Prusa i3 MK2.5 ok." - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK3 ready." -msgstr "Prusa i3 MK3 ok." +msgstr "Tiskovy vent." # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2094 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3221 msgid "Rear side [um]" msgstr "Vzadu [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9765 msgid "Recovering print " msgstr "Obnovovani tisku " # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho." @@ -1225,63 +1100,58 @@ msgstr "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho." msgid "Prusa i3 MK3S OK." msgstr "" -# -#: -msgid "Prusa i3 MK2 ready." -msgstr "Prusa i3 MK2 ok." - # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5688 msgid "Reset XYZ calibr." msgstr "Reset XYZ kalibr." # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3222 msgid "Reset" msgstr "" # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6656 msgid "Resume print" msgstr "Pokracovat" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "Obnoveni tisku" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3219 msgid "Right side[um]" msgstr "Vpravo [um]" # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5606 msgid "RPi port [on]" msgstr "RPi port [zap]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5604 msgid "RPi port [off]" msgstr "RPi port [vyp]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4726 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Spusteni Pruvodce vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5236 msgid "SD card [normal]" -msgstr "SD card [normal]" +msgstr "" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5234 msgid "SD card [flshAir]" msgstr "SD card [FlshAir]" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2971 msgid "Right" msgstr "Vpravo" @@ -1291,217 +1161,207 @@ msgid "Searching bed calibration point" msgstr "Hledam kalibracni bod podlozky" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5613 msgid "Select language" msgstr "Vyber jazyka" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Self test start " # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5664 msgid "Selftest " msgstr "Selftest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Chyba Selftestu!" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "Selftest selhal " # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1551 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest." # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4959 msgid "Select nozzle preheat temperature which matches your material." msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu." # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Select PLA filament:" msgstr "Vyberte PLA filament:" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3230 msgid "Set temperature:" msgstr "Nastavte teplotu:" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Nastaveni" # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5685 msgid "Show end stops" msgstr "Stav konc. spin." # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:3941 msgid "Sensor state" -msgstr "" - -# -#: -msgid "Sensors info" -msgstr "" - -# -#: -msgid "Show pinda state" -msgstr "Zobrazit stav PINDA" +msgstr "Stav senzoru" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100." # MSG_SORT_NONE c=17 r=1 -#: ultralcd.cpp:5043 -msgid "Sort: [none]" +#: ultralcd.cpp:5246 +msgid "Sort [none]" msgstr "Trideni [Zadne]" # MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5041 -msgid "Sort: [time]" -msgstr "Trideni: [cas]" +#: ultralcd.cpp:5244 +msgid "Sort [time]" +msgstr "Trideni [cas]" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3008 msgid "Severe skew" msgstr "Tezke zkoseni" # MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5042 -msgid "Sort: [alphabet]" +#: ultralcd.cpp:5245 +msgid "Sort [alphabet]" msgstr "Trideni [Abeceda]" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Trideni souboru" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "Zvuk [hlasity]" # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3007 msgid "Slight skew" msgstr "Lehke zkoseni" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "Zvuk [vypnuto]" # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4870 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Vyskytl se problem, srovnavam osu Z ..." # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "Zvuk [jednou]" # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "Zvuk [tichy]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Rychlost" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Toci se" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4367 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Je vyzadovana stabilni pokojova teplota 21-26C a pevna podlozka." # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Statistika " # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "Zastavit tisk" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "ZASTAVENO." # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "Podpora" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Prohozene" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "Tepl. kal. " # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5600 msgid "Temp. cal. [on]" msgstr "Tepl. kal. [zap]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5598 msgid "Temp. cal. [off]" msgstr "Tepl. kal. [vyp]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5694 msgid "Temp. calibration" msgstr "Teplot. kalibrace" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3867 msgid "Temperature calibration failed" msgstr "Teplotni kalibrace selhala" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "Teplotni kalibrace dokoncena a je nyni aktivni. Teplotni kalibraci je mozno deaktivovat v menu Nastaveni->Tepl. kal." # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5564 msgid "Temperature" msgstr "Teplota" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2140 msgid "Temperatures" msgstr "Teploty" @@ -1511,127 +1371,122 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace." # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2863 msgid "Total filament" msgstr "Filament celkem" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2863 msgid "Total print time" msgstr "Celkovy cas tisku" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6633 msgid "Tune" msgstr "Ladit" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Unload" msgstr "Vysunout" # -#: ultralcd.cpp:5617 -msgid "Unload all" -msgstr "Vyjmout vse" - -# -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "Total failures" -msgstr "" +msgstr "Celkem selhani" # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2213 msgid "to load filament" -msgstr "" +msgstr "k zavedeni filamentu" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2217 msgid "to unload filament" -msgstr "" +msgstr "k vyjmuti filamentu" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "Vyjmout filament" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Vysouvam filament" # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1824 msgid "Total" -msgstr "" +msgstr "Celkem" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5822 msgid "Used during print" msgstr "Pouzite behem tisku" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2143 msgid "Voltages" msgstr "Napeti" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2116 msgid "unknown" -msgstr "" +msgstr "neznamy" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5262 msgid "Wait for user..." msgstr "Ceka se na uzivatele..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3374 msgid "Waiting for nozzle and bed cooling" msgstr "Cekani na zchladnuti trysky a podlozky." # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3338 msgid "Waiting for PINDA probe cooling" msgstr "Cekani na zchladnuti PINDA" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4782 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Pouzijte vyjmout pro odstraneni filamentu 1 pokud presahuje z PTFE trubicky za tiskarnou. Pouzijte vysunout, pokud neni videt." # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1511 msgid "Warning: both printer type and motherboard type changed." msgstr "Varovani: doslo ke zmene typu tiskarny a motherboardu." # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1503 msgid "Warning: motherboard type changed." msgstr "Varovani: doslo ke zmene typu motherboardu." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1507 msgid "Warning: printer type changed." msgstr "Varovani: doslo ke zmene typu tiskarny." # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3053 msgid "Was filament unload successful?" msgstr "Bylo vysunuti filamentu uspesne?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Chyba zapojeni" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5661 msgid "Wizard" msgstr "Pruvodce" # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2132 msgid "XYZ cal. details" msgstr "Detaily XYZ kal." @@ -1641,107 +1496,312 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "Kalibrace XYZ selhala. Nahlednete do manualu." # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Ano" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "Pruvodce muzete kdykoliv znovu spustit z menu Kalibrace -> Pruvodce" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3838 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "Kalibrace XYZ v poradku. X/Y osy mirne zkosene. Dobra prace!" # -#: ultralcd.cpp:4885 -msgid "X-correct" -msgstr "Korekce X" +#: ultralcd.cpp:5044 +msgid "X-correct:" +msgstr "Korekce X:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3832 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "Kalibrace XYZ v poradku. X/Y osy jsou kolme. Gratuluji!" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3819 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." -# MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8 -#: ultralcd.cpp:3699 -msgid "XYZ calibration compromised. Left front calibration point not reachable." -msgstr "Kalibrace XYZ nepresna. Levy predni bod moc vpredu." - # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6080 msgid "Load all" msgstr "Zavest vse" -# MSG_LOAD_FILAMENT_1 c=17 -#: ultralcd.cpp:5576 -msgid "Load filament 1" -msgstr "Zavest filament 1" - # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3798 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu." # -#: ultralcd.cpp:3687 -msgid "XYZ calibration failed. Left front calibration point not reachable." -msgstr "Kalibrace XYZ selhala. Levy predni bod moc vpredu. Srovnejte tiskarnu." - -# MSG_LOAD_FILAMENT_2 c=17 -#: ultralcd.cpp:5577 -msgid "Load filament 2" -msgstr "Zavest filament 2" - -# -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3807 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu." -# MSG_LOAD_FILAMENT_3 c=17 -#: ultralcd.cpp:5578 -msgid "Load filament 3" -msgstr "Zavest filament 3" - # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2968 msgid "Y distance from min" msgstr "Y vzdalenost od min" # -#: ultralcd.cpp:4886 -msgid "Y-correct" -msgstr "Korekce Y" +#: ultralcd.cpp:5045 +msgid "Y-correct:" +msgstr "Korekce Y:" -# MSG_LOAD_FILAMENT_4 c=17 -#: ultralcd.cpp:5579 -msgid "Load filament 4" -msgstr "Zavest filament 4" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr "" -# MSG_LOAD_FILAMENT_5 c=17 -#: ultralcd.cpp:5582 -msgid "Load filament 5" -msgstr "Zavest filament 5" +# +#: messages.c:57 +msgid "Back" +msgstr "Zpet" + +# +#: ultralcd.cpp:5553 +msgid "Checks" +msgstr "Kontrola" + +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "Falesne spusteni" + +# +#: ultralcd.cpp:3946 +msgid "FINDA:" +msgstr "" + +# +#: ultralcd.cpp:5459 +msgid "Firmware [none]" +msgstr "Firmware [Zadne]" + +# +#: ultralcd.cpp:5465 +msgid "Firmware [strict]" +msgstr "Firmware [Prisne]" + +# +#: ultralcd.cpp:5462 +msgid "Firmware [warn]" +msgstr "Firmware[Varovat]" + +# +#: messages.c:87 +msgid "HW Setup" +msgstr "HW nastaveni" + +# +#: ultralcd.cpp:3950 +msgid "IR:" +msgstr "" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "Komp. magnetu[N/A]" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "Komp. magnetu[Vyp]" + +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "Komp. magnetu[Zap]" + +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "Mesh [3x3]" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "Mesh [7x7]" + +# +#: ultralcd.cpp:5591 +msgid "Mesh bed leveling" +msgstr "Mesh Bed Leveling" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "" + +# +#: ultralcd.cpp:5220 +msgid "MMU Mode [Normal]" +msgstr "MMU mod [Normal]" + +# +#: ultralcd.cpp:5221 +msgid "MMU Mode[Stealth]" +msgstr "MMU Mod [Tichy]" + +# +#: ultralcd.cpp:4427 +msgid "Mode change in progress ..." +msgstr "Probiha zmena modu..." + +# +#: ultralcd.cpp:5420 +msgid "Model [none]" +msgstr "Model [Zadne]" + +# +#: ultralcd.cpp:5426 +msgid "Model [strict]" +msgstr "Model [Prisne]" + +# +#: ultralcd.cpp:5423 +msgid "Model [warn]" +msgstr "Model [Varovat]" + +# +#: ultralcd.cpp:5381 +msgid "Nozzle d. [0.25]" +msgstr "Tryska [0.25]" + +# +#: ultralcd.cpp:5384 +msgid "Nozzle d. [0.40]" +msgstr "Tryska [0.40]" + +# +#: ultralcd.cpp:5387 +msgid "Nozzle d. [0.60]" +msgstr "Tryska [0.60]" + +# +#: ultralcd.cpp:5335 +msgid "Nozzle [none]" +msgstr "Tryska [Zadne]" + +# +#: ultralcd.cpp:5341 +msgid "Nozzle [strict]" +msgstr "Tryska [Prisne]" + +# +#: ultralcd.cpp:5338 +msgid "Nozzle [warn]" +msgstr "Tryska [Varovat]" + +# +#: util.cpp:510 +msgid "G-code sliced for a different level. Continue?" +msgstr "" + +# +#: util.cpp:516 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "" + +# +#: ultralcd.cpp:3942 +msgid "PINDA:" +msgstr "" + +# +#: ultralcd.cpp:2286 +msgid "Preheating to cut" +msgstr "Predehrivam k ustrizeni" + +# +#: ultralcd.cpp:2283 +msgid "Preheating to eject" +msgstr "Predehrivam k vysunuti" + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Prumer trysky tiskarny se lisi od G-code. Pokracovat?" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Prumer trysky tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen." + +# +#: ultralcd.cpp:6597 +msgid "Rename" +msgstr "Prejmenovat" + +# +#: ultralcd.cpp:6593 +msgid "Select" +msgstr "Vybrat" + +# +#: ultralcd.cpp:2134 +msgid "Sensor info" +msgstr "Senzor info" + +# +#: messages.c:58 +msgid "Sheet" +msgstr "Plech" + +# +#: +msgid "Sound [assist]" +msgstr "Zvuk [asistence]" + +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "Tiskove plechy" + +# +#: ultralcd.cpp:5046 +msgid "Z-correct:" +msgstr "Korekce Z:" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "Pocet mereni Z [1]" diff --git a/lang/po/Firmware_de.po b/lang/po/Firmware_de.po index 77166d492..6107cef80 100644 --- a/lang/po/Firmware_de.po +++ b/lang/po/Firmware_de.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Ät 7. úno 2019 14:44:19\n" -"PO-Revision-Date: Ät 7. úno 2019 14:44:19\n" +"POT-Creation-Date: Wed Sep 4 16:13:46 CEST 2019\n" +"PO-Revision-Date: Wed Sep 4 16:13:46 CEST 2019\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -21,72 +21,72 @@ msgid " of 4" msgstr " von 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr " von 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3027 msgid "[0;0] point offset" msgstr "[0;0] Punktversatz" # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: ultralcd.cpp:4219 -msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode" -msgstr "\x1b[2JCrash Erkennung kann\x1b[1;0Hnur im Modus Normal\x1b[2;0Hgenutzt werden" +#: +msgid "Crash detection can\x0abe turned on only in\x0aNormal mode" +msgstr "Crash Erkennung kann\x0anur im Modus Normal\x0agenutzt werden" # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 -#: ultralcd.cpp:4231 -msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode" -msgstr "\x1b[2JWARNUNG:\x1b[1;0HCrash Erkennung\x1b[2;0Hdeaktiviert im\x1b[3;0HStealth Modus" +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "WARNUNG:\x0aCrash Erkennung\x0adeaktiviert im\x0aStealth Modus" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2290 msgid ">Cancel" -msgstr "" +msgstr ">Abbruch" -# MSG_BABYSTEPPING_Z c=20 -#: ultralcd.cpp:3043 -msgid "Adjusting Z" -msgstr "Z wurde eingestellt" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3147 +msgid "Adjusting Z:" +msgstr "Z Anpassen:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Alles richtig " # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "Alles abgeschlossen. Viel Spass beim Drucken!" # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1974 msgid "Ambient" -msgstr "" +msgstr "Raumtemp." # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2576 msgid "and press the knob" msgstr "und Knopf druecken" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3445 msgid "Are left and right Z~carriages all up?" msgstr "Sind linke+rechte Z- Schlitten ganz oben?" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5114 msgid "SpoolJoin [on]" msgstr "SpoolJoin [an]" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5110 msgid "SpoolJoin [N/A]" msgstr "SpoolJoin [N/V]" -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +# MSG_AUTO_DEPLETE_OFF c=17 r=1 +#: ultralcd.cpp:5118 msgid "SpoolJoin [off]" msgstr "SpoolJoin [aus]" @@ -96,32 +96,32 @@ msgid "Auto home" msgstr "Startposition" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6736 msgid "AutoLoad filament" msgstr "Auto-Laden Filament" # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4378 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "Automatisches Laden Filament nur bei einge schaltetem Filament- sensor verfuegbar..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2771 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Achsenlaenge" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Achse" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Bett / Heizung" @@ -136,7 +136,7 @@ msgid "Bed Heating" msgstr "Bett aufwaermen" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5682 msgid "Bed level correct" msgstr "Ausgleich Bett ok" @@ -145,38 +145,28 @@ msgstr "Ausgleich Bett ok" msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." msgstr "Z-Kal. fehlgeschlg. Sensor nicht ausgeloest. Schmutzige Duese? Warte auf Reset." -# MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4 -#: Marlin_main.cpp:4508 -msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset." -msgstr "Z-Kalibrierung fehl- geschlagen. Sensor getrennt/Kabelbruch? Warte auf Reset." - -# MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4 -#: Marlin_main.cpp:4512 -msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset." -msgstr "Z-Kalibrierung fehl- geschlagen. Sensor zu hoch ausgeloest. Warte auf Reset." - # MSG_BED #: messages.c:15 msgid "Bed" msgstr "Bett" # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2002 msgid "Belt status" msgstr "Gurtstatus" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "Stromausfall! Druck wiederherstellen?" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" -msgstr "" +msgstr "Kalibriere Start" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5671 msgid "Calibrate XYZ" msgstr "Kalibrierung XYZ" @@ -186,12 +176,12 @@ msgid "Calibrate Z" msgstr "Kalibrierung Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4570 msgid "Calibrate" msgstr "Kalibrieren" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "XYZ Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken." @@ -201,37 +191,32 @@ msgid "Calibrating Z" msgstr "Kalibrierung Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Z Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken." # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:813 msgid "Calibration done" msgstr "Kalibrierung OK" # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "Kalibrierung" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Cancel" msgstr "Abbruch" -# MSG_SD_INSERTED -#: -msgid "Card inserted" -msgstr "SD Karte eingesetzt" - # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "SD Karte entfernt" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2676 msgid "Color not correct" msgstr "Falsche Farbe" @@ -241,7 +226,7 @@ msgid "Cooldown" msgstr "Abkuehlen" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4503 msgid "Copy selected language?" msgstr "Gewaehlte Sprache kopieren?" @@ -266,27 +251,27 @@ msgid "Crash detected." msgstr "Crash erkannt." # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:600 msgid "Crash detected. Resume print?" msgstr "Crash erkannt. Druck fortfuehren?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Crash" msgstr "" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5823 msgid "Current" msgstr "Aktuelles" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2102 msgid "Date:" msgstr "Datum:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5568 msgid "Disable steppers" msgstr "Motoren aus" @@ -296,77 +281,52 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "Der Abstand zwischen der Spitze der Duese und dem Bett ist noch nicht eingestellt. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Erste Schicht Kalibrierung." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4984 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "Moechten Sie den letzten Schritt wiederholen, um den Abstand zwischen Duese und Druckbett neu einzustellen?" -# MSG_EXTRUDER_CORRECTION c=9 -#: ultralcd.cpp:4889 -msgid "E-correct" -msgstr "E-Korrektur" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5048 +msgid "E-correct:" +msgstr "E-Korrektur:" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "Filamentauswurf" -# MSG_EJECT_FILAMENT1 c=17 r=1 -#: ultralcd.cpp:5603 -msgid "Eject filament 1" -msgstr "Filamentauswurf 1" - -# MSG_EJECT_FILAMENT2 c=17 r=1 -#: ultralcd.cpp:5604 -msgid "Eject filament 2" -msgstr "Fil.2 auswerfen" - -# MSG_EJECT_FILAMENT3 c=17 r=1 -#: ultralcd.cpp:5605 -msgid "Eject filament 3" -msgstr "Fil.3 auswerfen" - -# MSG_EJECT_FILAMENT4 c=17 r=1 -#: ultralcd.cpp:5606 -msgid "Eject filament 4" -msgstr "Fil.4 auswerfen" - -# MSG_EJECT_FILAMENT5 c=17 r=1 -#: ultralcd.cpp:5607 -msgid "Eject filament 5" -msgstr "Fil.5 auswerfen" - # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Eject" msgstr "Auswurf" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1434 msgid "Ejecting filament" msgstr "werfe Filament aus" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Ende nicht getroffen" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "Endanschlag" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "Endschalter" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Fehler - statischer Speicher wurde ueberschrieben" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4391 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen." @@ -375,38 +335,13 @@ msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen." msgid "ERROR:" msgstr "FEHLER:" -# -#: Marlin_main.cpp:1006 -msgid "External SPI flash W25X20CL not responding." -msgstr "Der externe SPI Flash W25X20CL antwortet nicht." - -# -#: ultralcd.cpp:5633 -msgid "Extruder 1" -msgstr "" - -# -#: ultralcd.cpp:5634 -msgid "Extruder 2" -msgstr "" - -# -#: ultralcd.cpp:5635 -msgid "Extruder 3" -msgstr "" - -# -#: ultralcd.cpp:5636 -msgid "Extruder 4" -msgstr "" - # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Extruder Luefter:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2133 msgid "Extruder info" msgstr "Extruder Info" @@ -416,12 +351,12 @@ msgid "Extruder" msgstr "" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" -msgstr "" +msgstr "MMU-Fehler" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5082 msgid "F. autoload [on]" msgstr "F.Autoladen [an]" @@ -431,14 +366,14 @@ msgid "F. autoload [N/A]" msgstr "F. Autoload [nv]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5084 msgid "F. autoload [off]" msgstr "F. Autoload [aus]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" -msgstr "" +msgstr "Fehlerstatistik" # MSG_FAN_SPEED c=14 #: messages.c:31 @@ -446,17 +381,17 @@ msgid "Fan speed" msgstr "Luefter-Tempo" # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Lueftertest" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5577 msgid "Fans check [on]" msgstr "Luefter Chk. [an]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5579 msgid "Fans check [off]" msgstr "Luefter Chk.[aus]" @@ -465,13 +400,8 @@ msgstr "Luefter Chk.[aus]" msgid "Fil. sensor [on]" msgstr "Fil. Sensor [an]" -# MSG_RESPONSE_POOR c=20 r=2 -#: Marlin_main.cpp:3146 -msgid "Fil. sensor response is poor, disable it?" -msgstr "Fil. Sensorsignal ist schlecht, ausschalten?" - # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5062 msgid "Fil. sensor [N/A]" msgstr "Fil. Sensor [nv]" @@ -481,9 +411,9 @@ msgid "Fil. sensor [off]" msgstr "Fil. Sensor [aus]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Filam. runouts" -msgstr "" +msgstr "Filam. Maengel" # MSG_FILAMENT_CLEAN c=20 r=2 #: messages.c:32 @@ -491,32 +421,27 @@ msgid "Filament extruding & with correct color?" msgstr "Filament extrudiert + richtige Farbe?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2672 msgid "Filament not loaded" msgstr "Fil. nicht geladen" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Filamentsensor" -# MSG_SELFTEST_FILAMENT_SENSOR c=18 -#: ultralcd.cpp:7477 -msgid "Filament sensor:" -msgstr "Filamentsensor:" - # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2841 msgid "Filament used" msgstr "Filament benutzt" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2841 msgid "Print time" msgstr "Druckzeit" # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "Datei unvollstaendig Trotzdem fortfahren?" @@ -526,52 +451,52 @@ msgid "Finishing movements" msgstr "Bewegung beenden" # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Erste-Schicht Kal." # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4896 msgid "First, I will run the selftest to check most common assembly problems." msgstr "Zunaechst fuehre ich den Selbsttest durch, um die haeufigsten Probleme beim Zusammenbau zu ueberpruefen." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU." # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Durchfluss" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2095 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Vorderer Luefter?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3220 msgid "Front side[um]" msgstr "Vorne [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Vorderer/linke Luefter" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Heizung/Thermistor" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8468 msgid "Heating disabled by safety timer." msgstr "Heizung durch Sicherheitstimer deaktiviert." @@ -586,67 +511,62 @@ msgid "Heating" msgstr "Aufwaermen" # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4875 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Hallo, ich bin Ihr Original Prusa i3 Drucker. Moechten Sie, dass ich Sie durch den Einrich- tungsablauf fuehre?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2096 msgid "howto.prusa3d.com" msgstr "" -# -#: ultralcd.cpp:6087 -msgid "Change extruder" -msgstr "Wechsel Extruder" - # MSG_FILAMENTCHANGE #: messages.c:37 msgid "Change filament" msgstr "Filament-Wechsel" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2587 msgid "Change success!" msgstr "Wechsel erfolgr.!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2664 msgid "Changed correctly?" msgstr "Wechsel ok?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Pruefe Bett " # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Pruefe Endschalter" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Pruefe Duese " # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Pruefe Sensoren " # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Pruefe X Achse " # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Pruefe Y Achse " # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Pruefe Z Achse " @@ -666,112 +586,82 @@ msgid "Filament" msgstr "" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4905 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Ich werde jetzt die XYZ-Kalibrierung durchfuehren. Es wird ca. 12 Minuten dauern." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4913 msgid "I will run z calibration now." msgstr "Ich werde jetzt die Z Kalibrierung durchfuehren." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4978 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "Ich werde jetzt eine Linie drucken. Waehrend des Druckes koennen Sie die Duese allmaehlich senken, indem Sie den Knopf drehen, bis Sie die optimale Hoehe erreichen. Sehen Sie sich die Bilder in unserem Handbuch im Kapitel Kalibrierung an." -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: mesh_bed_calibration.cpp:2481 -msgid "Improving bed calibration point" -msgstr "Verbessere Bett Kalibrierpunkt" - # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Infoanzeige" -# MSG_FILAMENT_LOADING_T0 c=20 r=4 -#: messages.c:33 -msgid "Insert filament into extruder 1. Click when done." -msgstr "Filament in Extruder 1 einlegen. Klicken wenn fertig." - -# MSG_FILAMENT_LOADING_T1 c=20 r=4 -#: messages.c:34 -msgid "Insert filament into extruder 2. Click when done." -msgstr "Filament in Extruder 2 einlegen. Klicken wenn fertig." - -# MSG_FILAMENT_LOADING_T2 c=20 r=4 -#: messages.c:35 -msgid "Insert filament into extruder 3. Click when done." -msgstr "Filament in Extruder 3 einlegen. Klicken wenn fertig." - -# MSG_FILAMENT_LOADING_T3 c=20 r=4 -#: messages.c:36 -msgid "Insert filament into extruder 4. Click when done." -msgstr "Filament in Extruder 4 einlegen. Klicken wenn fertig." - # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:4938 msgid "Is filament 1 loaded?" msgstr "Wurde Filament 1 geladen?" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2572 msgid "Insert filament" msgstr "Filament einlegen" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4941 msgid "Is filament loaded?" msgstr "Ist das Filament geladen?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4972 msgid "Is it PLA filament?" msgstr "Ist es wirklich PLA Filament?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4704 msgid "Is PLA filament loaded?" msgstr "Ist PLA Filament geladen?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" msgstr "Liegt das Stahlblech auf dem Heizbett?" -# MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20 -#: mesh_bed_calibration.cpp:2223 -msgid "Iteration " -msgstr "" - # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1840 msgid "Last print failures" -msgstr "" +msgstr "Letzte Druckfehler" # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1823 msgid "Last print" -msgstr "" +msgstr "Letzter Druck" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Linker Luefter?" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2970 msgid "Left" msgstr "Links" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3218 msgid "Left side [um]" msgstr "Links [um]" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5594 msgid "Lin. correction" msgstr "Lineare Korrektur" @@ -786,7 +676,7 @@ msgid "Load filament" msgstr "Filament laden" # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2612 msgid "Loading color" msgstr "Lade Farbe" @@ -796,92 +686,92 @@ msgid "Loading filament" msgstr "Filament laedt" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Lose Riemenscheibe" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6719 msgid "Load to nozzle" msgstr "In Druckduese laden" # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Erste-Schicht Kal." # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Hauptmenue" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Messen der Referenzhoehe des Kalibrierpunktes" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5677 msgid "Mesh Bed Leveling" msgstr "Mesh Bett Ausgleich" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Position wiederherstellen... " # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Temperatur wiederherstellen..." # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3005 msgid "Measured skew" msgstr "Schraeglauf" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU fails" -msgstr "" +msgstr "MMU Fehler" # -#: mmu.cpp:1399 +#: mmu.cpp:1613 msgid "MMU load failed " -msgstr "" +msgstr "MMU Ladefehler" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU load fails" -msgstr "" +msgstr "MMU Ladefehler" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Weiterdrucken..." # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "Modus [Normal]" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Modus [leise]" # -#: mmu.cpp:635 +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "MMU erfordert Benutzereingriff." # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "MMU power fails" -msgstr "" +msgstr "MMU Netzfehler" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" msgstr "Modus [Stealth]" @@ -891,62 +781,62 @@ msgid "Mode [auto power]" msgstr "Modus[Auto Power]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "Modus[Hohe Leist]" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2108 msgid "MMU2 connected" -msgstr "" +msgstr "MMU2 verbunden" # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5566 msgid "Move axis" msgstr "Achse bewegen" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4294 msgid "Move X" msgstr "Bewege X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4295 msgid "Move Y" msgstr "Bewege Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4296 msgid "Move Z" msgstr "Bewege Z" # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5291 msgid "No move." msgstr "Keine Bewegung." # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6686 msgid "No SD card" msgstr "Keine SD Karte" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2976 msgid "N/A" -msgstr "" +msgstr "N.V." # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "Nein" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "Nicht angeschlossen" @@ -955,78 +845,73 @@ msgstr "Nicht angeschlossen" msgid "New firmware version available:" msgstr "Neue Firmware- Version verfuegbar:" -# -#: -msgid "No " -msgstr "Nein" - # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Dreht sich nicht" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4977 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "Jetzt werde ich den Abstand zwischen Duesenspitze und Druckbett kalibrieren." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4921 msgid "Now I will preheat nozzle for PLA." msgstr "Jetzt werde ich die Duese fuer PLA vorheizen." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Duese" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1519 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Alte Einstellungen gefunden. Standard PID, E-Steps u.s.w. werden gesetzt." # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4912 msgid "Now remove the test print from steel sheet." msgstr "Testdruck jetzt von Stahlblech entfernen." # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:1782 msgid "Nozzle FAN" -msgstr "" +msgstr "Duesen Luefter" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6649 msgid "Pause print" msgstr "Druck pausieren" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1598 msgid "PID cal. " msgstr "PID Kal. " # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1604 msgid "PID cal. finished" msgstr "PID Kalib. fertig" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5683 msgid "PID calibration" msgstr "PID Kalibrierung" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:843 msgid "PINDA Heating" msgstr "PINDA erwaermen" # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "Legen Sie ein Blatt Papier unter die Duese waehrend der Kalibrierung der ersten 4 Punkte. Wenn die Duese das Papier erfasst, den Drucker sofort ausschalten." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4986 msgid "Please clean heatbed and then press the knob." msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf." @@ -1036,92 +921,92 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Bitte pruefe:" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Bitte lesen Sie unser Handbuch und beheben Sie das Problem. Fahren Sie dann mit dem Assistenten fort, indem Sie den Drucker neu starten." # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4808 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "Legen Sie bitte PLA Filament in den Extruder und druecken Sie den Knopf, um es zu laden." # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4709 msgid "Please load PLA filament first." msgstr "Bitte laden Sie zuerst PLA Filament." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3063 msgid "Please open idler and remove filament manually." msgstr "Bitte Spannrolle oeffnen und Fila- ment von Hand entfernen" # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "Bitte legen Sie das Stahlblech auf das Heizbett." # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Bitte druecken Sie den Knopf um das Filament zu entladen." # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4803 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Legen Sie bitte PLA Filament in den ersten Schlauch der MMU und druecken Sie den Knopf, um es zu laden." # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Bitte ziehen Sie das Filament sofort heraus" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1440 msgid "Please remove filament and then press the knob." msgstr "Bitte Filament entfernen und dann den Knopf druecken" # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "Bitte entfernen Sie das Stahlblech vom Heizbett." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4354 msgid "Please run XYZ calibration first." msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1359 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Bitte aktualisieren Sie die Firmware in der MMU2. Warte auf Reset." # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Bitte warten" # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4911 msgid "Please remove shipping helpers first." msgstr "Bitte zuerst Transportsicherungen entfernen." # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Duese vorheizen!" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6636 msgid "Preheat" msgstr "Vorheizen" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "Vorheizen der Duese. Bitte warten." @@ -1131,32 +1016,32 @@ msgid "Please upgrade." msgstr "Bitte aktualisieren." # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10365 msgid "Press knob to preheat nozzle and continue." msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren." # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Power failures" -msgstr "" +msgstr "Netzfehler" # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Druck abgebrochen" # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2276 msgid "Preheating to load" -msgstr "" +msgstr "Heizen zum Laden" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2280 msgid "Preheating to unload" -msgstr "" +msgstr "Heizen zum Entladen" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "Druckvent.:" @@ -1166,17 +1051,17 @@ msgid "Print from SD" msgstr "Drucken von SD" # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2206 msgid "Press the knob" -msgstr "" +msgstr "Knopf druecken" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1061 msgid "Print paused" msgstr "Druck pausiert" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Druecken Sie den Knopf um die Duesentemperatur wiederherzustellen" @@ -1186,37 +1071,27 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi msgstr "Drucker wurde noch nicht kalibriert. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrie- rungsablauf." # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1784 msgid "Print FAN" -msgstr "" - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK2.5 ready." -msgstr "Prusa i3 MK2.5 bereit." - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK3 ready." -msgstr "Prusa i3 MK3 bereit." +msgstr "Druckluefter" # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2094 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3221 msgid "Rear side [um]" msgstr "Hinten [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9765 msgid "Recovering print " msgstr "Druck wiederherst " # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Entfernen Sie das alte Filament und druecken Sie den Knopf, um das neue zu laden." @@ -1225,63 +1100,58 @@ msgstr "Entfernen Sie das alte Filament und druecken Sie den Knopf, um das neue msgid "Prusa i3 MK3S OK." msgstr "" -# -#: -msgid "Prusa i3 MK2 ready." -msgstr "Prusa i3 MK2 bereit." - # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5688 msgid "Reset XYZ calibr." msgstr "XYZ Kalibr. zuruecksetzen." # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3222 msgid "Reset" msgstr "Ruecksetzen" # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6656 msgid "Resume print" msgstr "Druck fortsetzen" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "Druck fortgesetzt" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3219 msgid "Right side[um]" -msgstr "Rechts [um]" +msgstr "Rechts [um]" # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5606 msgid "RPi port [on]" msgstr "RPi Port [an]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5604 msgid "RPi port [off]" msgstr "RPi Port [aus]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4726 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5236 msgid "SD card [normal]" msgstr "SD Karte [normal]" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5234 msgid "SD card [flshAir]" msgstr "SD Karte[flshAir]" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2971 msgid "Right" msgstr "Rechts" @@ -1291,217 +1161,207 @@ msgid "Searching bed calibration point" msgstr "Suche Bett Kalibrierpunkt" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5613 msgid "Select language" msgstr "Waehle Sprache" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "Selbsttest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Selbsttest start " # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5664 msgid "Selftest " -msgstr "Selbsttest " +msgstr "Selbsttest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Selbsttest Fehler!" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " -msgstr "Selbsttest misslung " +msgstr "Selbsttest misslang" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1551 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Selbsttest im Gang, um die genaue Rueck- kehr zum Nullpunkt ohne Sensor zu kalibrieren" # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4959 msgid "Select nozzle preheat temperature which matches your material." msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht." # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Select PLA filament:" msgstr "PLA Filament auswaehlen:" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3230 msgid "Set temperature:" msgstr "Temp. einstellen:" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Einstellungen" # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5685 msgid "Show end stops" msgstr "Endschalter Status" # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:3941 msgid "Sensor state" -msgstr "" - -# -#: -msgid "Sensors info" -msgstr "" - -# -#: -msgid "Show pinda state" -msgstr "Pinda-Status anzeigen" +msgstr "Sensorstatus" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100." # MSG_SORT_NONE c=17 r=1 -#: ultralcd.cpp:5043 -msgid "Sort: [none]" -msgstr "Sort.: [Keine]" +#: ultralcd.cpp:5246 +msgid "Sort [none]" +msgstr "Sort. [Keine]" # MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5041 -msgid "Sort: [time]" -msgstr "Sort.: [Zeit]" +#: ultralcd.cpp:5244 +msgid "Sort [time]" +msgstr "Sort. [Zeit]" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3008 msgid "Severe skew" msgstr "Schwerer Schraeglauf" # MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5042 -msgid "Sort: [alphabet]" -msgstr "Sort.: [Alphabet]" +#: ultralcd.cpp:5245 +msgid "Sort [alphabet]" +msgstr "Sort. [Alphabet]" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Sortiere Dateien" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "Sound [laut]" # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3007 msgid "Slight skew" msgstr "Leichter Schraeglauf" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "Sound [stumm]" # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4870 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..." # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "Sound [einmal]" # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "Sound [leise]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Geschwindigkeit" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Dreht sich" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4367 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Stabile Umgebungs- temperatur 21-26C und feste Stand- flaeche erforderlich" # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Statistiken " # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "Druck abbrechen" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " -msgstr "GESTOPPT. " +msgstr "GESTOPPT." # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Ausgetauscht" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " -msgstr "Temp Kalib. " +msgstr "Temp Kalib. " # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5600 msgid "Temp. cal. [on]" msgstr "Temp. Kal. [AN]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5598 msgid "Temp. cal. [off]" msgstr "Temp. Kal. [AUS]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5694 msgid "Temp. calibration" msgstr "Temp. kalibrieren" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3867 msgid "Temperature calibration failed" msgstr "Temperaturkalibrierung fehlgeschlagen" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "Temp.kalibrierung ist fertig + aktiv. Temp.kalibrierung kann ausgeschaltet werden im Menu Einstellungen -> Temp.kal." # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5564 msgid "Temperature" msgstr "Temperatur" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2140 msgid "Temperatures" msgstr "Temperaturen" @@ -1511,127 +1371,122 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "Es ist noch notwendig die Z-Kalibrierung auszufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf." # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2863 msgid "Total filament" msgstr "Gesamtes Filament" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2863 msgid "Total print time" msgstr "Gesamte Druckzeit" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6633 msgid "Tune" msgstr "Feineinstellung" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Unload" msgstr "Entladen" # -#: ultralcd.cpp:5617 -msgid "Unload all" -msgstr "Alles entladen" - -# -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "Total failures" -msgstr "" +msgstr "Gesamte Fehler" # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2213 msgid "to load filament" -msgstr "" +msgstr "zum Filament laden" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2217 msgid "to unload filament" -msgstr "" +msgstr "zum Filament entladen" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "Filament entladen" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Filament auswerfen" # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1824 msgid "Total" -msgstr "" +msgstr "Gesamt" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5822 msgid "Used during print" msgstr "Beim Druck benutzt" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2143 msgid "Voltages" msgstr "Spannungen" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2116 msgid "unknown" -msgstr "" +msgstr "unbekannt" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5262 msgid "Wait for user..." msgstr "Warte auf Benutzer.." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3374 msgid "Waiting for nozzle and bed cooling" msgstr "Warten bis Heizung und Bett abgekuehlt sind" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3338 msgid "Waiting for PINDA probe cooling" msgstr "Warten, bis PINDA- Sonde abgekuehlt ist" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4782 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Entladen Sie das Filament 1, wenn er aus dem hinteren MMU-Rohr herausragt. Verwenden Sie den Auswurf, wenn er im Rohr versteckt ist." # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1511 msgid "Warning: both printer type and motherboard type changed." msgstr "Warnung: Druckertyp und Platinentyp wurden beide geaendert." # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1503 msgid "Warning: motherboard type changed." msgstr "Warnung: Platinentyp wurde geaendert." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1507 msgid "Warning: printer type changed." msgstr "Warnung: Druckertyp wurde geaendert." # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3053 msgid "Was filament unload successful?" msgstr "Konnten Sie das Filament entnehmen?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Verdrahtungsfehler" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5661 msgid "Wizard" msgstr "Assistent" # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2132 msgid "XYZ cal. details" msgstr "XYZ Kal. Details" @@ -1641,107 +1496,317 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "XYZ-Kalibrierung fehlgeschlagen. Bitte schauen Sie in das Handbuch." # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Ja" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "Sie koennen den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3838 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "XYZ Kalibrierung in Ordnung. Schraeglauf wird automatisch korrigiert." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg." # -#: ultralcd.cpp:4885 -msgid "X-correct" -msgstr "X-Korrektur" +#: ultralcd.cpp:5044 +msgid "X-correct:" +msgstr "X-Korrektur:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3832 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glueckwunsch!" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichbar." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3819 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar." -# MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8 -#: ultralcd.cpp:3699 -msgid "XYZ calibration compromised. Left front calibration point not reachable." -msgstr "XYZ-Kalibrierung beeintraechtigt. Linker vorderer Kalibrierpunkt nicht erreichbar." - # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6080 msgid "Load all" msgstr "Alle laden" -# MSG_LOAD_FILAMENT_1 c=17 -#: ultralcd.cpp:5576 -msgid "Load filament 1" -msgstr "Filament 1 laden" - # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3798 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar." # -#: ultralcd.cpp:3687 -msgid "XYZ calibration failed. Left front calibration point not reachable." -msgstr "XYZ-Kalibrierung fehlgeschlagen. Linker vorderer Kalibrierpunkt nicht erreichbar." - -# MSG_LOAD_FILAMENT_2 c=17 -#: ultralcd.cpp:5577 -msgid "Load filament 2" -msgstr "Filament 2 laden" - -# -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3807 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar." -# MSG_LOAD_FILAMENT_3 c=17 -#: ultralcd.cpp:5578 -msgid "Load filament 3" -msgstr "Filament 3 laden" +"XYZ calibration failed. Right front calibration point not reachable." +#: +msgid "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar." +msgstr # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2968 msgid "Y distance from min" msgstr "Y Entfernung vom Min" # -#: ultralcd.cpp:4886 -msgid "Y-correct" -msgstr "Y-Korrektur" +#: ultralcd.cpp:5045 +msgid "Y-correct:" +msgstr "Y-Korrektur:" -# MSG_LOAD_FILAMENT_4 c=17 -#: ultralcd.cpp:5579 -msgid "Load filament 4" -msgstr "Filament 4 laden" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr "" -# MSG_LOAD_FILAMENT_5 c=17 -#: ultralcd.cpp:5582 -msgid "Load filament 5" -msgstr "Filament 5 laden" +# +#: messages.c:57 +msgid "Back" +msgstr "Zurueck" + +# +#: ultralcd.cpp:5553 +msgid "Checks" +msgstr "" + +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "Falschtriggerung" + +# +#: ultralcd.cpp:3946 +msgid "FINDA:" +msgstr "" + +# +#: ultralcd.cpp:5459 +msgid "Firmware [none]" +msgstr "Firmware [ohne]" + +# +#: ultralcd.cpp:5465 +msgid "Firmware [strict]" +msgstr "Firmware [streng]" + +# +#: ultralcd.cpp:5462 +msgid "Firmware [warn]" +msgstr "" + +# +#: messages.c:87 +msgid "HW Setup" +msgstr "HW Einstellungen" + +# +#: ultralcd.cpp:3950 +msgid "IR:" +msgstr "" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "Magnet Komp. [nv]" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "Magnet Komp. [Aus]" + +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "Magnet Komp. [An]" + +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "" + +# +#: ultralcd.cpp:5591 +msgid "Mesh bed leveling" +msgstr "Mesh Bett Ausgleich" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "" + +# +#: ultralcd.cpp:5220 +msgid "MMU Mode [Normal]" +msgstr "MMU Modus[Normal]" + +# +#: ultralcd.cpp:5221 +msgid "MMU Mode[Stealth]" +msgstr "MMU Mod.[Stealth]" + +# +#: ultralcd.cpp:4427 +msgid "Mode change in progress ..." +msgstr "Moduswechsel erfolgt..." + +# +#: ultralcd.cpp:5420 +msgid "Model [none]" +msgstr "Modell [ohne]" + +# +#: ultralcd.cpp:5426 +msgid "Model [strict]" +msgstr "Modell [streng]" + +# +#: ultralcd.cpp:5423 +msgid "Model [warn]" +msgstr "Modell [warn]" + +# +#: ultralcd.cpp:5381 +msgid "Nozzle d. [0.25]" +msgstr "Duese D. [0.25]" + +# +#: ultralcd.cpp:5384 +msgid "Nozzle d. [0.40]" +msgstr "Duese D. [0.40]" + +# +#: ultralcd.cpp:5387 +msgid "Nozzle d. [0.60]" +msgstr "Duese D. [0.60]" + +# +#: ultralcd.cpp:5335 +msgid "Nozzle [none]" +msgstr "Duese [ohne]" + +# +#: ultralcd.cpp:5341 +msgid "Nozzle [strict]" +msgstr "Duese [streng]" + +# +#: ultralcd.cpp:5338 +msgid "Nozzle [warn]" +msgstr "Duese [warn]" + +# +#: util.cpp:510 +msgid "G-code sliced for a different level. Continue?" +msgstr "" + +# +#: util.cpp:516 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "" + +# +#: ultralcd.cpp:3942 +msgid "PINDA:" +msgstr "" + +# +#: ultralcd.cpp:2286 +msgid "Preheating to cut" +msgstr "Heizen zum Schnitt" + +# +#: ultralcd.cpp:2283 +msgid "Preheating to eject" +msgstr "Heizen zum Auswurf" + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Fortfahren?" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen." + +# +#: ultralcd.cpp:6597 +msgid "Rename" +msgstr "Umbenennen" + +# +#: ultralcd.cpp:6593 +msgid "Select" +msgstr "Auswahl" + +# +#: ultralcd.cpp:2134 +msgid "Sensor info" +msgstr "Sensor Info" + +# +#: messages.c:58 +msgid "Sheet" +msgstr "Blech" + +# +#: +msgid "Sound [assist]" +msgstr "" + +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "" + +# +#: ultralcd.cpp:5046 +msgid "Z-correct:" +msgstr "Z-Korrektur:" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "Z-Probe Nr. [1]" diff --git a/lang/po/Firmware_es.po b/lang/po/Firmware_es.po index 1a5d09a1d..9262867e2 100644 --- a/lang/po/Firmware_es.po +++ b/lang/po/Firmware_es.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: es\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Ät 7. úno 2019 14:45:41\n" -"PO-Revision-Date: Ät 7. úno 2019 14:45:41\n" +"POT-Creation-Date: Wed Sep 4 16:13:52 CEST 2019\n" +"PO-Revision-Date: Wed Sep 4 16:13:52 CEST 2019\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -21,74 +21,74 @@ msgid " of 4" msgstr " de 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr " de 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3027 msgid "[0;0] point offset" msgstr "[0;0] punto offset" # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: ultralcd.cpp:4219 -msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode" -msgstr "\x1b[2JDec. choque\x1b[1;0Hpuede ser activada solo en\x1b[2;0HModo normal" +#: +msgid "Crash detection can\x0abe turned on only in\x0aNormal mode" +msgstr "Dec. choque puede\x0aser activada solo en\x0aModo normal" # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 -#: ultralcd.cpp:4231 -msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode" -msgstr "\x1b[2JATENCION:\x1b[1;0HDec. choque\x1b[2;0Hdesactivada en\x1b[3;0HModo silencio" +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "ATENCION:\x0aDec. choque\x0adesactivada en\x0aModo silencio" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2290 msgid ">Cancel" -msgstr "" +msgstr ">Cancelar" -# MSG_BABYSTEPPING_Z c=20 -#: ultralcd.cpp:3043 -msgid "Adjusting Z" -msgstr "Ajustar Z" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3147 +msgid "Adjusting Z:" +msgstr "Ajustar Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Todo bien" # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "Terminado! Feliz impresion!" # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1974 msgid "Ambient" -msgstr "" +msgstr "Ambiente" # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2576 msgid "and press the knob" msgstr "Haz clic" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3445 msgid "Are left and right Z~carriages all up?" msgstr "Carros Z izq./der. estan arriba maximo?" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5114 msgid "SpoolJoin [on]" -msgstr "SpoolJoin [on]" +msgstr "" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5110 msgid "SpoolJoin [N/A]" -msgstr "SpoolJoin [N/A]" +msgstr "" -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +# MSG_AUTO_DEPLETE_OFF c=17 r=1 +#: ultralcd.cpp:5118 msgid "SpoolJoin [off]" -msgstr "SpoolJoin [off]" +msgstr "" # MSG_AUTO_HOME #: messages.c:11 @@ -96,32 +96,32 @@ msgid "Auto home" msgstr "Llevar al origen" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6736 msgid "AutoLoad filament" msgstr "Carga automatica de filamento" # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4378 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "La carga automatica de filamento solo funciona si el sensor de filamento esta activado..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2771 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "La carga automatica de filamento esta activada, pulse el dial e inserte el filamento..." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Longitud del eje" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Eje" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Base / Calentador" @@ -136,7 +136,7 @@ msgid "Bed Heating" msgstr "Calentando Base" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5682 msgid "Bed level correct" msgstr "Corr. de la cama" @@ -145,38 +145,28 @@ msgstr "Corr. de la cama" msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." msgstr "Nivelacion fallada. Sensor no funciona. Restos en boquilla? Esperando reset." -# MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4 -#: Marlin_main.cpp:4508 -msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset." -msgstr "Nivelacion fallada. Sensor desconectado o cables danados. Esperando reset." - -# MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4 -#: Marlin_main.cpp:4512 -msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset." -msgstr "Nivelacion fallada. Sensor funciona demasiado pronto. Esperando reset." - # MSG_BED #: messages.c:15 msgid "Bed" msgstr "Base calefactable " # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2002 msgid "Belt status" msgstr "Estado de la correa" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "Se fue la luz. ?Reanudar la impresion?" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" -msgstr "" +msgstr "Calibrando posicion inicial" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5671 msgid "Calibrate XYZ" msgstr "Calibrar XYZ" @@ -186,12 +176,12 @@ msgid "Calibrate Z" msgstr "Calibrar Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4570 msgid "Calibrate" msgstr "Calibrar" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibrando XYZ. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic." @@ -201,37 +191,32 @@ msgid "Calibrating Z" msgstr "Calibrando Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibrando Z. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic." # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:813 msgid "Calibration done" msgstr "Calibracion OK" # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "Calibracion" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Cancel" msgstr "Cancelar" -# MSG_SD_INSERTED -#: -msgid "Card inserted" -msgstr "Tarjeta insertada" - # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "Tarjeta retirada" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2676 msgid "Color not correct" msgstr "Color no homogeneo" @@ -241,7 +226,7 @@ msgid "Cooldown" msgstr "Enfriar" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4503 msgid "Copy selected language?" msgstr "Copiar idioma seleccionado?" @@ -266,27 +251,27 @@ msgid "Crash detected." msgstr "Choque detectado." # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:600 msgid "Crash detected. Resume print?" msgstr "Choque detectado. Continuar impresion?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Crash" -msgstr "" +msgstr "Choque" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5823 msgid "Current" msgstr "Actual" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2102 msgid "Date:" msgstr "Fecha:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5568 msgid "Disable steppers" msgstr "Apagar motores" @@ -296,77 +281,52 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "Distancia entre la punta del boquilla y la superficie de la base aun no fijada. Por favor siga el manual, capitulo Primeros Pasos, Calibracion primera capa." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4984 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "Quieres repetir el ultimo paso para reajustar la distancia boquilla-base?" -# MSG_EXTRUDER_CORRECTION c=9 -#: ultralcd.cpp:4889 -msgid "E-correct" -msgstr "E-correcion" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5048 +msgid "E-correct:" +msgstr "E-correcion:" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "Expulsar filamento" -# MSG_EJECT_FILAMENT1 c=17 r=1 -#: ultralcd.cpp:5603 -msgid "Eject filament 1" -msgstr "Expulsar filamento 1" - -# MSG_EJECT_FILAMENT2 c=17 r=1 -#: ultralcd.cpp:5604 -msgid "Eject filament 2" -msgstr "Expulsar filamento 2" - -# MSG_EJECT_FILAMENT3 c=17 r=1 -#: ultralcd.cpp:5605 -msgid "Eject filament 3" -msgstr "Expulsar filamento 3" - -# MSG_EJECT_FILAMENT4 c=17 r=1 -#: ultralcd.cpp:5606 -msgid "Eject filament 4" -msgstr "Expulsar filamento 4" - -# MSG_EJECT_FILAMENT5 c=17 r=1 -#: ultralcd.cpp:5607 -msgid "Eject filament 5" -msgstr "Expulsar filamento 5" - # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Eject" msgstr "Expulsar" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1434 msgid "Ejecting filament" msgstr "Expulsando filamento" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Endstop no alcanzado" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Error - se ha sobre-escrito la memoria estatica" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4391 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion." @@ -375,38 +335,13 @@ msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexi msgid "ERROR:" msgstr "" -# -#: Marlin_main.cpp:1006 -msgid "External SPI flash W25X20CL not responding." -msgstr "No responde el flasheo externo SPI W25X20CL" - -# -#: ultralcd.cpp:5633 -msgid "Extruder 1" -msgstr "Extrusor 1" - -# -#: ultralcd.cpp:5634 -msgid "Extruder 2" -msgstr "Extrusor 2" - -# -#: ultralcd.cpp:5635 -msgid "Extruder 3" -msgstr "Extrusor 3" - -# -#: ultralcd.cpp:5636 -msgid "Extruder 4" -msgstr "Extrusor 4" - # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Ventilador del extrusor:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2133 msgid "Extruder info" msgstr "Informacion del extrusor" @@ -416,12 +351,12 @@ msgid "Extruder" msgstr "Extruir" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" -msgstr "" +msgstr "Estadistica de fallos MMU" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5082 msgid "F. autoload [on]" msgstr "Autocarg.Fil[act]" @@ -431,14 +366,14 @@ msgid "F. autoload [N/A]" msgstr "Autocarg.Fil[N/D]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5084 msgid "F. autoload [off]" msgstr "Autocarg.Fil[ina]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" -msgstr "" +msgstr "Estadistica de fallos" # MSG_FAN_SPEED c=14 #: messages.c:31 @@ -446,17 +381,17 @@ msgid "Fan speed" msgstr "Velocidad Vent." # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Test ventiladores" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5577 msgid "Fans check [on]" msgstr "Comprob.vent[act]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5579 msgid "Fans check [off]" msgstr "Comprob.vent[ina]" @@ -465,13 +400,8 @@ msgstr "Comprob.vent[ina]" msgid "Fil. sensor [on]" msgstr "Sensor Fil. [act]" -# MSG_RESPONSE_POOR c=20 r=2 -#: Marlin_main.cpp:3146 -msgid "Fil. sensor response is poor, disable it?" -msgstr "La respuesta del sensor de fil es deficiente, ?desactivarlo?" - # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5062 msgid "Fil. sensor [N/A]" msgstr "Sensor Fil. [N/D]" @@ -481,9 +411,9 @@ msgid "Fil. sensor [off]" msgstr "Sensor Fil. [ina]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Filam. runouts" -msgstr "" +msgstr "Filam. acabado" # MSG_FILAMENT_CLEAN c=20 r=2 #: messages.c:32 @@ -491,32 +421,27 @@ msgid "Filament extruding & with correct color?" msgstr "Es nitido el color nuevo?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2672 msgid "Filament not loaded" msgstr "Fil. no introducido" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Sensor de filamento" -# MSG_SELFTEST_FILAMENT_SENSOR c=18 -#: ultralcd.cpp:7477 -msgid "Filament sensor:" -msgstr "Sensor de filamento:" - # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2841 msgid "Filament used" msgstr "Filamento usado" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2841 msgid "Print time" msgstr "Tiempo de imp.:" # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "Archivo incompleto. ?Continuar de todos modos?" @@ -526,52 +451,52 @@ msgid "Finishing movements" msgstr "Term. movimientos" # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Cal. primera cap." # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4896 msgid "First, I will run the selftest to check most common assembly problems." msgstr "Primero, hare el Selftest para comprobar los problemas de montaje mas comunes." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Corrige el problema y pulsa el boton en la unidad MMU." # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Flujo" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2095 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Vent. frontal?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3220 msgid "Front side[um]" msgstr "Frontal [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Ventiladores frontal/izquierdo" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Calentador/Termistor" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8468 msgid "Heating disabled by safety timer." msgstr "Calentadores desactivados por el temporizador de seguridad." @@ -586,67 +511,62 @@ msgid "Heating" msgstr "Calentando..." # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4875 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Hola, soy tu impresora Original Prusa i3. Quieres que te guie a traves de la configuracion?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2096 msgid "howto.prusa3d.com" msgstr "" -# -#: ultralcd.cpp:6087 -msgid "Change extruder" -msgstr "Cambiar extrusor." - # MSG_FILAMENTCHANGE #: messages.c:37 msgid "Change filament" msgstr "Cambiar filamento" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2587 msgid "Change success!" msgstr "Cambio correcto" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2664 msgid "Changed correctly?" msgstr "Cambio correcto?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Control base cal." # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Control endstops" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Control fusor" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Comprobando los sensores" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Control sensor X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Control sensor Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Control sensor Z" @@ -666,112 +586,82 @@ msgid "Filament" msgstr "Filamento" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4905 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Hare la calibracion XYZ. Tardara 12 min. aproximadamente." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4913 msgid "I will run z calibration now." msgstr "Voy a hacer Calibracion Z ahora." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4978 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "Voy a comenzar a imprimir la linea y tu bajaras el nozzle gradualmente al rotar el dial, hasta que llegues a la altura optima. Mira las imagenes del capitulo Calibracion en el manual." -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: mesh_bed_calibration.cpp:2481 -msgid "Improving bed calibration point" -msgstr "Mejorando punto de calibracion base" - # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Monitorizar" -# MSG_FILAMENT_LOADING_T0 c=20 r=4 -#: messages.c:33 -msgid "Insert filament into extruder 1. Click when done." -msgstr "Insertar filamento en el extrusor 1. Haz clic una vez terminado." - -# MSG_FILAMENT_LOADING_T1 c=20 r=4 -#: messages.c:34 -msgid "Insert filament into extruder 2. Click when done." -msgstr "Insertar filamento en el extrusor 2. Haz clic una vez terminado." - -# MSG_FILAMENT_LOADING_T2 c=20 r=4 -#: messages.c:35 -msgid "Insert filament into extruder 3. Click when done." -msgstr "Insertar filamento en el extrusor 3. Haz clic una vez terminado." - -# MSG_FILAMENT_LOADING_T3 c=20 r=4 -#: messages.c:36 -msgid "Insert filament into extruder 4. Click when done." -msgstr "Insertar filamento en el extrusor 4. Haz clic una vez terminado." - # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:4938 msgid "Is filament 1 loaded?" msgstr "?Esta cargado el filamento 1?" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2572 msgid "Insert filament" msgstr "Introducir filamento" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4941 msgid "Is filament loaded?" msgstr "Esta el filamento cargado?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4972 msgid "Is it PLA filament?" msgstr "Es el filamento PLA?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4704 msgid "Is PLA filament loaded?" msgstr "Esta el filamento PLA cargado?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" msgstr "?Esta colocada la lamina de acero sobre la base?" -# MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20 -#: mesh_bed_calibration.cpp:2223 -msgid "Iteration " -msgstr "Reiteracion " - # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1840 msgid "Last print failures" -msgstr "" +msgstr "Ultimas impresiones fallidas" # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1823 msgid "Last print" -msgstr "" +msgstr "Ultima impresion" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Vent. izquierdo?" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2970 msgid "Left" msgstr "Izquierda" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3218 msgid "Left side [um]" msgstr "Izquierda [um]" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5594 msgid "Lin. correction" msgstr "Correccion de Linealidad" @@ -786,7 +676,7 @@ msgid "Load filament" msgstr "Introducir filam." # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2612 msgid "Loading color" msgstr "Cambiando color" @@ -796,92 +686,92 @@ msgid "Loading filament" msgstr "Introduciendo filam." # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Polea suelta" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6719 msgid "Load to nozzle" msgstr "Cargar a la boquilla" # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Cal. primera cap." # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Menu principal" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Midiendo altura del punto de calibracion" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5677 msgid "Mesh Bed Leveling" msgstr "Nivelacion Mesh Level" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Restaurando posicion..." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Restaurando temperatura..." # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3005 msgid "Measured skew" msgstr "Desviacion medida:" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU fails" -msgstr "" +msgstr "Fallos MMU" # -#: mmu.cpp:1399 +#: mmu.cpp:1613 msgid "MMU load failed " -msgstr "" +msgstr "Carga MMU fallida" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU load fails" -msgstr "" +msgstr "Carga MMU falla" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Resumiendo..." # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "Modo [Normal]" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Modo [silencio]" # -#: mmu.cpp:635 +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "MMU necesita atencion del usuario." # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "MMU power fails" -msgstr "" +msgstr "Fallo de energia en MMU" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" msgstr "Modo [Silencio]" @@ -891,62 +781,62 @@ msgid "Mode [auto power]" msgstr "Modo[fuerza auto]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "Modo [rend.pleno]" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2108 msgid "MMU2 connected" -msgstr "" +msgstr "MMU2 conectado" # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5566 msgid "Move axis" msgstr "Mover ejes" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4294 msgid "Move X" msgstr "Mover X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4295 msgid "Move Y" msgstr "Mover Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4296 msgid "Move Z" msgstr "Mover Z" # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5291 msgid "No move." msgstr "Sin movimiento" # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6686 msgid "No SD card" msgstr "No hay tarjeta SD" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2976 msgid "N/A" -msgstr "" +msgstr "No disponible" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "No hay conexion " @@ -955,78 +845,73 @@ msgstr "No hay conexion " msgid "New firmware version available:" msgstr "Nuevo firmware disponible:" -# -#: -msgid "No " -msgstr "No" - # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Ventilador no gira" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4977 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "Voy a calibrar la distancia entre la punta de la boquilla y la superficie de la base." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4921 msgid "Now I will preheat nozzle for PLA." msgstr "Voy a precalentar la boquilla para PLA ahora." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Boquilla" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1519 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Se han encontrado ajustes anteriores. Se ajustara el PID, los pasos del extrusor, etc" # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4912 msgid "Now remove the test print from steel sheet." msgstr "Ahora retira la prueba de la lamina de acero." # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:1782 msgid "Nozzle FAN" -msgstr "" +msgstr "Ventilador de capa" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6649 msgid "Pause print" msgstr "Pausar impresion" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1598 msgid "PID cal. " msgstr "Cal. PID " # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1604 msgid "PID cal. finished" msgstr "Cal. PID terminada" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5683 msgid "PID calibration" msgstr "Calibracion PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:843 msgid "PINDA Heating" msgstr "Calentando PINDA" # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "Colocar una hoja de papel sobre la superficie de impresion durante la calibracion de los primeros 4 puntos. Si la boquilla mueve el papel, apagar impresora inmediatamente." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4986 msgid "Please clean heatbed and then press the knob." msgstr "Limpia la superficie de la base, por favor, y haz clic" @@ -1036,92 +921,92 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Limpia boquilla para calibracion. Click cuando acabes." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Controla :" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Lee el manual y resuelve el problema. Despues, reinicia la impresora y continua con el Wizard" # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4808 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "Inserta, por favor, filamento PLA en el extrusor. Despues haz clic para cargarlo." # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4709 msgid "Please load PLA filament first." msgstr "Carga el filamento PLA primero por favor." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3063 msgid "Please open idler and remove filament manually." msgstr "Por favor abate el rodillo de empuje (idler) y retira el filamento manualmente." # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "Por favor coloca la chapa de acero en la base calefactable." # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Por favor, pulsa el dial para descargar el filamento" # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4803 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Por favor introduce el filamento al primer tubo MMU, despues presiona el dial para imprimirlo." # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Por favor retire el filamento de inmediato" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1440 msgid "Please remove filament and then press the knob." msgstr "Por favor quite el filamento y luego presione el dial." # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "Por favor retire la chapa de acero de la base calefactable." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4354 msgid "Please run XYZ calibration first." msgstr "Por favor realiza la calibracion XYZ primero." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1359 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Por favor actualice el firmware en tu MMU2. Esperando el reseteo." # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Por Favor Espere" # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4911 msgid "Please remove shipping helpers first." msgstr "Por favor retira los soportes de envio primero." # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Precalienta extrusor!" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6636 msgid "Preheat" msgstr "Precalentar" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "Precalentando nozzle. Espera por favor." @@ -1131,32 +1016,32 @@ msgid "Please upgrade." msgstr "Actualize por favor" # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10365 msgid "Press knob to preheat nozzle and continue." msgstr "Pulsa el dial para precalentar la boquilla y continue." # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Power failures" -msgstr "" +msgstr "Cortes de energia" # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Impresion cancelada" # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2276 msgid "Preheating to load" -msgstr "" +msgstr "Precalentar para cargar" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2280 msgid "Preheating to unload" -msgstr "" +msgstr "Precalentar para descargar" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "Ventilador del fusor:" @@ -1166,17 +1051,17 @@ msgid "Print from SD" msgstr "Menu tarjeta SD" # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2206 msgid "Press the knob" -msgstr "" +msgstr "Pulsa el dial" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1061 msgid "Print paused" msgstr "Impresion en pausa" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Presiona el dial para continuar con la temperatura de la boquilla." @@ -1186,37 +1071,27 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi msgstr "Impresora no esta calibrada todavia. Por favor usa el manual capitulo Primeros pasos Calibracion flujo." # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1784 msgid "Print FAN" -msgstr "" - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK2.5 ready." -msgstr "Preparado para Prusa i3 MK2.5." - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK3 ready." -msgstr "Prusa i3 MK3 prep." +msgstr "Ventilador del extrusor" # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2094 msgid "prusa3d.com" msgstr "prusa3d.es" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3221 msgid "Rear side [um]" msgstr "Trasera [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9765 msgid "Recovering print " msgstr "Recuperando impresion" # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Retire el filamento viejo y presione el dial para comenzar a cargar el nuevo filamento." @@ -1225,63 +1100,58 @@ msgstr "Retire el filamento viejo y presione el dial para comenzar a cargar el n msgid "Prusa i3 MK3S OK." msgstr "" -# -#: -msgid "Prusa i3 MK2 ready." -msgstr "Preparado para i3 MK2." - # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5688 msgid "Reset XYZ calibr." msgstr "" # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3222 msgid "Reset" msgstr "" # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6656 msgid "Resume print" msgstr "Reanudar impres." # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "Resumiendo impresion" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3219 msgid "Right side[um]" msgstr "Derecha [um]" # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5606 msgid "RPi port [on]" msgstr "Puerto RPi [act]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5604 msgid "RPi port [off]" msgstr "Puerto RPi [ina]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4726 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Ejecutar el Wizard borrara los valores de calibracion actuales y comenzara de nuevo. Continuar?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5236 msgid "SD card [normal]" msgstr "Tarj. SD [normal]" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5234 msgid "SD card [flshAir]" msgstr "Tarj. SD[FlshAir]" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2971 msgid "Right" msgstr "Derecha" @@ -1291,217 +1161,207 @@ msgid "Searching bed calibration point" msgstr "Buscando punto de calibracion base" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5613 msgid "Select language" msgstr "Cambiar el idioma" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Iniciar Selftest" # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5664 msgid "Selftest " msgstr "Selftest" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Error Selftest !" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "Fallo Selftest" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1551 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Se realizara el auto-test para calibrar con precision la vuelta a la posicion inicial sin sensores." # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4959 msgid "Select nozzle preheat temperature which matches your material." msgstr "Selecciona la temperatura para precalentar la boquilla que se ajuste a tu material. " # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Select PLA filament:" msgstr "Seleccionar filamento PLA:" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3230 msgid "Set temperature:" msgstr "Establecer temp.:" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Configuracion" # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5685 msgid "Show end stops" msgstr "Mostrar endstops" # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:3941 msgid "Sensor state" -msgstr "" - -# -#: -msgid "Sensors info" -msgstr "" - -# -#: -msgid "Show pinda state" -msgstr "Mostrar estado pinda" +msgstr "Estado del sensor" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. " # MSG_SORT_NONE c=17 r=1 -#: ultralcd.cpp:5043 -msgid "Sort: [none]" -msgstr "Ordenar: [nada]" +#: ultralcd.cpp:5246 +msgid "Sort [none]" +msgstr "Ordenar [nada]" # MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5041 -msgid "Sort: [time]" -msgstr "Orden: [Fecha]" +#: ultralcd.cpp:5244 +msgid "Sort [time]" +msgstr "Ordenar [Fecha]" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3008 msgid "Severe skew" msgstr "Inclinacion severa" # MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5042 -msgid "Sort: [alphabet]" -msgstr "Ordenar:[alfabet]" +#: ultralcd.cpp:5245 +msgid "Sort [alphabet]" +msgstr "Ordenar [alfabet]" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Ordenando archivos" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "Sonido [alto]" # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3007 msgid "Slight skew" msgstr "Ligeramente inclinado" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "Sonido[silenciad]" # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4870 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Problema encontrado, nivelacion Z forzosa ..." # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "Sonido [una vez]" # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "Sonido[silencios]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Velocidad" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Ventilador girando" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4367 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Se necesita una temperatura ambiente ente 21 y 26C y un soporte rigido." # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Estadisticas " # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "Detener impresion" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "PARADA" # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "Soporte" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Intercambiado" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "Cal. temp. " # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5600 msgid "Temp. cal. [on]" msgstr "Cal. temp. [ON]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5598 msgid "Temp. cal. [off]" msgstr "Cal. temp. [OFF]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5694 msgid "Temp. calibration" msgstr "Calibracion temp." # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3867 msgid "Temperature calibration failed" msgstr "Fallo de la calibracion de temperatura" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "Calibracion temperatura terminada. Haz clic para continuar." # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5564 msgid "Temperature" msgstr "Temperatura" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2140 msgid "Temperatures" msgstr "Temperaturas" @@ -1511,127 +1371,122 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "Todavia es necesario hacer una calibracion Z. Por favor siga el manual, capitulo Primeros pasos, seccion Calibracion del flujo." # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2863 msgid "Total filament" msgstr "Filamento total:" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2863 msgid "Total print time" msgstr "Tiempo total :" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6633 msgid "Tune" msgstr "Ajustar" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Unload" msgstr "Descargar" # -#: ultralcd.cpp:5617 -msgid "Unload all" -msgstr "Soltar todos fil." - -# -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "Total failures" -msgstr "" +msgstr "Fallos totales" # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2213 msgid "to load filament" -msgstr "" +msgstr "para cargar el filamento" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2217 msgid "to unload filament" -msgstr "" +msgstr "para descargar el filamento" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "Soltar filamento" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Soltando filamento" # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1824 msgid "Total" msgstr "" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5822 msgid "Used during print" msgstr "Usado en impresion" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2143 msgid "Voltages" msgstr "Voltajes" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2116 msgid "unknown" -msgstr "" +msgstr "desconocido" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5262 msgid "Wait for user..." msgstr "Esperando ordenes" # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3374 msgid "Waiting for nozzle and bed cooling" msgstr "Esperando enfriamiento de la base y extrusor." # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3338 msgid "Waiting for PINDA probe cooling" msgstr "Esperando a que se enfrie la sonda PINDA" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4782 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Usa unload para retirar el filamento 1 si sobresale por fuera de la parte trasera del tubo MMU. Usa Expulsar si esta escondido dentro del tubo" # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1511 msgid "Warning: both printer type and motherboard type changed." msgstr "Aviso: tanto el tipo de impresora como el tipo de la placa han cambiado." # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1503 msgid "Warning: motherboard type changed." msgstr "Cuidado: el tipo de placa ha cambiado." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1507 msgid "Warning: printer type changed." msgstr "Cuidado: Ha cambiado el tipo de impresora." # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3053 msgid "Was filament unload successful?" msgstr "?Se cargocon exito el filamento?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Error de conexion" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5661 msgid "Wizard" msgstr "" # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2132 msgid "XYZ cal. details" msgstr "Detalles de calibracion XYZ" @@ -1641,107 +1496,312 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "Calibracion XYZ fallada. Consulta el manual por favor." # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Si" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "Siempre puedes acceder al asistente desde Calibracion -> Wizard" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3838 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "Calibracion XYZ correcta. La inclinacion se corregira automaticamente." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "Calibracion XYZ correcta. Los ejes X / Y estan ligeramente inclinados. Buen trabajo!" # -#: ultralcd.cpp:4885 -msgid "X-correct" -msgstr "X-correcion" +#: ultralcd.cpp:5044 +msgid "X-correct:" +msgstr "X-correcion:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3832 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "Calibracion XYZ ok. Ejes X/Y perpendiculares. Enhorabuena!" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3819 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable." -# MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8 -#: ultralcd.cpp:3699 -msgid "XYZ calibration compromised. Left front calibration point not reachable." -msgstr "Calibrazion XYZ comprometida. Punto frontal izquierdo no alcanzable." - # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6080 msgid "Load all" msgstr "Intr. todos fil." -# MSG_LOAD_FILAMENT_1 c=17 -#: ultralcd.cpp:5576 -msgid "Load filament 1" -msgstr "Introducir fil. 1" - # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3798 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables." # -#: ultralcd.cpp:3687 -msgid "XYZ calibration failed. Left front calibration point not reachable." -msgstr "Calibracion XYZ fallada. Punto frontal izquierdo no alcanzable." - -# MSG_LOAD_FILAMENT_2 c=17 -#: ultralcd.cpp:5577 -msgid "Load filament 2" -msgstr "Introducir fil. 2" - -# -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3807 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable." -# MSG_LOAD_FILAMENT_3 c=17 -#: ultralcd.cpp:5578 -msgid "Load filament 3" -msgstr "Introducir fil. 3" - # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2968 msgid "Y distance from min" msgstr "Distancia en Y desde el min" # -#: ultralcd.cpp:4886 -msgid "Y-correct" -msgstr "Y-correcion" +#: ultralcd.cpp:5045 +msgid "Y-correct:" +msgstr "Y-correcion:" -# MSG_LOAD_FILAMENT_4 c=17 -#: ultralcd.cpp:5579 -msgid "Load filament 4" -msgstr "Introducir fil. 4" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr "" -# MSG_LOAD_FILAMENT_5 c=17 -#: ultralcd.cpp:5582 -msgid "Load filament 5" -msgstr "Cargar filamento 5" +# +#: messages.c:57 +msgid "Back" +msgstr "atras" + +# +#: ultralcd.cpp:5553 +msgid "Checks" +msgstr "Comprobaciones" + +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "Falsa activacion" + +# +#: ultralcd.cpp:3946 +msgid "FINDA:" +msgstr "" + +# +#: ultralcd.cpp:5459 +msgid "Firmware [none]" +msgstr "Firmware[ninguno]" + +# +#: ultralcd.cpp:5465 +msgid "Firmware [strict]" +msgstr "Firmware[estrict]" + +# +#: ultralcd.cpp:5462 +msgid "Firmware [warn]" +msgstr "Firmware [aviso]" + +# +#: messages.c:87 +msgid "HW Setup" +msgstr "Configuracion HW" + +# +#: ultralcd.cpp:3950 +msgid "IR:" +msgstr "" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "Comp. imanes [N/A]" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "Comp. imanes [Off]" + +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "Comp. imanes [On]" + +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "Malla [3x3]" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "Malla [7x7]" + +# +#: ultralcd.cpp:5591 +msgid "Mesh bed leveling" +msgstr "Nivelacion Malla Base" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "" + +# +#: ultralcd.cpp:5220 +msgid "MMU Mode [Normal]" +msgstr "Modo MMU [Normal]" + +# +#: ultralcd.cpp:5221 +msgid "MMU Mode[Stealth]" +msgstr "Modo MMU[Silenci]" + +# +#: ultralcd.cpp:4427 +msgid "Mode change in progress ..." +msgstr "Cambio de modo progresando ..." + +# +#: ultralcd.cpp:5420 +msgid "Model [none]" +msgstr "Modelo [ninguno]" + +# +#: ultralcd.cpp:5426 +msgid "Model [strict]" +msgstr "Modelo [estricto]" + +# +#: ultralcd.cpp:5423 +msgid "Model [warn]" +msgstr "Modelo [aviso]" + +# +#: ultralcd.cpp:5381 +msgid "Nozzle d. [0.25]" +msgstr "Diam. nozzl[0.25]" + +# +#: ultralcd.cpp:5384 +msgid "Nozzle d. [0.40]" +msgstr "Diam. nozzl[0.40]" + +# +#: ultralcd.cpp:5387 +msgid "Nozzle d. [0.60]" +msgstr "Diam. nozzl[0.60]" + +# +#: ultralcd.cpp:5335 +msgid "Nozzle [none]" +msgstr "Nozzle [ninguno]" + +# +#: ultralcd.cpp:5341 +msgid "Nozzle [strict]" +msgstr "Nozzle [estricto]" + +# +#: ultralcd.cpp:5338 +msgid "Nozzle [warn]" +msgstr "Nozzle [aviso]" + +# +#: util.cpp:510 +msgid "G-code sliced for a different level. Continue?" +msgstr "" + +# +#: util.cpp:516 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "" + +# +#: ultralcd.cpp:3942 +msgid "PINDA:" +msgstr "" + +# +#: ultralcd.cpp:2286 +msgid "Preheating to cut" +msgstr "Precalentando para laminar" + +# +#: ultralcd.cpp:2283 +msgid "Preheating to eject" +msgstr "Precalentar para expulsar" + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Diametro nozzle impresora difiere de cod.G. ?Continuar?" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Diametro nozzle Impresora difiere de cod.G. Comprueba los valores en ajustes. Impresion cancelada." + +# +#: ultralcd.cpp:6597 +msgid "Rename" +msgstr "Renombrar" + +# +#: ultralcd.cpp:6593 +msgid "Select" +msgstr "Seleccionar" + +# +#: ultralcd.cpp:2134 +msgid "Sensor info" +msgstr "Info sensor" + +# +#: messages.c:58 +msgid "Sheet" +msgstr "Lamina" + +# +#: +msgid "Sound [assist]" +msgstr "" + +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "" + +# +#: ultralcd.cpp:5046 +msgid "Z-correct:" +msgstr "Correccion-Z:" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "Z-sensor nr. [1]" diff --git a/lang/po/Firmware_fr.po b/lang/po/Firmware_fr.po index a11e2e738..dea1b4c29 100644 --- a/lang/po/Firmware_fr.po +++ b/lang/po/Firmware_fr.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: fr\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Ät 7. úno 2019 14:47:01\n" -"PO-Revision-Date: Ät 7. úno 2019 14:47:01\n" +"POT-Creation-Date: Wed Sep 4 16:13:59 CEST 2019\n" +"PO-Revision-Date: Wed Sep 4 16:13:59 CEST 2019\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -21,74 +21,74 @@ msgid " of 4" msgstr "de 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr "de 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3027 msgid "[0;0] point offset" msgstr "Offset point [0;0]" # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: ultralcd.cpp:4219 -msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode" -msgstr "\x1b[2JLa detection de crash\x1b[1;0Hpeut etre active\x1b[2;0Hqu'en mode Normal" +#: +msgid "Crash detection can\x0abe turned on only in\x0aNormal mode" +msgstr "La detection de\x0acrash peut etre\x0aactive seulement en\x0amode Normal" # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 -#: ultralcd.cpp:4231 -msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode" -msgstr "\x1b[2JATTENTION :\x1b[1;0H Detection de crash\x1b[2;0H desactivee en mode\x1b[3;0H Furtif" +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode Furtif" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2290 msgid ">Cancel" -msgstr "" +msgstr ">Annuler" -# MSG_BABYSTEPPING_Z c=20 -#: ultralcd.cpp:3043 -msgid "Adjusting Z" -msgstr "Ajustement de Z" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3147 +msgid "Adjusting Z:" +msgstr "Ajust. de Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Tout est correct" # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" -msgstr "Tout est termine. Bonne impression !" +msgstr "Tout est pret. Bonne impression !" # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1974 msgid "Ambient" msgstr "Ambiant" # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2576 msgid "and press the knob" msgstr "et pressez le bouton" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3445 msgid "Are left and right Z~carriages all up?" -msgstr "Chariots Z gauche et droite tout en haut?" +msgstr "Z~carriages gauche + droite tout en haut?" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5114 msgid "SpoolJoin [on]" -msgstr "SpoolJoin [on]" +msgstr "" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5110 msgid "SpoolJoin [N/A]" -msgstr "SpoolJoin [N/A]" +msgstr "" -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +# MSG_AUTO_DEPLETE_OFF c=17 r=1 +#: ultralcd.cpp:5118 msgid "SpoolJoin [off]" -msgstr "SpoolJoin [off]" +msgstr "" # MSG_AUTO_HOME #: messages.c:11 @@ -96,39 +96,39 @@ msgid "Auto home" msgstr "Mise a 0 des axes" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6736 msgid "AutoLoad filament" msgstr "AutoCharge du filament" # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4378 msgid "Autoloading filament available only when filament sensor is turned on..." -msgstr "AutoCharge du filament uniquement si le capteur de filament est active." +msgstr "Chargement auto du filament uniquement si le capteur de filament est active." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2771 msgid "Autoloading filament is active, just press the knob and insert filament..." -msgstr "AutoCharge actif, appuyez sur le bouton et inserez le filament." +msgstr "Chargement auto du filament actif, appuyez sur le btn et inserez le fil." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Longueur de l'axe" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Axe" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Lit / Chauffage" # MSG_BED_DONE #: messages.c:16 msgid "Bed done" -msgstr "Lit termine" +msgstr "Plateau termine" # MSG_BED_HEATING #: messages.c:17 @@ -136,24 +136,14 @@ msgid "Bed Heating" msgstr "Chauffe du lit" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5682 msgid "Bed level correct" -msgstr "Cor courbure du lit" +msgstr "Corr. niveau plateau" # MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4 #: messages.c:18 msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." -msgstr "Echec du nivellement. Capt. non declenche. Debris sur buse ? En attente d'un reset." - -# MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4 -#: Marlin_main.cpp:4508 -msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset." -msgstr "Echec du nivellement. Capteur deconnecte ou cable casse. En attente d'un reset." - -# MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4 -#: Marlin_main.cpp:4512 -msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset." -msgstr "Echec du nivellement. Capt. declenche trop trop haut. En attente d'un reset." +msgstr "Echec bed leveling. Capt. non declenche. Debris sur buse ? En attente d'un reset." # MSG_BED #: messages.c:15 @@ -161,22 +151,22 @@ msgid "Bed" msgstr "Lit" # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2002 msgid "Belt status" msgstr "Statut courroie" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "Coupure detectee. Recup. impression ?" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" -msgstr "" +msgstr "Calib. mise a 0" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5671 msgid "Calibrate XYZ" msgstr "Calibrer XYZ" @@ -186,12 +176,12 @@ msgid "Calibrate Z" msgstr "Calibrer Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4570 msgid "Calibrate" msgstr "Calibrer" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibration de XYZ. Tournez le bouton pour monter le chariot de l'axe Z jusqu'aux butees. Cliquez une fois fait." @@ -201,37 +191,32 @@ msgid "Calibrating Z" msgstr "Calibration de Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibration de Z. Tournez le bouton pour monter le chariot de l'axe Z jusqu'aux butees. Cliquez une fois fait." # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:813 msgid "Calibration done" msgstr "Calibration terminee" # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" -msgstr "Calibration" +msgstr "" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Cancel" msgstr "Annuler" -# MSG_SD_INSERTED -#: -msgid "Card inserted" -msgstr "Carte inseree" - # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "Carte retiree" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2676 msgid "Color not correct" msgstr "Couleur incorrecte" @@ -241,9 +226,9 @@ msgid "Cooldown" msgstr "Refroidissement" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4503 msgid "Copy selected language?" -msgstr "Copier la langue selectionne?" +msgstr "Copier la langue selectionne ?" # MSG_CRASHDETECT_ON #: messages.c:27 @@ -253,12 +238,12 @@ msgstr "Detect. crash[on]" # MSG_CRASHDETECT_NA #: messages.c:25 msgid "Crash det. [N/A]" -msgstr "Detect.crash[N/A]" +msgstr "Detect. crash [N/A]" # MSG_CRASHDETECT_OFF #: messages.c:26 msgid "Crash det. [off]" -msgstr "Detect.crash[off]" +msgstr "Detect. crash[off]" # MSG_CRASH_DETECTED c=20 r=1 #: messages.c:24 @@ -266,147 +251,97 @@ msgid "Crash detected." msgstr "Crash detecte." # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:600 msgid "Crash detected. Resume print?" msgstr "Crash detecte. Poursuivre l'impression ?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Crash" -msgstr "Colision" +msgstr "" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5823 msgid "Current" msgstr "Actuel" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2102 msgid "Date:" msgstr "Date :" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5568 msgid "Disable steppers" msgstr "Desactiver moteurs" # MSG_BABYSTEP_Z_NOT_SET c=20 r=12 #: messages.c:14 msgid "Distance between tip of the nozzle and the bed surface has not been set yet. Please follow the manual, chapter First steps, section First layer calibration." -msgstr "La distance entre la pointe de la buse et la surface du lit n'a pas encore ete reglee. Suivez le manuel, chapitre Premiers pas, section Calibration de la premiere couche." +msgstr "La distance entre la pointe de la buse et la surface du plateau n'a pas encore ete reglee. Suivez le manuel, chapitre Premiers pas, section Calibration de la premiere couche." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4984 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" -msgstr "Voulez-vous repeter la derniere etape pour reajuster la distance entre la buse et le lit chauffant ?" +msgstr "Voulez-vous repeter la derniere etape pour reajuster la distance entre la buse et le plateau chauffant ?" -# MSG_EXTRUDER_CORRECTION c=9 -#: ultralcd.cpp:4889 -msgid "E-correct" -msgstr "Correct-E" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5048 +msgid "E-correct:" +msgstr "Correct-E:" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" -msgstr "Ejecter le fil" - -# MSG_EJECT_FILAMENT1 c=17 r=1 -#: ultralcd.cpp:5603 -msgid "Eject filament 1" -msgstr "Ejecter fil. 1" - -# MSG_EJECT_FILAMENT2 c=17 r=1 -#: ultralcd.cpp:5604 -msgid "Eject filament 2" -msgstr "Ejecter fil. 2" - -# MSG_EJECT_FILAMENT3 c=17 r=1 -#: ultralcd.cpp:5605 -msgid "Eject filament 3" -msgstr "Ejecter fil. 3" - -# MSG_EJECT_FILAMENT4 c=17 r=1 -#: ultralcd.cpp:5606 -msgid "Eject filament 4" -msgstr "Ejecter fil. 4" - -# MSG_EJECT_FILAMENT5 c=17 r=1 -#: ultralcd.cpp:5607 -msgid "Eject filament 5" -msgstr "Ejecter fil. 5" +msgstr "Ejecter le fil." # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Eject" msgstr "Ejecter" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1434 msgid "Ejecting filament" -msgstr "Filament en cours d'ejection" +msgstr "Ejection filament" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Butee non atteinte" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "Butee" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "Butees" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Erreur - la memoire statique a ete ecrasee" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4391 msgid "ERROR: Filament sensor is not responding, please check connection." -msgstr "ERREUR : Le capteur de filament ne repond pas, verifiez la connexion." +msgstr "ERREUR : Le capteur de filament ne repond pas, verifiez le branchement." # MSG_ERROR #: messages.c:28 msgid "ERROR:" msgstr "ERREUR :" -# -#: Marlin_main.cpp:1006 -msgid "External SPI flash W25X20CL not responding." -msgstr "La Flash SPI externe W25X20CL ne repond pas." - -# -#: ultralcd.cpp:5633 -msgid "Extruder 1" -msgstr "Extrudeur 1" - -# -#: ultralcd.cpp:5634 -msgid "Extruder 2" -msgstr "Extrudeur 2" - -# -#: ultralcd.cpp:5635 -msgid "Extruder 3" -msgstr "Extrudeur 3" - -# -#: ultralcd.cpp:5636 -msgid "Extruder 4" -msgstr "Extrudeur 4" - # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Ventilo extrudeur:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2133 msgid "Extruder info" msgstr "Infos extrudeur" @@ -416,14 +351,14 @@ msgid "Extruder" msgstr "Extrudeur" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" -msgstr "" +msgstr "Stat. echecs MMU" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5082 msgid "F. autoload [on]" -msgstr "AutoCharg F [on]" +msgstr "ChargAuto f. [on]" # MSG_FSENS_AUTOLOAD_NA c=17 r=1 #: messages.c:43 @@ -431,12 +366,12 @@ msgid "F. autoload [N/A]" msgstr "AutoCharg F [N/A]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5084 msgid "F. autoload [off]" msgstr "AutoCharg F [off]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" msgstr "Statist. d'echec" @@ -446,17 +381,17 @@ msgid "Fan speed" msgstr "Vitesse ventil" # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Test ventilateur" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5577 msgid "Fans check [on]" -msgstr "Verif venti [on]" +msgstr "Verif ventilo[on]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5579 msgid "Fans check [off]" msgstr "Verif venti [off]" @@ -465,15 +400,10 @@ msgstr "Verif venti [off]" msgid "Fil. sensor [on]" msgstr "Capteur Fil. [on]" -# MSG_RESPONSE_POOR c=20 r=2 -#: Marlin_main.cpp:3146 -msgid "Fil. sensor response is poor, disable it?" -msgstr "La reponse du capteur de fil. est pauvre, le desactiver ?" - # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5062 msgid "Fil. sensor [N/A]" -msgstr "Capteur Fil.[N/A]" +msgstr "Capteur Fil. [N/A]" # MSG_FSENSOR_OFF #: messages.c:44 @@ -481,9 +411,9 @@ msgid "Fil. sensor [off]" msgstr "Capteur Fil.[off]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Filam. runouts" -msgstr "Manque de flm" +msgstr "Fins de filament" # MSG_FILAMENT_CLEAN c=20 r=2 #: messages.c:32 @@ -491,32 +421,27 @@ msgid "Filament extruding & with correct color?" msgstr "Filament extrude et avec bonne couleur ?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2672 msgid "Filament not loaded" msgstr "Filament non charge" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Capteur de filament" -# MSG_SELFTEST_FILAMENT_SENSOR c=18 -#: ultralcd.cpp:7477 -msgid "Filament sensor:" -msgstr "Capteur filament :" - # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2841 msgid "Filament used" msgstr "Filament utilise" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2841 msgid "Print time" msgstr "Temps d'impression" # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "Fichier incomplet. Continuer qd meme ?" @@ -526,52 +451,52 @@ msgid "Finishing movements" msgstr "Mouvements de fin" # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Cal. 1ere couche" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4896 msgid "First, I will run the selftest to check most common assembly problems." -msgstr "D'abord, je vais lancer l'autotest pour verifier les problemes d'assemblage les plus communs." +msgstr "D'abord, je vais lancer le Selftest pour verifier les problemes d'assemblage les plus communs." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Corrigez le probleme et appuyez sur le bouton de l'unite MMU." # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Flux" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2095 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Ventilo impr avant ?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3220 msgid "Front side[um]" msgstr "Avant [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Ventilos avt/gauche" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Chauffage/Thermistor" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8468 msgid "Heating disabled by safety timer." msgstr "Chauffe desactivee par le compteur de securite." @@ -586,67 +511,62 @@ msgid "Heating" msgstr "Chauffe" # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4875 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Bonjour, je suis votre imprimante Original Prusa i3. Voulez-vous que je vous guide a travers le processus d'installation ?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2096 msgid "howto.prusa3d.com" msgstr "" -# -#: ultralcd.cpp:6087 -msgid "Change extruder" -msgstr "Changer extrudeur" - # MSG_FILAMENTCHANGE #: messages.c:37 msgid "Change filament" msgstr "Changer filament" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2587 msgid "Change success!" msgstr "Changement reussi!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2664 msgid "Changed correctly?" msgstr "Change correctement?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Verification du lit" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Verifications butees" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Verif. tete impr." # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Verif. des capteurs" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Verification axe X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Verification axe Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Verification axe Z" @@ -666,119 +586,89 @@ msgid "Filament" msgstr "" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4905 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Je vais maintenant lancer la calibration xyz. Cela prendra 12 min environ." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4913 msgid "I will run z calibration now." msgstr "Je vais maintenant lancer la calibration z." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4978 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." -msgstr "Je vais commencer a imprimer une ligne et vous baisserez au fur et a mesure la buse en tournant le bouton jusqu'a atteindre la hauteur optimale. Regardez les photos dans notre manuel au chapitre Calibration." - -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: mesh_bed_calibration.cpp:2481 -msgid "Improving bed calibration point" -msgstr "Amelioration du point de calibration du lit" +msgstr "Je vais commencer a imprimer une ligne et vous baisserez au fur et a mesure la buse en tournant le bouton jusqu'a atteindre la hauteur optimale. Regardez les photos dans notre manuel au chapitre Calibration" # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Ecran d'info" -# MSG_FILAMENT_LOADING_T0 c=20 r=4 -#: messages.c:33 -msgid "Insert filament into extruder 1. Click when done." -msgstr "Inserez le filament dans l'extrudeur 1. Cliquez une fois fait." - -# MSG_FILAMENT_LOADING_T1 c=20 r=4 -#: messages.c:34 -msgid "Insert filament into extruder 2. Click when done." -msgstr "Inserez le filament dans l'extrudeur 2. Cliquez une fois fait." - -# MSG_FILAMENT_LOADING_T2 c=20 r=4 -#: messages.c:35 -msgid "Insert filament into extruder 3. Click when done." -msgstr "Inserez le filament dans l'extrudeur 3. Cliquez une fois fait." - -# MSG_FILAMENT_LOADING_T3 c=20 r=4 -#: messages.c:36 -msgid "Insert filament into extruder 4. Click when done." -msgstr "Inserez le filament dans l'extrudeur 4. Cliquez une fois fait." - # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:4938 msgid "Is filament 1 loaded?" msgstr "Le filament 1 est-il charge ?" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2572 msgid "Insert filament" msgstr "Inserez le filament" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4941 msgid "Is filament loaded?" msgstr "Le filament est-il charge ?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4972 msgid "Is it PLA filament?" msgstr "Est-ce du filament PLA ?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4704 msgid "Is PLA filament loaded?" msgstr "Le filament PLA est-il charge ?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" -msgstr "Feuille d'acier sur le lit chauffant ?" - -# MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20 -#: mesh_bed_calibration.cpp:2223 -msgid "Iteration " -msgstr "" +msgstr "Feuille d'acier sur plateau chauffant ?" # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1840 msgid "Last print failures" -msgstr "Echecs d'impr. dern." +msgstr "Echecs derniere impr" # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1823 msgid "Last print" -msgstr "Derniere impress." +msgstr "Derniere impression" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Ventilo tete gauche?" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2970 msgid "Left" msgstr "Gauche" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3218 msgid "Left side [um]" msgstr "Gauche [um]" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5594 msgid "Lin. correction" msgstr "Correction lin." # MSG_BABYSTEP_Z #: messages.c:13 msgid "Live adjust Z" -msgstr "Ajuster Z en dir" +msgstr "Ajuster Z en direct" # MSG_LOAD_FILAMENT c=17 #: messages.c:51 @@ -786,7 +676,7 @@ msgid "Load filament" msgstr "Charger filament" # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2612 msgid "Loading color" msgstr "Chargement couleur" @@ -796,239 +686,234 @@ msgid "Loading filament" msgstr "Chargement filament" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Poulie lache" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6719 msgid "Load to nozzle" -msgstr "Charger le fil" +msgstr "Charger dans la buse" # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Cal. 1ere couche" # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Principal" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Mesure de la hauteur de reference du point de calibration" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5677 msgid "Mesh Bed Leveling" -msgstr "Nivelage du lit" +msgstr "" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Reprise de la position ..." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." -msgstr "MMU OK. Reprise de la temperature ..." +msgstr "MMU OK. Remontee en temperature..." # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3005 msgid "Measured skew" msgstr "Deviation mesuree" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU fails" -msgstr "" +msgstr "Echec MMU" # -#: mmu.cpp:1399 +#: mmu.cpp:1613 msgid "MMU load failed " -msgstr "" +msgstr "Echec chargement MMU" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU load fails" -msgstr "" +msgstr "Echecs charg. MMU" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Reprise ..." # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" -msgstr "Mode [Normal]" +msgstr "" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Mode [silencieux]" # -#: mmu.cpp:635 +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "Le MMU necessite l'attention de l'utilisateur." # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "MMU power fails" -msgstr "" +msgstr "Echecs alim. MMU" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" -msgstr "Mode [Furtif]" +msgstr "Mode [Furtif]" # MSG_AUTO_MODE_ON #: messages.c:12 msgid "Mode [auto power]" -msgstr "Mode[puissan.aut]" +msgstr "Mode [puiss.auto]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" -msgstr "Mode[haute puiss]" +msgstr "Mode [haute puiss]" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2108 msgid "MMU2 connected" -msgstr "MMU2 connectée" +msgstr "MMU2 connecte" # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "Moteur" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5566 msgid "Move axis" msgstr "Deplacer l'axe" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4294 msgid "Move X" msgstr "Deplacer X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4295 msgid "Move Y" msgstr "Deplacer Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4296 msgid "Move Z" msgstr "Deplacer Z" # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5291 msgid "No move." msgstr "Pas de mouvement." # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6686 msgid "No SD card" msgstr "Pas de carte SD" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2976 msgid "N/A" msgstr "" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "Non" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "Non connecte" # #: util.cpp:293 msgid "New firmware version available:" -msgstr "Nouvelle version de firmware disponible :" - -# -#: -msgid "No " -msgstr "Non" +msgstr "Nouvelle version de firmware disponible:" # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Ne tourne pas" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4977 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." -msgstr "Maintenant je vais calibrer la distance entre la pointe de la buse et le surface du lit chauffant." +msgstr "Maintenant je vais calibrer la distance entre la pointe de la buse et la surface du plateau chauffant." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4921 msgid "Now I will preheat nozzle for PLA." msgstr "Maintenant je vais prechauffer la buse pour du PLA." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Buse" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1519 msgid "Old settings found. Default PID, Esteps etc. will be set." -msgstr "Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront pris." +msgstr "Anciens reglages trouves. Le PID, les Esteps etc. par defaut seront regles" # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4912 msgid "Now remove the test print from steel sheet." msgstr "Retirez maintenant l'impression de test de la feuille d'acier." # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:1782 msgid "Nozzle FAN" -msgstr "Vent buse" +msgstr "Ventilateur buse" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6649 msgid "Pause print" -msgstr "Pause de l'impres" +msgstr "Pause de l'impr." # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1598 msgid "PID cal. " msgstr "Calib. PID" # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1604 msgid "PID cal. finished" msgstr "Calib. PID terminee" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5683 msgid "PID calibration" msgstr "Calibration PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:843 msgid "PINDA Heating" msgstr "Chauffe de la PINDA" # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." -msgstr "Placez une feuille de papier sous la buse pendant la calibration des 4 premiers points. Si la buse accroche le papier, eteignez de suite l'imprimante." +msgstr "Placez une feuille de papier sous la buse pendant la calibration des 4 premiers points. Si la buse accroche le papier, eteignez vite l'imprimante." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4986 msgid "Please clean heatbed and then press the knob." -msgstr "Nettoyez le lit chauffant et appuyez sur le bouton." +msgstr "Nettoyez le plateau chauffant et appuyez sur le bouton." # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 #: messages.c:22 @@ -1036,92 +921,92 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Nettoyez la buse pour la calibration. Cliquez une fois fait." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Verifiez :" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Merci de verifier notre manuel et de corriger le probleme. Poursuivez alors l'assistant en redemarrant l'imprimante." # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4808 msgid "Please insert PLA filament to the extruder, then press knob to load it." -msgstr "Inserez du filament PLA dans l'extrudeur, puis appuyez sur le bouton pour le charger." +msgstr "Inserez du filament PLA dans l'extrudeur puis appuyez sur le bouton pour le charger." # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4709 msgid "Please load PLA filament first." msgstr "Chargez d'abord le filament PLA." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3063 msgid "Please open idler and remove filament manually." -msgstr "Ouvrez le support de poulie et retirez le filament manuellement." +msgstr "Ouvrez l'idler et retirez le filament manuellement." # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." -msgstr "Placez la feuille d'acier sur le lit chauffant." +msgstr "Placez la feuille d'acier sur le plateau chauffant." # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Appuyez sur le bouton pour decharger le filament" # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4803 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Veuillez inserer du filament PLA dans le premier tube du MMU, et pressez sur le bouton pour le charger." # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Retirez immediatement le filament" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1440 msgid "Please remove filament and then press the knob." msgstr "Veuillez retirer le filament puis appuyez sur le bouton." # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." -msgstr "Retirez la feuille d'acier du lit chauffant" +msgstr "Retirez la feuille d'acier du plateau chauffant." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4354 msgid "Please run XYZ calibration first." msgstr "Veuillez d'abord lancer la calibration XYZ." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1359 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Veuillez mettre a jour le firmware de votre MMU2. En attente d'un reset." # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Merci de patienter" # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4911 msgid "Please remove shipping helpers first." msgstr "Veuillez retirer d'abord les protections d'envoi." # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Prechauffez la buse!" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6636 msgid "Preheat" msgstr "Prechauffage" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "Prechauffage de la buse. Merci de patienter." @@ -1131,32 +1016,32 @@ msgid "Please upgrade." msgstr "Mettez a jour le FW." # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10365 msgid "Press knob to preheat nozzle and continue." msgstr "Appuyez sur le bouton pour prechauffer la buse et continuer." # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Power failures" -msgstr "Coupures" +msgstr "Coupures de courant" # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Impression annulee" # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2276 msgid "Preheating to load" -msgstr "" +msgstr "Chauffe pour charger" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2280 msgid "Preheating to unload" -msgstr "" +msgstr "Chauffe pr decharger" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "Ventilo impr. :" @@ -1166,57 +1051,47 @@ msgid "Print from SD" msgstr "Impr depuis la SD" # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2206 msgid "Press the knob" -msgstr "" +msgstr "App. sur sur bouton" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1061 msgid "Print paused" msgstr "Impression en pause" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Appuyez sur le bouton pour poursuivre la mise en temperature de la buse." # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 #: messages.c:41 msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow." -msgstr "L'imprimante n'a pas encore ete calibree. Suivez le manuel, chapitre Premiers pas, section Processus de calibration" +msgstr "L'imprimante n'a pas encore ete calibree. Suivez le manuel, chapitre Premiers pas, section Processus de calibration." # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1784 msgid "Print FAN" -msgstr "Vent extru" - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK2.5 ready." -msgstr "Prusa i3 MK2.5 prete." - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK3 ready." -msgstr "Prusa i3 MK3 prete." +msgstr "Ventilo impression" # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2094 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3221 msgid "Rear side [um]" msgstr "Arriere [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9765 msgid "Recovering print " msgstr "Recup. impression" # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Retirez l'ancien filament puis appuyez sur le bouton pour charger le nouveau." @@ -1225,63 +1100,58 @@ msgstr "Retirez l'ancien filament puis appuyez sur le bouton pour charger le nou msgid "Prusa i3 MK3S OK." msgstr "" -# -#: -msgid "Prusa i3 MK2 ready." -msgstr "Prusa i3 MK2 prete." - # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5688 msgid "Reset XYZ calibr." msgstr "Reinit. calibr. XYZ" # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3222 msgid "Reset" msgstr "Reinitialiser" # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6656 msgid "Resume print" msgstr "Reprendre impression" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "Reprise de l'impr." # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3219 msgid "Right side[um]" msgstr "Droite [um]" # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5606 msgid "RPi port [on]" -msgstr "Port RPi [on]" +msgstr "Port RPi [on]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5604 msgid "RPi port [off]" -msgstr "Port RPi [off]" +msgstr "Port RPi [off]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4726 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Lancer l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer ?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5236 msgid "SD card [normal]" msgstr "Carte SD [normal]" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5234 msgid "SD card [flshAir]" -msgstr "Carte SD[flshAir]" +msgstr "Carte SD [flashAir]" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2971 msgid "Right" msgstr "Droite" @@ -1291,217 +1161,207 @@ msgid "Searching bed calibration point" msgstr "Recherche du point de calibration du lit" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5613 msgid "Select language" msgstr "Choisir langue" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "Auto-test OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Debut auto-test" # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5664 msgid "Selftest " msgstr "Auto-test" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Erreur auto-test !" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "Echec de l'auto-test" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1551 msgid "Selftest will be run to calibrate accurate sensorless rehoming." -msgstr "L'auto-test sera lance pour calibrer la remise a zero precise sans capteur." +msgstr "Le Selftest sera lance pour calibrer la remise a zero precise sans capteur" # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4959 msgid "Select nozzle preheat temperature which matches your material." msgstr "Selectionnez la temperature de prechauffage de la buse qui correspond a votre materiau." # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Select PLA filament:" msgstr "Selectionnez le filament PLA :" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3230 msgid "Set temperature:" msgstr "Regler temp. :" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Reglages" # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5685 msgid "Show end stops" msgstr "Afficher butees" # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:3941 msgid "Sensor state" -msgstr "" - -# -#: -msgid "Sensors info" -msgstr "" - -# -#: -msgid "Show pinda state" -msgstr "Etat de la PINDA" +msgstr "Etat capteur" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Certains fichiers ne seront pas tries. Max 100 fichiers tries par dossier." # MSG_SORT_NONE c=17 r=1 -#: ultralcd.cpp:5043 -msgid "Sort: [none]" +#: ultralcd.cpp:5246 +msgid "Sort [none]" msgstr "Tri : [aucun]" # MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5041 -msgid "Sort: [time]" -msgstr "Tri : [heure]" +#: ultralcd.cpp:5244 +msgid "Sort [time]" +msgstr "Tri [heure]" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3008 msgid "Severe skew" msgstr "Deviation severe" # MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5042 -msgid "Sort: [alphabet]" -msgstr "Tri : [alphabet]" +#: ultralcd.cpp:5245 +msgid "Sort [alphabet]" +msgstr "Tri [alphabet]" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Tri des fichiers" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" -msgstr "Son [fort]" +msgstr "Son [fort]" # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3007 msgid "Slight skew" msgstr "Deviation legere" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" -msgstr "Son [muet]" +msgstr "Son [muet]" # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4870 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Problemes rencontres, nivellement de l'axe Z applique..." # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" -msgstr "Son [une fois]" +msgstr "Son [une fois]" # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" -msgstr "Son [silencieux]" +msgstr "Son [silencieux]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Vitesse" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Tourne" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4367 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." -msgstr "Une temperature ambiante stable de 21-26C et une base stable sont requis." +msgstr "Une temperature ambiante stable de 21-26C et un support stable sont requis." # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Statistiques" # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "Arreter impression" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "ARRETE." # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Echange" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "Calib. Temp." # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5600 msgid "Temp. cal. [on]" msgstr "Calib. Temp. [on]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5598 msgid "Temp. cal. [off]" msgstr "Calib. Temp.[off]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5694 msgid "Temp. calibration" msgstr "Calibration temp." # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3867 msgid "Temperature calibration failed" -msgstr "Echec calibration en temperature" +msgstr "Echec de la calibration en temperature" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." -msgstr "La calibration en temperature est terminee et active. La calibration en temperature peut etre desactivee dans le menu Reglages->Cal. Temp." +msgstr "La calibration en temperature est terminee et activee. La calibration en temperature peut etre desactivee dans le menu Reglages-> Cal. Temp." # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5564 msgid "Temperature" msgstr "" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2140 msgid "Temperatures" msgstr "" @@ -1511,127 +1371,122 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "Il y a encore besoin d'effectuer la calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration." # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2863 msgid "Total filament" msgstr "Filament total" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2863 msgid "Total print time" -msgstr "Temps total" +msgstr "Temps total impr." # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6633 msgid "Tune" msgstr "Regler" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Unload" msgstr "Decharger" # -#: ultralcd.cpp:5617 -msgid "Unload all" -msgstr "Decharger tout" - -# -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "Total failures" -msgstr "Echecs au total" +msgstr "Total des echecs" # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2213 msgid "to load filament" -msgstr "" +msgstr "pour charger le fil." # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2217 msgid "to unload filament" -msgstr "" +msgstr "pour decharger fil." # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "Decharger fil." # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Dechargement fil." # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1824 msgid "Total" -msgstr "Total" +msgstr "" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5822 msgid "Used during print" msgstr "Utilise pdt impr." # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2143 msgid "Voltages" msgstr "Tensions" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2116 msgid "unknown" -msgstr "" +msgstr "inconnu" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5262 msgid "Wait for user..." msgstr "Attente utilisateur..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3374 msgid "Waiting for nozzle and bed cooling" -msgstr "Attente du refroidissement de la buse et du lit" +msgstr "Attente du refroidissement des buse et plateau" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3338 msgid "Waiting for PINDA probe cooling" msgstr "Attente du refroidissement de la sonde PINDA" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4782 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Utilisez decharger pour retirer le filament 1 s'il depasse du tube arriere du MMU. Utilisez ejecter s'il est cache dans le tube." # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1511 msgid "Warning: both printer type and motherboard type changed." msgstr "Attention : Types d'imprimante et de carte mere modifies" # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1503 msgid "Warning: motherboard type changed." msgstr "Attention : Type de carte mere modifie." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1507 msgid "Warning: printer type changed." msgstr "Attention : Type d'imprimante modifie" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3053 msgid "Was filament unload successful?" msgstr "Dechargement du filament reussi ?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Erreur de cablage" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5661 msgid "Wizard" msgstr "Assistant" # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2132 msgid "XYZ cal. details" msgstr "Details calib. XYZ" @@ -1641,107 +1496,312 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "Echec calibration XYZ. Consultez le manuel." # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Oui" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." -msgstr "Vous pouvez toujours poursuivre l'assistant dans Calibration-> Assistant." +msgstr "Vous pouvez toujours relancer l'assistant dans Calibration-> Assistant." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3838 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "Calibration XYZ OK. L'ecart sera corrige automatiquement." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "Calibration XYZ OK. Les axes X/Y sont legerement non perpendiculaires. Bon boulot !" # -#: ultralcd.cpp:4885 -msgid "X-correct" -msgstr "Correction-X" +#: ultralcd.cpp:5044 +msgid "X-correct:" +msgstr "Correct-X:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3832 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "Calibration XYZ OK. Les axes X/Y sont perpendiculaires. Felicitations !" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "Calibration XYZ compromise. Les points de calibration avant ne sont pas atteignables." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3819 msgid "XYZ calibration compromised. Right front calibration point not reachable." -msgstr "Calibration XYZ compromise. Le point de calibration avant droite n'est pas atteignable." - -# MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8 -#: ultralcd.cpp:3699 -msgid "XYZ calibration compromised. Left front calibration point not reachable." -msgstr "Calibration XYZ compromise. Le point de calibration avant gauche n'est pas atteignable." +msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable." # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6080 msgid "Load all" msgstr "Tout charger" -# MSG_LOAD_FILAMENT_1 c=17 -#: ultralcd.cpp:5576 -msgid "Load filament 1" -msgstr "Charger fil. 1" - # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3798 msgid "XYZ calibration failed. Bed calibration point was not found." -msgstr "Echec calibration XYZ. Le point de calibration du lit n'a pas ete trouve." +msgstr "Echec calibration XYZ. Le point de calibration du plateau n'a pas ete trouve." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Echec calibration XYZ. Les points de calibration avant ne sont pas atteignables." # -#: ultralcd.cpp:3687 -msgid "XYZ calibration failed. Left front calibration point not reachable." -msgstr "Echec calibration XYZ. Le point de calibration avant gauche n'est pas atteignable." - -# MSG_LOAD_FILAMENT_2 c=17 -#: ultralcd.cpp:5577 -msgid "Load filament 2" -msgstr "Charger fil. 2" - -# -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3807 msgid "XYZ calibration failed. Right front calibration point not reachable." -msgstr "Echec calibration XYZ. Le point de calibration avant droite n'est pas atteignable." - -# MSG_LOAD_FILAMENT_3 c=17 -#: ultralcd.cpp:5578 -msgid "Load filament 3" -msgstr "Charger fil. 3" +msgstr "Echec calibration XYZ. Le point de calibration avant droit n'est pas atteignable." # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2968 msgid "Y distance from min" msgstr "Distance Y du min" # -#: ultralcd.cpp:4886 -msgid "Y-correct" -msgstr "Correction-Y" +#: ultralcd.cpp:5045 +msgid "Y-correct:" +msgstr "Correct-Y:" -# MSG_LOAD_FILAMENT_4 c=17 -#: ultralcd.cpp:5579 -msgid "Load filament 4" -msgstr "Charger fil. 4" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr "" -# MSG_LOAD_FILAMENT_5 c=17 -#: ultralcd.cpp:5582 -msgid "Load filament 5" -msgstr "Charger fil. 5" +# +#: messages.c:57 +msgid "Back" +msgstr "" + +# +#: ultralcd.cpp:5553 +msgid "Checks" +msgstr "" + +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "" + +# +#: ultralcd.cpp:3946 +msgid "FINDA:" +msgstr "" + +# +#: ultralcd.cpp:5459 +msgid "Firmware [none]" +msgstr "" + +# +#: ultralcd.cpp:5465 +msgid "Firmware [strict]" +msgstr "" + +# +#: ultralcd.cpp:5462 +msgid "Firmware [warn]" +msgstr "" + +# +#: messages.c:87 +msgid "HW Setup" +msgstr "" + +# +#: ultralcd.cpp:3950 +msgid "IR:" +msgstr "" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "" + +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "" + +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "" + +# +#: ultralcd.cpp:5591 +msgid "Mesh bed leveling" +msgstr "" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "" + +# +#: ultralcd.cpp:5220 +msgid "MMU Mode [Normal]" +msgstr "" + +# +#: ultralcd.cpp:5221 +msgid "MMU Mode[Stealth]" +msgstr "" + +# +#: ultralcd.cpp:4427 +msgid "Mode change in progress ..." +msgstr "" + +# +#: ultralcd.cpp:5420 +msgid "Model [none]" +msgstr "" + +# +#: ultralcd.cpp:5426 +msgid "Model [strict]" +msgstr "" + +# +#: ultralcd.cpp:5423 +msgid "Model [warn]" +msgstr "" + +# +#: ultralcd.cpp:5381 +msgid "Nozzle d. [0.25]" +msgstr "" + +# +#: ultralcd.cpp:5384 +msgid "Nozzle d. [0.40]" +msgstr "" + +# +#: ultralcd.cpp:5387 +msgid "Nozzle d. [0.60]" +msgstr "" + +# +#: ultralcd.cpp:5335 +msgid "Nozzle [none]" +msgstr "" + +# +#: ultralcd.cpp:5341 +msgid "Nozzle [strict]" +msgstr "" + +# +#: ultralcd.cpp:5338 +msgid "Nozzle [warn]" +msgstr "" + +# +#: util.cpp:510 +msgid "G-code sliced for a different level. Continue?" +msgstr "" + +# +#: util.cpp:516 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "" + +# +#: ultralcd.cpp:3942 +msgid "PINDA:" +msgstr "" + +# +#: ultralcd.cpp:2286 +msgid "Preheating to cut" +msgstr "" + +# +#: ultralcd.cpp:2283 +msgid "Preheating to eject" +msgstr "" + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "" + +# +#: ultralcd.cpp:6597 +msgid "Rename" +msgstr "" + +# +#: ultralcd.cpp:6593 +msgid "Select" +msgstr "" + +# +#: ultralcd.cpp:2134 +msgid "Sensor info" +msgstr "" + +# +#: messages.c:58 +msgid "Sheet" +msgstr "" + +# +#: +msgid "Sound [assist]" +msgstr "" + +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "" + +# +#: ultralcd.cpp:5046 +msgid "Z-correct:" +msgstr "" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "" diff --git a/lang/po/Firmware_it.po b/lang/po/Firmware_it.po index b2b78e7f0..852e024ab 100644 --- a/lang/po/Firmware_it.po +++ b/lang/po/Firmware_it.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Ät 7. úno 2019 14:48:23\n" -"PO-Revision-Date: Ät 7. úno 2019 14:48:23\n" +"POT-Creation-Date: Wed Sep 4 16:14:05 CEST 2019\n" +"PO-Revision-Date: Wed Sep 4 16:14:05 CEST 2019\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -21,74 +21,74 @@ msgid " of 4" msgstr " su 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr "su 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3027 msgid "[0;0] point offset" msgstr "[0;0] punto offset" # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: ultralcd.cpp:4219 -msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode" -msgstr "\x1b[2JRilev. impatto\x1b[1;0Hattivabile solo\x1b[2;0Hin Modalita normale" +#: +msgid "Crash detection can\x0abe turned on only in\x0aNormal mode" +msgstr "Rilev. impatto\x0aattivabile solo\x0ain Modalita normale" # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 -#: ultralcd.cpp:4231 -msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode" -msgstr "\x1b[2JATTENZIONE:\x1b[1;0HRilev. impatto\x1b[2;0Hdisattivato in\x1b[3;0HModalita silenziosa" +#: +msgid "WARNING:\x0aCrash detection disabled in Stealth mode" +msgstr "ATTENZIONE:\x0aRilev. impatto\x0adisattivato in\x0aModalita silenziosa" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2290 msgid ">Cancel" -msgstr "" +msgstr ">Annulla" -# MSG_BABYSTEPPING_Z c=20 -#: ultralcd.cpp:3043 -msgid "Adjusting Z" -msgstr "Compensazione Z" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3147 +msgid "Adjusting Z:" +msgstr "Compensaz. Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Nessun errore" # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "Tutto fatto. Buona stampa!" # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1974 msgid "Ambient" -msgstr "" +msgstr "Ambiente" # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2576 msgid "and press the knob" msgstr "e cliccare manopola" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3445 msgid "Are left and right Z~carriages all up?" msgstr "I carrelli Z sin/des sono altezza max?" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5114 msgid "SpoolJoin [on]" -msgstr "SpoolJoin [on]" +msgstr "" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5110 msgid "SpoolJoin [N/A]" -msgstr "SpoolJoin [N/A]" +msgstr "" -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +# MSG_AUTO_DEPLETE_OFF c=17 r=1 +#: ultralcd.cpp:5118 msgid "SpoolJoin [off]" -msgstr "SpoolJoin [off]" +msgstr "" # MSG_AUTO_HOME #: messages.c:11 @@ -96,32 +96,32 @@ msgid "Auto home" msgstr "Trova origine" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6736 msgid "AutoLoad filament" msgstr "Autocaric. filam." # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4378 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "Caricamento auto. filam. disp. solo con il sensore attivo..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2771 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "Il caricamento automatico e attivo, premete la manopola e inserite il filamento..." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Lunghezza dell'asse" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Assi" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Letto/Riscald." @@ -136,7 +136,7 @@ msgid "Bed Heating" msgstr "Riscald. letto" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5682 msgid "Bed level correct" msgstr "Correz. liv.letto" @@ -145,38 +145,28 @@ msgstr "Correz. liv.letto" msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." msgstr "Livellamento letto fallito.NoRispSensore.Residui su ugello? In attesa di reset." -# MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4 -#: Marlin_main.cpp:4508 -msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset." -msgstr "Livellamento piano fallito. Sensore disconnesso o Cavo Danneggiato. In attesa di reset." - -# MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4 -#: Marlin_main.cpp:4512 -msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset." -msgstr "Livellamento piano fallito. Risposta sensore troppo presto. In attesa di reset." - # MSG_BED #: messages.c:15 msgid "Bed" msgstr "Letto" # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2002 msgid "Belt status" msgstr "Stato delle cinghie" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "C'e stato un Blackout. Recuperare la stampa?" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" -msgstr "" +msgstr "Calibrazione Home" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5671 msgid "Calibrate XYZ" msgstr "Calibra XYZ" @@ -186,12 +176,12 @@ msgid "Calibrate Z" msgstr "Calibra Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4570 msgid "Calibrate" msgstr "Calibra" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibrazione XYZ. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare." @@ -201,37 +191,32 @@ msgid "Calibrating Z" msgstr "Calibrando Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibrazione Z. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare." # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:813 msgid "Calibration done" msgstr "Calibrazione completa" # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "Calibrazione" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Cancel" msgstr "Annulla" -# MSG_SD_INSERTED -#: -msgid "Card inserted" -msgstr "SD inserita" - # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "SD rimossa" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2676 msgid "Color not correct" msgstr "Colore non puro" @@ -241,7 +226,7 @@ msgid "Cooldown" msgstr "Raffredda" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4503 msgid "Copy selected language?" msgstr "Copiare la lingua selezionata?" @@ -266,27 +251,27 @@ msgid "Crash detected." msgstr "Rilevato impatto." # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:600 msgid "Crash detected. Resume print?" msgstr "Scontro rilevato. Riprendere la stampa?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Crash" -msgstr "" +msgstr "Impatto" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5823 msgid "Current" msgstr "Attuale" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2102 msgid "Date:" msgstr "Data:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5568 msgid "Disable steppers" msgstr "Disabilita motori" @@ -296,77 +281,52 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "Distanza tra la punta dell'ugello e la superficie del letto non ancora imposta. Si prega di seguire il manuale, capitolo Primi Passi, sezione Calibrazione primo layer." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4984 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "Desideri ripetere l'ultimo passaggio per migliorare la distanza fra ugello e piatto?" -# MSG_EXTRUDER_CORRECTION c=9 -#: ultralcd.cpp:4889 -msgid "E-correct" -msgstr "Correzione-E" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5048 +msgid "E-correct:" +msgstr "Correzione-E:" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "Espelli filamento " -# MSG_EJECT_FILAMENT1 c=17 r=1 -#: ultralcd.cpp:5603 -msgid "Eject filament 1" -msgstr "Espelli filamento 1" - -# MSG_EJECT_FILAMENT2 c=17 r=1 -#: ultralcd.cpp:5604 -msgid "Eject filament 2" -msgstr "Espellere filamento 2" - -# MSG_EJECT_FILAMENT3 c=17 r=1 -#: ultralcd.cpp:5605 -msgid "Eject filament 3" -msgstr "Espelli filamento 3" - -# MSG_EJECT_FILAMENT4 c=17 r=1 -#: ultralcd.cpp:5606 -msgid "Eject filament 4" -msgstr "Espellere filamento 4" - -# MSG_EJECT_FILAMENT5 c=17 r=1 -#: ultralcd.cpp:5607 -msgid "Eject filament 5" -msgstr "Espelli filamento 5" - # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Eject" msgstr "Espellere" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1434 msgid "Ejecting filament" msgstr "Espellendo filamento " # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Finecorsa fuori portata" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "Finecorsa" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "Finecorsa" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Errore - la memoria statica e stata sovrascritta" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4391 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "ERRORE: il sensore filam. non risponde,Controllare conness." @@ -375,38 +335,13 @@ msgstr "ERRORE: il sensore filam. non risponde,Controllare conness." msgid "ERROR:" msgstr "ERRORE:" -# -#: Marlin_main.cpp:1006 -msgid "External SPI flash W25X20CL not responding." -msgstr "Flash SPI W25X20CL esterno non risponde." - -# -#: ultralcd.cpp:5633 -msgid "Extruder 1" -msgstr "Estrusore 1" - -# -#: ultralcd.cpp:5634 -msgid "Extruder 2" -msgstr "Estrusore 2" - -# -#: ultralcd.cpp:5635 -msgid "Extruder 3" -msgstr "Estrusore 3" - -# -#: ultralcd.cpp:5636 -msgid "Extruder 4" -msgstr "Estrusore 4" - # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Ventola estrusore:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2133 msgid "Extruder info" msgstr "Info estrusore" @@ -416,12 +351,12 @@ msgid "Extruder" msgstr "Estrusore" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" -msgstr "" +msgstr "Statistiche fallimenti MMU" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5082 msgid "F. autoload [on]" msgstr "Autocar.filam[on]" @@ -431,14 +366,14 @@ msgid "F. autoload [N/A]" msgstr "Autocar.fil.[N/A]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5084 msgid "F. autoload [off]" msgstr "Autocar.fil.[off]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" -msgstr "" +msgstr "Statistiche fallimenti" # MSG_FAN_SPEED c=14 #: messages.c:31 @@ -446,17 +381,17 @@ msgid "Fan speed" msgstr "Velocita ventola" # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Test ventola" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5577 msgid "Fans check [on]" msgstr "Controllo ventole [on]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5579 msgid "Fans check [off]" msgstr "Control.vent[off]" @@ -465,13 +400,8 @@ msgstr "Control.vent[off]" msgid "Fil. sensor [on]" msgstr "Sensor filam.[On]" -# MSG_RESPONSE_POOR c=20 r=2 -#: Marlin_main.cpp:3146 -msgid "Fil. sensor response is poor, disable it?" -msgstr "Risposta Sens. Fil. debole, disattivare? " - # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5062 msgid "Fil. sensor [N/A]" msgstr "Sensor filam[N/A]" @@ -481,9 +411,9 @@ msgid "Fil. sensor [off]" msgstr "Sensor filam[off]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Filam. runouts" -msgstr "" +msgstr "Filam. esauriti" # MSG_FILAMENT_CLEAN c=20 r=2 #: messages.c:32 @@ -491,32 +421,27 @@ msgid "Filament extruding & with correct color?" msgstr "Filamento estruso & con il giusto colore?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2672 msgid "Filament not loaded" msgstr "Fil. non caricato" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Sensore filam." -# MSG_SELFTEST_FILAMENT_SENSOR c=18 -#: ultralcd.cpp:7477 -msgid "Filament sensor:" -msgstr "Sensore filam.:" - # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2841 msgid "Filament used" msgstr "Filamento utilizzato" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2841 msgid "Print time" msgstr "Tempo di stampa" # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "File incompleto. Continuare comunque?" @@ -526,52 +451,52 @@ msgid "Finishing movements" msgstr "Finalizzando gli spostamenti" # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Calibrazione primo layer." # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4896 msgid "First, I will run the selftest to check most common assembly problems." msgstr "Per primo avviero l'autotest per controllare gli errori di assemblaggio piu comuni." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Risolvi il problema e quindi premi il bottone sull'unita MMU. " # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Flusso" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2095 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Ventola frontale?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3220 msgid "Front side[um]" msgstr "Fronte [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Ventola frontale/sinistra" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Riscald./Termist." # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8468 msgid "Heating disabled by safety timer." msgstr "Riscaldamento fermato dal timer di sicurezza." @@ -586,67 +511,62 @@ msgid "Heating" msgstr "Riscaldamento..." # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4875 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Ciao, sono la tua stampante Original Prusa i3. Gradiresti un aiuto nel processo di configurazione?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2096 msgid "howto.prusa3d.com" msgstr "" -# -#: ultralcd.cpp:6087 -msgid "Change extruder" -msgstr "Cambio estrusore" - # MSG_FILAMENTCHANGE #: messages.c:37 msgid "Change filament" msgstr "Cambia filamento" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2587 msgid "Change success!" msgstr "Cambio riuscito!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2664 msgid "Changed correctly?" msgstr "Cambiato correttamente?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Verifica piano" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Verifica finecorsa" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Verifica ugello" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Controllo sensori" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Verifica asse X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Verifica asse Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Verifica asse Z" @@ -666,112 +586,82 @@ msgid "Filament" msgstr "Filamento" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4905 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Adesso avviero una Calibrazione XYZ. Puo durare circa 12 min." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4913 msgid "I will run z calibration now." msgstr "Adesso avviero la Calibrazione Z." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4978 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "Adesso iniziero a stampare una linea e tu dovrai abbassare l'ugello poco per volta ruotando la manopola sino a raggiungere una altezza ottimale. Per favore dai uno sguardo all'immagine del nostro manuale, cap.Calibrazione." -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: mesh_bed_calibration.cpp:2481 -msgid "Improving bed calibration point" -msgstr "Perfezion. punto di calibraz. letto" - # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Schermata info" -# MSG_FILAMENT_LOADING_T0 c=20 r=4 -#: messages.c:33 -msgid "Insert filament into extruder 1. Click when done." -msgstr "Inserire filamento nell'estrusore 1. Click per continuare" - -# MSG_FILAMENT_LOADING_T1 c=20 r=4 -#: messages.c:34 -msgid "Insert filament into extruder 2. Click when done." -msgstr "Inserire filamento nell'estrusore 2. Click per continuare" - -# MSG_FILAMENT_LOADING_T2 c=20 r=4 -#: messages.c:35 -msgid "Insert filament into extruder 3. Click when done." -msgstr "Inserire filamento nell'estrusore 3. Click per continuare" - -# MSG_FILAMENT_LOADING_T3 c=20 r=4 -#: messages.c:36 -msgid "Insert filament into extruder 4. Click when done." -msgstr "Inserire filamento nell'estrusore 4. Click per continuare" - # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:4938 msgid "Is filament 1 loaded?" msgstr "Il filamento 1 e caricato?" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2572 msgid "Insert filament" msgstr "Inserire filamento" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4941 msgid "Is filament loaded?" msgstr "Il filamento e stato caricato?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4972 msgid "Is it PLA filament?" msgstr "E' un filamento di PLA?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4704 msgid "Is PLA filament loaded?" msgstr "E' stato caricato il filamento di PLA?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" msgstr "La piastra d'acciaio e sul piano riscaldato?" -# MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20 -#: mesh_bed_calibration.cpp:2223 -msgid "Iteration " -msgstr "Iterazione" - # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1840 msgid "Last print failures" -msgstr "" +msgstr "Fallimenti ultima stampa" # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1823 msgid "Last print" -msgstr "" +msgstr "Ultima stampa" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Vent SX hotend?" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2970 msgid "Left" msgstr "Sinistra" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3218 msgid "Left side [um]" msgstr "Lato sinistro [um]" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5594 msgid "Lin. correction" msgstr "Correzione lin." @@ -786,7 +676,7 @@ msgid "Load filament" msgstr "Carica filamento" # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2612 msgid "Loading color" msgstr "Caricando colore" @@ -796,92 +686,92 @@ msgid "Loading filament" msgstr "Caricando filamento" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Puleggia lenta" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6719 msgid "Load to nozzle" msgstr "Carica ugello" # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Calibrazione primo layer." # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Menu principale" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Misura altezza di rif. del punto di calib." # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5677 msgid "Mesh Bed Leveling" msgstr "Mesh livel. letto" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. riprendendo la posizione... " # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Ripristino temperatura... " # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3005 msgid "Measured skew" msgstr "Disassamento misurato" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU fails" -msgstr "" +msgstr "Fallimenti MMU" # -#: mmu.cpp:1399 +#: mmu.cpp:1613 msgid "MMU load failed " -msgstr "" +msgstr "Caricamento MMU fallito" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU load fails" -msgstr "" +msgstr "Caricamenti MMU falliti" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Riprendendo... " # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "Modo [normale]" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Modo [silenzioso]" # -#: mmu.cpp:635 +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "Il MMU richiede attenzione dall'utente." # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "MMU power fails" -msgstr "" +msgstr "Mancanza corrente MMU" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" msgstr "Modo [Silenziosa]" @@ -891,62 +781,62 @@ msgid "Mode [auto power]" msgstr "Modo [auto]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "Mode [forte]" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2108 msgid "MMU2 connected" -msgstr "" +msgstr "MMU2 connessa" # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "Motore" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5566 msgid "Move axis" msgstr "Muovi asse" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4294 msgid "Move X" msgstr "Muovi X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4295 msgid "Move Y" msgstr "Muovi Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4296 msgid "Move Z" msgstr "Muovi Z" # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5291 msgid "No move." msgstr "Nessun movimento." # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6686 msgid "No SD card" msgstr "Nessuna SD" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2976 msgid "N/A" msgstr "" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "Non connesso" @@ -955,78 +845,73 @@ msgstr "Non connesso" msgid "New firmware version available:" msgstr "Nuova versione firmware disponibile:" -# -#: -msgid "No " -msgstr "No" - # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Non gira" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4977 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "Adesso calibro la distanza fra ugello e superfice del piatto." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4921 msgid "Now I will preheat nozzle for PLA." msgstr "Adesso preriscaldero l'ugello per PLA." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Ugello" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1519 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Sono state trovate impostazioni vecchie. I valori di default di PID, Esteps etc. saranno impostati" # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4912 msgid "Now remove the test print from steel sheet." msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio." # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:1782 msgid "Nozzle FAN" -msgstr "" +msgstr "Ventola estrusore" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6649 msgid "Pause print" msgstr "Metti in pausa" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1598 msgid "PID cal. " msgstr "Calibrazione PID" # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1604 msgid "PID cal. finished" msgstr "Calib. PID completa" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5683 msgid "PID calibration" msgstr "Calibrazione PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:843 msgid "PINDA Heating" msgstr "Riscaldamento PINDA" # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "Posizionare un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere subito la stampante." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4986 msgid "Please clean heatbed and then press the knob." msgstr "Per favore pulisci il piatto, poi premi la manopola." @@ -1036,92 +921,92 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Pulire l'ugello per la calibrazione, poi fare click." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Verifica:" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Per favore consulta il nostro manuale per risolvere il problema. Poi riprendi il Wizard dopo aver riavviato la stampante." # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4808 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "Per favore inserisci il filamento di PLA nell'estrusore, poi premi la manopola per caricare." # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4709 msgid "Please load PLA filament first." msgstr "Per favore prima carica il filamento di PLA." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3063 msgid "Please open idler and remove filament manually." msgstr "Aprire la guida filam. e rimuovere il filam. a mano" # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "Per favore posizionate la piastra d'acciaio sul piano riscaldato." # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Premete la manopola per scaricare il filamento " # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4803 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Per favore inserite del filamento PLA nel primo tubo del MMU, poi premete la manopola per caricarlo." # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Estrarre il filamento immediatamente" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1440 msgid "Please remove filament and then press the knob." msgstr "Rimuovi il filamento e quindi premi la manopola. " # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "Rimuovete la piastra di acciaio dal piano riscaldato" # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4354 msgid "Please run XYZ calibration first." msgstr "Esegui la calibrazione XYZ prima. " # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1359 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Aggiorna il firmware sul tuo MMU2. In attesa di reset. " # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Attendere" # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4911 msgid "Please remove shipping helpers first." msgstr "Per favore rimuovete i materiali da spedizione" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Prerisc. ugello!" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6636 msgid "Preheat" msgstr "Preriscalda" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "Preriscaldando l'ugello. Attendere prego." @@ -1131,32 +1016,32 @@ msgid "Please upgrade." msgstr "Prego aggiornare." # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10365 msgid "Press knob to preheat nozzle and continue." msgstr "Premete la manopola per preriscaldare l'ugello e continuare." # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Power failures" -msgstr "" +msgstr "Mancanza corrente" # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Stampa interrotta" # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2276 msgid "Preheating to load" -msgstr "" +msgstr "Preriscaldamento per caricare" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2280 msgid "Preheating to unload" -msgstr "" +msgstr "Preriscaldamento per scaricare" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "Ventola di stampa:" @@ -1166,17 +1051,17 @@ msgid "Print from SD" msgstr "Stampa da SD" # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2206 msgid "Press the knob" -msgstr "" +msgstr "Premere la manopola" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1061 msgid "Print paused" msgstr "Stampa in pausa" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Premete la manopola per recuperare la temperatura dell'ugello." @@ -1186,37 +1071,27 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi msgstr "Stampante non ancora calibrata. Si prega di seguire il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione." # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1784 msgid "Print FAN" -msgstr "" - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK2.5 ready." -msgstr "" - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK3 ready." -msgstr "Prusa i3 MK3 pronta." +msgstr "Ventola di stampa" # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2094 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3221 msgid "Rear side [um]" msgstr "Retro [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9765 msgid "Recovering print " msgstr "Recupero stampa" # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Rimuovi il filamento precedente e premi la manopola per caricare il nuovo filamento. " @@ -1225,63 +1100,58 @@ msgstr "Rimuovi il filamento precedente e premi la manopola per caricare il nuov msgid "Prusa i3 MK3S OK." msgstr "" -# -#: -msgid "Prusa i3 MK2 ready." -msgstr "Prusa i3 MK2 pronta." - # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5688 msgid "Reset XYZ calibr." msgstr "Reset calibrazione XYZ." # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3222 msgid "Reset" msgstr "" # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6656 msgid "Resume print" msgstr "Riprendi stampa" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "Riprendi stampa" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3219 msgid "Right side[um]" msgstr "Destra [um]" # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5606 msgid "RPi port [on]" msgstr "Porta RPi [on]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5604 msgid "RPi port [off]" msgstr "Porta RPi [off]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4726 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Se avvi il Wizard perderai la calibrazione preesistente e dovrai ricominciare dall'inizio. Continuare?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5236 msgid "SD card [normal]" msgstr "Mem. SD [normale]" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5234 msgid "SD card [flshAir]" msgstr "Mem. SD [flshAir]" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2971 msgid "Right" msgstr "Destra" @@ -1291,217 +1161,207 @@ msgid "Searching bed calibration point" msgstr "Ricerca dei punti di calibrazione del piano" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5613 msgid "Select language" msgstr "Seleziona lingua" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "Autotest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Avvia autotest" # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5664 msgid "Selftest " msgstr "Autotest" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Errore Autotest !" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "Autotest fallito" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1551 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Verra effettuato un self test per calibrare l'homing senza sensori" # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4959 msgid "Select nozzle preheat temperature which matches your material." msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale." # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Select PLA filament:" msgstr "Selezionate filamento PLA:" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3230 msgid "Set temperature:" msgstr "Imposta temperatura:" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Impostazioni" # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5685 msgid "Show end stops" msgstr "Stato finecorsa" # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:3941 msgid "Sensor state" -msgstr "" - -# -#: -msgid "Sensors info" -msgstr "" - -# -#: -msgid "Show pinda state" -msgstr "Mostra stato pinda" +msgstr "Stato sensore" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati." # MSG_SORT_NONE c=17 r=1 -#: ultralcd.cpp:5043 -msgid "Sort: [none]" -msgstr "Ordina: [none]" +#: ultralcd.cpp:5246 +msgid "Sort [none]" +msgstr "Ordina [none]" # MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5041 -msgid "Sort: [time]" -msgstr "Ordina: [time]" +#: ultralcd.cpp:5244 +msgid "Sort [time]" +msgstr "Ordina [time]" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3008 msgid "Severe skew" msgstr "Disassamento grave" # MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5042 -msgid "Sort: [alphabet]" -msgstr "Ordine: [alfabet]" +#: ultralcd.cpp:5245 +msgid "Sort [alphabet]" +msgstr "Ordine [alfabet]" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Ordinando i file" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "Suono [forte]" # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3007 msgid "Slight skew" msgstr "Disassamento lieve" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "Suono [mute]" # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4870 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Sono stati rilevati problemi, avviato livellamento Z ..." # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "Suono [singolo]" # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "Suono[silenzioso]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Velocita" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Gira" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4367 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Sono necessari una temperatura ambiente di 21-26C e una superficie rigida " # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Statistiche" # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "Arresta stampa" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "ARRESTATO." # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "Supporto" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Scambiato" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "Calib. temp. " # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5600 msgid "Temp. cal. [on]" msgstr "Calib. temp. [ON]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5598 msgid "Temp. cal. [off]" msgstr "Calib. temp.[OFF]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5694 msgid "Temp. calibration" msgstr "Calib. Temp." # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3867 msgid "Temperature calibration failed" msgstr "Calibrazione temperatura fallita" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "Calibrazione temperatura completata e attiva. Puo essere disattivata dal menu Impostazioni ->Cal. Temp." # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5564 msgid "Temperature" msgstr "" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2140 msgid "Temperatures" msgstr "Temperature" @@ -1511,127 +1371,122 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione. " # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2863 msgid "Total filament" msgstr "Filamento totale" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2863 msgid "Total print time" msgstr "Tempo di stampa totale" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6633 msgid "Tune" msgstr "Regola" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Unload" msgstr "Scarica" # -#: ultralcd.cpp:5617 -msgid "Unload all" -msgstr "Rilasciare tutti" - -# -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "Total failures" -msgstr "" +msgstr "Totale fallimenti" # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2213 msgid "to load filament" -msgstr "" +msgstr "per caricare il filamento" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2217 msgid "to unload filament" -msgstr "" +msgstr "per scaricare il filamento" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "Scarica filam." # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Scaricando filamento" # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1824 msgid "Total" -msgstr "" +msgstr "Totale" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5822 msgid "Used during print" msgstr "Usati nella stampa" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2143 msgid "Voltages" msgstr "Voltaggi" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2116 msgid "unknown" -msgstr "" +msgstr "sconosciuto" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5262 msgid "Wait for user..." msgstr "Attendendo utente..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3374 msgid "Waiting for nozzle and bed cooling" msgstr "In attesa del raffreddamento dell'ugello e del piano" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3338 msgid "Waiting for PINDA probe cooling" msgstr "In attesa del raffreddamento della sonda PINDA" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4782 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Usate lo scaricamento per rimuovere il filamento 1 se protrude dal retro del tubo posteriore del MMu. Utilizzate l'espulsione se e nascosto nel tubo." # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1511 msgid "Warning: both printer type and motherboard type changed." msgstr "Attenzione: tipo di stampante e di scheda madre cambiati." # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1503 msgid "Warning: motherboard type changed." msgstr "Avviso: tipo di scheda madre cambiato" # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1507 msgid "Warning: printer type changed." msgstr "Avviso: tipo di stampante cambiato." # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3053 msgid "Was filament unload successful?" msgstr "Filamento scaricato con successo?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Errore cablaggio" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5661 msgid "Wizard" msgstr "" # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2132 msgid "XYZ cal. details" msgstr "XYZ Cal. dettagli" @@ -1641,107 +1496,312 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "Calibrazione XYZ fallita. Si prega di consultare il manuale." # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Si" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "E possibile riprendere il Wizard in qualsiasi momento attraverso Calibrazione -> Wizard." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3838 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "Calibrazione XYZ corretta. La distorsione verra compensata automaticamente." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!" # -#: ultralcd.cpp:4885 -msgid "X-correct" -msgstr "Correzione-X" +#: ultralcd.cpp:5044 +msgid "X-correct:" +msgstr "Correzione-X:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3832 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3819 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." -# MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8 -#: ultralcd.cpp:3699 -msgid "XYZ calibration compromised. Left front calibration point not reachable." -msgstr "Calibrazione XYZ compromessa. Punto anteriore sinistro non raggiungibile." - # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6080 msgid "Load all" msgstr "Caricare tutti" -# MSG_LOAD_FILAMENT_1 c=17 -#: ultralcd.cpp:5576 -msgid "Load filament 1" -msgstr "Caricare fil. 1" - # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3798 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul letto non e' stato trovato." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili." # -#: ultralcd.cpp:3687 -msgid "XYZ calibration failed. Left front calibration point not reachable." -msgstr "Calibrazione XYZ fallita. Punto anteriore sinistro non raggiungibile." - -# MSG_LOAD_FILAMENT_2 c=17 -#: ultralcd.cpp:5577 -msgid "Load filament 2" -msgstr "Caricare fil. 2" - -# -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3807 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile." -# MSG_LOAD_FILAMENT_3 c=17 -#: ultralcd.cpp:5578 -msgid "Load filament 3" -msgstr "Carica fil. 3" - # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2968 msgid "Y distance from min" msgstr "Distanza Y dal min" # -#: ultralcd.cpp:4886 -msgid "Y-correct" -msgstr "Correzione-Y" +#: ultralcd.cpp:5045 +msgid "Y-correct:" +msgstr "Correzione-Y:" -# MSG_LOAD_FILAMENT_4 c=17 -#: ultralcd.cpp:5579 -msgid "Load filament 4" -msgstr "Caricare fil. 4" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr "" -# MSG_LOAD_FILAMENT_5 c=17 -#: ultralcd.cpp:5582 -msgid "Load filament 5" -msgstr "Caricare fil. 5" +# +#: messages.c:57 +msgid "Back" +msgstr "Indietro" + +# +#: ultralcd.cpp:5553 +msgid "Checks" +msgstr "Controlli" + +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "Falso innesco" + +# +#: ultralcd.cpp:3946 +msgid "FINDA:" +msgstr "" + +# +#: ultralcd.cpp:5459 +msgid "Firmware [none]" +msgstr "Firmware[nessuno]" + +# +#: ultralcd.cpp:5465 +msgid "Firmware [strict]" +msgstr "Firmware [esatto]" + +# +#: ultralcd.cpp:5462 +msgid "Firmware [warn]" +msgstr "Firmware [avviso]" + +# +#: messages.c:87 +msgid "HW Setup" +msgstr "Installazione HW" + +# +#: ultralcd.cpp:3950 +msgid "IR:" +msgstr "" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "Comp. Magneti[N/A]" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "Comp. Magneti[off]" + +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "Comp. Magneti [on]" + +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "Griglia [3x3]" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "Griglia [7x7]" + +# +#: ultralcd.cpp:5591 +msgid "Mesh bed leveling" +msgstr "Mesh livel. letto" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "" + +# +#: ultralcd.cpp:5220 +msgid "MMU Mode [Normal]" +msgstr "Modalita MMU [Normale]" + +# +#: ultralcd.cpp:5221 +msgid "MMU Mode[Stealth]" +msgstr "Modalita MMU [Silenziosa]" + +# +#: ultralcd.cpp:4427 +msgid "Mode change in progress ..." +msgstr "Cambio modalita in corso ..." + +# +#: ultralcd.cpp:5420 +msgid "Model [none]" +msgstr "Modello [nessuno]" + +# +#: ultralcd.cpp:5426 +msgid "Model [strict]" +msgstr "Modello [esatto]" + +# +#: ultralcd.cpp:5423 +msgid "Model [warn]" +msgstr "Modello [avviso]" + +# +#: ultralcd.cpp:5381 +msgid "Nozzle d. [0.25]" +msgstr "Diam. Ugell[0.25]" + +# +#: ultralcd.cpp:5384 +msgid "Nozzle d. [0.40]" +msgstr "Diam. Ugell[0.40]" + +# +#: ultralcd.cpp:5387 +msgid "Nozzle d. [0.60]" +msgstr "Diam. Ugell[0.60]" + +# +#: ultralcd.cpp:5335 +msgid "Nozzle [none]" +msgstr "Ugello [nessuno]" + +# +#: ultralcd.cpp:5341 +msgid "Nozzle [strict]" +msgstr "Ugello [esatto]" + +# +#: ultralcd.cpp:5338 +msgid "Nozzle [warn]" +msgstr "Ugello [avviso]" + +# +#: util.cpp:510 +msgid "G-code sliced for a different level. Continue?" +msgstr "" + +# +#: util.cpp:516 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "" + +# +#: ultralcd.cpp:3942 +msgid "PINDA:" +msgstr "" + +# +#: ultralcd.cpp:2286 +msgid "Preheating to cut" +msgstr "Preriscaldamento per taglio" + +# +#: ultralcd.cpp:2283 +msgid "Preheating to eject" +msgstr "Preriscaldamento per espulsione" + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Diametro ugello diverso da G-Code. Continuare?" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Diametro ugello diverso dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata." + +# +#: ultralcd.cpp:6597 +msgid "Rename" +msgstr "Rinomina" + +# +#: ultralcd.cpp:6593 +msgid "Select" +msgstr "Seleziona" + +# +#: ultralcd.cpp:2134 +msgid "Sensor info" +msgstr "Info Sensore" + +# +#: messages.c:58 +msgid "Sheet" +msgstr "Piano" + +# +#: +msgid "Sound [assist]" +msgstr "" + +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "" + +# +#: ultralcd.cpp:5046 +msgid "Z-correct:" +msgstr "Correzione-Z:" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "Z-probe nr. [1]" diff --git a/lang/po/Firmware_pl.po b/lang/po/Firmware_pl.po index 540adfbfe..d5a679491 100644 --- a/lang/po/Firmware_pl.po +++ b/lang/po/Firmware_pl.po @@ -7,8 +7,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Project-Id-Version: Prusa-Firmware\n" -"POT-Creation-Date: Ät 7. úno 2019 14:49:46\n" -"PO-Revision-Date: Ät 7. úno 2019 14:49:46\n" +"POT-Creation-Date: Wed Sep 4 16:14:12 CEST 2019\n" +"PO-Revision-Date: Wed Sep 4 16:14:12 CEST 2019\n" "Language-Team: \n" "X-Generator: Poedit 2.0.7\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -21,72 +21,72 @@ msgid " of 4" msgstr " z 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr " z 9" # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3027 msgid "[0;0] point offset" msgstr "[0;0] przesuniecie punktu" # MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 -#: ultralcd.cpp:4219 -msgid "\x1b[2JCrash detection can\x1b[1;0Hbe turned on only in\x1b[2;0HNormal mode" -msgstr "\x1b[2JWykrywanie zderzen moze\x1b[1;0Hbyc wlaczone tylko w\x1b[2;0Htrybie Normalnym" +#: +msgid "Crash detection can\x0abe turned on only in\x0aNormal mode" +msgstr "Wykrywanie zderzen\x0amoze byc wlaczone\x0atylko w\x0atrybie Normalnym" # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 -#: ultralcd.cpp:4231 -msgid "\x1b[2JWARNING:\x1b[1;0HCrash detection\x1b[2;0Hdisabled in\x1b[3;0HStealth mode" -msgstr "\x1b[2JUWAGA:\x1b[1;0HWykrywanie zderzen\x1b[2;0Hwylaczone w\x1b[3;0Htrybie Stealth" +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "UWAGA:\x0aWykrywanie zderzen\x0awylaczone w\x0atrybie Stealth" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2290 msgid ">Cancel" -msgstr "" +msgstr ">Anuluj" -# MSG_BABYSTEPPING_Z c=20 -#: ultralcd.cpp:3043 -msgid "Adjusting Z" -msgstr "Dostrajanie Z" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3147 +msgid "Adjusting Z:" +msgstr "Dostrajanie Z:" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Wszystko OK " # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "Gotowe. Udanego drukowania!" # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1974 msgid "Ambient" -msgstr "" +msgstr "Otoczenie" # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2576 msgid "and press the knob" msgstr "i nacisnij pokretlo" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3445 msgid "Are left and right Z~carriages all up?" msgstr "Obydwa konce osi dojechaly do gornych ogranicznikow?" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5114 msgid "SpoolJoin [on]" msgstr "SpoolJoin [wl]" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5110 msgid "SpoolJoin [N/A]" msgstr "SpoolJoin [nd]" -# MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +# MSG_AUTO_DEPLETE_OFF c=17 r=1 +#: ultralcd.cpp:5118 msgid "SpoolJoin [off]" msgstr "SpoolJoin [wyl]" @@ -96,32 +96,32 @@ msgid "Auto home" msgstr "Auto zerowanie" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6736 msgid "AutoLoad filament" msgstr "AutoLadowanie fil." # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4378 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "Autoladowanie filamentu dostepne tylko gdy czujnik filamentu jest wlaczony..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2771 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "Autoladowanie filamentu wlaczone, nacisnij pokretlo i wsun filament..." # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Dlugosc osi" # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Os" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Stol / Grzanie" @@ -136,7 +136,7 @@ msgid "Bed Heating" msgstr "Grzanie stolu.." # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5682 msgid "Bed level correct" msgstr "Korekta poziomowania stolu" @@ -145,38 +145,28 @@ msgstr "Korekta poziomowania stolu" msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." msgstr "Kalibracja nieudana. Sensor nie aktywowal sie. Zanieczysz. dysza? Czekam na reset." -# MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED c=20 r=4 -#: Marlin_main.cpp:4508 -msgid "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset." -msgstr "Poziomowanie stolu nieudane. Sensor odlacz. lub uszkodz. przewod. Czekam na reset." - -# MSG_BED_LEVELING_FAILED_POINT_HIGH c=20 r=4 -#: Marlin_main.cpp:4512 -msgid "Bed leveling failed. Sensor triggered too high. Waiting for reset." -msgstr "Kalibracja Z nieudana. Sensor aktywowal za wysoko. Czekam na reset." - # MSG_BED #: messages.c:15 msgid "Bed" msgstr "Stol" # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2002 msgid "Belt status" msgstr "Stan paskow" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "Wykryto zanik napiecia. Kontynowac?" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" -msgstr "" +msgstr "Zerowanie osi" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5671 msgid "Calibrate XYZ" msgstr "Kalibracja XYZ" @@ -186,12 +176,12 @@ msgid "Calibrate Z" msgstr "Kalibruj Z" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4570 msgid "Calibrate" msgstr "Kalibruj" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic." @@ -201,37 +191,32 @@ msgid "Calibrating Z" msgstr "Kalibruje Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3408 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic." # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:813 msgid "Calibration done" msgstr "Kalibracja OK" # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "Kalibracja" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Cancel" msgstr "Anuluj" -# MSG_SD_INSERTED -#: -msgid "Card inserted" -msgstr "Karta wlozona" - # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "Karta wyjeta" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2676 msgid "Color not correct" msgstr "Kolor zanieczysz." @@ -241,7 +226,7 @@ msgid "Cooldown" msgstr "Chlodzenie" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4503 msgid "Copy selected language?" msgstr "Skopiowac wybrany jezyk?" @@ -266,27 +251,27 @@ msgid "Crash detected." msgstr "Zderzenie wykryte" # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:600 msgid "Crash detected. Resume print?" msgstr "Wykryto zderzenie. Wznowic druk?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Crash" -msgstr "" +msgstr "Zderzenie" # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5823 msgid "Current" msgstr "Aktualne" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2102 msgid "Date:" msgstr "Data:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5568 msgid "Disable steppers" msgstr "Wylaczenie silnikow" @@ -296,77 +281,52 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "Odleglosc dyszy od powierzchni druku nie jest skalibrowana. Postepuj zgodnie z instrukcja: rozdzial Wprowadzenie - Kalibracja pierwszej warstwy." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4984 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "Chcesz powtorzyc ostatni krok i ponownie ustawic odleglosc miedzy dysza a stolikiem?" -# MSG_EXTRUDER_CORRECTION c=9 -#: ultralcd.cpp:4889 -msgid "E-correct" -msgstr "Korekcja E" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5048 +msgid "E-correct:" +msgstr "Korekcja E:" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "Wysun filament" -# MSG_EJECT_FILAMENT1 c=17 r=1 -#: ultralcd.cpp:5603 -msgid "Eject filament 1" -msgstr "Wysun filament 1" - -# MSG_EJECT_FILAMENT2 c=17 r=1 -#: ultralcd.cpp:5604 -msgid "Eject filament 2" -msgstr "Wysun filament 2" - -# MSG_EJECT_FILAMENT3 c=17 r=1 -#: ultralcd.cpp:5605 -msgid "Eject filament 3" -msgstr "Wysun filament 3" - -# MSG_EJECT_FILAMENT4 c=17 r=1 -#: ultralcd.cpp:5606 -msgid "Eject filament 4" -msgstr "Wysun filament 4" - -# MSG_EJECT_FILAMENT5 c=17 r=1 -#: ultralcd.cpp:5607 -msgid "Eject filament 5" -msgstr "Wysun filament 5" - # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Eject" msgstr "Wysun" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1434 msgid "Ejecting filament" msgstr "Wysuwanie filamentu" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Krancowka nie aktyw." # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "Krancowka" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "Krancowki" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Blad - pamiec statyczna zostala nadpisana" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4391 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie." @@ -375,38 +335,13 @@ msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie." msgid "ERROR:" msgstr "BLAD:" -# -#: Marlin_main.cpp:1006 -msgid "External SPI flash W25X20CL not responding." -msgstr "Zewnetrzna pamiec flash SPI W25X20CL nie odpowiada." - -# -#: ultralcd.cpp:5633 -msgid "Extruder 1" -msgstr "Ekstruder 1" - -# -#: ultralcd.cpp:5634 -msgid "Extruder 2" -msgstr "Ekstruder 2" - -# -#: ultralcd.cpp:5635 -msgid "Extruder 3" -msgstr "Ekstruder 3" - -# -#: ultralcd.cpp:5636 -msgid "Extruder 4" -msgstr "Ekstruder 4" - # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Went. ekstrudera:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2133 msgid "Extruder info" msgstr "Informacje o ekstruderze" @@ -416,12 +351,12 @@ msgid "Extruder" msgstr "Ekstruder" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" -msgstr "" +msgstr "Bledy MMU" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5082 msgid "F. autoload [on]" msgstr "Autolad. fil [wl]" @@ -431,14 +366,14 @@ msgid "F. autoload [N/A]" msgstr "Autolad.fil.[N/D]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5084 msgid "F. autoload [off]" msgstr "Autolad.fil.[wyl]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" -msgstr "" +msgstr "Statystyki bledow" # MSG_FAN_SPEED c=14 #: messages.c:31 @@ -446,17 +381,17 @@ msgid "Fan speed" msgstr "Predkosc went." # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Test wentylatora" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5577 msgid "Fans check [on]" msgstr "Sprawd.went. [wl]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5579 msgid "Fans check [off]" msgstr "Sprawd.went.[wyl]" @@ -465,13 +400,8 @@ msgstr "Sprawd.went.[wyl]" msgid "Fil. sensor [on]" msgstr "Czuj. filam. [wl]" -# MSG_RESPONSE_POOR c=20 r=2 -#: Marlin_main.cpp:3146 -msgid "Fil. sensor response is poor, disable it?" -msgstr "Reakcja czujnika slaba, wylaczyc?" - # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5062 msgid "Fil. sensor [N/A]" msgstr "Czuj. filam.[N/D]" @@ -481,9 +411,9 @@ msgid "Fil. sensor [off]" msgstr "Czuj. filam.[wyl]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Filam. runouts" -msgstr "" +msgstr "Konc. filamentu" # MSG_FILAMENT_CLEAN c=20 r=2 #: messages.c:32 @@ -491,32 +421,27 @@ msgid "Filament extruding & with correct color?" msgstr "Filament wychodzi z dyszy a kolor jest czysty?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2672 msgid "Filament not loaded" msgstr "Fil. nie zaladowany" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Czujnik filamentu" -# MSG_SELFTEST_FILAMENT_SENSOR c=18 -#: ultralcd.cpp:7477 -msgid "Filament sensor:" -msgstr "Czujnik filamentu:" - # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2841 msgid "Filament used" msgstr "Uzyty filament" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2841 msgid "Print time" msgstr "Czas druku" # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "Plik niekompletny. Kontynowac?" @@ -526,52 +451,52 @@ msgid "Finishing movements" msgstr "Konczenie druku" # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Kal. 1. warstwy" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4896 msgid "First, I will run the selftest to check most common assembly problems." msgstr "Najpierw wlacze selftest w celu sprawdzenia najczestszych problemow podczas montazu." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Rozwiaz problem i wcisnij przycisk na MMU." # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Przeplyw" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2095 msgid "forum.prusa3d.com" msgstr "" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Przedni went. druku?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3220 msgid "Front side[um]" msgstr "Przod [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Przedni/lewy wentylator" # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Grzalka/Termistor" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8468 msgid "Heating disabled by safety timer." msgstr "Grzanie wylaczone przez wyl. czasowy" @@ -586,67 +511,62 @@ msgid "Heating" msgstr "Grzanie..." # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4875 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Czesc, jestem Twoja drukarka Original Prusa i3. Czy potrzebujesz pomocy z ustawieniem?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2096 msgid "howto.prusa3d.com" msgstr "" -# -#: ultralcd.cpp:6087 -msgid "Change extruder" -msgstr "Zmiana ekstrudera" - # MSG_FILAMENTCHANGE #: messages.c:37 msgid "Change filament" msgstr "Wymiana filamentu" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2587 msgid "Change success!" msgstr "Wymiana ok!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2664 msgid "Changed correctly?" msgstr "Wymiana ok?" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Kontrola stolu" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Kontrola krancowek" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Kontrola hotendu" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Sprawdzanie czujnikow" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Kontrola osi X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Kontrola osi Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Kontrola osi Z" @@ -666,112 +586,82 @@ msgid "Filament" msgstr "" # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4905 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Przeprowadze teraz kalibracje XYZ. Zajmie ok. 12 min." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4913 msgid "I will run z calibration now." msgstr "Przeprowadze kalibracje Z." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4978 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "Zaczne drukowac linie. Stopniowo opuszczaj dysze przekrecajac pokretlo, poki nie uzyskasz optymalnej wysokosci. Sprawdz obrazki w naszym Podreczniku w rozdz. Kalibracja" -# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 c=60 -#: mesh_bed_calibration.cpp:2481 -msgid "Improving bed calibration point" -msgstr "Poprawiam precyzje punktu kalibracyjnego" - # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Ekran informacyjny" -# MSG_FILAMENT_LOADING_T0 c=20 r=4 -#: messages.c:33 -msgid "Insert filament into extruder 1. Click when done." -msgstr "Wloz filament do ekstrudera 1. Potwierdz naciskajac pokretlo." - -# MSG_FILAMENT_LOADING_T1 c=20 r=4 -#: messages.c:34 -msgid "Insert filament into extruder 2. Click when done." -msgstr "Wloz filament do ekstrudera 2. Potwierdz naciskajac pokretlo." - -# MSG_FILAMENT_LOADING_T2 c=20 r=4 -#: messages.c:35 -msgid "Insert filament into extruder 3. Click when done." -msgstr "Wloz filament do ekstrudera 3. Potwierdz naciskajac pokretlo." - -# MSG_FILAMENT_LOADING_T3 c=20 r=4 -#: messages.c:36 -msgid "Insert filament into extruder 4. Click when done." -msgstr "Wloz filament do ekstrudera 4. Potwierdz naciskajac pokretlo." - # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:4938 msgid "Is filament 1 loaded?" msgstr "Filament 1 zaladowany?" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2572 msgid "Insert filament" msgstr "Wprowadz filament" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4941 msgid "Is filament loaded?" msgstr "Filament jest zaladowany?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4972 msgid "Is it PLA filament?" msgstr "Czy to filament PLA?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4704 msgid "Is PLA filament loaded?" msgstr "Fialment PLA jest zaladowany?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" msgstr "Czy plyta stal. jest na podgrzew. stole?" -# MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20 -#: mesh_bed_calibration.cpp:2223 -msgid "Iteration " -msgstr "Iteracja " - # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1840 msgid "Last print failures" -msgstr "" +msgstr "Ostatnie bledy druku" # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1823 msgid "Last print" -msgstr "" +msgstr "Ost. wydruk" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Lewy went hotendu?" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2970 msgid "Left" msgstr "Lewa" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3218 msgid "Left side [um]" msgstr "Lewo [um]" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5594 msgid "Lin. correction" msgstr "Korekcja lin." @@ -786,7 +676,7 @@ msgid "Load filament" msgstr "Ladowanie fil." # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2612 msgid "Loading color" msgstr "Czyszcz. koloru" @@ -796,92 +686,92 @@ msgid "Loading filament" msgstr "Laduje filament" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Luzne kolo pasowe" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6719 msgid "Load to nozzle" msgstr "Zaladuj do dyszy" # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Kal. 1. warstwy" # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Menu glowne" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Okreslam wysokosc odniesienia punktu kalibracyjnego" # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5677 msgid "Mesh Bed Leveling" msgstr "Poziomowanie stolu wg siatki" # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Wznawianie pozycji." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Wznawiam nagrzewanie..." # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3005 msgid "Measured skew" msgstr "Zmierzony skos" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU fails" -msgstr "" +msgstr "Bledy MMU" # -#: mmu.cpp:1399 +#: mmu.cpp:1613 msgid "MMU load failed " -msgstr "" +msgstr "Blad ladowania MMU" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1840 msgid "MMU load fails" -msgstr "" +msgstr "Bledy ladow. MMU" # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Wznawianie..." # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "Tryb [normalny]" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Tryb [cichy]" # -#: mmu.cpp:635 +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "MMU wymaga uwagi uzytkownika." # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "MMU power fails" -msgstr "" +msgstr "Zaniki zasil. MMU" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" msgstr "Tryb [Stealth]" @@ -891,62 +781,62 @@ msgid "Mode [auto power]" msgstr "Tryb [automatycz]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "Tryb[wysoka wyd.]" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2108 msgid "MMU2 connected" -msgstr "" +msgstr "MMU podlaczone" # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "Silnik" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5566 msgid "Move axis" msgstr "Ruch osi" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4294 msgid "Move X" msgstr "Ruch osi X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4295 msgid "Move Y" msgstr "Ruch osi Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4296 msgid "Move Z" msgstr "Ruch osi Z" # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5291 msgid "No move." msgstr "Brak ruchu." # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6686 msgid "No SD card" msgstr "Brak karty SD" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2976 msgid "N/A" -msgstr "" +msgstr "N/D" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "Nie" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "Nie podlaczono " @@ -955,78 +845,73 @@ msgstr "Nie podlaczono " msgid "New firmware version available:" msgstr "Dostepna nowa wersja firmware:" -# -#: -msgid "No " -msgstr "Nie" - # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Nie kreci sie" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4977 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "Kalibruje odleglosc miedzy koncowka dyszy a powierzchnia druku." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4921 msgid "Now I will preheat nozzle for PLA." msgstr "Nagrzewam dysze dla PLA." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Dysza" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1519 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp." # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4912 msgid "Now remove the test print from steel sheet." msgstr "Teraz zdejmij wydruk testowy ze stolu." # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:1782 msgid "Nozzle FAN" -msgstr "" +msgstr "Went. hotendu" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6649 msgid "Pause print" msgstr "Wstrzymanie wydruku" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1598 msgid "PID cal. " msgstr "Kalibracja PID" # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1604 msgid "PID cal. finished" msgstr "Kal. PID zakonczona" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5683 msgid "PID calibration" msgstr "Kalibracja PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:843 msgid "PINDA Heating" msgstr "Grzanie sondy PINDA" # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "Umiesc kartke papieru na stole roboczym i podczas pomiaru pierwszych 4 punktow. Jesli dysza zahaczy o papier, natychmiast wylacz drukarke." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4986 msgid "Please clean heatbed and then press the knob." msgstr "Oczysc powierzchnie druku i nacisnij pokretlo." @@ -1036,92 +921,92 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Dla prawidl. kalibracji nalezy oczyscic dysze. Potw. guzikiem." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Sprawdz :" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Przeczytaj nasz Podrecznik druku 3D aby naprawic problem. Potem wznow Asystenta przez restart drukarki." # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4808 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "Umiesc filament PLA w ekstruderze i nacisnij pokretlo, aby zaladowac." # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4709 msgid "Please load PLA filament first." msgstr "Najpierw zaladuj filament PLA." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3063 msgid "Please open idler and remove filament manually." msgstr "Prosze odciagnac dzwignie dociskowa ekstrudera i recznie usunac filament." # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "Prosze umiescic plyte stalowa na stole podgrzewanym." # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Nacisnij pokretlo aby rozladowac filament" # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4803 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Wsun filament PLA do pierwszej rurki MMU i nacisnij pokretlo aby go zaladowac." # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Wyciagnij filament teraz" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1440 msgid "Please remove filament and then press the knob." msgstr "Wyciagnij filament i wcisnij pokretlo." # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "Prosze zdjac plyte stalowa z podgrzewanego stolu." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4354 msgid "Please run XYZ calibration first." msgstr "Prosze najpierw uruchomic kalibracje XYZ" # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1359 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Prosze zaktualizowac Firmware MMU2. Czekam na reset." # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Prosze czekac" # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4911 msgid "Please remove shipping helpers first." msgstr "Najpierw usun zabezpieczenia transportowe" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Nagrzej dysze!" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6636 msgid "Preheat" msgstr "Grzanie" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "Nagrzewanie dyszy. Prosze czekac." @@ -1131,32 +1016,32 @@ msgid "Please upgrade." msgstr "Prosze zaktualizowac." # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10365 msgid "Press knob to preheat nozzle and continue." msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac." # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1876 msgid "Power failures" -msgstr "" +msgstr "Zaniki zasilania" # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Druk przerwany" # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2276 msgid "Preheating to load" -msgstr "" +msgstr "Nagrzew. do ladowania" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2280 msgid "Preheating to unload" -msgstr "" +msgstr "Nagrzew. do rozlad." # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "Went. wydruku:" @@ -1166,17 +1051,17 @@ msgid "Print from SD" msgstr "Druk z karty SD" # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2206 msgid "Press the knob" -msgstr "" +msgstr "Wcisnij pokretlo" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1061 msgid "Print paused" msgstr "Druk wstrzymany" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Wcisnij pokretlo aby wznowic podgrzewanie dyszy." @@ -1186,102 +1071,87 @@ msgid "Printer has not been calibrated yet. Please follow the manual, chapter Fi msgstr "Drukarka nie zostala jeszcze skalibrowana. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Konfiguracja przed drukowaniem." # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1784 msgid "Print FAN" -msgstr "" - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK2.5 ready." -msgstr "Prusa i3 MK2.5 gotowa" - -# WELCOME_MSG c=20 -#: -msgid "Prusa i3 MK3 ready." -msgstr "Prusa i3 MK3 gotowa" +msgstr "Went. wydruku" # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2094 msgid "prusa3d.com" msgstr "" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3221 msgid "Rear side [um]" msgstr "Tyl [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9765 msgid "Recovering print " msgstr "Wznawianie wydruku" # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Wyciagnij poprzedni filament i nacisnij pokretlo aby zaladowac nowy." # #: msgid "Prusa i3 MK3S OK." -msgstr "" - -# -#: -msgid "Prusa i3 MK2 ready." -msgstr "Prusa i3 MK2 gotowa" +msgstr "Prusa i3 MK3S OK" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5688 msgid "Reset XYZ calibr." msgstr "Reset kalibr. XYZ" # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3222 msgid "Reset" msgstr "" # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6656 msgid "Resume print" msgstr "Wznowic wydruk" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "Wznawianie druku" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3219 msgid "Right side[um]" msgstr "Prawo [um]" # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5606 msgid "RPi port [on]" msgstr "Port RPi [wl]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5604 msgid "RPi port [off]" msgstr "Port RPi [wyl]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4726 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Wlaczenie Asystenta usunie obecne dane kalibracyjne i zacznie od poczatku. Kontynuowac?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5236 msgid "SD card [normal]" msgstr "Karta SD [normal]" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5234 msgid "SD card [flshAir]" msgstr "Karta SD[FlshAir]" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2971 msgid "Right" msgstr "Prawa" @@ -1291,217 +1161,207 @@ msgid "Searching bed calibration point" msgstr "Szukam punktu kalibracyjnego na stole" # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5613 msgid "Select language" msgstr "Wybor jezyka" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "Selftest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Rozpoczynanie Selftestu" # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5664 msgid "Selftest " msgstr "Selftest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Blad selftest !" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "Selftest nieudany" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1551 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek" # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4959 msgid "Select nozzle preheat temperature which matches your material." msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu." # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4695 msgid "Select PLA filament:" msgstr "Wybierz filament PLA:" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3230 msgid "Set temperature:" msgstr "Ustaw. temperatury:" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Ustawienia" # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5685 msgid "Show end stops" msgstr "Pokaz krancowki" # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:3941 msgid "Sensor state" -msgstr "" - -# -#: -msgid "Sensors info" -msgstr "" - -# -#: -msgid "Show pinda state" -msgstr "Stan sondy PINDA" +msgstr "Stan czujnikow" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100." # MSG_SORT_NONE c=17 r=1 -#: ultralcd.cpp:5043 -msgid "Sort: [none]" -msgstr "Sortuj: [brak]" +#: ultralcd.cpp:5246 +msgid "Sort [none]" +msgstr "Sortuj [brak]" # MSG_SORT_TIME c=17 r=1 -#: ultralcd.cpp:5041 -msgid "Sort: [time]" -msgstr "Sortuj: [czas]" +#: ultralcd.cpp:5244 +msgid "Sort [time]" +msgstr "Sortuj [czas]" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3008 msgid "Severe skew" msgstr "Znaczny skos" # MSG_SORT_ALPHA c=17 r=1 -#: ultralcd.cpp:5042 -msgid "Sort: [alphabet]" -msgstr "Sortuj: [alfabet]" +#: ultralcd.cpp:5245 +msgid "Sort [alphabet]" +msgstr "Sortuj [alfabet]" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Sortowanie plikow" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "Dzwiek [Glosny]" # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3007 msgid "Slight skew" msgstr "Lekki skos" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "Dzwiek[Wylaczony]" # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4870 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Wykryto problem, wymuszono poziomowanie osi Z ..." # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "Dzwiek [1-raz]" # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "Dzwiek [Cichy]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Predkosc" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Kreci sie" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4367 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Potrzebna jest stabilna temperatura otoczenia 21-26C i stabilne podloze." # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Statystyki" # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "Zatrzymac druk" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "ZATRZYMANO." # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "Wsparcie" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Zamieniono" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "Kalibracja temp." # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5600 msgid "Temp. cal. [on]" msgstr "Kalibr. temp.[wl]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5598 msgid "Temp. cal. [off]" msgstr "Kalibr.temp.[wyl]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5694 msgid "Temp. calibration" msgstr "Kalibracja temp." # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3867 msgid "Temperature calibration failed" msgstr "Kalibracja temperaturowa nieudana" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "Kalibracja temperaturowa zakonczona i wlaczona. Moze byc wylaczona z menu Ustawienia -> Kalibracja temp." # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5564 msgid "Temperature" msgstr "Temperatura" # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2140 msgid "Temperatures" msgstr "Temperatury" @@ -1511,127 +1371,122 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "Musimy przeprowadzic kalibracje Z. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Kalibracja." # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2863 msgid "Total filament" msgstr "Calkowita dlugosc filamentu" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2863 msgid "Total print time" msgstr "Calkowity czas druku" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6633 msgid "Tune" msgstr "Strojenie" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4783 msgid "Unload" msgstr "Rozladuj" # -#: ultralcd.cpp:5617 -msgid "Unload all" -msgstr "Rozladuj wszystkie" - -# -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1857 msgid "Total failures" -msgstr "" +msgstr "Suma bledow" # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2213 msgid "to load filament" -msgstr "" +msgstr "aby zaladow. fil." # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2217 msgid "to unload filament" -msgstr "" +msgstr "aby rozlad. filament" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "Rozladowanie fil." # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Rozladowuje filament" # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1824 msgid "Total" -msgstr "" +msgstr "Suma" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5822 msgid "Used during print" msgstr "Uzyte podczas druku" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2143 msgid "Voltages" msgstr "Napiecia" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2116 msgid "unknown" -msgstr "" +msgstr "nieznane" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5262 msgid "Wait for user..." msgstr "Czekam na uzytkownika..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3374 msgid "Waiting for nozzle and bed cooling" msgstr "Oczekiwanie na wychlodzenie dyszy i stolu" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3338 msgid "Waiting for PINDA probe cooling" msgstr "Czekam az spadnie temp. sondy PINDA" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4782 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Uzyj opcji Rozladuj jesli filament wystaje z tylnej rurki MMU. Uzyj opcji Wysun jesli wciaz jest w srodku." # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1511 msgid "Warning: both printer type and motherboard type changed." msgstr "Ostrzezenie: typ drukarki i plyta glowna ulegly zmianie." # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1503 msgid "Warning: motherboard type changed." msgstr "Ostrzezenie: plyta glowna ulegla zmianie." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1507 msgid "Warning: printer type changed." msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3053 msgid "Was filament unload successful?" msgstr "Rozladowanie fil. ok?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Blad polaczenia" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5661 msgid "Wizard" msgstr "Asystent" # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2132 msgid "XYZ cal. details" msgstr "Szczegoly kal. XYZ" @@ -1641,107 +1496,312 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "Kalibracja XYZ nieudana. Sprawdz przyczyny i rozwiazania w instrukcji." # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Tak" # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "Zawsze mozesz uruchomic Asystenta ponownie przez Kalibracja -> Asystent." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3838 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "Kalibracja XYZ pomyslna. Skos bedzie automatycznie korygowany." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "Kalibracja XYZ prawidlowa. Osie X/Y lekko skosne. Dobra robota!" # -#: ultralcd.cpp:4885 -msgid "X-correct" -msgstr "Korekcja X" +#: ultralcd.cpp:5044 +msgid "X-correct:" +msgstr "Korekcja X:" # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3832 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "Kalibracja XYZ ok. Osie X/Y sa prostopadle. Gratulacje!" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3819 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny." -# MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR c=20 r=8 -#: ultralcd.cpp:3699 -msgid "XYZ calibration compromised. Left front calibration point not reachable." -msgstr "Kalibracja XYZ niedokladna. Lewy przedni punkt nieosiagalny." - # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6080 msgid "Load all" msgstr "Zalad. wszystkie" -# MSG_LOAD_FILAMENT_1 c=17 -#: ultralcd.cpp:5576 -msgid "Load filament 1" -msgstr "Zaladuj fil. 1" - # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3798 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki." # -#: ultralcd.cpp:3687 -msgid "XYZ calibration failed. Left front calibration point not reachable." -msgstr "Kalibr. XYZ nieudana. Lewy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki." - -# MSG_LOAD_FILAMENT_2 c=17 -#: ultralcd.cpp:5577 -msgid "Load filament 2" -msgstr "Zaladuj fil. 2" - -# -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3807 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki." -# MSG_LOAD_FILAMENT_3 c=17 -#: ultralcd.cpp:5578 -msgid "Load filament 3" -msgstr "Zaladuj fil. 3" - # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2968 msgid "Y distance from min" msgstr "Dystans od 0 w osi Y" # -#: ultralcd.cpp:4886 -msgid "Y-correct" -msgstr "Korekcja Y" +#: ultralcd.cpp:5045 +msgid "Y-correct:" +msgstr "Korekcja Y:" -# MSG_LOAD_FILAMENT_4 c=17 -#: ultralcd.cpp:5579 -msgid "Load filament 4" -msgstr "Zaladuj fil. 4" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr "" -# MSG_LOAD_FILAMENT_5 c=17 -#: ultralcd.cpp:5582 -msgid "Load filament 5" -msgstr "Laduj filament 5" +# +#: messages.c:57 +msgid "Back" +msgstr "Wstecz" + +# +#: ultralcd.cpp:5553 +msgid "Checks" +msgstr "Testy" + +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "Falszywy alarm" + +# +#: ultralcd.cpp:3946 +msgid "FINDA:" +msgstr "" + +# +#: ultralcd.cpp:5459 +msgid "Firmware [none]" +msgstr "Firmware [brak]" + +# +#: ultralcd.cpp:5465 +msgid "Firmware [strict]" +msgstr "Firmware [restr.]" + +# +#: ultralcd.cpp:5462 +msgid "Firmware [warn]" +msgstr "Firmware[ostrzez]" + +# +#: messages.c:87 +msgid "HW Setup" +msgstr "Ustawienia HW" + +# +#: ultralcd.cpp:3950 +msgid "IR:" +msgstr "" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "Kor. magnesow [nd]" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "Kor. magnesow[wyl]" + +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "Kor. magnesow [wl]" + +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "Siatka [3x3]" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "Siatka [7x7]" + +# +#: ultralcd.cpp:5591 +msgid "Mesh bed leveling" +msgstr "Poziomowanie wg siatki" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "" + +# +#: ultralcd.cpp:5220 +msgid "MMU Mode [Normal]" +msgstr "Tryb MMU[Normaln]" + +# +#: ultralcd.cpp:5221 +msgid "MMU Mode[Stealth]" +msgstr "Tryb MMU [Stealth]" + +# +#: ultralcd.cpp:4427 +msgid "Mode change in progress ..." +msgstr "Trwa zmiana trybu..." + +# +#: ultralcd.cpp:5420 +msgid "Model [none]" +msgstr "Model [brak]" + +# +#: ultralcd.cpp:5426 +msgid "Model [strict]" +msgstr "Model [restrykc.]" + +# +#: ultralcd.cpp:5423 +msgid "Model [warn]" +msgstr "Model [ostrzez.]" + +# +#: ultralcd.cpp:5381 +msgid "Nozzle d. [0.25]" +msgstr "Sr. dyszy [0,25]" + +# +#: ultralcd.cpp:5384 +msgid "Nozzle d. [0.40]" +msgstr "Sr. dyszy [0,40]" + +# +#: ultralcd.cpp:5387 +msgid "Nozzle d. [0.60]" +msgstr "Sr. dyszy [0,60]" + +# +#: ultralcd.cpp:5335 +msgid "Nozzle [none]" +msgstr "Dysza [brak]" + +# +#: ultralcd.cpp:5341 +msgid "Nozzle [strict]" +msgstr "Dysza [restrykc.]" + +# +#: ultralcd.cpp:5338 +msgid "Nozzle [warn]" +msgstr "Dysza [ostrzez.]" + +# +#: util.cpp:510 +msgid "G-code sliced for a different level. Continue?" +msgstr "" + +# +#: util.cpp:516 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "" + +# +#: ultralcd.cpp:3942 +msgid "PINDA:" +msgstr "" + +# +#: ultralcd.cpp:2286 +msgid "Preheating to cut" +msgstr "Nagrzewanie do obciecia" + +# +#: ultralcd.cpp:2283 +msgid "Preheating to eject" +msgstr "Nagrzewanie do wysuniecia" + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Srednica dyszy drukarki rozni sie od tej w G-code. Kontynuowac?" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Srednica dyszy rozni sie od tej w G-code. Sprawdz ustawienia. Druk anulowany." + +# +#: ultralcd.cpp:6597 +msgid "Rename" +msgstr "Zmien nazwe" + +# +#: ultralcd.cpp:6593 +msgid "Select" +msgstr "Wybierz" + +# +#: ultralcd.cpp:2134 +msgid "Sensor info" +msgstr "Info o sensorach" + +# +#: messages.c:58 +msgid "Sheet" +msgstr "Plyta" + +# +#: +msgid "Sound [assist]" +msgstr "" + +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "" + +# +#: ultralcd.cpp:5046 +msgid "Z-correct:" +msgstr "Korekcja-Z:" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "Pomiar-Z [1]" diff --git a/lang/po/new/cs.po b/lang/po/new/cs.po index 8547b2650..79a932ba9 100644 --- a/lang/po/new/cs.po +++ b/lang/po/new/cs.po @@ -15,7 +15,12 @@ msgstr "\e[2JCrash detekce muze\e[1;0Hbyt zapnuta pouze v\e[2;0HNormal modu" # MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 #: ultralcd.cpp:4231 msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode" -msgstr "\e[2JPOZOR:\e[1;0HCrash detekce\e[2;0Hdeaktivovana ve\e[3;0HStealth modu" +msgstr "\e[2JPOZOR:\e[1;0HCrash detekce\e[2;0Hdeaktivovana ve\e[3;0Htichem modu" + +# +#: ultralcd.cpp:3913 +msgid " 1" +msgstr "1" # MSG_PLANNER_BUFFER_BYTES #: Marlin_main.cpp:1184 @@ -48,10 +53,15 @@ msgid " of 4" msgstr " z 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr " z 9" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr "[vyp]" + # MSG_FACTOR #: ultralcd.cpp:6008 msgid " \002 Fact" @@ -68,14 +78,19 @@ msgid " \002 Min" msgstr " \002 Min" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2294 msgid ">Cancel" msgstr ">Zrusit" # MSG_BABYSTEPPING_Z c=20 #: ultralcd.cpp:3043 msgid "Adjusting Z" -msgstr "Dostavovani Z" +msgstr "Doladeni Z" + +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3144 +msgid "Adjusting Z:" +msgstr "Doladeni Z:" # MSG_ALL c=19 r=1 #: messages.c:11 @@ -83,27 +98,27 @@ msgid "All" msgstr "Vse" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Vse OK " # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "Vse je hotovo." # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1979 msgid "Ambient" msgstr "Okoli" # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2573 msgid "and press the knob" msgstr "a stisknete tlacitko" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3442 msgid "Are left and right Z~carriages all up?" msgstr "Dojely oba Z voziky k~hornimu dorazu?" @@ -133,27 +148,27 @@ msgid "Auto home" msgstr "Auto home" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6731 msgid "AutoLoad filament" msgstr "AutoZavedeni fil." # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4375 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "Automaticke zavadeni filamentu je dostupne pouze pri zapnutem filament senzoru..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2768 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "Automaticke zavadeni filamentu aktivni, stisknete tlacitko a vlozte filament..." # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Osa" # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Delka osy" @@ -167,13 +182,18 @@ msgstr "Babystepping X" msgid "Babystepping Y" msgstr "Babystepping Y" +# +#: messages.c:57 +msgid "Back" +msgstr "Zpet" + # MSG_BED #: messages.c:15 msgid "Bed" msgstr "Podlozka" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Podlozka / Topeni" @@ -188,7 +208,7 @@ msgid "Bed Heating" msgstr "Zahrivani bed" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5663 msgid "Bed level correct" msgstr "Korekce podlozky" @@ -213,17 +233,17 @@ msgid "Begin file list" msgstr "Pocatek seznamu souboru" # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2007 msgid "Belt status" msgstr "Stav remenu" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "Detekovan vypadek proudu.Obnovit tisk?" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4566 msgid "Calibrate" msgstr "Zkalibrovat" @@ -233,7 +253,7 @@ msgid "Calibrate E" msgstr "Kalibrovat E" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5652 msgid "Calibrate XYZ" msgstr "Kalibrace XYZ" @@ -243,12 +263,12 @@ msgid "Calibrate Z" msgstr "Kalibrovat Z" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" msgstr "Kalibruji vychozi poz." # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Kalibrace XYZ. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem." @@ -258,22 +278,22 @@ msgid "Calibrating Z" msgstr "Kalibruji Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Kalibrace Z. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem." # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "Kalibrace" # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:832 msgid "Calibration done" msgstr "Kalibrace OK" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Cancel" msgstr "Zrusit" @@ -293,7 +313,7 @@ msgid "Card inserted" msgstr "Karta vlozena" # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "Karta vyjmuta" @@ -313,12 +333,12 @@ msgid "Change SD card" msgstr "Vymenit SD" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2584 msgid "Change success!" msgstr "Zmena uspesna!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2661 msgid "Changed correctly?" msgstr "Vymena ok?" @@ -328,40 +348,45 @@ msgid "Changing filament!" msgstr "Vymena filamentu!" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Kontrola podlozky" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Kontrola endstopu" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Kontrola hotend " # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Kontrola senzoru" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Kontrola osy X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Kontrola osy Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Kontrola osy Z" +# +#: ultralcd.cpp:5537 +msgid "Checks" +msgstr "Kontrola" + # MSG_ERR_CHECKSUM_MISMATCH #: cmdqueue.cpp:444 msgid "checksum mismatch, Last Line: " @@ -378,7 +403,7 @@ msgid "Choose filament:" msgstr "Vyber filament:" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2673 msgid "Color not correct" msgstr "Barva neni cista" @@ -393,12 +418,12 @@ msgid "Copy selected language from XFLASH?" msgstr "Kopirovat vybrany jazyk do XFLASH?" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4499 msgid "Copy selected language?" msgstr "Kopirovat vybrany jazyk?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Crash" msgstr "Naraz" @@ -423,22 +448,27 @@ msgid "Crash detected." msgstr "Detekovan naraz." # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:618 msgid "Crash detected. Resume print?" msgstr "Detekovan naraz. Obnovit tisk?" +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +msgid "Crash detection can\nbe turned on only in\nNormal mode" +msgstr "Crash detekce muze byt zapnuta pouze v Normal modu" + # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5804 msgid "Current" msgstr "Pouze aktualni" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2106 msgid "Date:" msgstr "Datum:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5552 msgid "Disable steppers" msgstr "Vypnout motory" @@ -448,7 +478,7 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "Neni zkalibrovana vzdalenost trysky od tiskove podlozky. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Nastaveni prvni vrstvy." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4968 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "Chcete opakovat posledni krok a pozmenit vzdalenost mezi tryskou a podlozkou?" @@ -462,13 +492,18 @@ msgstr "E kalibrace ukoncena. Prosim ocistete trysku. Pote potvrdte tlacitkem." msgid "E-correct" msgstr "Korekce E" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5032 +msgid "E-correct:" +msgstr "Korekce E:" + # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Eject" msgstr "Vysunout" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "Vysunout filament" @@ -498,7 +533,7 @@ msgid "Eject filament 5" msgstr "Vysunout filament 5" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1435 msgid "Ejecting filament" msgstr "Vysouvam filament" @@ -508,17 +543,17 @@ msgid "End file list" msgstr "Konec sezn. souboru" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "Koncovy spinac" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Kon. spinac nesepnut" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "Konc. spinace" @@ -538,7 +573,7 @@ msgid "enqueing \"" msgstr "zarazovani \"" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Chyba - Doslo k prepisu staticke pameti!" @@ -553,7 +588,7 @@ msgid "ERROR:" msgstr "CHYBA:" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4388 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte zapojeni." @@ -588,17 +623,17 @@ msgid "Extruder 4" msgstr "Extruder 4" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Levy vent.:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2137 msgid "Extruder info" msgstr "Extruder info" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5066 msgid "F. autoload [on]" msgstr "F. autozav. [zap]" @@ -608,37 +643,42 @@ msgid "F. autoload [N/A]" msgstr "F. autozav. [N/A]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5068 msgid "F. autoload [off]" msgstr "F. autozav. [vyp]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" msgstr "Selhani" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" msgstr "Selhani MMU" +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "Falesne spusteni" + # MSG_FAN_SPEED c=14 #: messages.c:31 msgid "Fan speed" msgstr "Rychlost vent." # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Test ventilatoru" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5561 msgid "Fans check [on]" msgstr "Kontr. vent.[zap]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5563 msgid "Fans check [off]" msgstr "Kontr. vent.[vyp]" @@ -653,7 +693,7 @@ msgid "Fil. sensor response is poor, disable it?" msgstr "Senzor nerozpoznal filament, vypnout?" # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5046 msgid "Fil. sensor [N/A]" msgstr "Fil. senzor [N/A]" @@ -663,9 +703,9 @@ msgid "Fil. sensor [off]" msgstr "Fil. senzor [vyp]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Filam. runouts" -msgstr "Vypadky filamentu" +msgstr "Vypadky filam." # MSG_FILAMENT c=17 r=1 #: messages.c:30 @@ -678,12 +718,12 @@ msgid "Filament extruding & with correct color?" msgstr "Filament vytlacen a spravne barvy?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2669 msgid "Filament not loaded" msgstr "Filament nezaveden" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Senzor filamentu" @@ -693,7 +733,7 @@ msgid "Filament sensor:" msgstr "Senzor filamentu:" # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2838 msgid "Filament used" msgstr "Spotrebovano filamentu" @@ -703,7 +743,7 @@ msgid "Filament used: " msgstr "Filament : " # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "Soubor nekompletni. Pokracovat?" @@ -717,53 +757,93 @@ msgstr "Soubor otevren:" msgid "File selected" msgstr "Soubor vybran" +# +#: ultralcd.cpp:3943 +msgid "FINDA:" +msgstr "FINDA:" + # MSG_FINISHING_MOVEMENTS c=20 r=1 #: messages.c:40 msgid "Finishing movements" msgstr "Dokoncovani pohybu" +# +#: ultralcd.cpp:5443 +msgid "Firmware [none]" +msgstr "Firmware [Zadne]" + +# +#: ultralcd.cpp:5446 +msgid "Firmware [warn]" +msgstr "Firmware [Varovat]" + +# +#: ultralcd.cpp:5449 +msgid "Firmware [strict]" +msgstr "Firmware [Prisne]" + # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Kal. prvni vrstvy" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4880 msgid "First, I will run the selftest to check most common assembly problems." msgstr "Nejdriv pomoci selftestu zkontoluji nejcastejsi chyby vznikajici pri sestaveni tiskarny." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Opravte chybu a pote stisknete tlacitko na jednotce MMU." # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Prutok" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2099 msgid "forum.prusa3d.com" msgstr "forum.prusa3d.com" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Predni tiskovy vent?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3217 msgid "Front side[um]" msgstr "Vpredu [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Predni/levy vent." +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "G-code je pripraven pro jiny typ tiskarny. Pokracovat?" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "G-code je pripraven pro jiny typ tiskarny. Prosim preslicujte model znovu. Tisk zrusen." + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "G-code je pripraven pro novejsi firmware. Pokracovat?" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "G-code je pripraven pro novejsi firmware. Prosim aktualizujte firmware. Tisk zrusen." + # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Topeni/Termistor" @@ -773,7 +853,7 @@ msgid "Heating" msgstr "Zahrivani" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8411 msgid "Heating disabled by safety timer." msgstr "Zahrivani preruseno bezpecnostnim casovacem." @@ -783,27 +863,32 @@ msgid "Heating done." msgstr "Zahrivani OK." # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4859 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Dobry den, jsem vase tiskarna Original Prusa i3. Chcete abych Vas provedla kalibracnim procesem?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2100 msgid "howto.prusa3d.com" msgstr "howto.prusa3d.com" +# +#: messages.c:87 +msgid "HW Setup" +msgstr "HW nastaveni" + # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4889 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Nyni provedu xyz kalibraci. Zabere to priblizne 12 min." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4897 msgid "I will run z calibration now." msgstr "Nyni provedu z kalibraci." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4962 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "Zacnu tisknout linku a Vy budete postupne snizovat trysku otacenim tlacitka dokud nedosahnete optimalni vysky. Prohlednete si obrazky v nasi prirucce v kapitole Kalibrace." @@ -813,7 +898,7 @@ msgid "Improving bed calibration point" msgstr "Zlepsuji presnost kalibracniho bodu" # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Informace" @@ -823,7 +908,7 @@ msgid "Init. SD card" msgstr "Inic. SD" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2569 msgid "Insert filament" msgstr "Vlozte filament" @@ -848,27 +933,32 @@ msgid "Insert filament into extruder 4. Click when done." msgstr "Vlozte filament do extruderu 4. Potvrdte tlacitkem." # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:3947 +msgid "IR:" +msgstr "IR:" + +# +#: ultralcd.cpp:4922 msgid "Is filament 1 loaded?" msgstr "Je filament 1 zaveden?" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4925 msgid "Is filament loaded?" msgstr "Je filament zaveden?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4956 msgid "Is it PLA filament?" msgstr "Je to PLA filament?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4701 msgid "Is PLA filament loaded?" msgstr "Je PLA filament zaveden?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" msgstr "Je tiskovy plat na podlozce?" @@ -883,27 +973,27 @@ msgid "KILLED. " msgstr "ZRUSENO." # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1828 msgid "Last print" msgstr "Posledni tisk" # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1845 msgid "Last print failures" msgstr "Selhani posl. tisku" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2967 msgid "Left" msgstr "Vlevo:" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Levy vent na trysce?" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3215 msgid "Left side [um]" msgstr "Vlevo [um]" @@ -913,7 +1003,7 @@ msgid "Left:" msgstr "Vlevo:" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5575 msgid "Lin. correction" msgstr "Korekce lin." @@ -923,7 +1013,7 @@ msgid "Live adjust Z" msgstr "Doladeni osy Z" # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6059 msgid "Load all" msgstr "Zavest vse" @@ -958,12 +1048,12 @@ msgid "Load filament 5" msgstr "Zavest filament 5" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6714 msgid "Load to nozzle" msgstr "Zavest do trysky" # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2609 msgid "Loading color" msgstr "Cisteni barvy" @@ -973,7 +1063,7 @@ msgid "Loading filament" msgstr "Zavadeni filamentu" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Uvolnena remenicka" @@ -993,7 +1083,7 @@ msgid "M109 Invalid extruder " msgstr "M109 Neplatny extruder " # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Kal. prvni vrstvy" @@ -1012,8 +1102,23 @@ msgstr "M218 Neplatny extruder " msgid "M221 Invalid extruder " msgstr "M221 Neplatny extruder " +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "Komp. magnetu[Zap]" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "Komp. magnetu[N/A]" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "Komp. magnetu[Vyp]" + # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Hlavni nabidka" @@ -1023,42 +1128,77 @@ msgid "Mark filament 100mm from extruder body. Click when done." msgstr "Oznacte filament 100 mm od tela extruderu a pote potvrdte tlacitkem." # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3002 msgid "Measured skew" msgstr "Merene zkoseni" # MSG_MEASURED_SKEW c=15 r=1 #: ultralcd.cpp:2335 msgid "Measured skew:" -msgstr "Merene zkoseni:" +msgstr "Merene zkos.:" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Merim referencni vysku kalibracniho bodu" +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "Mesh [3x3]" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "Mesh [7x7]" + # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5658 msgid "Mesh Bed Leveling" msgstr "Mesh Bed Leveling" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:5572 +msgid "Mesh bed leveling" +msgstr "Mesh Bed Leveling" + +# +#: Marlin_main.cpp:881 +msgid "MK3 firmware detected on MK3S printer" +msgstr "MK3 firmware detekovan na tiskarne MK3S" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "MK3S firmware detekovan na tiskarne MK3" + +# +#: ultralcd.cpp:1845 msgid "MMU fails" msgstr "Selhani MMU" # -#: mmu.cpp:1399 +#: mmu.cpp:1617 msgid "MMU load failed " msgstr "Zavedeni MMU selhalo" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1845 msgid "MMU load fails" msgstr "MMU selhani zavadeni" # -#: mmu.cpp:635 +#: ultralcd.cpp:5204 +msgid "MMU Mode [Normal]" +msgstr "MMU mod [Normal]" + +# +#: ultralcd.cpp:5205 +msgid "MMU Mode[Stealth]" +msgstr "MMU Mod [Tichy]" + +# +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "MMU potrebuje zasah uzivatele." @@ -1068,44 +1208,49 @@ msgid "MMU needs user attention. Fix the issue and then press button on MMU unit msgstr "MMU potrebuje zasah uzivatele. Opravte chybu a pote stisknete tlacitko na jednotce MMU." # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Pokracuji v tisku..." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Pokracuji v nahrivani..." # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Pokracuji..." # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "MMU power fails" msgstr "MMU vypadky proudu" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2112 msgid "MMU2 connected" msgstr "MMU2 pripojeno" # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "Mod [Normal]" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Mod [tichy]" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" -msgstr "Mod [tichy]" +msgstr "Mod [Tichy]" + +# +#: ultralcd.cpp:4424 +msgid "Mode change in progress ..." +msgstr "Probiha zmena modu..." # MSG_AUTO_MODE_ON #: messages.c:12 @@ -1113,37 +1258,52 @@ msgid "Mode [auto power]" msgstr "Mod [automaticky]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "Mod [vys. vykon]" +# +#: ultralcd.cpp:5404 +msgid "Model [none]" +msgstr "Trideni [Zadne]" + +# +#: ultralcd.cpp:5407 +msgid "Model [warn]" +msgstr "Model [Varovat]" + +# +#: ultralcd.cpp:5410 +msgid "Model [strict]" +msgstr "Model [Prisne]" + # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "Motor" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5550 msgid "Move axis" msgstr "Posunout osu" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4291 msgid "Move X" msgstr "Posunout X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4292 msgid "Move Y" msgstr "Posunout Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4293 msgid "Move Z" msgstr "Posunout Z" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2973 msgid "N/A" msgstr "N/A" @@ -1153,7 +1313,7 @@ msgid "New firmware version available:" msgstr "Vysla nova verze firmware:" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "Ne" @@ -1168,12 +1328,12 @@ msgid "No Checksum with line number, Last Line: " msgstr "Zadny kontrolni soucet s cislem radku, Posl. radek:" # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5254 msgid "No move." msgstr "Bez pohybu." # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6694 msgid "No SD card" msgstr "Zadna SD karta" @@ -1183,37 +1343,67 @@ msgid "No thermistors - no temperature" msgstr "Bez termistoru - bez odectu teploty" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "Nezapojeno " # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Netoci se" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4961 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "Nyni zkalibruji vzdalenost mezi koncem trysky a povrchem podlozky." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4905 msgid "Now I will preheat nozzle for PLA." msgstr "Nyni predehreji trysku pro PLA." # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4896 msgid "Now remove the test print from steel sheet." msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Tryska" # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:5319 +msgid "Nozzle [none]" +msgstr "Tryska [Zadne]" + +# +#: ultralcd.cpp:5322 +msgid "Nozzle [warn]" +msgstr "Tryska [Varovat]" + +# +#: ultralcd.cpp:5325 +msgid "Nozzle [strict]" +msgstr "Tryska [Prisne]" + +# +#: ultralcd.cpp:5365 +msgid "Nozzle d. [0.25]" +msgstr "Tryska [0.25]" + +# +#: ultralcd.cpp:5368 +msgid "Nozzle d. [0.40]" +msgstr "Tryska [0.40]" + +# +#: ultralcd.cpp:5371 +msgid "Nozzle d. [0.60]" +msgstr "Tryska [0.60]" + +# +#: ultralcd.cpp:1787 msgid "Nozzle FAN" msgstr "Trysk. vent." @@ -1238,7 +1428,7 @@ msgid "ok" msgstr "ok" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1535 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd." @@ -1258,7 +1448,7 @@ msgid "openRoot failed" msgstr "openRoot selhal" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6657 msgid "Pause print" msgstr "Pozastavit tisk" @@ -1268,42 +1458,47 @@ msgid "Pick print" msgstr "Vyberte vytisk" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1613 msgid "PID cal. " msgstr "PID kal. " # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1619 msgid "PID cal. finished" msgstr "PID kal. ukoncena" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5664 msgid "PID calibration" msgstr "PID kalibrace" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:862 msgid "PINDA Heating" msgstr "Nahrivani PINDA" +# +#: ultralcd.cpp:3939 +msgid "PINDA:" +msgstr "PINDA:" + # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, okamzite vypnete tiskarnu." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Zkontrolujte :" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Prosim nahlednete do prirucky 3D tiskare a opravte problem. Pote obnovte Pruvodce restartovanim tiskarny." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4970 msgid "Please clean heatbed and then press the knob." msgstr "Prosim ocistete podlozku a stisknete tlacitko." @@ -1313,12 +1508,12 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem." # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4804 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "Prosim vlozte PLA filament do extruderu, pote stisknete tlacitko pro zavedeni filamentu." # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4800 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Prosim vlozte PLA filament do trubicky MMU, pote stisknete tlacitko pro zavedeni filamentu." @@ -1328,52 +1523,52 @@ msgid "Please load PLA filament and then resume Wizard by rebooting the printer. msgstr "Prosim zavedte PLA filament a po te obnovte Pruvodce stisknutim reset tlacitka." # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4706 msgid "Please load PLA filament first." msgstr "Nejdrive prosim zavedte PLA filament." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3083 msgid "Please open idler and remove filament manually." msgstr "Prosim otevrete idler a manualne odstrante filament." # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "Umistete prosim tiskovy plat na podlozku" # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Pro vysunuti filamentu stisknete prosim tlacitko" # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Prosim vyjmete urychlene filament" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1441 msgid "Please remove filament and then press the knob." msgstr "Prosim vyjmete filament a pote stisknete tlacitko." # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4895 msgid "Please remove shipping helpers first." msgstr "Nejprve prosim sundejte transportni soucastky." # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "Odstrante prosim tiskovy plat z podlozky." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4317 msgid "Please run XYZ calibration first." msgstr "Nejprve spustte kalibraci XYZ." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1360 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Prosim aktualizujte firmware ve vasi MMU2 jednotce. Cekam na reset." @@ -1383,12 +1578,12 @@ msgid "Please upgrade." msgstr "Prosim aktualizujte." # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Prosim cekejte" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Power failures" msgstr "Vypadky proudu" @@ -1398,29 +1593,39 @@ msgid "PowerUp" msgstr "Zapnuti" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6644 msgid "Preheat" msgstr "Predehrev" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Predehrejte trysku!" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." -msgstr "Predehrivam trysku. Prosim cekejte." +msgstr "Predehrev trysky. Prosim cekejte." # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2290 +msgid "Preheating to cut" +msgstr "Predehrev k ustrizeni" + +# +#: ultralcd.cpp:2287 +msgid "Preheating to eject" +msgstr "Predehrev k vysunuti" + +# +#: ultralcd.cpp:2280 msgid "Preheating to load" -msgstr "Predehrivam k zavedeni" +msgstr "Predehrev k zavedeni" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2284 msgid "Preheating to unload" -msgstr "Predehrivam k vyjmuti" +msgstr "Predehrev k vyjmuti" # MSG_PREPARE_FILAMENT c=20 r=1 #: ultralcd.cpp:1911 @@ -1428,27 +1633,27 @@ msgid "Prepare new filament" msgstr "Pripravte filament" # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10312 msgid "Press knob to preheat nozzle and continue." msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko." # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2210 msgid "Press the knob" msgstr "Stisknete hl. tlacitko" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Pro pokracovani nahrivani trysky stisknete tlacitko." # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Tisk prerusen" # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1789 msgid "Print FAN" msgstr "Tiskovy vent." @@ -1458,7 +1663,7 @@ msgid "Print FAN: " msgstr "Tisk. vent:" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "Tiskovy vent.:" @@ -1468,12 +1673,12 @@ msgid "Print from SD" msgstr "Tisk z SD" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1080 msgid "Print paused" msgstr "Tisk pozastaven" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2838 msgid "Print time" msgstr "Cas tisku" @@ -1487,6 +1692,16 @@ msgstr "Cas tisku: " msgid "Printer disconnected" msgstr "Tiskarna odpojena" +# +#: util.cpp:473 +msgid "Printer FW version differs from the G-code. Continue?" +msgstr "Firmware tiskarny se lisi od G-code. Pokracovat?" + +# +#: util.cpp:480 +msgid "Printer FW version differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Firmware tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen." + # MSG_ERR_KILLED #: Marlin_main.cpp:7547 msgid "Printer halted. kill() called!" @@ -1497,6 +1712,26 @@ msgstr "Tiskarna zastavena. Volano kill()!" msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow." msgstr "Tiskarna nebyla jeste zkalibrovana. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Postup kalibrace." +# +#: util.cpp:423 +msgid "Printer model differs from the G-code. Continue?" +msgstr "Model tiskarny se lisi od G-code. Pokracovat?" + +# +#: util.cpp:430 +msgid "Printer model differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Model tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen." + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Prumer trysky tiskarny se lisi od G-code. Pokracovat?" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Prumer trysky tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen." + # MSG_ERR_STOPPED #: messages.c:32 msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" @@ -1512,6 +1747,11 @@ msgstr "Prusa i3 MK2 ok." msgid "Prusa i3 MK2.5 ready." msgstr "Prusa i3 MK2.5 ok." +# +#: +msgid "Prusa i3 MK3 OK." +msgstr "Prusa i3 MK3 OK." + # WELCOME_MSG c=20 #: msgid "Prusa i3 MK3 ready." @@ -1523,17 +1763,17 @@ msgid "Prusa i3 MK3S OK." msgstr "Prusa i3 MK3S OK." # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2098 msgid "prusa3d.com" msgstr "prusa3d.com" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3218 msgid "Rear side [um]" msgstr "Vzadu [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9712 msgid "Recovering print " msgstr "Obnovovani tisku " @@ -1543,10 +1783,15 @@ msgid "Refresh" msgstr "Obnovit" # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho." +# +#: ultralcd.cpp:6605 +msgid "Rename" +msgstr "Prejmenovat" + # MSG_M119_REPORT #: Marlin_main.cpp:5297 msgid "Reporting endstop status" @@ -1563,32 +1808,32 @@ msgid "Resend: " msgstr "Poslat znovu: " # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3219 msgid "Reset" msgstr "Reset" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5669 msgid "Reset XYZ calibr." msgstr "Reset XYZ kalibr." # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6664 msgid "Resume print" msgstr "Pokracovat" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "Obnoveni tisku" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2968 msgid "Right" msgstr "Vpravo" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3216 msgid "Right side[um]" msgstr "Vpravo [um]" @@ -1603,22 +1848,22 @@ msgid "Rotate knob until mark reaches extruder body. Click when done." msgstr "Otacejte tlacitkem dokud znacka nedosahne tela extruderu. Potvrdte tlacitkem." # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5587 msgid "RPi port [on]" msgstr "RPi port [zap]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5585 msgid "RPi port [off]" msgstr "RPi port [vyp]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4723 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Spusteni Pruvodce vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5220 msgid "SD card [normal]" msgstr "SD card [normal]" @@ -1633,7 +1878,7 @@ msgid "SD card [FlshAir]" msgstr "SD card [FlshAir]" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5218 msgid "SD card [flshAir]" msgstr "SD card [FlshAir]" @@ -1652,53 +1897,63 @@ msgstr "SD printing byte " msgid "Searching bed calibration point" msgstr "Hledam kalibracni bod podlozky" +# +#: ultralcd.cpp:6601 +msgid "Select" +msgstr "Vybrat" + # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5594 msgid "Select language" msgstr "Vyber jazyka" # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4943 msgid "Select nozzle preheat temperature which matches your material." msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu." # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Select PLA filament:" msgstr "Vyberte PLA filament:" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "Self test OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Self test start " # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5645 msgid "Selftest " msgstr "Selftest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Chyba Selftestu!" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "Selftest selhal " # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1567 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest." # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:2138 +msgid "Sensor info" +msgstr "Senzor info" + +# +#: ultralcd.cpp:3938 msgid "Sensor state" msgstr "Stav senzoru" @@ -1708,17 +1963,17 @@ msgid "Sensors info" msgstr "Senzor info" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3227 msgid "Set temperature:" msgstr "Nastavte teplotu:" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Nastaveni" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3005 msgid "Severe skew" msgstr "Tezke zkoseni" @@ -1727,8 +1982,13 @@ msgstr "Tezke zkoseni" msgid "Severe skew:" msgstr "Tezke zkoseni:" +# +#: messages.c:58 +msgid "Sheet" +msgstr "Plech" + # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5666 msgid "Show end stops" msgstr "Stav konc. spin." @@ -1743,7 +2003,7 @@ msgid "Sleep..." msgstr "Spankovy rezim..." # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3004 msgid "Slight skew" msgstr "Lehke zkoseni" @@ -1753,15 +2013,30 @@ msgid "Slight skew:" msgstr "Lehke zkoseni:" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100." # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4833 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Vyskytl se problem, srovnavam osu Z ..." +# MSG_SORT_NONE c=17 r=1 +#: ultralcd.cpp:5230 +msgid "Sort [none]" +msgstr "Trideni [Zadne]" + +# MSG_SORT_TIME c=17 r=1 +#: ultralcd.cpp:5228 +msgid "Sort [time]" +msgstr "Trideni [cas]" + +# MSG_SORT_ALPHA c=17 r=1 +#: ultralcd.cpp:5229 +msgid "Sort [alphabet]" +msgstr "Trideni [Abeceda]" + # MSG_SORT_NONE c=17 r=1 #: ultralcd.cpp:4250 msgid "Sort: [None]" @@ -1803,117 +2078,127 @@ msgid "Sort: [time]" msgstr "Trideni [Cas]\n" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Trideni souboru" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "Zvuk [hlasity]" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "Zvuk [vypnuto]" # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "Zvuk [jednou]" +# +#: +msgid "Sound [assist]" +msgstr "Zvuk [Asist.]" + # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "Zvuk [tichy]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Rychlost" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Toci se" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5098 msgid "SpoolJoin [on]" msgstr "SpoolJoin [zap]" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5094 msgid "SpoolJoin [N/A]" msgstr "SpoolJoin [N/A]" # MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +#: ultralcd.cpp:5102 msgid "SpoolJoin [off]" msgstr "SpoolJoin [vyp]" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4330 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Je vyzadovana stabilni pokojova teplota 21-26C a pevna podlozka." # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Statistika " +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "Tiskove platy" + # MSG_STEPPER_TOO_HIGH #: stepper.cpp:345 msgid "Steprate too high: " msgstr "Krokovani prilis vysoko:" # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "Zastavit tisk" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "ZASTAVENO." # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "Podpora" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Prohozene" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "Tepl. kal. " # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5581 msgid "Temp. cal. [on]" msgstr "Tepl. kal. [zap]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5579 msgid "Temp. cal. [off]" msgstr "Tepl. kal. [vyp]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5675 msgid "Temp. calibration" msgstr "Teplot. kalibrace" # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5548 msgid "Temperature" msgstr "Teplota" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3864 msgid "Temperature calibration failed" msgstr "Teplotni kalibrace selhala" @@ -1923,12 +2208,12 @@ msgid "Temperature calibration has not been run yet" msgstr "Tiskarna nebyla teplotne zkalibrovana" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "Teplotni kalibrace dokoncena a je nyni aktivni. Teplotni kalibraci je mozno deaktivovat v menu Nastaveni->Tepl. kal." # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2144 msgid "Temperatures" msgstr "Teploty" @@ -1938,27 +2223,27 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace." # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2217 msgid "to load filament" msgstr "k zavedeni filamentu" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2221 msgid "to unload filament" msgstr "k vyjmuti filamentu" # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1829 msgid "Total" msgstr "Celkem" # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "Total failures" msgstr "Celkem selhani" # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2860 msgid "Total filament" msgstr "Filament celkem" @@ -1968,7 +2253,7 @@ msgid "Total filament :" msgstr "Filament celkem :" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2860 msgid "Total print time" msgstr "Celkovy cas tisku" @@ -1983,17 +2268,17 @@ msgid "TRIGGERED" msgstr "AKTIVNI" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6641 msgid "Tune" msgstr "Ladit" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2120 msgid "unknown" msgstr "neznamy" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Unload" msgstr "Vysunout" @@ -2003,7 +2288,7 @@ msgid "Unload all" msgstr "Vyjmout vse" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "Vyjmout filament" @@ -2028,22 +2313,22 @@ msgid "Unload filament 4" msgstr "Vyjmout filam. 4" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Vysouvam filament" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4779 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Pouzijte vyjmout pro odstraneni filamentu 1 pokud presahuje z PTFE trubicky za tiskarnou. Pouzijte vysunout, pokud neni videt." # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5803 msgid "Used during print" msgstr "Pouzite behem tisku" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2147 msgid "Voltages" msgstr "Napeti" @@ -2053,32 +2338,37 @@ msgid "volume.init failed" msgstr "volume.init selhalo" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5225 msgid "Wait for user..." msgstr "Ceka se na uzivatele..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3371 msgid "Waiting for nozzle and bed cooling" msgstr "Cekani na zchladnuti trysky a podlozky." # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3335 msgid "Waiting for PINDA probe cooling" msgstr "Cekani na zchladnuti PINDA" +# MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 +#: +msgid "WARNING:\nCrash detection\ndisabled in\nStealth mode" +msgstr "VAROVANI: Crash detekce je zakazana v Tichem rezimu" + # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1527 msgid "Warning: both printer type and motherboard type changed." msgstr "Varovani: doslo ke zmene typu tiskarny a motherboardu." # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1519 msgid "Warning: motherboard type changed." msgstr "Varovani: doslo ke zmene typu motherboardu." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1523 msgid "Warning: printer type changed." msgstr "Varovani: doslo ke zmene typu tiskarny." @@ -2088,17 +2378,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!" msgstr "VAROVANI: Neznama, nepodporovana verze firmware. Pouziti na vlastni nebezpeci!" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3072 msgid "Was filament unload successful?" msgstr "Bylo vysunuti filamentu uspesne?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Chyba zapojeni" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5642 msgid "Wizard" msgstr "Pruvodce" @@ -2117,23 +2407,28 @@ msgstr "Zapis do souboru:" msgid "X-correct" msgstr "Korekce X" +# +#: ultralcd.cpp:5028 +msgid "X-correct:" +msgstr "Korekce X" + # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2136 msgid "XYZ cal. details" msgstr "Detaily XYZ kal." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3832 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "Kalibrace XYZ v poradku. X/Y osy mirne zkosene. Dobra prace!" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3813 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu." @@ -2143,17 +2438,17 @@ msgid "XYZ calibration compromised. Left front calibration point not reachable." msgstr "Kalibrace XYZ nepresna. Levy predni bod moc vpredu." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3795 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3801 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu." @@ -2168,17 +2463,17 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "Kalibrace XYZ selhala. Nahlednete do manualu." # -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu." # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3829 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "Kalibrace XYZ v poradku. X/Y osy jsou kolme. Gratuluji!" # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2965 msgid "Y distance from min" msgstr "Y vzdalenost od min" @@ -2192,8 +2487,13 @@ msgstr "Y vzdalenost od min:" msgid "Y-correct" msgstr "Korekce Y" +# +#: ultralcd.cpp:5029 +msgid "Y-correct:" +msgstr "Korekce Y:" + # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Ano" @@ -2208,11 +2508,26 @@ msgid "You are using firmware beta version. This is development version. Using t msgstr "Pouzivate beta verzi firmwaru. Jedna se o vyvojovou verzi. Pouzivani teto verze firmware neni doporuceno a muze zpusobit poskozeni tiskarny." # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "Pruvodce muzete kdykoliv znovu spustit z menu Kalibrace -> Pruvodce" +# +#: ultralcd.cpp:5030 +msgid "Z-correct:" +msgstr "Korekce Z:" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "Pocet mereni Z [1]" + +# +#: ultralcd.cpp:6954 +msgid "Z-probe nr. [3]" +msgstr "Pocet mereni Z [3]" + # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3024 msgid "[0;0] point offset" msgstr "[0;0] odsazeni bodu" diff --git a/lang/po/new/de.po b/lang/po/new/de.po index c5288b839..110aea5eb 100644 --- a/lang/po/new/de.po +++ b/lang/po/new/de.po @@ -17,6 +17,11 @@ msgstr "\e[2JCrash Erkennung kann\e[1;0Hnur im Modus Normal\e[2;0Hgenutzt werden msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode" msgstr "\e[2JWARNUNG:\e[1;0HCrash Erkennung\e[2;0Hdeaktiviert im\e[3;0HStealth Modus" +# +#: ultralcd.cpp:3913 +msgid " 1" +msgstr " 1" + # MSG_PLANNER_BUFFER_BYTES #: Marlin_main.cpp:1184 msgid " PlannerBufferBytes: " @@ -48,10 +53,15 @@ msgid " of 4" msgstr " von 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr " von 9" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr "[aus]" + # MSG_FACTOR #: ultralcd.cpp:6008 msgid " \002 Fact" @@ -68,7 +78,7 @@ msgid " \002 Min" msgstr " \002 Min" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2294 msgid ">Cancel" msgstr ">Abbruch" @@ -77,33 +87,38 @@ msgstr ">Abbruch" msgid "Adjusting Z" msgstr "Z wurde eingestellt" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3144 +msgid "Adjusting Z:" +msgstr "Z Anpassen:" + # MSG_ALL c=19 r=1 #: messages.c:11 msgid "All" msgstr "Alle" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Alles richtig " # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "Alles abgeschlossen. Viel Spass beim Drucken!" # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1979 msgid "Ambient" msgstr "Raumtemp." # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2573 msgid "and press the knob" msgstr "und Knopf druecken" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3442 msgid "Are left and right Z~carriages all up?" msgstr "Sind linke+rechte Z- Schlitten ganz oben?" @@ -133,27 +148,27 @@ msgid "Auto home" msgstr "Startposition" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6731 msgid "AutoLoad filament" msgstr "Auto-Laden Filament" # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4375 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "Automatisches Laden Filament nur bei einge schaltetem Filament- sensor verfuegbar..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2768 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..." # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Achse" # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Achsenlaenge" @@ -167,13 +182,18 @@ msgstr "Babystepping X" msgid "Babystepping Y" msgstr "Babystepping Y" +# +#: messages.c:57 +msgid "Back" +msgstr "Zurueck" + # MSG_BED #: messages.c:15 msgid "Bed" msgstr "Bett" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Bett / Heizung" @@ -188,7 +208,7 @@ msgid "Bed Heating" msgstr "Bett aufwaermen" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5663 msgid "Bed level correct" msgstr "Ausgleich Bett ok" @@ -213,17 +233,17 @@ msgid "Begin file list" msgstr "Beginn Dateiliste" # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2007 msgid "Belt status" msgstr "Gurtstatus" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "Stromausfall! Druck wiederherstellen?" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4566 msgid "Calibrate" msgstr "Kalibrieren" @@ -233,7 +253,7 @@ msgid "Calibrate E" msgstr "Kalibrierung E" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5652 msgid "Calibrate XYZ" msgstr "Kalibrierung XYZ" @@ -243,12 +263,12 @@ msgid "Calibrate Z" msgstr "Kalibrierung Z" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" msgstr "Kalibriere Start" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "XYZ Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken." @@ -258,22 +278,22 @@ msgid "Calibrating Z" msgstr "Kalibrierung Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Z Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken." # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "Kalibrierung" # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:832 msgid "Calibration done" msgstr "Kalibrierung OK" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Cancel" msgstr "Abbruch" @@ -293,7 +313,7 @@ msgid "Card inserted" msgstr "SD Karte eingesetzt" # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "SD Karte entfernt" @@ -313,12 +333,12 @@ msgid "Change SD card" msgstr "Wechsel SD Karte" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2584 msgid "Change success!" msgstr "Wechsel erfolgr.!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2661 msgid "Changed correctly?" msgstr "Wechsel ok?" @@ -328,40 +348,45 @@ msgid "Changing filament!" msgstr "Filament-Wechsel!" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Pruefe Bett " # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Pruefe Endschalter" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Pruefe Duese " # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Pruefe Sensoren " # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Pruefe X Achse " # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Pruefe Y Achse " # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Pruefe Z Achse " +# +#: ultralcd.cpp:5537 +msgid "Checks" +msgstr "Checks" + # MSG_ERR_CHECKSUM_MISMATCH #: cmdqueue.cpp:444 msgid "checksum mismatch, Last Line: " @@ -378,7 +403,7 @@ msgid "Choose filament:" msgstr "Waehle Filament:" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2673 msgid "Color not correct" msgstr "Falsche Farbe" @@ -393,12 +418,12 @@ msgid "Copy selected language from XFLASH?" msgstr "Gewaehlte Sprache vom Xflash kopieren?" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4499 msgid "Copy selected language?" msgstr "Gewaehlte Sprache kopieren?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Crash" msgstr "Crash" @@ -423,22 +448,27 @@ msgid "Crash detected." msgstr "Crash erkannt." # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:618 msgid "Crash detected. Resume print?" msgstr "Crash erkannt. Druck fortfuehren?" +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +msgid "Crash detection can\nbe turned on only in\nNormal mode" +msgstr "Crash-Erkennung\nkann nur im Normal\nModus erfolgen" + # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5804 msgid "Current" msgstr "Aktuelles" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2106 msgid "Date:" msgstr "Datum:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5552 msgid "Disable steppers" msgstr "Motoren aus" @@ -448,7 +478,7 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "Der Abstand zwischen der Spitze der Duese und dem Bett ist noch nicht eingestellt. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Erste Schicht Kalibrierung." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4968 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "Moechten Sie den letzten Schritt wiederholen, um den Abstand zwischen Duese und Druckbett neu einzustellen?" @@ -462,13 +492,18 @@ msgstr "E-Kalibrierung beendet. Bitte reinigen Sie die Duese. Klicken wenn ferti msgid "E-correct" msgstr "E-Korrektur" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5032 +msgid "E-correct:" +msgstr "E-Korrektur:" + # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Eject" msgstr "Auswurf" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "Filamentauswurf" @@ -498,7 +533,7 @@ msgid "Eject filament 5" msgstr "Fil.5 auswerfen" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1435 msgid "Ejecting filament" msgstr "werfe Filament aus" @@ -508,17 +543,17 @@ msgid "End file list" msgstr "Ende Dateiliste" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "Endanschlag" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Ende nicht getroffen" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "Endschalter" @@ -538,7 +573,7 @@ msgid "enqueing \"" msgstr "In Warteschlange \"" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Fehler - statischer Speicher wurde ueberschrieben" @@ -553,7 +588,7 @@ msgid "ERROR:" msgstr "FEHLER:" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4388 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen." @@ -588,17 +623,17 @@ msgid "Extruder 4" msgstr "Extruder 4" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Extruder Luefter:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2137 msgid "Extruder info" msgstr "Extruder Info" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5066 msgid "F. autoload [on]" msgstr "F.Autoladen [an]" @@ -608,37 +643,42 @@ msgid "F. autoload [N/A]" msgstr "F. Autoload [nv]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5068 msgid "F. autoload [off]" msgstr "F. Autoload [aus]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" msgstr "Fehlerstatistik" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" msgstr "MMU-Fehler" +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "Falschtriggerung" + # MSG_FAN_SPEED c=14 #: messages.c:31 msgid "Fan speed" msgstr "Luefter-Tempo" # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Lueftertest" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5561 msgid "Fans check [on]" msgstr "Luefter Chk. [an]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5563 msgid "Fans check [off]" msgstr "Luefter Chk.[aus]" @@ -653,7 +693,7 @@ msgid "Fil. sensor response is poor, disable it?" msgstr "Fil. Sensorsignal ist schlecht, ausschalten?" # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5046 msgid "Fil. sensor [N/A]" msgstr "Fil. Sensor [nv]" @@ -663,7 +703,7 @@ msgid "Fil. sensor [off]" msgstr "Fil. Sensor [aus]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Filam. runouts" msgstr "Filam. Maengel" @@ -678,12 +718,12 @@ msgid "Filament extruding & with correct color?" msgstr "Filament extrudiert + richtige Farbe?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2669 msgid "Filament not loaded" msgstr "Fil. nicht geladen" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Filamentsensor" @@ -693,7 +733,7 @@ msgid "Filament sensor:" msgstr "Filamentsensor:" # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2838 msgid "Filament used" msgstr "Filament benutzt" @@ -703,7 +743,7 @@ msgid "Filament used: " msgstr "Filamentverbrauch: " # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "Datei unvollstaendig Trotzdem fortfahren?" @@ -717,53 +757,103 @@ msgstr "Datei geoeffnet: " msgid "File selected" msgstr "Datei ausgewaehlt" +# +#: ultralcd.cpp:3943 +msgid "FINDA:" +msgstr "FINDA:" + # MSG_FINISHING_MOVEMENTS c=20 r=1 #: messages.c:40 msgid "Finishing movements" msgstr "Bewegung beenden" +# +#: ultralcd.cpp:5443 +msgid "Firmware [none]" +msgstr "Firmware [ohne]" + +# +#: ultralcd.cpp:5446 +msgid "Firmware [warn]" +msgstr "Firmware [warn]" + +# +#: ultralcd.cpp:5449 +msgid "Firmware [strict]" +msgstr "Firmware [streng]" + # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Erste-Schicht Kal." # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4880 msgid "First, I will run the selftest to check most common assembly problems." msgstr "Zunaechst fuehre ich den Selbsttest durch, um die haeufigsten Probleme beim Zusammenbau zu ueberpruefen." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU." # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Durchfluss" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2099 msgid "forum.prusa3d.com" msgstr "forum.prusa3d.com" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Vorderer Luefter?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3217 msgid "Front side[um]" msgstr "Vorne [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Vorderer/linke Luefter" +# +#: util.cpp:510 +msgid "G-code sliced for a different level. Continue?" +msgstr "G-Code ist für einen anderen Level geslict. Fortfahren?" + +# +#: util.cpp:516 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "G-Code ist für einen anderen Level geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen." + +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "G-Code ist für einen anderen Drucker geslict. Fortfahren?" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "G-Code ist für einen anderen Drucker geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen." + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "G-Code ist für eine neuere Firmware geslict. Fortfahren?" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "G-Code ist für eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen." + # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Heizung/Thermistor" @@ -773,7 +863,7 @@ msgid "Heating" msgstr "Aufwaermen" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8411 msgid "Heating disabled by safety timer." msgstr "Heizung durch Sicherheitstimer deaktiviert." @@ -783,27 +873,32 @@ msgid "Heating done." msgstr "Aufwaermen OK." # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4859 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Hallo, ich bin Ihr Original Prusa i3 Drucker. Moechten Sie, dass ich Sie durch den Einrich- tungsablauf fuehre?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2100 msgid "howto.prusa3d.com" msgstr "howto.prusa3d.com" +# +#: messages.c:87 +msgid "HW Setup" +msgstr "HW Einstellungen" + # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4889 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Ich werde jetzt die XYZ-Kalibrierung durchfuehren. Es wird ca. 12 Minuten dauern." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4897 msgid "I will run z calibration now." msgstr "Ich werde jetzt die Z Kalibrierung durchfuehren." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4962 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "Ich werde jetzt eine Linie drucken. Waehrend des Druckes koennen Sie die Duese allmaehlich senken, indem Sie den Knopf drehen, bis Sie die optimale Hoehe erreichen. Sehen Sie sich die Bilder in unserem Handbuch im Kapitel Kalibrierung an." @@ -813,7 +908,7 @@ msgid "Improving bed calibration point" msgstr "Verbessere Bett Kalibrierpunkt" # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Infoanzeige" @@ -823,7 +918,7 @@ msgid "Init. SD card" msgstr "Init. SD Karte" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2569 msgid "Insert filament" msgstr "Filament einlegen" @@ -848,27 +943,32 @@ msgid "Insert filament into extruder 4. Click when done." msgstr "Filament in Extruder 4 einlegen. Klicken wenn fertig." # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:3947 +msgid "IR:" +msgstr "IR:" + +# +#: ultralcd.cpp:4922 msgid "Is filament 1 loaded?" msgstr "Wurde Filament 1 geladen?" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4925 msgid "Is filament loaded?" msgstr "Ist das Filament geladen?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4956 msgid "Is it PLA filament?" msgstr "Ist es wirklich PLA Filament?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4701 msgid "Is PLA filament loaded?" msgstr "Ist PLA Filament geladen?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" msgstr "Liegt das Stahlblech auf dem Heizbett?" @@ -883,27 +983,27 @@ msgid "KILLED. " msgstr "ABGEBROCHEN. " # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1828 msgid "Last print" msgstr "Letzter Druck" # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1845 msgid "Last print failures" msgstr "Letzte Druckfehler" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2967 msgid "Left" msgstr "Links" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Linker Luefter?" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3215 msgid "Left side [um]" msgstr "Links [um]" @@ -913,7 +1013,7 @@ msgid "Left:" msgstr "Links:" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5575 msgid "Lin. correction" msgstr "Lineare Korrektur" @@ -923,7 +1023,7 @@ msgid "Live adjust Z" msgstr "Z einstellen" # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6059 msgid "Load all" msgstr "Alle laden" @@ -958,12 +1058,12 @@ msgid "Load filament 5" msgstr "Filament 5 laden" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6714 msgid "Load to nozzle" msgstr "In Druckduese laden" # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2609 msgid "Loading color" msgstr "Lade Farbe" @@ -973,7 +1073,7 @@ msgid "Loading filament" msgstr "Filament laedt" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Lose Riemenscheibe" @@ -993,7 +1093,7 @@ msgid "M109 Invalid extruder " msgstr "M109 Falscher Extruder " # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Erste-Schicht Kal." @@ -1012,8 +1112,23 @@ msgstr "M218 Falscher Extruder " msgid "M221 Invalid extruder " msgstr "M221 Falscher Extruder " +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "Magnet Komp. [An]" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "Magnet Komp. [nv]" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "Magnet Komp.[Aus]" + # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Hauptmenue" @@ -1023,7 +1138,7 @@ msgid "Mark filament 100mm from extruder body. Click when done." msgstr "Filament 100mm vom Extrudergehaeuse markieren. Klicken wenn Fertig." # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3002 msgid "Measured skew" msgstr "Schraeglauf" @@ -1033,117 +1148,172 @@ msgid "Measured skew:" msgstr "Schraeglauf:" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Messen der Referenzhoehe des Kalibrierpunktes" +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "Mesh [3x3]" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "Mesh [7x7]" + # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5658 msgid "Mesh Bed Leveling" msgstr "Mesh Bett Ausgleich" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:5572 +msgid "Mesh bed leveling" +msgstr "Mesh Bett Ausgleich" + +# +#: Marlin_main.cpp:881 +msgid "MK3 firmware detected on MK3S printer" +msgstr "MK3-Firmware auf MK3S-Drucker erkannt" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "MK3S-Firmware auf MK3-Drucker erkannt" + +# +#: ultralcd.cpp:1845 msgid "MMU fails" msgstr "MMU Fehler" # -#: mmu.cpp:1399 +#: mmu.cpp:1617 msgid "MMU load failed " msgstr "MMU Ladefehler" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1845 msgid "MMU load fails" msgstr "MMU Ladefehler" # -#: mmu.cpp:635 +#: ultralcd.cpp:5204 +msgid "MMU Mode [Normal]" +msgstr "MMU Modus[Normal]" + +# +#: ultralcd.cpp:5205 +msgid "MMU Mode[Stealth]" +msgstr "MMU Modus[Stealth]" + +# +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "MMU erfordert Benutzereingriff." # MSG_MMU_NEEDS_ATTENTION c=20 r=4 #: mmu.cpp:359 msgid "MMU needs user attention. Fix the issue and then press button on MMU unit." -msgstr "MMU hat eine Störung. Beseitigen Sie das Problem und drücken Sie den Knopf an der MMU." +msgstr "MMU hat eine Stoerung. Beseitigen Sie das Problem und druecken Sie den Knopf an der MMU." # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Position wiederherstellen... " # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Temperatur wiederherstellen..." # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Weiterdrucken..." # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "MMU power fails" msgstr "MMU Netzfehler" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2112 msgid "MMU2 connected" msgstr "MMU2 verbunden" # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "Modus [Normal]" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Modus [leise]" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" msgstr "Modus [Stealth]" +# +#: ultralcd.cpp:4424 +msgid "Mode change in progress ..." +msgstr "Moduswechsel erfolgt..." + # MSG_AUTO_MODE_ON #: messages.c:12 msgid "Mode [auto power]" msgstr "Modus[Auto Power]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "Modus[Hohe Leist]" +# +#: ultralcd.cpp:5404 +msgid "Model [none]" +msgstr "Modell [ohne]" + +# +#: ultralcd.cpp:5407 +msgid "Model [warn]" +msgstr "Modell [warn]" + +# +#: ultralcd.cpp:5410 +msgid "Model [strict]" +msgstr "Modell [streng]" + # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "Motor" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5550 msgid "Move axis" msgstr "Achse bewegen" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4291 msgid "Move X" msgstr "Bewege X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4292 msgid "Move Y" msgstr "Bewege Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4293 msgid "Move Z" msgstr "Bewege Z" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2973 msgid "N/A" msgstr "N.V." @@ -1153,7 +1323,7 @@ msgid "New firmware version available:" msgstr "Neue Firmware- Version verfuegbar:" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "Nein" @@ -1168,12 +1338,12 @@ msgid "No Checksum with line number, Last Line: " msgstr "Keine Pruefsumme mit Zeilennummer, Letzte Zeile: " # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5254 msgid "No move." msgstr "Keine Bewegung." # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6694 msgid "No SD card" msgstr "Keine SD Karte" @@ -1183,37 +1353,67 @@ msgid "No thermistors - no temperature" msgstr "Keine Thermistoren - keine Temperatur" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "Nicht angeschlossen" # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Dreht sich nicht" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4961 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "Jetzt werde ich den Abstand zwischen Duesenspitze und Druckbett kalibrieren." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4905 msgid "Now I will preheat nozzle for PLA." msgstr "Jetzt werde ich die Duese fuer PLA vorheizen." # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4896 msgid "Now remove the test print from steel sheet." msgstr "Testdruck jetzt von Stahlblech entfernen." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Duese" # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:5319 +msgid "Nozzle [none]" +msgstr "Duese [ohne]" + +# +#: ultralcd.cpp:5322 +msgid "Nozzle [warn]" +msgstr "Duese [warn]" + +# +#: ultralcd.cpp:5325 +msgid "Nozzle [strict]" +msgstr "Duese [streng]" + +# +#: ultralcd.cpp:5365 +msgid "Nozzle d. [0.25]" +msgstr "Duese D. [0.25]" + +# +#: ultralcd.cpp:5368 +msgid "Nozzle d. [0.40]" +msgstr "Duese D. [0.40]" + +# +#: ultralcd.cpp:5371 +msgid "Nozzle d. [0.60]" +msgstr "Duese D. [0.60]" + +# +#: ultralcd.cpp:1787 msgid "Nozzle FAN" msgstr "Duesen Luefter" @@ -1238,7 +1438,7 @@ msgid "ok" msgstr "ok" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1535 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Alte Einstellungen gefunden. Standard PID, E-Steps u.s.w. werden gesetzt." @@ -1258,7 +1458,7 @@ msgid "openRoot failed" msgstr "Zugriff auf Hauptverzeichnis misslungen" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6657 msgid "Pause print" msgstr "Druck pausieren" @@ -1268,42 +1468,47 @@ msgid "Pick print" msgstr "Druck auswaehlen" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1613 msgid "PID cal. " msgstr "PID Kal. " # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1619 msgid "PID cal. finished" msgstr "PID Kalib. fertig" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5664 msgid "PID calibration" msgstr "PID Kalibrierung" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:862 msgid "PINDA Heating" msgstr "PINDA erwaermen" +# +#: ultralcd.cpp:3939 +msgid "PINDA:" +msgstr "PINDA:" + # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "Legen Sie ein Blatt Papier unter die Duese waehrend der Kalibrierung der ersten 4 Punkte. Wenn die Duese das Papier erfasst, den Drucker sofort ausschalten." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Bitte pruefe:" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Bitte lesen Sie unser Handbuch und beheben Sie das Problem. Fahren Sie dann mit dem Assistenten fort, indem Sie den Drucker neu starten." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4970 msgid "Please clean heatbed and then press the knob." msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf." @@ -1313,12 +1518,12 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber." # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4804 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "Legen Sie bitte PLA Filament in den Extruder und druecken Sie den Knopf, um es zu laden." # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4800 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Legen Sie bitte PLA Filament in den ersten Schlauch der MMU und druecken Sie den Knopf, um es zu laden." @@ -1328,52 +1533,52 @@ msgid "Please load PLA filament and then resume Wizard by rebooting the printer. msgstr "Bitte PLA-Filament\nladen und Assistent\nfortsetzen, indem\nSie den Drucker neu\nstarten." # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4706 msgid "Please load PLA filament first." msgstr "Bitte laden Sie zuerst PLA Filament." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3083 msgid "Please open idler and remove filament manually." msgstr "Bitte Spannrolle oeffnen und Fila- ment von Hand entfernen" # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "Bitte legen Sie das Stahlblech auf das Heizbett." # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Bitte druecken Sie den Knopf um das Filament zu entladen." # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Bitte ziehen Sie das Filament sofort heraus" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1441 msgid "Please remove filament and then press the knob." msgstr "Bitte Filament entfernen und dann den Knopf druecken" # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4895 msgid "Please remove shipping helpers first." msgstr "Bitte zuerst Transportsicherungen entfernen." # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "Bitte entfernen Sie das Stahlblech vom Heizbett." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4317 msgid "Please run XYZ calibration first." msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1360 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Bitte aktualisieren Sie die Firmware in der MMU2. Warte auf Reset." @@ -1383,12 +1588,12 @@ msgid "Please upgrade." msgstr "Bitte aktualisieren." # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Bitte warten" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Power failures" msgstr "Netzfehler" @@ -1398,27 +1603,37 @@ msgid "PowerUp" msgstr "Einschalten" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6644 msgid "Preheat" msgstr "Vorheizen" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Duese vorheizen!" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "Vorheizen der Duese. Bitte warten." # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2290 +msgid "Preheating to cut" +msgstr "Heizen zum Schnitt" + +# +#: ultralcd.cpp:2287 +msgid "Preheating to eject" +msgstr "Heizen zum Auswurf" + +# +#: ultralcd.cpp:2280 msgid "Preheating to load" msgstr "Heizen zum Laden" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2284 msgid "Preheating to unload" msgstr "Heizen zum Entladen" @@ -1428,27 +1643,27 @@ msgid "Prepare new filament" msgstr "Filam. bereithalten" # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10312 msgid "Press knob to preheat nozzle and continue." msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren." # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2210 msgid "Press the knob" msgstr "Knopf druecken" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Druecken Sie den Knopf um die Duesentemperatur wiederherzustellen" # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Druck abgebrochen" # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1789 msgid "Print FAN" msgstr "Druckluefter" @@ -1458,7 +1673,7 @@ msgid "Print FAN: " msgstr "Druckvent.: " # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "Druckvent.:" @@ -1468,12 +1683,12 @@ msgid "Print from SD" msgstr "Drucken von SD" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1080 msgid "Print paused" msgstr "Druck pausiert" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2838 msgid "Print time" msgstr "Druckzeit" @@ -1487,6 +1702,26 @@ msgstr "Druckzeit: " msgid "Printer disconnected" msgstr "Drucker getrennt" +# +#: util.cpp:473 +msgid "Printer FW version differs from the G-code. Continue?" +msgstr "Drucker FW-Version weicht vom G-Code ab. Fortfahren?" + +# +#: util.cpp:480 +msgid "Printer FW version differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Drucker FW-Version weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen." + +# +#: util.cpp:506 +msgid "Printer G-code level differs from the G-code. Continue?" +msgstr "Drucker G-Code Level unterscheidet sich vom G-Code. Fortfahren?" + +# +#: util.cpp:513 +msgid "Printer G-code level differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Der Drucker-G-Code Level unterscheidet sich vom G-Code. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen." + # MSG_ERR_KILLED #: Marlin_main.cpp:7547 msgid "Printer halted. kill() called!" @@ -1497,6 +1732,26 @@ msgstr "Printer gestoppt. kill() aufgerufen!" msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow." msgstr "Drucker wurde noch nicht kalibriert. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrie- rungsablauf." +# +#: util.cpp:423 +msgid "Printer model differs from the G-code. Continue?" +msgstr "Druckermodell unterscheidet sich vom G-Code. Fortfahren?" + +# +#: util.cpp:430 +msgid "Printer model differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Das Druckermodell unterscheidet sich vom G-Code. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen." + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Fortfahren?" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen." + # MSG_ERR_STOPPED #: messages.c:32 msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" @@ -1512,6 +1767,11 @@ msgstr "Prusa i3 MK2 bereit." msgid "Prusa i3 MK2.5 ready." msgstr "Prusa i3 MK2.5 bereit." +# +#: +msgid "Prusa i3 MK3 OK." +msgstr "Prusa i3 MK3 OK." + # WELCOME_MSG c=20 #: msgid "Prusa i3 MK3 ready." @@ -1523,17 +1783,17 @@ msgid "Prusa i3 MK3S OK." msgstr "Prusa i3 MK3S OK." # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2098 msgid "prusa3d.com" msgstr "prusa3d.com" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3218 msgid "Rear side [um]" msgstr "Hinten [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9712 msgid "Recovering print " msgstr "Druck wiederherst " @@ -1543,10 +1803,15 @@ msgid "Refresh" msgstr "Erneuern" # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Entfernen Sie das alte Filament und druecken Sie den Knopf, um das neue zu laden." +# +#: ultralcd.cpp:6605 +msgid "Rename" +msgstr "Umbenennen" + # MSG_M119_REPORT #: Marlin_main.cpp:5297 msgid "Reporting endstop status" @@ -1563,32 +1828,32 @@ msgid "Resend: " msgstr "Wiederholen: " # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3219 msgid "Reset" msgstr "Ruecksetzen" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5669 msgid "Reset XYZ calibr." msgstr "XYZ Kalibr. zuruecksetzen." # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6664 msgid "Resume print" msgstr "Druck fortsetzen" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "Druck fortgesetzt" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2968 msgid "Right" msgstr "Rechts" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3216 msgid "Right side[um]" msgstr "Rechts [um]" @@ -1603,22 +1868,22 @@ msgid "Rotate knob until mark reaches extruder body. Click when done." msgstr "Knopf drehen bis die Markierung das Extrudergehaeuse erreicht. Klicken wenn fertig." # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5587 msgid "RPi port [on]" msgstr "RPi Port [an]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5585 msgid "RPi port [off]" msgstr "RPi Port [aus]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4723 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5220 msgid "SD card [normal]" msgstr "SD Karte [normal]" @@ -1633,7 +1898,7 @@ msgid "SD card [FlshAir]" msgstr "SD Karte [FlashAir]" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5218 msgid "SD card [flshAir]" msgstr "SD Karte[flshAir]" @@ -1652,53 +1917,63 @@ msgstr "SD drucke Byte " msgid "Searching bed calibration point" msgstr "Suche Bett Kalibrierpunkt" +# +#: ultralcd.cpp:6601 +msgid "Select" +msgstr "Auswahl" + # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5594 msgid "Select language" msgstr "Waehle Sprache" # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4943 msgid "Select nozzle preheat temperature which matches your material." msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht." # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Select PLA filament:" msgstr "PLA Filament auswaehlen:" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "Selbsttest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Selbsttest start " # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5645 msgid "Selftest " msgstr "Selbsttest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Selbsttest Fehler!" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "Selbsttest misslung " # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1567 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Selbsttest im Gang, um die genaue Rueck- kehr zum Nullpunkt ohne Sensor zu kalibrieren" # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:2138 +msgid "Sensor info" +msgstr "Sensor Info" + +# +#: ultralcd.cpp:3938 msgid "Sensor state" msgstr "Sensorstatus" @@ -1708,17 +1983,17 @@ msgid "Sensors info" msgstr "Sensoren Info" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3227 msgid "Set temperature:" msgstr "Temp. einstellen:" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Einstellungen" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3005 msgid "Severe skew" msgstr "Schwerer Schraeglauf" @@ -1727,8 +2002,13 @@ msgstr "Schwerer Schraeglauf" msgid "Severe skew:" msgstr "Schwerer Verzug:" +# +#: messages.c:58 +msgid "Sheet" +msgstr "Blech" + # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5666 msgid "Show end stops" msgstr "Endschalter Status" @@ -1743,7 +2023,7 @@ msgid "Sleep..." msgstr "Schlafzustand..." # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3004 msgid "Slight skew" msgstr "Leichter Schraeglauf" @@ -1753,15 +2033,30 @@ msgid "Slight skew:" msgstr "Etwas verzogen:" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100." # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4833 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Fehler aufgetreten, Z-Kalibrierung erforderlich..." +# MSG_SORT_NONE c=17 r=1 +#: ultralcd.cpp:5230 +msgid "Sort [none]" +msgstr "Sort. [ohne]" + +# MSG_SORT_TIME c=17 r=1 +#: ultralcd.cpp:5228 +msgid "Sort [time]" +msgstr "Sort. [Zeit]" + +# MSG_SORT_ALPHA c=17 r=1 +#: ultralcd.cpp:5229 +msgid "Sort [alphabet]" +msgstr "Sort. [Alphabetisch]" + # MSG_SORT_NONE c=17 r=1 #: ultralcd.cpp:4250 msgid "Sort: [None]" @@ -1803,117 +2098,132 @@ msgid "Sort: [time]" msgstr "Sort.: [Zeit]" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Sortiere Dateien" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "Sound [laut]" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "Sound [stumm]" # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "Sound [einmal]" +# +#: +msgid "Sound [assist]" +msgstr "Sound [assist]" + +# +#: sound.h:9 +msgid "Sound [blind]" +msgstr "Sound [blind]" + # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "Sound [leise]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Geschwindigkeit" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Dreht sich" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5098 msgid "SpoolJoin [on]" msgstr "SpoolJoin [an]" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5094 msgid "SpoolJoin [N/A]" msgstr "SpoolJoin [N/V]" # MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +#: ultralcd.cpp:5102 msgid "SpoolJoin [off]" msgstr "SpoolJoin [aus]" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4330 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Stabile Umgebungs- temperatur 21-26C und feste Stand- flaeche erforderlich" # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Statistiken " +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "Stahlbleche" + # MSG_STEPPER_TOO_HIGH #: stepper.cpp:345 msgid "Steprate too high: " msgstr "Schrittrate zu hoch: " # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "Druck abbrechen" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "GESTOPPT. " # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "Support" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Ausgetauscht" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "Temp Kalib. " # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5581 msgid "Temp. cal. [on]" msgstr "Temp. Kal. [AN]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5579 msgid "Temp. cal. [off]" msgstr "Temp. Kal. [AUS]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5675 msgid "Temp. calibration" msgstr "Temp. kalibrieren" # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5548 msgid "Temperature" msgstr "Temperatur" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3864 msgid "Temperature calibration failed" msgstr "Temperaturkalibrierung fehlgeschlagen" @@ -1923,12 +2233,12 @@ msgid "Temperature calibration has not been run yet" msgstr "Temperatur wurde\nnoch nicht\nkalibriert" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "Temp.kalibrierung ist fertig + aktiv. Temp.kalibrierung kann ausgeschaltet werden im Menu Einstellungen -> Temp.kal." # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2144 msgid "Temperatures" msgstr "Temperaturen" @@ -1938,27 +2248,27 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "Es ist noch notwendig die Z-Kalibrierung auszufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf." # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2217 msgid "to load filament" msgstr "zum Filament laden" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2221 msgid "to unload filament" msgstr "zum Filament entladen" # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1829 msgid "Total" msgstr "Gesamt" # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "Total failures" msgstr "Gesamte Fehler" # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2860 msgid "Total filament" msgstr "Gesamtes Filament" @@ -1968,7 +2278,7 @@ msgid "Total filament :" msgstr "Gesamtes Filament:" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2860 msgid "Total print time" msgstr "Gesamte Druckzeit" @@ -1983,17 +2293,17 @@ msgid "TRIGGERED" msgstr "AUSGELOEST" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6641 msgid "Tune" msgstr "Feineinstellung" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2120 msgid "unknown" msgstr "unbekannt" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Unload" msgstr "Entladen" @@ -2003,7 +2313,7 @@ msgid "Unload all" msgstr "Alles entladen" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "Filament entladen" @@ -2028,22 +2338,22 @@ msgid "Unload filament 4" msgstr "Filam. 4 entladen" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Filament auswerfen" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4779 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Entladen Sie das Filament 1, wenn er aus dem hinteren MMU-Rohr herausragt. Verwenden Sie den Auswurf, wenn er im Rohr versteckt ist." # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5803 msgid "Used during print" msgstr "Beim Druck benutzt" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2147 msgid "Voltages" msgstr "Spannungen" @@ -2053,32 +2363,37 @@ msgid "volume.init failed" msgstr "Dateisystem Init fehlerhaft" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5225 msgid "Wait for user..." msgstr "Warte auf Benutzer.." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3371 msgid "Waiting for nozzle and bed cooling" msgstr "Warten bis Heizung und Bett abgekuehlt sind" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3335 msgid "Waiting for PINDA probe cooling" msgstr "Warten, bis PINDA- Sonde abgekuehlt ist" +# MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 +#: +msgid "WARNING:\nCrash detection\ndisabled in\nStealth mode" +msgstr "WARNUNG:\nCrash-Erkennung\nim Stealth Modus\nausgeschaltet" + # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1527 msgid "Warning: both printer type and motherboard type changed." msgstr "Warnung: Druckertyp und Platinentyp wurden beide geaendert." # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1519 msgid "Warning: motherboard type changed." msgstr "Warnung: Platinentyp wurde geaendert." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1523 msgid "Warning: printer type changed." msgstr "Warnung: Druckertyp wurde geaendert." @@ -2088,17 +2403,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!" msgstr "WARNUNG: Dies ist\neine inoffizielle,\nnicht unterstuetzte\nVersion. Benutzung\nauf eigene Gefahr!" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3072 msgid "Was filament unload successful?" msgstr "Konnten Sie das Filament entnehmen?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Verdrahtungsfehler" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5642 msgid "Wizard" msgstr "Assistent" @@ -2117,23 +2432,28 @@ msgstr "Schreibe in Datei: " msgid "X-correct" msgstr "X-Korrektur" +# +#: ultralcd.cpp:5028 +msgid "X-correct:" +msgstr "X-Korrektur:" + # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2136 msgid "XYZ cal. details" msgstr "XYZ Kal. Details" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "XYZ Kalibrierung in Ordnung. Schraeglauf wird automatisch korrigiert." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3832 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3813 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichbar." @@ -2143,17 +2463,17 @@ msgid "XYZ calibration compromised. Left front calibration point not reachable." msgstr "XYZ-Kalibrierung beeintraechtigt. Linker vorderer Kalibrierpunkt nicht erreichbar." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar." # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3795 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "XYZ-Kalibrierung fehlgeschlagen. Bett-Kalibrierpunkt nicht gefunden." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3801 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte nicht erreichbar." @@ -2168,17 +2488,17 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "XYZ-Kalibrierung fehlgeschlagen. Bitte schauen Sie in das Handbuch." # -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar." # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3829 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glueckwunsch!" # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2965 msgid "Y distance from min" msgstr "Y Entfernung vom Min" @@ -2192,8 +2512,13 @@ msgstr "Y Entfernung vom Min:" msgid "Y-correct" msgstr "Y-Korrektur" +# +#: ultralcd.cpp:5029 +msgid "Y-correct:" +msgstr "Y-Korrektur:" + # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Ja" @@ -2208,11 +2533,26 @@ msgid "You are using firmware beta version. This is development version. Using t msgstr "Sie benutzen eine\nBeta Firmware\nVersion. Dies ist\neine Entwicklungs-\nversion. Die Ver-\nwendung ist nicht\nempfohlen und kann\nzu Schaeden fuehren." # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "Sie koennen den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent" +# +#: ultralcd.cpp:5030 +msgid "Z-correct:" +msgstr "Z-Korrektur:" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "Z-Probe Nr. [1]" + +# +#: ultralcd.cpp:6954 +msgid "Z-probe nr. [3]" +msgstr "Z-Probe Nr. [3]" + # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3024 msgid "[0;0] point offset" msgstr "[0;0] Punktversatz" diff --git a/lang/po/new/es.po b/lang/po/new/es.po index 9ceb0eefc..8f4d21b54 100644 --- a/lang/po/new/es.po +++ b/lang/po/new/es.po @@ -17,6 +17,11 @@ msgstr "\e[2JDec. choque\e[1;0Hpuede ser activada solo en\e[2;0HModo normal" msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode" msgstr "\e[2JATENCION:\e[1;0HDec. choque\e[2;0Hdesactivada en\e[3;0HModo silencio" +# +#: ultralcd.cpp:3913 +msgid " 1" +msgstr " 1" + # MSG_PLANNER_BUFFER_BYTES #: Marlin_main.cpp:1184 msgid " PlannerBufferBytes: " @@ -48,10 +53,15 @@ msgid " of 4" msgstr " de 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr " de 9" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr " [apagado]" + # MSG_FACTOR #: ultralcd.cpp:6008 msgid " \002 Fact" @@ -68,7 +78,7 @@ msgid " \002 Min" msgstr " \002 Min" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2294 msgid ">Cancel" msgstr ">Cancelar" @@ -77,33 +87,38 @@ msgstr ">Cancelar" msgid "Adjusting Z" msgstr "Ajustar Z" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3144 +msgid "Adjusting Z:" +msgstr "Ajustando Z:" + # MSG_ALL c=19 r=1 #: messages.c:11 msgid "All" msgstr "Todos" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Todo bien" # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "Terminado! Feliz impresion!" # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1979 msgid "Ambient" msgstr "Ambiente" # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2573 msgid "and press the knob" msgstr "Haz clic" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3442 msgid "Are left and right Z~carriages all up?" msgstr "Carros Z izq./der. estan arriba maximo?" @@ -115,17 +130,17 @@ msgstr "Ajustar Eje Z" # MSG_AUTO_DEPLETE_ON c=17 r=1 #: ultralcd.cpp:4706 msgid "Auto deplete [on]" -msgstr "Auto desplegar[on]" +msgstr "Auto agotar[on]" # #: ultralcd.cpp:4702 msgid "Auto deplete[N/A]" -msgstr "Auto desplegar[N/A]" +msgstr "Auto agotar[N/A]" # MSG_AUTO_DEPLETE_OFF c=17 r=1 #: ultralcd.cpp:4710 msgid "Auto deplete[off]" -msgstr "Auto desplegar[off]" +msgstr "Auto agotar[off]" # MSG_AUTO_HOME #: messages.c:11 @@ -133,27 +148,27 @@ msgid "Auto home" msgstr "Llevar al origen" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6731 msgid "AutoLoad filament" msgstr "Carga automatica de filamento" # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4375 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "La carga automatica de filamento solo funciona si el sensor de filamento esta activado..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2768 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "La carga automatica de filamento esta activada, pulse el dial e inserte el filamento..." # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Eje" # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Longitud del eje" @@ -167,13 +182,18 @@ msgstr "Micropasos X" msgid "Babystepping Y" msgstr "Micropasos Y" +# +#: messages.c:57 +msgid "Back" +msgstr "atras" + # MSG_BED #: messages.c:15 msgid "Bed" msgstr "Base calefactable " # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Base / Calentador" @@ -188,7 +208,7 @@ msgid "Bed Heating" msgstr "Calentando Base" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5663 msgid "Bed level correct" msgstr "Corr. de la cama" @@ -213,17 +233,17 @@ msgid "Begin file list" msgstr "Comienzo lista arch. " # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2007 msgid "Belt status" msgstr "Estado de la correa" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "Se fue la luz. ?Reanudar la impresion?" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4566 msgid "Calibrate" msgstr "Calibrar" @@ -233,7 +253,7 @@ msgid "Calibrate E" msgstr "Calibrar E" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5652 msgid "Calibrate XYZ" msgstr "Calibrar XYZ" @@ -243,12 +263,12 @@ msgid "Calibrate Z" msgstr "Calibrar Z" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" msgstr "Calibrando posicion inicial" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibrando XYZ. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic." @@ -258,22 +278,22 @@ msgid "Calibrating Z" msgstr "Calibrando Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibrando Z. Gira el dial para subir el extrusor hasta tocar los topes superiores. Despues haz clic." # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "Calibracion" # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:832 msgid "Calibration done" msgstr "Calibracion OK" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Cancel" msgstr "Cancelar" @@ -293,7 +313,7 @@ msgid "Card inserted" msgstr "Tarjeta insertada" # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "Tarjeta retirada" @@ -313,12 +333,12 @@ msgid "Change SD card" msgstr "Cambiar tarjeta SD" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2584 msgid "Change success!" msgstr "Cambio correcto" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2661 msgid "Changed correctly?" msgstr "Cambio correcto?" @@ -328,44 +348,49 @@ msgid "Changing filament!" msgstr "Cambiando filamento" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Control base cal." # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Control endstops" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Control fusor" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Comprobando los sensores" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Control sensor X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Control sensor Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Control sensor Z" +# +#: ultralcd.cpp:5537 +msgid "Checks" +msgstr "Comprobaciones" + # MSG_ERR_CHECKSUM_MISMATCH #: cmdqueue.cpp:444 msgid "checksum mismatch, Last Line: " -msgstr "inconcluencia checksum, Ult. Linea: " +msgstr "error de checksum, Ult. Linea: " # MSG_CHOOSE_EXTRUDER c=20 r=1 #: messages.c:49 @@ -378,7 +403,7 @@ msgid "Choose filament:" msgstr "Elije filamento:" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2673 msgid "Color not correct" msgstr "Color no homogeneo" @@ -393,12 +418,12 @@ msgid "Copy selected language from XFLASH?" msgstr "Copiar idioma seleccionado desde XFLASH?" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4499 msgid "Copy selected language?" msgstr "Copiar idioma seleccionado?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Crash" msgstr "Choque" @@ -423,22 +448,27 @@ msgid "Crash detected." msgstr "Choque detectado." # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:618 msgid "Crash detected. Resume print?" msgstr "Choque detectado. Continuar impresion?" +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +msgid "Crash detection can\nbe turned on only in\nNormal mode" +msgstr "Detect. choque solo\npuede activarse en\nmodo Normal" + # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5804 msgid "Current" msgstr "Actual" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2106 msgid "Date:" msgstr "Fecha:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5552 msgid "Disable steppers" msgstr "Apagar motores" @@ -448,7 +478,7 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "Distancia entre la punta del boquilla y la superficie de la base aun no fijada. Por favor siga el manual, capitulo Primeros Pasos, Calibracion primera capa." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4968 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "Quieres repetir el ultimo paso para reajustar la distancia boquilla-base?" @@ -462,13 +492,18 @@ msgstr "E calibrado. Limpia nozzle. Haz clic una vez terminado." msgid "E-correct" msgstr "E-correcion" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5032 +msgid "E-correct:" +msgstr "Correccion-E:" + # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Eject" msgstr "Expulsar" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "Expulsar filamento" @@ -498,7 +533,7 @@ msgid "Eject filament 5" msgstr "Expulsar filamento 5" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1435 msgid "Ejecting filament" msgstr "Expulsando filamento" @@ -508,17 +543,17 @@ msgid "End file list" msgstr "Fin lista arch. " # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "Endstop" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Endstop no alcanzado" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "Endstops" @@ -538,7 +573,7 @@ msgid "enqueing \"" msgstr "en cola \"" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Error - se ha sobre-escrito la memoria estatica" @@ -553,7 +588,7 @@ msgid "ERROR:" msgstr "ERROR:" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4388 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "ERROR: El sensor de filamento no responde, por favor comprueba la conexion." @@ -588,17 +623,17 @@ msgid "Extruder 4" msgstr "Extrusor 4" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Ventilador del extrusor:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2137 msgid "Extruder info" msgstr "Informacion del extrusor" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5066 msgid "F. autoload [on]" msgstr "Autocarg.Fil[act]" @@ -608,37 +643,42 @@ msgid "F. autoload [N/A]" msgstr "Autocarg.Fil[N/D]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5068 msgid "F. autoload [off]" msgstr "Autocarg.Fil[ina]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" msgstr "Estadistica de fallos" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" msgstr "Estadistica de fallos MMU" +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "Falsa activación" + # MSG_FAN_SPEED c=14 #: messages.c:31 msgid "Fan speed" msgstr "Velocidad Vent." # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Test ventiladores" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5561 msgid "Fans check [on]" msgstr "Comprob.vent[act]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5563 msgid "Fans check [off]" msgstr "Comprob.vent[ina]" @@ -653,7 +693,7 @@ msgid "Fil. sensor response is poor, disable it?" msgstr "La respuesta del sensor de fil es deficiente, ?desactivarlo?" # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5046 msgid "Fil. sensor [N/A]" msgstr "Sensor Fil. [N/D]" @@ -663,7 +703,7 @@ msgid "Fil. sensor [off]" msgstr "Sensor Fil. [ina]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Filam. runouts" msgstr "Filam. acabado" @@ -678,12 +718,12 @@ msgid "Filament extruding & with correct color?" msgstr "Es nitido el color nuevo?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2669 msgid "Filament not loaded" msgstr "Fil. no introducido" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Sensor de filamento" @@ -693,7 +733,7 @@ msgid "Filament sensor:" msgstr "Sensor de filamento:" # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2838 msgid "Filament used" msgstr "Filamento usado" @@ -703,7 +743,7 @@ msgid "Filament used: " msgstr "Filamento usado: " # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "Archivo incompleto. ?Continuar de todos modos?" @@ -717,53 +757,103 @@ msgstr "Arch. abierto: " msgid "File selected" msgstr "Arch. elegido" +# +#: ultralcd.cpp:3943 +msgid "FINDA:" +msgstr "FINDA:" + # MSG_FINISHING_MOVEMENTS c=20 r=1 #: messages.c:40 msgid "Finishing movements" msgstr "Term. movimientos" +# +#: ultralcd.cpp:5443 +msgid "Firmware [none]" +msgstr "Firmware [ninguno]" + +# +#: ultralcd.cpp:5446 +msgid "Firmware [warn]" +msgstr "Firmware [aviso]" + +# +#: ultralcd.cpp:5449 +msgid "Firmware [strict]" +msgstr "Firmware [estricto]" + # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Cal. primera cap." # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4880 msgid "First, I will run the selftest to check most common assembly problems." msgstr "Primero, hare el Selftest para comprobar los problemas de montaje mas comunes." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Corrige el problema y pulsa el boton en la unidad MMU." # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Flujo" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2099 msgid "forum.prusa3d.com" msgstr "forum.prusa3d.com" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Vent. frontal?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3217 msgid "Front side[um]" msgstr "Frontal [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Ventiladores frontal/izquierdo" +# +#: util.cpp:510 +msgid "G-code sliced for a different level. Continue?" +msgstr "Código G laminado para un nivel diferente. ¿Continuar?" + +# +#: util.cpp:516 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "Código G laminado para un nivel diferente. Por favor relamina el modelo de nuevo. Impresión cancelada." + +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "Código G laminado para un tipo de impresora diferente. ¿Continuar?" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "Código G laminado para una impresora diferente. Por favor relamina el modelo de nuevo. Impresión cancelada." + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "Código G laminado para nuevo firmware. ¿Continuar?" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "Código G laminado para nuevo firmware. Por favor actualiza el firmware. Impresión cancelada." + # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Calentador/Termistor" @@ -773,7 +863,7 @@ msgid "Heating" msgstr "Calentando..." # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8411 msgid "Heating disabled by safety timer." msgstr "Calentadores desactivados por el temporizador de seguridad." @@ -783,27 +873,32 @@ msgid "Heating done." msgstr "Calentamiento acabado." # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4859 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Hola, soy tu impresora Original Prusa i3. Quieres que te guie a traves de la configuracion?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2100 msgid "howto.prusa3d.com" msgstr "howto.prusa3d.com" +# +#: messages.c:87 +msgid "HW Setup" +msgstr "Configuracion HW" + # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4889 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Hare la calibracion XYZ. Tardara 12 min. aproximadamente." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4897 msgid "I will run z calibration now." msgstr "Voy a hacer Calibracion Z ahora." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4962 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "Voy a comenzar a imprimir la linea y tu bajaras el nozzle gradualmente al rotar el dial, hasta que llegues a la altura optima. Mira las imagenes del capitulo Calibracion en el manual." @@ -813,7 +908,7 @@ msgid "Improving bed calibration point" msgstr "Mejorando punto de calibracion base" # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Monitorizar" @@ -823,7 +918,7 @@ msgid "Init. SD card" msgstr "Iniciar tarj. SD" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2569 msgid "Insert filament" msgstr "Introducir filamento" @@ -848,29 +943,34 @@ msgid "Insert filament into extruder 4. Click when done." msgstr "Insertar filamento en el extrusor 4. Haz clic una vez terminado." # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:3947 +msgid "IR:" +msgstr "IR:" + +# +#: ultralcd.cpp:4922 msgid "Is filament 1 loaded?" msgstr "?Esta cargado el filamento 1?" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4925 msgid "Is filament loaded?" msgstr "Esta el filamento cargado?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4956 msgid "Is it PLA filament?" msgstr "Es el filamento PLA?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4701 msgid "Is PLA filament loaded?" msgstr "Esta el filamento PLA cargado?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" -msgstr "?Esta colocada la lamina de acero sobre la base?" +msgstr "¿Esta colocada la lamina de acero sobre la base?" # MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION c=20 #: mesh_bed_calibration.cpp:2223 @@ -883,27 +983,27 @@ msgid "KILLED. " msgstr "PARADA DE EMERGENCIA" # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1828 msgid "Last print" msgstr "Ultima impresion" # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1845 msgid "Last print failures" msgstr "Ultimas impresiones fallidas" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2967 msgid "Left" msgstr "Izquierda" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Vent. izquierdo?" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3215 msgid "Left side [um]" msgstr "Izquierda [um]" @@ -913,7 +1013,7 @@ msgid "Left:" msgstr "Izda:" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5575 msgid "Lin. correction" msgstr "Correccion de Linealidad" @@ -923,7 +1023,7 @@ msgid "Live adjust Z" msgstr "Micropaso Eje Z" # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6059 msgid "Load all" msgstr "Intr. todos fil." @@ -955,15 +1055,15 @@ msgstr "Introducir fil. 4" # MSG_LOAD_FILAMENT_5 c=17 #: ultralcd.cpp:5582 msgid "Load filament 5" -msgstr "Cargar filamento 5" +msgstr "Introducir fil. 5" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6714 msgid "Load to nozzle" msgstr "Cargar a la boquilla" # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2609 msgid "Loading color" msgstr "Cambiando color" @@ -973,7 +1073,7 @@ msgid "Loading filament" msgstr "Introduciendo filam." # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Polea suelta" @@ -993,7 +1093,7 @@ msgid "M109 Invalid extruder " msgstr "M109 Extrusor invalido" # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Cal. primera cap." @@ -1012,8 +1112,23 @@ msgstr "M218 Extrusor invalido" msgid "M221 Invalid extruder " msgstr "M221 Extrusor invalido" +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "Comp. imanes [On]" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "Comp. imanes [N/A]" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "Comp. imanes [Off]" + # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Menu principal" @@ -1023,7 +1138,7 @@ msgid "Mark filament 100mm from extruder body. Click when done." msgstr "Marque el filamento 100 mm por encima del final del extrusor. Haz clic una vez terminado." # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3002 msgid "Measured skew" msgstr "Desviacion medida:" @@ -1033,32 +1148,67 @@ msgid "Measured skew:" msgstr "Desviación medida:" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Midiendo altura del punto de calibracion" +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "Malla [3x3]" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "Malla [7x7]" + # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5658 msgid "Mesh Bed Leveling" msgstr "Nivelacion Mesh Level" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:5572 +msgid "Mesh bed leveling" +msgstr "Nivelacion Malla Base" + +# +#: Marlin_main.cpp:881 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Firmware MK3 detectado en impresora MK3S" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "Firmware MK3S detectado en impresora MK3" + +# +#: ultralcd.cpp:1845 msgid "MMU fails" msgstr "Fallos MMU" # -#: mmu.cpp:1399 +#: mmu.cpp:1617 msgid "MMU load failed " msgstr "Carga MMU fallida" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1845 msgid "MMU load fails" msgstr "Carga MMU falla" # -#: mmu.cpp:635 +#: ultralcd.cpp:5204 +msgid "MMU Mode [Normal]" +msgstr "Modo MMU [Normal]" + +# +#: ultralcd.cpp:5205 +msgid "MMU Mode[Stealth]" +msgstr "Modo MMU [Silencioso]" + +# +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "MMU necesita atencion del usuario." @@ -1068,82 +1218,102 @@ msgid "MMU needs user attention. Fix the issue and then press button on MMU unit msgstr "MMU necesita atencion del usuario. Corrija el problema y luego presione el boton en la unidad MMU." # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Restaurando posicion..." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Restaurando temperatura..." # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Resumiendo..." # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "MMU power fails" msgstr "Fallo de energia en MMU" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2112 msgid "MMU2 connected" msgstr "MMU2 conectado" # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "Modo [Normal]" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Modo [silencio]" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" msgstr "Modo [Silencio]" +# +#: ultralcd.cpp:4424 +msgid "Mode change in progress ..." +msgstr "Cambio de modo progresando ..." + # MSG_AUTO_MODE_ON #: messages.c:12 msgid "Mode [auto power]" msgstr "Modo[fuerza auto]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "Modo [rend.pleno]" +# +#: ultralcd.cpp:5404 +msgid "Model [none]" +msgstr "Modelo [ninguno]" + +# +#: ultralcd.cpp:5407 +msgid "Model [warn]" +msgstr "Modelo [aviso]" + +# +#: ultralcd.cpp:5410 +msgid "Model [strict]" +msgstr "Modelo [estricto]" + # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "Motor" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5550 msgid "Move axis" msgstr "Mover ejes" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4291 msgid "Move X" msgstr "Mover X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4292 msgid "Move Y" msgstr "Mover Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4293 msgid "Move Z" msgstr "Mover Z" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2973 msgid "N/A" msgstr "No disponible" @@ -1153,7 +1323,7 @@ msgid "New firmware version available:" msgstr "Nuevo firmware disponible:" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "No" @@ -1168,12 +1338,12 @@ msgid "No Checksum with line number, Last Line: " msgstr "Sin Checksum con linea numero, Ult. Linea: " # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5254 msgid "No move." msgstr "Sin movimiento" # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6694 msgid "No SD card" msgstr "No hay tarjeta SD" @@ -1183,37 +1353,67 @@ msgid "No thermistors - no temperature" msgstr "Sin termistores - sin temperatura" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "No hay conexion " # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Ventilador no gira" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4961 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "Voy a calibrar la distancia entre la punta de la boquilla y la superficie de la base." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4905 msgid "Now I will preheat nozzle for PLA." -msgstr "Voy a precalentar la boquilla para PLA ahora." +msgstr "Ahora precalentare la boquilla para PLA ." # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4896 msgid "Now remove the test print from steel sheet." msgstr "Ahora retira la prueba de la lamina de acero." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Boquilla" # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:5319 +msgid "Nozzle [none]" +msgstr "Nozzle [ninguno]" + +# +#: ultralcd.cpp:5322 +msgid "Nozzle [warn]" +msgstr "Nozzle [aviso]" + +# +#: ultralcd.cpp:5325 +msgid "Nozzle [strict]" +msgstr "Nozzle [estricto]" + +# +#: ultralcd.cpp:5365 +msgid "Nozzle d. [0.25]" +msgstr "Diam. nozzle [0.25]" + +# +#: ultralcd.cpp:5368 +msgid "Nozzle d. [0.40]" +msgstr "Diam. nozzle [0.40]" + +# +#: ultralcd.cpp:5371 +msgid "Nozzle d. [0.60]" +msgstr "Diam. nozzle [0.60]" + +# +#: ultralcd.cpp:1787 msgid "Nozzle FAN" msgstr "Ventilador de capa" @@ -1238,7 +1438,7 @@ msgid "ok" msgstr "ok" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1535 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Se han encontrado ajustes anteriores. Se ajustara el PID, los pasos del extrusor, etc" @@ -1258,7 +1458,7 @@ msgid "openRoot failed" msgstr "fallo openRoot " # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6657 msgid "Pause print" msgstr "Pausar impresion" @@ -1268,42 +1468,47 @@ msgid "Pick print" msgstr "Esc. Modelo Adecuado" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1613 msgid "PID cal. " msgstr "Cal. PID " # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1619 msgid "PID cal. finished" msgstr "Cal. PID terminada" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5664 msgid "PID calibration" msgstr "Calibracion PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:862 msgid "PINDA Heating" msgstr "Calentando PINDA" +# +#: ultralcd.cpp:3939 +msgid "PINDA:" +msgstr "PINDA:" + # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "Colocar una hoja de papel sobre la superficie de impresion durante la calibracion de los primeros 4 puntos. Si la boquilla mueve el papel, apagar impresora inmediatamente." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Controla :" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Lee el manual y resuelve el problema. Despues, reinicia la impresora y continua con el Wizard" # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4970 msgid "Please clean heatbed and then press the knob." msgstr "Limpia la superficie de la base, por favor, y haz clic" @@ -1313,67 +1518,67 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Limpia boquilla para calibracion. Click cuando acabes." # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4804 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "Inserta, por favor, filamento PLA en el extrusor. Despues haz clic para cargarlo." # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4800 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Por favor introduce el filamento al primer tubo MMU, despues presiona el dial para imprimirlo." # MSG_WIZARD_INSERT_CORRECT_FILAMENT c=20 r=8 #: ultralcd.cpp:4109 msgid "Please load PLA filament and then resume Wizard by rebooting the printer." -msgstr "Carga filamento PLA, por favor, y reinicia la impresora para continuar con el Wizard" +msgstr "Carga filamento PLA y reinicia la impresora para continuar con el asistente" # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4706 msgid "Please load PLA filament first." msgstr "Carga el filamento PLA primero por favor." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3083 msgid "Please open idler and remove filament manually." msgstr "Por favor abate el rodillo de empuje (idler) y retira el filamento manualmente." # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "Por favor coloca la chapa de acero en la base calefactable." # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Por favor, pulsa el dial para descargar el filamento" # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Por favor retire el filamento de inmediato" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1441 msgid "Please remove filament and then press the knob." msgstr "Por favor quite el filamento y luego presione el dial." # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4895 msgid "Please remove shipping helpers first." msgstr "Por favor retira los soportes de envio primero." # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "Por favor retire la chapa de acero de la base calefactable." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4317 msgid "Please run XYZ calibration first." msgstr "Por favor realiza la calibracion XYZ primero." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1360 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Por favor actualice el firmware en tu MMU2. Esperando el reseteo." @@ -1383,12 +1588,12 @@ msgid "Please upgrade." msgstr "Actualize por favor" # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Por Favor Espere" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Power failures" msgstr "Cortes de energia" @@ -1398,27 +1603,37 @@ msgid "PowerUp" msgstr "Encendido" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6644 msgid "Preheat" msgstr "Precalentar" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Precalienta extrusor!" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "Precalentando nozzle. Espera por favor." # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2290 +msgid "Preheating to cut" +msgstr "Precalentando para laminar" + +# +#: ultralcd.cpp:2287 +msgid "Preheating to eject" +msgstr "Precalentar para expulsar" + +# +#: ultralcd.cpp:2280 msgid "Preheating to load" msgstr "Precalentar para cargar" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2284 msgid "Preheating to unload" msgstr "Precalentar para descargar" @@ -1428,52 +1643,52 @@ msgid "Prepare new filament" msgstr "Preparar filamento" # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10312 msgid "Press knob to preheat nozzle and continue." msgstr "Pulsa el dial para precalentar la boquilla y continue." # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2210 msgid "Press the knob" msgstr "Pulsa el dial" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Presiona el dial para continuar con la temperatura de la boquilla." # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Impresion cancelada" # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1789 msgid "Print FAN" msgstr "Ventilador del extrusor" -# MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 -msgid "Print fan:" -msgstr "Ventilador del fusor:" - # MSG_INFO_PRINT_FAN c=11 r=1 #: ultralcd.cpp:1549 msgid "Print FAN: " msgstr "Ventilador del fusor:" +# MSG_SELFTEST_PRINT_FAN_SPEED c=18 +#: ultralcd.cpp:8221 +msgid "Print fan:" +msgstr "Ventilador del fusor:" + # MSG_CARD_MENU #: messages.c:21 msgid "Print from SD" msgstr "Menu tarjeta SD" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1080 msgid "Print paused" msgstr "Impresion en pausa" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2838 msgid "Print time" msgstr "Tiempo de imp.:" @@ -1487,6 +1702,26 @@ msgstr "Tiempo de imp.:" msgid "Printer disconnected" msgstr "Impresora desconectada" +# +#: util.cpp:473 +msgid "Printer FW version differs from the G-code. Continue?" +msgstr "FW Impresora difiere de cod.G. ¿Continuar?" + +# +#: util.cpp:480 +msgid "Printer FW version differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "FW Impresora difiere de cod. G. Comprueba los valores en ajustes. Impresion cancelada." + +# +#: util.cpp:506 +msgid "Printer G-code level differs from the G-code. Continue?" +msgstr "Nivel cod.G Impresora difiere de cod.G. ¿Continuar?" + +# +#: util.cpp:513 +msgid "Printer G-code level differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Nivel cod.G Impresora difiere de cod.G. Comprueba los valores en ajustes. Impresión cancelada." + # MSG_ERR_KILLED #: Marlin_main.cpp:7547 msgid "Printer halted. kill() called!" @@ -1497,6 +1732,26 @@ msgstr "Impresora detenida. kill() activado!" msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow." msgstr "Impresora no esta calibrada todavia. Por favor usa el manual capitulo Primeros pasos Calibracion flujo." +# +#: util.cpp:423 +msgid "Printer model differs from the G-code. Continue?" +msgstr "Modelo Impresora difiere de cod.G. ¿Continuar?" + +# +#: util.cpp:430 +msgid "Printer model differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Modelo Impresora difiere de cod. G. Comprueba los valores en ajustes. Impresión cancelada." + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Diametro nozzle impresora difiere de cod.G. ¿Continuar?" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Diametro nozzle Impresora difiere de cod.G. Comprueba los valores en ajustes. Impresion cancelada." + # MSG_ERR_STOPPED #: messages.c:32 msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" @@ -1512,6 +1767,11 @@ msgstr "Preparado para i3 MK2." msgid "Prusa i3 MK2.5 ready." msgstr "Preparado para Prusa i3 MK2.5." +# +#: +msgid "Prusa i3 MK3 OK." +msgstr "Prusa i3 MK3 OK." + # WELCOME_MSG c=20 #: msgid "Prusa i3 MK3 ready." @@ -1523,17 +1783,17 @@ msgid "Prusa i3 MK3S OK." msgstr "Prusa i3 MK3S OK." # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2098 msgid "prusa3d.com" msgstr "prusa3d.es" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3218 msgid "Rear side [um]" msgstr "Trasera [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9712 msgid "Recovering print " msgstr "Recuperando impresion" @@ -1543,10 +1803,15 @@ msgid "Refresh" msgstr "Refrescar" # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Retire el filamento viejo y presione el dial para comenzar a cargar el nuevo filamento." +# +#: ultralcd.cpp:6605 +msgid "Rename" +msgstr "Renombrar" + # MSG_M119_REPORT #: Marlin_main.cpp:5297 msgid "Reporting endstop status" @@ -1563,32 +1828,32 @@ msgid "Resend: " msgstr "Reenviar: " # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3219 msgid "Reset" msgstr "Reset" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5669 msgid "Reset XYZ calibr." msgstr "Reset XYZ calibr." # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6664 msgid "Resume print" msgstr "Reanudar impres." # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" -msgstr "Resumiendo impresion" +msgstr "Continuando impresion" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2968 msgid "Right" msgstr "Derecha" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3216 msgid "Right side[um]" msgstr "Derecha [um]" @@ -1603,22 +1868,22 @@ msgid "Rotate knob until mark reaches extruder body. Click when done." msgstr "Rotar el dial hasta que la marca llegue al cuerpo del extrusor. Haz clic una vez terminado." # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5587 msgid "RPi port [on]" msgstr "Puerto RPi [act]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5585 msgid "RPi port [off]" msgstr "Puerto RPi [ina]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4723 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Ejecutar el Wizard borrara los valores de calibracion actuales y comenzara de nuevo. Continuar?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5220 msgid "SD card [normal]" msgstr "Tarj. SD [normal]" @@ -1633,7 +1898,7 @@ msgid "SD card [FlshAir]" msgstr "Tarj. SD [FlshAir]" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5218 msgid "SD card [flshAir]" msgstr "Tarj. SD[FlshAir]" @@ -1652,53 +1917,63 @@ msgstr "SD byte impresion" msgid "Searching bed calibration point" msgstr "Buscando punto de calibracion base" +# +#: ultralcd.cpp:6601 +msgid "Select" +msgstr "Seleccionar" + # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5594 msgid "Select language" msgstr "Cambiar el idioma" # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4943 msgid "Select nozzle preheat temperature which matches your material." msgstr "Selecciona la temperatura para precalentar la boquilla que se ajuste a tu material. " # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Select PLA filament:" msgstr "Seleccionar filamento PLA:" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "Self test OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Iniciar Selftest" # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5645 msgid "Selftest " msgstr "Selftest" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Error Selftest !" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "Fallo Selftest" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1567 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Se realizara el auto-test para calibrar con precision la vuelta a la posicion inicial sin sensores." # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:2138 +msgid "Sensor info" +msgstr "Info sensor" + +# +#: ultralcd.cpp:3938 msgid "Sensor state" msgstr "Estado del sensor" @@ -1708,17 +1983,17 @@ msgid "Sensors info" msgstr "Informacion sensores" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3227 msgid "Set temperature:" msgstr "Establecer temp.:" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Configuracion" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3005 msgid "Severe skew" msgstr "Inclinacion severa" @@ -1727,8 +2002,13 @@ msgstr "Inclinacion severa" msgid "Severe skew:" msgstr "Inclinación severa:" +# +#: messages.c:58 +msgid "Sheet" +msgstr "Lamina" + # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5666 msgid "Show end stops" msgstr "Mostrar endstops" @@ -1743,7 +2023,7 @@ msgid "Sleep..." msgstr "En reposo..." # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3004 msgid "Slight skew" msgstr "Ligeramente inclinado" @@ -1753,15 +2033,30 @@ msgid "Slight skew:" msgstr "Ligeramente inclinado:" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. " # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4833 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Problema encontrado, nivelacion Z forzosa ..." +# MSG_SORT_NONE c=17 r=1 +#: ultralcd.cpp:5230 +msgid "Sort [none]" +msgstr "Ordenar [ninguno]" + +# MSG_SORT_TIME c=17 r=1 +#: ultralcd.cpp:5228 +msgid "Sort [time]" +msgstr "Ordenar [tiempo]" + +# MSG_SORT_ALPHA c=17 r=1 +#: ultralcd.cpp:5229 +msgid "Sort [alphabet]" +msgstr "Ordenar [Alfabetico]" + # MSG_SORT_NONE c=17 r=1 #: ultralcd.cpp:4250 msgid "Sort: [None]" @@ -1803,117 +2098,132 @@ msgid "Sort: [time]" msgstr "Ordenar: [tiempo]" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Ordenando archivos" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "Sonido [alto]" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "Sonido[silenciad]" # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "Sonido [una vez]" +# +#: +msgid "Sound [assist]" +msgstr "Sonido [asistido]" + +# +#: sound.h:9 +msgid "Sound [blind]" +msgstr "Sonido [ciego]" + # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "Sonido[silencios]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Velocidad" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Ventilador girando" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5098 msgid "SpoolJoin [on]" msgstr "SpoolJoin [on]" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5094 msgid "SpoolJoin [N/A]" msgstr "SpoolJoin [N/A]" # MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +#: ultralcd.cpp:5102 msgid "SpoolJoin [off]" msgstr "SpoolJoin [off]" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4330 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Se necesita una temperatura ambiente ente 21 y 26C y un soporte rigido." # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Estadisticas " +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "Lámina de acero" + # MSG_STEPPER_TOO_HIGH #: stepper.cpp:345 msgid "Steprate too high: " msgstr "Pasos muy altos: " # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "Detener impresion" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "PARADA" # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "Soporte" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Intercambiado" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "Cal. temp. " # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5581 msgid "Temp. cal. [on]" msgstr "Cal. temp. [ON]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5579 msgid "Temp. cal. [off]" msgstr "Cal. temp. [OFF]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5675 msgid "Temp. calibration" msgstr "Calibracion temp." # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5548 msgid "Temperature" msgstr "Temperatura" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3864 msgid "Temperature calibration failed" msgstr "Fallo de la calibracion de temperatura" @@ -1923,12 +2233,12 @@ msgid "Temperature calibration has not been run yet" msgstr "La temperatura de calibracion no ha sido ajustada" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "Calibracion temperatura terminada. Haz clic para continuar." # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2144 msgid "Temperatures" msgstr "Temperaturas" @@ -1938,27 +2248,27 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "Todavia es necesario hacer una calibracion Z. Por favor siga el manual, capitulo Primeros pasos, seccion Calibracion del flujo." # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2217 msgid "to load filament" msgstr "para cargar el filamento" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2221 msgid "to unload filament" msgstr "para descargar el filamento" # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1829 msgid "Total" msgstr "Total" # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "Total failures" msgstr "Fallos totales" # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2860 msgid "Total filament" msgstr "Filamento total:" @@ -1968,7 +2278,7 @@ msgid "Total filament :" msgstr "Filamento total:" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2860 msgid "Total print time" msgstr "Tiempo total :" @@ -1983,17 +2293,17 @@ msgid "TRIGGERED" msgstr "ACTIVADO" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6641 msgid "Tune" msgstr "Ajustar" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2120 msgid "unknown" msgstr "desconocido" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Unload" msgstr "Descargar" @@ -2003,7 +2313,7 @@ msgid "Unload all" msgstr "Soltar todos fil." # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "Soltar filamento" @@ -2028,22 +2338,22 @@ msgid "Unload filament 4" msgstr "Soltar fil. 4" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Soltando filamento" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4779 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Usa unload para retirar el filamento 1 si sobresale por fuera de la parte trasera del tubo MMU. Usa Expulsar si esta escondido dentro del tubo" # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5803 msgid "Used during print" msgstr "Usado en impresion" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2147 msgid "Voltages" msgstr "Voltajes" @@ -2053,32 +2363,37 @@ msgid "volume.init failed" msgstr "fallo volume.init \n" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5225 msgid "Wait for user..." msgstr "Esperando ordenes" # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3371 msgid "Waiting for nozzle and bed cooling" msgstr "Esperando enfriamiento de la base y extrusor." # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3335 msgid "Waiting for PINDA probe cooling" msgstr "Esperando a que se enfrie la sonda PINDA" +# MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 +#: +msgid "WARNING:\nCrash detection\ndisabled in\nStealth mode" +msgstr "ATENCION:\nDetect. choque \ndesactivada en\nmodo Silencioso" + # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1527 msgid "Warning: both printer type and motherboard type changed." msgstr "Aviso: tanto el tipo de impresora como el tipo de la placa han cambiado." # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1519 msgid "Warning: motherboard type changed." msgstr "Cuidado: el tipo de placa ha cambiado." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1523 msgid "Warning: printer type changed." msgstr "Cuidado: Ha cambiado el tipo de impresora." @@ -2088,17 +2403,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!" msgstr "CUIDADO: Esta es una version no-oficial y sin soporte. ¡Usala bajo tu responsabilidad!" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3072 msgid "Was filament unload successful?" -msgstr "?Se cargocon exito el filamento?" +msgstr "?Se cargo con exito el filamento?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Error de conexion" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5642 msgid "Wizard" msgstr "Wizard" @@ -2117,23 +2432,28 @@ msgstr "Escribiendo al arch.: " msgid "X-correct" msgstr "X-correcion" +# +#: ultralcd.cpp:5028 +msgid "X-correct:" +msgstr "Correccion-X:" + # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2136 msgid "XYZ cal. details" msgstr "Detalles de calibracion XYZ" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "Calibracion XYZ correcta. La inclinacion se corregira automaticamente." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3832 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "Calibracion XYZ correcta. Los ejes X / Y estan ligeramente inclinados. Buen trabajo!" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3813 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables." @@ -2143,17 +2463,17 @@ msgid "XYZ calibration compromised. Left front calibration point not reachable." msgstr "Calibrazion XYZ comprometida. Punto frontal izquierdo no alcanzable." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable." # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3795 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Calibracion XYZ fallada. Puntos de calibracion en la base no encontrados." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3801 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Calibracion XYZ fallada. Puntos frontales no alcanzables." @@ -2168,17 +2488,17 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "Calibracion XYZ fallada. Consulta el manual por favor." # -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Calibracion XYZ fallad. Punto frontal derecho no alcanzable." # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3829 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "Calibracion XYZ ok. Ejes X/Y perpendiculares. Enhorabuena!" # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2965 msgid "Y distance from min" msgstr "Distancia en Y desde el min" @@ -2190,10 +2510,15 @@ msgstr "Distancia en Y desde el min:" # #: ultralcd.cpp:4886 msgid "Y-correct" -msgstr "Y-correcion" +msgstr "Y-correccion" + +# +#: ultralcd.cpp:5029 +msgid "Y-correct:" +msgstr "Correccion-Y:" # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Si" @@ -2205,14 +2530,29 @@ msgstr "Estas usando una version alpha de firmware. Esta es una version de desar # MSG_FW_VERSION_BETA c=20 r=8 #: Marlin_main.cpp:931 msgid "You are using firmware beta version. This is development version. Using this version is not recommended and may cause printer damage." -msgstr "Estás usando una versión beta de firmware. Es una versión en desarrollo. No recomendamos que la uses y podría causar daños a la impresora." +msgstr "Estas usando una version beta de firmware. Es una version en desarrollo. No recomendamos que la uses y podria causar daños a la impresora." # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "Siempre puedes acceder al asistente desde Calibracion -> Wizard" +# +#: ultralcd.cpp:5030 +msgid "Z-correct:" +msgstr "Correccion-Z:" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "Z-sensor nr. [1]" + +# +#: ultralcd.cpp:6954 +msgid "Z-probe nr. [3]" +msgstr "Z-sensor nr. [3]" + # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3024 msgid "[0;0] point offset" msgstr "[0;0] punto offset" diff --git a/lang/po/new/fr.po b/lang/po/new/fr.po index 38ff850d0..cd2975bc6 100644 --- a/lang/po/new/fr.po +++ b/lang/po/new/fr.po @@ -17,6 +17,11 @@ msgstr "\e[2JLa detection de crash peut etre\e[1;0Hactive seulement\e[2;0Hen mod msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode" msgstr "\e[2JATTENTION :\e[1;0HDetection de crash\e[2;0H desactivee en\e[3;0Hmode Furtif" +# +#: ultralcd.cpp:3913 +msgid " 1" +msgstr " 1" + # MSG_PLANNER_BUFFER_BYTES #: Marlin_main.cpp:1184 msgid " PlannerBufferBytes: " @@ -48,10 +53,15 @@ msgid " of 4" msgstr "de 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr "de 9" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr "[off]" + # MSG_FACTOR #: ultralcd.cpp:6008 msgid " \002 Fact" @@ -68,7 +78,7 @@ msgid " \002 Min" msgstr " \002 Min" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2294 msgid ">Cancel" msgstr ">Annuler" @@ -77,33 +87,38 @@ msgstr ">Annuler" msgid "Adjusting Z" msgstr "Ajustement de Z" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3144 +msgid "Adjusting Z:" +msgstr "Ajuster Z :" + # MSG_ALL c=19 r=1 #: messages.c:11 msgid "All" msgstr "Tous" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Tout est correct" # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "Tout est pret. Bonne\nimpression !" # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1979 msgid "Ambient" msgstr "Ambiant" # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2573 msgid "and press the knob" msgstr "et pressez le bouton" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3442 msgid "Are left and right Z~carriages all up?" msgstr "Z~carriages gauche +\ndroite tout en haut?" @@ -133,27 +148,27 @@ msgid "Auto home" msgstr "Mise a 0 des axes" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6731 msgid "AutoLoad filament" msgstr "AutoCharge du filament" # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4375 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "Chargement auto du\nfilament uniquement\nsi le capteur de\nfilament est active." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2768 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "Chargement auto du\nfilament actif,\nappuyez sur le btn\net inserez le fil." # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Axe" # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Longueur de l'axe" @@ -167,13 +182,18 @@ msgstr "Babystepping X" msgid "Babystepping Y" msgstr "Babystepping Y" +# +#: messages.c:57 +msgid "Back" +msgstr "Retour" + # MSG_BED #: messages.c:15 msgid "Bed" msgstr "Lit" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Lit / Chauffage" @@ -188,7 +208,7 @@ msgid "Bed Heating" msgstr "Chauffe du lit" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5663 msgid "Bed level correct" msgstr "Corr. niveau plateau" @@ -213,17 +233,17 @@ msgid "Begin file list" msgstr "Debut liste fichiers" # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2007 msgid "Belt status" msgstr "Statut courroie" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "Coupure detectee.\nRecup. impression ?" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4566 msgid "Calibrate" msgstr "Calibrer" @@ -233,7 +253,7 @@ msgid "Calibrate E" msgstr "Calibrer E" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5652 msgid "Calibrate XYZ" msgstr "Calibrer XYZ" @@ -243,12 +263,12 @@ msgid "Calibrate Z" msgstr "Calibrer Z" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" msgstr "Calib. mise a 0" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibration de XYZ.\nTournez le bouton\npour monter le\nchariot de l'axe Z\njusqu'aux butees.\nCliquez une fois\nfait." @@ -258,22 +278,22 @@ msgid "Calibrating Z" msgstr "Calibration de Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibration de Z.\nTournez le bouton\npour monter le\nchariot de l'axe Z\njusqu'aux butees.\nCliquez une fois\nfait." # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "Calibration" # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:832 msgid "Calibration done" msgstr "Calibration terminee" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Cancel" msgstr "Annuler" @@ -293,7 +313,7 @@ msgid "Card inserted" msgstr "Carte inseree" # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "Carte retiree" @@ -313,12 +333,12 @@ msgid "Change SD card" msgstr "Changer carte SD" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2584 msgid "Change success!" msgstr "Changement reussi!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2661 msgid "Changed correctly?" msgstr "Change correctement?" @@ -328,40 +348,45 @@ msgid "Changing filament!" msgstr "Changement filament!" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Verification du lit" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Verifications butees" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Verif. tete impr." # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Verif. des capteurs" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Verification axe X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Verification axe Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Verification axe Z" +# +#: ultralcd.cpp:5537 +msgid "Checks" +msgstr "Verifications" + # MSG_ERR_CHECKSUM_MISMATCH #: cmdqueue.cpp:444 msgid "checksum mismatch, Last Line: " @@ -378,7 +403,7 @@ msgid "Choose filament:" msgstr "Choix du filament :" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2673 msgid "Color not correct" msgstr "Couleur incorrecte" @@ -393,12 +418,12 @@ msgid "Copy selected language from XFLASH?" msgstr "Copier la langue selectionne depuis la XFLASH ?" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4499 msgid "Copy selected language?" msgstr "Copier la langue\nselectionne ?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Crash" msgstr "Crash" @@ -423,22 +448,27 @@ msgid "Crash detected." msgstr "Crash detecte." # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:618 msgid "Crash detected. Resume print?" msgstr "Crash detecte. Poursuivre l'impression ?" +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +msgid "Crash detection can\nbe turned on only in\nNormal mode" +msgstr "La detection de\ncrash ne peut etre\nactive en mode\nNormal" + # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5804 msgid "Current" msgstr "Actuel" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2106 msgid "Date:" msgstr "Date :" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5552 msgid "Disable steppers" msgstr "Desactiver moteurs" @@ -448,7 +478,7 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "La distance entre la\npointe de la buse et\nla surface du\nplateau n'a pas\nencore ete reglee.\nSuivez le manuel,\nchapitre Premiers\npas, section\nCalibration de la\npremiere couche." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4968 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "Voulez-vous repeter\nla derniere etape\npour reajuster la\ndistance entre la\nbuse et le plateau\nchauffant ?" @@ -462,13 +492,18 @@ msgstr "Calibration de E\nterminee. Nettoyez\nla buse. Cliquez une\nfois fait." msgid "E-correct" msgstr "Correct-E" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5032 +msgid "E-correct:" +msgstr "Correct-E:" + # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Eject" msgstr "Ejecter" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "Ejecter le fil." @@ -498,7 +533,7 @@ msgid "Eject filament 5" msgstr "Ejecter fil. 5" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1435 msgid "Ejecting filament" msgstr "Ejection filament" @@ -508,17 +543,17 @@ msgid "End file list" msgstr "Fin liste fichiers" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "Butee" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Butee non atteinte" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "Butees" @@ -538,7 +573,7 @@ msgid "enqueing \"" msgstr "mise en file \"" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Erreur - la memoire\nstatique a ete\necrasee" @@ -553,7 +588,7 @@ msgid "ERROR:" msgstr "ERREUR :" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4388 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "ERREUR : Le capteur\nde filament ne\nrepond pas, verifiez\nle branchement." @@ -588,17 +623,17 @@ msgid "Extruder 4" msgstr "Extrudeur 4" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Ventilo extrudeur:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2137 msgid "Extruder info" msgstr "Infos extrudeur" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5066 msgid "F. autoload [on]" msgstr "ChargAuto f. [on]" @@ -608,37 +643,42 @@ msgid "F. autoload [N/A]" msgstr "AutoCharg F [N/A]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5068 msgid "F. autoload [off]" msgstr "AutoCharg F [off]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" msgstr "Statist. d'echec" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" msgstr "Stat. echecs MMU" +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "Faux declenchement" + # MSG_FAN_SPEED c=14 #: messages.c:31 msgid "Fan speed" msgstr "Vitesse ventil" # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Test ventilateur" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5561 msgid "Fans check [on]" msgstr "Verif ventilo[on]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5563 msgid "Fans check [off]" msgstr "Verif venti [off]" @@ -653,7 +693,7 @@ msgid "Fil. sensor response is poor, disable it?" msgstr "Capteur de fil. non\nprecis, desactiver ?" # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5046 msgid "Fil. sensor [N/A]" msgstr "Capteur Fil. [N/A]" @@ -663,7 +703,7 @@ msgid "Fil. sensor [off]" msgstr "Capteur Fil.[off]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Filam. runouts" msgstr "Fins de filament" @@ -678,12 +718,12 @@ msgid "Filament extruding & with correct color?" msgstr "Filament extrude et\navec bonne couleur ?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2669 msgid "Filament not loaded" msgstr "Filament non charge" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Capteur de filament" @@ -693,7 +733,7 @@ msgid "Filament sensor:" msgstr "Capteur filament :" # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2838 msgid "Filament used" msgstr "Filament utilise" @@ -703,7 +743,7 @@ msgid "Filament used: " msgstr "Filament utilise :" # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "Fichier incomplet.\nContinuer qd meme ?" @@ -717,53 +757,93 @@ msgstr "Fichier ouvert :" msgid "File selected" msgstr "Fichier selectionne" +# +#: ultralcd.cpp:3943 +msgid "FINDA:" +msgstr "FINDA :" + # MSG_FINISHING_MOVEMENTS c=20 r=1 #: messages.c:40 msgid "Finishing movements" msgstr "Mouvements de fin" +# +#: ultralcd.cpp:5443 +msgid "Firmware [none]" +msgstr "Firmware [aucune]" + +# +#: ultralcd.cpp:5446 +msgid "Firmware [warn]" +msgstr "Firmware [avert]" + +# +#: ultralcd.cpp:5449 +msgid "Firmware [strict]" +msgstr "Firmware[stricte]" + # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Cal. 1ere couche" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4880 msgid "First, I will run the selftest to check most common assembly problems." msgstr "D'abord, je vais\nlancer le Selftest\npour verifier les\nproblemes\nd'assemblage les\nplus communs." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Corrigez le probleme et appuyez sur le bouton de l'unite MMU." # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Flux" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2099 msgid "forum.prusa3d.com" msgstr "forum.prusa3d.com" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Ventilo impr avant ?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3217 msgid "Front side[um]" msgstr "Avant [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Ventilos avt/gauche" +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "Le G-code a ete prepare pour une autre version de l'imprimante. Continuer?" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "Le G-code a ete prepare pour une autre version de l'imprimante. Veuillez decouper le modele a nouveau. L'impression a ete annulee. " + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "Le G-code a ete prepare pour une version plus recente du firmware. Continuer?" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "Le G-code a ete prepare pour une version plus recente du firmware. Veuillez mettre a jour le firmware. L'impression annulee." + # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Chauffage/Thermistor" @@ -773,7 +853,7 @@ msgid "Heating" msgstr "Chauffe" # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8411 msgid "Heating disabled by safety timer." msgstr "Chauffe desactivee\npar le compteur de\nsecurite." @@ -783,27 +863,32 @@ msgid "Heating done." msgstr "Chauffe terminee." # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4859 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Bonjour, je suis\nvotre imprimante\nOriginal Prusa i3.\nVoulez-vous que je\nvous guide a travers\nle processus\nd'installation ?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2100 msgid "howto.prusa3d.com" msgstr "howto.prusa3d.com" +# +#: messages.c:87 +msgid "HW Setup" +msgstr "Config HW" + # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4889 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Je vais maintenant\nlancer la\ncalibration xyz.\nCela prendra 12 min\nenviron." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4897 msgid "I will run z calibration now." msgstr "Je vais maintenant\nlancer la\ncalibration z." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4962 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "Je vais commencer a \nimprimer une ligne\net vous baisserez au\nfur et a mesure la\nbuse en tournant le\nbouton jusqu'a\natteindre la hauteur\noptimale. Regardez\nles photos dans\nnotre manuel au\nchapitre Calibration" @@ -813,7 +898,7 @@ msgid "Improving bed calibration point" msgstr "Amelioration du point de calibration du lit" # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Ecran d'info" @@ -823,7 +908,7 @@ msgid "Init. SD card" msgstr "Init. carte SD" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2569 msgid "Insert filament" msgstr "Inserez le filament" @@ -848,27 +933,32 @@ msgid "Insert filament into extruder 4. Click when done." msgstr "Inserez le filament\ndans l'extrudeur 4.\nCliquez une fois\npret." # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:3947 +msgid "IR:" +msgstr "IR :" + +# +#: ultralcd.cpp:4922 msgid "Is filament 1 loaded?" msgstr "Le filament 1 est-il charge ?" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4925 msgid "Is filament loaded?" msgstr "Le filament est-il\ncharge ?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4956 msgid "Is it PLA filament?" msgstr "Est-ce du filament\nPLA ?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4701 msgid "Is PLA filament loaded?" msgstr "Le filament PLA\nest-il charge ?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" msgstr "Feuille d'acier sur\nplateau chauffant ?" @@ -883,27 +973,27 @@ msgid "KILLED. " msgstr "TUE." # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1828 msgid "Last print" msgstr "Derniere impression" # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1845 msgid "Last print failures" msgstr "Echecs derniere impr" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2967 msgid "Left" msgstr "Gauche" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Ventilo tete gauche?" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3215 msgid "Left side [um]" msgstr "Gauche [um]" @@ -913,7 +1003,7 @@ msgid "Left:" msgstr "Gauche :" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5575 msgid "Lin. correction" msgstr "Correction lin." @@ -923,7 +1013,7 @@ msgid "Live adjust Z" msgstr "Ajuster Z en direct" # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6059 msgid "Load all" msgstr "Tout charger" @@ -958,12 +1048,12 @@ msgid "Load filament 5" msgstr "Charger fil. 5" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6714 msgid "Load to nozzle" msgstr "Charger dans la buse" # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2609 msgid "Loading color" msgstr "Chargement couleur" @@ -973,7 +1063,7 @@ msgid "Loading filament" msgstr "Chargement filament" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Poulie lache" @@ -993,7 +1083,7 @@ msgid "M109 Invalid extruder " msgstr "M109 extrudeur invalide" # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Cal. 1ere couche" @@ -1012,8 +1102,23 @@ msgstr "M218 extrudeur invalide" msgid "M221 Invalid extruder " msgstr "M221 extrudeur invalide" +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "Comp. aimants [On]" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "Comp. aimants[N/A]" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "Comp. aimants[Off]" + # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Principal" @@ -1023,7 +1128,7 @@ msgid "Mark filament 100mm from extruder body. Click when done." msgstr "Marquez le filament\na 100 mm du corps de\nl'extrudeur. Cliquez\nune fois fait." # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3002 msgid "Measured skew" msgstr "Deviation mesuree" @@ -1033,32 +1138,67 @@ msgid "Measured skew:" msgstr "Ecart mesure :" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Mesure de la hauteur de reference du point de calibration" +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "Mesh [3x3]" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "Mesh [7x7]" + # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5658 msgid "Mesh Bed Leveling" msgstr "Mesh Bed Leveling" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:5572 +msgid "Mesh bed leveling" +msgstr "Mesh bed leveling" + +# +#: Marlin_main.cpp:881 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Firmware MK3 detecte sur imprimante MK3S" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "Firmware MK3S detecte sur imprimante MK3" + +# +#: ultralcd.cpp:1845 msgid "MMU fails" msgstr "Echec MMU" # -#: mmu.cpp:1399 +#: mmu.cpp:1617 msgid "MMU load failed " msgstr "Echec chargement MMU" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1845 msgid "MMU load fails" msgstr "Echecs charg. MMU" # -#: mmu.cpp:635 +#: ultralcd.cpp:5204 +msgid "MMU Mode [Normal]" +msgstr "Mode MMU [Normal]" + +# +#: ultralcd.cpp:5205 +msgid "MMU Mode[Stealth]" +msgstr "Mode MMU [Furtif]" + +# +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "Le MMU necessite l'attention de l'utilisateur." @@ -1068,82 +1208,102 @@ msgid "MMU needs user attention. Fix the issue and then press button on MMU unit msgstr "La MMU requiert votre attention. Réglez le problème puis appuyez sur le bouton on sur l'unité MMU." # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Reprise de la position ..." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Remontee en\ntemperature..." # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Reprise ..." # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "MMU power fails" msgstr "Echecs alim. MMU" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2112 msgid "MMU2 connected" msgstr "MMU2 connecte" # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "Mode [Normal]" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Mode [silencieux]" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" msgstr "Mode [Furtif]" +# +#: ultralcd.cpp:4424 +msgid "Mode change in progress ..." +msgstr "Changement de mode en cours..." + # MSG_AUTO_MODE_ON #: messages.c:12 msgid "Mode [auto power]" msgstr "Mode [puiss.auto]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "Mode [haute puiss]" +# +#: ultralcd.cpp:5404 +msgid "Model [none]" +msgstr "Modele [aucune]" + +# +#: ultralcd.cpp:5407 +msgid "Model [warn]" +msgstr "Modele [avert]" + +# +#: ultralcd.cpp:5410 +msgid "Model [strict]" +msgstr "Modele [stricte]" + # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "Moteur" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5550 msgid "Move axis" msgstr "Deplacer l'axe" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4291 msgid "Move X" msgstr "Deplacer X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4292 msgid "Move Y" msgstr "Deplacer Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4293 msgid "Move Z" msgstr "Deplacer Z" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2973 msgid "N/A" msgstr "N/A" @@ -1153,7 +1313,7 @@ msgid "New firmware version available:" msgstr "Nouvelle version de\nfirmware disponible:" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "Non" @@ -1168,12 +1328,12 @@ msgid "No Checksum with line number, Last Line: " msgstr "Pas de checksum avec\nnumero de ligne, \nDerniere ligne :" # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5254 msgid "No move." msgstr "Pas de mouvement." # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6694 msgid "No SD card" msgstr "Pas de carte SD" @@ -1183,37 +1343,67 @@ msgid "No thermistors - no temperature" msgstr "Pas de thermistors\n- pas de temperature" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "Non connecte" # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Ne tourne pas" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4961 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "Maintenant je vais\ncalibrer la distance \nentre la pointe de\nla buse et la\nsurface du plateau\nchauffant." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4905 msgid "Now I will preheat nozzle for PLA." msgstr "Maintenant je vais\nprechauffer la buse\npour du PLA." # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4896 msgid "Now remove the test print from steel sheet." msgstr "Retirez maintenant l'impression de test de la feuille d'acier." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Buse" # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:5319 +msgid "Nozzle [none]" +msgstr "Buse [aucune]" + +# +#: ultralcd.cpp:5322 +msgid "Nozzle [warn]" +msgstr "Buse [avert]" + +# +#: ultralcd.cpp:5325 +msgid "Nozzle [strict]" +msgstr "Buse [stricte]" + +# +#: ultralcd.cpp:5365 +msgid "Nozzle d. [0.25]" +msgstr "Diam. buse [0.25]" + +# +#: ultralcd.cpp:5368 +msgid "Nozzle d. [0.40]" +msgstr "Diam. buse [0.40]" + +# +#: ultralcd.cpp:5371 +msgid "Nozzle d. [0.60]" +msgstr "Diam. buse [0.60]" + +# +#: ultralcd.cpp:1787 msgid "Nozzle FAN" msgstr "Ventilateur buse" @@ -1238,7 +1428,7 @@ msgid "ok" msgstr "ok" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1535 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Anciens reglages\ntrouves. Le PID, les\nEsteps etc. par\ndefaut seront regles" @@ -1258,7 +1448,7 @@ msgid "openRoot failed" msgstr "Echec openRoot" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6657 msgid "Pause print" msgstr "Pause de l'impr." @@ -1268,42 +1458,47 @@ msgid "Pick print" msgstr "Choisir impression" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1613 msgid "PID cal. " msgstr "Calib. PID" # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1619 msgid "PID cal. finished" msgstr "Calib. PID terminee" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5664 msgid "PID calibration" msgstr "Calibration PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:862 msgid "PINDA Heating" msgstr "Chauffe de la PINDA" +# +#: ultralcd.cpp:3939 +msgid "PINDA:" +msgstr "PINDA :" + # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "Placez une feuille\nde papier sous la\nbuse pendant la\ncalibration des 4\npremiers points.\nSi la buse accroche\nle papier, eteignez\nvite l'imprimante." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Verifiez :" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Merci de verifier\nnotre manuel et de\ncorriger le\nprobleme. Poursuivez\nalors l'assistant en\nredemarrant\nl'imprimante." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4970 msgid "Please clean heatbed and then press the knob." msgstr "Nettoyez le plateau\nchauffant et appuyez\nsur le bouton." @@ -1313,12 +1508,12 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Nettoyez la buse\npour la calibration.\nCliquez une fois\nfait." # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4804 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "Inserez du filament\nPLA dans l'extrudeur\npuis appuyez sur le\nbouton pour le\ncharger." # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4800 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Veuillez inserer du filament PLA dans le premier tube du MMU, et pressez sur le bouton pour le charger." @@ -1328,52 +1523,52 @@ msgid "Please load PLA filament and then resume Wizard by rebooting the printer. msgstr "Chargez le filament\nPLA et poursuivez\nl'assistant en\nredemarrant\nl'imprimante." # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4706 msgid "Please load PLA filament first." msgstr "Chargez d'abord le\nfilament PLA." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3083 msgid "Please open idler and remove filament manually." msgstr "Ouvrez l'idler et\nretirez le filament\nmanuellement." # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "Placez la feuille\nd'acier sur le\nplateau chauffant." # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Appuyez sur le\nbouton pour \ndecharger le \nfilament" # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Retirez\nimmediatement le\nfilament" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1441 msgid "Please remove filament and then press the knob." msgstr "Veuillez retirer le filament puis appuyez sur le bouton." # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4895 msgid "Please remove shipping helpers first." msgstr "Veuillez retirer d'abord les protections d'envoi." # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "Retirez la feuille\nd'acier du plateau\nchauffant." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4317 msgid "Please run XYZ calibration first." msgstr "Veuillez d'abord lancer la calibration XYZ." # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1360 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Veuillez mettre a\njour le firmware de\nvotre MMU2. En\nattente d'un reset." @@ -1383,12 +1578,12 @@ msgid "Please upgrade." msgstr "Mettez a jour le FW." # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Merci de patienter" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Power failures" msgstr "Coupures de courant" @@ -1398,27 +1593,37 @@ msgid "PowerUp" msgstr "Demarrage" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6644 msgid "Preheat" msgstr "Prechauffage" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Prechauffez la buse!" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "Prechauffage de la\nbuse. Merci de\npatienter." # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2290 +msgid "Preheating to cut" +msgstr "Prechauffage pour couper" + +# +#: ultralcd.cpp:2287 +msgid "Preheating to eject" +msgstr "Prechauffage pour ejecter" + +# +#: ultralcd.cpp:2280 msgid "Preheating to load" msgstr "Chauffe pour charger" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2284 msgid "Preheating to unload" msgstr "Chauffe pr decharger" @@ -1428,27 +1633,27 @@ msgid "Prepare new filament" msgstr "Preparez le filament" # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10312 msgid "Press knob to preheat nozzle and continue." msgstr "Appuyez sur le\nbouton pour\nprechauffer la buse\net continuer." # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2210 msgid "Press the knob" msgstr "App. sur sur bouton" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Appuyez sur le bouton pour poursuivre la mise en temperature de la buse." # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Impression annulee" # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1789 msgid "Print FAN" msgstr "Ventilo impression" @@ -1458,7 +1663,7 @@ msgid "Print FAN: " msgstr "Vent impr :" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "Ventilo impr. :" @@ -1468,12 +1673,12 @@ msgid "Print from SD" msgstr "Impr depuis la SD" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1080 msgid "Print paused" msgstr "Impression en pause" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2838 msgid "Print time" msgstr "Temps d'impression" @@ -1487,6 +1692,26 @@ msgstr "Temps d'impression :" msgid "Printer disconnected" msgstr "Impri. deconnectee" +# +#: util.cpp:473 +msgid "Printer FW version differs from the G-code. Continue?" +msgstr "Version FW de l'imprimante differente du G-Code. Continuer ?" + +# +#: util.cpp:480 +msgid "Printer FW version differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Version FW de l'imprimante differente du G-Code. Merci de verifier le parametre dans les reglages. Impression annulee." + +# +#: util.cpp:506 +msgid "Printer G-code level differs from the G-code. Continue?" +msgstr "Niveau de G-Code de l'imprimante different du G-Code. Continuer ?" + +# +#: util.cpp:513 +msgid "Printer G-code level differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Merci de verifier le parametre dans les reglages. Impression annulee." + # MSG_ERR_KILLED #: Marlin_main.cpp:7547 msgid "Printer halted. kill() called!" @@ -1497,6 +1722,26 @@ msgstr "Imprimante stoppee.\nkill() appelee !" msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow." msgstr "L'imprimante n'a pas\nencore ete calibree.\nSuivez le manuel,\nchapitre Premiers\npas, section\nProcessus de\ncalibration." +# +#: util.cpp:423 +msgid "Printer model differs from the G-code. Continue?" +msgstr "Modele d'imprimante different du G-Code. Continuer ?" + +# +#: util.cpp:430 +msgid "Printer model differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Modele d'imprimante diffent du G-Code. Merci de verifier le parametre dans les reglages. Impression annulee." + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Diametre de la buse de l'imprimante different du G-Code. Continuer ?" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Diametre de la buse de l'imprimante different du G-Code. Merci de verifier le parametre dans les reglages. Impression annulee." + # MSG_ERR_STOPPED #: messages.c:32 msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" @@ -1512,6 +1757,11 @@ msgstr "Prusa i3 MK2 prete." msgid "Prusa i3 MK2.5 ready." msgstr "Prusa i3 MK2.5 prete." +# +#: +msgid "Prusa i3 MK3 OK." +msgstr "Prusa i3 MK3 OK." + # WELCOME_MSG c=20 #: msgid "Prusa i3 MK3 ready." @@ -1523,17 +1773,17 @@ msgid "Prusa i3 MK3S OK." msgstr "Prusa i3 MK3S OK." # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2098 msgid "prusa3d.com" msgstr "prusa3d.com" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3218 msgid "Rear side [um]" msgstr "Arriere [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9712 msgid "Recovering print " msgstr "Recup. impression" @@ -1543,10 +1793,15 @@ msgid "Refresh" msgstr "Rafraichir" # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Retirez l'ancien filament puis appuyez sur le bouton pour charger le nouveau." +# +#: ultralcd.cpp:6605 +msgid "Rename" +msgstr "Renommer" + # MSG_M119_REPORT #: Marlin_main.cpp:5297 msgid "Reporting endstop status" @@ -1563,32 +1818,32 @@ msgid "Resend: " msgstr "Renvoi :" # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3219 msgid "Reset" msgstr "Reinitialiser" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5669 msgid "Reset XYZ calibr." msgstr "Reinit. calibr. XYZ" # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6664 msgid "Resume print" msgstr "Reprendre impression" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "Reprise de l'impr." # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2968 msgid "Right" msgstr "Droite" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3216 msgid "Right side[um]" msgstr "Droite [um]" @@ -1603,22 +1858,22 @@ msgid "Rotate knob until mark reaches extruder body. Click when done." msgstr "Tournez le bouton\njusqu'a ce que la\nmarque atteigne le\ncorps de\nl'extrudeur. Cliquez\nune fois fait." # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5587 msgid "RPi port [on]" msgstr "Port RPi [on]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5585 msgid "RPi port [off]" msgstr "Port RPi [off]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4723 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Lancer l'Assistant\nsupprimera les\nresultats actuels de\ncalibration et\ncommencera du debut.\nContinuer ?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5220 msgid "SD card [normal]" msgstr "Carte SD [normal]" @@ -1633,7 +1888,7 @@ msgid "SD card [FlshAir]" msgstr "Carte SD [FlashAir]" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5218 msgid "SD card [flshAir]" msgstr "Carte SD [flashAir]" @@ -1652,53 +1907,63 @@ msgstr "Octet d'impression de la SD" msgid "Searching bed calibration point" msgstr "Recherche du point de calibration du lit" +# +#: ultralcd.cpp:6601 +msgid "Select" +msgstr "Selectionner" + # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5594 msgid "Select language" msgstr "Choisir langue" # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4943 msgid "Select nozzle preheat temperature which matches your material." msgstr "Selectionnez la temperature de prechauffage de la buse qui correspond a votre materiau." # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Select PLA filament:" msgstr "Selectionnez le filament PLA :" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "Auto-test OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Debut auto-test" # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5645 msgid "Selftest " msgstr "Auto-test" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Erreur auto-test !" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "Echec de l'auto-test" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1567 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Le Selftest sera\nlance pour calibrer\nla remise a zero\nprecise sans capteur" # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:2138 +msgid "Sensor info" +msgstr "Info capteur" + +# +#: ultralcd.cpp:3938 msgid "Sensor state" msgstr "Etat capteur" @@ -1708,17 +1973,17 @@ msgid "Sensors info" msgstr "Infos capteurs" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3227 msgid "Set temperature:" msgstr "Regler temp. :" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Reglages" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3005 msgid "Severe skew" msgstr "Deviation severe" @@ -1727,8 +1992,13 @@ msgstr "Deviation severe" msgid "Severe skew:" msgstr "Ecart severe :" +# +#: messages.c:58 +msgid "Sheet" +msgstr "Feuille" + # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5666 msgid "Show end stops" msgstr "Afficher butees" @@ -1743,7 +2013,7 @@ msgid "Sleep..." msgstr "Repos..." # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3004 msgid "Slight skew" msgstr "Deviation legere" @@ -1753,15 +2023,30 @@ msgid "Slight skew:" msgstr "Leger ecart :" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Certains fichiers ne\nseront pas tries.\nMax 100 fichiers\ntries par dossier." # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4833 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Problemes rencontres, nivellement de l'axe Z applique..." +# MSG_SORT_NONE c=17 r=1 +#: ultralcd.cpp:5230 +msgid "Sort [none]" +msgstr "Tri [aucun]" + +# MSG_SORT_TIME c=17 r=1 +#: ultralcd.cpp:5228 +msgid "Sort [time]" +msgstr "Tri [date]" + +# MSG_SORT_ALPHA c=17 r=1 +#: ultralcd.cpp:5229 +msgid "Sort [alphabet]" +msgstr "Tri [alphabet]" + # MSG_SORT_NONE c=17 r=1 #: ultralcd.cpp:4250 msgid "Sort: [None]" @@ -1803,117 +2088,132 @@ msgid "Sort: [time]" msgstr "Tri : [heure]" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Tri des fichiers" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "Son [fort]" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "Son [muet]" # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "Son [une fois]" +# +#: +msgid "Sound [assist]" +msgstr "Son [Assist]" + +# +#: sound.h:9 +msgid "Sound [blind]" +msgstr "Son [aveugle]" + # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "Son [silencieux]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Vitesse" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Tourne" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5098 msgid "SpoolJoin [on]" msgstr "SpoolJoin [on]" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5094 msgid "SpoolJoin [N/A]" msgstr "SpoolJoin [N/A]" # MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +#: ultralcd.cpp:5102 msgid "SpoolJoin [off]" msgstr "SpoolJoin [off]" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4330 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Une temperature\nambiante stable de\n21-26C et un support\nstable sont requis." # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Statistiques" +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "Plaques en acier" + # MSG_STEPPER_TOO_HIGH #: stepper.cpp:345 msgid "Steprate too high: " msgstr "Nombre de pas trop eleve :" # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "Arreter impression" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "ARRETE." # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "Support" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Echange" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "Calib. Temp." # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5581 msgid "Temp. cal. [on]" msgstr "Calib. Temp. [on]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5579 msgid "Temp. cal. [off]" msgstr "Calib. Temp.[off]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5675 msgid "Temp. calibration" msgstr "Calibration temp." # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5548 msgid "Temperature" msgstr "Temperature" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3864 msgid "Temperature calibration failed" msgstr "Echec de la\ncalibration en\ntemperature" @@ -1923,12 +2223,12 @@ msgid "Temperature calibration has not been run yet" msgstr "La calibration en\ntemperature n'a pas\nencore ete lancee" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "La calibration en\ntemperature est\nterminee et activee.\nLa calibration en\ntemperature peut\netre desactivee dans\nle menu Reglages->\nCal. Temp." # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2144 msgid "Temperatures" msgstr "Temperatures" @@ -1938,27 +2238,27 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "Il y a encore besoin d'effectuer la calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration." # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2217 msgid "to load filament" msgstr "pour charger le fil." # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2221 msgid "to unload filament" msgstr "pour decharger fil." # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1829 msgid "Total" msgstr "Total" # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "Total failures" msgstr "Total des echecs" # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2860 msgid "Total filament" msgstr "Filament total" @@ -1968,7 +2268,7 @@ msgid "Total filament :" msgstr "Total filament :" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2860 msgid "Total print time" msgstr "Temps total impr." @@ -1983,17 +2283,17 @@ msgid "TRIGGERED" msgstr "ACTIVE" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6641 msgid "Tune" msgstr "Regler" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2120 msgid "unknown" msgstr "inconnu" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Unload" msgstr "Decharger" @@ -2003,7 +2303,7 @@ msgid "Unload all" msgstr "Decharger tout" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "Decharger fil." @@ -2028,22 +2328,22 @@ msgid "Unload filament 4" msgstr "Decharger fil. 4" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Dechargement fil." # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4779 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Utilisez decharger pour retirer le filament 1 s'il depasse du tube arriere du MMU. Utilisez ejecter s'il est cache dans le tube." # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5803 msgid "Used during print" msgstr "Utilise pdt impr." # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2147 msgid "Voltages" msgstr "Tensions" @@ -2053,32 +2353,37 @@ msgid "volume.init failed" msgstr "Echec volume.init" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5225 msgid "Wait for user..." msgstr "Attente utilisateur..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3371 msgid "Waiting for nozzle and bed cooling" msgstr "Attente du\nrefroidissement des\nbuse et plateau" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3335 msgid "Waiting for PINDA probe cooling" msgstr "Attente du\nrefroidissement de\nla sonde PINDA" +# MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 +#: +msgid "WARNING:\nCrash detection\ndisabled in\nStealth mode" +msgstr "ATTENTION :\nDetection de crash\ndesactivee en mode\nFurtif" + # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1527 msgid "Warning: both printer type and motherboard type changed." msgstr "Attention : Types\nd'imprimante et de\ncarte mere modifies" # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1519 msgid "Warning: motherboard type changed." msgstr "Attention : Type de\ncarte mere modifie." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1523 msgid "Warning: printer type changed." msgstr "Attention : Type\nd'imprimante modifie" @@ -2088,17 +2393,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!" msgstr "ATTENTION : ceci est\nune build non\nofficielle et non\nsupportee. Utilisez\nla a votre propre\nrisque !" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3072 msgid "Was filament unload successful?" msgstr "Dechargement du\nfilament reussi ?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Erreur de cablage" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5642 msgid "Wizard" msgstr "Assistant" @@ -2117,23 +2422,28 @@ msgstr "Ecriture dans le fichier :" msgid "X-correct" msgstr "Correction-X" +# +#: ultralcd.cpp:5028 +msgid "X-correct:" +msgstr "Correct-X:" + # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2136 msgid "XYZ cal. details" msgstr "Details calib. XYZ" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "Calibration XYZ OK.\nL'ecart sera corrige\nautomatiquement." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3832 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "Calibration XYZ OK.\nLes axes X/Y sont\nlegerement non\nperpendiculaires.\nBon boulot !" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3813 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "Calibration XYZ\ncompromise. Les\npoints de\ncalibration avant ne\nsont pas\natteignables." @@ -2143,17 +2453,17 @@ msgid "XYZ calibration compromised. Left front calibration point not reachable." msgstr "Calibration XYZ\ncompromise. Le point\n de calibration\n avant gauche n'est\n pas atteignable." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibration XYZ\ncompromise. Le point\nde calibration avant\ndroit n'est pas\natteignable." # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3795 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Echec calibration\nXYZ. Le point de\ncalibration du\nplateau n'a pas ete\ntrouve." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3801 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Echec calibration\nXYZ. Les points de\ncalibration avant ne\nsont pas\natteignables." @@ -2168,17 +2478,17 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "Echec calibration\nXYZ. Consultez le\nmanuel." # -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Echec calibration\nXYZ. Le point de\ncalibration avant\ndroit n'est pas\natteignable." # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3829 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "Calibration XYZ OK.\nLes axes X/Y sont\nperpendiculaires.\nFelicitations !" # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2965 msgid "Y distance from min" msgstr "Distance Y du min" @@ -2192,8 +2502,13 @@ msgstr "Distance Y du mini :" msgid "Y-correct" msgstr "Correction-Y" +# +#: ultralcd.cpp:5029 +msgid "Y-correct:" +msgstr "Correct-Y:" + # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Oui" @@ -2208,11 +2523,26 @@ msgid "You are using firmware beta version. This is development version. Using t msgstr "Vous utilisez un\nfirmware en version\nbeta. C'est une\nversion de dev.\nCeci n'est pas\nrecommande et peut\nendommager\nl'imprimante." # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "Vous pouvez toujours\nrelancer l'assistant\ndans Calibration->\nAssistant." +# +#: ultralcd.cpp:5030 +msgid "Z-correct:" +msgstr "Correct-Z:" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "Sonde-Z num. [1]" + +# +#: ultralcd.cpp:6954 +msgid "Z-probe nr. [3]" +msgstr "Sonde-Z num. [3]" + # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3024 msgid "[0;0] point offset" msgstr "Offset point [0;0]" diff --git a/lang/po/new/it.po b/lang/po/new/it.po index 17a882485..c226463bf 100644 --- a/lang/po/new/it.po +++ b/lang/po/new/it.po @@ -17,6 +17,11 @@ msgstr "\e[2JRilev. impatto\e[1;0Hattivabile solo\e[2;0Hin Modalita normale" msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode" msgstr "\e[2JATTENZIONE:\e[1;0HRilev. impatto\e[2;0Hdisattivato in\e[3;0HModalita silenziosa" +# +#: ultralcd.cpp:3913 +msgid " 1" +msgstr " 1" + # MSG_PLANNER_BUFFER_BYTES #: Marlin_main.cpp:1184 msgid " PlannerBufferBytes: " @@ -48,10 +53,15 @@ msgid " of 4" msgstr " su 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr "su 9" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr " [off]" + # MSG_FACTOR #: ultralcd.cpp:6008 msgid " \002 Fact" @@ -68,7 +78,7 @@ msgid " \002 Min" msgstr " \002 Min" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2294 msgid ">Cancel" msgstr ">Annulla" @@ -77,33 +87,38 @@ msgstr ">Annulla" msgid "Adjusting Z" msgstr "Compensazione Z" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3144 +msgid "Adjusting Z:" +msgstr "Compensazione Z:" + # MSG_ALL c=19 r=1 #: messages.c:11 msgid "All" msgstr "Tutti" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Nessun errore" # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "Tutto fatto. Buona stampa!" # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1979 msgid "Ambient" msgstr "Ambiente" # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2573 msgid "and press the knob" msgstr "e cliccare manopola" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3442 msgid "Are left and right Z~carriages all up?" msgstr "I carrelli Z sin/des sono altezza max?" @@ -133,27 +148,27 @@ msgid "Auto home" msgstr "Trova origine" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6731 msgid "AutoLoad filament" msgstr "Autocaric. filam." # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4375 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "Caricamento auto. filam. disp. solo con il sensore attivo..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2768 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "Il caricamento automatico e attivo, premete la manopola e inserite il filamento..." # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Assi" # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Lunghezza dell'asse" @@ -167,13 +182,18 @@ msgstr "Babystepping X" msgid "Babystepping Y" msgstr "Babystepping Y" +# +#: messages.c:57 +msgid "Back" +msgstr "Indietro" + # MSG_BED #: messages.c:15 msgid "Bed" msgstr "Letto" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Letto/Riscald." @@ -188,7 +208,7 @@ msgid "Bed Heating" msgstr "Riscald. letto" # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5663 msgid "Bed level correct" msgstr "Correz. liv.letto" @@ -213,17 +233,17 @@ msgid "Begin file list" msgstr "Inizio lista file" # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2007 msgid "Belt status" msgstr "Stato delle cinghie" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "C'e stato un Blackout. Recuperare la stampa?" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4566 msgid "Calibrate" msgstr "Calibra" @@ -233,7 +253,7 @@ msgid "Calibrate E" msgstr "Calibra E" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5652 msgid "Calibrate XYZ" msgstr "Calibra XYZ" @@ -243,12 +263,12 @@ msgid "Calibrate Z" msgstr "Calibra Z" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" msgstr "Calibrazione Home" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibrazione XYZ. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare." @@ -258,22 +278,22 @@ msgid "Calibrating Z" msgstr "Calibrando Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Calibrazione Z. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare." # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "Calibrazione" # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:832 msgid "Calibration done" msgstr "Calibrazione completa" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Cancel" msgstr "Annulla" @@ -293,7 +313,7 @@ msgid "Card inserted" msgstr "SD inserita" # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "SD rimossa" @@ -313,12 +333,12 @@ msgid "Change SD card" msgstr "Cambia memoria SD" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2584 msgid "Change success!" msgstr "Cambio riuscito!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2661 msgid "Changed correctly?" msgstr "Cambiato correttamente?" @@ -328,40 +348,45 @@ msgid "Changing filament!" msgstr "Cambiando filam." # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Verifica piano" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Verifica finecorsa" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Verifica ugello" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Controllo sensori" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Verifica asse X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Verifica asse Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Verifica asse Z" +# +#: ultralcd.cpp:5537 +msgid "Checks" +msgstr "Controlli" + # MSG_ERR_CHECKSUM_MISMATCH #: cmdqueue.cpp:444 msgid "checksum mismatch, Last Line: " @@ -378,7 +403,7 @@ msgid "Choose filament:" msgstr "Scegliere filamento:" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2673 msgid "Color not correct" msgstr "Colore non puro" @@ -393,12 +418,12 @@ msgid "Copy selected language from XFLASH?" msgstr "Copiare la lingua selezionata da XFLASH?" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4499 msgid "Copy selected language?" msgstr "Copiare la lingua selezionata?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Crash" msgstr "Impatto" @@ -423,22 +448,27 @@ msgid "Crash detected." msgstr "Rilevato impatto." # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:618 msgid "Crash detected. Resume print?" msgstr "Scontro rilevato. Riprendere la stampa?" +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +msgid "Crash detection can\nbe turned on only in\nNormal mode" +msgstr "Rilevamento impatto può\nessere attivato in\nModalità Normale" + # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5804 msgid "Current" msgstr "Attuale" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2106 msgid "Date:" msgstr "Data:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5552 msgid "Disable steppers" msgstr "Disabilita motori" @@ -448,7 +478,7 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "Distanza tra la punta dell'ugello e la superficie del letto non ancora imposta. Si prega di seguire il manuale, capitolo Primi Passi, sezione Calibrazione primo layer." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4968 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "Desideri ripetere l'ultimo passaggio per migliorare la distanza fra ugello e piatto?" @@ -462,13 +492,18 @@ msgstr "Calibrazione E terminata. Si prega di pulire l'ugello. Click per continu msgid "E-correct" msgstr "Correzione-E" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5032 +msgid "E-correct:" +msgstr "Correzione-E:" + # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Eject" msgstr "Espellere" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "Espelli filamento " @@ -498,7 +533,7 @@ msgid "Eject filament 5" msgstr "Espelli filamento 5" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1435 msgid "Ejecting filament" msgstr "Espellendo filamento " @@ -508,17 +543,17 @@ msgid "End file list" msgstr "Fine lista file" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "Finecorsa" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Finecorsa fuori portata" # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "Finecorsa" @@ -538,7 +573,7 @@ msgid "enqueing \"" msgstr "accodamento\"" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Errore - la memoria statica e stata sovrascritta" @@ -553,7 +588,7 @@ msgid "ERROR:" msgstr "ERRORE:" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4388 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "ERRORE: il sensore filam. non risponde,Controllare conness." @@ -588,17 +623,17 @@ msgid "Extruder 4" msgstr "Estrusore 4" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Ventola estrusore:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2137 msgid "Extruder info" msgstr "Info estrusore" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5066 msgid "F. autoload [on]" msgstr "Autocar.filam[on]" @@ -608,37 +643,42 @@ msgid "F. autoload [N/A]" msgstr "Autocar.fil.[N/A]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5068 msgid "F. autoload [off]" msgstr "Autocar.fil.[off]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" msgstr "Statistiche fallimenti" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" msgstr "Statistiche fallimenti MMU" +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "Falso innesco" + # MSG_FAN_SPEED c=14 #: messages.c:31 msgid "Fan speed" msgstr "Velocita ventola" # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Test ventola" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5561 msgid "Fans check [on]" -msgstr "Controllo ventole [on]" +msgstr "Control.vent[on]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5563 msgid "Fans check [off]" msgstr "Control.vent[off]" @@ -653,7 +693,7 @@ msgid "Fil. sensor response is poor, disable it?" msgstr "Risposta Sens. Fil. debole, disattivare? " # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5046 msgid "Fil. sensor [N/A]" msgstr "Sensor filam[N/A]" @@ -663,7 +703,7 @@ msgid "Fil. sensor [off]" msgstr "Sensor filam[off]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Filam. runouts" msgstr "Filam. esauriti" @@ -678,12 +718,12 @@ msgid "Filament extruding & with correct color?" msgstr "Filamento estruso & con il giusto colore?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2669 msgid "Filament not loaded" msgstr "Fil. non caricato" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Sensore filam." @@ -693,7 +733,7 @@ msgid "Filament sensor:" msgstr "Sensore filam.:" # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2838 msgid "Filament used" msgstr "Filamento utilizzato" @@ -703,7 +743,7 @@ msgid "Filament used: " msgstr "Filamento usato:" # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "File incompleto. Continuare comunque?" @@ -717,53 +757,103 @@ msgstr "File aperto: " msgid "File selected" msgstr "File selezionato" +# +#: ultralcd.cpp:3943 +msgid "FINDA:" +msgstr "FINDA:" + # MSG_FINISHING_MOVEMENTS c=20 r=1 #: messages.c:40 msgid "Finishing movements" msgstr "Finalizzando gli spostamenti" +# +#: ultralcd.cpp:5443 +msgid "Firmware [none]" +msgstr "Firmware [nessuno]" + +# +#: ultralcd.cpp:5446 +msgid "Firmware [warn]" +msgstr "Firmware [avviso]" + +# +#: ultralcd.cpp:5449 +msgid "Firmware [strict]" +msgstr "Firmware [esatto]" + # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Calibrazione primo layer." # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4880 msgid "First, I will run the selftest to check most common assembly problems." msgstr "Per primo avviero l'autotest per controllare gli errori di assemblaggio piu comuni." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Risolvi il problema e quindi premi il bottone sull'unita MMU. " # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Flusso" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2099 msgid "forum.prusa3d.com" msgstr "forum.prusa3d.com" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Ventola frontale?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3217 msgid "Front side[um]" msgstr "Fronte [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Ventola frontale/sinistra" +# +#: util.cpp:510 +msgid "G-code sliced for a different level. Continue?" +msgstr "G-code processato per un livello diverso. Continuare?" + +# +#: util.cpp:516 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "G-code processato per un livello diverso. Per favore esegui nuovamente lo slice del modello. Stampa annullata." + +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "G-code processato per una stampante diversa. Continuare?" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "G-code processato per una stampante diversa. Per favore esegui nuovamente lo slice del modello. Stampa annullata." + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "G-code processato per un firmware più recente. Continuare?" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "G-code processato per un firmware più recente. Per favore aggiorna il firmware. Stampa annullata." + # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Riscald./Termist." @@ -773,7 +863,7 @@ msgid "Heating" msgstr "Riscaldamento..." # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8411 msgid "Heating disabled by safety timer." msgstr "Riscaldamento fermato dal timer di sicurezza." @@ -783,27 +873,32 @@ msgid "Heating done." msgstr "Riscald. completo" # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4859 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Ciao, sono la tua stampante Original Prusa i3. Gradiresti un aiuto nel processo di configurazione?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2100 msgid "howto.prusa3d.com" msgstr "howto.prusa3d.com" +# +#: messages.c:87 +msgid "HW Setup" +msgstr "Installazione HW" + # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4889 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Adesso avviero una Calibrazione XYZ. Puo durare circa 12 min." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4897 msgid "I will run z calibration now." msgstr "Adesso avviero la Calibrazione Z." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4962 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "Adesso iniziero a stampare una linea e tu dovrai abbassare l'ugello poco per volta ruotando la manopola sino a raggiungere una altezza ottimale. Per favore dai uno sguardo all'immagine del nostro manuale, cap.Calibrazione." @@ -813,7 +908,7 @@ msgid "Improving bed calibration point" msgstr "Perfezion. punto di calibraz. letto" # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Schermata info" @@ -823,7 +918,7 @@ msgid "Init. SD card" msgstr "Inizializza scheda SD" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2569 msgid "Insert filament" msgstr "Inserire filamento" @@ -848,27 +943,32 @@ msgid "Insert filament into extruder 4. Click when done." msgstr "Inserire filamento nell'estrusore 4. Click per continuare" # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:3947 +msgid "IR:" +msgstr "IR:" + +# +#: ultralcd.cpp:4922 msgid "Is filament 1 loaded?" msgstr "Il filamento 1 e caricato?" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4925 msgid "Is filament loaded?" msgstr "Il filamento e stato caricato?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4956 msgid "Is it PLA filament?" msgstr "E' un filamento di PLA?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4701 msgid "Is PLA filament loaded?" msgstr "E' stato caricato il filamento di PLA?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" msgstr "La piastra d'acciaio e sul piano riscaldato?" @@ -883,29 +983,29 @@ msgid "KILLED. " msgstr "IN TILT." # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1828 msgid "Last print" msgstr "Ultima stampa" # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1845 msgid "Last print failures" msgstr "Fallimenti ultima stampa" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2967 msgid "Left" msgstr "Sinistra" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Vent SX hotend?" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3215 msgid "Left side [um]" -msgstr "Lato sinistro [um]" +msgstr "Sinistra [um]" # MSG_LEFT c=12 r=1 #: ultralcd.cpp:2308 @@ -913,7 +1013,7 @@ msgid "Left:" msgstr "Sinistra:" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5575 msgid "Lin. correction" msgstr "Correzione lin." @@ -923,7 +1023,7 @@ msgid "Live adjust Z" msgstr "Compensazione Z" # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6059 msgid "Load all" msgstr "Caricare tutti" @@ -958,12 +1058,12 @@ msgid "Load filament 5" msgstr "Caricare fil. 5" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6714 msgid "Load to nozzle" msgstr "Carica ugello" # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2609 msgid "Loading color" msgstr "Caricando colore" @@ -973,7 +1073,7 @@ msgid "Loading filament" msgstr "Caricando filamento" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Puleggia lenta" @@ -993,7 +1093,7 @@ msgid "M109 Invalid extruder " msgstr "M109 Estrusore non valido" # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Calibrazione primo layer." @@ -1012,8 +1112,23 @@ msgstr "M218 Estrusore non valido" msgid "M221 Invalid extruder " msgstr "M221 Estrusore non valido" +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "Comp. Magneti [on]" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "Comp. Magneti [N/A]" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "Comp. Magneti [off]" + # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Menu principale" @@ -1023,9 +1138,9 @@ msgid "Mark filament 100mm from extruder body. Click when done." msgstr "Segnare il filamento a 100 mm di distanza dal corpo dell'estrusore. Click per continuare." # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3002 msgid "Measured skew" -msgstr "Disassamento misurato" +msgstr "Deviazione misurata" # MSG_MEASURED_SKEW c=15 r=1 #: ultralcd.cpp:2335 @@ -1033,32 +1148,67 @@ msgid "Measured skew:" msgstr "Distorsione misurata:" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Misura altezza di rif. del punto di calib." +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "Griglia [3x3]" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "Griglia [7x7]" + # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5658 msgid "Mesh Bed Leveling" msgstr "Mesh livel. letto" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:5572 +msgid "Mesh bed leveling" +msgstr "Mesh livel. letto" + +# +#: Marlin_main.cpp:881 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Rilevato firmware MK3 su stampante MK3S" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "Firmware MK3S rilevato su stampante MK3" + +# +#: ultralcd.cpp:1845 msgid "MMU fails" msgstr "Fallimenti MMU" # -#: mmu.cpp:1399 +#: mmu.cpp:1617 msgid "MMU load failed " msgstr "Caricamento MMU fallito" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1845 msgid "MMU load fails" msgstr "Caricamenti MMU falliti" # -#: mmu.cpp:635 +#: ultralcd.cpp:5204 +msgid "MMU Mode [Normal]" +msgstr "Modalità MMU [Normale]" + +# +#: ultralcd.cpp:5205 +msgid "MMU Mode[Stealth]" +msgstr "Modalità MMU [Silenziosa]" + +# +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "Il MMU richiede attenzione dall'utente." @@ -1068,82 +1218,102 @@ msgid "MMU needs user attention. Fix the issue and then press button on MMU unit msgstr "MMU richiede l'attenzione dell'utente. Risolvi il problema e quindi premi il bottone sull'unità MMU. " # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. riprendendo la posizione... " # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Ripristino temperatura... " # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Riprendendo... " # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "MMU power fails" msgstr "Mancanza corrente MMU" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2112 msgid "MMU2 connected" msgstr "MMU2 connessa" # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "Modo [normale]" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Modo [silenzioso]" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" msgstr "Modo [Silenziosa]" +# +#: ultralcd.cpp:4424 +msgid "Mode change in progress ..." +msgstr "Cambio modalità in corso ..." + # MSG_AUTO_MODE_ON #: messages.c:12 msgid "Mode [auto power]" msgstr "Modo [auto]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "Mode [forte]" +# +#: ultralcd.cpp:5404 +msgid "Model [none]" +msgstr "Modello [nessuno]" + +# +#: ultralcd.cpp:5407 +msgid "Model [warn]" +msgstr "Modello [avviso]" + +# +#: ultralcd.cpp:5410 +msgid "Model [strict]" +msgstr "Modello [esatto]" + # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "Motore" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5550 msgid "Move axis" msgstr "Muovi asse" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4291 msgid "Move X" -msgstr "Muovi X" +msgstr "Sposta X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4292 msgid "Move Y" -msgstr "Muovi Y" +msgstr "Sposta Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4293 msgid "Move Z" -msgstr "Muovi Z" +msgstr "Sposta Z" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2973 msgid "N/A" msgstr "N/A" @@ -1153,7 +1323,7 @@ msgid "New firmware version available:" msgstr "Nuova versione firmware disponibile:" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "No" @@ -1168,12 +1338,12 @@ msgid "No Checksum with line number, Last Line: " msgstr "Nessun checksum con numero di riga, ultima riga:" # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5254 msgid "No move." msgstr "Nessun movimento." # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6694 msgid "No SD card" msgstr "Nessuna SD" @@ -1183,37 +1353,67 @@ msgid "No thermistors - no temperature" msgstr "No termistore - no temperatura" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "Non connesso" # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Non gira" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4961 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "Adesso calibro la distanza fra ugello e superfice del piatto." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4905 msgid "Now I will preheat nozzle for PLA." msgstr "Adesso preriscaldero l'ugello per PLA." # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4896 msgid "Now remove the test print from steel sheet." msgstr "Ora rimuovete la stampa di prova dalla piastra in acciaio." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Ugello" # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:5319 +msgid "Nozzle [none]" +msgstr "Ugello [nessuno]" + +# +#: ultralcd.cpp:5322 +msgid "Nozzle [warn]" +msgstr "Ugello [avviso]" + +# +#: ultralcd.cpp:5325 +msgid "Nozzle [strict]" +msgstr "Ugello [esatto]" + +# +#: ultralcd.cpp:5365 +msgid "Nozzle d. [0.25]" +msgstr "Diam. Ugello [0.25]" + +# +#: ultralcd.cpp:5368 +msgid "Nozzle d. [0.40]" +msgstr "Diam. Ugello [0.40]" + +# +#: ultralcd.cpp:5371 +msgid "Nozzle d. [0.60]" +msgstr "Diam. Ugello [0.60]" + +# +#: ultralcd.cpp:1787 msgid "Nozzle FAN" msgstr "Ventola estrusore" @@ -1238,9 +1438,9 @@ msgid "ok" msgstr "ok" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1535 msgid "Old settings found. Default PID, Esteps etc. will be set." -msgstr "Sono state trovate impostazioni vecchie. I valori di default di PID, Esteps etc. saranno impostati" +msgstr "Sono state trovate impostazioni vecchie. Verranno impostati i valori predefiniti di PID, Esteps etc." # MSG_ENDSTOP_OPEN #: messages.c:29 @@ -1258,7 +1458,7 @@ msgid "openRoot failed" msgstr "openRoot fallito" # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6657 msgid "Pause print" msgstr "Metti in pausa" @@ -1268,42 +1468,47 @@ msgid "Pick print" msgstr "Scegli stampa" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1613 msgid "PID cal. " msgstr "Calibrazione PID" # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1619 msgid "PID cal. finished" msgstr "Calib. PID completa" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5664 msgid "PID calibration" msgstr "Calibrazione PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:862 msgid "PINDA Heating" msgstr "Riscaldamento PINDA" +# +#: ultralcd.cpp:3939 +msgid "PINDA:" +msgstr "PINDA:" + # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "Posizionare un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere subito la stampante." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Verifica:" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Per favore consulta il nostro manuale per risolvere il problema. Poi riprendi il Wizard dopo aver riavviato la stampante." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4970 msgid "Please clean heatbed and then press the knob." msgstr "Per favore pulisci il piatto, poi premi la manopola." @@ -1313,12 +1518,12 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Pulire l'ugello per la calibrazione, poi fare click." # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4804 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "Per favore inserisci il filamento di PLA nell'estrusore, poi premi la manopola per caricare." # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4800 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Per favore inserite del filamento PLA nel primo tubo del MMU, poi premete la manopola per caricarlo." @@ -1328,52 +1533,52 @@ msgid "Please load PLA filament and then resume Wizard by rebooting the printer. msgstr "Per favore carica filamento di PLA e riprendi il Wizard dopo aver riavviato la stampante." # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4706 msgid "Please load PLA filament first." msgstr "Per favore prima carica il filamento di PLA." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3083 msgid "Please open idler and remove filament manually." msgstr "Aprire la guida filam. e rimuovere il filam. a mano" # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "Per favore posizionate la piastra d'acciaio sul piano riscaldato." # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Premete la manopola per scaricare il filamento " # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Estrarre il filamento immediatamente" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1441 msgid "Please remove filament and then press the knob." msgstr "Rimuovi il filamento e quindi premi la manopola. " # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4895 msgid "Please remove shipping helpers first." msgstr "Per favore rimuovete i materiali da spedizione" # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "Rimuovete la piastra di acciaio dal piano riscaldato" # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4317 msgid "Please run XYZ calibration first." msgstr "Esegui la calibrazione XYZ prima. " # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1360 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Aggiorna il firmware sul tuo MMU2. In attesa di reset. " @@ -1383,12 +1588,12 @@ msgid "Please upgrade." msgstr "Prego aggiornare." # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Attendere" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Power failures" msgstr "Mancanza corrente" @@ -1398,27 +1603,37 @@ msgid "PowerUp" msgstr "Accendi" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6644 msgid "Preheat" msgstr "Preriscalda" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Prerisc. ugello!" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "Preriscaldando l'ugello. Attendere prego." # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2290 +msgid "Preheating to cut" +msgstr "Preriscaldamento per taglio" + +# +#: ultralcd.cpp:2287 +msgid "Preheating to eject" +msgstr "Preriscaldamento per espulsione" + +# +#: ultralcd.cpp:2280 msgid "Preheating to load" msgstr "Preriscaldamento per caricare" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2284 msgid "Preheating to unload" msgstr "Preriscaldamento per scaricare" @@ -1428,27 +1643,27 @@ msgid "Prepare new filament" msgstr "Preparare il nuovo filamento" # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10312 msgid "Press knob to preheat nozzle and continue." msgstr "Premete la manopola per preriscaldare l'ugello e continuare." # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2210 msgid "Press the knob" msgstr "Premere la manopola" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Premete la manopola per recuperare la temperatura dell'ugello." # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Stampa interrotta" # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1789 msgid "Print FAN" msgstr "Ventola di stampa" @@ -1458,7 +1673,7 @@ msgid "Print FAN: " msgstr "Ventola di stampa:" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "Ventola di stampa:" @@ -1468,12 +1683,12 @@ msgid "Print from SD" msgstr "Stampa da SD" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1080 msgid "Print paused" msgstr "Stampa in pausa" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2838 msgid "Print time" msgstr "Tempo di stampa" @@ -1487,6 +1702,26 @@ msgstr "Tempo di stampa:" msgid "Printer disconnected" msgstr "Stampante sconnessa" +# +#: util.cpp:473 +msgid "Printer FW version differs from the G-code. Continue?" +msgstr "Versione FW stampante diversa dal G-Code. Continuare?" + +# +#: util.cpp:480 +msgid "Printer FW version differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Versione FW stampante diversa dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata." + +# +#: util.cpp:506 +msgid "Printer G-code level differs from the G-code. Continue?" +msgstr "Il livello G-code della stampante è diverso dal G-Code. Continuare?" + +# +#: util.cpp:513 +msgid "Printer G-code level differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Il livello G-code della stampante è diverso dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata." + # MSG_ERR_KILLED #: Marlin_main.cpp:7547 msgid "Printer halted. kill() called!" @@ -1497,6 +1732,26 @@ msgstr "Stampante ferma. kill () chiamato!" msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow." msgstr "Stampante non ancora calibrata. Si prega di seguire il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione." +# +#: util.cpp:423 +msgid "Printer model differs from the G-code. Continue?" +msgstr "Modello stampante diversa dal G-Code. Continuare?" + +# +#: util.cpp:430 +msgid "Printer model differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Il modello stampante è diverso dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata." + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Diametro ugello diverso da G-Code. Continuare?" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Diametro ugello diverso dal G-Code. Controlla il valore nelle impostazioni. Stampa annullata." + # MSG_ERR_STOPPED #: messages.c:32 msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" @@ -1512,6 +1767,11 @@ msgstr "Prusa i3 MK2 pronta." msgid "Prusa i3 MK2.5 ready." msgstr "Prusa i3 MK2.5 ready." +# +#: +msgid "Prusa i3 MK3 OK." +msgstr "Prusa i3 MK3 OK." + # WELCOME_MSG c=20 #: msgid "Prusa i3 MK3 ready." @@ -1523,17 +1783,17 @@ msgid "Prusa i3 MK3S OK." msgstr "Prusa i3 MK3S OK." # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2098 msgid "prusa3d.com" msgstr "prusa3d.com" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3218 msgid "Rear side [um]" msgstr "Retro [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9712 msgid "Recovering print " msgstr "Recupero stampa" @@ -1543,10 +1803,15 @@ msgid "Refresh" msgstr "Refresh" # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Rimuovi il filamento precedente e premi la manopola per caricare il nuovo filamento. " +# +#: ultralcd.cpp:6605 +msgid "Rename" +msgstr "Rinomina" + # MSG_M119_REPORT #: Marlin_main.cpp:5297 msgid "Reporting endstop status" @@ -1563,32 +1828,32 @@ msgid "Resend: " msgstr "Invia di nuovo: " # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3219 msgid "Reset" msgstr "Reset" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5669 msgid "Reset XYZ calibr." msgstr "Reset calibrazione XYZ." # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6664 msgid "Resume print" msgstr "Riprendi stampa" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "Riprendi stampa" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2968 msgid "Right" msgstr "Destra" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3216 msgid "Right side[um]" msgstr "Destra [um]" @@ -1603,22 +1868,22 @@ msgid "Rotate knob until mark reaches extruder body. Click when done." msgstr "Ruota la manopola finchè il segno raggiunga il corpo dell'estrusore. Clicca per continuare." # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5587 msgid "RPi port [on]" msgstr "Porta RPi [on]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5585 msgid "RPi port [off]" msgstr "Porta RPi [off]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4723 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Se avvi il Wizard perderai la calibrazione preesistente e dovrai ricominciare dall'inizio. Continuare?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5220 msgid "SD card [normal]" msgstr "Mem. SD [normale]" @@ -1633,7 +1898,7 @@ msgid "SD card [FlshAir]" msgstr "Mem. SD [FlashAir]" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5218 msgid "SD card [flshAir]" msgstr "Mem. SD [flshAir]" @@ -1652,53 +1917,63 @@ msgstr "SD stampa byte " msgid "Searching bed calibration point" msgstr "Ricerca dei punti di calibrazione del piano" +# +#: ultralcd.cpp:6601 +msgid "Select" +msgstr "Seleziona" + # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5594 msgid "Select language" msgstr "Seleziona lingua" # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4943 msgid "Select nozzle preheat temperature which matches your material." msgstr "Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale." # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Select PLA filament:" msgstr "Selezionate filamento PLA:" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "Autotest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Avvia autotest" # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5645 msgid "Selftest " msgstr "Autotest" # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Errore Autotest !" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "Autotest fallito" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1567 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Verra effettuato un self test per calibrare l'homing senza sensori" # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:2138 +msgid "Sensor info" +msgstr "Info Sensore" + +# +#: ultralcd.cpp:3938 msgid "Sensor state" msgstr "Stato sensore" @@ -1708,27 +1983,32 @@ msgid "Sensors info" msgstr "Info Sensori" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3227 msgid "Set temperature:" msgstr "Imposta temperatura:" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Impostazioni" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3005 msgid "Severe skew" -msgstr "Disassamento grave" +msgstr "Deviazione grave" # MSG_SEVERE_SKEW c=15 r=1 #: ultralcd.cpp:2346 msgid "Severe skew:" msgstr "Distorsione grave:" +# +#: messages.c:58 +msgid "Sheet" +msgstr "Piano" + # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5666 msgid "Show end stops" msgstr "Stato finecorsa" @@ -1743,9 +2023,9 @@ msgid "Sleep..." msgstr "Sospensione..." # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3004 msgid "Slight skew" -msgstr "Disassamento lieve" +msgstr "Deviazione lieve" # MSG_SLIGHT_SKEW c=15 r=1 #: ultralcd.cpp:2342 @@ -1753,15 +2033,30 @@ msgid "Slight skew:" msgstr "Distorsione leggera:" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati." # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4833 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Sono stati rilevati problemi, avviato livellamento Z ..." +# MSG_SORT_NONE c=17 r=1 +#: ultralcd.cpp:5230 +msgid "Sort [none]" +msgstr "Ordina [nessuno]" + +# MSG_SORT_TIME c=17 r=1 +#: ultralcd.cpp:5228 +msgid "Sort [time]" +msgstr "Ordina [tempo]" + +# MSG_SORT_ALPHA c=17 r=1 +#: ultralcd.cpp:5229 +msgid "Sort [alphabet]" +msgstr "Ordine [alfabetico]" + # MSG_SORT_NONE c=17 r=1 #: ultralcd.cpp:4250 msgid "Sort: [None]" @@ -1803,117 +2098,132 @@ msgid "Sort: [time]" msgstr "Ordina: [time]" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Ordinando i file" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "Suono [forte]" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "Suono [mute]" # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "Suono [singolo]" +# +#: +msgid "Sound [assist]" +msgstr "Suono [assistito]" + +# +#: sound.h:9 +msgid "Sound [blind]" +msgstr "Suono [cieco]" + # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "Suono[silenzioso]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Velocita" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Gira" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5098 msgid "SpoolJoin [on]" msgstr "SpoolJoin [on]" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5094 msgid "SpoolJoin [N/A]" msgstr "SpoolJoin [N/A]" # MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +#: ultralcd.cpp:5102 msgid "SpoolJoin [off]" msgstr "SpoolJoin [off]" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4330 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Sono necessari una temperatura ambiente di 21-26C e una superficie rigida " # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Statistiche" +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "Piani d'acciaio" + # MSG_STEPPER_TOO_HIGH #: stepper.cpp:345 msgid "Steprate too high: " msgstr "Velocità passo troppo alta: " # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" msgstr "Arresta stampa" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "ARRESTATO." # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "Supporto" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Scambiato" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "Calib. temp. " # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5581 msgid "Temp. cal. [on]" msgstr "Calib. temp. [ON]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5579 msgid "Temp. cal. [off]" msgstr "Calib. temp.[OFF]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5675 msgid "Temp. calibration" msgstr "Calib. Temp." # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5548 msgid "Temperature" msgstr "Temperatura" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3864 msgid "Temperature calibration failed" msgstr "Calibrazione temperatura fallita" @@ -1923,12 +2233,12 @@ msgid "Temperature calibration has not been run yet" msgstr "Calibrazione della temperatura non ancora eseguita" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "Calibrazione temperatura completata e attiva. Puo essere disattivata dal menu Impostazioni ->Cal. Temp." # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2144 msgid "Temperatures" msgstr "Temperature" @@ -1938,27 +2248,27 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "E ancora necessario effettuare la calibrazione Z. Segui il manuale, capitolo Primi Passi, sezione Sequenza di Calibrazione. " # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2217 msgid "to load filament" msgstr "per caricare il filamento" # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2221 msgid "to unload filament" msgstr "per scaricare il filamento" # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1829 msgid "Total" msgstr "Totale" # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "Total failures" msgstr "Totale fallimenti" # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2860 msgid "Total filament" msgstr "Filamento totale" @@ -1968,7 +2278,7 @@ msgid "Total filament :" msgstr "Filamento tot:" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2860 msgid "Total print time" msgstr "Tempo di stampa totale" @@ -1983,17 +2293,17 @@ msgid "TRIGGERED" msgstr "ATTIVATO" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6641 msgid "Tune" msgstr "Regola" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2120 msgid "unknown" msgstr "sconosciuto" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Unload" msgstr "Scarica" @@ -2003,9 +2313,9 @@ msgid "Unload all" msgstr "Rilasciare tutti" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" -msgstr "Scarica filam." +msgstr "Scarica filamento" # MSG_UNLOAD_FILAMENT_1 c=17 #: ultralcd.cpp:5406 @@ -2028,22 +2338,22 @@ msgid "Unload filament 4" msgstr "Scarica filam. 4" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Scaricando filamento" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4779 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Usate lo scaricamento per rimuovere il filamento 1 se protrude dal retro del tubo posteriore del MMu. Utilizzate l'espulsione se e nascosto nel tubo." # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5803 msgid "Used during print" msgstr "Usati nella stampa" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2147 msgid "Voltages" msgstr "Voltaggi" @@ -2053,32 +2363,37 @@ msgid "volume.init failed" msgstr "volume.init fallito" # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5225 msgid "Wait for user..." msgstr "Attendendo utente..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3371 msgid "Waiting for nozzle and bed cooling" msgstr "In attesa del raffreddamento dell'ugello e del piano" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3335 msgid "Waiting for PINDA probe cooling" msgstr "In attesa del raffreddamento della sonda PINDA" +# MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 +#: +msgid "WARNING:\nCrash detection\ndisabled in\nStealth mode" +msgstr "ATTENZIONE:\nRilevamento impatto\ndisattivato in\nModalità Silenziosa" + # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1527 msgid "Warning: both printer type and motherboard type changed." msgstr "Attenzione: tipo di stampante e di scheda madre cambiati." # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1519 msgid "Warning: motherboard type changed." msgstr "Avviso: tipo di scheda madre cambiato" # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1523 msgid "Warning: printer type changed." msgstr "Avviso: tipo di stampante cambiato." @@ -2088,17 +2403,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!" msgstr "ATTENZIONE: Questo è un build non ufficiale, non supportato. Utilizzatelo a vostro rischio!" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3072 msgid "Was filament unload successful?" msgstr "Filamento scaricato con successo?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Errore cablaggio" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5642 msgid "Wizard" msgstr "Wizard" @@ -2117,23 +2432,28 @@ msgstr "Scrittura su file: " msgid "X-correct" msgstr "Correzione-X" +# +#: ultralcd.cpp:5028 +msgid "X-correct:" +msgstr "Correzione-X:" + # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2136 msgid "XYZ cal. details" msgstr "XYZ Cal. dettagli" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "Calibrazione XYZ corretta. La distorsione verra compensata automaticamente." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3832 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3813 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili." @@ -2143,17 +2463,17 @@ msgid "XYZ calibration compromised. Left front calibration point not reachable." msgstr "Calibrazione XYZ compromessa. Punto anteriore sinistro non raggiungibile." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3795 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Calibrazione XYZ fallita. Il punto di calibrazione sul letto non e' stato trovato." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3801 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Calibrazione XYZ fallita. Punti anteriori non raggiungibili." @@ -2168,17 +2488,17 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "Calibrazione XYZ fallita. Si prega di consultare il manuale." # -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile." # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3829 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!" # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2965 msgid "Y distance from min" msgstr "Distanza Y dal min" @@ -2192,8 +2512,13 @@ msgstr "Distanza Y da min:" msgid "Y-correct" msgstr "Correzione-Y" +# +#: ultralcd.cpp:5029 +msgid "Y-correct:" +msgstr "Correzione-Y:" + # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Si" @@ -2208,11 +2533,26 @@ msgid "You are using firmware beta version. This is development version. Using t msgstr "State utilizzando una versione beta del firmware. Questa versione è in via di sviluppo. L'utilizzo non è raccomandato e potrebbe causare danni alla stampante." # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "E possibile riprendere il Wizard in qualsiasi momento attraverso Calibrazione -> Wizard." +# +#: ultralcd.cpp:5030 +msgid "Z-correct:" +msgstr "Correzione-Z:" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "Z-probe nr. [1]" + +# +#: ultralcd.cpp:6954 +msgid "Z-probe nr. [3]" +msgstr "Z-probe nr. [3]" + # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3024 msgid "[0;0] point offset" msgstr "[0;0] punto offset" diff --git a/lang/po/new/pl.po b/lang/po/new/pl.po index 5596bc2c9..e30df0e07 100644 --- a/lang/po/new/pl.po +++ b/lang/po/new/pl.po @@ -17,6 +17,11 @@ msgstr "\e[2JWykrywanie zderzen moze\e[1;0Hbyc wlaczone tylko w\e[2;0Htrybie Nor msgid "\e[2JWARNING:\e[1;0HCrash detection\e[2;0Hdisabled in\e[3;0HStealth mode" msgstr "\e[2JUWAGA:\e[1;0HWykrywanie zderzen\e[2;0Hwylaczone w\e[3;0Htrybie Stealth" +# +#: ultralcd.cpp:3913 +msgid " 1" +msgstr "1" + # MSG_PLANNER_BUFFER_BYTES #: Marlin_main.cpp:1184 msgid " PlannerBufferBytes: " @@ -48,10 +53,15 @@ msgid " of 4" msgstr " z 4" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 -#: messages.c:56 +#: messages.c:60 msgid " of 9" msgstr " z 9" +# MSG_OFF +#: menu.cpp:426 +msgid " [off]" +msgstr "[wyl]" + # MSG_FACTOR #: ultralcd.cpp:6008 msgid " \002 Fact" @@ -68,7 +78,7 @@ msgid " \002 Min" msgstr " \002 Min" # -#: ultralcd.cpp:2353 +#: ultralcd.cpp:2294 msgid ">Cancel" msgstr ">Anuluj" @@ -77,35 +87,40 @@ msgstr ">Anuluj" msgid "Adjusting Z" msgstr "Dostrajanie Z" +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3144 +msgid "Adjusting Z:" +msgstr "Ustawianie Z:" + # MSG_ALL c=19 r=1 #: messages.c:11 msgid "All" msgstr "Wszystko" # MSG_SELFTEST_CHECK_ALLCORRECT c=20 -#: ultralcd.cpp:7459 +#: ultralcd.cpp:8209 msgid "All correct " msgstr "Wszystko OK " # MSG_WIZARD_DONE c=20 r=8 -#: messages.c:95 +#: messages.c:101 msgid "All is done. Happy printing!" msgstr "Gotowe. Udanego drukowania!" # -#: ultralcd.cpp:2109 +#: ultralcd.cpp:1979 msgid "Ambient" msgstr "Otoczenie" # MSG_PRESS c=20 -#: ultralcd.cpp:2463 +#: ultralcd.cpp:2573 msgid "and press the knob" msgstr "i nacisnij pokretlo" # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 -#: ultralcd.cpp:3330 +#: ultralcd.cpp:3442 msgid "Are left and right Z~carriages all up?" -msgstr "Obydwa konce osi dojechaly do gornych ogranicznikow?" +msgstr "Obydwa konce osi sa na szczycie?" # MSG_ADJUSTZ #: ultralcd.cpp:2600 @@ -133,27 +148,27 @@ msgid "Auto home" msgstr "Auto zerowanie" # MSG_AUTOLOAD_FILAMENT c=17 -#: ultralcd.cpp:6091 +#: ultralcd.cpp:6731 msgid "AutoLoad filament" msgstr "AutoLadowanie fil." # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 -#: ultralcd.cpp:4246 +#: ultralcd.cpp:4375 msgid "Autoloading filament available only when filament sensor is turned on..." msgstr "Autoladowanie filamentu dostepne tylko gdy czujnik filamentu jest wlaczony..." # MSG_AUTOLOADING_ENABLED c=20 r=4 -#: ultralcd.cpp:2655 +#: ultralcd.cpp:2768 msgid "Autoloading filament is active, just press the knob and insert filament..." msgstr "Autoladowanie filamentu wlaczone, nacisnij pokretlo i wsun filament..." # MSG_SELFTEST_AXIS -#: ultralcd.cpp:7130 +#: ultralcd.cpp:7865 msgid "Axis" msgstr "Os" # MSG_SELFTEST_AXIS_LENGTH -#: ultralcd.cpp:7128 +#: ultralcd.cpp:7863 msgid "Axis length" msgstr "Dlugosc osi" @@ -167,13 +182,18 @@ msgstr "Babystepping X" msgid "Babystepping Y" msgstr "Babystepping Y" +# +#: messages.c:57 +msgid "Back" +msgstr "Wstecz" + # MSG_BED #: messages.c:15 msgid "Bed" msgstr "Stol" # MSG_SELFTEST_BEDHEATER -#: ultralcd.cpp:7072 +#: ultralcd.cpp:7807 msgid "Bed / Heater" msgstr "Stol / Grzanie" @@ -188,7 +208,7 @@ msgid "Bed Heating" msgstr "Grzanie stolu.." # MSG_BED_CORRECTION_MENU -#: ultralcd.cpp:5197 +#: ultralcd.cpp:5663 msgid "Bed level correct" msgstr "Korekta poziomowania stolu" @@ -213,17 +233,17 @@ msgid "Begin file list" msgstr "Poczatek listy plikowogranicznikow" # MSG_MENU_BELT_STATUS c=15 r=1 -#: ultralcd.cpp:2135 +#: ultralcd.cpp:2007 msgid "Belt status" msgstr "Stan paskow" # MSG_RECOVER_PRINT c=20 r=2 -#: messages.c:67 +#: messages.c:71 msgid "Blackout occurred. Recover print?" msgstr "Wykryto zanik napiecia. Kontynowac?" # MSG_CALIBRATE_PINDA c=17 r=1 -#: ultralcd.cpp:4427 +#: ultralcd.cpp:4566 msgid "Calibrate" msgstr "Kalibruj" @@ -233,7 +253,7 @@ msgid "Calibrate E" msgstr "Kalibruj E" # MSG_CALIBRATE_BED -#: ultralcd.cpp:5186 +#: ultralcd.cpp:5652 msgid "Calibrate XYZ" msgstr "Kalibracja XYZ" @@ -243,12 +263,12 @@ msgid "Calibrate Z" msgstr "Kalibruj Z" # -#: ultralcd.cpp:7461 +#: ultralcd.cpp:8211 msgid "Calibrating home" msgstr "Zerowanie osi" # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic." @@ -258,22 +278,22 @@ msgid "Calibrating Z" msgstr "Kalibruje Z" # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 -#: ultralcd.cpp:3290 +#: ultralcd.cpp:3405 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." msgstr "Kalibracja XYZ. Przekrec pokretlo, aby przesunac os Z do gornych ogranicznikow. Nacisnij, by potwierdzic." # MSG_MENU_CALIBRATION -#: messages.c:57 +#: messages.c:61 msgid "Calibration" msgstr "Kalibracja" # MSG_HOMEYZ_DONE -#: ultralcd.cpp:778 +#: ultralcd.cpp:832 msgid "Calibration done" msgstr "Kalibracja OK" # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Cancel" msgstr "Anuluj" @@ -293,7 +313,7 @@ msgid "Card inserted" msgstr "Karta wlozona" # MSG_SD_REMOVED -#: ultralcd.cpp:7819 +#: ultralcd.cpp:8578 msgid "Card removed" msgstr "Karta wyjeta" @@ -313,12 +333,12 @@ msgid "Change SD card" msgstr "Wymien karte SD" # MSG_CHANGE_SUCCESS -#: ultralcd.cpp:2474 +#: ultralcd.cpp:2584 msgid "Change success!" msgstr "Wymiana ok!" # MSG_CORRECTLY c=20 -#: ultralcd.cpp:2551 +#: ultralcd.cpp:2661 msgid "Changed correctly?" msgstr "Wymiana ok?" @@ -328,40 +348,45 @@ msgid "Changing filament!" msgstr "Wymiana filamentu!" # MSG_SELFTEST_CHECK_BED c=20 -#: messages.c:77 +#: messages.c:81 msgid "Checking bed " msgstr "Kontrola stolu" # MSG_SELFTEST_CHECK_ENDSTOPS c=20 -#: ultralcd.cpp:7450 +#: ultralcd.cpp:8200 msgid "Checking endstops" msgstr "Kontrola krancowek" # MSG_SELFTEST_CHECK_HOTEND c=20 -#: ultralcd.cpp:7456 +#: ultralcd.cpp:8206 msgid "Checking hotend " msgstr "Kontrola hotendu" # MSG_SELFTEST_CHECK_FSENSOR c=20 -#: messages.c:78 +#: messages.c:82 msgid "Checking sensors " msgstr "Sprawdzanie czujnikow" # MSG_SELFTEST_CHECK_X c=20 -#: ultralcd.cpp:7451 +#: ultralcd.cpp:8201 msgid "Checking X axis " msgstr "Kontrola osi X" # MSG_SELFTEST_CHECK_Y c=20 -#: ultralcd.cpp:7452 +#: ultralcd.cpp:8202 msgid "Checking Y axis " msgstr "Kontrola osi Y" # MSG_SELFTEST_CHECK_Z c=20 -#: ultralcd.cpp:7453 +#: ultralcd.cpp:8203 msgid "Checking Z axis " msgstr "Kontrola osi Z" +# +#: ultralcd.cpp:5537 +msgid "Checks" +msgstr "Testy" + # MSG_ERR_CHECKSUM_MISMATCH #: cmdqueue.cpp:444 msgid "checksum mismatch, Last Line: " @@ -378,7 +403,7 @@ msgid "Choose filament:" msgstr "Wybierz filament:" # MSG_NOT_COLOR -#: ultralcd.cpp:2563 +#: ultralcd.cpp:2673 msgid "Color not correct" msgstr "Kolor zanieczysz." @@ -393,12 +418,12 @@ msgid "Copy selected language from XFLASH?" msgstr "Skopiowac wybrany jezyk z XFLASH?" # -#: ultralcd.cpp:4360 +#: ultralcd.cpp:4499 msgid "Copy selected language?" msgstr "Skopiowac wybrany jezyk?" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Crash" msgstr "Zderzenie" @@ -423,22 +448,27 @@ msgid "Crash detected." msgstr "Zderzenie wykryte" # -#: Marlin_main.cpp:608 +#: Marlin_main.cpp:618 msgid "Crash detected. Resume print?" msgstr "Wykryto zderzenie. Wznowic druk?" +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +msgid "Crash detection can\nbe turned on only in\nNormal mode" +msgstr "Wykrywanie zderzen\nmoze byc wlaczone tylko\nw trybie Normalnym" + # MSG_CURRENT c=19 r=1 -#: ultralcd.cpp:5335 +#: ultralcd.cpp:5804 msgid "Current" msgstr "Aktualne" # MSG_DATE c=17 r=1 -#: ultralcd.cpp:2235 +#: ultralcd.cpp:2106 msgid "Date:" msgstr "Data:" # MSG_DISABLE_STEPPERS -#: ultralcd.cpp:5093 +#: ultralcd.cpp:5552 msgid "Disable steppers" msgstr "Wylaczenie silnikow" @@ -448,7 +478,7 @@ msgid "Distance between tip of the nozzle and the bed surface has not been set y msgstr "Odleglosc dyszy od powierzchni druku nie jest skalibrowana. Postepuj zgodnie z instrukcja: rozdzial Wprowadzenie - Kalibracja pierwszej warstwy." # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 -#: ultralcd.cpp:4828 +#: ultralcd.cpp:4968 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" msgstr "Chcesz powtorzyc ostatni krok i ponownie ustawic odleglosc miedzy dysza a stolikiem?" @@ -462,13 +492,18 @@ msgstr "Kalibracja E zakonczona. Oczysc dysze i potwierdz naciskajac pokretlo. " msgid "E-correct" msgstr "Korekcja E" +# MSG_EXTRUDER_CORRECTION c=10 +#: ultralcd.cpp:5032 +msgid "E-correct:" +msgstr "Korekcja-E:" + # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Eject" msgstr "Wysun" # MSG_EJECT_FILAMENT c=17 r=1 -#: ultralcd.cpp:6081 +#: messages.c:53 msgid "Eject filament" msgstr "Wysun filament" @@ -498,7 +533,7 @@ msgid "Eject filament 5" msgstr "Wysun filament 5" # MSG_EJECTING_FILAMENT c=20 r=1 -#: mmu.cpp:1339 +#: mmu.cpp:1435 msgid "Ejecting filament" msgstr "Wysuwanie filamentu" @@ -508,17 +543,17 @@ msgid "End file list" msgstr "Koniec listy plikow" # MSG_SELFTEST_ENDSTOP -#: ultralcd.cpp:7090 +#: ultralcd.cpp:7825 msgid "Endstop" msgstr "Krancowka" # MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1 -#: ultralcd.cpp:7096 +#: ultralcd.cpp:7831 msgid "Endstop not hit" msgstr "Krancowka nie aktyw." # MSG_SELFTEST_ENDSTOPS -#: ultralcd.cpp:7078 +#: ultralcd.cpp:7813 msgid "Endstops" msgstr "Krancowki" @@ -538,7 +573,7 @@ msgid "enqueing \"" msgstr "kolejkowanie \"" # MSG_STACK_ERROR c=20 r=4 -#: ultralcd.cpp:6132 +#: ultralcd.cpp:6773 msgid "Error - static memory has been overwritten" msgstr "Blad - pamiec statyczna zostala nadpisana" @@ -553,7 +588,7 @@ msgid "ERROR:" msgstr "BLAD:" # MSG_FSENS_NOT_RESPONDING c=20 r=4 -#: ultralcd.cpp:4259 +#: ultralcd.cpp:4388 msgid "ERROR: Filament sensor is not responding, please check connection." msgstr "BLAD: Czujnik filamentu nie odpowiada, sprawdz polaczenie." @@ -588,17 +623,17 @@ msgid "Extruder 4" msgstr "Ekstruder 4" # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 -#: ultralcd.cpp:7468 +#: ultralcd.cpp:8218 msgid "Extruder fan:" msgstr "Went. ekstrudera:" # MSG_INFO_EXTRUDER c=15 r=1 -#: ultralcd.cpp:2266 +#: ultralcd.cpp:2137 msgid "Extruder info" msgstr "Informacje o ekstruderze" # MSG_FSENS_AUTOLOAD_ON c=17 r=1 -#: ultralcd.cpp:4927 +#: ultralcd.cpp:5066 msgid "F. autoload [on]" msgstr "Autolad. fil [wl]" @@ -608,37 +643,42 @@ msgid "F. autoload [N/A]" msgstr "Autolad.fil.[N/D]" # MSG_FSENS_AUTOLOAD_OFF c=17 r=1 -#: ultralcd.cpp:4929 +#: ultralcd.cpp:5068 msgid "F. autoload [off]" msgstr "Autolad.fil.[wyl]" # -#: ultralcd.cpp:6112 +#: ultralcd.cpp:6757 msgid "Fail stats" msgstr "Statystyki bledow" # -#: ultralcd.cpp:6115 +#: ultralcd.cpp:6760 msgid "Fail stats MMU" msgstr "Bledy MMU" +# +#: ultralcd.cpp:7887 +msgid "False triggering" +msgstr "Falszywy alarm" + # MSG_FAN_SPEED c=14 #: messages.c:31 msgid "Fan speed" msgstr "Predkosc went." # MSG_SELFTEST_FAN c=20 -#: messages.c:74 +#: messages.c:78 msgid "Fan test" msgstr "Test wentylatora" # MSG_FANS_CHECK_ON c=17 r=1 -#: ultralcd.cpp:5100 +#: ultralcd.cpp:5561 msgid "Fans check [on]" msgstr "Sprawd.went. [wl]" # MSG_FANS_CHECK_OFF c=17 r=1 -#: ultralcd.cpp:5102 +#: ultralcd.cpp:5563 msgid "Fans check [off]" msgstr "Sprawd.went.[wyl]" @@ -653,7 +693,7 @@ msgid "Fil. sensor response is poor, disable it?" msgstr "Reakcja czujnika slaba, wylaczyc?" # MSG_FSENSOR_NA -#: ultralcd.cpp:4907 +#: ultralcd.cpp:5046 msgid "Fil. sensor [N/A]" msgstr "Czuj. filam.[N/D]" @@ -663,7 +703,7 @@ msgid "Fil. sensor [off]" msgstr "Czuj. filam.[wyl]" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Filam. runouts" msgstr "Konc. filamentu" @@ -678,12 +718,12 @@ msgid "Filament extruding & with correct color?" msgstr "Filament wychodzi z dyszy a kolor jest czysty?" # MSG_NOT_LOADED c=19 -#: ultralcd.cpp:2559 +#: ultralcd.cpp:2669 msgid "Filament not loaded" msgstr "Fil. nie zaladowany" # MSG_FILAMENT_SENSOR c=20 -#: ultralcd.cpp:7144 +#: messages.c:84 msgid "Filament sensor" msgstr "Czujnik filamentu" @@ -693,7 +733,7 @@ msgid "Filament sensor:" msgstr "Czujnik filamentu:" # MSG_FILAMENT_USED c=19 r=1 -#: ultralcd.cpp:2725 +#: ultralcd.cpp:2838 msgid "Filament used" msgstr "Uzyty filament" @@ -703,7 +743,7 @@ msgid "Filament used: " msgstr "Uzywany filament:" # MSG_FILE_INCOMPLETE c=20 r=2 -#: ultralcd.cpp:7595 +#: ultralcd.cpp:8346 msgid "File incomplete. Continue anyway?" msgstr "Plik niekompletny. Kontynowac?" @@ -717,53 +757,103 @@ msgstr "Otwarty plik:" msgid "File selected" msgstr "Wybrano plik" +# +#: ultralcd.cpp:3943 +msgid "FINDA:" +msgstr "FINDA:" + # MSG_FINISHING_MOVEMENTS c=20 r=1 #: messages.c:40 msgid "Finishing movements" msgstr "Konczenie druku" +# +#: ultralcd.cpp:5443 +msgid "Firmware [none]" +msgstr "Firmware [brak]" + +# +#: ultralcd.cpp:5446 +msgid "Firmware [warn]" +msgstr "Firmware [ostrzez.]" + +# +#: ultralcd.cpp:5449 +msgid "Firmware [strict]" +msgstr "Firmware [restr.]" + # MSG_V2_CALIBRATION c=17 r=1 -#: ultralcd.cpp:5177 +#: messages.c:105 msgid "First layer cal." msgstr "Kal. 1. warstwy" # MSG_WIZARD_SELFTEST c=20 r=8 -#: ultralcd.cpp:4740 +#: ultralcd.cpp:4880 msgid "First, I will run the selftest to check most common assembly problems." msgstr "Najpierw wlacze selftest w celu sprawdzenia najczestszych problemow podczas montazu." # -#: mmu.cpp:640 +#: mmu.cpp:724 msgid "Fix the issue and then press button on MMU unit." msgstr "Rozwiaz problem i wcisnij przycisk na MMU." # MSG_FLOW -#: ultralcd.cpp:6205 +#: ultralcd.cpp:6846 msgid "Flow" msgstr "Przeplyw" # MSG_PRUSA3D_FORUM -#: ultralcd.cpp:2228 +#: ultralcd.cpp:2099 msgid "forum.prusa3d.com" msgstr "forum.prusa3d.com" # MSG_SELFTEST_COOLING_FAN c=20 -#: messages.c:71 +#: messages.c:75 msgid "Front print fan?" msgstr "Przedni went. druku?" # MSG_BED_CORRECTION_FRONT c=14 r=1 -#: ultralcd.cpp:3101 +#: ultralcd.cpp:3217 msgid "Front side[um]" msgstr "Przod [um]" # MSG_SELFTEST_FANS -#: ultralcd.cpp:7136 +#: ultralcd.cpp:7871 msgid "Front/left fans" msgstr "Przedni/lewy wentylator" +# +#: util.cpp:510 +msgid "G-code sliced for a different level. Continue?" +msgstr "G-code pociety na innym poziomie. Kontynuowac?" + +# +#: util.cpp:516 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "G-code pociety na innym poziomie. Potnij model ponownie. Druk anulowany." + +# +#: util.cpp:427 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "G-code pociety dla innej drukarki. Kontynuowac?" + +# +#: util.cpp:433 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "G-code pociety dla drukarki innego typu. Potnij model ponownie. Druk anulowany." + +# +#: util.cpp:477 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "G-code pociety dla nowszego firmware. Kontynuowac?" + +# +#: util.cpp:483 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "G-code pociety dla nowszego firmware. Zaktualizuj firmware. Druk anulowany." + # MSG_SELFTEST_HEATERTHERMISTOR -#: ultralcd.cpp:7066 +#: ultralcd.cpp:7801 msgid "Heater/Thermistor" msgstr "Grzalka/Termistor" @@ -773,7 +863,7 @@ msgid "Heating" msgstr "Grzanie..." # MSG_BED_HEATING_SAFETY_DISABLED -#: Marlin_main.cpp:7475 +#: Marlin_main.cpp:8411 msgid "Heating disabled by safety timer." msgstr "Grzanie wylaczone przez wyl. czasowy" @@ -783,27 +873,32 @@ msgid "Heating done." msgstr "Grzanie zakonczone" # MSG_WIZARD_WELCOME c=20 r=7 -#: ultralcd.cpp:4719 +#: ultralcd.cpp:4859 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" msgstr "Czesc, jestem Twoja drukarka Original Prusa i3. Czy potrzebujesz pomocy z ustawieniem?" # MSG_PRUSA3D_HOWTO -#: ultralcd.cpp:2229 +#: ultralcd.cpp:2100 msgid "howto.prusa3d.com" msgstr "howto.prusa3d.com" +# +#: messages.c:87 +msgid "HW Setup" +msgstr "Ustawienia HW" + # MSG_WIZARD_XYZ_CAL c=20 r=8 -#: ultralcd.cpp:4749 +#: ultralcd.cpp:4889 msgid "I will run xyz calibration now. It will take approx. 12 mins." msgstr "Przeprowadze teraz kalibracje XYZ. Zajmie ok. 12 min." # MSG_WIZARD_Z_CAL c=20 r=8 -#: ultralcd.cpp:4757 +#: ultralcd.cpp:4897 msgid "I will run z calibration now." msgstr "Przeprowadze kalibracje Z." # MSG_WIZARD_V2_CAL_2 c=20 r=12 -#: ultralcd.cpp:4822 +#: ultralcd.cpp:4962 msgid "I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration." msgstr "Zaczne drukowac linie. Stopniowo opuszczaj dysze przekrecajac pokretlo, poki nie uzyskasz optymalnej wysokosci. Sprawdz obrazki w naszym Podreczniku w rozdz. Kalibracja" @@ -813,7 +908,7 @@ msgid "Improving bed calibration point" msgstr "Poprawiam precyzje punktu kalibracyjnego" # MSG_WATCH -#: messages.c:93 +#: messages.c:99 msgid "Info screen" msgstr "Ekran informacyjny" @@ -823,7 +918,7 @@ msgid "Init. SD card" msgstr "Inicjalizacja karty SD" # MSG_INSERT_FILAMENT c=20 -#: ultralcd.cpp:2459 +#: ultralcd.cpp:2569 msgid "Insert filament" msgstr "Wprowadz filament" @@ -848,27 +943,32 @@ msgid "Insert filament into extruder 4. Click when done." msgstr "Wloz filament do ekstrudera 4. Potwierdz naciskajac pokretlo." # -#: ultralcd.cpp:4782 +#: ultralcd.cpp:3947 +msgid "IR:" +msgstr "IR:" + +# +#: ultralcd.cpp:4922 msgid "Is filament 1 loaded?" msgstr "Filament 1 zaladowany?" # MSG_WIZARD_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4785 +#: ultralcd.cpp:4925 msgid "Is filament loaded?" msgstr "Filament jest zaladowany?" # MSG_WIZARD_PLA_FILAMENT c=20 r=2 -#: ultralcd.cpp:4816 +#: ultralcd.cpp:4956 msgid "Is it PLA filament?" msgstr "Czy to filament PLA?" # MSG_PLA_FILAMENT_LOADED c=20 r=2 -#: ultralcd.cpp:4561 +#: ultralcd.cpp:4701 msgid "Is PLA filament loaded?" msgstr "Fialment PLA jest zaladowany?" # MSG_STEEL_SHEET_CHECK c=20 r=2 -#: messages.c:86 +#: messages.c:92 msgid "Is steel sheet on heatbed?" msgstr "Czy plyta stal. jest na podgrzew. stole?" @@ -883,27 +983,27 @@ msgid "KILLED. " msgstr "PRZERWANE." # -#: ultralcd.cpp:1960 +#: ultralcd.cpp:1828 msgid "Last print" msgstr "Ost. wydruk" # -#: ultralcd.cpp:1976 +#: ultralcd.cpp:1845 msgid "Last print failures" msgstr "Ostatnie bledy druku" # -#: ultralcd.cpp:2861 +#: ultralcd.cpp:2967 msgid "Left" msgstr "Lewa" # MSG_SELFTEST_EXTRUDER_FAN c=20 -#: messages.c:72 +#: messages.c:76 msgid "Left hotend fan?" msgstr "Lewy went hotendu?" # MSG_BED_CORRECTION_LEFT c=14 r=1 -#: ultralcd.cpp:3099 +#: ultralcd.cpp:3215 msgid "Left side [um]" msgstr "Lewo [um]" @@ -913,7 +1013,7 @@ msgid "Left:" msgstr "Lewo:" # -#: ultralcd.cpp:5107 +#: ultralcd.cpp:5575 msgid "Lin. correction" msgstr "Korekcja lin." @@ -923,7 +1023,7 @@ msgid "Live adjust Z" msgstr "Ustaw. Live Z" # MSG_LOAD_ALL c=17 -#: ultralcd.cpp:5575 +#: ultralcd.cpp:6059 msgid "Load all" msgstr "Zalad. wszystkie" @@ -958,12 +1058,12 @@ msgid "Load filament 5" msgstr "Laduj filament 5" # -#: ultralcd.cpp:6079 +#: ultralcd.cpp:6714 msgid "Load to nozzle" msgstr "Zaladuj do dyszy" # MSG_LOADING_COLOR -#: ultralcd.cpp:2499 +#: ultralcd.cpp:2609 msgid "Loading color" msgstr "Czyszcz. koloru" @@ -973,7 +1073,7 @@ msgid "Loading filament" msgstr "Laduje filament" # MSG_LOOSE_PULLEY c=20 r=1 -#: ultralcd.cpp:7120 +#: ultralcd.cpp:7855 msgid "Loose pulley" msgstr "Luzne kolo pasowe" @@ -993,7 +1093,7 @@ msgid "M109 Invalid extruder " msgstr "M109 Nieprawidlowy ekstruder" # MSG_M117_V2_CALIBRATION c=25 r=1 -#: messages.c:53 +#: messages.c:55 msgid "M117 First layer cal." msgstr "M117 Kal. 1. warstwy" @@ -1012,8 +1112,23 @@ msgstr "M218 Nieprawidlowy ekstruder" msgid "M221 Invalid extruder " msgstr "M221 Nieprawidlowy ekstruder" +# +#: ultralcd.cpp:6957 +msgid "Magnets comp. [On]" +msgstr "Kor. magnesow[wl]" + +# +#: ultralcd.cpp:6960 +msgid "Magnets comp.[N/A]" +msgstr "Kor. magnesow[nd]" + +# +#: ultralcd.cpp:6958 +msgid "Magnets comp.[Off]" +msgstr "Kor. magnesow[wyl]" + # MSG_MAIN -#: messages.c:54 +#: messages.c:56 msgid "Main" msgstr "Menu glowne" @@ -1023,7 +1138,7 @@ msgid "Mark filament 100mm from extruder body. Click when done." msgstr "Zaznacz filament na wysokosci 100 mm od korpusu ekstrudera i potwierdz naciskajac pokretlo." # -#: ultralcd.cpp:2896 +#: ultralcd.cpp:3002 msgid "Measured skew" msgstr "Zmierzony skos" @@ -1033,32 +1148,67 @@ msgid "Measured skew:" msgstr "Zmierzony skos:" # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 -#: messages.c:55 +#: messages.c:59 msgid "Measuring reference height of calibration point" msgstr "Okreslam wysokosc odniesienia punktu kalibracyjnego" +# +#: ultralcd.cpp:6949 +msgid "Mesh [3x3]" +msgstr "Siatka [3x3]" + +# +#: ultralcd.cpp:6950 +msgid "Mesh [7x7]" +msgstr "Siatka [7x7]" + # MSG_MESH_BED_LEVELING -#: ultralcd.cpp:5192 +#: ultralcd.cpp:5658 msgid "Mesh Bed Leveling" msgstr "Poziomowanie stolu wg siatki" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:5572 +msgid "Mesh bed leveling" +msgstr "Poziomowanie wg siatki" + +# +#: Marlin_main.cpp:881 +msgid "MK3 firmware detected on MK3S printer" +msgstr "Wykryto firmware MK3 w drukarce MK3S" + +# +#: Marlin_main.cpp:856 +msgid "MK3S firmware detected on MK3 printer" +msgstr "Wykryto firmware MK3S w drukarce MK3" + +# +#: ultralcd.cpp:1845 msgid "MMU fails" msgstr "Bledy MMU" # -#: mmu.cpp:1399 +#: mmu.cpp:1617 msgid "MMU load failed " msgstr "Blad ladowania MMU" # -#: ultralcd.cpp:1977 +#: ultralcd.cpp:1845 msgid "MMU load fails" msgstr "Bledy ladow. MMU" # -#: mmu.cpp:635 +#: ultralcd.cpp:5204 +msgid "MMU Mode [Normal]" +msgstr "Tryb MMU [Normalny]" + +# +#: ultralcd.cpp:5205 +msgid "MMU Mode[Stealth]" +msgstr "Tryb MMU [Stealth]" + +# +#: mmu.cpp:719 msgid "MMU needs user attention." msgstr "MMU wymaga uwagi uzytkownika." @@ -1068,82 +1218,102 @@ msgid "MMU needs user attention. Fix the issue and then press button on MMU unit msgstr "MMU wymaga uwagi. Napraw usterke i wcisnij przycisk na korpusie MMU." # MSG_MMU_OK_RESUMING_POSITION c=20 r=4 -#: mmu.cpp:676 +#: mmu.cpp:762 msgid "MMU OK. Resuming position..." msgstr "MMU OK. Wznawianie pozycji." # MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 -#: mmu.cpp:669 +#: mmu.cpp:755 msgid "MMU OK. Resuming temperature..." msgstr "MMU OK. Wznawiam nagrzewanie..." # MSG_MMU_OK_RESUMING c=20 r=4 -#: mmu.cpp:687 +#: mmu.cpp:773 msgid "MMU OK. Resuming..." msgstr "MMU OK. Wznawianie..." # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "MMU power fails" msgstr "Zaniki zasil. MMU" # -#: ultralcd.cpp:2241 +#: ultralcd.cpp:2112 msgid "MMU2 connected" msgstr "MMU podlaczone" # MSG_STEALTH_MODE_OFF -#: messages.c:84 +#: messages.c:90 msgid "Mode [Normal]" msgstr "Tryb [normalny]" # MSG_SILENT_MODE_ON -#: messages.c:83 +#: messages.c:89 msgid "Mode [silent]" msgstr "Tryb [cichy]" # MSG_STEALTH_MODE_ON -#: messages.c:85 +#: messages.c:91 msgid "Mode [Stealth]" msgstr "Tryb [Stealth]" +# +#: ultralcd.cpp:4424 +msgid "Mode change in progress ..." +msgstr "Trwa zmiana trybu..." + # MSG_AUTO_MODE_ON #: messages.c:12 msgid "Mode [auto power]" msgstr "Tryb [automatycz]" # MSG_SILENT_MODE_OFF -#: messages.c:82 +#: messages.c:88 msgid "Mode [high power]" msgstr "Tryb[wysoka wyd.]" +# +#: ultralcd.cpp:5404 +msgid "Model [none]" +msgstr "Model [brak]" + +# +#: ultralcd.cpp:5407 +msgid "Model [warn]" +msgstr "Model [ostrzez.]" + +# +#: ultralcd.cpp:5410 +msgid "Model [strict]" +msgstr "Model [restrykc.]" + # MSG_SELFTEST_MOTOR -#: messages.c:79 +#: messages.c:83 msgid "Motor" msgstr "Silnik" # MSG_MOVE_AXIS -#: ultralcd.cpp:5091 +#: ultralcd.cpp:5550 msgid "Move axis" msgstr "Ruch osi" # MSG_MOVE_X -#: ultralcd.cpp:4164 +#: ultralcd.cpp:4291 msgid "Move X" msgstr "Ruch osi X" # MSG_MOVE_Y -#: ultralcd.cpp:4165 +#: ultralcd.cpp:4292 msgid "Move Y" msgstr "Ruch osi Y" # MSG_MOVE_Z -#: ultralcd.cpp:4166 +#: ultralcd.cpp:4293 msgid "Move Z" msgstr "Ruch osi Z" # -#: ultralcd.cpp:2867 +#: ultralcd.cpp:2973 msgid "N/A" msgstr "N/D" @@ -1153,7 +1323,7 @@ msgid "New firmware version available:" msgstr "Dostepna nowa wersja firmware:" # MSG_NO -#: messages.c:58 +#: messages.c:62 msgid "No" msgstr "Nie" @@ -1168,12 +1338,12 @@ msgid "No Checksum with line number, Last Line: " msgstr "Brak sumy kontrolnej z numerem linii, ostatnia linia:" # MSG_NO_MOVE -#: Marlin_main.cpp:4908 +#: Marlin_main.cpp:5254 msgid "No move." msgstr "Brak ruchu." # MSG_NO_CARD -#: ultralcd.cpp:6059 +#: ultralcd.cpp:6694 msgid "No SD card" msgstr "Brak karty SD" @@ -1183,37 +1353,67 @@ msgid "No thermistors - no temperature" msgstr "Brak termistorow - brak odczytu temperatury" # MSG_SELFTEST_NOTCONNECTED -#: ultralcd.cpp:7068 +#: ultralcd.cpp:7803 msgid "Not connected" msgstr "Nie podlaczono " # MSG_SELFTEST_FAN_NO c=19 -#: messages.c:75 +#: messages.c:79 msgid "Not spinning" msgstr "Nie kreci sie" # MSG_WIZARD_V2_CAL c=20 r=8 -#: ultralcd.cpp:4821 +#: ultralcd.cpp:4961 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." msgstr "Kalibruje odleglosc miedzy koncowka dyszy a powierzchnia druku." # MSG_WIZARD_WILL_PREHEAT c=20 r=4 -#: ultralcd.cpp:4765 +#: ultralcd.cpp:4905 msgid "Now I will preheat nozzle for PLA." msgstr "Nagrzewam dysze dla PLA." # -#: ultralcd.cpp:4756 +#: ultralcd.cpp:4896 msgid "Now remove the test print from steel sheet." msgstr "Teraz zdejmij wydruk testowy ze stolu." # MSG_NOZZLE -#: messages.c:59 +#: messages.c:63 msgid "Nozzle" msgstr "Dysza" # -#: ultralcd.cpp:1919 +#: ultralcd.cpp:5319 +msgid "Nozzle [none]" +msgstr "Dysza [brak]" + +# +#: ultralcd.cpp:5322 +msgid "Nozzle [warn]" +msgstr "Dysza [ostrzez.]" + +# +#: ultralcd.cpp:5325 +msgid "Nozzle [strict]" +msgstr "Dysza [restrykc.]" + +# +#: ultralcd.cpp:5365 +msgid "Nozzle d. [0.25]" +msgstr "Sr. dyszy [0,25]" + +# +#: ultralcd.cpp:5368 +msgid "Nozzle d. [0.40]" +msgstr "Sr. dyszy [0,40]" + +# +#: ultralcd.cpp:5371 +msgid "Nozzle d. [0.60]" +msgstr "Sr. dyszy [0,60]" + +# +#: ultralcd.cpp:1787 msgid "Nozzle FAN" msgstr "Went. hotendu" @@ -1238,7 +1438,7 @@ msgid "ok" msgstr "ok" # MSG_DEFAULT_SETTINGS_LOADED c=20 r=4 -#: Marlin_main.cpp:1516 +#: Marlin_main.cpp:1535 msgid "Old settings found. Default PID, Esteps etc. will be set." msgstr "Znaleziono stare ustawienia. Zostana przywrocone domyslne ust. PID, Esteps, itp." @@ -1258,7 +1458,7 @@ msgid "openRoot failed" msgstr "niepowodzenie openRoot " # MSG_PAUSE_PRINT -#: ultralcd.cpp:6029 +#: ultralcd.cpp:6657 msgid "Pause print" msgstr "Wstrzymanie wydruku" @@ -1268,42 +1468,47 @@ msgid "Pick print" msgstr "Wybierz wydruk" # MSG_PID_RUNNING c=20 r=1 -#: ultralcd.cpp:1741 +#: ultralcd.cpp:1613 msgid "PID cal. " msgstr "Kalibracja PID" # MSG_PID_FINISHED c=20 r=1 -#: ultralcd.cpp:1747 +#: ultralcd.cpp:1619 msgid "PID cal. finished" msgstr "Kal. PID zakonczona" # MSG_PID_EXTRUDER c=17 r=1 -#: ultralcd.cpp:5198 +#: ultralcd.cpp:5664 msgid "PID calibration" msgstr "Kalibracja PID" # MSG_PINDA_PREHEAT c=20 r=1 -#: ultralcd.cpp:808 +#: ultralcd.cpp:862 msgid "PINDA Heating" msgstr "Grzanie sondy PINDA" +# +#: ultralcd.cpp:3939 +msgid "PINDA:" +msgstr "PINDA:" + # MSG_PAPER c=20 r=8 -#: messages.c:60 +#: messages.c:64 msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." msgstr "Umiesc kartke papieru na stole roboczym i podczas pomiaru pierwszych 4 punktow. Jesli dysza zahaczy o papier, natychmiast wylacz drukarke." # MSG_SELFTEST_PLEASECHECK -#: ultralcd.cpp:7060 +#: ultralcd.cpp:7795 msgid "Please check :" msgstr "Sprawdz :" # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 -#: messages.c:94 +#: messages.c:100 msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." msgstr "Przeczytaj nasz Podrecznik druku 3D aby naprawic problem. Potem wznow Asystenta przez restart drukarki." # MSG_WIZARD_CLEAN_HEATBED c=20 r=8 -#: ultralcd.cpp:4830 +#: ultralcd.cpp:4970 msgid "Please clean heatbed and then press the knob." msgstr "Oczysc powierzchnie druku i nacisnij pokretlo." @@ -1313,12 +1518,12 @@ msgid "Please clean the nozzle for calibration. Click when done." msgstr "Dla prawidl. kalibracji nalezy oczyscic dysze. Potw. guzikiem." # MSG_WIZARD_LOAD_FILAMENT c=20 r=8 -#: ultralcd.cpp:4664 +#: ultralcd.cpp:4804 msgid "Please insert PLA filament to the extruder, then press knob to load it." msgstr "Umiesc filament PLA w ekstruderze i nacisnij pokretlo, aby zaladowac." # -#: ultralcd.cpp:4660 +#: ultralcd.cpp:4800 msgid "Please insert PLA filament to the first tube of MMU, then press the knob to load it." msgstr "Wsun filament PLA do pierwszej rurki MMU i nacisnij pokretlo aby go zaladowac." @@ -1328,52 +1533,52 @@ msgid "Please load PLA filament and then resume Wizard by rebooting the printer. msgstr "Zaladuj filament PLA i przywroc Asystenta przez restart drukarki." # MSG_PLEASE_LOAD_PLA c=20 r=4 -#: ultralcd.cpp:4566 +#: ultralcd.cpp:4706 msgid "Please load PLA filament first." msgstr "Najpierw zaladuj filament PLA." # MSG_CHECK_IDLER c=20 r=4 -#: Marlin_main.cpp:3025 +#: Marlin_main.cpp:3083 msgid "Please open idler and remove filament manually." msgstr "Prosze odciagnac dzwignie dociskowa ekstrudera i recznie usunac filament." # MSG_PLACE_STEEL_SHEET c=20 r=4 -#: messages.c:61 +#: messages.c:65 msgid "Please place steel sheet on heatbed." msgstr "Prosze umiescic plyte stalowa na stole podgrzewanym." # MSG_PRESS_TO_UNLOAD c=20 r=4 -#: messages.c:64 +#: messages.c:68 msgid "Please press the knob to unload filament" msgstr "Nacisnij pokretlo aby rozladowac filament" # MSG_PULL_OUT_FILAMENT c=20 r=4 -#: messages.c:66 +#: messages.c:70 msgid "Please pull out filament immediately" msgstr "Wyciagnij filament teraz" # MSG_EJECT_REMOVE c=20 r=4 -#: mmu.cpp:1347 +#: mmu.cpp:1441 msgid "Please remove filament and then press the knob." msgstr "Wyciagnij filament i wcisnij pokretlo." # -#: ultralcd.cpp:4755 +#: ultralcd.cpp:4895 msgid "Please remove shipping helpers first." msgstr "Najpierw usun zabezpieczenia transportowe" # MSG_REMOVE_STEEL_SHEET c=20 r=4 -#: messages.c:70 +#: messages.c:74 msgid "Please remove steel sheet from heatbed." msgstr "Prosze zdjac plyte stalowa z podgrzewanego stolu." # MSG_RUN_XYZ c=20 r=4 -#: Marlin_main.cpp:4052 +#: Marlin_main.cpp:4317 msgid "Please run XYZ calibration first." msgstr "Prosze najpierw uruchomic kalibracje XYZ" # MSG_UPDATE_MMU2_FW c=20 r=4 -#: mmu.cpp:1293 +#: mmu.cpp:1360 msgid "Please update firmware in your MMU2. Waiting for reset." msgstr "Prosze zaktualizowac Firmware MMU2. Czekam na reset." @@ -1383,12 +1588,12 @@ msgid "Please upgrade." msgstr "Prosze zaktualizowac." # MSG_PLEASE_WAIT c=20 -#: messages.c:62 +#: messages.c:66 msgid "Please wait" msgstr "Prosze czekac" # -#: ultralcd.cpp:2013 +#: ultralcd.cpp:1881 msgid "Power failures" msgstr "Zaniki zasilania" @@ -1398,27 +1603,37 @@ msgid "PowerUp" msgstr "Uruchamianie" # MSG_PREHEAT -#: ultralcd.cpp:6018 +#: ultralcd.cpp:6644 msgid "Preheat" msgstr "Grzanie" # MSG_PREHEAT_NOZZLE c=20 -#: messages.c:63 +#: messages.c:67 msgid "Preheat the nozzle!" msgstr "Nagrzej dysze!" # MSG_WIZARD_HEATING c=20 r=3 -#: messages.c:96 +#: messages.c:102 msgid "Preheating nozzle. Please wait." msgstr "Nagrzewanie dyszy. Prosze czekac." # -#: ultralcd.cpp:2350 +#: ultralcd.cpp:2290 +msgid "Preheating to cut" +msgstr "Nagrzewanie do obciecia" + +# +#: ultralcd.cpp:2287 +msgid "Preheating to eject" +msgstr "Nagrzewanie do wysuniecia" + +# +#: ultralcd.cpp:2280 msgid "Preheating to load" msgstr "Nagrzew. do ladowania" # -#: ultralcd.cpp:2351 +#: ultralcd.cpp:2284 msgid "Preheating to unload" msgstr "Nagrzew. do rozlad." @@ -1428,27 +1643,27 @@ msgid "Prepare new filament" msgstr "Przygotuj filament" # MSG_PRESS_TO_PREHEAT c=20 r=4 -#: Marlin_main.cpp:9150 +#: Marlin_main.cpp:10312 msgid "Press knob to preheat nozzle and continue." msgstr "Wcisnij pokretlo aby rozgrzac dysze i kontynuowac." # -#: ultralcd.cpp:2313 +#: ultralcd.cpp:2210 msgid "Press the knob" msgstr "Wcisnij pokretlo" # -#: mmu.cpp:639 +#: mmu.cpp:723 msgid "Press the knob to resume nozzle temperature." msgstr "Wcisnij pokretlo aby wznowic podgrzewanie dyszy." # MSG_PRINT_ABORTED c=20 -#: messages.c:65 +#: messages.c:69 msgid "Print aborted" msgstr "Druk przerwany" # -#: ultralcd.cpp:1921 +#: ultralcd.cpp:1789 msgid "Print FAN" msgstr "Went. wydruku" @@ -1458,7 +1673,7 @@ msgid "Print FAN: " msgstr "Went. wydr:" # MSG_SELFTEST_PRINT_FAN_SPEED c=18 -#: ultralcd.cpp:7471 +#: ultralcd.cpp:8221 msgid "Print fan:" msgstr "Went. wydruku:" @@ -1468,12 +1683,12 @@ msgid "Print from SD" msgstr "Druk z karty SD" # MSG_PRINT_PAUSED c=20 r=1 -#: ultralcd.cpp:1022 +#: ultralcd.cpp:1080 msgid "Print paused" msgstr "Druk wstrzymany" # MSG_PRINT_TIME c=19 r=1 -#: ultralcd.cpp:2727 +#: ultralcd.cpp:2838 msgid "Print time" msgstr "Czas druku" @@ -1487,6 +1702,26 @@ msgstr "Czas druku: " msgid "Printer disconnected" msgstr "Drukarka rozlaczona" +# +#: util.cpp:473 +msgid "Printer FW version differs from the G-code. Continue?" +msgstr "Wersja FW drukarki rozni sie w G-code. Kontynuowac?" + +# +#: util.cpp:480 +msgid "Printer FW version differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "FW drukarki rozni sie od tego w G-code. Sprawdz ustawienia. Druk anulowany." + +# +#: util.cpp:506 +msgid "Printer G-code level differs from the G-code. Continue?" +msgstr "Poziom G-code drukarki rozni sie od pliku G-code. Kontynuowac?" + +# +#: util.cpp:513 +msgid "Printer G-code level differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Poziom G-code drukarki rozni sie od pliku G-code. Sprawdz ustawienia. Druk anulowany" + # MSG_ERR_KILLED #: Marlin_main.cpp:7547 msgid "Printer halted. kill() called!" @@ -1497,6 +1732,26 @@ msgstr "Drukarka zatrzymana. Wywolano komende kill()!" msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow." msgstr "Drukarka nie zostala jeszcze skalibrowana. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Konfiguracja przed drukowaniem." +# +#: util.cpp:423 +msgid "Printer model differs from the G-code. Continue?" +msgstr "Model drukarki rozni sie od tego w G-code. Kontynuowac?" + +# +#: util.cpp:430 +msgid "Printer model differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Model drukarki rozni sie od tego w G-code. Sprawdz ustawienia. Druk anulowany." + +# +#: util.cpp:390 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Srednica dyszy drukarki rozni sie od tej w G-code. Kontynuowac?" + +# +#: util.cpp:397 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Srednica dyszy rozni sie od tej w G-code. Sprawdz ustawienia. Druk anulowany." + # MSG_ERR_STOPPED #: messages.c:32 msgid "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" @@ -1512,6 +1767,11 @@ msgstr "Prusa i3 MK2 gotowa" msgid "Prusa i3 MK2.5 ready." msgstr "Prusa i3 MK2.5 gotowa" +# +#: +msgid "Prusa i3 MK3 OK." +msgstr "Prusa i3 MK3 OK" + # WELCOME_MSG c=20 #: msgid "Prusa i3 MK3 ready." @@ -1523,17 +1783,17 @@ msgid "Prusa i3 MK3S OK." msgstr "Prusa i3 MK3S OK" # MSG_PRUSA3D -#: ultralcd.cpp:2227 +#: ultralcd.cpp:2098 msgid "prusa3d.com" msgstr "prusa3d.com" # MSG_BED_CORRECTION_REAR c=14 r=1 -#: ultralcd.cpp:3102 +#: ultralcd.cpp:3218 msgid "Rear side [um]" msgstr "Tyl [um]" # MSG_RECOVERING_PRINT c=20 r=1 -#: Marlin_main.cpp:8575 +#: Marlin_main.cpp:9712 msgid "Recovering print " msgstr "Wznawianie wydruku" @@ -1543,10 +1803,15 @@ msgid "Refresh" msgstr "Odswiez" # MSG_REMOVE_OLD_FILAMENT c=20 r=4 -#: mmu.cpp:744 +#: mmu.cpp:830 msgid "Remove old filament and press the knob to start loading new filament." msgstr "Wyciagnij poprzedni filament i nacisnij pokretlo aby zaladowac nowy." +# +#: ultralcd.cpp:6605 +msgid "Rename" +msgstr "Zmien nazwe" + # MSG_M119_REPORT #: Marlin_main.cpp:5297 msgid "Reporting endstop status" @@ -1563,32 +1828,32 @@ msgid "Resend: " msgstr "Wyslij ponownie:" # MSG_BED_CORRECTION_RESET -#: ultralcd.cpp:3103 +#: ultralcd.cpp:3219 msgid "Reset" msgstr "Reset" # MSG_CALIBRATE_BED_RESET -#: ultralcd.cpp:5203 +#: ultralcd.cpp:5669 msgid "Reset XYZ calibr." msgstr "Reset kalibr. XYZ" # MSG_RESUME_PRINT -#: ultralcd.cpp:6033 +#: ultralcd.cpp:6664 msgid "Resume print" msgstr "Wznowic wydruk" # MSG_RESUMING_PRINT c=20 r=1 -#: messages.c:69 +#: messages.c:73 msgid "Resuming print" msgstr "Wznawianie druku" # -#: ultralcd.cpp:2862 +#: ultralcd.cpp:2968 msgid "Right" msgstr "Prawa" # MSG_BED_CORRECTION_RIGHT c=14 r=1 -#: ultralcd.cpp:3100 +#: ultralcd.cpp:3216 msgid "Right side[um]" msgstr "Prawo [um]" @@ -1603,22 +1868,22 @@ msgid "Rotate knob until mark reaches extruder body. Click when done." msgstr "Obracaj pokretlo az znacznik zrowna sie z korpusem ekstrudera i potwierdz naciskajac pokretlo." # MSG_SECOND_SERIAL_ON c=17 r=1 -#: ultralcd.cpp:5119 +#: ultralcd.cpp:5587 msgid "RPi port [on]" msgstr "Port RPi [wl]" # MSG_SECOND_SERIAL_OFF c=17 r=1 -#: ultralcd.cpp:5117 +#: ultralcd.cpp:5585 msgid "RPi port [off]" msgstr "Port RPi [wyl]" # MSG_WIZARD_RERUN c=20 r=7 -#: ultralcd.cpp:4583 +#: ultralcd.cpp:4723 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" msgstr "Wlaczenie Asystenta usunie obecne dane kalibracyjne i zacznie od poczatku. Kontynuowac?" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1 -#: ultralcd.cpp:5033 +#: ultralcd.cpp:5220 msgid "SD card [normal]" msgstr "Karta SD [normal]" @@ -1633,7 +1898,7 @@ msgid "SD card [FlshAir]" msgstr "Karta SD [FlashAir]" # MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1 -#: ultralcd.cpp:5031 +#: ultralcd.cpp:5218 msgid "SD card [flshAir]" msgstr "Karta SD[FlshAir]" @@ -1652,53 +1917,63 @@ msgstr "SD printing byte " msgid "Searching bed calibration point" msgstr "Szukam punktu kalibracyjnego na stole" +# +#: ultralcd.cpp:6601 +msgid "Select" +msgstr "Wybierz" + # MSG_LANGUAGE_SELECT -#: ultralcd.cpp:5126 +#: ultralcd.cpp:5594 msgid "Select language" msgstr "Wybor jezyka" # -#: ultralcd.cpp:4803 +#: ultralcd.cpp:4943 msgid "Select nozzle preheat temperature which matches your material." msgstr "Wybierz temperature grzania dyszy odpowiednia dla materialu." # -#: ultralcd.cpp:4552 +#: ultralcd.cpp:4692 msgid "Select PLA filament:" msgstr "Wybierz filament PLA:" # MSG_SELFTEST_OK -#: ultralcd.cpp:6631 +#: ultralcd.cpp:7366 msgid "Self test OK" msgstr "Selftest OK" # MSG_SELFTEST_START c=20 -#: ultralcd.cpp:6449 +#: ultralcd.cpp:7152 msgid "Self test start " msgstr "Rozpoczynanie Selftestu" # MSG_SELFTEST -#: ultralcd.cpp:5179 +#: ultralcd.cpp:5645 msgid "Selftest " msgstr "Selftest " # MSG_SELFTEST_ERROR -#: ultralcd.cpp:7058 +#: ultralcd.cpp:7793 msgid "Selftest error !" msgstr "Blad selftest !" # MSG_SELFTEST_FAILED c=20 -#: messages.c:73 +#: messages.c:77 msgid "Selftest failed " msgstr "Selftest nieudany" # MSG_FORCE_SELFTEST c=20 r=8 -#: Marlin_main.cpp:1548 +#: Marlin_main.cpp:1567 msgid "Selftest will be run to calibrate accurate sensorless rehoming." msgstr "Zostanie uruchomiony Selftest aby dokladnie skalibrowac punkt bazowy bez krancowek" # -#: ultralcd.cpp:3819 +#: ultralcd.cpp:2138 +msgid "Sensor info" +msgstr "Info o sensorach" + +# +#: ultralcd.cpp:3938 msgid "Sensor state" msgstr "Stan czujnikow" @@ -1708,17 +1983,17 @@ msgid "Sensors info" msgstr "Info o czujnikach" # MSG_SET_TEMPERATURE c=19 r=1 -#: ultralcd.cpp:3111 +#: ultralcd.cpp:3227 msgid "Set temperature:" msgstr "Ustaw. temperatury:" # MSG_SETTINGS -#: messages.c:81 +#: messages.c:86 msgid "Settings" msgstr "Ustawienia" # -#: ultralcd.cpp:2899 +#: ultralcd.cpp:3005 msgid "Severe skew" msgstr "Znaczny skos" @@ -1727,8 +2002,13 @@ msgstr "Znaczny skos" msgid "Severe skew:" msgstr "Powazny skos:" +# +#: messages.c:58 +msgid "Sheet" +msgstr "Plyta" + # MSG_SHOW_END_STOPS c=17 r=1 -#: ultralcd.cpp:5200 +#: ultralcd.cpp:5666 msgid "Show end stops" msgstr "Pokaz krancowki" @@ -1743,7 +2023,7 @@ msgid "Sleep..." msgstr "Czuwanie..." # -#: ultralcd.cpp:2898 +#: ultralcd.cpp:3004 msgid "Slight skew" msgstr "Lekki skos" @@ -1753,15 +2033,30 @@ msgid "Slight skew:" msgstr "Lekki skos:" # MSG_FILE_CNT c=20 r=4 -#: cardreader.cpp:738 +#: cardreader.cpp:739 msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." msgstr "Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100." # -#: Marlin_main.cpp:4560 +#: Marlin_main.cpp:4833 msgid "Some problem encountered, Z-leveling enforced ..." msgstr "Wykryto problem, wymuszono poziomowanie osi Z ..." +# MSG_SORT_NONE c=17 r=1 +#: ultralcd.cpp:5230 +msgid "Sort [none]" +msgstr "Sortowanie [brak]" + +# MSG_SORT_TIME c=17 r=1 +#: ultralcd.cpp:5228 +msgid "Sort [time]" +msgstr "Sortowanie [czas]" + +# MSG_SORT_ALPHA c=17 r=1 +#: ultralcd.cpp:5229 +msgid "Sort [alphabet]" +msgstr "Sort. [alfabet]" + # MSG_SORT_NONE c=17 r=1 #: ultralcd.cpp:4250 msgid "Sort: [None]" @@ -1803,117 +2098,132 @@ msgid "Sort: [time]" msgstr "Sortuj: [czas]" # MSG_SORTING c=20 r=1 -#: cardreader.cpp:745 +#: cardreader.cpp:746 msgid "Sorting files" msgstr "Sortowanie plikow" # MSG_SOUND_LOUD c=17 r=1 -#: sound.h:5 +#: sound.h:6 msgid "Sound [loud]" msgstr "Dzwiek [Glosny]" # MSG_SOUND_MUTE c=17 r=1 -#: sound.h:8 +#: msgid "Sound [mute]" msgstr "Dzwiek[Wylaczony]" # MSG_SOUND_ONCE c=17 r=1 -#: sound.h:6 +#: sound.h:7 msgid "Sound [once]" msgstr "Dzwiek [1-raz]" +# +#: +msgid "Sound [assist]" +msgstr "Dzwiek [asyst.]" + +# +#: sound.h:9 +msgid "Sound [blind]" +msgstr "Dzwiek[niewidomy]" + # MSG_SOUND_SILENT c=17 r=1 -#: sound.h:7 +#: sound.h:8 msgid "Sound [silent]" msgstr "Dzwiek [Cichy]" # MSG_SPEED -#: ultralcd.cpp:6199 +#: ultralcd.cpp:6840 msgid "Speed" msgstr "Predkosc" # MSG_SELFTEST_FAN_YES c=19 -#: messages.c:76 +#: messages.c:80 msgid "Spinning" msgstr "Kreci sie" # MSG_AUTO_DEPLETE_ON c=17 r=1 -#: ultralcd.cpp:4959 +#: ultralcd.cpp:5098 msgid "SpoolJoin [on]" msgstr "SpoolJoin [wl]" # -#: ultralcd.cpp:4955 +#: ultralcd.cpp:5094 msgid "SpoolJoin [N/A]" msgstr "SpoolJoin [nd]" # MSG_AUTO_DEPLETE_OFF c=17 r=1 -#: ultralcd.cpp:4963 +#: ultralcd.cpp:5102 msgid "SpoolJoin [off]" msgstr "SpoolJoin [wyl]" # MSG_TEMP_CAL_WARNING c=20 r=4 -#: Marlin_main.cpp:4065 +#: Marlin_main.cpp:4330 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." msgstr "Potrzebna jest stabilna temperatura otoczenia 21-26C i stabilne podloze." # MSG_STATISTICS -#: ultralcd.cpp:6108 +#: ultralcd.cpp:6753 msgid "Statistics " msgstr "Statystyki" +# +#: ultralcd.cpp:5551 +msgid "Steel sheets" +msgstr "Plyty stalowe" + # MSG_STEPPER_TOO_HIGH #: stepper.cpp:345 msgid "Steprate too high: " msgstr "Liczba krokow zbyt wysoka:" # MSG_STOP_PRINT -#: messages.c:87 +#: messages.c:93 msgid "Stop print" -msgstr "Zatrzymac druk" +msgstr "Przerwanie druku" # MSG_STOPPED -#: messages.c:88 +#: messages.c:94 msgid "STOPPED. " msgstr "ZATRZYMANO." # MSG_SUPPORT -#: ultralcd.cpp:6117 +#: ultralcd.cpp:6762 msgid "Support" msgstr "Wsparcie" # MSG_SELFTEST_SWAPPED -#: ultralcd.cpp:7138 +#: ultralcd.cpp:7873 msgid "Swapped" msgstr "Zamieniono" # MSG_TEMP_CALIBRATION c=20 r=1 -#: messages.c:89 +#: messages.c:95 msgid "Temp. cal. " msgstr "Kalibracja temp." # MSG_TEMP_CALIBRATION_ON c=20 r=1 -#: ultralcd.cpp:5113 +#: ultralcd.cpp:5581 msgid "Temp. cal. [on]" msgstr "Kalibr. temp.[wl]" # MSG_TEMP_CALIBRATION_OFF c=20 r=1 -#: ultralcd.cpp:5111 +#: ultralcd.cpp:5579 msgid "Temp. cal. [off]" msgstr "Kalibr.temp.[wyl]" # MSG_CALIBRATION_PINDA_MENU c=17 r=1 -#: ultralcd.cpp:5209 +#: ultralcd.cpp:5675 msgid "Temp. calibration" msgstr "Kalibracja temp." # MSG_TEMPERATURE -#: ultralcd.cpp:5089 +#: ultralcd.cpp:5548 msgid "Temperature" msgstr "Temperatura" # MSG_TEMP_CAL_FAILED c=20 r=8 -#: ultralcd.cpp:3744 +#: ultralcd.cpp:3864 msgid "Temperature calibration failed" msgstr "Kalibracja temperaturowa nieudana" @@ -1923,12 +2233,12 @@ msgid "Temperature calibration has not been run yet" msgstr "Kalibracja temperaturowa nie zostala jeszcze przeprowadzona" # MSG_TEMP_CALIBRATION_DONE c=20 r=12 -#: messages.c:90 +#: messages.c:96 msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." msgstr "Kalibracja temperaturowa zakonczona i wlaczona. Moze byc wylaczona z menu Ustawienia -> Kalibracja temp." # MSG_MENU_TEMPERATURES c=15 r=1 -#: ultralcd.cpp:2273 +#: ultralcd.cpp:2144 msgid "Temperatures" msgstr "Temperatury" @@ -1938,27 +2248,27 @@ msgid "There is still a need to make Z calibration. Please follow the manual, ch msgstr "Musimy przeprowadzic kalibracje Z. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Kalibracja." # -#: ultralcd.cpp:2316 +#: ultralcd.cpp:2217 msgid "to load filament" msgstr "aby zaladow. fil." # -#: ultralcd.cpp:2317 +#: ultralcd.cpp:2221 msgid "to unload filament" msgstr "aby rozlad. filament" # -#: ultralcd.cpp:1961 +#: ultralcd.cpp:1829 msgid "Total" msgstr "Suma" # -#: ultralcd.cpp:1994 +#: ultralcd.cpp:1862 msgid "Total failures" msgstr "Suma bledow" # -#: ultralcd.cpp:2752 +#: ultralcd.cpp:2860 msgid "Total filament" msgstr "Calkowita dlugosc filamentu" @@ -1968,7 +2278,7 @@ msgid "Total filament :" msgstr "Filament lacznie :" # -#: ultralcd.cpp:2754 +#: ultralcd.cpp:2860 msgid "Total print time" msgstr "Calkowity czas druku" @@ -1983,17 +2293,17 @@ msgid "TRIGGERED" msgstr "AKTYWOWANO" # MSG_TUNE -#: ultralcd.cpp:6015 +#: ultralcd.cpp:6641 msgid "Tune" msgstr "Strojenie" # -#: ultralcd.cpp:2249 +#: ultralcd.cpp:2120 msgid "unknown" msgstr "nieznane" # -#: ultralcd.cpp:4640 +#: ultralcd.cpp:4780 msgid "Unload" msgstr "Rozladuj" @@ -2003,7 +2313,7 @@ msgid "Unload all" msgstr "Rozladuj wszystkie" # MSG_UNLOAD_FILAMENT c=17 -#: messages.c:91 +#: messages.c:97 msgid "Unload filament" msgstr "Rozladowanie fil." @@ -2028,22 +2338,22 @@ msgid "Unload filament 4" msgstr "Rozladuj fil. 4" # MSG_UNLOADING_FILAMENT c=20 r=1 -#: messages.c:92 +#: messages.c:98 msgid "Unloading filament" msgstr "Rozladowuje filament" # -#: ultralcd.cpp:4639 +#: ultralcd.cpp:4779 msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." msgstr "Uzyj opcji Rozladuj jesli filament wystaje z tylnej rurki MMU. Uzyj opcji Wysun jesli wciaz jest w srodku." # MSG_USED c=19 r=1 -#: ultralcd.cpp:5334 +#: ultralcd.cpp:5803 msgid "Used during print" msgstr "Uzyte podczas druku" # MSG_MENU_VOLTAGES c=15 r=1 -#: ultralcd.cpp:2276 +#: ultralcd.cpp:2147 msgid "Voltages" msgstr "Napiecia" @@ -2053,32 +2363,37 @@ msgid "volume.init failed" msgstr "niepowodzenie volume.init " # MSG_USERWAIT -#: Marlin_main.cpp:4876 +#: Marlin_main.cpp:5225 msgid "Wait for user..." msgstr "Czekam na uzytkownika..." # MSG_WAITING_TEMP c=20 r=3 -#: ultralcd.cpp:3255 +#: ultralcd.cpp:3371 msgid "Waiting for nozzle and bed cooling" msgstr "Oczekiwanie na wychlodzenie dyszy i stolu" # MSG_WAITING_TEMP_PINDA c=20 r=3 -#: ultralcd.cpp:3219 +#: ultralcd.cpp:3335 msgid "Waiting for PINDA probe cooling" msgstr "Czekam az spadnie temp. sondy PINDA" +# MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 +#: +msgid "WARNING:\nCrash detection\ndisabled in\nStealth mode" +msgstr "UWAGA:\nWykrywanie zderzen\nwylaczone\nw trybie Stealth" + # MSG_CHANGED_BOTH c=20 r=4 -#: Marlin_main.cpp:1508 +#: Marlin_main.cpp:1527 msgid "Warning: both printer type and motherboard type changed." msgstr "Ostrzezenie: typ drukarki i plyta glowna ulegly zmianie." # MSG_CHANGED_MOTHERBOARD c=20 r=4 -#: Marlin_main.cpp:1500 +#: Marlin_main.cpp:1519 msgid "Warning: motherboard type changed." msgstr "Ostrzezenie: plyta glowna ulegla zmianie." # MSG_CHANGED_PRINTER c=20 r=4 -#: Marlin_main.cpp:1504 +#: Marlin_main.cpp:1523 msgid "Warning: printer type changed." msgstr "Ostrzezenie: rodzaj drukarki ulegl zmianie" @@ -2088,17 +2403,17 @@ msgid "WARNING: This is an unofficial, unsupported build. Use at your own risk!" msgstr "OSTRZEZENIE: To jest nieoficjalna, niewspierana wersja firmware. Uzywasz na wlasna odpowiedzialnosc!" # MSG_UNLOAD_SUCCESSFUL c=20 r=2 -#: Marlin_main.cpp:3014 +#: Marlin_main.cpp:3072 msgid "Was filament unload successful?" msgstr "Rozladowanie fil. ok?" # MSG_SELFTEST_WIRINGERROR -#: messages.c:80 +#: messages.c:85 msgid "Wiring error" msgstr "Blad polaczenia" # MSG_WIZARD c=17 r=1 -#: ultralcd.cpp:5176 +#: ultralcd.cpp:5642 msgid "Wizard" msgstr "Asystent" @@ -2117,23 +2432,28 @@ msgstr "Zapis do pliku:" msgid "X-correct" msgstr "Korekcja X" +# +#: ultralcd.cpp:5028 +msgid "X-correct:" +msgstr "Korekcja-X:" + # MSG_XYZ_DETAILS c=19 r=1 -#: ultralcd.cpp:2265 +#: ultralcd.cpp:2136 msgid "XYZ cal. details" msgstr "Szczegoly kal. XYZ" # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 -#: ultralcd.cpp:3715 +#: ultralcd.cpp:3835 msgid "XYZ calibration all right. Skew will be corrected automatically." msgstr "Kalibracja XYZ pomyslna. Skos bedzie automatycznie korygowany." # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 -#: ultralcd.cpp:3712 +#: ultralcd.cpp:3832 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" msgstr "Kalibracja XYZ prawidlowa. Osie X/Y lekko skosne. Dobra robota!" # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 -#: ultralcd.cpp:3693 +#: ultralcd.cpp:3813 msgid "XYZ calibration compromised. Front calibration points not reachable." msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne." @@ -2143,17 +2463,17 @@ msgid "XYZ calibration compromised. Left front calibration point not reachable." msgstr "Kalibracja XYZ niedokladna. Lewy przedni punkt nieosiagalny." # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 -#: ultralcd.cpp:3696 +#: ultralcd.cpp:3816 msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny." # -#: ultralcd.cpp:3675 +#: ultralcd.cpp:3795 msgid "XYZ calibration failed. Bed calibration point was not found." msgstr "Kalibracja XYZ nieudana. Nie znaleziono punktow kalibracyjnych." # -#: ultralcd.cpp:3681 +#: ultralcd.cpp:3801 msgid "XYZ calibration failed. Front calibration points not reachable." msgstr "Kalibr. XYZ nieudana. Przednie punkty kalibr. nieosiagalne. Nalezy poprawic montaz drukarki." @@ -2168,17 +2488,17 @@ msgid "XYZ calibration failed. Please consult the manual." msgstr "Kalibracja XYZ nieudana. Sprawdz przyczyny i rozwiazania w instrukcji." # -#: ultralcd.cpp:3684 +#: ultralcd.cpp:3804 msgid "XYZ calibration failed. Right front calibration point not reachable." msgstr "Kalibr. XYZ nieudana. Prawy przedni punkt nieosiagalny. Nalezy poprawic montaz drukarki." # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 -#: ultralcd.cpp:3709 +#: ultralcd.cpp:3829 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" msgstr "Kalibracja XYZ ok. Osie X/Y sa prostopadle. Gratulacje!" # -#: ultralcd.cpp:2859 +#: ultralcd.cpp:2965 msgid "Y distance from min" msgstr "Dystans od 0 w osi Y" @@ -2192,8 +2512,13 @@ msgstr "Min. odleglosc od Y:" msgid "Y-correct" msgstr "Korekcja Y" +# +#: ultralcd.cpp:5029 +msgid "Y-correct:" +msgstr "Korekcja-Y:" + # MSG_YES -#: messages.c:98 +#: messages.c:104 msgid "Yes" msgstr "Tak" @@ -2208,11 +2533,26 @@ msgid "You are using firmware beta version. This is development version. Using t msgstr "Uzywasz firmware w wersji beta. Ta wersja jest rozwojowa. Uzywanie jej nie jest zalecane i moze spowodowac uszkodzenie drukarki." # MSG_WIZARD_QUIT c=20 r=8 -#: messages.c:97 +#: messages.c:103 msgid "You can always resume the Wizard from Calibration -> Wizard." msgstr "Zawsze mozesz uruchomic Asystenta ponownie przez Kalibracja -> Asystent." +# +#: ultralcd.cpp:5030 +msgid "Z-correct:" +msgstr "Korekcja-Z:" + +# +#: ultralcd.cpp:6952 +msgid "Z-probe nr. [1]" +msgstr "Pomiar-Z [1]" + +# +#: ultralcd.cpp:6954 +msgid "Z-probe nr. [3]" +msgstr "Pomiar-Z [3]" + # MSG_MEASURED_OFFSET -#: ultralcd.cpp:2914 +#: ultralcd.cpp:3024 msgid "[0;0] point offset" msgstr "[0;0] przesuniecie punktu" From e82879820942b3f2f727a7526a921ec345097a20 Mon Sep 17 00:00:00 2001 From: leptun Date: Fri, 13 Sep 2019 21:21:42 +0300 Subject: [PATCH 096/271] Fixes after merge and line buffer General fixes to the lcd_edit_off item and improved way to generate the toggles. The old process is this: Write '>' if required -> print base -> pad everything before the last character with spaces -> write the eol character -> jump back and print the toggle over the blank characters. This resulted in noticeable flickering when the toggle was redrawn and was showing the same thing. Now the process is similar, except that everything happens in a "line buffer" (a char buffer that holds an entire line) and gets printed in one go, avoiding jump instructions for the lcd and prevents flickering since it doesn't write ' ' and the letters afterwards. This should get even better when the lcd_buffer gets implemented since the line_buffer will get compared to the existing data on the screen and avoid overwriting what is on the lcd with the same thing. --- Firmware/menu.cpp | 33 ++++++++++++++++++--------------- Firmware/menu.h | 6 +++--- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index d516be37e..c0a897ca7 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -184,11 +184,20 @@ static void menu_draw_item_puts_P(char type_char, const char* str) lcd_printf_P(PSTR("%c%-18.18S%c"), menu_selection_mark(), str, type_char); } -static void menu_draw_toggle_puts_P(const char* str, const char* toggle, const bool fromProgmem) +static void menu_draw_toggle_puts_P(const char* str, char* toggle, const uint8_t settings) { - menu_draw_item_puts_P((toggle == NULL)?LCD_STR_ARROW_RIGHT[0]:LCD_STR_REFRESH[0], str); - lcd_set_cursor(LCD_WIDTH - 3 - (fromProgmem?(strlen_P((toggle == NULL)?_T(MSG_NA):toggle)):(strlen(toggle))), menu_row); - lcd_printf_P(fromProgmem?PSTR("[%S]"):PSTR("[%s]"), (toggle == NULL)?_T(MSG_NA):toggle); + //settings: + //xxxxxcba + //a = selection mark. If it's set(1), then '>' will be used as the first character on the line. Else leave blank + //b = toggle string is from progmem + //c = do not set cursor at all. Must be handled externally. + char lineStr[LCD_WIDTH + 1]; + const char eol = (toggle == NULL)?LCD_STR_ARROW_RIGHT[0]:' '; + if (toggle == NULL) toggle = _T(MSG_NA); + sprintf_P(lineStr, PSTR("%c%-18.18S"), (settings & 0x01)?'>':' ', str); + sprintf_P(lineStr + LCD_WIDTH - ((settings & 0x02)?strlen_P(toggle):strlen(toggle)) - 3, (settings & 0x02)?PSTR("[%S]%c"):PSTR("[%s]%c"), toggle, eol); + if (!(settings & 0x04)) lcd_set_cursor(0, menu_row); + fputs(lineStr, lcdout); } //! @brief Format sheet name @@ -382,11 +391,11 @@ uint8_t menu_item_function_P(const char* str, char number, void (*func)(uint8_t) return 0; } -uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func, const bool fromProgmem) +uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func, const uint8_t settings) { if (menu_item == menu_line) { - if (lcd_draw_update) menu_draw_toggle_puts_P(str, toggle, fromProgmem); + if (lcd_draw_update) menu_draw_toggle_puts_P(str, toggle, settings | (menu_selection_mark()=='>')); if (menu_clicked && (lcd_encoder == menu_item)) { if (toggle == NULL) // print N/A warning message @@ -424,17 +433,12 @@ uint8_t menu_item_gcode_P(const char* str, const char* str_gcode) return 0; } - -const char menu_20x_space[] PROGMEM = " "; - const char menu_fmt_int3[] PROGMEM = "%c%.15S:%s%3d"; const char menu_fmt_float31[] PROGMEM = "%-12.12S%+8.1f"; const char menu_fmt_float13[] PROGMEM = "%c%-13.13S%+5.3f"; -const char menu_fmt_float13off[] PROGMEM = "%c%-13.13S%6.6s"; - template static void menu_draw_P(char chr, const char* str, int16_t val); @@ -443,8 +447,8 @@ void menu_draw_P(char chr, const char* str, int16_t val) { int text_len = strlen_P(str); if (text_len > 15) text_len = 15; - char spaces[21]; - strcpy_P(spaces, menu_20x_space); + char spaces[LCD_WIDTH + 1] = {0}; + memset(spaces,' ', LCD_WIDTH); if (val <= -100) spaces[15 - text_len - 1] = 0; else spaces[15 - text_len] = 0; lcd_printf_P(menu_fmt_int3, chr, str, spaces, val); @@ -457,8 +461,7 @@ void menu_draw_P(char chr, const char* str, int16_t val) float factor = 1.0f + static_cast(val) / 1000.0f; if (val <= _md->minEditValue) { - // lcd_printf_P(menu_fmt_float13off, chr, str, " [off]"); - menu_draw_toggle_puts_P(str, _T(MSG_OFF), true); + menu_draw_toggle_puts_P(str, _T(MSG_OFF), 0x04 | 0x02 | (chr=='>')); } else { diff --git a/Firmware/menu.h b/Firmware/menu.h index 2a2748158..a9526c318 100755 --- a/Firmware/menu.h +++ b/Firmware/menu.h @@ -118,9 +118,9 @@ extern uint8_t menu_item_function_P(const char* str, menu_func_t func); #define MENU_ITEM_FUNCTION_NR_P(str, number, func, fn_par) do { if (menu_item_function_P(str, number, func, fn_par)) return; } while (0) extern uint8_t menu_item_function_P(const char* str, char number, void (*func)(uint8_t), uint8_t fn_par); -#define MENU_ITEM_TOGGLE_P(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func, true)) return; } while (0) -#define MENU_ITEM_TOGGLE(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func, false)) return; } while (0) -extern uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func, const bool fromProgmem); +#define MENU_ITEM_TOGGLE_P(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func, 0x02)) return; } while (0) +#define MENU_ITEM_TOGGLE(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func, 0x00)) return; } while (0) +extern uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func, const uint8_t settings); #define MENU_ITEM_GCODE_P(str, str_gcode) do { if (menu_item_gcode_P(str, str_gcode)) return; } while (0) extern uint8_t menu_item_gcode_P(const char* str, const char* str_gcode); From 35b93d17dc7d91f3cd473e9758d94fe64a8be0ff Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 14 Sep 2019 08:58:45 +0300 Subject: [PATCH 097/271] Remove merge errors --- lang/lang_en_it.txt | 140 -------------------------------------------- lang/lang_en_pl.txt | 1 - 2 files changed, 141 deletions(-) diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 60316e482..c5479d317 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -1350,146 +1350,6 @@ "PINDA:" "\x00" -# -"Back" -"Indietro" - -# -"Checks" -"Controlli" - -# -"False triggering" -"Falso innesco" - -# -"FINDA:" -"\x00" - -# -"Firmware [none]" -"Firmware[nessuno]" - -# -"Firmware [strict]" -"Firmware [esatto]" - -# -"Firmware [warn]" -"Firmware [avviso]" - -# -"HW Setup" -"Installazione HW" - -# -"IR:" -"\x00" - -# -"Magnets comp.[N/A]" -"Comp. Magneti[N/A]" - -# -"Magnets comp.[Off]" -"Comp. Magneti[off]" - -# -"Magnets comp. [On]" -"Comp. Magneti [on]" - -# -"Mesh [3x3]" -"Griglia [3x3]" - -# -"Mesh [7x7]" -"Griglia [7x7]" - -# -"Mesh bed leveling" -"Mesh livel. letto" - -# -"MK3S firmware detected on MK3 printer" -"Firmware MK3S rilevato su stampante MK3" - -# -"MMU Mode [Normal]" -"Modalita MMU [Normale]" - -# -"MMU Mode[Stealth]" -"Modalita MMU [Silenziosa]" - -# -"Mode change in progress ..." -"Cambio modalita in corso ..." - -# -"Model [none]" -"Modello [nessuno]" - -# -"Model [strict]" -"Modello [esatto]" - -# -"Model [warn]" -"Modello [avviso]" - -# -"Nozzle d. [0.25]" -"Diam.Ugello[0.25]" - -# -"Nozzle d. [0.40]" -"Diam.Ugello[0.40]" - -# -"Nozzle d. [0.60]" -"Diam.Ugello[0.60]" - -# -"Nozzle [none]" -"Ugello [nessuno]" - -# -"Nozzle [strict]" -"Ugello [esatto]" - -# -"Nozzle [warn]" -"Ugello [avviso]" - -# -"G-code sliced for a different level. Continue?" -"G-code processato per un livello diverso. Continuare?" - -# -"G-code sliced for a different level. Please re-slice the model again. Print cancelled." -"G-code processato per un livello diverso. Per favore esegui nuovamente lo slice del modello. Stampa annullata." - -# -"G-code sliced for a different printer type. Continue?" -"G-code processato per una stampante diversa. Continuare?" - -# -"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." -"G-code processato per una stampante diversa. Per favore esegui nuovamente lo slice del modello. Stampa annullata." - -# -"G-code sliced for a newer firmware. Continue?" -"G-code processato per un firmware piu recente. Continuare?" - -# -"G-code sliced for a newer firmware. Please update the firmware. Print cancelled." -"G-code processato per un firmware piu recente. Per favore aggiorna il firmware. Stampa annullata." - -# -"PINDA:" -"\x00" - # "Preheating to cut" "Preriscaldamento per taglio" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index ddac23214..dcc923bb6 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -1327,7 +1327,6 @@ "\x00" # - "G-code sliced for a different level. Please re-slice the model again. Print cancelled." "G-code pociety na innym poziomie. Potnij model ponownie. Druk anulowany." From 695f938348e0d20af2d05ac88863deae463900cf Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 14 Sep 2019 12:24:45 +0300 Subject: [PATCH 098/271] Fix conversion warnings --- Firmware/menu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index c0a897ca7..cb773d156 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -184,7 +184,7 @@ static void menu_draw_item_puts_P(char type_char, const char* str) lcd_printf_P(PSTR("%c%-18.18S%c"), menu_selection_mark(), str, type_char); } -static void menu_draw_toggle_puts_P(const char* str, char* toggle, const uint8_t settings) +static void menu_draw_toggle_puts_P(const char* str, const char* toggle, const uint8_t settings) { //settings: //xxxxxcba From 011468598e2dc10c898e28ee48e6fdf53d2bbf45 Mon Sep 17 00:00:00 2001 From: MRprusa3d Date: Mon, 16 Sep 2019 00:43:37 +0200 Subject: [PATCH 099/271] IR sensor gen. II disconnected PCB detection --- Firmware/adc.c | 5 +- Firmware/config.h | 17 ++++- Firmware/eeprom.h | 3 + Firmware/fsensor.cpp | 138 +++++++++++++++++++++++++++++----- Firmware/fsensor.h | 29 +++++++- Firmware/pins_Einsy_1_0.h | 3 +- Firmware/temperature.cpp | 11 ++- Firmware/temperature.h | 6 ++ Firmware/ultralcd.cpp | 152 ++++++++++++++++++++++++++++++++++---- Firmware/ultralcd.h | 10 +++ 10 files changed, 330 insertions(+), 44 deletions(-) diff --git a/Firmware/adc.c b/Firmware/adc.c index 26728cef5..3144990da 100644 --- a/Firmware/adc.c +++ b/Firmware/adc.c @@ -4,6 +4,7 @@ #include #include #include +#include "pins.h" uint8_t adc_state; uint8_t adc_count; @@ -24,8 +25,8 @@ void adc_init(void) ADMUX |= (1 << REFS0); ADCSRA |= (1 << ADEN); // ADCSRA |= (1 << ADIF) | (1 << ADSC); - DIDR0 = (ADC_CHAN_MSK & 0xff); - DIDR2 = (ADC_CHAN_MSK >> 8); + DIDR0 = ((ADC_CHAN_MSK & ADC_DIDR_MSK) & 0xff); + DIDR2 = ((ADC_CHAN_MSK & ADC_DIDR_MSK) >> 8); adc_reset(); // adc_sim_mask = 0b0101; // adc_sim_mask = 0b100101; diff --git a/Firmware/config.h b/Firmware/config.h index a712839b7..3242e47c2 100644 --- a/Firmware/config.h +++ b/Firmware/config.h @@ -2,9 +2,21 @@ #define _CONFIG_H +#include "Configuration_prusa.h" +#include "pins.h" + +#define IR_SENSOR_ANALOG (defined(VOLT_IR_PIN) && defined(IR_SENSOR)) + //ADC configuration +#if !IR_SENSOR_ANALOG #define ADC_CHAN_MSK 0b0000001001011111 //used AD channels bit mask (0,1,2,3,4,6,9) +#define ADC_DIDR_MSK 0b0000001001011111 //AD channels DIDR mask (1 ~ disabled digital input) #define ADC_CHAN_CNT 7 //number of used channels) +#else //!IR_SENSOR_ANALOG +#define ADC_CHAN_MSK 0b0000001101011111 //used AD channels bit mask (0,1,2,3,4,6,8,9) +#define ADC_DIDR_MSK 0b0000001001011111 //AD channels DIDR mask (1 ~ disabled digital input) +#define ADC_CHAN_CNT 8 //number of used channels) +#endif //!IR_SENSOR_ANALOG #define ADC_OVRSAMPL 16 //oversampling multiplier #define ADC_CALLBACK adc_ready //callback function () @@ -42,11 +54,8 @@ #define W25X20CL_SPCR SPI_SPCR(W25X20CL_SPI_RATE, 1, 1, 1, 0) #define W25X20CL_SPSR SPI_SPSR(W25X20CL_SPI_RATE) -#include "boards.h" -#include "Configuration_prusa.h" - //LANG - Multi-language support -//#define LANG_MODE 0 // primary language only +//define LANG_MODE 0 // primary language only #define LANG_MODE 1 // sec. language support #define LANG_SIZE_RESERVED 0x2800 // reserved space for secondary language (10240 bytes) diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index c41fb9ff9..83fdfe399 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -203,6 +203,9 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP #define EEPROM_SHEETS_BASE (EEPROM_CHECK_GCODE - EEPROM_SHEETS_SIZEOF) // Sheets static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); +#define EEPROM_FSENSOR_PCB (EEPROM_SHEETS_BASE-1) // uint8 +#define EEPROM_FSENSOR_ACTION_NA (EEPROM_FSENSOR_PCB-1) // uint8 + //This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items. #define EEPROM_LAST_ITEM EEPROM_SHEETS_BASE diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index f20f647d6..c01274fb3 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -15,6 +15,10 @@ #include "mmu.h" #include "cardreader.h" +#include "adc.h" +#include "temperature.h" +#include "config.h" + //! @name Basic parameters //! @{ #define FSENSOR_CHUNK_LEN 0.64F //!< filament sensor chunk length 0.64mm @@ -117,6 +121,13 @@ int16_t fsensor_oq_yd_max; uint16_t fsensor_oq_sh_sum; //! @} +#if IR_SENSOR_ANALOG +ClFsensorPCB oFsensorPCB; +ClFsensorActionNA oFsensorActionNA; +bool bIRsensorStateFlag=false; +unsigned long nIRsensorLastTime; +#endif //IR_SENSOR_ANALOG + void fsensor_stop_and_save_print(void) { printf_P(PSTR("fsensor_stop_and_save_print\n")); @@ -136,10 +147,11 @@ void fsensor_init(void) { #ifdef PAT9125 uint8_t pat9125 = pat9125_init(); - printf_P(PSTR("PAT9125_init:%hhu\n"), pat9125); + printf_P(PSTR("PAT9125_init:%hhu\n"), pat9125); #endif //PAT9125 uint8_t fsensor = eeprom_read_byte((uint8_t*)EEPROM_FSENSOR); fsensor_autoload_enabled=eeprom_read_byte((uint8_t*)EEPROM_FSENS_AUTOLOAD_ENABLED); + fsensor_not_responding = false; #ifdef PAT9125 uint8_t oq_meassure_enabled = eeprom_read_byte((uint8_t*)EEPROM_FSENS_OQ_MEASS_ENABLED); fsensor_oq_meassure_enabled = (oq_meassure_enabled == 1)?true:false; @@ -150,19 +162,27 @@ void fsensor_init(void) fsensor = 0; //disable sensor fsensor_not_responding = true; } - else - fsensor_not_responding = false; #endif //PAT9125 +#if IR_SENSOR_ANALOG + bIRsensorStateFlag=false; + oFsensorPCB=(ClFsensorPCB)eeprom_read_byte((uint8_t*)EEPROM_FSENSOR_PCB); + oFsensorActionNA=(ClFsensorActionNA)eeprom_read_byte((uint8_t*)EEPROM_FSENSOR_ACTION_NA); +#endif //IR_SENSOR_ANALOG if (fsensor) - fsensor_enable(); + fsensor_enable(false); // (in this case) EEPROM update is not necessary else - fsensor_disable(); - printf_P(PSTR("FSensor %S\n"), (fsensor_enabled?PSTR("ENABLED"):PSTR("DISABLED\n"))); + fsensor_disable(false); // (in this case) EEPROM update is not necessary + printf_P(PSTR("FSensor %S"), (fsensor_enabled?PSTR("ENABLED"):PSTR("DISABLED"))); +#if IR_SENSOR_ANALOG + printf_P(PSTR(" (sensor board revision: %S)\n"),(oFsensorPCB==ClFsensorPCB::_Rev03b)?PSTR("03b or newer"):PSTR("03 or older")); +#else //IR_SENSOR_ANALOG + printf_P(PSTR("\n")); +#endif //IR_SENSOR_ANALOG if (check_for_ir_sensor()) ir_sensor_detected = true; } -bool fsensor_enable(void) +bool fsensor_enable(bool bUpdateEEPROM) { #ifdef PAT9125 if (mmu_enabled == false) { //filament sensor is pat9125, enable only if it is working @@ -187,18 +207,34 @@ bool fsensor_enable(void) FSensorStateMenu = 1; } #else // PAT9125 - fsensor_enabled = true; - eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, 0x01); - FSensorStateMenu = 1; -#endif // PAT9125 +#if IR_SENSOR_ANALOG + if(!fsensor_IR_check()) + { + bUpdateEEPROM=true; + fsensor_enabled=false; + fsensor_not_responding=true; + FSensorStateMenu=0; + } + else { +#endif //IR_SENSOR_ANALOG + fsensor_enabled=true; + fsensor_not_responding=false; + FSensorStateMenu=1; +#if IR_SENSOR_ANALOG + } +#endif //IR_SENSOR_ANALOG + if(bUpdateEEPROM) + eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, FSensorStateMenu); +#endif //PAT9125 return fsensor_enabled; } -void fsensor_disable(void) -{ +void fsensor_disable(bool bUpdateEEPROM) +{ fsensor_enabled = false; - eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, 0x00); FSensorStateMenu = 0; + if(bUpdateEEPROM) + eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, 0x00); } void fsensor_autoload_set(bool State) @@ -589,10 +625,76 @@ void fsensor_update(void) fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp; } #else //PAT9125 - if ((digitalRead(IR_SENSOR_PIN) == 1) && CHECK_FSENSOR && fsensor_enabled && ir_sensor_detected && ( ! fsensor_m600_enqueued) ) - { - fsensor_stop_and_save_print(); - fsensor_enque_M600(); + if (CHECK_FSENSOR && fsensor_enabled && ir_sensor_detected && ( ! fsensor_m600_enqueued) ) + { + if(digitalRead(IR_SENSOR_PIN)) + { // IR_SENSOR_PIN ~ H +#if IR_SENSOR_ANALOG + if(!bIRsensorStateFlag) + { + bIRsensorStateFlag=true; + nIRsensorLastTime=_millis(); + } + else + { + if((_millis()-nIRsensorLastTime)>IR_SENSOR_STEADY) + { + uint8_t nMUX1,nMUX2; + uint16_t nADC; + bIRsensorStateFlag=false; + // sequence for direct data reading from AD converter + DISABLE_TEMPERATURE_INTERRUPT(); + nMUX1=ADMUX; // ADMUX saving + nMUX2=ADCSRB; + adc_setmux(VOLT_IR_PIN); + ADCSRA|=(1<((int)IRsensor_Hopen_TRESHOLD))) + { + fsensor_disable(); + fsensor_not_responding = true; + printf_P(PSTR("IR sensor not responding (%d)!\n"),1); + if((ClFsensorActionNA)eeprom_read_byte((uint8_t*)EEPROM_FSENSOR_ACTION_NA)==ClFsensorActionNA::_Pause) + if(oFsensorActionNA==ClFsensorActionNA::_Pause) + lcd_pause_print(); + } + else + { +#endif //IR_SENSOR_ANALOG + fsensor_stop_and_save_print(); + fsensor_enque_M600(); +#if IR_SENSOR_ANALOG + } + } + } + } + else + { // IR_SENSOR_PIN ~ L + bIRsensorStateFlag=false; +#endif //IR_SENSOR_ANALOG + } } #endif //PAT9125 } + +#if IR_SENSOR_ANALOG +bool fsensor_IR_check() +{ +uint16_t volt_IR_int; +bool bCheckResult; + +volt_IR_int=current_voltage_raw_IR; +bCheckResult=(volt_IR_int<((int)IRsensor_Lmax_TRESHOLD))||(volt_IR_int>((int)IRsensor_Hmin_TRESHOLD)); +bCheckResult=bCheckResult&&(!((oFsensorPCB==ClFsensorPCB::_Rev03b)&&(volt_IR_int>((int)IRsensor_Hopen_TRESHOLD)))); +return(bCheckResult); +} +#endif //IR_SENSOR_ANALOG diff --git a/Firmware/fsensor.h b/Firmware/fsensor.h index fa7ab5854..48ad5fba0 100755 --- a/Firmware/fsensor.h +++ b/Firmware/fsensor.h @@ -3,6 +3,7 @@ #define FSENSOR_H #include +#include "config.h" //! minimum meassured chunk length in steps @@ -27,8 +28,8 @@ extern void fsensor_init(void); //! @name enable/disable //! @{ -extern bool fsensor_enable(void); -extern void fsensor_disable(void); +extern bool fsensor_enable(bool bUpdateEEPROM=true); +extern void fsensor_disable(bool bUpdateEEPROM=true); //! @} //autoload feature enabled @@ -65,4 +66,28 @@ extern void fsensor_st_block_begin(block_t* bl); extern void fsensor_st_block_chunk(block_t* bl, int cnt); //! @} + +#if IR_SENSOR_ANALOG +#define IR_SENSOR_STEADY 10 // [ms] + +enum class ClFsensorPCB:uint_least8_t +{ + _Old=0, + _Rev03b=1, + _Undef=EEPROM_EMPTY_VALUE +}; + +enum class ClFsensorActionNA:uint_least8_t +{ + _Continue=0, + _Pause=1, + _Undef=EEPROM_EMPTY_VALUE +}; + +extern ClFsensorPCB oFsensorPCB; +extern ClFsensorActionNA oFsensorActionNA; + +extern bool fsensor_IR_check(); +#endif //IR_SENSOR_ANALOG + #endif //FSENSOR_H diff --git a/Firmware/pins_Einsy_1_0.h b/Firmware/pins_Einsy_1_0.h index 33363388a..1ea69a408 100755 --- a/Firmware/pins_Einsy_1_0.h +++ b/Firmware/pins_Einsy_1_0.h @@ -71,12 +71,13 @@ #define HEATER_2_PIN -1 #define TEMP_2_PIN -1 -#define TEMP_AMBIENT_PIN 5 //A5 +#define TEMP_AMBIENT_PIN 6 //A6 #define TEMP_PINDA_PIN 3 //A3 #define VOLT_PWR_PIN 4 //A4 #define VOLT_BED_PIN 9 //A9 +#define VOLT_IR_PIN 8 //A8 #define E0_TMC2130_CS 66 diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 391607e8c..804974808 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -44,6 +44,8 @@ #include "Timer.h" #include "Configuration_prusa.h" +#include "config.h" + //=========================================================================== //=============================public variables============================ //=========================================================================== @@ -71,6 +73,10 @@ int current_voltage_raw_pwr = 0; int current_voltage_raw_bed = 0; #endif +#if IR_SENSOR_ANALOG +int current_voltage_raw_IR = 0; +#endif //IR_SENSOR_ANALOG + int current_temperature_bed_raw = 0; float current_temperature_bed = 0.0; #ifdef TEMP_SENSOR_1_AS_REDUNDANT @@ -1635,11 +1641,14 @@ void adc_ready(void) //callback from adc when sampling finished current_voltage_raw_pwr = adc_values[ADC_PIN_IDX(VOLT_PWR_PIN)]; #endif #ifdef AMBIENT_THERMISTOR - current_temperature_raw_ambient = adc_values[ADC_PIN_IDX(TEMP_AMBIENT_PIN)]; + current_temperature_raw_ambient = adc_values[ADC_PIN_IDX(TEMP_AMBIENT_PIN)]; // 5->6 #endif //AMBIENT_THERMISTOR #ifdef VOLT_BED_PIN current_voltage_raw_bed = adc_values[ADC_PIN_IDX(VOLT_BED_PIN)]; // 6->9 #endif +#if IR_SENSOR_ANALOG + current_voltage_raw_IR = adc_values[ADC_PIN_IDX(VOLT_IR_PIN)]; +#endif //IR_SENSOR_ANALOG temp_meas_ready = true; } diff --git a/Firmware/temperature.h b/Firmware/temperature.h index e9ba11b47..7ece89273 100755 --- a/Firmware/temperature.h +++ b/Firmware/temperature.h @@ -27,6 +27,8 @@ #include "stepper.h" #endif +#include "config.h" + #ifdef SYSTEM_TIMER_2 @@ -74,6 +76,10 @@ extern int current_voltage_raw_pwr; extern int current_voltage_raw_bed; #endif +#if IR_SENSOR_ANALOG +extern int current_voltage_raw_IR; +#endif //IR_SENSOR_ANALOG + #ifdef TEMP_SENSOR_1_AS_REDUNDANT extern float redundant_temperature; #endif diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 0d726769a..ffc12c269 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -42,6 +42,10 @@ #include "io_atmega2560.h" #include "first_lay_cal.h" +#include "fsensor.h" +#include "adc.h" +#include "config.h" + int scrollstuff = 0; char longFilenameOLD[LONG_FILENAME_LENGTH]; @@ -61,9 +65,6 @@ int8_t FSensorStateMenu = 1; int8_t CrashDetectMenu = 1; -extern bool fsensor_enable(); -extern void fsensor_disable(); - #ifdef TMC2130 extern void crashdet_enable(); extern void crashdet_disable(); @@ -200,6 +201,7 @@ enum class TestError : uint_least8_t SwappedFan, WiringFsensor, TriggeringFsensor, + FsensorLevel }; static int lcd_selftest_screen(TestScreen screen, int _progress, int _progress_scale, bool _clear, int _delay); @@ -231,6 +233,9 @@ static FanCheck lcd_selftest_fan_auto(int _fan); static bool lcd_selftest_fsensor(); #endif //PAT9125 static bool selftest_irsensor(); +#if IR_SENSOR_ANALOG +static bool lcd_selftest_IRsensor(); +#endif //IR_SENSOR_ANALOG static void lcd_selftest_error(TestError error, const char *_error_1, const char *_error_2); static void lcd_colorprint_change(); #ifdef SNMM @@ -1984,21 +1989,28 @@ static void lcd_menu_temperatures() menu_back_if_clicked(); } -#if defined (VOLT_BED_PIN) || defined (VOLT_PWR_PIN) +#if defined (VOLT_BED_PIN) || defined (VOLT_PWR_PIN) || IR_SENSOR_ANALOG #define VOLT_DIV_R1 10000 #define VOLT_DIV_R2 2370 #define VOLT_DIV_FAC ((float)VOLT_DIV_R2 / (VOLT_DIV_R2 + VOLT_DIV_R1)) -#define VOLT_DIV_REF 5 + static void lcd_menu_voltages() { lcd_timeoutToStatus.stop(); //infinite timeout float volt_pwr = VOLT_DIV_REF * ((float)current_voltage_raw_pwr / (1023 * OVERSAMPLENR)) / VOLT_DIV_FAC; float volt_bed = VOLT_DIV_REF * ((float)current_voltage_raw_bed / (1023 * OVERSAMPLENR)) / VOLT_DIV_FAC; lcd_home(); - lcd_printf_P(PSTR(" PWR: %d.%01dV\n" " BED: %d.%01dV"), (int)volt_pwr, (int)(10*fabs(volt_pwr - (int)volt_pwr)), (int)volt_bed, (int)(10*fabs(volt_bed - (int)volt_bed))); - menu_back_if_clicked(); +#if !IR_SENSOR_ANALOG + lcd_printf_P(PSTR("\n")); +#endif //!IR_SENSOR_ANALOG + lcd_printf_P(PSTR(" PWR: %4.1fV\n" " BED: %4.1fV"), volt_pwr, volt_bed); +#if IR_SENSOR_ANALOG + float volt_IR = VOLT_DIV_REF * ((float)current_voltage_raw_IR / (1023 * OVERSAMPLENR)); + lcd_printf_P(PSTR("\n IR : %3.1fV"),volt_IR); +#endif //IR_SENSOR_ANALOG + menu_back_if_clicked(); } -#endif //defined VOLT_BED_PIN || defined VOLT_PWR_PIN +#endif //defined (VOLT_BED_PIN) || defined (VOLT_PWR_PIN) || IR_SENSOR_ANALOG #ifdef TMC2130 static void lcd_menu_belt_status() @@ -5505,6 +5517,41 @@ SETTINGS_VERSION; MENU_END(); } +#if IR_SENSOR_ANALOG +static void lcd_fsensor_actionNA_set(void) +{ +switch(oFsensorActionNA) + { + case ClFsensorActionNA::_Continue: + oFsensorActionNA=ClFsensorActionNA::_Pause; + break; + case ClFsensorActionNA::_Pause: + oFsensorActionNA=ClFsensorActionNA::_Continue; + break; + default: + oFsensorActionNA=ClFsensorActionNA::_Continue; + } +eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_ACTION_NA,(uint8_t)oFsensorActionNA); +} + +#define FSENSOR_ACTION_NA \ +do\ +{\ + switch(oFsensorActionNA)\ + {\ + case ClFsensorActionNA::_Continue:\ + MENU_ITEM_FUNCTION_P(_i("FS Action [cont.]"),lcd_fsensor_actionNA_set);\ + break;\ + case ClFsensorActionNA::_Pause:\ + MENU_ITEM_FUNCTION_P(_i("FS Action [pause]"),lcd_fsensor_actionNA_set);\ + break;\ + default:\ + oFsensorActionNA=ClFsensorActionNA::_Continue;\ + }\ +}\ +while (0) +#endif //IR_SENSOR_ANALOG + void lcd_hw_setup_menu(void) // can not be "static" { MENU_BEGIN(); @@ -5536,6 +5583,11 @@ if(!farm_mode){ SETTINGS_NOZZLE; MENU_ITEM_SUBMENU_P(_i("Checks"), lcd_checking_menu); } + +#if IR_SENSOR_ANALOG +FSENSOR_ACTION_NA; +#endif //IR_SENSOR_ANALOG + MENU_END(); } @@ -6850,11 +6902,21 @@ static void lcd_tune_menu() #ifdef FILAMENT_SENSOR if (FSensorStateMenu == 0) { - MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_OFF), lcd_fsensor_state_set); + if (fsensor_not_responding && (mmu_enabled == false)) { + /* Filament sensor not working*/ + MENU_ITEM_FUNCTION_P(_i("Fil. sensor [N/A]"), lcd_fsensor_state_set); + } + else { + /* Filament sensor turned off, working, no problems*/ + MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_OFF), lcd_fsensor_state_set); + } } else { MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_ON), lcd_fsensor_state_set); } +#if IR_SENSOR_ANALOG + FSENSOR_ACTION_NA; +#endif //IR_SENSOR_ANALOG #endif //FILAMENT_SENSOR SETTINGS_AUTO_DEPLETE; @@ -7137,6 +7199,42 @@ void lcd_sdcard_menu() MENU_END(); } +#if IR_SENSOR_ANALOG +static bool lcd_selftest_IRsensor() +{ +bool bAction; +bool bPCBrev03b; +uint16_t volt_IR_int; +float volt_IR; + +volt_IR_int=current_voltage_raw_IR; +bPCBrev03b=(volt_IR_int<((int)IRsensor_Hopen_TRESHOLD)); +volt_IR=VOLT_DIV_REF*((float)volt_IR_int/(1023*OVERSAMPLENR)); +printf_P(PSTR("Measured filament sensor high level: %4.2fV\n"),volt_IR); +if(volt_IR_int<((int)IRsensor_Hmin_TRESHOLD)) + { + lcd_selftest_error(TestError::FsensorLevel,"HIGH",""); + return(false); + } +lcd_show_fullscreen_message_and_wait_P(_i("Please insert filament (but not load them!) into extruder and then press the knob.")); +volt_IR_int=current_voltage_raw_IR; +volt_IR=VOLT_DIV_REF*((float)volt_IR_int/(1023*OVERSAMPLENR)); +printf_P(PSTR("Measured filament sensor low level: %4.2fV\n"),volt_IR); +if(volt_IR_int>((int)IRsensor_Lmax_TRESHOLD)) + { + lcd_selftest_error(TestError::FsensorLevel,"LOW",""); + return(false); + } +if((bPCBrev03b?1:0)!=(uint8_t)oFsensorPCB) // safer then "(uint8_t)bPCBrev03b" + { + printf_P(PSTR("Filament sensor board change detected: revision %S\n"),bPCBrev03b?PSTR("03b or newer"):PSTR("03 or older")); + oFsensorPCB=bPCBrev03b?ClFsensorPCB::_Rev03b:ClFsensorPCB::_Old; + eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB); + } +return(true); +} +#endif //IR_SENSOR_ANALOG + static void lcd_selftest_v() { (void)lcd_selftest(); @@ -7153,8 +7251,16 @@ bool lcd_selftest() #ifdef TMC2130 FORCE_HIGH_POWER_START; #endif // TMC2130 - _delay(2000); +#if !IR_SENSOR_ANALOG + _delay(2000); +#endif //!IR_SENSOR_ANALOG KEEPALIVE_STATE(IN_HANDLER); +#if IR_SENSOR_ANALOG + bool bAction; + bAction=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is filament unloaded?"),false,true); + if(!bAction) + return(false); +#endif //IR_SENSOR_ANALOG _progress = lcd_selftest_screen(TestScreen::ExtruderFan, _progress, 3, true, 2000); #if (defined(FANCHECK) && defined(TACH_0)) @@ -7340,12 +7446,20 @@ bool lcd_selftest() { #ifdef PAT9125 _progress = lcd_selftest_screen(TestScreen::Fsensor, _progress, 3, true, 2000); //check filaments sensor - _result = lcd_selftest_fsensor(); + _result = lcd_selftest_fsensor(); if (_result) { _progress = lcd_selftest_screen(TestScreen::FsensorOk, _progress, 3, true, 2000); //fil sensor OK } #endif //PAT9125 +#if IR_SENSOR_ANALOG + _progress = lcd_selftest_screen(TestScreen::Fsensor, _progress, 3, true, 2000); //check filament sensor + _result = lcd_selftest_IRsensor(); + if (_result) + { + _progress = lcd_selftest_screen(TestScreen::FsensorOk, _progress, 3, true, 2000); //filament sensor OK + } +#endif //IR_SENSOR_ANALOG } } #endif //FILAMENT_SENSOR @@ -7881,11 +7995,17 @@ static void lcd_selftest_error(TestError testError, const char *_error_1, const lcd_puts_P(_T(MSG_SELFTEST_WIRINGERROR)); break; case TestError::TriggeringFsensor: - lcd_set_cursor(0, 2); - lcd_puts_P(_T(MSG_SELFTEST_FILAMENT_SENSOR)); - lcd_set_cursor(0, 3); - lcd_puts_P(_i("False triggering"));////c=20 - break; + lcd_set_cursor(0, 2); + lcd_puts_P(_T(MSG_SELFTEST_FILAMENT_SENSOR)); + lcd_set_cursor(0, 3); + lcd_puts_P(_i("False triggering"));////c=20 + break; + case TestError::FsensorLevel: + lcd_set_cursor(0, 2); + lcd_puts_P(_T(MSG_SELFTEST_FILAMENT_SENSOR)); + lcd_set_cursor(0, 3); + lcd_printf_P(_i("%s level expected"),_error_1);////c=20 + break; } _delay(1000); diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 2c57c9443..65e886c67 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -7,6 +7,8 @@ #include "menu.h" #include "mesh_bed_calibration.h" +#include "config.h" + extern void menu_lcd_longpress_func(void); extern void menu_lcd_charsetup_func(void); extern void menu_lcd_lcdupdate_func(void); @@ -234,4 +236,12 @@ enum class WizState : uint8_t void lcd_wizard(WizState state); +#define VOLT_DIV_REF 5 +#if IR_SENSOR_ANALOG +#define IRsensor_Hmin_TRESHOLD (3.0*1023*OVERSAMPLENR/VOLT_DIV_REF) // ~3.0V (0.6*Vcc) +#define IRsensor_Lmax_TRESHOLD (1.5*1023*OVERSAMPLENR/VOLT_DIV_REF) // ~1.5V (0.3*Vcc) +#define IRsensor_Hopen_TRESHOLD (4.6*1023*OVERSAMPLENR/VOLT_DIV_REF) // ~4.6V (N.C. @ Ru~20-50k, Rd'=56k, Ru'=10k) +#define IRsensor_Ldiode_TRESHOLD (0.3*1023*OVERSAMPLENR/VOLT_DIV_REF) // ~0.3V +#endif //IR_SENSOR_ANALOG + #endif //ULTRALCD_H From d491a9801d2f5a6869db658283f380f7ca145ef3 Mon Sep 17 00:00:00 2001 From: MRprusa3d <38257799+MRprusa3d@users.noreply.github.com> Date: Mon, 16 Sep 2019 16:04:45 +0200 Subject: [PATCH 100/271] Update ultralcd.cpp --- Firmware/ultralcd.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5fe2e9764..5a710ba39 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5392,7 +5392,6 @@ do\ while (0) #endif //IR_SENSOR_ANALOG -void lcd_hw_setup_menu(void) // can not be "static" template static void select_sheet_menu() { From 28edd5a80beed6740ab365b71b5232c290bd688a Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 23 Sep 2019 19:22:45 +0200 Subject: [PATCH 101/271] Prepare PF-build.sh for Prusa Arduino_Boards V1.0.2 As I am planning to add new Prusa Arduino_Boards definition version 1.0.2 which contains few changes which interfere withthe existing PF-build.sh using Arduino_Boards v1.0.1, i had to add an additional variable. I have tested PF-build.sh with Arduino_Boards v1.0.1 and v1.0.2 It creates identical firmware hex files, if I manage it to run in the same minute. If one of the runs is off by a minute compared to the other there is just one line in the hex code different, which is showing the compiling date, time and firmware version. --- PF-build.sh | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index fb3b51a10..9bafed344 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.0.6-Build_9 +# Version: 1.0.6-Build_10 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -112,7 +112,7 @@ # Changed Hex-files folder to PF-build-hex as requested in PR # 23 Jul 2019, 3d-gussner, Added Finding OS version routine so supporting new OS should get easier # 26 Jul 2019, 3d-gussner, Change JSON repository to prusa3d after PR https://github.com/prusa3d/Arduino_Boards/pull/1 was merged - +# 23 Sep 2019, 3d-gussner, Prepare PF-build.sh for comming Prusa3d/Arduino_Boards version 1.0.2 Pull Request #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -211,7 +211,8 @@ fi #### Set build environment ARDUINO_ENV="1.8.5" BUILD_ENV="1.0.6" -BOARD="PrusaResearchRambo" +BOARD="rambo" +BOARD_PACKAGE_NAME="PrusaResearchRambo" BOARD_VERSION="1.0.1" BOARD_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json" BOARD_FILENAME="prusa3drambo" @@ -229,6 +230,7 @@ echo "" echo "Ardunio IDE :" $ARDUINO_ENV echo "Build env :" $BUILD_ENV echo "Board :" $BOARD +echo "Package name:" $BOARD_PACKAGE_NAME echo "Specific Lib:" $LIB echo "" @@ -317,7 +319,7 @@ if [ ! -e ../PF-build-env-$BUILD_ENV/Preferences-$TARGET_OS-$Processor.txt ]; th echo "update.check" sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt echo "board" - sed -i 's/board = uno/board = rambo/g' ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt + sed -i 's/board = uno/board = $BOARD/g' ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt echo "editor.linenumbers" sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt echo "boardsmanager.additional.urls" @@ -336,24 +338,24 @@ if [ ! -f "$BOARD_FILENAME-$BOARD_VERSION.tar.bz2" ]; then sleep 2 wget $BOARD_FILE_URL || exit 9 fi -if [[ ! -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then - echo "$(tput setaf 6)Unzipping $BOARD Arduino IDE portable...$(tput setaf 2)" +if [[ ! -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then + echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)" sleep 2 tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10 - if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD + if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then + mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD + if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then + mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware + if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware ]; then + mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware/avr ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware/avr + if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr ]; then + mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr fi - mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware/avr/$BOARD_VERSION + mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION echo "# $BOARD_FILENAME-$BOARD_VERSION" >> ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr 0)" fi @@ -634,8 +636,8 @@ do echo "Start to build Prusa Firmware ..." echo "Using variant $VARIANT$(tput setaf 3)" sleep 2 - #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD:avr:rambo -ide-version=10805 -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 - $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD:avr:rambo -ide-version=10805 -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 + #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -ide-version=10805 -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 + $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -ide-version=10805 -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 echo "$(tput sgr 0)" if [ $LANGUAGES == "ALL" ]; then From 74a1c9341b5a3b38ede42667b68e7f93c15d0204 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 1 Oct 2019 22:57:59 +0200 Subject: [PATCH 102/271] Revert "Use content supplied strings for lcd_first_layer_calibration_reset(), as we have translations prepared for release. It will be reverted later to show current Z offset." This reverts commit ca9ef3aba123e45b792bddc4eace803ffedfd455. --- Firmware/ultralcd.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 9f498e01a..0630eb7c1 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -4777,10 +4777,10 @@ void lcd_toshiba_flash_air_compatibility_toggle() //! //! @code{.unparsed} //! |01234567890123456789| -//! |[Smooth1]Live adj. Z| c=11 -//! |value set, continue | c=20 -//! |or start from zero? | c=20 -//! |>Continue Reset | c=a, c=b, a+b = 18 +//! |Sheet Smooth1 actual| c=a, c=b, a+b = 13 +//! |Z offset: -1.480 mm | c=a, c=b, a+b = 14 +//! |>Continue | c=19 +//! | Start from zero | c=19 //! ---------------------- //! @endcode void lcd_first_layer_calibration_reset() @@ -4818,8 +4818,9 @@ void lcd_first_layer_calibration_reset() char sheet_name[sizeof(Sheet::name)]; eeprom_read_block(sheet_name, &EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].name, sizeof(Sheet::name)); lcd_set_cursor(0, 0); - lcd_printf_P(_i("[%.7s]Live adj. Z\nvalue set, continue\nor start from zero?\n%cContinue%cReset"), //// \n denotes line break, %.7s is replaced by 7 character long sheet name, %+1.3f is replaced by 6 character long floating point number, %c is replaced by > or white space (one character) based on whether first or second option is selected. % denoted place holders can not be reordered. r=4 - sheet_name, menuData->reset ? ' ' : '>', menuData->reset ? '>' : ' '); + float offset = static_cast(eeprom_read_word(reinterpret_cast(&EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].z_offset)))/cs.axis_steps_per_unit[Z_AXIS]; + lcd_printf_P(_i("Sheet %.7s actual\nZ offset: %+1.3f mm\n%cContinue\n%cStart from zero"), //// \n denotes line break, %.7s is replaced by 7 character long sheet name, %+1.3f is replaced by 6 character long floating point number, %c is replaced by > or white space (one character) based on whether first or second option is selected. % denoted place holders can not be reordered. r=4 + sheet_name, offset, menuData->reset ? ' ' : '>', menuData->reset ? '>' : ' '); } From 570b5989f4972b399e39ee2d74330928292e4cce Mon Sep 17 00:00:00 2001 From: leptun Date: Sun, 6 Oct 2019 10:50:11 +0300 Subject: [PATCH 103/271] Disable bed PWM while probing bed. --- Firmware/heatbed_pwm.cpp | 6 ++++++ Firmware/mesh_bed_calibration.cpp | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/Firmware/heatbed_pwm.cpp b/Firmware/heatbed_pwm.cpp index a3e5444c3..6f5a93162 100755 --- a/Firmware/heatbed_pwm.cpp +++ b/Firmware/heatbed_pwm.cpp @@ -61,6 +61,8 @@ enum class States : uint8_t { ///! Inner states of the finite automaton static States state = States::ZERO_START; +bool bedPWMDisabled = 0; + ///! Fast PWM counter is used in the RISE and FALL states (62.5kHz) static uint8_t slowCounter = 0; ///! Slow PWM counter is used in the ZERO and ONE states (62.5kHz/8 or 64) @@ -93,6 +95,7 @@ ISR(TIMER0_OVF_vect) // timer compare interrupt service routine { switch(state){ case States::ZERO_START: + if (bedPWMDisabled) break; pwm = soft_pwm_bed << 1;// expecting soft_pwm_bed to be 7bit! if( pwm != 0 ){ state = States::ZERO; // do nothing, let it tick once again after the 30Hz period @@ -144,6 +147,9 @@ ISR(TIMER0_OVF_vect) // timer compare interrupt service routine // if slowInc==2, soft_pwm == 251 will be the first to do short drops to zero. 252 will keep full heating return; // want full duty for the next ONE cycle again - so keep on heating and just wait for the next timer ovf } + if (bedPWMDisabled){ + return; + } // otherwise moving towards FALL // @@TODO it looks like ONE_TO_FALL isn't necessary, there are no artefacts at all state = States::ONE;//_TO_FALL; diff --git a/Firmware/mesh_bed_calibration.cpp b/Firmware/mesh_bed_calibration.cpp index 6466edc45..36fbfda42 100644 --- a/Firmware/mesh_bed_calibration.cpp +++ b/Firmware/mesh_bed_calibration.cpp @@ -23,6 +23,7 @@ float world2machine_shift[2]; #define WEIGHT_FIRST_ROW_Y_HIGH (0.3f) #define WEIGHT_FIRST_ROW_Y_LOW (0.0f) +extern bool bedPWMDisabled; // Scaling of the real machine axes against the programmed dimensions in the firmware. @@ -946,6 +947,7 @@ inline bool find_bed_induction_sensor_point_z(float minimum_z, uint8_t n_iter, i ) { bool high_deviation_occured = false; + bedPWMDisabled = 1; #ifdef TMC2130 FORCE_HIGH_POWER_START; #endif @@ -1044,6 +1046,7 @@ inline bool find_bed_induction_sensor_point_z(float minimum_z, uint8_t n_iter, i #ifdef TMC2130 FORCE_HIGH_POWER_END; #endif + bedPWMDisabled = 0; return true; error: @@ -1053,6 +1056,7 @@ error: #ifdef TMC2130 FORCE_HIGH_POWER_END; #endif + bedPWMDisabled = 0; return false; } From 7650e2b60cf6404924af8ae026bd92d10a75486a Mon Sep 17 00:00:00 2001 From: leptun Date: Sun, 6 Oct 2019 12:43:03 +0300 Subject: [PATCH 104/271] Handle disable_heater() --- Firmware/mesh_bed_calibration.cpp | 2 +- Firmware/temperature.cpp | 1 + Firmware/temperature.h | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Firmware/mesh_bed_calibration.cpp b/Firmware/mesh_bed_calibration.cpp index 36fbfda42..88cbc671a 100644 --- a/Firmware/mesh_bed_calibration.cpp +++ b/Firmware/mesh_bed_calibration.cpp @@ -6,6 +6,7 @@ #include "mesh_bed_leveling.h" #include "stepper.h" #include "ultralcd.h" +#include "temperature.h" #ifdef TMC2130 #include "tmc2130.h" @@ -23,7 +24,6 @@ float world2machine_shift[2]; #define WEIGHT_FIRST_ROW_Y_HIGH (0.3f) #define WEIGHT_FIRST_ROW_Y_LOW (0.0f) -extern bool bedPWMDisabled; // Scaling of the real machine axes against the programmed dimensions in the firmware. diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index df8a39e09..15f2d3a3a 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -1394,6 +1394,7 @@ void disable_heater() target_temperature_bed=0; soft_pwm_bed=0; timer02_set_pwm0(soft_pwm_bed << 1); + bedPWMDisabled = 0; #if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 //WRITE(HEATER_BED_PIN,LOW); #endif diff --git a/Firmware/temperature.h b/Firmware/temperature.h index 7c40eae65..cbebb3f2c 100755 --- a/Firmware/temperature.h +++ b/Firmware/temperature.h @@ -79,6 +79,8 @@ extern int current_voltage_raw_bed; extern unsigned char soft_pwm_bed; #endif +extern bool bedPWMDisabled; + #ifdef PIDTEMP extern int pid_cycle, pid_number_of_cycles; extern float Kc,_Kp,_Ki,_Kd; From dde61bb444cebe490636baaa5a695475d46109a3 Mon Sep 17 00:00:00 2001 From: leptun Date: Sun, 6 Oct 2019 12:44:45 +0300 Subject: [PATCH 105/271] Automaton changes. Keep heater ON during probing only if pwm is high --- Firmware/heatbed_pwm.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Firmware/heatbed_pwm.cpp b/Firmware/heatbed_pwm.cpp index 6f5a93162..1e467c4e8 100755 --- a/Firmware/heatbed_pwm.cpp +++ b/Firmware/heatbed_pwm.cpp @@ -140,14 +140,16 @@ ISR(TIMER0_OVF_vect) // timer compare interrupt service routine case States::ONE: // state ONE - we'll either stay in ONE or change to FALL OCR0B = 255; slowCounter += slowInc; // this does software timer_clk/256 or less - if( slowCounter < pwm ){ - return; + if (!bedPWMDisabled){ //disable heating as soon as possible + if( slowCounter < pwm ){ + return; + } + if( (soft_pwm_bed << 1) >= (255 - slowInc - 1) ){ //@@TODO simplify & explain + // if slowInc==2, soft_pwm == 251 will be the first to do short drops to zero. 252 will keep full heating + return; // want full duty for the next ONE cycle again - so keep on heating and just wait for the next timer ovf + } } - if( (soft_pwm_bed << 1) >= (255 - slowInc - 1) ){ //@@TODO simplify & explain - // if slowInc==2, soft_pwm == 251 will be the first to do short drops to zero. 252 will keep full heating - return; // want full duty for the next ONE cycle again - so keep on heating and just wait for the next timer ovf - } - if (bedPWMDisabled){ + else if (pwm > 200){ //if duty cycle is high and BED PWM is disabled keep heater on. Prevents overcooling return; } // otherwise moving towards FALL From 68491c9d4dd195b0764ae47ad12b043003904d33 Mon Sep 17 00:00:00 2001 From: leptun Date: Fri, 11 Oct 2019 19:06:37 +0300 Subject: [PATCH 106/271] First implementation --- Firmware/Marlin_main.cpp | 4 ---- Firmware/backlight.cpp | 33 +++++++++++++++++++++++++++++++++ Firmware/backlight.h | 13 +++++++++++++ Firmware/eeprom.h | 3 ++- Firmware/pins_Einsy_1_0.h | 2 +- Firmware/ultralcd.cpp | 5 +++++ 6 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 Firmware/backlight.cpp create mode 100644 Firmware/backlight.h diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 45dd118c4..c076c8a0e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -989,10 +989,6 @@ void setup() ultralcd_init(); -#if (LCD_BL_PIN != -1) && defined (LCD_BL_PIN) - analogWrite(LCD_BL_PIN, 255); //set full brightnes -#endif //(LCD_BL_PIN != -1) && defined (LCD_BL_PIN) - spi_init(); lcd_splash(); diff --git a/Firmware/backlight.cpp b/Firmware/backlight.cpp new file mode 100644 index 000000000..d63104b59 --- /dev/null +++ b/Firmware/backlight.cpp @@ -0,0 +1,33 @@ +//backlight.cpp + +#include "backlight.h" +#include +#include +#include "eeprom.h" +#include "Marlin.h" +#include "pins.h" +#include "fastio.h" +// #include "Timer.h" +// #include "Configuration.h" + +int16_t backlightLevel = 0; +int16_t backlightLevel_old = 0; +// uint16_t backlightCounter = 0; + +void backlight_update() +{ + if (backlightLevel != backlightLevel_old) //update level + { + analogWrite(LCD_BL_PIN, backlightLevel); + backlightLevel_old = backlightLevel; + eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL, backlightLevel); + } +} + +void backlight_init() +{ + SET_OUTPUT(LCD_BL_PIN); + WRITE(LCD_BL_PIN,0); + backlightLevel = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL); + backlight_update(); +} diff --git a/Firmware/backlight.h b/Firmware/backlight.h new file mode 100644 index 000000000..d31a997ef --- /dev/null +++ b/Firmware/backlight.h @@ -0,0 +1,13 @@ +//backlight.h +#ifndef _BACKLIGHT_H +#define _BACKLIGHT_H + +#include + +extern int16_t backlightLevel; + +extern void backlight_update(); +extern void backlight_init(); + + +#endif //_BACKLIGHT_H diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 197c18c25..a8bab5230 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -201,9 +201,10 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP #define EEPROM_SHEETS_BASE (EEPROM_CHECK_GCODE - EEPROM_SHEETS_SIZEOF) // Sheets static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); +#define EEPROM_BACKLIGHT_LEVEL (EEPROM_SHEETS_BASE-1) // uint8 //This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items. -#define EEPROM_LAST_ITEM EEPROM_SHEETS_BASE +#define EEPROM_LAST_ITEM EEPROM_BACKLIGHT_LEVEL // !!!!! // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!! // !!!!! diff --git a/Firmware/pins_Einsy_1_0.h b/Firmware/pins_Einsy_1_0.h index 33363388a..005683c01 100755 --- a/Firmware/pins_Einsy_1_0.h +++ b/Firmware/pins_Einsy_1_0.h @@ -99,7 +99,7 @@ //#define KILL_PIN 32 -//#define LCD_BL_PIN 5 //backlight control pin +#define LCD_BL_PIN 5 //backlight control pin #define BEEPER 84 // Beeper on AUX-4 #define LCD_PINS_RS 82 #define LCD_PINS_ENABLE 61 // !!! changed from 18 (EINY03) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index f49528025..bfd7f9b58 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -18,6 +18,7 @@ #include "lcd.h" #include "menu.h" +#include "backlight.h" #include "util.h" #include "mesh_bed_leveling.h" @@ -5768,6 +5769,8 @@ static void lcd_settings_menu() SETTINGS_SD; SETTINGS_SOUND; + + MENU_ITEM_EDIT_int3_P(_i("Backlight"), &backlightLevel, 0, 255); if (farm_mode) { @@ -8567,6 +8570,7 @@ void ultralcd_init() else lcd_autoDeplete = autoDepleteRaw; } + backlight_init(); lcd_init(); lcd_refresh(); lcd_longpress_func = menu_lcd_longpress_func; @@ -8813,6 +8817,7 @@ void menu_lcd_lcdupdate_func(void) } } #endif//CARDINSERTED + backlight_update(); if (lcd_next_update_millis < _millis()) { if (abs(lcd_encoder_diff) >= ENCODER_PULSES_PER_STEP) From b2a1dc67869baa20ad840291078af6ec0112d1d1 Mon Sep 17 00:00:00 2001 From: leptun Date: Fri, 11 Oct 2019 19:23:38 +0300 Subject: [PATCH 107/271] Compile fix for firmware without LCD_BL_PIN --- Firmware/backlight.cpp | 4 ++++ Firmware/ultralcd.cpp | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Firmware/backlight.cpp b/Firmware/backlight.cpp index d63104b59..067fc1336 100644 --- a/Firmware/backlight.cpp +++ b/Firmware/backlight.cpp @@ -10,6 +10,8 @@ // #include "Timer.h" // #include "Configuration.h" +#ifdef LCD_BL_PIN + int16_t backlightLevel = 0; int16_t backlightLevel_old = 0; // uint16_t backlightCounter = 0; @@ -31,3 +33,5 @@ void backlight_init() backlightLevel = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL); backlight_update(); } + +#endif //LCD_BL_PIN \ No newline at end of file diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index bfd7f9b58..e58663aef 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -18,7 +18,10 @@ #include "lcd.h" #include "menu.h" + +#ifdef LCD_BL_PIN #include "backlight.h" +#endif //LCD_BL_PIN #include "util.h" #include "mesh_bed_leveling.h" @@ -5769,8 +5772,10 @@ static void lcd_settings_menu() SETTINGS_SD; SETTINGS_SOUND; - + +#ifdef LCD_BL_PIN MENU_ITEM_EDIT_int3_P(_i("Backlight"), &backlightLevel, 0, 255); +#endif //LCD_BL_PIN if (farm_mode) { @@ -8570,7 +8575,9 @@ void ultralcd_init() else lcd_autoDeplete = autoDepleteRaw; } +#ifdef LCD_BL_PIN backlight_init(); +#endif //LCD_BL_PIN lcd_init(); lcd_refresh(); lcd_longpress_func = menu_lcd_longpress_func; @@ -8817,7 +8824,9 @@ void menu_lcd_lcdupdate_func(void) } } #endif//CARDINSERTED +#ifdef LCD_BL_PIN backlight_update(); +#endif //LCD_BL_PIN if (lcd_next_update_millis < _millis()) { if (abs(lcd_encoder_diff) >= ENCODER_PULSES_PER_STEP) From 75f389a71d00a5c83cd10779c4312a9c2735d88d Mon Sep 17 00:00:00 2001 From: leptun Date: Sun, 13 Oct 2019 14:31:43 +0300 Subject: [PATCH 108/271] Auto-Dimming initial --- Firmware/backlight.cpp | 37 +++++++++++++++++++++++++++++++------ Firmware/backlight.h | 1 + Firmware/ultralcd.cpp | 8 +++++++- 3 files changed, 39 insertions(+), 7 deletions(-) diff --git a/Firmware/backlight.cpp b/Firmware/backlight.cpp index 067fc1336..64a0e0c17 100644 --- a/Firmware/backlight.cpp +++ b/Firmware/backlight.cpp @@ -7,22 +7,47 @@ #include "Marlin.h" #include "pins.h" #include "fastio.h" -// #include "Timer.h" +#include "Timer.h" // #include "Configuration.h" #ifdef LCD_BL_PIN int16_t backlightLevel = 0; int16_t backlightLevel_old = 0; -// uint16_t backlightCounter = 0; +unsigned long backlightTimer_period = 10000ul; +bool backlightIsDimmed = true; +LongTimer backlightTimer; + +static void backlightDim() +{ + // if (backlightIsDimmed) return; + backlightLevel /= 4; //make the display half as bright. + backlightIsDimmed = true; +} + +static void backlightWake() +{ + // if (!backlightIsDimmed) return; + backlightLevel = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL); + backlightIsDimmed = false; +} + +void backlightTimer_reset() //used for resetting the timer and waking the display +{ + backlightTimer.start(); + if (backlightIsDimmed) backlightWake(); +} void backlight_update() { - if (backlightLevel != backlightLevel_old) //update level + if (backlightTimer.expired(backlightTimer_period)) backlightDim(); + + if (backlightLevel != backlightLevel_old) //update pwm duty cycle { analogWrite(LCD_BL_PIN, backlightLevel); backlightLevel_old = backlightLevel; - eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL, backlightLevel); + + if (!backlightIsDimmed) eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL, backlightLevel); //update eeprom value } } @@ -30,8 +55,8 @@ void backlight_init() { SET_OUTPUT(LCD_BL_PIN); WRITE(LCD_BL_PIN,0); - backlightLevel = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL); - backlight_update(); + backlightTimer_reset(); //initializes eeprom data and starts backlightTimer + backlight_update(); //actually sets the backlight to the correct level } #endif //LCD_BL_PIN \ No newline at end of file diff --git a/Firmware/backlight.h b/Firmware/backlight.h index d31a997ef..ee656f884 100644 --- a/Firmware/backlight.h +++ b/Firmware/backlight.h @@ -8,6 +8,7 @@ extern int16_t backlightLevel; extern void backlight_update(); extern void backlight_init(); +extern void backlightTimer_reset(); #endif //_BACKLIGHT_H diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index e58663aef..825ccade6 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -8726,6 +8726,7 @@ uint8_t get_message_level() void menu_lcd_longpress_func(void) { + backlightTimer_reset(); if (homing_flag || mesh_bed_leveling_flag || menu_menu == lcd_babystep_z || menu_menu == lcd_move_z) { // disable longpress during re-entry, while homing or calibration @@ -8837,9 +8838,14 @@ void menu_lcd_lcdupdate_func(void) Sound_MakeSound(e_SOUND_TYPE_EncoderMove); lcd_encoder_diff = 0; lcd_timeoutToStatus.start(); + backlightTimer_reset(); } - if (LCD_CLICKED) lcd_timeoutToStatus.start(); + if (LCD_CLICKED) + { + lcd_timeoutToStatus.start(); + backlightTimer_reset(); + } (*menu_menu)(); From 5a662413e6f7d64acca603ac9fbe4e0aa1bf3045 Mon Sep 17 00:00:00 2001 From: leptun Date: Sun, 13 Oct 2019 14:34:04 +0300 Subject: [PATCH 109/271] Fix compile for printer without backlight support --- Firmware/ultralcd.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 825ccade6..6fa63c7c7 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -8726,7 +8726,9 @@ uint8_t get_message_level() void menu_lcd_longpress_func(void) { +#ifdef LCD_BL_PIN backlightTimer_reset(); +#endif //LCD_BL_PIN if (homing_flag || mesh_bed_leveling_flag || menu_menu == lcd_babystep_z || menu_menu == lcd_move_z) { // disable longpress during re-entry, while homing or calibration @@ -8838,13 +8840,17 @@ void menu_lcd_lcdupdate_func(void) Sound_MakeSound(e_SOUND_TYPE_EncoderMove); lcd_encoder_diff = 0; lcd_timeoutToStatus.start(); +#ifdef LCD_BL_PIN backlightTimer_reset(); +#endif //LCD_BL_PIN } if (LCD_CLICKED) { lcd_timeoutToStatus.start(); +#ifdef LCD_BL_PIN backlightTimer_reset(); +#endif //LCD_BL_PIN } (*menu_menu)(); From 7f3ba499a0a3074f0913e95aa1f77dbbf6a224ab Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 15 Oct 2019 20:54:00 +0200 Subject: [PATCH 110/271] Do not wait forever if the heater on the extruder is disabled --- Firmware/Marlin_main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 45dd118c4..8ba8be52d 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8864,6 +8864,8 @@ void delay_keep_alive(unsigned int ms) } static void wait_for_heater(long codenum, uint8_t extruder) { + if (!degTargetHotend(extruder)) + return; #ifdef TEMP_RESIDENCY_TIME long residencyStart; From 3b005ae38f424a30965e8ed9dee2e79939607b4c Mon Sep 17 00:00:00 2001 From: leptun Date: Wed, 16 Oct 2019 14:40:45 +0300 Subject: [PATCH 111/271] Backlight detection --- Firmware/backlight.cpp | 12 +++++++++++- Firmware/backlight.h | 1 + Firmware/ultralcd.cpp | 5 ++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Firmware/backlight.cpp b/Firmware/backlight.cpp index 64a0e0c17..72850d2ca 100644 --- a/Firmware/backlight.cpp +++ b/Firmware/backlight.cpp @@ -12,6 +12,7 @@ #ifdef LCD_BL_PIN +bool backlightSupport = 0; int16_t backlightLevel = 0; int16_t backlightLevel_old = 0; unsigned long backlightTimer_period = 10000ul; @@ -21,7 +22,7 @@ LongTimer backlightTimer; static void backlightDim() { // if (backlightIsDimmed) return; - backlightLevel /= 4; //make the display half as bright. + backlightLevel /= 4; //make the display dimmer. backlightIsDimmed = true; } @@ -40,6 +41,7 @@ void backlightTimer_reset() //used for resetting the timer and waking the displa void backlight_update() { + if (!backlightSupport) return; if (backlightTimer.expired(backlightTimer_period)) backlightDim(); if (backlightLevel != backlightLevel_old) //update pwm duty cycle @@ -53,6 +55,14 @@ void backlight_update() void backlight_init() { +//check for backlight support on lcd + SET_INPUT(LCD_BL_PIN); + WRITE(LCD_BL_PIN,HIGH); + _delay(10); + backlightSupport = !READ(LCD_BL_PIN); + if (backlightSupport == 0) return; + +//initialize backlight pin SET_OUTPUT(LCD_BL_PIN); WRITE(LCD_BL_PIN,0); backlightTimer_reset(); //initializes eeprom data and starts backlightTimer diff --git a/Firmware/backlight.h b/Firmware/backlight.h index ee656f884..84a2a17e6 100644 --- a/Firmware/backlight.h +++ b/Firmware/backlight.h @@ -5,6 +5,7 @@ #include extern int16_t backlightLevel; +extern bool backlightSupport; extern void backlight_update(); extern void backlight_init(); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 6fa63c7c7..715719ca6 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5774,7 +5774,10 @@ static void lcd_settings_menu() SETTINGS_SOUND; #ifdef LCD_BL_PIN - MENU_ITEM_EDIT_int3_P(_i("Backlight"), &backlightLevel, 0, 255); + if (backlightSupport) + { + MENU_ITEM_EDIT_int3_P(_i("Backlight"), &backlightLevel, 0, 255); + } #endif //LCD_BL_PIN if (farm_mode) From 25e0d23efe56ea7de0039e32e0c64434d158a98b Mon Sep 17 00:00:00 2001 From: leptun Date: Thu, 17 Oct 2019 13:11:32 +0300 Subject: [PATCH 112/271] Backlight overhaul and UI changes --- Firmware/backlight.cpp | 60 ++++++++++++++++++++++-------------------- Firmware/backlight.h | 12 ++++++++- Firmware/eeprom.h | 6 +++-- Firmware/ultralcd.cpp | 35 +++++++++++++++++++++++- 4 files changed, 80 insertions(+), 33 deletions(-) diff --git a/Firmware/backlight.cpp b/Firmware/backlight.cpp index 72850d2ca..59f08b6fb 100644 --- a/Firmware/backlight.cpp +++ b/Firmware/backlight.cpp @@ -8,49 +8,41 @@ #include "pins.h" #include "fastio.h" #include "Timer.h" -// #include "Configuration.h" #ifdef LCD_BL_PIN -bool backlightSupport = 0; -int16_t backlightLevel = 0; -int16_t backlightLevel_old = 0; +bool backlightSupport = 0; //only if it's true will any of the settings be visible to the user +int16_t backlightLevel_HIGH = 0; +int16_t backlightLevel_LOW = 0; +uint8_t backlightMode = BACKLIGHT_MODE_BRIGHT; unsigned long backlightTimer_period = 10000ul; -bool backlightIsDimmed = true; LongTimer backlightTimer; -static void backlightDim() +void backlight_save() //saves all backlight data to eeprom. { - // if (backlightIsDimmed) return; - backlightLevel /= 4; //make the display dimmer. - backlightIsDimmed = true; + eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_HIGH, (uint8_t)backlightLevel_HIGH); + eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_LOW, (uint8_t)backlightLevel_LOW); + eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_MODE, backlightMode); } -static void backlightWake() -{ - // if (!backlightIsDimmed) return; - backlightLevel = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL); - backlightIsDimmed = false; -} - -void backlightTimer_reset() //used for resetting the timer and waking the display +void backlightTimer_reset() //used for resetting the timer and waking the display. Triggered on events such as knob click, rotate and on full screen notifications. { + if (!backlightSupport) return; backlightTimer.start(); - if (backlightIsDimmed) backlightWake(); } void backlight_update() { if (!backlightSupport) return; - if (backlightTimer.expired(backlightTimer_period)) backlightDim(); - if (backlightLevel != backlightLevel_old) //update pwm duty cycle + if (backlightMode == BACKLIGHT_MODE_AUTO) { - analogWrite(LCD_BL_PIN, backlightLevel); - backlightLevel_old = backlightLevel; - - if (!backlightIsDimmed) eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL, backlightLevel); //update eeprom value + if (backlightTimer.expired(backlightTimer_period)) analogWrite(LCD_BL_PIN, backlightLevel_LOW); + else if (backlightTimer.running()) analogWrite(LCD_BL_PIN, backlightLevel_HIGH); + else {/*do nothing*/;} //display is dimmed. } + else if (backlightMode == BACKLIGHT_MODE_DIM) analogWrite(LCD_BL_PIN, backlightLevel_LOW); + else analogWrite(LCD_BL_PIN, backlightLevel_HIGH); } void backlight_init() @@ -60,13 +52,23 @@ void backlight_init() WRITE(LCD_BL_PIN,HIGH); _delay(10); backlightSupport = !READ(LCD_BL_PIN); - if (backlightSupport == 0) return; + if (!backlightSupport) return; -//initialize backlight pin +//initialize backlight + backlightMode = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_MODE); + if (backlightMode == 0xFF) //set default values + { + backlightMode = BACKLIGHT_MODE_AUTO; + backlightLevel_HIGH = 130; + backlightLevel_LOW = 50; + backlight_save(); + } + backlightLevel_HIGH = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_HIGH); + backlightLevel_LOW = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_LOW); + SET_OUTPUT(LCD_BL_PIN); - WRITE(LCD_BL_PIN,0); - backlightTimer_reset(); //initializes eeprom data and starts backlightTimer - backlight_update(); //actually sets the backlight to the correct level + backlightTimer_reset(); + backlight_update(); //sets brightness } #endif //LCD_BL_PIN \ No newline at end of file diff --git a/Firmware/backlight.h b/Firmware/backlight.h index 84a2a17e6..f3e2ee605 100644 --- a/Firmware/backlight.h +++ b/Firmware/backlight.h @@ -4,12 +4,22 @@ #include -extern int16_t backlightLevel; +enum Backlight_Mode +{ + BACKLIGHT_MODE_BRIGHT = 0, + BACKLIGHT_MODE_DIM = 1, + BACKLIGHT_MODE_AUTO = 2, +}; + +extern int16_t backlightLevel_HIGH; +extern int16_t backlightLevel_LOW; +extern uint8_t backlightMode; extern bool backlightSupport; extern void backlight_update(); extern void backlight_init(); extern void backlightTimer_reset(); +extern void backlight_save(); #endif //_BACKLIGHT_H diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index a8bab5230..f47a2333e 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -201,10 +201,12 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP #define EEPROM_SHEETS_BASE (EEPROM_CHECK_GCODE - EEPROM_SHEETS_SIZEOF) // Sheets static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); -#define EEPROM_BACKLIGHT_LEVEL (EEPROM_SHEETS_BASE-1) // uint8 +#define EEPROM_BACKLIGHT_LEVEL_HIGH (EEPROM_SHEETS_BASE-1) // uint8 +#define EEPROM_BACKLIGHT_LEVEL_LOW (EEPROM_BACKLIGHT_LEVEL_HIGH-1) // uint8 +#define EEPROM_BACKLIGHT_MODE (EEPROM_BACKLIGHT_LEVEL_LOW-1) // uint8 //This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items. -#define EEPROM_LAST_ITEM EEPROM_BACKLIGHT_LEVEL +#define EEPROM_LAST_ITEM EEPROM_BACKLIGHT_MODE // !!!!! // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!! // !!!!! diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 715719ca6..04718cf66 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -56,6 +56,7 @@ char longFilenameOLD[LONG_FILENAME_LENGTH]; static void lcd_sd_updir(); static void lcd_mesh_bed_leveling_settings(); +static void lcd_backlight_menu(); int8_t ReInitLCD = 0; @@ -5776,7 +5777,7 @@ static void lcd_settings_menu() #ifdef LCD_BL_PIN if (backlightSupport) { - MENU_ITEM_EDIT_int3_P(_i("Backlight"), &backlightLevel, 0, 255); + MENU_ITEM_SUBMENU_P(_i("Brightness"), lcd_backlight_menu); } #endif //LCD_BL_PIN @@ -7165,6 +7166,38 @@ static void lcd_mesh_bed_leveling_settings() //SETTINGS_MBL_MODE; } +static void backlight_mode_toggle() +{ + switch (backlightMode) + { + case BACKLIGHT_MODE_BRIGHT: backlightMode = BACKLIGHT_MODE_DIM; break; + case BACKLIGHT_MODE_DIM: backlightMode = BACKLIGHT_MODE_AUTO; break; + case BACKLIGHT_MODE_AUTO: backlightMode = BACKLIGHT_MODE_BRIGHT; break; + default: backlightMode = BACKLIGHT_MODE_BRIGHT; break; + } + backlight_save(); +} + +static void lcd_backlight_menu() +{ + MENU_BEGIN(); + ON_MENU_LEAVE( + backlight_save(); + ); + + MENU_ITEM_BACK_P(_T(MSG_BACK)); + MENU_ITEM_EDIT_int3_P(_i("Level Bright"), &backlightLevel_HIGH, 0, 255); + MENU_ITEM_EDIT_int3_P(_i("Level Dimmed"), &backlightLevel_LOW, 0, 255); + switch (backlightMode) + { + case BACKLIGHT_MODE_BRIGHT: MENU_ITEM_FUNCTION_P(_i("Mode [Always on]"), backlight_mode_toggle); break; + case BACKLIGHT_MODE_DIM: MENU_ITEM_FUNCTION_P(_i("Mode [Always off]"), backlight_mode_toggle); break; + default: MENU_ITEM_FUNCTION_P(_i("Mode [Auto]"), backlight_mode_toggle); break; + } + + MENU_END(); +} + static void lcd_control_temperature_menu() { #ifdef PIDTEMP From 812eafd09c43554617c4748c88e43ffedbc6dea3 Mon Sep 17 00:00:00 2001 From: leptun Date: Thu, 17 Oct 2019 13:14:32 +0300 Subject: [PATCH 113/271] Fix compile for miniRambo --- Firmware/ultralcd.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 04718cf66..f4a60f7d4 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7166,6 +7166,7 @@ static void lcd_mesh_bed_leveling_settings() //SETTINGS_MBL_MODE; } +#ifdef LCD_BL_PIN static void backlight_mode_toggle() { switch (backlightMode) @@ -7197,6 +7198,7 @@ static void lcd_backlight_menu() MENU_END(); } +#endif //LCD_BL_PIN static void lcd_control_temperature_menu() { From 2af43667c81fdde913bc8193e134b55021acf8a9 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 17 Oct 2019 14:05:51 +0200 Subject: [PATCH 114/271] Changed folder and check file names... to have seperated build enviroments depening on Arduino IDE versions and board-versions. Successfully tested with: - Arduino IDE 1.8.5 and board version 1.0.1 - Arduino IDE 1.8.5 and board version 1.0.2 - These two above generate identical hex files - Arduino IDE 1.8.7 and board version 1.0.2 - Arduino IDE 1.8.8 and board version 1.0.2 - Arduino IDE 1.8.9 and board version 1.0.2 - These three above generate identical hex files - Compared to the 1.8.5 hex files the code uses less resources (Multi language/EN_ONLY): ``` Sketch uses 240082 bytes (94%) of program storage space. Maximum is 253952 bytes. Global variables use 6002 bytes of dynamic memory. Sketch uses 222344 bytes (87%) of program storage space. Maximum is 253952 bytes. Global variables use 6019 bytes of dynamic memory. ``` vs. ``` Sketch uses 241526 bytes (95%) of program storage space. Maximum is 253952 bytes. Global variables use 6046 bytes of dynamic memory. Sketch uses 223828 bytes (88%) of program storage space. Maximum is 253952 bytes. Global variables use 6065 bytes of dynamic memory. ``` Failed tests: - Arduino IDE 1.8.6 and board version 1.0.2 - Arduino IDE 1.8.10 and board version 1.0.2 --- PF-build.sh | 107 +++++++++++++++++++++++++++------------------------- 1 file changed, 55 insertions(+), 52 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 9bafed344..7f538ea09 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -113,6 +113,8 @@ # 23 Jul 2019, 3d-gussner, Added Finding OS version routine so supporting new OS should get easier # 26 Jul 2019, 3d-gussner, Change JSON repository to prusa3d after PR https://github.com/prusa3d/Arduino_Boards/pull/1 was merged # 23 Sep 2019, 3d-gussner, Prepare PF-build.sh for comming Prusa3d/Arduino_Boards version 1.0.2 Pull Request +# 17 Oct 2019, 3d-gussner, Changed folder and check file names to have seperated build enviroments depening on Arduino IDE version and +# board-versions. #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -261,12 +263,12 @@ if [ $TARGET_OS == "windows" ]; then wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 7 echo "$(tput sgr 0)" fi - if [ ! -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor" ]; then + if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" sleep 2 unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 7 - mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor - echo "# arduino-$ARDUINO_ENV-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$TARGET_OS-$Processor + mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor + echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr0)" fi fi @@ -279,55 +281,55 @@ if [ $TARGET_OS == "linux" ]; then wget --no-check-certificate https://downloads.arduino.cc/arduino-$ARDUINO_ENV-linux$Processor.tar.xz || exit 8 echo "$(tput sgr 0)" fi - if [[ ! -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$TARGET_OS-$Processor.txt" ]]; then + if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)" sleep 2 tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 8 - mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor - echo "# arduino-$ARDUINO_ENV-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$TARGET_OS-$Processor.txt + mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor + echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr0)" fi fi # Make Arduino IDE portable -if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/ +if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ fi -if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable +if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/ ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable fi -if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/output/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/output +if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output/ ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output fi -if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages +if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/ ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages fi -if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/sketchbook/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/sketchbook +if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/ ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook fi -if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/sketchbook/libraries/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/sketchbook/libraries +if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries/ ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries fi -if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/staging/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/staging +if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging/ ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging fi # Change Arduino IDE preferences -if [ ! -e ../PF-build-env-$BUILD_ENV/Preferences-$TARGET_OS-$Processor.txt ]; then - echo "$(tput setaf 6)Setting $TARGET_OS-$Processor Arduino IDE preferences for portable GUI usage...$(tput setaf 2)" +if [ ! -e ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt ]; then + echo "$(tput setaf 6)Setting $ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor Arduino IDE preferences for portable GUI usage...$(tput setaf 2)" sleep 2 echo "update.check" - sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt + sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt echo "board" - sed -i 's/board = uno/board = $BOARD/g' ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt + sed -i 's/board = uno/board = $BOARD/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt echo "editor.linenumbers" - sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt + sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt echo "boardsmanager.additional.urls" - echo "boardsmanager.additional.urls=$BOARD_URL" >>../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt - echo "build.verbose=true" >>../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt - echo "compiler.cache_core=false" >>../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt - echo "compiler.warning_level=all" >>../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt - echo "# Preferences-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/Preferences-$TARGET_OS-$Processor.txt + echo "boardsmanager.additional.urls=$BOARD_URL" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "build.verbose=true" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "compiler.cache_core=false" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "compiler.warning_level=all" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "# Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr0)" fi @@ -338,25 +340,26 @@ if [ ! -f "$BOARD_FILENAME-$BOARD_VERSION.tar.bz2" ]; then sleep 2 wget $BOARD_FILE_URL || exit 9 fi -if [[ ! -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then +if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)" sleep 2 tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10 - if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr ]; then - mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr fi - mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION - echo "# $BOARD_FILENAME-$BOARD_VERSION" >> ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION-$TARGET_OS-$Processor.txt + mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION + echo "# $BOARD_FILENAME-$BOARD_VERSION" >> ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr 0)" fi @@ -367,30 +370,30 @@ if [ ! -f "PF-build-env-$BUILD_ENV.zip" ]; then wget $PF_BUILD_FILE_URL || exit 11 echo "$(tput sgr 0)" fi -if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$TARGET_OS-$Processor.txt" ]; then +if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]; then echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)" sleep 2 - unzip -o PF-build-env-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor || exit 12 - echo "# PF-build-env-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$TARGET_OS-$Processor.txt + unzip -o PF-build-env-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12 + echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr0)" fi # Check if User updated Arduino IDE 1.8.5 boardsmanager and tools -if [ -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/arduino/tools" ]; then +if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools" ]; then echo "$(tput setaf 6)Arduino IDE boards / tools have been manually updated...$" echo "Please don't update the 'Arduino AVR boards' as this will prevent running this script (tput setaf 2)" sleep 2 fi -if [ -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2" ]; then +if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2" ]; then echo "$(tput setaf 6)PrusaReasearch compatible tools have been manually updated...$(tput setaf 2)" sleep 2 echo "$(tput setaf 6)Copying Prusa Firmware build environment to manually updated boards / tools...$(tput setaf 2)" sleep 2 - cp -f ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/hardware/tools/avr/avr/lib/ldscripts/avr6.xn ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/lib/ldscripts/avr6.xn - echo "# PF-build-env-portable-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-portable-$BUILD_ENV-$TARGET_OS-$Processor.txt + cp -f ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/hardware/tools/avr/avr/lib/ldscripts/avr6.xn ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/lib/ldscripts/avr6.xn + echo "# PF-build-env-portable-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-portable-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr0)" fi -if [ -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2" ]; then +if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2" ]; then echo "$(tput setaf 1)Arduino IDE tools have been updated manually to a non supported version!!!" echo "Delete ../PF-build-env-$BUILD_ENV and start the script again" echo "Script will not continue until this have been fixed $(tput setaf 2)" @@ -491,7 +494,7 @@ if [ ! -z "$3" ] ; then fi #Set BUILD_ENV_PATH -cd ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor || exit 24 +cd ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 24 BUILD_ENV_PATH="$( pwd -P )" cd ../.. @@ -636,8 +639,8 @@ do echo "Start to build Prusa Firmware ..." echo "Using variant $VARIANT$(tput setaf 3)" sleep 2 - #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -ide-version=10805 -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 - $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -ide-version=10805 -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 + #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 + $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 echo "$(tput sgr 0)" if [ $LANGUAGES == "ALL" ]; then From 91e94aa0e894be8b9cf2734c72ae9357c92cea10 Mon Sep 17 00:00:00 2001 From: leptun Date: Fri, 18 Oct 2019 10:32:41 +0300 Subject: [PATCH 115/271] Adjustable timeout --- Firmware/backlight.cpp | 7 +++++-- Firmware/backlight.h | 1 + Firmware/eeprom.h | 3 ++- Firmware/ultralcd.cpp | 9 +++++---- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Firmware/backlight.cpp b/Firmware/backlight.cpp index 59f08b6fb..5ceef5954 100644 --- a/Firmware/backlight.cpp +++ b/Firmware/backlight.cpp @@ -15,7 +15,7 @@ bool backlightSupport = 0; //only if it's true will any of the settings be visib int16_t backlightLevel_HIGH = 0; int16_t backlightLevel_LOW = 0; uint8_t backlightMode = BACKLIGHT_MODE_BRIGHT; -unsigned long backlightTimer_period = 10000ul; +int16_t backlightTimer_period = 10; LongTimer backlightTimer; void backlight_save() //saves all backlight data to eeprom. @@ -23,6 +23,7 @@ void backlight_save() //saves all backlight data to eeprom. eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_HIGH, (uint8_t)backlightLevel_HIGH); eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_LOW, (uint8_t)backlightLevel_LOW); eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_MODE, backlightMode); + eeprom_update_word((uint16_t *)EEPROM_BACKLIGHT_TIMEOUT, backlightTimer_period); } void backlightTimer_reset() //used for resetting the timer and waking the display. Triggered on events such as knob click, rotate and on full screen notifications. @@ -37,7 +38,7 @@ void backlight_update() if (backlightMode == BACKLIGHT_MODE_AUTO) { - if (backlightTimer.expired(backlightTimer_period)) analogWrite(LCD_BL_PIN, backlightLevel_LOW); + if (backlightTimer.expired((uint32_t)backlightTimer_period * 1000ul)) analogWrite(LCD_BL_PIN, backlightLevel_LOW); else if (backlightTimer.running()) analogWrite(LCD_BL_PIN, backlightLevel_HIGH); else {/*do nothing*/;} //display is dimmed. } @@ -61,10 +62,12 @@ void backlight_init() backlightMode = BACKLIGHT_MODE_AUTO; backlightLevel_HIGH = 130; backlightLevel_LOW = 50; + backlightTimer_period = 10; //in seconds backlight_save(); } backlightLevel_HIGH = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_HIGH); backlightLevel_LOW = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_LOW); + backlightTimer_period = eeprom_read_word((uint16_t *)EEPROM_BACKLIGHT_TIMEOUT); SET_OUTPUT(LCD_BL_PIN); backlightTimer_reset(); diff --git a/Firmware/backlight.h b/Firmware/backlight.h index f3e2ee605..fc18dd5e9 100644 --- a/Firmware/backlight.h +++ b/Firmware/backlight.h @@ -15,6 +15,7 @@ extern int16_t backlightLevel_HIGH; extern int16_t backlightLevel_LOW; extern uint8_t backlightMode; extern bool backlightSupport; +extern int16_t backlightTimer_period; extern void backlight_update(); extern void backlight_init(); diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index f47a2333e..b869ac1c8 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -204,9 +204,10 @@ static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); #define EEPROM_BACKLIGHT_LEVEL_HIGH (EEPROM_SHEETS_BASE-1) // uint8 #define EEPROM_BACKLIGHT_LEVEL_LOW (EEPROM_BACKLIGHT_LEVEL_HIGH-1) // uint8 #define EEPROM_BACKLIGHT_MODE (EEPROM_BACKLIGHT_LEVEL_LOW-1) // uint8 +#define EEPROM_BACKLIGHT_TIMEOUT (EEPROM_BACKLIGHT_MODE-2) // uint16 //This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items. -#define EEPROM_LAST_ITEM EEPROM_BACKLIGHT_MODE +#define EEPROM_LAST_ITEM EEPROM_BACKLIGHT_TIMEOUT // !!!!! // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!! // !!!!! diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index f4a60f7d4..305ba7cb8 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7187,14 +7187,15 @@ static void lcd_backlight_menu() ); MENU_ITEM_BACK_P(_T(MSG_BACK)); - MENU_ITEM_EDIT_int3_P(_i("Level Bright"), &backlightLevel_HIGH, 0, 255); - MENU_ITEM_EDIT_int3_P(_i("Level Dimmed"), &backlightLevel_LOW, 0, 255); + MENU_ITEM_EDIT_int3_P(_i("Level Bright"), &backlightLevel_HIGH, backlightLevel_LOW, 255); + MENU_ITEM_EDIT_int3_P(_i("Level Dimmed"), &backlightLevel_LOW, 0, backlightLevel_HIGH); switch (backlightMode) { - case BACKLIGHT_MODE_BRIGHT: MENU_ITEM_FUNCTION_P(_i("Mode [Always on]"), backlight_mode_toggle); break; - case BACKLIGHT_MODE_DIM: MENU_ITEM_FUNCTION_P(_i("Mode [Always off]"), backlight_mode_toggle); break; + case BACKLIGHT_MODE_BRIGHT: MENU_ITEM_FUNCTION_P(_i("Mode [Bright]"), backlight_mode_toggle); break; + case BACKLIGHT_MODE_DIM: MENU_ITEM_FUNCTION_P(_i("Mode [Dim]"), backlight_mode_toggle); break; default: MENU_ITEM_FUNCTION_P(_i("Mode [Auto]"), backlight_mode_toggle); break; } + MENU_ITEM_EDIT_int3_P(_i("Timeout"), &backlightTimer_period, 1, 999); MENU_END(); } From 9fc42526e71c09415d15472df4acaf5f6bec6372 Mon Sep 17 00:00:00 2001 From: leptun Date: Fri, 18 Oct 2019 12:18:43 +0300 Subject: [PATCH 116/271] Backlight always on during calibration --- Firmware/Marlin_main.cpp | 3 +++ Firmware/backlight.cpp | 15 +++++++++++++++ Firmware/backlight.h | 10 ++++++++++ Firmware/ultralcd.cpp | 6 +++++- 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index c076c8a0e..ff580eeb9 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -63,6 +63,7 @@ #include "menu.h" #include "ultralcd.h" +#include "backlight.h" #include "planner.h" #include "stepper.h" @@ -2768,6 +2769,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level) #ifdef TMC2130 FORCE_HIGH_POWER_START; #endif // TMC2130 + FORCE_BL_ON_START; // Only Z calibration? if (!onlyZ) { @@ -2956,6 +2958,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level) #ifdef TMC2130 FORCE_HIGH_POWER_END; #endif // TMC2130 + FORCE_BL_ON_END; return final_result; } diff --git a/Firmware/backlight.cpp b/Firmware/backlight.cpp index 5ceef5954..054c510fb 100644 --- a/Firmware/backlight.cpp +++ b/Firmware/backlight.cpp @@ -18,6 +18,21 @@ uint8_t backlightMode = BACKLIGHT_MODE_BRIGHT; int16_t backlightTimer_period = 10; LongTimer backlightTimer; +void force_bl_on(bool section_start) +{ + if (section_start) + { + backlightMode = BACKLIGHT_MODE_BRIGHT; + if (backlightLevel_HIGH < 30) backlightLevel_HIGH = 30; + } + else + { + backlightMode = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_MODE); + backlightLevel_HIGH = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_HIGH); + } + backlight_update(); +} + void backlight_save() //saves all backlight data to eeprom. { eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_HIGH, (uint8_t)backlightLevel_HIGH); diff --git a/Firmware/backlight.h b/Firmware/backlight.h index fc18dd5e9..99d777d9a 100644 --- a/Firmware/backlight.h +++ b/Firmware/backlight.h @@ -3,6 +3,8 @@ #define _BACKLIGHT_H #include +#include "Marlin.h" +#include "pins.h" enum Backlight_Mode { @@ -17,6 +19,14 @@ extern uint8_t backlightMode; extern bool backlightSupport; extern int16_t backlightTimer_period; +#ifdef LCD_BL_PIN + #define FORCE_BL_ON_START force_bl_on(true) + #define FORCE_BL_ON_END force_bl_on(false) +#else + #define FORCE_BL_ON_START + #define FORCE_BL_ON_END +#endif +extern void force_bl_on(bool section_start); extern void backlight_update(); extern void backlight_init(); extern void backlightTimer_reset(); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 305ba7cb8..9d5776c73 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5019,7 +5019,7 @@ void lcd_wizard(WizState state) // Make sure EEPROM_WIZARD_ACTIVE is true if entering using different entry point // other than WizState::Run - it is useful for debugging wizard. if (state != S::Run) eeprom_update_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1); - + FORCE_BL_ON_START; while (!end) { printf_P(PSTR("Wizard state: %d\n"), state); switch (state) { @@ -5157,6 +5157,7 @@ void lcd_wizard(WizState state) } } + FORCE_BL_ON_END; printf_P(_N("Wizard end state: %d\n"), state); switch (state) { //final message case S::Restore: //printer was already calibrated @@ -7393,6 +7394,7 @@ bool lcd_selftest() #ifdef TMC2130 FORCE_HIGH_POWER_START; #endif // TMC2130 + FORCE_BL_ON_START; _delay(2000); KEEPALIVE_STATE(IN_HANDLER); @@ -7612,6 +7614,7 @@ bool lcd_selftest() #ifdef TMC2130 FORCE_HIGH_POWER_END; #endif // TMC2130 + FORCE_BL_ON_END; KEEPALIVE_STATE(NOT_BUSY); return(_result); } @@ -8021,6 +8024,7 @@ static bool lcd_selfcheck_check_heater(bool _isbed) static void lcd_selftest_error(TestError testError, const char *_error_1, const char *_error_2) { lcd_beeper_quick_feedback(); + FORCE_BL_ON_END; target_temperature[0] = 0; target_temperature_bed = 0; From 0ed4a23ae724f6758b6d9701b718fc12e46e880b Mon Sep 17 00:00:00 2001 From: leptun Date: Fri, 18 Oct 2019 12:42:55 +0300 Subject: [PATCH 117/271] And another compile fix... --- Firmware/Marlin_main.cpp | 8 ++++++-- Firmware/backlight.h | 10 +++------- Firmware/ultralcd.cpp | 20 +++++++++++++++----- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index ff580eeb9..76dca1341 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2769,7 +2769,9 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level) #ifdef TMC2130 FORCE_HIGH_POWER_START; #endif // TMC2130 - FORCE_BL_ON_START; + #ifdef LCD_BL_PIN + FORCE_BL_ON_START; + #endif // LCD_BL_PIN // Only Z calibration? if (!onlyZ) { @@ -2958,7 +2960,9 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level) #ifdef TMC2130 FORCE_HIGH_POWER_END; #endif // TMC2130 - FORCE_BL_ON_END; + #ifdef LCD_BL_PIN + FORCE_BL_ON_END; + #endif // LCD_BL_PIN return final_result; } diff --git a/Firmware/backlight.h b/Firmware/backlight.h index 99d777d9a..ef005adf3 100644 --- a/Firmware/backlight.h +++ b/Firmware/backlight.h @@ -19,13 +19,9 @@ extern uint8_t backlightMode; extern bool backlightSupport; extern int16_t backlightTimer_period; -#ifdef LCD_BL_PIN - #define FORCE_BL_ON_START force_bl_on(true) - #define FORCE_BL_ON_END force_bl_on(false) -#else - #define FORCE_BL_ON_START - #define FORCE_BL_ON_END -#endif +#define FORCE_BL_ON_START force_bl_on(true) +#define FORCE_BL_ON_END force_bl_on(false) + extern void force_bl_on(bool section_start); extern void backlight_update(); extern void backlight_init(); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 9d5776c73..acaab10cc 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5019,7 +5019,9 @@ void lcd_wizard(WizState state) // Make sure EEPROM_WIZARD_ACTIVE is true if entering using different entry point // other than WizState::Run - it is useful for debugging wizard. if (state != S::Run) eeprom_update_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1); - FORCE_BL_ON_START; + #ifdef LCD_BL_PIN + FORCE_BL_ON_START; + #endif // LCD_BL_PIN while (!end) { printf_P(PSTR("Wizard state: %d\n"), state); switch (state) { @@ -5157,7 +5159,9 @@ void lcd_wizard(WizState state) } } - FORCE_BL_ON_END; + #ifdef LCD_BL_PIN + FORCE_BL_ON_END; + #endif // LCD_BL_PIN printf_P(_N("Wizard end state: %d\n"), state); switch (state) { //final message case S::Restore: //printer was already calibrated @@ -7394,7 +7398,9 @@ bool lcd_selftest() #ifdef TMC2130 FORCE_HIGH_POWER_START; #endif // TMC2130 - FORCE_BL_ON_START; + #ifdef LCD_BL_PIN + FORCE_BL_ON_START; + #endif // LCD_BL_PIN _delay(2000); KEEPALIVE_STATE(IN_HANDLER); @@ -7614,7 +7620,9 @@ bool lcd_selftest() #ifdef TMC2130 FORCE_HIGH_POWER_END; #endif // TMC2130 - FORCE_BL_ON_END; + #ifdef LCD_BL_PIN + FORCE_BL_ON_END; + #endif // LCD_BL_PIN KEEPALIVE_STATE(NOT_BUSY); return(_result); } @@ -8024,7 +8032,9 @@ static bool lcd_selfcheck_check_heater(bool _isbed) static void lcd_selftest_error(TestError testError, const char *_error_1, const char *_error_2) { lcd_beeper_quick_feedback(); - FORCE_BL_ON_END; + #ifdef LCD_BL_PIN + FORCE_BL_ON_END; + #endif // LCD_BL_PIN target_temperature[0] = 0; target_temperature_bed = 0; From d7b12faa95d038ac41f24f2b2ba9521891c21409 Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 19 Oct 2019 18:45:04 +0300 Subject: [PATCH 118/271] Add "Brightness" to Tune menu --- Firmware/ultralcd.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index acaab10cc..f89cac58d 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7119,7 +7119,12 @@ static void lcd_tune_menu() default: MENU_ITEM_FUNCTION_P(_i(MSG_SOUND_MODE_LOUD),lcd_sound_state_set); } - +#ifdef LCD_BL_PIN + if (backlightSupport) + { + MENU_ITEM_SUBMENU_P(_i("Brightness"), lcd_backlight_menu); + } +#endif //LCD_BL_PIN MENU_END(); } From 4943e17bda06bf269a74af5a9d34357c3112f308 Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 19 Oct 2019 18:45:31 +0300 Subject: [PATCH 119/271] Preserve power during PP by turning off backlight --- Firmware/Marlin_main.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 76dca1341..ac3d7d8bd 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9534,6 +9534,11 @@ void uvlo_() unsigned long time_start = _millis(); bool sd_print = card.sdprinting; // Conserve power as soon as possible. +#ifdef LCD_BL_PIN + backlightMode = BACKLIGHT_MODE_DIM; + backlightLevel_LOW = 0; + backlight_update(); +#endif //LCD_BL_PIN disable_x(); disable_y(); From 50231b76da86e666b48554242818e9589ec3a202 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 5 Jun 2019 18:12:46 +0200 Subject: [PATCH 120/271] Improved handling of unknown Z position - Introduce raise_z_above to move Z carefully when the current position is potentially unknown, using stallguard - Use raise_z_above for: * filament loading/unloading clearance * extruder spacing when preheating (to avoid buildplate marks on PEI) * before homing to avoid damaging the build plate and to avoid repeated Z moves as well Since raise_z_above is conditional, it will only raise when needed. Calling raise_z_above when the extruder position is unknown and already at maximum travel is safe and will prevent further vertical moves. --- Firmware/Configuration.h | 8 ++++- Firmware/Marlin.h | 2 +- Firmware/Marlin_main.cpp | 78 +++++++++++++++++++++++++++------------- Firmware/mmu.cpp | 2 +- Firmware/ultralcd.cpp | 8 +++-- 5 files changed, 69 insertions(+), 29 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 87b5023f9..f9f272d5c 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -345,7 +345,7 @@ your extruder heater takes 2 minutes to hit the target on heating. #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 - #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. + #define Z_RAISE_BEFORE_HOMING 5 // (in mm) Raise Z before homing (G28) for Probe Clearance. // Be sure you have this distance over your Z_MAX_POS in case #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min @@ -549,6 +549,12 @@ enum CalibrationStatus CALIBRATION_STATUS_UNKNOWN = 0, }; +// Try to maintain a minimum distance from the bed even when Z is +// unknown when doing the following operations +#define MIN_Z_FOR_LOAD 50 +#define MIN_Z_FOR_UNLOAD 20 +#define MIN_Z_FOR_PREHEAT 10 + #include "Configuration_adv.h" #include "thermistortables.h" diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index c1a7b5627..ee99490e9 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -513,4 +513,4 @@ void M600_wait_for_user(float HotendTempBckp); void M600_check_state(float nozzle_temp); void load_filament_final_feed(); void marlin_wait_for_click(); -void marlin_rise_z(void); +void raise_z_above(float target, bool plan=true); diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a2cbece56..58233e339 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2104,6 +2104,52 @@ bool check_commands() { } + +// raise_z_above: slowly raise Z to the requested height +// +// contrarily to a simple move, this function will carefully plan a move +// when the current Z position is unknown. In such cases, stallguard is +// enabled and will prevent prolonged pushing against the Z tops +void raise_z_above(float target, bool plan) +{ + if (current_position[Z_AXIS] >= target) + return; + + // Z needs raising + current_position[Z_AXIS] = target; + + if (axis_known_position[Z_AXIS]) + { + // current position is known, it's safe to raise Z + if(plan) plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); + return; + } + + // ensure Z is powered in normal mode to overcome initial load + enable_z(); + st_synchronize(); + + // rely on crashguard to limit damage + bool z_endstop_enabled = enable_z_endstop(true); +#ifdef TMC2130 + tmc2130_home_enter(Z_AXIS_MASK); +#endif //TMC2130 + plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60, active_extruder); + st_synchronize(); +#ifdef TMC2130 + if (endstop_z_hit_on_purpose()) + { + // not necessarily exact, but will avoid further vertical moves + current_position[Z_AXIS] = max_pos[Z_AXIS]; + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], + current_position[Z_AXIS], current_position[E_AXIS]); + } + tmc2130_home_exit(); +#endif //TMC2130 + enable_z_endstop(z_endstop_enabled); +} + + #ifdef TMC2130 bool calibrate_z_auto() { @@ -2484,9 +2530,7 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon //if we are homing all axes, first move z higher to protect heatbed/steel sheet if (home_all_axes) { - current_position[Z_AXIS] += MESH_HOME_Z_SEARCH; - feedrate = homing_feedrate[Z_AXIS]; - plan_buffer_line_curposXYZE(feedrate / 60, active_extruder); + raise_z_above(MESH_HOME_Z_SEARCH); st_synchronize(); } #ifdef ENABLE_AUTO_BED_LEVELING @@ -2597,26 +2641,21 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon #ifndef Z_SAFE_HOMING if(home_z) { #if defined (Z_RAISE_BEFORE_HOMING) && (Z_RAISE_BEFORE_HOMING > 0) - destination[Z_AXIS] = Z_RAISE_BEFORE_HOMING * home_dir(Z_AXIS) * (-1); // Set destination away from bed - feedrate = max_feedrate[Z_AXIS]; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate, active_extruder); + raise_z_above(Z_RAISE_BEFORE_HOMING); st_synchronize(); #endif // defined (Z_RAISE_BEFORE_HOMING) && (Z_RAISE_BEFORE_HOMING > 0) #if (defined(MESH_BED_LEVELING) && !defined(MK1BP)) // If Mesh bed leveling, move X&Y to safe position for home - if (!(axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] )) - { - homeaxis(X_AXIS); - homeaxis(Y_AXIS); - } + raise_z_above(MESH_HOME_Z_SEARCH); + st_synchronize(); + if (!axis_known_position[X_AXIS]) homeaxis(X_AXIS); + if (!axis_known_position[Y_AXIS]) homeaxis(Y_AXIS); // 1st mesh bed leveling measurement point, corrected. world2machine_initialize(); world2machine(pgm_read_float(bed_ref_points_4), pgm_read_float(bed_ref_points_4+1), destination[X_AXIS], destination[Y_AXIS]); world2machine_reset(); if (destination[Y_AXIS] < Y_MIN_POS) destination[Y_AXIS] = Y_MIN_POS; - destination[Z_AXIS] = MESH_HOME_Z_SEARCH; // Set destination away from bed - feedrate = homing_feedrate[Z_AXIS]/10; - current_position[Z_AXIS] = 0; + feedrate = homing_feedrate[X_AXIS] / 20; enable_endstops(false); #ifdef DEBUG_BUILD SERIAL_ECHOLNPGM("plan_set_position()"); @@ -3143,15 +3182,6 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float custom_message_type = CustomMsg::Status; } -//! @brief Rise Z if too low to avoid blob/jam before filament loading -//! -//! It doesn't plan_buffer_line(), as it expects plan_buffer_line() to be called after -//! during extruding (loading) filament. -void marlin_rise_z(void) -{ - if (current_position[Z_AXIS] < 20) current_position[Z_AXIS] += 30; -} - void gcode_M701() { printf_P(PSTR("gcode_M701 begin\n")); @@ -3180,7 +3210,7 @@ void gcode_M701() plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence st_synchronize(); - marlin_rise_z(); + raise_z_above(MIN_Z_FOR_LOAD, false); current_position[E_AXIS] += 30; plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index d8ae497ba..224ffc8ad 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -1355,7 +1355,7 @@ void lcd_mmu_load_to_nozzle(uint8_t filament_nr) manage_response(true, true, MMU_TCODE_MOVE); mmu_continue_loading(false); mmu_extruder = tmp_extruder; //filament change is finished - marlin_rise_z(); + raise_z_above(MIN_Z_FOR_LOAD, false); mmu_load_to_nozzle(); load_filament_final_feed(); st_synchronize(); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index d11148974..03faf2ac2 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2374,9 +2374,11 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) { lcd_commands_type = LcdCommands::Layer1Cal; } - else if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE)) + else { - lcd_wizard(WizState::LoadFilHot); + raise_z_above(MIN_Z_FOR_PREHEAT); + if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE)) + lcd_wizard(WizState::LoadFilHot); } return; } @@ -6360,6 +6362,8 @@ void unload_filament() custom_message_type = CustomMsg::FilamentLoading; lcd_setstatuspgm(_T(MSG_UNLOADING_FILAMENT)); + raise_z_above(MIN_Z_FOR_UNLOAD); + // extr_unload2(); current_position[E_AXIS] -= 45; From e25befa1759fd5d27b388fef3f132f0af00a83b9 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 31 Aug 2019 16:09:53 +0200 Subject: [PATCH 121/271] Fix include guard to silence duplicate declaration warnings --- Firmware/Marlin.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index ee99490e9..8a396dac1 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -358,9 +358,6 @@ extern int fan_speed[2]; // Handling multiple extruders pins extern uint8_t active_extruder; - -#endif - //Long pause extern unsigned long pause_time; extern unsigned long start_pause_print; @@ -514,3 +511,5 @@ void M600_check_state(float nozzle_temp); void load_filament_final_feed(); void marlin_wait_for_click(); void raise_z_above(float target, bool plan=true); + +#endif From 8f05627747697632c1e55ea729556ed12584bd21 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 25 Oct 2019 13:04:04 +0200 Subject: [PATCH 122/271] Update #1 gcodes doxygen documentation added some RepRap G-codes Wiki external links. --- Firmware/Marlin_main.cpp | 42 ++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a2cbece56..f4971efc6 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3322,8 +3322,7 @@ extern uint8_t st_backlash_y; //! @brief Parse and process commands //! -//! look here for descriptions of G-codes: http://linuxcnc.org/handbook/gcode/g-code.html -//! http://objects.reprap.org/wiki/Mendel_User_Manual:_RepRapGCodes +//! look here for descriptions of G-codes: https://reprap.org/wiki/G-code //! //! //! Implemented Codes @@ -3663,7 +3662,7 @@ void process_commands() } else if( code_seen("FANPINTST") ){ gcode_PRUSA_BadRAMBoFanTest(); - }else if (code_seen("FAN")) { //! PRUSA FAN + }else if (code_seen("FAN")) { // PRUSA FAN printf_P(_N("E0:%d RPM\nPRN0:%d RPM\n"), 60*fan_speed[0], 60*fan_speed[1]); }else if (code_seen("fn")) { // PRUSA fn if (farm_mode) { @@ -3838,7 +3837,7 @@ eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,0xFFFF); switch (gcode_in_progress) { - //! ### G0, G1 - Coordinated movement X Y Z E + //! ### G0, G1 - Coordinated movement X Y Z E G0 & G1: Move // -------------------------------------- case 0: // G0 -> G1 case 1: // G1 @@ -4038,7 +4037,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### G2 - CW ARC + //! ### G2 - CW ARC G2 & G3: Controlled Arc Move // ------------------------------ case 2: if(Stopped == false) { @@ -4048,7 +4047,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - //! ### G3 - CCW ARC + //! ### G3 - CCW ARC G2 & G3: Controlled Arc Move // ------------------------------- case 3: if(Stopped == false) { @@ -4058,7 +4057,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - //! ### G4 - Dwell + //! ### G4 - Dwell G4: Dwell // ------------------------------- case 4: codenum = 0; @@ -4077,7 +4076,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef FWRETRACT - //! ### G10 Retract + //! ### G10 - Retract G10: Retract // ------------------------------ case 10: #if EXTRUDERS > 1 @@ -4089,7 +4088,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - //! ### G11 - Retract recover + //! ### G11 - Retract recover G11: Unretract // ----------------------------- case 11: #if EXTRUDERS > 1 @@ -4101,8 +4100,21 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #endif //FWRETRACT - //! ### G28 - Home all Axis one at a time - // -------------------------------------------- + /*! + * + ### G28 - Home all Axis one at a time G28: Move to Origin (Home) + Unsing G28 without any paramters will perfom on the Prusa i3 printers home AND mesh bed leveling, while the default G-code G28 is just homeing the printer + + G28 [ X | Y | Z | W | C ] + + - `X` - Flag to go back to the X axis origin + - `Y` - Flag to go back to the Y axis origin + - `Z` - Flag to go back to the Z axis origin + - `W` - Suppress mesh bed leveling + - `C` - Calibrate X and Y origin (home) + * + */ + // ------------------------------ case 28: { long home_x_value = 0; @@ -4134,7 +4146,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef ENABLE_AUTO_BED_LEVELING - //! ### G29 - Detailed Z-Probe + //! ### G29 - Detailed Z-Probe G29: Detailed Z-Probe // -------------------------------- case 29: { @@ -4280,7 +4292,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; #ifndef Z_PROBE_SLED - //! ### G30 - Single Z Probe + //! ### G30 - Single Z Probe G30: Single Z-Probe // ------------------------------------ case 30: { @@ -4305,14 +4317,14 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; #else - //! ### G31 - Dock the sled + //! ### G31 - Dock the sled G31: Dock Z Probe sled // --------------------------- case 31: dock_sled(true); break; - //! ### G32 - Undock the sled + //! ### G32 - Undock the sled G32: Undock Z Probe sled // ---------------------------- case 32: dock_sled(false); From 986ac95c456b340d88edc81e2500d843dd99c249 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 30 Oct 2019 11:19:51 +0100 Subject: [PATCH 123/271] G codes documented ... next M commands --- Firmware/Marlin_main.cpp | 482 ++++++++++++++++++++++----------------- 1 file changed, 274 insertions(+), 208 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index f4971efc6..6386fc460 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3458,7 +3458,11 @@ extern uint8_t st_backlash_y; /** \ingroup GCodes */ -//! _This is a list of currently implemented G Codes in Prusa firmware (dynamically generated from doxygen)_ +//! _This is a list of currently implemented G Codes in Prusa firmware (dynamically generated from doxygen)._ +/** +They are shown in order of appierence in the code. +There are reasons why some G Codes aren't in numerical order. +*/ void process_commands() @@ -3502,7 +3506,22 @@ void process_commands() float tmp_motor_loud[3] = DEFAULT_PWM_MOTOR_CURRENT_LOUD; int8_t SilentMode; #endif + /** + *--------------------------------------------------------------------------------- + *### M117 - Display Message M117: Display Message + *This causes the given message to be shown in the status line on an attached LCD. + * + *It is also used by internal to display status messages on LCD. + * Here the internal status messages: + * Only on MK3/s (TMC2130) + * - CRASH DETECTED + * - CRASH RECOVER + * - CRASH_CANCEL + * - TMC_SET_WAVE + * - TMC_SET_STEP + * - TMC_SET_CHOP + */ if (code_seen("M117")) { //moved to highest priority place to be able to to print strings which includes "G", "PRUSA" and "^" starpos = (strchr(strchr_pointer + 5, '*')); if (starpos != NULL) @@ -3514,7 +3533,7 @@ void process_commands() else if (strncmp_P(CMDBUFFER_CURRENT_STRING, PSTR("CRASH_"), 6) == 0) { - //! ### CRASH_DETECTED - TMC2130 + // ### CRASH_DETECTED - TMC2130 // --------------------------------- if(code_seen("CRASH_DETECTED")) { @@ -3524,12 +3543,12 @@ void process_commands() crashdet_detected(mask); } - //! ### CRASH_RECOVER - TMC2130 + // ### CRASH_RECOVER - TMC2130 // ---------------------------------- else if(code_seen("CRASH_RECOVER")) crashdet_recover(); - //! ### CRASH_CANCEL - TMC2130 + // ### CRASH_CANCEL - TMC2130 // ---------------------------------- else if(code_seen("CRASH_CANCEL")) crashdet_cancel(); @@ -3537,7 +3556,7 @@ void process_commands() else if (strncmp_P(CMDBUFFER_CURRENT_STRING, PSTR("TMC_"), 4) == 0) { - //! ### TMC_SET_WAVE_ + // ### TMC_SET_WAVE_ // -------------------- if (strncmp_P(CMDBUFFER_CURRENT_STRING + 4, PSTR("SET_WAVE_"), 9) == 0) { @@ -3550,7 +3569,7 @@ void process_commands() } } - //! ### TMC_SET_STEP_ + // ### TMC_SET_STEP_ // ------------------ else if (strncmp_P(CMDBUFFER_CURRENT_STRING + 4, PSTR("SET_STEP_"), 9) == 0) { @@ -3564,7 +3583,7 @@ void process_commands() } } - //! ### TMC_SET_CHOP_ + // ### TMC_SET_CHOP_ // ------------------- else if (strncmp_P(CMDBUFFER_CURRENT_STRING + 4, PSTR("SET_CHOP_"), 9) == 0) { @@ -3618,36 +3637,35 @@ void process_commands() #endif //BACKLASH_Y #endif //TMC2130 else if(code_seen("PRUSA")){ - /*! - * - ### PRUSA - Internal command set - - Set of internal PRUSA commands - - PRUSA [ Ping | PRN | FAN | fn | thx | uvlo | fsensor_recover | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ] - - - `Ping` - - `PRN` - Prints revision of the printer - - `FAN` - Prints fan details - - `fn` - Prints farm no. - - `thx` - - `uvlo` - - `fsensor_recover` - Filament sensor recover - restore print and continue - - `MMURES` - Reset MMU - - `RESET` - (Careful!) - - `fv` - ? - - `M28` - - `SN` - - `Fir` - Prints firmware version - - `Rev`- Prints filament size, elelectronics, nozzle type - - `Lang` - Reset the language - - `Lz` - - `Beat` - Kick farm link timer - - `FR` - Full factory reset - - `nozzle set ` - set nozzle diameter (farm mode only), e.g. `PRUSA nozzle set 0.4` - - `nozzle D` - check the nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle D0.4` - - `nozzle` - prints nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle` + /** + *--------------------------------------------------------------------------------- + *### PRUSA - Internal command set G98: Activate farm mode - Notes * + *Set of internal PRUSA commands + * + * PRUSA [ Ping | PRN | FAN | fn | thx | uvlo | fsensor_recover | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ] + * + * - `Ping` + * - `PRN` - Prints revision of the printer + * - `FAN` - Prints fan details + * - `fn` - Prints farm no. + * - `thx` + * - `uvlo` + * - `fsensor_recover` - Filament sensor recover - restore print and continue + * - `MMURES` - Reset MMU + * - `RESET` - (Careful!) + * - `fv` - ? + * - `M28` + * - `SN` + * - `Fir` - Prints firmware version + * - `Rev`- Prints filament size, elelectronics, nozzle type + * - `Lang` - Reset the language + * - `Lz` + * - `Beat` - Kick farm link timer + * - `FR` - Full factory reset + * - `nozzle set ` - set nozzle diameter (farm mode only), e.g. `PRUSA nozzle set 0.4` + * - `nozzle D` - check the nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle D0.4` + * - `nozzle` - prints nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle` */ @@ -3837,8 +3855,11 @@ eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,0xFFFF); switch (gcode_in_progress) { - //! ### G0, G1 - Coordinated movement X Y Z E G0 & G1: Move - // -------------------------------------- + /** + *--------------------------------------------------------------------------------- + * # G Codes + *### G0, G1 - Coordinated movement X Y Z E G0 & G1: Move + */ -------------------------------------- case 0: // G0 -> G1 case 1: // G1 if(Stopped == false) { @@ -4037,8 +4058,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### G2 - CW ARC G2 & G3: Controlled Arc Move - // ------------------------------ + /** + *### G2 - CW ARC G2 & G3: Controlled Arc Move + */ ------------------------------ case 2: if(Stopped == false) { get_arc_coordinates(); @@ -4047,8 +4069,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - //! ### G3 - CCW ARC G2 & G3: Controlled Arc Move - // ------------------------------- + /** + *### G3 - CCW ARC G2 & G3: Controlled Arc Move + */ ------------------------------- case 3: if(Stopped == false) { get_arc_coordinates(); @@ -4057,8 +4080,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - //! ### G4 - Dwell G4: Dwell - // ------------------------------- + /** + *### G4 - Dwell G4: Dwell + */ ------------------------------- case 4: codenum = 0; if(code_seen('P')) codenum = code_value(); // milliseconds to wait @@ -4076,8 +4100,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef FWRETRACT - //! ### G10 - Retract G10: Retract - // ------------------------------ + /** + *### G10 - Retract G10: Retract + */ ------------------------------ case 10: #if EXTRUDERS > 1 retracted_swap[active_extruder]=(code_seen('S') && code_value_long() == 1); // checks for swap retract argument @@ -4088,8 +4113,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - //! ### G11 - Retract recover G11: Unretract - // ----------------------------- + /** + *### G11 - Retract recover G11: Unretract + */ ----------------------------- case 11: #if EXTRUDERS > 1 retract(false,retracted_swap[active_extruder]); @@ -4100,19 +4126,17 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #endif //FWRETRACT - /*! - * - ### G28 - Home all Axis one at a time G28: Move to Origin (Home) + /** + *### G28 - Home all Axis one at a time G28: Move to Origin (Home) Unsing G28 without any paramters will perfom on the Prusa i3 printers home AND mesh bed leveling, while the default G-code G28 is just homeing the printer - - G28 [ X | Y | Z | W | C ] - - - `X` - Flag to go back to the X axis origin - - `Y` - Flag to go back to the Y axis origin - - `Z` - Flag to go back to the Z axis origin - - `W` - Suppress mesh bed leveling - - `C` - Calibrate X and Y origin (home) - * + * + * G28 [ X | Y | Z | W | C ] + * + * - `X` - Flag to go back to the X axis origin + * - `Y` - Flag to go back to the Y axis origin + * - `Z` - Flag to go back to the Z axis origin + * - `W` - Suppress mesh bed leveling + * - `C` - Calibrate X and Y origin (home) - Only on MK3/s */ // ------------------------------ case 28: @@ -4146,8 +4170,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef ENABLE_AUTO_BED_LEVELING - //! ### G29 - Detailed Z-Probe G29: Detailed Z-Probe - // -------------------------------- + /** + *### G29 - Detailed Z-Probe G29: Detailed Z-Probe + *See G81 + */ -------------------------------- case 29: { #if Z_MIN_PIN == -1 @@ -4292,8 +4318,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; #ifndef Z_PROBE_SLED - //! ### G30 - Single Z Probe G30: Single Z-Probe - // ------------------------------------ + /** + *### G30 - Single Z Probe G30: Single Z-Probe + */ ------------------------------------ case 30: { st_synchronize(); @@ -4317,15 +4344,17 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; #else - //! ### G31 - Dock the sled G31: Dock Z Probe sled - // --------------------------- + /** + *### G31 - Dock the sled G31: Dock Z Probe sled + */ --------------------------- case 31: dock_sled(true); break; - //! ### G32 - Undock the sled G32: Undock Z Probe sled - // ---------------------------- + /** + *### G32 - Undock the sled G32: Undock Z Probe sled + */ ---------------------------- case 32: dock_sled(false); break; @@ -4334,8 +4363,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef MESH_BED_LEVELING - //! ### G30 - Single Z Probe - // ---------------------------- + /** + *### G30 - Single Z Probe G30: Single Z-Probe + */ ---------------------------- case 30: { st_synchronize(); @@ -4352,8 +4382,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### G75 - Print temperature interpolation - // --------------------------------------------- + /** + *### G75 - Print temperature interpolation G75: Print temperature interpolation + *Show/print PINDA temperature interpolating. + */ --------------------------------------------- case 75: { for (int i = 40; i <= 110; i++) @@ -4361,9 +4393,16 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### G76 - PINDA probe temperature calibration - // ------------------------------------------------ - case 76: + /** + *### G76 - PINDA probe temperature calibration G76: PINDA probe temperature calibration + *This G-code is used to calibrate the temperature drift of the PINDA (inductive Sensor). + * + *The PINDAv2 sensor has a built-in thermistor which has the advantage that the calibration can be done once for all materials. + * + *The Original i3 Prusa MK2/s uses PINDAv1 and this calibration improves the temperature drift, but not as good as the PINDAv2. + */ + ------------------------------------------------ + case 76: { #ifdef PINDA_THERMISTOR if (true) @@ -4620,7 +4659,23 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - //! ### G80 - Mesh-based Z probe + /** + *### G80 - Mesh-based Z probe G80: Mesh-based Z probe + *Default 3x3 grid can be changed on MK2.5/s and MK3/s to 7x7 grid. + * + * G80 [ N | R | V | L | R | F | B ] + * + * - `N` - Number of mesh points on x axis. Default is 3. Valid values are 3 and 7. + * - `R` - Probe retries. Default 3 max. 10 + * - `V` - Verbosity level 1=low, 10=mid, 20=high. It can be only used if firmware has been compiled with SUPPORT_VERBOSITY active. + * + * Using the following parameters enables additional "manual" bed leveling correction. Valid values are -100 microns to 100 microns. + + * - `L` - Left Bed Level correct value in um. + * - `R` - Right Bed Level correct value in um. + * - `F` - Front Bed Level correct value in um. + * - `B` - Back Bed Level correct value in um. + */ // ----------------------------------- /* @@ -5049,8 +5104,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### G81 - Mesh bed leveling status - // ----------------------------------------- + /** + *### G81 - Mesh bed leveling status G81: Mesh bed leveling status + + *Prints mesh bed leveling status and bed profile if activated. + */ ----------------------------------------- /* * Prints mesh bed leveling status and bed profile if activated @@ -5077,12 +5135,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; #if 0 - /* - * G82: Single Z probe at current location - * - * WARNING! USE WITH CAUTION! If you'll try to probe where is no leveling pad, nasty things can happen! - * - */ + /** + *### G82: Single Z probe at current location - Not active G82: Single Z probe at current location + * + *WARNING! USE WITH CAUTION! If you'll try to probe where is no leveling pad, nasty things can happen! + **/ case 82: SERIAL_PROTOCOLLNPGM("Finding bed "); int l_feedmultiply = setup_for_endstop_move(); @@ -5093,9 +5150,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) SERIAL_PROTOCOLPGM("\n"); break; - /* - * G83: Prusa3D specific: Babystep in Z and store to EEPROM - */ + /** + *### G83: Babystep in Z and store to EEPROM - Not active G83: Babystep in Z and store to EEPROM + */ case 83: { int babystepz = code_seen('S') ? code_value() : 0; @@ -5118,35 +5175,35 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - /* - * G84: Prusa3D specific: UNDO Babystep Z (move Z axis back) - */ + /** + *### G84: UNDO Babystep Z (move Z axis back) - Not active G84: UNDO Babystep Z (move Z axis back) + */ case 84: babystepsTodoZsubtract(babystepLoadZ); // babystepLoadZ = 0; break; - /* - * G85: Prusa3D specific: Pick best babystep - */ + /** + * ### G85: Pick best babystep - Not active G86: Disable babystep correction after home + * + * This G-code will be performed at the start of a calibration script. + * (Prusa3D specific) + */ case 86: calibration_status_store(CALIBRATION_STATUS_LIVE_ADJUST); break; /** - * ### G87 - Enable babystep correction after home + * ### G87 - Enable babystep correction after home G87: Enable babystep correction after home * * * This G-code will be performed at the end of a calibration script. @@ -5158,7 +5215,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /** - * ### G88 - Reserved + * ### G88 - Reserved G88: Reserved * * Currently has no effect. */ @@ -5171,20 +5228,22 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #endif // ENABLE_MESH_BED_LEVELING - //! ### G90 - Switch off relative mode - // ------------------------------- + /** + *### G90 - Switch off relative mode G90: Set to Absolute Positioning + */ ------------------------------- case 90: relative_mode = false; break; - //! ### G91 - Switch on relative mode + //! ### G91 - Switch on relative mode G91: Set to Relative Positioning // ------------------------------- case 91: relative_mode = true; break; - //! ### G92 - Set position - // ----------------------------- + /** + *### G92 - Set position G92: Set Position + */ ----------------------------- case 92: if(!code_seen(axis_codes[E_AXIS])) st_synchronize(); @@ -5203,8 +5262,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - //! ### G98 - Activate farm mode - // ----------------------------------- + /** + *### G98 - Activate farm mode G98: Activate farm mode + */ ----------------------------------- case 98: farm_mode = 1; PingTime = _millis(); @@ -5215,7 +5275,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) fCheckModeInit(); // alternatively invoke printer reset break; - //! ### G99 - Deactivate farm mode + //! ### G99 - Deactivate farm mode G99: Deactivate farm mode // ------------------------------------- case 99: farm_mode = 0; @@ -5232,7 +5292,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } // end if(code_seen('G')) - //! --------------------------------------------------------------------------------- + /** + *--------------------------------------------------------------------------------- + * # M Commands + * + */ else if(code_seen('M')) { @@ -5252,7 +5316,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) switch(mcode_in_progress) { - //! ### M0, M1 - Stop the printer + //! ### M0, M1 - Stop the printer G32: Undock Z Probe sled // --------------------------------------------------------------- case 0: // M0 - Unconditional stop - Wait for user button press on LCD case 1: // M1 - Conditional stop - Wait for user button press on LCD @@ -5302,7 +5366,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### M17 - Enable axes + //! ### M17 - Enable axes G32: Undock Z Probe sled // --------------------------------- case 17: LCD_MESSAGERPGM(_i("No move."));////MSG_NO_MOVE @@ -5316,7 +5380,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef SDSUPPORT - //! ### M20 - SD Card file list + //! ### M20 - SD Card file list G32: Undock Z Probe sled // ----------------------------------- case 20: SERIAL_PROTOCOLLNRPGM(_N("Begin file list"));////MSG_BEGIN_FILE_LIST @@ -5324,19 +5388,19 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) SERIAL_PROTOCOLLNRPGM(_N("End file list"));////MSG_END_FILE_LIST break; - //! ### M21 - Init SD card + //! ### M21 - Init SD card G32: Undock Z Probe sled // ------------------------------------ case 21: card.initsd(); break; - //! ### M22 - Release SD card + //! ### M22 - Release SD card G32: Undock Z Probe sled // ----------------------------------- case 22: card.release(); break; - //! ### M23 - Select file + //! ### M23 - Select file G32: Undock Z Probe sled // ----------------------------------- case 23: starpos = (strchr(strchr_pointer + 4,'*')); @@ -5345,7 +5409,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) card.openFile(strchr_pointer + 4,true); break; - //! ### M24 - Start SD print + //! ### M24 - Start SD print G32: Undock Z Probe sled // ---------------------------------- case 24: if (!card.paused) @@ -5354,13 +5418,13 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) starttime=_millis(); break; - //! ### M25 - Pause SD print + //! ### M25 - Pause SD print G32: Undock Z Probe sled // ---------------------------------- case 25: card.pauseSDPrint(); break; - //! ### M26 S\ - Set SD index + //! ### M26 S\ - Set SD index G32: Undock Z Probe sled //! Set position in SD card file to index in bytes. //! This command is expected to be called after M23 and before M24. //! Otherwise effect of this command is undefined. @@ -5375,13 +5439,13 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### M27 - Get SD status + //! ### M27 - Get SD status G32: Undock Z Probe sled // ---------------------------------- case 27: card.getStatus(); break; - //! ### M28 - Start SD write + //! ### M28 - Start SD write G32: Undock Z Probe sled // --------------------------------- case 28: starpos = (strchr(strchr_pointer + 4,'*')); @@ -5393,7 +5457,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) card.openFile(strchr_pointer+4,false); break; - //! ### M29 - Stop SD write + //! ### M29 - Stop SD write G32: Undock Z Probe sled // ------------------------------------- //! Currently has no effect. case 29: @@ -5401,7 +5465,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) //card,saving = false; break; - //! ### M30 - Delete file + //! ### M30 - Delete file G32: Undock Z Probe sled // ---------------------------------- case 30: if (card.cardOK){ @@ -5416,7 +5480,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### M32 - Select file and start SD print + //! ### M32 - Select file and start SD print G32: Undock Z Probe sled // ------------------------------------ case 32: { @@ -5454,7 +5518,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } } break; - //! ### M982 - Start SD write + //! ### M982 - Start SD write G32: Undock Z Probe sled // --------------------------------- case 928: starpos = (strchr(strchr_pointer + 5,'*')); @@ -5468,7 +5532,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #endif //SDSUPPORT - //! ### M31 - Report current print time + //! ### M31 - Report current print time G32: Undock Z Probe sled // -------------------------------------------------- case 31: //M31 take time since the start of the SD print or an M109 command { @@ -5486,7 +5550,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### M42 - Set pin state + //! ### M42 - Set pin state G32: Undock Z Probe sled // ----------------------------- case 42: if (code_seen('S')) @@ -5517,7 +5581,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - //! ### M44 - Reset the bed skew and offset calibration (Prusa specific) + //! ### M44 - Reset the bed skew and offset calibration (Prusa specific) G32: Undock Z Probe sled // -------------------------------------------------------------------- case 44: // M44: Prusa3D: Reset the bed skew and offset calibration. @@ -5533,7 +5597,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) world2machine_revert_to_uncorrected(); break; - //! ### M45 - Bed skew and offset with manual Z up (Prusa specific) + //! ### M45 - Bed skew and offset with manual Z up (Prusa specific) G32: Undock Z Probe sled // ------------------------------------------------------ case 45: // M45: Prusa3D: bed skew and offset with manual Z up { @@ -5574,7 +5638,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } */ - //! ### M47 - Show end stops dialog on the display (Prusa specific) + //! ### M47 - Show end stops dialog on the display (Prusa specific) G32: Undock Z Probe sled // ---------------------------------------------------- case 47: @@ -5623,7 +5687,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef ENABLE_AUTO_BED_LEVELING #ifdef Z_PROBE_REPEATABILITY_TEST - //! ### M48 - Z-Probe repeatability measurement function. + //! ### M48 - Z-Probe repeatability measurement function. G32: Undock Z Probe sled // ------------------------------------------------------ //! //! _Usage:_ @@ -5877,7 +5941,7 @@ Sigma_Exit: #endif // Z_PROBE_REPEATABILITY_TEST #endif // ENABLE_AUTO_BED_LEVELING - //! ### M73 - Set/get print progress + //! ### M73 - Set/get print progress G32: Undock Z Probe sled // ------------------------------------- //! _Usage:_ //! @@ -5896,7 +5960,7 @@ Sigma_Exit: } break; - //! ### M104 - Set hotend temperature + //! ### M104 - Set hotend temperature G32: Undock Z Probe sled // ----------------------------------------- case 104: // M104 { @@ -5911,19 +5975,19 @@ Sigma_Exit: break; } - //! ### M112 - Emergency stop + //! ### M112 - Emergency stop G32: Undock Z Probe sled // ----------------------------------------- case 112: kill(_n(""), 3); break; - //! ### M140 - Set bed temperature + //! ### M140 - Set bed temperature G32: Undock Z Probe sled // ----------------------------------------- case 140: if (code_seen('S')) setTargetBed(code_value()); break; - //! ### M105 - Report temperatures + //! ### M105 - Report temperatures G32: Undock Z Probe sled // ----------------------------------------- case 105: { @@ -6020,7 +6084,7 @@ Sigma_Exit: break; } - //! ### M109 - Wait for extruder temperature + //! ### M109 - Wait for extruder temperature G32: Undock Z Probe sled //! Parameters (not mandatory): //! * S \ set extruder temperature //! * R \ set extruder temperature @@ -6079,7 +6143,7 @@ Sigma_Exit: } break; - //! ### M190 - Wait for bed temperature + //! ### M190 - Wait for bed temperature G32: Undock Z Probe sled //! Parameters (not mandatory): //! * S \ set extruder temperature and wait for heating //! * R \ set extruder temperature and wait for heating or cooling @@ -6139,7 +6203,7 @@ Sigma_Exit: #if defined(FAN_PIN) && FAN_PIN > -1 - //! ### M106 - Set fan speed + //! ### M106 - Set fan speed G32: Undock Z Probe sled // ------------------------------------------- case 106: // M106 Sxxx Fan On S 0 .. 255 if (code_seen('S')){ @@ -6159,7 +6223,7 @@ Sigma_Exit: #if defined(PS_ON_PIN) && PS_ON_PIN > -1 - //! ### M80 - Turn on the Power Supply + //! ### M80 - Turn on the Power Supply G32: Undock Z Probe sled // ------------------------------- case 80: SET_OUTPUT(PS_ON_PIN); //GND @@ -6179,7 +6243,7 @@ Sigma_Exit: break; #endif - //! ### M81 - Turn off Power Supply + //! ### M81 - Turn off Power Supply G32: Undock Z Probe sled // -------------------------------------- case 81: disable_heater(); @@ -6202,19 +6266,19 @@ Sigma_Exit: lcd_update(0); break; - //! ### M82 - Set E axis to absolute mode + //! ### M82 - Set E axis to absolute mode G32: Undock Z Probe sled // --------------------------------------- case 82: axis_relative_modes[3] = false; break; - //! ### M83 - Set E axis to relative mode + //! ### M83 - Set E axis to relative mode G32: Undock Z Probe sled // --------------------------------------- case 83: axis_relative_modes[3] = true; break; - //! ### M84, M18 - Disable steppers + //! ### M84, M18 - Disable steppers G32: Undock Z Probe sled //--------------------------------------- //! This command can be used to set the stepper inactivity timeout (`S`) or to disable steppers (`X`,`Y`,`Z`,`E`) //! @@ -6256,7 +6320,7 @@ Sigma_Exit: snmm_filaments_used = 0; break; - //! ### M85 - Set max inactive time + //! ### M85 - Set max inactive time G32: Undock Z Probe sled // --------------------------------------- case 85: // M85 if(code_seen('S')) { @@ -6265,7 +6329,7 @@ Sigma_Exit: break; #ifdef SAFETYTIMER - //! ### M86 - Set safety timer expiration time + //! ### M86 - Set safety timer expiration time G32: Undock Z Probe sled //! //! _Usage:_ //! M86 S @@ -6280,7 +6344,7 @@ Sigma_Exit: break; #endif - //! ### M92 Set Axis steps-per-unit + //! ### M92 Set Axis steps-per-unit G32: Undock Z Probe sled // --------------------------------------- //! Same syntax as G92 case 92: @@ -6305,14 +6369,14 @@ Sigma_Exit: } break; - //! ### M110 - Set Line number + //! ### M110 - Set Line number G32: Undock Z Probe sled // --------------------------------------- case 110: if (code_seen('N')) gcode_LastN = code_value_long(); break; - //! ### M113 - Get or set host keep-alive interval + //! ### M113 - Get or set host keep-alive interval G32: Undock Z Probe sled // ------------------------------------------ case 113: if (code_seen('S')) { @@ -6326,7 +6390,7 @@ Sigma_Exit: } break; - //! ### M115 - Firmware info + //! ### M115 - Firmware info G32: Undock Z Probe sled // -------------------------------------- //! Print the firmware info and capabilities //! @@ -6357,7 +6421,7 @@ Sigma_Exit: } break; - //! ### M114 - Get current position + //! ### M114 - Get current position G32: Undock Z Probe sled // ------------------------------------- case 114: gcode_M114(); @@ -6365,7 +6429,7 @@ Sigma_Exit: - //! ### M117 - Set LCD Message + //! ### M117 - Set LCD Message G32: Undock Z Probe sled // -------------------------------------- /* @@ -6378,19 +6442,19 @@ Sigma_Exit: lcd_setstatus(strchr_pointer + 5); break;*/ - //! ### M120 - Disable endstops + //! ### M120 - Disable endstops G32: Undock Z Probe sled // ---------------------------------------- case 120: enable_endstops(false) ; break; - //! ### M121 - Enable endstops + //! ### M121 - Enable endstops G32: Undock Z Probe sled // ---------------------------------------- case 121: enable_endstops(true) ; break; - //! ### M119 - Get endstop states + //! ### M119 - Get endstop states G32: Undock Z Probe sled // ---------------------------------------- case 119: SERIAL_PROTOCOLRPGM(_N("Reporting endstop status"));////MSG_M119_REPORT @@ -6454,7 +6518,7 @@ Sigma_Exit: #ifdef BLINKM - //! ### M150 - Set RGB(W) Color + //! ### M150 - Set RGB(W) Color G32: Undock Z Probe sled // ------------------------------------------- case 150: { @@ -6471,7 +6535,7 @@ Sigma_Exit: break; #endif //BLINKM - //! ### M200 - Set filament diameter + //! ### M200 - Set filament diameter G32: Undock Z Probe sled // ---------------------------------------- case 200: // M200 D set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters). { @@ -6512,7 +6576,7 @@ Sigma_Exit: } break; - //! ### M201 - Set Print Max Acceleration + //! ### M201 - Set Print Max Acceleration G32: Undock Z Probe sled // ------------------------------------------- case 201: for (int8_t i = 0; i < NUM_AXIS; i++) @@ -6547,7 +6611,7 @@ Sigma_Exit: break; #endif - //! ### M203 - Set Max Feedrate + //! ### M203 - Set Max Feedrate G32: Undock Z Probe sled // --------------------------------------- case 203: // M203 max feedrate mm/sec for (int8_t i = 0; i < NUM_AXIS; i++) @@ -6573,7 +6637,7 @@ Sigma_Exit: } break; - //! ### M204 - Acceleration settings + //! ### M204 - Acceleration settings G32: Undock Z Probe sled // ------------------------------------------ //! Supporting old format: //! @@ -6607,7 +6671,7 @@ Sigma_Exit: } break; - //! ### M205 - Set advanced settings + //! ### M205 - Set advanced settings G32: Undock Z Probe sled // --------------------------------------------- //! Set some advanced settings related to movement. //! @@ -6632,7 +6696,7 @@ Sigma_Exit: } break; - //! ### M206 - Set additional homing offsets + //! ### M206 - Set additional homing offsets G32: Undock Z Probe sled // ---------------------------------------------- case 206: for(int8_t i=0; i < 3; i++) @@ -6642,7 +6706,7 @@ Sigma_Exit: break; #ifdef FWRETRACT - //! ### M207 - Set firmware retraction + //! ### M207 - Set firmware retraction G32: Undock Z Probe sled // -------------------------------------------------- case 207: //M207 - set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop] { @@ -6660,7 +6724,7 @@ Sigma_Exit: } }break; - //! ### M208 - Set retract recover length + //! ### M208 - Set retract recover length G32: Undock Z Probe sled // -------------------------------------------- case 208: // M208 - set retract recover length S[positive mm surplus to the M207 S*] F[feedrate mm/min] { @@ -6674,7 +6738,7 @@ Sigma_Exit: } }break; - //! ### M209 - Enable/disable automatict retract + //! ### M209 - Enable/disable automatict retract G32: Undock Z Probe sled // --------------------------------------------- case 209: // M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction. { @@ -6746,7 +6810,7 @@ Sigma_Exit: }break; #endif - //! ### M220 Set feedrate percentage + //! ### M220 Set feedrate percentage G32: Undock Z Probe sled // ----------------------------------------------- case 220: // M220 S- set speed factor override percentage { @@ -6764,7 +6828,7 @@ Sigma_Exit: } break; - //! ### M221 - Set extrude factor override percentage + //! ### M221 - Set extrude factor override percentage G32: Undock Z Probe sled // ---------------------------------------------------- case 221: // M221 S- set extrude factor override percentage { @@ -6788,7 +6852,7 @@ Sigma_Exit: } break; - //! ### M226 - Wait for Pin state + //! ### M226 - Wait for Pin state G32: Undock Z Probe sled // ------------------------------------------ case 226: // M226 P S- Wait until the specified pin reaches the state required { @@ -6844,7 +6908,7 @@ Sigma_Exit: #if NUM_SERVOS > 0 - //! ### M280 - Set/Get servo position + //! ### M280 - Set/Get servo position G32: Undock Z Probe sled // -------------------------------------------- case 280: // M280 - set servo position absolute. P: servo index, S: angle or microseconds { @@ -6885,7 +6949,7 @@ Sigma_Exit: #if (LARGE_FLASH == true && ( BEEPER > 0 || defined(ULTRALCD) || defined(LCD_USE_I2C_BUZZER))) - //! ### M300 - Play tone + //! ### M300 - Play tone G32: Undock Z Probe sled // ----------------------- case 300: // M300 { @@ -6907,7 +6971,7 @@ Sigma_Exit: #ifdef PIDTEMP - //! ### M301 - Set hotend PID + //! ### M301 - Set hotend PID G32: Undock Z Probe sled // --------------------------------------- case 301: { @@ -6938,7 +7002,7 @@ Sigma_Exit: #endif //PIDTEMP #ifdef PIDTEMPBED - //! ### M304 - Set bed PID + //! ### M304 - Set bed PID G32: Undock Z Probe sled // -------------------------------------- case 304: { @@ -6959,7 +7023,7 @@ Sigma_Exit: break; #endif //PIDTEMP - //! ### M240 - Trigger camera + //! ### M240 - Trigger camera G32: Undock Z Probe sled // -------------------------------------------- case 240: // M240 Triggers a camera by emulating a Canon RC-1 : http://www.doc-diy.net/photo/rc-1_hacked/ { @@ -6994,7 +7058,7 @@ Sigma_Exit: break; #ifdef PREVENT_DANGEROUS_EXTRUDE - //! ### M302 - Allow cold extrude, or set minimum extrude temperature + //! ### M302 - Allow cold extrude, or set minimum extrude temperature G32: Undock Z Probe sled // ------------------------------------------------------------------- case 302: { @@ -7005,7 +7069,7 @@ Sigma_Exit: break; #endif - //! ### M303 - PID autotune + //! ### M303 - PID autotune G32: Undock Z Probe sled // ------------------------------------- case 303: { @@ -7021,7 +7085,7 @@ Sigma_Exit: } break; - //! ### M400 - Wait for all moves to finish + //! ### M400 - Wait for all moves to finish G32: Undock Z Probe sled // ----------------------------------------- case 400: { @@ -7029,7 +7093,7 @@ Sigma_Exit: } break; - //! ### M403 - Set filament type (material) for particular extruder and notify the MMU + //! ### M403 - Set filament type (material) for particular extruder and notify the MMU G32: Undock Z Probe sled // ---------------------------------------------- case 403: { @@ -7047,7 +7111,7 @@ Sigma_Exit: } break; - //! ### M500 - Store settings in EEPROM + //! ### M500 - Store settings in EEPROM G32: Undock Z Probe sled // ----------------------------------------- case 500: { @@ -7055,7 +7119,7 @@ Sigma_Exit: } break; - //! ### M501 - Read settings from EEPROM + //! ### M501 - Read settings from EEPROM G32: Undock Z Probe sled // ---------------------------------------- case 501: { @@ -7063,7 +7127,7 @@ Sigma_Exit: } break; - //! ### M502 - Revert all settings to factory default + //! ### M502 - Revert all settings to factory default G32: Undock Z Probe sled // ------------------------------------------------- case 502: { @@ -7071,7 +7135,7 @@ Sigma_Exit: } break; - //! ### M503 - Repport all settings currently in memory + //! ### M503 - Repport all settings currently in memory G32: Undock Z Probe sled // ------------------------------------------------- case 503: { @@ -7079,7 +7143,7 @@ Sigma_Exit: } break; - //! ### M509 - Force language selection + //! ### M509 - Force language selection G32: Undock Z Probe sled // ------------------------------------------------ case 509: { @@ -7090,7 +7154,7 @@ Sigma_Exit: break; #ifdef ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED - //! ### M540 - Abort print on endstop hit (enable/disable) + //! ### M540 - Abort print on endstop hit (enable/disable) G32: Undock Z Probe sled // ----------------------------------------------------- case 540: { @@ -7137,7 +7201,7 @@ Sigma_Exit: #ifdef FILAMENTCHANGEENABLE - //! ### M600 - Initiate Filament change procedure + //! ### M600 - Initiate Filament change procedure G32: Undock Z Probe sled // -------------------------------------- case 600: //Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal] { @@ -7214,7 +7278,7 @@ Sigma_Exit: break; #endif //FILAMENTCHANGEENABLE - //! ### M601 - Pause print + //! ### M601 - Pause print G32: Undock Z Probe sled // ------------------------------- case 601: { @@ -7223,21 +7287,21 @@ Sigma_Exit: } break; - //! ### M602 - Resume print + //! ### M602 - Resume print G32: Undock Z Probe sled // ------------------------------- case 602: { lcd_resume_print(); } break; - //! ### M603 - Stop print + //! ### M603 - Stop print G32: Undock Z Probe sled // ------------------------------- case 603: { lcd_print_stop(); } #ifdef PINDA_THERMISTOR - //! ### M860 - Wait for extruder temperature (PINDA) + //! ### M860 - Wait for extruder temperature (PINDA) G32: Undock Z Probe sled // -------------------------------------------------------------- /*! Wait for PINDA thermistor to reach target temperature @@ -7289,7 +7353,7 @@ Sigma_Exit: break; } - //! ### M861 - Set/Get PINDA temperature compensation offsets + //! ### M861 - Set/Get PINDA temperature compensation offsets G32: Undock Z Probe sled // ----------------------------------------------------------- /*! @@ -7372,7 +7436,7 @@ Sigma_Exit: #endif //PINDA_THERMISTOR - //! ### M862 - Print checking + //! ### M862 - Print checking G32: Undock Z Probe sled // ---------------------------------------------- /*! Checks the parameters of the printer and gcode and performs compatibility check @@ -7465,14 +7529,14 @@ Sigma_Exit: break; #ifdef LIN_ADVANCE - //! ### M900 - Set Linear advance options + //! ### M900 - Set Linear advance options G32: Undock Z Probe sled // ---------------------------------------------- case 900: gcode_M900(); break; #endif - //! ### M907 - Set digital trimpot motor current in mA using axis codes + //! ### M907 - Set digital trimpot motor current in mA using axis codes G32: Undock Z Probe sled // --------------------------------------------------------------- case 907: { @@ -7507,7 +7571,7 @@ Sigma_Exit: } break; - //! ### M908 - Control digital trimpot directly + //! ### M908 - Control digital trimpot directly G32: Undock Z Probe sled // --------------------------------------------------------- case 908: { @@ -7522,7 +7586,7 @@ Sigma_Exit: #ifdef TMC2130_SERVICE_CODES_M910_M918 - //! ### M910 - TMC2130 init + //! ### M910 - TMC2130 init G32: Undock Z Probe sled // ----------------------------------------------- case 910: { @@ -7530,7 +7594,7 @@ Sigma_Exit: } break; - //! ### M911 - Set TMC2130 holding currents + //! ### M911 - Set TMC2130 holding currents G32: Undock Z Probe sled // ------------------------------------------------- case 911: { @@ -7541,7 +7605,7 @@ Sigma_Exit: } break; - //! ### M912 - Set TMC2130 running currents + //! ### M912 - Set TMC2130 running currents G32: Undock Z Probe sled // ----------------------------------------------- case 912: { @@ -7552,7 +7616,7 @@ Sigma_Exit: } break; - //! ### M913 - Print TMC2130 currents + //! ### M913 - Print TMC2130 currents G32: Undock Z Probe sled // ----------------------------- case 913: { @@ -7560,7 +7624,7 @@ Sigma_Exit: } break; - //! ### M914 - Set TMC2130 normal mode + //! ### M914 - Set TMC2130 normal mode G32: Undock Z Probe sled // ------------------------------ case 914: { @@ -7570,7 +7634,7 @@ Sigma_Exit: } break; - //! ### M95 - Set TMC2130 silent mode + //! ### M915 - Set TMC2130 silent mode G32: Undock Z Probe sled // ------------------------------ case 915: { @@ -7580,7 +7644,7 @@ Sigma_Exit: } break; - //! ### M916 - Set TMC2130 Stallguard sensitivity threshold + //! ### M916 - Set TMC2130 Stallguard sensitivity threshold G32: Undock Z Probe sled // ------------------------------------------------------- case 916: { @@ -7593,7 +7657,7 @@ Sigma_Exit: } break; - //! ### M917 - Set TMC2130 PWM amplitude offset (pwm_ampl) + //! ### M917 - Set TMC2130 PWM amplitude offset (pwm_ampl) G32: Undock Z Probe sled // -------------------------------------------------------------- case 917: { @@ -7604,7 +7668,7 @@ Sigma_Exit: } break; - //! ### M918 - Set TMC2130 PWM amplitude gradient (pwm_grad) + //! ### M918 - Set TMC2130 PWM amplitude gradient (pwm_grad) G32: Undock Z Probe sled // ------------------------------------------------------------- case 918: { @@ -7617,7 +7681,7 @@ Sigma_Exit: #endif //TMC2130_SERVICE_CODES_M910_M918 - //! ### M350 - Set microstepping mode + //! ### M350 - Set microstepping mode G32: Undock Z Probe sled // --------------------------------------------------- //! Warning: Steps per unit remains unchanged. S code sets stepping mode for all drivers. case 350: @@ -7658,7 +7722,7 @@ Sigma_Exit: } break; - //! ### M351 - Toggle Microstep Pins + //! ### M351 - Toggle Microstep Pins G32: Undock Z Probe sled // ----------------------------------- //! Toggle MS1 MS2 pins directly, S# determines MS1 or MS2, X# sets the pin high/low. //! @@ -7682,7 +7746,7 @@ Sigma_Exit: } break; - //! ### M701 - Load filament + //! ### M701 - Load filament G32: Undock Z Probe sled // ------------------------- case 701: { @@ -7692,7 +7756,7 @@ Sigma_Exit: } break; - //! ### M702 - Unload filament + //! ### M702 - Unload filament G32: Undock Z Probe sled // ------------------------ /*! @@ -7724,7 +7788,7 @@ Sigma_Exit: } break; - //! ### M999 - Restart after being stopped + //! ### M999 - Restart after being stopped G32: Undock Z Probe sled // ------------------------------------ case 999: Stopped = false; @@ -7937,8 +8001,10 @@ Sigma_Exit: } } // end if(code_seen('T')) (end of T codes) - //! ---------------------------------------------------------------------------------------------- - + /** + *--------------------------------------------------------------------------------- + *# D codes + */ else if (code_seen('D')) // D codes (debug) { switch((int)code_value()) From d472f0730c0d772c8ded162a27404542b8f9619b Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 30 Oct 2019 15:50:23 +0100 Subject: [PATCH 124/271] Change doxygen format --- Firmware/Marlin_main.cpp | 145 ++++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 72 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 6386fc460..3fe14e8be 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3506,21 +3506,22 @@ void process_commands() float tmp_motor_loud[3] = DEFAULT_PWM_MOTOR_CURRENT_LOUD; int8_t SilentMode; #endif - /** - *--------------------------------------------------------------------------------- - *### M117 - Display Message M117: Display Message + /*! - *This causes the given message to be shown in the status line on an attached LCD. - * - *It is also used by internal to display status messages on LCD. - * Here the internal status messages: - * Only on MK3/s (TMC2130) - * - CRASH DETECTED - * - CRASH RECOVER - * - CRASH_CANCEL - * - TMC_SET_WAVE - * - TMC_SET_STEP - * - TMC_SET_CHOP + --------------------------------------------------------------------------------- + ### M117 - Display Message M117: Display Message + + This causes the given message to be shown in the status line on an attached LCD. + + It is also used by internal to display status messages on LCD. + Here the internal status messages: + Only on MK3/s (TMC2130) + - CRASH DETECTED + - CRASH RECOVER + - CRASH_CANCEL + - TMC_SET_WAVE + - TMC_SET_STEP + - TMC_SET_CHOP */ if (code_seen("M117")) { //moved to highest priority place to be able to to print strings which includes "G", "PRUSA" and "^" starpos = (strchr(strchr_pointer + 5, '*')); @@ -3637,35 +3638,35 @@ void process_commands() #endif //BACKLASH_Y #endif //TMC2130 else if(code_seen("PRUSA")){ - /** - *--------------------------------------------------------------------------------- - *### PRUSA - Internal command set G98: Activate farm mode - Notes - * - *Set of internal PRUSA commands - * - * PRUSA [ Ping | PRN | FAN | fn | thx | uvlo | fsensor_recover | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ] - * - * - `Ping` - * - `PRN` - Prints revision of the printer - * - `FAN` - Prints fan details - * - `fn` - Prints farm no. - * - `thx` - * - `uvlo` - * - `fsensor_recover` - Filament sensor recover - restore print and continue - * - `MMURES` - Reset MMU - * - `RESET` - (Careful!) - * - `fv` - ? - * - `M28` - * - `SN` - * - `Fir` - Prints firmware version - * - `Rev`- Prints filament size, elelectronics, nozzle type - * - `Lang` - Reset the language - * - `Lz` - * - `Beat` - Kick farm link timer - * - `FR` - Full factory reset - * - `nozzle set ` - set nozzle diameter (farm mode only), e.g. `PRUSA nozzle set 0.4` - * - `nozzle D` - check the nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle D0.4` - * - `nozzle` - prints nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle` + /*! + --------------------------------------------------------------------------------- + ### PRUSA - Internal command set G98: Activate farm mode - Notes + + Set of internal PRUSA commands + + PRUSA [ Ping | PRN | FAN | fn | thx | uvlo | fsensor_recover | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ] + + - `Ping` + - `PRN` - Prints revision of the printer + - `FAN` - Prints fan details + - `fn` - Prints farm no. + - `thx` + - `uvlo` + - `fsensor_recover` - Filament sensor recover - restore print and continue + - `MMURES` - Reset MMU + - `RESET` - (Careful!) + - `fv` - ? + - `M28` + - `SN` + - `Fir` - Prints firmware version + - `Rev`- Prints filament size, elelectronics, nozzle type + - `Lang` - Reset the language + - `Lz` + - `Beat` - Kick farm link timer + - `FR` - Full factory reset + - `nozzle set ` - set nozzle diameter (farm mode only), e.g. `PRUSA nozzle set 0.4` + - `nozzle D` - check the nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle D0.4` + - `nozzle` - prints nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle` */ @@ -3855,10 +3856,10 @@ eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,0xFFFF); switch (gcode_in_progress) { - /** - *--------------------------------------------------------------------------------- - * # G Codes - *### G0, G1 - Coordinated movement X Y Z E G0 & G1: Move + /*! + --------------------------------------------------------------------------------- + # G Codes + ### G0, G1 - Coordinated movement X Y Z E G0 & G1: Move */ -------------------------------------- case 0: // G0 -> G1 case 1: // G1 @@ -4058,8 +4059,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - /** - *### G2 - CW ARC G2 & G3: Controlled Arc Move + /*! + ### G2 - CW ARC G2 & G3: Controlled Arc Move */ ------------------------------ case 2: if(Stopped == false) { @@ -4069,8 +4070,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - /** - *### G3 - CCW ARC G2 & G3: Controlled Arc Move + /*! + ### G3 - CCW ARC G2 & G3: Controlled Arc Move */ ------------------------------- case 3: if(Stopped == false) { @@ -4080,8 +4081,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - /** - *### G4 - Dwell G4: Dwell + /*! + ### G4 - Dwell G4: Dwell */ ------------------------------- case 4: codenum = 0; @@ -4100,8 +4101,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef FWRETRACT - /** - *### G10 - Retract G10: Retract + /*! + ### G10 - Retract G10: Retract */ ------------------------------ case 10: #if EXTRUDERS > 1 @@ -4113,8 +4114,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - /** - *### G11 - Retract recover G11: Unretract + /*! + ### G11 - Retract recover G11: Unretract */ ----------------------------- case 11: #if EXTRUDERS > 1 @@ -4126,17 +4127,17 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #endif //FWRETRACT - /** - *### G28 - Home all Axis one at a time G28: Move to Origin (Home) + /*! + ### G28 - Home all Axis one at a time G28: Move to Origin (Home) Unsing G28 without any paramters will perfom on the Prusa i3 printers home AND mesh bed leveling, while the default G-code G28 is just homeing the printer - * - * G28 [ X | Y | Z | W | C ] - * - * - `X` - Flag to go back to the X axis origin - * - `Y` - Flag to go back to the Y axis origin - * - `Z` - Flag to go back to the Z axis origin - * - `W` - Suppress mesh bed leveling - * - `C` - Calibrate X and Y origin (home) - Only on MK3/s + + G28 [ X | Y | Z | W | C ] + + - `X` - Flag to go back to the X axis origin + - `Y` - Flag to go back to the Y axis origin + - `Z` - Flag to go back to the Z axis origin + - `W` - Suppress mesh bed leveling + - `C` - Calibrate X and Y origin (home) - Only on MK3/s */ // ------------------------------ case 28: @@ -4170,9 +4171,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef ENABLE_AUTO_BED_LEVELING - /** - *### G29 - Detailed Z-Probe G29: Detailed Z-Probe - *See G81 + /*! + ### G29 - Detailed Z-Probe G29: Detailed Z-Probe + See `G81` */ -------------------------------- case 29: { @@ -5150,7 +5151,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) SERIAL_PROTOCOLPGM("\n"); break; - /** + /* *### G83: Babystep in Z and store to EEPROM - Not active G83: Babystep in Z and store to EEPROM */ case 83: @@ -6676,7 +6677,7 @@ Sigma_Exit: //! Set some advanced settings related to movement. //! //! M205 [S] [T] [B] [X] [Y] [Z] [E] - /*! + /** - `S` - Minimum feedrate for print moves (unit/s) - `T` - Minimum feedrate for travel moves (units/s) - `B` - Minimum segment time (us) From b9dca5f89531f790842fe8f27fe91ef7901cc85c Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 30 Oct 2019 15:52:27 +0100 Subject: [PATCH 125/271] other doxygen format changes --- Firmware/Marlin_main.cpp | 167 ++++++++++++++++++++------------------- 1 file changed, 84 insertions(+), 83 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 3fe14e8be..8723d8b06 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4173,7 +4173,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G29 - Detailed Z-Probe G29: Detailed Z-Probe - See `G81` + See G81 */ -------------------------------- case 29: { @@ -4319,8 +4319,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; #ifndef Z_PROBE_SLED - /** - *### G30 - Single Z Probe G30: Single Z-Probe + /*! + ### G30 - Single Z Probe G30: Single Z-Probe */ ------------------------------------ case 30: { @@ -4345,16 +4345,16 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; #else - /** - *### G31 - Dock the sled G31: Dock Z Probe sled + /*! + ### G31 - Dock the sled G31: Dock Z Probe sled */ --------------------------- case 31: dock_sled(true); break; - /** - *### G32 - Undock the sled G32: Undock Z Probe sled + /*! + ### G32 - Undock the sled G32: Undock Z Probe sled */ ---------------------------- case 32: dock_sled(false); @@ -4364,8 +4364,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef MESH_BED_LEVELING - /** - *### G30 - Single Z Probe G30: Single Z-Probe + /*! + ### G30 - Single Z Probe G30: Single Z-Probe */ ---------------------------- case 30: { @@ -4383,9 +4383,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - /** - *### G75 - Print temperature interpolation G75: Print temperature interpolation - *Show/print PINDA temperature interpolating. + /*! + ### G75 - Print temperature interpolation G75: Print temperature interpolation + Show/print PINDA temperature interpolating. */ --------------------------------------------- case 75: { @@ -4394,13 +4394,13 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - /** - *### G76 - PINDA probe temperature calibration G76: PINDA probe temperature calibration - *This G-code is used to calibrate the temperature drift of the PINDA (inductive Sensor). - * - *The PINDAv2 sensor has a built-in thermistor which has the advantage that the calibration can be done once for all materials. - * - *The Original i3 Prusa MK2/s uses PINDAv1 and this calibration improves the temperature drift, but not as good as the PINDAv2. + /*! + ### G76 - PINDA probe temperature calibration G76: PINDA probe temperature calibration + This G-code is used to calibrate the temperature drift of the PINDA (inductive Sensor). + + The PINDAv2 sensor has a built-in thermistor which has the advantage that the calibration can be done once for all materials. + + The Original i3 Prusa MK2/s uses PINDAv1 and this calibration improves the temperature drift, but not as good as the PINDAv2. */ ------------------------------------------------ case 76: @@ -4660,22 +4660,22 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - /** - *### G80 - Mesh-based Z probe G80: Mesh-based Z probe - *Default 3x3 grid can be changed on MK2.5/s and MK3/s to 7x7 grid. - * - * G80 [ N | R | V | L | R | F | B ] - * - * - `N` - Number of mesh points on x axis. Default is 3. Valid values are 3 and 7. - * - `R` - Probe retries. Default 3 max. 10 - * - `V` - Verbosity level 1=low, 10=mid, 20=high. It can be only used if firmware has been compiled with SUPPORT_VERBOSITY active. - * - * Using the following parameters enables additional "manual" bed leveling correction. Valid values are -100 microns to 100 microns. - - * - `L` - Left Bed Level correct value in um. - * - `R` - Right Bed Level correct value in um. - * - `F` - Front Bed Level correct value in um. - * - `B` - Back Bed Level correct value in um. + /*! + ### G80 - Mesh-based Z probe G80: Mesh-based Z probe + Default 3x3 grid can be changed on MK2.5/s and MK3/s to 7x7 grid. + + G80 [ N | R | V | L | R | F | B ] + + - `N` - Number of mesh points on x axis. Default is 3. Valid values are 3 and 7. + - `R` - Probe retries. Default 3 max. 10 + - `V` - Verbosity level 1=low, 10=mid, 20=high. It can be only used if firmware has been compiled with SUPPORT_VERBOSITY active. + + Using the following parameters enables additional "manual" bed leveling correction. Valid values are -100 microns to 100 microns. + + - `L` - Left Bed Level correct value in um. + - `R` - Right Bed Level correct value in um. + - `F` - Front Bed Level correct value in um. + - `B` - Back Bed Level correct value in um. */ // ----------------------------------- @@ -5105,10 +5105,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - /** - *### G81 - Mesh bed leveling status G81: Mesh bed leveling status + /*! + ### G81 - Mesh bed leveling status G81: Mesh bed leveling status - *Prints mesh bed leveling status and bed profile if activated. + Prints mesh bed leveling status and bed profile if activated. */ ----------------------------------------- /* @@ -5136,11 +5136,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; #if 0 - /** - *### G82: Single Z probe at current location - Not active G82: Single Z probe at current location - * - *WARNING! USE WITH CAUTION! If you'll try to probe where is no leveling pad, nasty things can happen! - **/ + /*! + ### G82: Single Z probe at current location - Not active G82: Single Z probe at current location + + WARNING! USE WITH CAUTION! If you'll try to probe where is no leveling pad, nasty things can happen! + */ case 82: SERIAL_PROTOCOLLNPGM("Finding bed "); int l_feedmultiply = setup_for_endstop_move(); @@ -5151,8 +5151,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) SERIAL_PROTOCOLPGM("\n"); break; - /* - *### G83: Babystep in Z and store to EEPROM - Not active G83: Babystep in Z and store to EEPROM + /*! + ### G83: Babystep in Z and store to EEPROM - Not active G83: Babystep in Z and store to EEPROM */ case 83: { @@ -5176,50 +5176,50 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - /** - *### G84: UNDO Babystep Z (move Z axis back) - Not active G84: UNDO Babystep Z (move Z axis back) + /*! + ### G84: UNDO Babystep Z (move Z axis back) - Not active G84: UNDO Babystep Z (move Z axis back) */ case 84: babystepsTodoZsubtract(babystepLoadZ); // babystepLoadZ = 0; break; - /** - * ### G85: Pick best babystep - Not active G85: Pick best babystep */ case 85: lcd_pick_babystep(); break; #endif - /** - *### G86 - Disable babystep correction after home G86: Disable babystep correction after home - * - * This G-code will be performed at the start of a calibration script. - * (Prusa3D specific) + /*! + ### G86 - Disable babystep correction after home G86: Disable babystep correction after home + + This G-code will be performed at the start of a calibration script. + (Prusa3D specific) */ case 86: calibration_status_store(CALIBRATION_STATUS_LIVE_ADJUST); break; - /** - * ### G87 - Enable babystep correction after home G87: Enable babystep correction after home - * - * - * This G-code will be performed at the end of a calibration script. - * (Prusa3D specific) - */ + /*! + ### G87 - Enable babystep correction after home G87: Enable babystep correction after home + + + This G-code will be performed at the end of a calibration script. + (Prusa3D specific) + */ case 87: calibration_status_store(CALIBRATION_STATUS_CALIBRATED); break; - /** - * ### G88 - Reserved G88: Reserved - * - * Currently has no effect. - */ + /*! + ### G88 - Reserved G88: Reserved + + Currently has no effect. + */ // Prusa3D specific: Don't know what it is for, it is in V2Calibration.gcode @@ -5229,21 +5229,21 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #endif // ENABLE_MESH_BED_LEVELING - /** - *### G90 - Switch off relative mode G90: Set to Absolute Positioning + /*! + ### G90 - Switch off relative mode G90: Set to Absolute Positioning */ ------------------------------- case 90: relative_mode = false; break; - //! ### G91 - Switch on relative mode G91: Set to Relative Positioning - // ------------------------------- + /*! ### G91 - Switch on relative mode G91: Set to Relative Positioning + */ ------------------------------- case 91: relative_mode = true; break; - /** - *### G92 - Set position G92: Set Position + /*! + ### G92 - Set position G92: Set Position */ ----------------------------- case 92: if(!code_seen(axis_codes[E_AXIS])) @@ -5263,9 +5263,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - /** - *### G98 - Activate farm mode G98: Activate farm mode - */ ----------------------------------- + /*! + ### G98 - Activate farm mode G98: Activate farm mode + */ ----------------------------------- case 98: farm_mode = 1; PingTime = _millis(); @@ -5276,8 +5276,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) fCheckModeInit(); // alternatively invoke printer reset break; - //! ### G99 - Deactivate farm mode G99: Deactivate farm mode - // ------------------------------------- + /*! ### G99 - Deactivate farm mode G99: Deactivate farm mode + */ ------------------------------------- case 99: farm_mode = 0; lcd_printer_connected(); @@ -5293,10 +5293,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } // end if(code_seen('G')) - /** - *--------------------------------------------------------------------------------- - * # M Commands - * + /*! + --------------------------------------------------------------------------------- + # M Commands + */ else if(code_seen('M')) @@ -5317,8 +5317,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) switch(mcode_in_progress) { - //! ### M0, M1 - Stop the printer G32: Undock Z Probe sled - // --------------------------------------------------------------- + /*! + ### M0, M1 - Stop the printer G32: Undock Z Probe sled + */ --------------------------------------------------------------- case 0: // M0 - Unconditional stop - Wait for user button press on LCD case 1: // M1 - Conditional stop - Wait for user button press on LCD { From ce8dbb5013c1971b377398b17ebe84dc8d2510d3 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 30 Oct 2019 18:52:25 +0100 Subject: [PATCH 126/271] M commands documentation #1 --- Firmware/Marlin_main.cpp | 191 ++++++++++++++++++++++++--------------- 1 file changed, 119 insertions(+), 72 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 8723d8b06..eddf70bfc 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5318,7 +5318,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) { /*! - ### M0, M1 - Stop the printer G32: Undock Z Probe sled + ### M0, M1 - Stop the printer M0: Stop or Unconditional stop */ --------------------------------------------------------------- case 0: // M0 - Unconditional stop - Wait for user button press on LCD case 1: // M1 - Conditional stop - Wait for user button press on LCD @@ -5368,7 +5368,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### M17 - Enable axes G32: Undock Z Probe sled + //! ### M17 - Enable axes M17: Enable/Power all stepper motors // --------------------------------- case 17: LCD_MESSAGERPGM(_i("No move."));////MSG_NO_MOVE @@ -5382,28 +5382,32 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef SDSUPPORT - //! ### M20 - SD Card file list G32: Undock Z Probe sled - // ----------------------------------- + /*! + ### M20 - SD Card file list M20: List SD card + */ ----------------------------------- case 20: SERIAL_PROTOCOLLNRPGM(_N("Begin file list"));////MSG_BEGIN_FILE_LIST card.ls(); SERIAL_PROTOCOLLNRPGM(_N("End file list"));////MSG_END_FILE_LIST break; - //! ### M21 - Init SD card G32: Undock Z Probe sled - // ------------------------------------ + /*! + ### M21 - Init SD card M21: Initialize SD card + */ ------------------------------------ case 21: card.initsd(); break; - //! ### M22 - Release SD card G32: Undock Z Probe sled - // ----------------------------------- + /*! + ### M22 - Release SD card M22: Release SD card + */ ----------------------------------- case 22: card.release(); break; - //! ### M23 - Select file G32: Undock Z Probe sled - // ----------------------------------- + /*! + ### M23 - Select file M23: Select SD file + */ ----------------------------------- case 23: starpos = (strchr(strchr_pointer + 4,'*')); if(starpos!=NULL) @@ -5411,8 +5415,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) card.openFile(strchr_pointer + 4,true); break; - //! ### M24 - Start SD print G32: Undock Z Probe sled - // ---------------------------------- + /*! + ### M24 - Start SD print M24: Start/resume SD print + */ ---------------------------------- case 24: if (!card.paused) failstats_reset_print(); @@ -5420,17 +5425,19 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) starttime=_millis(); break; - //! ### M25 - Pause SD print G32: Undock Z Probe sled - // ---------------------------------- + /*! + ### M25 - Pause SD print M25: Pause SD print + */ ---------------------------------- case 25: card.pauseSDPrint(); break; - //! ### M26 S\ - Set SD index G32: Undock Z Probe sled - //! Set position in SD card file to index in bytes. - //! This command is expected to be called after M23 and before M24. - //! Otherwise effect of this command is undefined. - // ---------------------------------- + /*! + ### M26 S\ - Set SD index M26: Set SD position + Set position in SD card file to index in bytes. + This command is expected to be called after M23 and before M24. + Otherwise effect of this command is undefined. + */ ---------------------------------- case 26: if(card.cardOK && code_seen('S')) { long index = code_value_long(); @@ -5441,14 +5448,16 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### M27 - Get SD status G32: Undock Z Probe sled - // ---------------------------------- + /*! + ### M27 - Get SD status M27: Report SD print status + */ ---------------------------------- case 27: card.getStatus(); break; - //! ### M28 - Start SD write G32: Undock Z Probe sled - // --------------------------------- + /*! + ### M28 - Start SD write M28: Begin write to SD card + */ --------------------------------- case 28: starpos = (strchr(strchr_pointer + 4,'*')); if(starpos != NULL){ @@ -5459,16 +5468,17 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) card.openFile(strchr_pointer+4,false); break; - //! ### M29 - Stop SD write G32: Undock Z Probe sled - // ------------------------------------- - //! Currently has no effect. + /*! ### M29 - Stop SD write M29: Stop writing to SD card + Currently has no effect. + */ ------------------------------------- case 29: //processed in write to file routine above //card,saving = false; break; - //! ### M30 - Delete file G32: Undock Z Probe sled - // ---------------------------------- + /*! + ### M30 - Delete file M30: Delete a file on the SD card + */ ---------------------------------- case 30: if (card.cardOK){ card.closefile(); @@ -5482,8 +5492,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### M32 - Select file and start SD print G32: Undock Z Probe sled - // ------------------------------------ + /*! + ### M32 - Select file and start SD print M32: Select file and start SD print + @todo What are the parameters P and S for in M32? + */ ------------------------------------ case 32: { if(card.sdprinting) { @@ -5520,8 +5532,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } } break; - //! ### M982 - Start SD write G32: Undock Z Probe sled - // --------------------------------- + /*! ### M982 - Start SD logging M928: Start SD logging + */ --------------------------------- case 928: starpos = (strchr(strchr_pointer + 5,'*')); if(starpos != NULL){ @@ -5534,8 +5546,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #endif //SDSUPPORT - //! ### M31 - Report current print time G32: Undock Z Probe sled - // -------------------------------------------------- + /*! + ### M31 - Report current print time M31: Output time since last M109 or SD card start to serial + */ -------------------------------------------------- case 31: //M31 take time since the start of the SD print or an M109 command { stoptime=_millis(); @@ -5552,8 +5565,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### M42 - Set pin state G32: Undock Z Probe sled - // ----------------------------- + /*! + ### M42 - Set pin state M42: Switch I/O pin + */ ----------------------------- case 42: if (code_seen('S')) { @@ -5583,8 +5597,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; - //! ### M44 - Reset the bed skew and offset calibration (Prusa specific) G32: Undock Z Probe sled - // -------------------------------------------------------------------- + /*! + ### M44 - Reset the bed skew and offset calibration (Prusa specific) M44: Reset the bed skew and offset calibration + */ -------------------------------------------------------------------- case 44: // M44: Prusa3D: Reset the bed skew and offset calibration. // Reset the baby step value and the baby step applied flag. @@ -5599,8 +5614,12 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) world2machine_revert_to_uncorrected(); break; - //! ### M45 - Bed skew and offset with manual Z up (Prusa specific) G32: Undock Z Probe sled - // ------------------------------------------------------ + /*! + ### M45 - Bed skew and offset with manual Z up (Prusa specific) M45: Bed skew and offset with manual Z up + + G80 [ V ] + - V Verbosity level 1, 10 and 20 (low, mid, high). Only when SUPPORT_VERBOSITY is defined. + */ ------------------------------------------------------ case 45: // M45: Prusa3D: bed skew and offset with manual Z up { int8_t verbosity_level = 0; @@ -5640,8 +5659,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } */ - //! ### M47 - Show end stops dialog on the display (Prusa specific) G32: Undock Z Probe sled - // ---------------------------------------------------- + /*! + ### M47 - Show end stops dialog on the displayM47: Show end stops dialog on the display + */ ---------------------------------------------------- case 47: KEEPALIVE_STATE(PAUSED_FOR_USER); @@ -5689,22 +5709,22 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef ENABLE_AUTO_BED_LEVELING #ifdef Z_PROBE_REPEATABILITY_TEST - //! ### M48 - Z-Probe repeatability measurement function. G32: Undock Z Probe sled - // ------------------------------------------------------ - //! - //! _Usage:_ - //! - //! M48 - //! - //! This function assumes the bed has been homed. Specifically, that a G28 command - //! as been issued prior to invoking the M48 Z-Probe repeatability measurement function. - //! Any information generated by a prior G29 Bed leveling command will be lost and need to be - //! regenerated. - //! - //! The number of samples will default to 10 if not specified. You can use upper or lower case - //! letters for any of the options EXCEPT n. n must be in lower case because Marlin uses a capital - //! N for its communication protocol and will get horribly confused if you send it a capital N. - //! + /*! + ### M48 - Z-Probe repeatability measurement function. M48: Measure Z-Probe repeatability + + This function assumes the bed has been homed. Specifically, that a G28 command as been issued prior to invoking the M48 Z-Probe repeatability measurement function. Any information generated by a prior G29 Bed leveling command will be lost and need to be regenerated. + + The number of samples will default to 10 if not specified. You can use upper or lower case letters for any of the options EXCEPT n. n must be in lower case because Marlin uses a capital N for its communication protocol and will get horribly confused if you send it a capital N. + + M48 [ n | X | Y | V | L ] + - n - Number of samples. Valid values 4-50 + - X - X position for samples + - Y - Y position for samples + - V - Verbose level. Valid values 1-4 + - L - Legs of movementprior to doing probe. Valid values 1-15 + + + */ case 48: // M48 Z-Probe repeatability { #if Z_MIN_PIN == -1 @@ -5943,12 +5963,17 @@ Sigma_Exit: #endif // Z_PROBE_REPEATABILITY_TEST #endif // ENABLE_AUTO_BED_LEVELING - //! ### M73 - Set/get print progress G32: Undock Z Probe sled - // ------------------------------------- - //! _Usage:_ - //! - //! M73 P R Q S - //! + /*! + ### M73 - Set/get print progress M73: Set/Get build percentage + Prusa firmware just shows percent done and time remaining. + + M73 [ P | R | Q | S ] + + - P - Percent in normal mode + - R - Time remaining in normal mode + - Q - Percent in silent mode + - S - Time in silent mode + */ case 73: //M73 show percent done and time remaining if(code_seen('P')) print_percent_done_normal = code_value(); if(code_seen('R')) print_time_remaining_normal = code_value(); @@ -5962,8 +5987,13 @@ Sigma_Exit: } break; - //! ### M104 - Set hotend temperature G32: Undock Z Probe sled - // ----------------------------------------- + /*! + ### M104 - Set hotend temperature M104: Set Extruder Temperature + + M104 [ S ] + + - S - Target temperature + */ ----------------------------------------- case 104: // M104 { uint8_t extruder; @@ -5977,20 +6007,37 @@ Sigma_Exit: break; } - //! ### M112 - Emergency stop G32: Undock Z Probe sled - // ----------------------------------------- + /*! + ### M112 - Emergency stop M112: Full (Emergency) Stop + */ ----------------------------------------- case 112: kill(_n(""), 3); break; - //! ### M140 - Set bed temperature G32: Undock Z Probe sled - // ----------------------------------------- + /*! + ### M140 - Set bed temperature M140: Set Bed Temperature (Fast) + */ ----------------------------------------- case 140: if (code_seen('S')) setTargetBed(code_value()); break; - //! ### M105 - Report temperatures G32: Undock Z Probe sled - // ----------------------------------------- + /*! + ### M105 - Report temperatures M105: Get Extruder Temperature + Prints temperatures: + + - T: - Hotend (actual / target) + - B: - Bed (actual / target) + - Tx: - x Tool (actual / target) + - @: - Hotend power + - B@: - Bed power + - P: - PINDAv2 actual (only MK2.5/s and MK3.5/s) + - A: - Ambient actual (only MK3/s) + + _Example:_ + + ok T:20.2 /0.0 B:19.1 /0.0 T0:20.2 /0.0 @:0 B@:0 P:19.8 A:26.4 + + */ ----------------------------------------- case 105: { uint8_t extruder; From 1e09f8c003a2623bd632dc4026bd7e9759598119 Mon Sep 17 00:00:00 2001 From: leptun Date: Wed, 30 Oct 2019 21:11:19 +0200 Subject: [PATCH 127/271] Wake on certain events EEPROM DIM and BRIGHT values swapped!!! --- Firmware/backlight.cpp | 24 ++++++++++++++++++++++-- Firmware/backlight.h | 5 +++-- Firmware/sound.cpp | 7 +++++++ Firmware/ultralcd.cpp | 1 + 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/Firmware/backlight.cpp b/Firmware/backlight.cpp index 054c510fb..c57995cc0 100644 --- a/Firmware/backlight.cpp +++ b/Firmware/backlight.cpp @@ -11,6 +11,8 @@ #ifdef LCD_BL_PIN +#define BL_FLASH_DELAY_MS 25 + bool backlightSupport = 0; //only if it's true will any of the settings be visible to the user int16_t backlightLevel_HIGH = 0; int16_t backlightLevel_LOW = 0; @@ -33,6 +35,24 @@ void force_bl_on(bool section_start) backlight_update(); } +void backlight_wake(const uint8_t flashNo) +{ + if (!backlightSupport) return; + + if (flashNo) + { + uint8_t backlightMode_bck = backlightMode; + for (uint8_t i = 0; i < (((backlightMode_bck == BACKLIGHT_MODE_AUTO) && !backlightTimer.running()) + (flashNo * 2)); i++) + { + backlightMode = !backlightMode; //toggles between BACKLIGHT_MODE_BRIGHT and BACKLIGHT_MODE_DIM + backlight_update(); + _delay(BL_FLASH_DELAY_MS); + } + backlightMode = backlightMode_bck; + } + backlightTimer_reset(); +} + void backlight_save() //saves all backlight data to eeprom. { eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_HIGH, (uint8_t)backlightLevel_HIGH); @@ -41,10 +61,11 @@ void backlight_save() //saves all backlight data to eeprom. eeprom_update_word((uint16_t *)EEPROM_BACKLIGHT_TIMEOUT, backlightTimer_period); } -void backlightTimer_reset() //used for resetting the timer and waking the display. Triggered on events such as knob click, rotate and on full screen notifications. +void backlightTimer_reset() //used for resetting the timer and waking the display. Triggered on user interactions. { if (!backlightSupport) return; backlightTimer.start(); + backlight_update(); } void backlight_update() @@ -86,7 +107,6 @@ void backlight_init() SET_OUTPUT(LCD_BL_PIN); backlightTimer_reset(); - backlight_update(); //sets brightness } #endif //LCD_BL_PIN \ No newline at end of file diff --git a/Firmware/backlight.h b/Firmware/backlight.h index ef005adf3..fce908a39 100644 --- a/Firmware/backlight.h +++ b/Firmware/backlight.h @@ -8,8 +8,8 @@ enum Backlight_Mode { - BACKLIGHT_MODE_BRIGHT = 0, - BACKLIGHT_MODE_DIM = 1, + BACKLIGHT_MODE_DIM = 0, + BACKLIGHT_MODE_BRIGHT = 1, BACKLIGHT_MODE_AUTO = 2, }; @@ -27,6 +27,7 @@ extern void backlight_update(); extern void backlight_init(); extern void backlightTimer_reset(); extern void backlight_save(); +extern void backlight_wake(const uint8_t flashNo = 0); #endif //_BACKLIGHT_H diff --git a/Firmware/sound.cpp b/Firmware/sound.cpp index 52d880a04..39d513deb 100644 --- a/Firmware/sound.cpp +++ b/Firmware/sound.cpp @@ -5,6 +5,7 @@ //#include //#include //#include "eeprom.h" +#include "backlight.h" //eSOUND_MODE eSoundMode=e_SOUND_MODE_LOUD; @@ -63,6 +64,7 @@ Sound_SaveMode(); //if critical is true then silend and once mode is ignored void Sound_MakeCustom(uint16_t ms,uint16_t tone_,bool critical){ + backlight_wake(1); if (!critical){ if (eSoundMode != e_SOUND_MODE_SILENT){ if(!tone_){ @@ -135,6 +137,7 @@ switch(eSoundMode) static void Sound_DoSound_Blind_Alert(void) { + backlight_wake(1); uint8_t nI; for(nI=0; nI<20; nI++) @@ -148,6 +151,7 @@ static void Sound_DoSound_Blind_Alert(void) static void Sound_DoSound_Encoder_Move(void) { + backlight_wake(); uint8_t nI; for(nI=0;nI<5;nI++) @@ -161,6 +165,7 @@ uint8_t nI; static void Sound_DoSound_Echo(void) { + backlight_wake(); uint8_t nI; for(nI=0;nI<10;nI++) @@ -174,6 +179,7 @@ for(nI=0;nI<10;nI++) static void Sound_DoSound_Prompt(void) { + backlight_wake(2); WRITE(BEEPER,HIGH); _delay_ms(500); WRITE(BEEPER,LOW); @@ -181,6 +187,7 @@ WRITE(BEEPER,LOW); static void Sound_DoSound_Alert(bool bOnce) { + backlight_wake(); uint8_t nI,nMax; nMax=bOnce?1:3; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index f89cac58d..0cf8667f8 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -8868,6 +8868,7 @@ void menu_lcd_lcdupdate_func(void) lcd_draw_update = 2; lcd_oldcardstatus = IS_SD_INSERTED; lcd_refresh(); // to maybe revive the LCD if static electricity killed it. + backlight_wake(); if (lcd_oldcardstatus) { card.initsd(); From c899320590b5b9e41181026076697747ad898a5a Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 31 Oct 2019 15:08:07 +0100 Subject: [PATCH 128/271] Fix M81 Turn off Power Supply... ... as it should be active if PS_ON_PIN is defined and assinged to an actual pin. --- Firmware/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a2cbece56..1cd6d997d 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -6165,7 +6165,6 @@ Sigma_Exit: LCD_MESSAGERPGM(_T(WELCOME_MSG)); lcd_update(0); break; - #endif //! ### M81 - Turn off Power Supply // -------------------------------------- @@ -6189,6 +6188,7 @@ Sigma_Exit: LCD_MESSAGERPGM(CAT4(CUSTOM_MENDEL_NAME,PSTR(" "),MSG_OFF,PSTR("."))); lcd_update(0); break; + #endif //! ### M82 - Set E axis to absolute mode // --------------------------------------- From 4501f9d7600a1eb60274f667095f7108425bc759 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 31 Oct 2019 15:46:23 +0100 Subject: [PATCH 129/271] M commands documentation #2 --- Firmware/Marlin_main.cpp | 277 +++++++++++++++++++++++++-------------- 1 file changed, 178 insertions(+), 99 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index eddf70bfc..f2873ade9 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5618,7 +5618,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) ### M45 - Bed skew and offset with manual Z up (Prusa specific) M45: Bed skew and offset with manual Z up G80 [ V ] - - V Verbosity level 1, 10 and 20 (low, mid, high). Only when SUPPORT_VERBOSITY is defined. + - `V` - Verbosity level 1, 10 and 20 (low, mid, high). Only when SUPPORT_VERBOSITY is defined. */ ------------------------------------------------------ case 45: // M45: Prusa3D: bed skew and offset with manual Z up { @@ -5717,11 +5717,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) The number of samples will default to 10 if not specified. You can use upper or lower case letters for any of the options EXCEPT n. n must be in lower case because Marlin uses a capital N for its communication protocol and will get horribly confused if you send it a capital N. M48 [ n | X | Y | V | L ] - - n - Number of samples. Valid values 4-50 - - X - X position for samples - - Y - Y position for samples - - V - Verbose level. Valid values 1-4 - - L - Legs of movementprior to doing probe. Valid values 1-15 + - `n` - Number of samples. Valid values 4-50 + - `X` - X position for samples + - `Y` - Y position for samples + - `V` - Verbose level. Valid values 1-4 + - `L` - Legs of movementprior to doing probe. Valid values 1-15 */ @@ -5969,10 +5969,10 @@ Sigma_Exit: M73 [ P | R | Q | S ] - - P - Percent in normal mode - - R - Time remaining in normal mode - - Q - Percent in silent mode - - S - Time in silent mode + - `P` - Percent in normal mode + - `R` - Time remaining in normal mode + - `Q` - Percent in silent mode + - `S` - Time in silent mode */ case 73: //M73 show percent done and time remaining if(code_seen('P')) print_percent_done_normal = code_value(); @@ -5992,7 +5992,7 @@ Sigma_Exit: M104 [ S ] - - S - Target temperature + - `S` - Target temperature */ ----------------------------------------- case 104: // M104 { @@ -6025,13 +6025,13 @@ Sigma_Exit: ### M105 - Report temperatures M105: Get Extruder Temperature Prints temperatures: - - T: - Hotend (actual / target) - - B: - Bed (actual / target) - - Tx: - x Tool (actual / target) - - @: - Hotend power - - B@: - Bed power - - P: - PINDAv2 actual (only MK2.5/s and MK3.5/s) - - A: - Ambient actual (only MK3/s) + - `T:` - Hotend (actual / target) + - `B:` - Bed (actual / target) + - `Tx:` - x Tool (actual / target) + - `@:` - Hotend power + - `B@:` - Bed power + - `P:` - PINDAv2 actual (only MK2.5/s and MK3.5/s) + - `A:` - Ambient actual (only MK3/s) _Example:_ @@ -6133,16 +6133,19 @@ Sigma_Exit: break; } - //! ### M109 - Wait for extruder temperature G32: Undock Z Probe sled - //! Parameters (not mandatory): - //! * S \ set extruder temperature - //! * R \ set extruder temperature - //! - //! Parameters S and R are treated identically. - //! Command always waits for both cool down and heat up. - //! If no parameters are supplied waits for previously - //! set extruder temperature. - // ------------------------------------------------- + /*! + ### M109 - Wait for extruder temperature M109: Set Extruder Temperature and Wait + Parameters (not mandatory): + + - `S` - Set extruder temperature + - `R` - Set extruder temperature + - `B` - Set max. extruder temperature, while `S` is min. temperature. Not active in default, only if AUTOTEMP is defined in source code. + + Parameters S and R are treated identically. + Command always waits for both cool down and heat up. + If no parameters are supplied waits for previously + set extruder temperature. + */ ------------------------------------------------- case 109: { uint8_t extruder; @@ -6192,12 +6195,15 @@ Sigma_Exit: } break; - //! ### M190 - Wait for bed temperature G32: Undock Z Probe sled - //! Parameters (not mandatory): - //! * S \ set extruder temperature and wait for heating - //! * R \ set extruder temperature and wait for heating or cooling - //! - //! If no parameter is supplied, waits for heating or cooling to previously set temperature. + /*! + ### M190 - Wait for bed temperature M190: Wait for bed temperature to reach target temp + Parameters (not mandatory): + + - `S` - Set extruder temperature and wait for heating + - `R` - Set extruder temperature and wait for heating or cooling + + If no parameter is supplied, waits for heating or cooling to previously set temperature. + */ case 190: #if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1 { @@ -6252,8 +6258,9 @@ Sigma_Exit: #if defined(FAN_PIN) && FAN_PIN > -1 - //! ### M106 - Set fan speed G32: Undock Z Probe sled - // ------------------------------------------- + /*! + ### M106 - Set fan speed M106: Fan On + */ ------------------------------------------- case 106: // M106 Sxxx Fan On S 0 .. 255 if (code_seen('S')){ fanSpeed=constrain(code_value(),0,255); @@ -6263,8 +6270,9 @@ Sigma_Exit: } break; - //! ### M107 - Fan off - // ------------------------------- + /*! + ### M107 - Fan off M107: Fan Off + */ ------------------------------- case 107: fanSpeed = 0; break; @@ -6272,8 +6280,9 @@ Sigma_Exit: #if defined(PS_ON_PIN) && PS_ON_PIN > -1 - //! ### M80 - Turn on the Power Supply G32: Undock Z Probe sled - // ------------------------------- + /*! + ### M80 - Turn on the Power Supply M80: ATX Power On + */ ------------------------------- case 80: SET_OUTPUT(PS_ON_PIN); //GND WRITE(PS_ON_PIN, PS_ON_AWAKE); @@ -6292,8 +6301,9 @@ Sigma_Exit: break; #endif - //! ### M81 - Turn off Power Supply G32: Undock Z Probe sled - // -------------------------------------- + /*! + ### M81 - Turn off Power Supply M81: ATX Power Off + */ -------------------------------------- case 81: disable_heater(); st_synchronize(); @@ -6315,24 +6325,40 @@ Sigma_Exit: lcd_update(0); break; - //! ### M82 - Set E axis to absolute mode G32: Undock Z Probe sled - // --------------------------------------- + /*! + ### M82 - Set E axis to absolute mode M82: Set extruder to absolute mode + Makes the extruder interpret extrusion as absolute positions. + */ --------------------------------------- case 82: axis_relative_modes[3] = false; break; - //! ### M83 - Set E axis to relative mode G32: Undock Z Probe sled - // --------------------------------------- + /*! + ### M83 - Set E axis to relative mode M83: Set extruder to relative mode + Makes the extruder interpret extrusion values as relative positions. + */ --------------------------------------- case 83: axis_relative_modes[3] = true; break; - //! ### M84, M18 - Disable steppers G32: Undock Z Probe sled - //--------------------------------------- - //! This command can be used to set the stepper inactivity timeout (`S`) or to disable steppers (`X`,`Y`,`Z`,`E`) - //! - //! M84 [E] [S] [X] [Y] [Z] - //! + /*! + ### M84 - Disable steppers M84: Stop idle hold + + This command can be used to set the stepper inactivity timeout (`S`) or to disable steppers (`X`,`Y`,`Z`,`E`) + + _This command can be used without any additional parameters._ + + M84 [ S | X | Y | Z | E ] + + - `S` - Seconds + - `X` - X axsis + - `Y` - Y axis + - `Z` - Z axis + - `E` - Exruder drive(s) + + ### M18 - Disable steppers M18: Disable all stepper motors + Equal to M84 (compatibility) + */ case 18: //compatibility case 84: // M84 if(code_seen('S')){ @@ -6369,8 +6395,10 @@ Sigma_Exit: snmm_filaments_used = 0; break; - //! ### M85 - Set max inactive time G32: Undock Z Probe sled - // --------------------------------------- + /*! + ### M85 - Set max inactive time M85: Set Inactivity Shutdown Timer + Set Inactivity Shutdown Timer with parameter S. "M85 S0" will disable the inactivity shutdown time (default) + */ --------------------------------------- case 85: // M85 if(code_seen('S')) { max_inactive_time = code_value() * 1000; @@ -6378,13 +6406,17 @@ Sigma_Exit: break; #ifdef SAFETYTIMER - //! ### M86 - Set safety timer expiration time G32: Undock Z Probe sled - //! - //! _Usage:_ - //! M86 S - //! - //! Sets the safety timer expiration time in seconds. M86 S0 will disable safety timer. - //! When safety timer expires, heatbed and nozzle target temperatures are set to zero. + /*! + ### M86 - Set safety timer expiration time M86: Set Safety Timer expiration time + Sets the safety timer expiration time in seconds. + + When safety timer expires, heatbed and nozzle target temperatures are set to zero. + + M86 [ S ] + + - `S` - Seconds Setting it to 0 will disable safety timer. + + */ case 86: if (code_seen('S')) { safetytimer_inactive_time = code_value() * 1000; @@ -6393,9 +6425,17 @@ Sigma_Exit: break; #endif - //! ### M92 Set Axis steps-per-unit G32: Undock Z Probe sled - // --------------------------------------- - //! Same syntax as G92 + /*! + ### M92 Set Axis steps-per-unit M92: Set axis_steps_per_unit + Allows programming of steps per unit (usually mm) for motor drives. These values are reset to firmware defaults on power on, unless saved to EEPROM if available (M500 in Marlin) + + M92 [ X | Y | Z | E ] + + - `X` - Steps per unit for the X drive + - `Y` - Steps per unit for the Y drive + - `Z` - Steps per unit for the Z drive + - `E` - Steps per unit for the extruder drive(s) + */ --------------------------------------- case 92: for(int8_t i=0; i < NUM_AXIS; i++) { @@ -6418,15 +6458,27 @@ Sigma_Exit: } break; - //! ### M110 - Set Line number G32: Undock Z Probe sled - // --------------------------------------- + /*! + ### M110 - Set Line number M110: Set Current Line Number + Sets the line number in G-code + + M110 [ N ] + + - `N` - Line number + */ --------------------------------------- case 110: if (code_seen('N')) gcode_LastN = code_value_long(); break; - //! ### M113 - Get or set host keep-alive interval G32: Undock Z Probe sled - // ------------------------------------------ + /*! + ### M113 - Get or set host keep-alive interval M113: Host Keepalive + During some lengthy processes, such as G29, Marlin may appear to the host to have “gone away.†The “host keepalive†feature will send messages to the host when Marlin is busy or waiting for user response so the host won’t try to reconnect. + + M113 [ S ] + + - `S` - Seconds Default is 2 seconds between "busy" messages + */ ------------------------------------------ case 113: if (code_seen('S')) { host_keepalive_interval = (uint8_t)code_value_short(); @@ -6439,16 +6491,34 @@ Sigma_Exit: } break; - //! ### M115 - Firmware info G32: Undock Z Probe sled - // -------------------------------------- - //! Print the firmware info and capabilities - //! - //! M115 [V] [U] - //! - //! Without any arguments, prints Prusa firmware version number, machine type, extruder count and UUID. - //! `M115 U` Checks the firmware version provided. If the firmware version provided by the U code is higher than the currently running firmware, - //! pause the print for 30s and ask the user to upgrade the firmware. - case 115: // M115 + /*! + ### M115 - Firmware info M115: Get Firmware Version and Capabilities + Print the firmware info and capabilities + + M115 [ V | U ] + + - V - Report current installed firmware version + - U - Firmware version provided by G-code to be compared to current one. + + + Without any arguments, prints Prusa firmware version number, machine type, extruder count and UUID. + `M115 U` Checks the firmware version provided. If the firmware version provided by the U code is higher than the currently running firmware, it will pause the print for 30s and ask the user to upgrade the firmware. + + _Examples:_ + + `M115` results: + + `FIRMWARE_NAME:Prusa-Firmware 3.8.1 based on Marlin FIRMWARE_URL:https://github.com/prusa3d/Prusa-Firmware PROTOCOL_VERSION:1.0 MACHINE_TYPE:Prusa i3 MK3S EXTRUDER_COUNT:1 UUID:00000000-0000-0000-0000-000000000000` + + `M115 V` results: + + `3.8.1` + + `M115 U3.8.2-RC1` results on LCD display for 30s or user interaction: + + `New firmware version available: 3.8.2-RC1 Please upgrade.` + */ + case 115: // M115 if (code_seen('V')) { // Report the Prusa version number. SERIAL_PROTOCOLLNRPGM(FW_VERSION_STR_P()); @@ -6470,16 +6540,13 @@ Sigma_Exit: } break; - //! ### M114 - Get current position G32: Undock Z Probe sled - // ------------------------------------- + /*! + ### M114 - Get current position M114: Get Current Position + */ ------------------------------------- case 114: gcode_M114(); break; - - - //! ### M117 - Set LCD Message G32: Undock Z Probe sled - // -------------------------------------- /* M117 moved up to get the high priority @@ -6491,20 +6558,24 @@ Sigma_Exit: lcd_setstatus(strchr_pointer + 5); break;*/ - //! ### M120 - Disable endstops G32: Undock Z Probe sled - // ---------------------------------------- + /*! + ### M120 - Enable endstops G32: Undock Z Probe sled - // ---------------------------------------- + /*! + ### M121 - Disable endstops M121: Disable endstop detection + */ ---------------------------------------- case 121: enable_endstops(true) ; break; - //! ### M119 - Get endstop states G32: Undock Z Probe sled - // ---------------------------------------- + /*! + ### M119 - Get endstop states M119: Get Endstop Status + Returns the current state of the configured X, Y, Z endstops. Takes into account any 'inverted endstop' settings, so one can confirm that the machine is interpreting the endstops correctly. + */ ---------------------------------------- case 119: SERIAL_PROTOCOLRPGM(_N("Reporting endstop status"));////MSG_M119_REPORT SERIAL_PROTOCOLLN(""); @@ -6565,10 +6636,12 @@ Sigma_Exit: break; //TODO: update for all axis, use for loop - #ifdef BLINKM - //! ### M150 - Set RGB(W) Color G32: Undock Z Probe sled - // ------------------------------------------- + #ifdef BLINKM + /*! + ### M150 - Set RGB(W) Color M150: Set LED color + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code by defining BLINKM and its dependencies. + */ ------------------------------------------- case 150: { byte red; @@ -6584,8 +6657,14 @@ Sigma_Exit: break; #endif //BLINKM - //! ### M200 - Set filament diameter G32: Undock Z Probe sled - // ---------------------------------------- + /*! + ### M200 - Set filament diameter M200: Set filament diameter + + M200 [ D | T ] + + - `D` - Diameter in mm + - `T` - Number of extruder (MMUs) + */ ---------------------------------------- case 200: // M200 D set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters). { @@ -6610,10 +6689,10 @@ Sigma_Exit: // make sure all extruders have some sane value for the filament size cs.filament_size[0] = (cs.filament_size[0] == 0.0 ? DEFAULT_NOMINAL_FILAMENT_DIA : cs.filament_size[0]); #if EXTRUDERS > 1 - cs.filament_size[1] = (cs.filament_size[1] == 0.0 ? DEFAULT_NOMINAL_FILAMENT_DIA : cs.filament_size[1]); - #if EXTRUDERS > 2 - cs.filament_size[2] = (cs.filament_size[2] == 0.0 ? DEFAULT_NOMINAL_FILAMENT_DIA : cs.filament_size[2]); - #endif + cs.filament_size[1] = (cs.filament_size[1] == 0.0 ? DEFAULT_NOMINAL_FILAMENT_DIA : cs.filament_size[1]); + #if EXTRUDERS > 2 + cs.filament_size[2] = (cs.filament_size[2] == 0.0 ? DEFAULT_NOMINAL_FILAMENT_DIA : cs.filament_size[2]); + #endif #endif cs.volumetric_enabled = true; } From 76c39ce68929037c40fcdd7fe60f4abd07666f20 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Thu, 31 Oct 2019 17:45:22 +0100 Subject: [PATCH 130/271] Show FINDA state as N/A if last received response is older than 1s. --- Firmware/mmu.cpp | 3 +++ Firmware/mmu.h | 1 + Firmware/ultralcd.cpp | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index d8ae497ba..edc9a30fc 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -70,6 +70,7 @@ uint8_t mmu_extruder = MMU_FILAMENT_UNKNOWN; uint8_t tmp_extruder = MMU_FILAMENT_UNKNOWN; int8_t mmu_finda = -1; +uint32_t mmu_last_finda_response = 0; int16_t mmu_version = -1; @@ -264,6 +265,7 @@ void mmu_loop(void) if (mmu_rx_ok() > 0) { fscanf_P(uart2io, PSTR("%hhu"), &mmu_finda); //scan finda from buffer + mmu_last_finda_response = _millis(); FDEBUG_PRINTF_P(PSTR("MMU => '%dok'\n"), mmu_finda); puts_P(PSTR("MMU - ENABLED")); mmu_enabled = true; @@ -376,6 +378,7 @@ void mmu_loop(void) if (mmu_rx_ok() > 0) { fscanf_P(uart2io, PSTR("%hhu"), &mmu_finda); //scan finda from buffer + mmu_last_finda_response = _millis(); FDEBUG_PRINTF_P(PSTR("MMU => '%dok'\n"), mmu_finda); //printf_P(PSTR("Eact: %d\n"), int(e_active())); if (!mmu_finda && CHECK_FSENSOR && fsensor_enabled) { diff --git a/Firmware/mmu.h b/Firmware/mmu.h index ad508c2ad..30b8e1af9 100644 --- a/Firmware/mmu.h +++ b/Firmware/mmu.h @@ -14,6 +14,7 @@ extern uint8_t mmu_extruder; extern uint8_t tmp_extruder; extern int8_t mmu_finda; +extern uint32_t mmu_last_finda_response; extern bool ir_sensor_detected; extern int16_t mmu_version; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index d08f536c1..2bfe2b5c4 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -4016,7 +4016,8 @@ static void lcd_show_sensors_state() uint8_t idler_state = STATE_NA; pinda_state = READ(Z_MIN_PIN); - if (mmu_enabled) { + if (mmu_enabled && ((_millis() - mmu_last_finda_response) < 1000ul) ) + { finda_state = mmu_finda; } if (ir_sensor_detected) { From cd5ff783cfef9f74665c70c2da02d7427985d670 Mon Sep 17 00:00:00 2001 From: leptun Date: Thu, 31 Oct 2019 19:07:20 +0200 Subject: [PATCH 131/271] General fixes and improvements to code --- Firmware/Marlin_main.cpp | 14 +++++------ Firmware/backlight.cpp | 22 ++++++++++------ Firmware/backlight.h | 1 - Firmware/sound.cpp | 2 +- Firmware/ultralcd.cpp | 54 +++++++++++++++------------------------- 5 files changed, 43 insertions(+), 50 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index ac3d7d8bd..ea6c9aa2f 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2769,10 +2769,10 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level) #ifdef TMC2130 FORCE_HIGH_POWER_START; #endif // TMC2130 - #ifdef LCD_BL_PIN - FORCE_BL_ON_START; - #endif // LCD_BL_PIN - // Only Z calibration? + + FORCE_BL_ON_START; + + // Only Z calibration? if (!onlyZ) { setTargetBed(0); @@ -2960,9 +2960,9 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level) #ifdef TMC2130 FORCE_HIGH_POWER_END; #endif // TMC2130 - #ifdef LCD_BL_PIN - FORCE_BL_ON_END; - #endif // LCD_BL_PIN + + FORCE_BL_ON_END; + return final_result; } diff --git a/Firmware/backlight.cpp b/Firmware/backlight.cpp index c57995cc0..6500837e5 100644 --- a/Firmware/backlight.cpp +++ b/Firmware/backlight.cpp @@ -20,6 +20,13 @@ uint8_t backlightMode = BACKLIGHT_MODE_BRIGHT; int16_t backlightTimer_period = 10; LongTimer backlightTimer; +static void backlightTimer_reset() //used for resetting the timer and waking the display. Triggered on user interactions. +{ + if (!backlightSupport) return; + backlightTimer.start(); + backlight_update(); +} + void force_bl_on(bool section_start) { if (section_start) @@ -61,13 +68,6 @@ void backlight_save() //saves all backlight data to eeprom. eeprom_update_word((uint16_t *)EEPROM_BACKLIGHT_TIMEOUT, backlightTimer_period); } -void backlightTimer_reset() //used for resetting the timer and waking the display. Triggered on user interactions. -{ - if (!backlightSupport) return; - backlightTimer.start(); - backlight_update(); -} - void backlight_update() { if (!backlightSupport) return; @@ -109,4 +109,12 @@ void backlight_init() backlightTimer_reset(); } +#else //LCD_BL_PIN + +void force_bl_on(__attribute__((unused)) bool section_start) {} +void backlight_update() {} +void backlight_init() {} +void backlight_save() {} +void backlight_wake(__attribute__((unused)) const uint8_t flashNo) {} + #endif //LCD_BL_PIN \ No newline at end of file diff --git a/Firmware/backlight.h b/Firmware/backlight.h index fce908a39..d9fdd0ad1 100644 --- a/Firmware/backlight.h +++ b/Firmware/backlight.h @@ -25,7 +25,6 @@ extern int16_t backlightTimer_period; extern void force_bl_on(bool section_start); extern void backlight_update(); extern void backlight_init(); -extern void backlightTimer_reset(); extern void backlight_save(); extern void backlight_wake(const uint8_t flashNo = 0); diff --git a/Firmware/sound.cpp b/Firmware/sound.cpp index 39d513deb..bf10271e5 100644 --- a/Firmware/sound.cpp +++ b/Firmware/sound.cpp @@ -64,7 +64,7 @@ Sound_SaveMode(); //if critical is true then silend and once mode is ignored void Sound_MakeCustom(uint16_t ms,uint16_t tone_,bool critical){ - backlight_wake(1); + backlight_wake(); if (!critical){ if (eSoundMode != e_SOUND_MODE_SILENT){ if(!tone_){ diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 0cf8667f8..b9b03f684 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -19,9 +19,7 @@ #include "lcd.h" #include "menu.h" -#ifdef LCD_BL_PIN #include "backlight.h" -#endif //LCD_BL_PIN #include "util.h" #include "mesh_bed_leveling.h" @@ -5019,10 +5017,10 @@ void lcd_wizard(WizState state) // Make sure EEPROM_WIZARD_ACTIVE is true if entering using different entry point // other than WizState::Run - it is useful for debugging wizard. if (state != S::Run) eeprom_update_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1); - #ifdef LCD_BL_PIN - FORCE_BL_ON_START; - #endif // LCD_BL_PIN - while (!end) { + + FORCE_BL_ON_START; + + while (!end) { printf_P(PSTR("Wizard state: %d\n"), state); switch (state) { case S::Run: //Run wizard? @@ -5158,10 +5156,9 @@ void lcd_wizard(WizState state) default: break; } } - - #ifdef LCD_BL_PIN - FORCE_BL_ON_END; - #endif // LCD_BL_PIN + + FORCE_BL_ON_END; + printf_P(_N("Wizard end state: %d\n"), state); switch (state) { //final message case S::Restore: //printer was already calibrated @@ -7403,9 +7400,9 @@ bool lcd_selftest() #ifdef TMC2130 FORCE_HIGH_POWER_START; #endif // TMC2130 - #ifdef LCD_BL_PIN - FORCE_BL_ON_START; - #endif // LCD_BL_PIN + + FORCE_BL_ON_START; + _delay(2000); KEEPALIVE_STATE(IN_HANDLER); @@ -7625,10 +7622,10 @@ bool lcd_selftest() #ifdef TMC2130 FORCE_HIGH_POWER_END; #endif // TMC2130 - #ifdef LCD_BL_PIN - FORCE_BL_ON_END; - #endif // LCD_BL_PIN - KEEPALIVE_STATE(NOT_BUSY); + + FORCE_BL_ON_END; + + KEEPALIVE_STATE(NOT_BUSY); return(_result); } @@ -8037,10 +8034,9 @@ static bool lcd_selfcheck_check_heater(bool _isbed) static void lcd_selftest_error(TestError testError, const char *_error_1, const char *_error_2) { lcd_beeper_quick_feedback(); - #ifdef LCD_BL_PIN - FORCE_BL_ON_END; - #endif // LCD_BL_PIN - + + FORCE_BL_ON_END; + target_temperature[0] = 0; target_temperature_bed = 0; manage_heater(); @@ -8633,9 +8629,7 @@ void ultralcd_init() else lcd_autoDeplete = autoDepleteRaw; } -#ifdef LCD_BL_PIN backlight_init(); -#endif //LCD_BL_PIN lcd_init(); lcd_refresh(); lcd_longpress_func = menu_lcd_longpress_func; @@ -8784,9 +8778,7 @@ uint8_t get_message_level() void menu_lcd_longpress_func(void) { -#ifdef LCD_BL_PIN - backlightTimer_reset(); -#endif //LCD_BL_PIN + backlight_wake(); if (homing_flag || mesh_bed_leveling_flag || menu_menu == lcd_babystep_z || menu_menu == lcd_move_z) { // disable longpress during re-entry, while homing or calibration @@ -8886,9 +8878,7 @@ void menu_lcd_lcdupdate_func(void) } } #endif//CARDINSERTED -#ifdef LCD_BL_PIN backlight_update(); -#endif //LCD_BL_PIN if (lcd_next_update_millis < _millis()) { if (abs(lcd_encoder_diff) >= ENCODER_PULSES_PER_STEP) @@ -8899,17 +8889,13 @@ void menu_lcd_lcdupdate_func(void) Sound_MakeSound(e_SOUND_TYPE_EncoderMove); lcd_encoder_diff = 0; lcd_timeoutToStatus.start(); -#ifdef LCD_BL_PIN - backlightTimer_reset(); -#endif //LCD_BL_PIN + backlight_wake(); } if (LCD_CLICKED) { lcd_timeoutToStatus.start(); -#ifdef LCD_BL_PIN - backlightTimer_reset(); -#endif //LCD_BL_PIN + backlight_wake(); } (*menu_menu)(); From 459385708ebbb93206d0335451e8eb5acdca8484 Mon Sep 17 00:00:00 2001 From: leptun Date: Sat, 2 Nov 2019 13:15:13 +0200 Subject: [PATCH 132/271] Fix MMU needs user attention Statistics error --- Firmware/mmu.cpp | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index d8ae497ba..89c43645e 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -1572,18 +1572,7 @@ void mmu_continue_loading(bool blocking) break; case Ls::Unload: stop_and_save_print_to_ram(0, 0); - - //lift z - current_position[Z_AXIS] += Z_PAUSE_LIFT; - if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS; - plan_buffer_line_curposXYZE(15, active_extruder); - st_synchronize(); - - //Move XY to side - current_position[X_AXIS] = X_PAUSE_POS; - current_position[Y_AXIS] = Y_PAUSE_POS; - plan_buffer_line_curposXYZE(50, active_extruder); - st_synchronize(); + long_pause(); mmu_command(MmuCmd::U0); manage_response(false, true, MMU_UNLOAD_MOVE); From 8114bd5b1c7d90f7debf378696b1d49bc7a8ab42 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 5 Nov 2019 09:05:05 +0100 Subject: [PATCH 133/271] Merge with MK3 and few spaces --- Firmware/Marlin_main.cpp | 50 ++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index f2873ade9..11e734c2a 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3643,30 +3643,30 @@ void process_commands() ### PRUSA - Internal command set G98: Activate farm mode - Notes Set of internal PRUSA commands - - PRUSA [ Ping | PRN | FAN | fn | thx | uvlo | fsensor_recover | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ] - - - `Ping` - - `PRN` - Prints revision of the printer - - `FAN` - Prints fan details - - `fn` - Prints farm no. - - `thx` - - `uvlo` - - `fsensor_recover` - Filament sensor recover - restore print and continue - - `MMURES` - Reset MMU - - `RESET` - (Careful!) - - `fv` - ? - - `M28` - - `SN` - - `Fir` - Prints firmware version - - `Rev`- Prints filament size, elelectronics, nozzle type - - `Lang` - Reset the language - - `Lz` - - `Beat` - Kick farm link timer - - `FR` - Full factory reset - - `nozzle set ` - set nozzle diameter (farm mode only), e.g. `PRUSA nozzle set 0.4` - - `nozzle D` - check the nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle D0.4` - - `nozzle` - prints nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle` + + P RUSA [ Ping | PRN | FAN | fn | thx | uvlo | fsensor_recover | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ] + + - `Ping` + - `PRN` - Prints revision of the printer + - `FAN` - Prints fan details + - `fn` - Prints farm no. + - `thx` + - `uvlo` + - `fsensor_recover` - Filament sensor recover - restore print and continue + - `MMURES` - Reset MMU + - `RESET` - (Careful!) + - `fv` - ? + - `M28` + - `SN` + - `Fir` - Prints firmware version + - `Rev`- Prints filament size, elelectronics, nozzle type + - `Lang` - Reset the language + - `Lz` + - `Beat` - Kick farm link timer + - `FR` - Full factory reset + - `nozzle set ` - set nozzle diameter (farm mode only), e.g. `PRUSA nozzle set 0.4` + - `nozzle D` - check the nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle D0.4` + - `nozzle` - prints nozzle diameter (farm mode only), works like M862.1 P, e.g. `PRUSA nozzle` */ @@ -7934,7 +7934,7 @@ Sigma_Exit: // end if(code_seen('M')) (end of M codes) //! ----------------------------------------------------------------------------------------- - //! T Codes + //! # T Codes //! //! T - select extruder in case of multi extruder printer //! select filament in case of MMU_V2 From ca234a11edae5ad134eea5c93237bcf7aa79ced2 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 5 Nov 2019 12:40:51 +0100 Subject: [PATCH 134/271] M-Commands to M240 --- Firmware/Marlin_main.cpp | 201 +++++++++++++++++++++++++++++---------- 1 file changed, 152 insertions(+), 49 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 11e734c2a..870d724ae 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5598,7 +5598,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! - ### M44 - Reset the bed skew and offset calibration (Prusa specific) M44: Reset the bed skew and offset calibration + ### M44 - Reset the bed skew and offset calibrationM44: Reset the bed skew and offset calibration */ -------------------------------------------------------------------- case 44: // M44: Prusa3D: Reset the bed skew and offset calibration. @@ -5615,7 +5615,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; /*! - ### M45 - Bed skew and offset with manual Z up (Prusa specific) M45: Bed skew and offset with manual Z up + ### M45 - Bed skew and offset with manual Z upM45: Bed skew and offset with manual Z up G80 [ V ] - `V` - Verbosity level 1, 10 and 20 (low, mid, high). Only when SUPPORT_VERBOSITY is defined. @@ -6559,7 +6559,7 @@ Sigma_Exit: break;*/ /*! - ### M120 - Enable endstops M120: Enable endstop detection */ ---------------------------------------- case 120: enable_endstops(false) ; @@ -6704,8 +6704,9 @@ Sigma_Exit: } break; - //! ### M201 - Set Print Max Acceleration G32: Undock Z Probe sled - // ------------------------------------------- + /*! + ### M201 - Set Print Max Acceleration M201: Set max printing acceleration + */ ------------------------------------------- case 201: for (int8_t i = 0; i < NUM_AXIS; i++) { @@ -6739,8 +6740,9 @@ Sigma_Exit: break; #endif - //! ### M203 - Set Max Feedrate G32: Undock Z Probe sled - // --------------------------------------- + /*! + ### M203 - Set Max Feedrate M203: Set maximum feedrate + */ --------------------------------------- case 203: // M203 max feedrate mm/sec for (int8_t i = 0; i < NUM_AXIS; i++) { @@ -6765,15 +6767,22 @@ Sigma_Exit: } break; - //! ### M204 - Acceleration settings G32: Undock Z Probe sled - // ------------------------------------------ - //! Supporting old format: - //! - //! M204 S[normal moves] T[filmanent only moves] - //! - //! and new format: - //! - //! M204 P[printing moves] R[filmanent only moves] T[travel moves] (as of now T is ignored) + /*! + ### M204 - Acceleration settings M204: Set default acceleration + */ ------------------------------------------ + /*! Supporting old format: + + M204 [ S | T ] + - `S` - normal moves + - `T` - filmanent only moves + + and new format: + + M204 [ P | R | T ] + - `P` - printing moves + - `R` - filmanent only moves + - `T` - travel moves (as of now T is ignored) + */ case 204: { if(code_seen('S')) { @@ -6799,16 +6808,20 @@ Sigma_Exit: } break; - //! ### M205 - Set advanced settings G32: Undock Z Probe sled - // --------------------------------------------- - //! Set some advanced settings related to movement. - //! - //! M205 [S] [T] [B] [X] [Y] [Z] [E] - /** + /*! + ### M205 - Set advanced settings M205: Advanced settings + */ --------------------------------------------- + /*! Set some advanced settings related to movement. + + M205 [ S | T | B | X | Y | Z | E ] + - `S` - Minimum feedrate for print moves (unit/s) - `T` - Minimum feedrate for travel moves (units/s) - `B` - Minimum segment time (us) - - `X` - Maximum X jerk (units/s), similarly for other axes + - `X` - Maximum X jerk (units/s) + - `Y` - Maximum Y jerk (units/s) + - `Z` - Maximum Z jerk (units/s) + - `E` - Maximum E jerk (units/s) */ case 205: { @@ -6824,8 +6837,15 @@ Sigma_Exit: } break; - //! ### M206 - Set additional homing offsets G32: Undock Z Probe sled - // ---------------------------------------------- + /*! + ### M206 - Set additional homing offsets M206: Offset axes + + M206 [ X | Y | Z] + + - `X` - X axis offset + - `Y` - Y axis offset + - `Z` - Z axis offset + */ ---------------------------------------------- case 206: for(int8_t i=0; i < 3; i++) { @@ -6834,8 +6854,15 @@ Sigma_Exit: break; #ifdef FWRETRACT - //! ### M207 - Set firmware retraction G32: Undock Z Probe sled - // -------------------------------------------------- + /*! + ### M207 - Set firmware retraction M207: Set retract length + + M207 [ S | F | Z] + + - `S` - positive length to retract, in mm + - `F` - retraction feedrate, in mm/min + - `Z` - additional zlift/hop + */ -------------------------------------------------- case 207: //M207 - set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop] { if(code_seen('S')) @@ -6852,8 +6879,14 @@ Sigma_Exit: } }break; - //! ### M208 - Set retract recover length G32: Undock Z Probe sled - // -------------------------------------------- + /*! + ### M208 - Set retract recover length M208: Set unretract length + + M208 [ S | F ] + + - `S` - positive length surplus to the M207 Snnn, in mm + - `F` - feedrate, in mm/sec + */ -------------------------------------------- case 208: // M208 - set retract recover length S[positive mm surplus to the M207 S*] F[feedrate mm/min] { if(code_seen('S')) @@ -6866,8 +6899,15 @@ Sigma_Exit: } }break; - //! ### M209 - Enable/disable automatict retract G32: Undock Z Probe sled - // --------------------------------------------- + /*! + ### M209 - Enable/disable automatict retract M209: Enable automatic retract + + M209 [ S ] + + - `S` - 1=true or 0=false + + This boolean value S 1=true or 0=false enables automatic retract detect if the slicer did not support G10/G11: every normal extrude-only move will be classified as retract depending on the direction. + */ --------------------------------------------- case 209: // M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction. { if(code_seen('S')) @@ -6909,8 +6949,10 @@ Sigma_Exit: #endif // FWRETRACT #if EXTRUDERS > 1 - // ### M218 - Set hotend offset - // ---------------------------------------- + /*! + ### M218 - Set hotend offset M218: Set Hotend Offset + In Prusa Firmware this G-code is only active if `EXTRUDERS` is higher then 1 in the source code. On Original i3 Prusa MK2/s MK2.5/s MK3/s it is not active. + */ ---------------------------------------- case 218: // M218 - set hotend offset (in mm), T X Y { uint8_t extruder; @@ -6938,8 +6980,16 @@ Sigma_Exit: }break; #endif - //! ### M220 Set feedrate percentage G32: Undock Z Probe sled - // ----------------------------------------------- + /*! + ### M220 Set feedrate percentage M220: Set speed factor override percentage + + M220 [ B | S | R ] + + - `B` - Backup current speed factor + - `S` - Speed factor override percentage (0..100 or higher) + - `R` - Restore previous speed factor + + */ ----------------------------------------------- case 220: // M220 S- set speed factor override percentage { if (code_seen('B')) //backup current speed factor @@ -6956,8 +7006,15 @@ Sigma_Exit: } break; - //! ### M221 - Set extrude factor override percentage G32: Undock Z Probe sled - // ---------------------------------------------------- + /*! + ### M221 - Set extrude factor override percentage M221: Set extrude factor override percentage + + M221 [ S | T ] + + - `S` - Extrude factor override percentage (0..100 or higher), default 100% + - `T` - Extruder drive number (Prusa Firmware only), default 0 if not set. + + */ ---------------------------------------------------- case 221: // M221 S- set extrude factor override percentage { if(code_seen('S')) @@ -6980,8 +7037,16 @@ Sigma_Exit: } break; - //! ### M226 - Wait for Pin state G32: Undock Z Probe sled - // ------------------------------------------ + /*! + ### M226 - Wait for Pin state M226: Wait for pin state + + M226 [ P | S ] + + - `P` - pin number + - `S` - pin state + + Wait until the specified pin reaches the state required + */ ------------------------------------------ case 226: // M226 P S- Wait until the specified pin reaches the state required { if(code_seen('P')){ @@ -7036,8 +7101,10 @@ Sigma_Exit: #if NUM_SERVOS > 0 - //! ### M280 - Set/Get servo position G32: Undock Z Probe sled - // -------------------------------------------- + /*! + ### M280 - Set/Get servo position M280: Set servo position + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. + */ -------------------------------------------- case 280: // M280 - set servo position absolute. P: servo index, S: angle or microseconds { int servo_index = -1; @@ -7077,8 +7144,16 @@ Sigma_Exit: #if (LARGE_FLASH == true && ( BEEPER > 0 || defined(ULTRALCD) || defined(LCD_USE_I2C_BUZZER))) - //! ### M300 - Play tone G32: Undock Z Probe sled - // ----------------------- + /*! + ### M300 - Play tone M300: Play beep sound + + M300 [ S | P ] + + - `S` - frequency in Hz + - `P` - duration in milliseconds + + In Prusa Firmware the defaults are `100Hz` and `1000ms`, so that `M300` without parameters will beep for a second. + */ ----------------------- case 300: // M300 { int beepS = code_seen('S') ? code_value() : 110; @@ -7099,8 +7174,20 @@ Sigma_Exit: #ifdef PIDTEMP - //! ### M301 - Set hotend PID G32: Undock Z Probe sled - // --------------------------------------- + /*! + ### M301 - Set hotend PID M301: Set PID parameters + + M301 [ P | I | D | C ] + + - `P` - proportional (Kp) + - `I` - integral (Ki) + - `D` - derivative (Kd) + - `C` - heating power=Kc*(e_speed0) + + Sets Proportional (P), Integral (I) and Derivative (D) values for hot end. + + See also PID Tuning. + */ --------------------------------------- case 301: { if(code_seen('P')) cs.Kp = code_value(); @@ -7130,8 +7217,19 @@ Sigma_Exit: #endif //PIDTEMP #ifdef PIDTEMPBED - //! ### M304 - Set bed PID G32: Undock Z Probe sled - // -------------------------------------- + /*! + ### M304 - Set bed PID M304: Set PID parameters - Bed + + M304 [ P | I | D ] + + - `P` - proportional (Kp) + - `I` - integral (Ki) + - `D` - derivative (Kd) + + Sets Proportional (P), Integral (I) and Derivative (D) values for bed. + + See also PID Tuning. + */ -------------------------------------- case 304: { if(code_seen('P')) cs.bedKp = code_value(); @@ -7151,8 +7249,13 @@ Sigma_Exit: break; #endif //PIDTEMP - //! ### M240 - Trigger camera G32: Undock Z Probe sled - // -------------------------------------------- + /*! + ### M240 - Trigger camera M240: Trigger camera + + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. + + You need to define `CHDK` and assign a `PHOTOGRAPH_PIN` to bea ble to use it. + */ -------------------------------------------- case 240: // M240 Triggers a camera by emulating a Canon RC-1 : http://www.doc-diy.net/photo/rc-1_hacked/ { #ifdef CHDK From e6eeafd20c774473cfd9aee703e8ab5115d9f037 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 5 Nov 2019 15:47:04 +0100 Subject: [PATCH 135/271] More M-Commands ... --- Firmware/Marlin_main.cpp | 375 ++++++++++++++++++++++++++------------- 1 file changed, 252 insertions(+), 123 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 870d724ae..759df56f0 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5291,7 +5291,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) // printf_P(_N("END G-CODE=%u\n"), gcode_in_progress); gcode_in_progress = 0; } // end if(code_seen('G')) - + /*! + #### End of G-Codes + */ /*! --------------------------------------------------------------------------------- @@ -7289,8 +7291,15 @@ Sigma_Exit: break; #ifdef PREVENT_DANGEROUS_EXTRUDE - //! ### M302 - Allow cold extrude, or set minimum extrude temperature G32: Undock Z Probe sled - // ------------------------------------------------------------------- + /*! + ### M302 - Allow cold extrude, or set minimum extrude temperature M302: Allow cold extrudes + + M302 [ S ] + + - `S` - Cold extrude minimum temperature + + This tells the printer to allow movement of the extruder motor above a certain temperature, or if disabled, to allow extruder movement when the hotend is below a safe printing temperature. + */ ------------------------------------------------------------------- case 302: { float temp = .0; @@ -7300,8 +7309,17 @@ Sigma_Exit: break; #endif - //! ### M303 - PID autotune G32: Undock Z Probe sled - // ------------------------------------- + /*! + ### M303 - PID autotune M303: Run PID tuning + + M303 [ E | S | C ] + + - `E` - Extruder, default `E0`. + - `S` - Target temperature, default `210°C` + - `C` - Cycles, default `5` + + PID Tuning refers to a control algorithm used in some repraps to tune heating behavior for hot ends and heated beds. This command generates Proportional (Kp), Integral (Ki), and Derivative (Kd) values for the hotend or bed (`E-1`). Send the appropriate code and wait for the output to update the firmware. + */ ------------------------------------- case 303: { float temp = 150.0; @@ -7316,17 +7334,30 @@ Sigma_Exit: } break; - //! ### M400 - Wait for all moves to finish G32: Undock Z Probe sled - // ----------------------------------------- + /*! + ### M400 - Wait for all moves to finish M400: Wait for current moves to finish + + Finishes all current moves and and thus clears the buffer. + */ ----------------------------------------- case 400: { st_synchronize(); } break; - //! ### M403 - Set filament type (material) for particular extruder and notify the MMU G32: Undock Z Probe sled - // ---------------------------------------------- - case 403: + /*! + ### M403 - Set filament type (material) for particular extruder and notify the MMU M403 - Set filament type (material) for particular extruder and notify the MMU + + M403 [ E | F ] + + - `E` - Extruder number + - `F` - Filament type + + Currently three different materials are needed (default, flex and PVA). + + And storing this information for different load/unload profiles etc. in the future firmware does not have to wait for "ok" from MMU. + */ ---------------------------------------------- + case 403: { // currently three different materials are needed (default, flex and PVA) // add storing this information for different load/unload profiles etc. in the future @@ -7342,40 +7373,56 @@ Sigma_Exit: } break; - //! ### M500 - Store settings in EEPROM G32: Undock Z Probe sled - // ----------------------------------------- + /*! + ### M500 - Store settings in EEPROM M500: Store parameters in non-volatile storage + + Save current parameters to EEPROM, SD card or other non-volatile storage. + */ ----------------------------------------- case 500: { Config_StoreSettings(); } break; - //! ### M501 - Read settings from EEPROM G32: Undock Z Probe sled - // ---------------------------------------- + /*! + ### M501 - Read settings from EEPROM M501: Read parameters from EEPROM + + Set the active parameters to those stored in the EEPROM, SD card or other non-volatile storage. This is useful to revert parameters after experimenting with them. + */ ---------------------------------------- case 501: { Config_RetrieveSettings(); } break; - //! ### M502 - Revert all settings to factory default G32: Undock Z Probe sled - // ------------------------------------------------- + /*! + ### M502 - Revert all settings to factory default M502: Restore Default Settings + + This command resets all tunable parameters to their default values, as set in the firmware's configuration files. This doesn't reset any parameters stored in the EEPROM, so it must be followed with M500 to reboot with default settings. + */ ------------------------------------------------- case 502: { Config_ResetDefault(); } break; - //! ### M503 - Repport all settings currently in memory G32: Undock Z Probe sled - // ------------------------------------------------- + /*! + ### M503 - Repport all settings currently in memory M503: Report Current Settings + + This command asks the firmware to reply with the current print settings as set in memory. Settings will differ from EEPROM contents if changed since the last load / save. The reply output includes the G-Code commands to produce each setting. For example, Steps-Per-Unit values are displayed as an M92 command. + */ ------------------------------------------------- case 503: { Config_PrintSettings(); } break; - //! ### M509 - Force language selection G32: Undock Z Probe sled - // ------------------------------------------------ + /*! + ### M509 - Force language selection M509: Force language selection + + Resets the language to English. + Only on Original Prusa i3 MK2.5/s and MK3/s with multiple languages. + */ ------------------------------------------------ case 509: { lang_reset(); @@ -7385,8 +7432,11 @@ Sigma_Exit: break; #ifdef ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED - //! ### M540 - Abort print on endstop hit (enable/disable) G32: Undock Z Probe sled - // ----------------------------------------------------- + /*! + ### M540 - Abort print on endstop hit (enable/disable) M540 in Marlin: Enable/Disable "Stop SD Print on Endstop Hit" + + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. You must define `ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED`. + */ ----------------------------------------------------- case 540: { if(code_seen('S')) abort_on_endstop_hit = code_value() > 0; @@ -7394,6 +7444,17 @@ Sigma_Exit: break; #endif + /*! + ### M851 - Set Z-Probe Offset M851: Set Z-Probe Offset" + + M4861 [ Z ] + + - `Z` - Z offset probe to nozzle. + + Sets the Z-probe Z offset. This offset is used to determine the actual Z position of the nozzle when using a probe to home Z with G28. This value may also be used by G81 (Prusa) / G29 (Marlin) to apply correction to the Z position. + + This value represents the distance from nozzle to the bed surface at the point where the probe is triggered. This value will be negative for typical switch probes, inductive probes, and setups where the nozzle makes a circuit with a raised metal contact. This setting will be greater than zero on machines where the nozzle itself is used as the probe, pressing down on the bed to press a switch. (This is a common setup on delta machines.) + */ ----------------------------------------------------- #ifdef CUSTOM_M_CODE_SET_Z_PROBE_OFFSET case CUSTOM_M_CODE_SET_Z_PROBE_OFFSET: { @@ -7432,8 +7493,22 @@ Sigma_Exit: #ifdef FILAMENTCHANGEENABLE - //! ### M600 - Initiate Filament change procedure G32: Undock Z Probe sled - // -------------------------------------- + /*! + ### M600 - Initiate Filament change procedure M600: Filament change pause + + M600 [ X | Y | Z | E | L | AUTO ] + + - `X` - X position, default 211 + - `Y` - Y position, default 0 + - `Z` - relative lift Z, default 2. + - `E` - initial retract, default -2 + - `L` - later retract distance for removal, default -80 + - `AUTO` - Automatically (only with MMU) + + Initiates Filament change, it is also used during Filament Runout Sensor process. + + If the `M600` is triggered under 25mm it will do a Z-lift of 25mm to prevent a filament blob. + */ -------------------------------------- case 600: //Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal] { st_synchronize(); @@ -7509,8 +7584,9 @@ Sigma_Exit: break; #endif //FILAMENTCHANGEENABLE - //! ### M601 - Pause print G32: Undock Z Probe sled - // ------------------------------- + /*! + ### M601 - Pause print G32: Undock Z Probe sled + */ ------------------------------- case 601: { cmdqueue_pop_front(); //trick because we want skip this command (M601) after restore @@ -7518,28 +7594,31 @@ Sigma_Exit: } break; - //! ### M602 - Resume print G32: Undock Z Probe sled - // ------------------------------- + /*! + ### M602 - Resume print G32: Undock Z Probe sled + */ ------------------------------- case 602: { lcd_resume_print(); } break; - //! ### M603 - Stop print G32: Undock Z Probe sled - // ------------------------------- - case 603: { + /*! + ### M603 - Stop print G32: Undock Z Probe sled + */ ------------------------------- + case 603: { lcd_print_stop(); } #ifdef PINDA_THERMISTOR - //! ### M860 - Wait for extruder temperature (PINDA) G32: Undock Z Probe sled - // -------------------------------------------------------------- - /*! - Wait for PINDA thermistor to reach target temperature + /*! + ### M860 - Wait for extruder temperature (PINDA) M860 Wait for Probe Temperature - M860 [S] + M860 [ S ] - */ + - `S` - Target temperature + + Wait for PINDA thermistor to reach target temperature + */ -------------------------------------------------------------- case 860: { int set_target_pinda = 0; @@ -7584,17 +7663,19 @@ Sigma_Exit: break; } - //! ### M861 - Set/Get PINDA temperature compensation offsets G32: Undock Z Probe sled - // ----------------------------------------------------------- - /*! + /*! + ### M861 - Set/Get PINDA temperature compensation offsets M861 Set Probe Thermal Compensation - M861 [ ? | ! | Z | S [I] ] + M861 [ ? | ! | Z | S | I ] - `?` - Print current EEPROM offset values - `!` - Set factory default values - `Z` - Set all values to 0 (effectively disabling PINDA temperature compensation) - - `S` `I` - Set compensation ustep value S for compensation table index I - */ + - `S` - Microsteps + - `I` - Table index + + Set compensation ustep value `S` for compensation table index `I`. + */ ----------------------------------------------------------- case 861: if (code_seen('?')) { // ? - Print out current EEPROM offset values uint8_t cal_status = calibration_status_pinda(); @@ -7667,39 +7748,41 @@ Sigma_Exit: #endif //PINDA_THERMISTOR - //! ### M862 - Print checking G32: Undock Z Probe sled - // ---------------------------------------------- - /*! - Checks the parameters of the printer and gcode and performs compatibility check - - M862.1 { P | Q } - - M862.2 { P | Q } - - M862.3 { P"" | Q } - - M862.4 { P | Q } - - M862.5 { P | Q } - - When run with P<> argument, the check is performed against the input value. - When run with Q argument, the current value is shown. - - M862.3 accepts text identifiers of printer types too. - The syntax of M862.3 is (note the quotes around the type): - - M862.3 P "MK3S" - - Accepted printer type identifiers and their numeric counterparts: - - MK1 (100) - - MK2 (200) - - MK2MM (201) - - MK2S (202) - - MK2SMM (203) - - MK2.5 (250) - - MK2.5MMU2 (20250) - - MK2.5S (252) - - MK2.5SMMU2S (20252) - - MK3 (300) - - MK3MMU2 (20300) - - MK3S (302) - - MK3SMMU2S (20302) - */ + /*! + ### M862 - Print checking G32: Undock Z Probe sled + Checks the parameters of the printer and gcode and performs compatibility check + + - M862.1 { P | Q } + - M862.2 { P | Q } + - M862.3 { P"" | Q } + - M862.4 { P | Q } + - M862.5 { P | Q } + + When run with P<> argument, the check is performed against the input value. + When run with Q argument, the current value is shown. + + M862.3 accepts text identifiers of printer types too. + The syntax of M862.3 is (note the quotes around the type): + + M862.3 P "MK3S" + + Accepted printer type identifiers and their numeric counterparts: + + - MK1 (100) + - MK2 (200) + - MK2MM (201) + - MK2S (202) + - MK2SMM (203) + - MK2.5 (250) + - MK2.5MMU2 (20250) + - MK2.5S (252) + - MK2.5SMMU2S (20252) + - MK3 (300) + - MK3MMU2 (20300) + - MK3S (302) + - MK3SMMU2S (20302) + + */ ---------------------------------------------- case 862: // M862: print checking float nDummy; uint8_t nCommand; @@ -7760,19 +7843,42 @@ Sigma_Exit: break; #ifdef LIN_ADVANCE - //! ### M900 - Set Linear advance options G32: Undock Z Probe sled - // ---------------------------------------------- + /*! + ### M900 - Set Linear advance options M900 Set Linear Advance Scaling Factors + Sets the advance extrusion factors for Linear Advance. If any of the R, W, H, or D parameters are set to zero the ratio will be computed dynamically during printing. + + M900 [ K | R | W | H | D] + + - `K` - Advance K factor + - `R` - Set ratio directly (overrides WH/D) + - `W` - Width + - `H` - Height + - `D` - Diameter Set ratio from WH/D + */ ---------------------------------------------- case 900: gcode_M900(); break; #endif - //! ### M907 - Set digital trimpot motor current in mA using axis codes G32: Undock Z Probe sled - // --------------------------------------------------------------- + /*! + ### M907 - Set digital trimpot motor current in mA using axis codes M907: Set digital trimpot motor + Set digital trimpot motor current using axis codes (X, Y, Z, E, B, S). + + M907 [ X | Y | Z | E | B | S ] + + - `X` - X motor driver + - `Y` - Y motor driver + - `Z` - Z motor driver + - `E` - Extruder motor driver + - `B` - ?? + - `S` - ?? + + @todo What are `B` and `S` in M907? + */ --------------------------------------------------------------- case 907: { #ifdef TMC2130 - //! See tmc2130_cur2val() for translation to 0 .. 63 range + // See tmc2130_cur2val() for translation to 0 .. 63 range for (int i = 0; i < NUM_AXIS; i++) if(code_seen(axis_codes[i])) { @@ -7802,8 +7908,10 @@ Sigma_Exit: } break; - //! ### M908 - Control digital trimpot directly G32: Undock Z Probe sled - // --------------------------------------------------------- + /*! + ### M908 - Control digital trimpot directly M908: Control digital trimpot directly + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. + */ --------------------------------------------------------- case 908: { #if defined(DIGIPOTSS_PIN) && DIGIPOTSS_PIN > -1 @@ -7817,16 +7925,18 @@ Sigma_Exit: #ifdef TMC2130_SERVICE_CODES_M910_M918 - //! ### M910 - TMC2130 init G32: Undock Z Probe sled - // ----------------------------------------------- + /*! + ### M910 - TMC2130 init G32: Undock Z Probe sled + */ ----------------------------------------------- case 910: { tmc2130_init(); } break; - //! ### M911 - Set TMC2130 holding currents G32: Undock Z Probe sled - // ------------------------------------------------- + /*! + ### M911 - Set TMC2130 holding currents G32: Undock Z Probe sled + */ ------------------------------------------------- case 911: { if (code_seen('X')) tmc2130_set_current_h(0, code_value()); @@ -7836,8 +7946,9 @@ Sigma_Exit: } break; - //! ### M912 - Set TMC2130 running currents G32: Undock Z Probe sled - // ----------------------------------------------- + /*! + ### M912 - Set TMC2130 running currents G32: Undock Z Probe sled + */ ----------------------------------------------- case 912: { if (code_seen('X')) tmc2130_set_current_r(0, code_value()); @@ -7847,17 +7958,19 @@ Sigma_Exit: } break; - //! ### M913 - Print TMC2130 currents G32: Undock Z Probe sled - // ----------------------------- + /*! + ### M913 - Print TMC2130 currents G32: Undock Z Probe sled + */ ----------------------------- case 913: { tmc2130_print_currents(); } break; - //! ### M914 - Set TMC2130 normal mode G32: Undock Z Probe sled - // ------------------------------ - case 914: + /*! + ### M914 - Set TMC2130 normal mode G32: Undock Z Probe sled + */ ------------------------------ + case 914: { tmc2130_mode = TMC2130_MODE_NORMAL; update_mode_profile(); @@ -7865,9 +7978,10 @@ Sigma_Exit: } break; - //! ### M915 - Set TMC2130 silent mode G32: Undock Z Probe sled - // ------------------------------ - case 915: + /*! + ### M915 - Set TMC2130 silent mode G32: Undock Z Probe sled + */ ------------------------------ + case 915: { tmc2130_mode = TMC2130_MODE_SILENT; update_mode_profile(); @@ -7875,8 +7989,9 @@ Sigma_Exit: } break; - //! ### M916 - Set TMC2130 Stallguard sensitivity threshold G32: Undock Z Probe sled - // ------------------------------------------------------- + /*! + ### M916 - Set TMC2130 Stallguard sensitivity threshold G32: Undock Z Probe sled + */ ------------------------------------------------------- case 916: { if (code_seen('X')) tmc2130_sg_thr[X_AXIS] = code_value(); @@ -7888,8 +8003,9 @@ Sigma_Exit: } break; - //! ### M917 - Set TMC2130 PWM amplitude offset (pwm_ampl) G32: Undock Z Probe sled - // -------------------------------------------------------------- + /*! + ### M917 - Set TMC2130 PWM amplitude offset (pwm_ampl) G32: Undock Z Probe sled + */ -------------------------------------------------------------- case 917: { if (code_seen('X')) tmc2130_set_pwm_ampl(0, code_value()); @@ -7899,8 +8015,9 @@ Sigma_Exit: } break; - //! ### M918 - Set TMC2130 PWM amplitude gradient (pwm_grad) G32: Undock Z Probe sled - // ------------------------------------------------------------- + /*! + ### M918 - Set TMC2130 PWM amplitude gradient (pwm_grad) G32: Undock Z Probe sled + */ ------------------------------------------------------------- case 918: { if (code_seen('X')) tmc2130_set_pwm_grad(0, code_value()); @@ -7912,9 +8029,10 @@ Sigma_Exit: #endif //TMC2130_SERVICE_CODES_M910_M918 - //! ### M350 - Set microstepping mode G32: Undock Z Probe sled - // --------------------------------------------------- - //! Warning: Steps per unit remains unchanged. S code sets stepping mode for all drivers. + /*! + ### M350 - Set microstepping mode M350: Set microstepping mode + Warning: Steps per unit remains unchanged. S code sets stepping mode for all drivers. + */ --------------------------------------------------- case 350: { #ifdef TMC2130 @@ -7953,11 +8071,12 @@ Sigma_Exit: } break; - //! ### M351 - Toggle Microstep Pins G32: Undock Z Probe sled - // ----------------------------------- - //! Toggle MS1 MS2 pins directly, S# determines MS1 or MS2, X# sets the pin high/low. - //! - //! M351 [B<0|1>] [E<0|1>] S<1|2> [X<0|1>] [Y<0|1>] [Z<0|1>] + /*! + ### M351 - Toggle Microstep Pins M351: Toggle MS1 MS2 pins directly + Toggle MS1 MS2 pins directly, S# determines MS1 or MS2, X# sets the pin high/low. + + M351 [B<0|1>] [E<0|1>] S<1|2> [X<0|1>] [Y<0|1>] [Z<0|1>] + */ ----------------------------------- case 351: { #if defined(X_MS1_PIN) && X_MS1_PIN > -1 @@ -7977,8 +8096,10 @@ Sigma_Exit: } break; - //! ### M701 - Load filament G32: Undock Z Probe sled - // ------------------------- + /*! + ### M701 - Load filament M701: Load filament + + */ ------------------------- case 701: { if (mmu_enabled && code_seen('E')) @@ -7987,16 +8108,15 @@ Sigma_Exit: } break; - //! ### M702 - Unload filament G32: Undock Z Probe sled - // ------------------------ - /*! + /*! + ### M702 - Unload filament G32: Undock Z Probe sled - M702 [U C] + M702 [ U | C] - - `U` Unload all filaments used in current print - - `C` Unload just current filament + - `U` - Unload all filaments used in current print + - `C` - Unload just current filament - without any parameters unload all filaments - */ + */ ------------------------ case 702: { #ifdef SNMM @@ -8019,14 +8139,18 @@ Sigma_Exit: } break; - //! ### M999 - Restart after being stopped G32: Undock Z Probe sled - // ------------------------------------ + /*! + ### M999 - Restart after being stopped M999: Restart after being stopped by error + */ ------------------------------------ case 999: Stopped = false; lcd_reset_alert_level(); gcode_LastN = Stopped_gcode_LastN; FlushSerialRequestResend(); break; + /*! + #### End of M-Commands + */ ------------------------------------ default: printf_P(PSTR("Unknown M code: %s \n"), cmdbuffer + bufindr + CMDHDRSIZE); } @@ -8231,6 +8355,9 @@ Sigma_Exit: } } } // end if(code_seen('T')) (end of T codes) + /*! + #### End of T-Codes + */ /** *--------------------------------------------------------------------------------- @@ -8460,7 +8587,9 @@ Sigma_Exit: ClearToSend(); } - +/*! +#### End of D-Codes +*/ /** @defgroup GCodes G-Code List */ From 5bd995b21b12448cf487619c2757bc80b854b4bf Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 6 Nov 2019 11:14:06 +0100 Subject: [PATCH 136/271] Added more info to doxygen G-Codes --- Firmware/Marlin_main.cpp | 169 ++++++++++++++++++++++++++++++++------- 1 file changed, 139 insertions(+), 30 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 759df56f0..9a048d533 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3510,7 +3510,6 @@ void process_commands() --------------------------------------------------------------------------------- ### M117 - Display Message M117: Display Message - This causes the given message to be shown in the status line on an attached LCD. It is also used by internal to display status messages on LCD. @@ -3643,9 +3642,11 @@ void process_commands() ### PRUSA - Internal command set G98: Activate farm mode - Notes Set of internal PRUSA commands - + #### Usage + P RUSA [ Ping | PRN | FAN | fn | thx | uvlo | fsensor_recover | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ] - + + #### Parameters - `Ping` - `PRN` - Prints revision of the printer - `FAN` - Prints fan details @@ -3859,7 +3860,20 @@ eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,0xFFFF); /*! --------------------------------------------------------------------------------- # G Codes - ### G0, G1 - Coordinated movement X Y Z E G0 & G1: Move + ### G0, G1 - Coordinated movement X Y Z E G0 & G1: Move + In Prusa Frimware G0 and G1 are the same. + #### Usage + + G0 [ X | Y | Z | E | F | S ] + G1 [ X | Y | Z | E | F | S ] + + #### Parameters + - `X` - The position to move to on the X axis + - `Y` - The position to move to on the Y axis + - `Z` - The position to move to on the Z axis + - `E` - The amount to extrude between the starting point and ending point + - `F` - The feedrate per minute of the move between the starting point and ending point (if supplied) + */ -------------------------------------- case 0: // G0 -> G1 case 1: // G1 @@ -4060,7 +4074,21 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; /*! - ### G2 - CW ARC G2 & G3: Controlled Arc Move + ### G2, G3 - Controlled Arc Move G2 & G3: Controlled Arc Move + + #### Usage + + G2 [ X | Y | I | E | F ] (Clockwise Arc) + G3 [ X | Y | I | E | F ] (Counter-Clockwise Arc) + + #### Parameters + - `X` - The position to move to on the X axis + - `Y` - The position to move to on the Y axis + - `I` - The point in X space from the current X position to maintain a constant distance from + - `J` - The point in Y space from the current Y position to maintain a constant distance from + - `E` - The amount to extrude between the starting point and ending point + - `F` - The feedrate per minute of the move between the starting point and ending point (if supplied) + */ ------------------------------ case 2: if(Stopped == false) { @@ -4069,10 +4097,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - - /*! - ### G3 - CCW ARC G2 & G3: Controlled Arc Move - */ ------------------------------- + // ------------------------------- case 3: if(Stopped == false) { get_arc_coordinates(); @@ -4083,6 +4108,16 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G4 - Dwell G4: Dwell + Pause the machine for a period of time. + + #### Usage + + G4 [ P | S ] + + #### Parameters + - `P` - Time to wait, in milliseconds + - `S` - Time to wait, in seconds + */ ------------------------------- case 4: codenum = 0; @@ -4103,6 +4138,12 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G10 - Retract G10: Retract + Retracts filament according to settings of `M207` + + #### Usage + + G10 + */ ------------------------------ case 10: #if EXTRUDERS > 1 @@ -4116,6 +4157,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G11 - Retract recover G11: Unretract + Unretracts/recovers filament according to settings of `M208` + #### Usage + + G11 + */ ----------------------------- case 11: #if EXTRUDERS > 1 @@ -4129,10 +4175,12 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G28 - Home all Axis one at a time G28: Move to Origin (Home) - Unsing G28 without any paramters will perfom on the Prusa i3 printers home AND mesh bed leveling, while the default G-code G28 is just homeing the printer - + Unsing `G28` without any paramters will perfom on the Prusa i3 printers home AND mesh bed leveling, while `G28 W` will just home the printer + #### Usage + G28 [ X | Y | Z | W | C ] + #### Parameters - `X` - Flag to go back to the X axis origin - `Y` - Flag to go back to the Y axis origin - `Z` - Flag to go back to the Z axis origin @@ -4173,7 +4221,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G29 - Detailed Z-Probe G29: Detailed Z-Probe - See G81 + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. + + See `G81` */ -------------------------------- case 29: { @@ -4321,6 +4371,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G30 - Single Z Probe G30: Single Z-Probe + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. */ ------------------------------------ case 30: { @@ -4347,6 +4398,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G31 - Dock the sled G31: Dock Z Probe sled + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. */ --------------------------- case 31: dock_sled(true); @@ -4355,6 +4407,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G32 - Undock the sled G32: Undock Z Probe sled + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. */ ---------------------------- case 32: dock_sled(false); @@ -4386,6 +4439,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G75 - Print temperature interpolation G75: Print temperature interpolation Show/print PINDA temperature interpolating. + #### Usage + + G75 + */ --------------------------------------------- case 75: { @@ -4401,6 +4458,21 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) The PINDAv2 sensor has a built-in thermistor which has the advantage that the calibration can be done once for all materials. The Original i3 Prusa MK2/s uses PINDAv1 and this calibration improves the temperature drift, but not as good as the PINDAv2. + + #### Usage + + G76 + + #### Example + + ``` + G76 + + echo PINDA probe calibration start + echo start temperature: 35.0° + echo ... + echo PINDA temperature -- Z shift (mm): 0.--- + ``` */ ------------------------------------------------ case 76: @@ -4663,15 +4735,17 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G80 - Mesh-based Z probe G80: Mesh-based Z probe Default 3x3 grid can be changed on MK2.5/s and MK3/s to 7x7 grid. - + #### Usage + G80 [ N | R | V | L | R | F | B ] + #### Parameters - `N` - Number of mesh points on x axis. Default is 3. Valid values are 3 and 7. - `R` - Probe retries. Default 3 max. 10 - `V` - Verbosity level 1=low, 10=mid, 20=high. It can be only used if firmware has been compiled with SUPPORT_VERBOSITY active. Using the following parameters enables additional "manual" bed leveling correction. Valid values are -100 microns to 100 microns. - + #### Additional Parameters - `L` - Left Bed Level correct value in um. - `R` - Right Bed Level correct value in um. - `F` - Front Bed Level correct value in um. @@ -5107,13 +5181,12 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G81 - Mesh bed leveling status G81: Mesh bed leveling status - Prints mesh bed leveling status and bed profile if activated. + #### Usage + + G81 + */ ----------------------------------------- - - /* - * Prints mesh bed leveling status and bed profile if activated - */ case 81: if (mbl.active) { SERIAL_PROTOCOLPGM("Num X,Y: "); @@ -5140,7 +5213,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) ### G82: Single Z probe at current location - Not active G82: Single Z probe at current location WARNING! USE WITH CAUTION! If you'll try to probe where is no leveling pad, nasty things can happen! - */ + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. + */ ----------------------------------------- case 82: SERIAL_PROTOCOLLNPGM("Finding bed "); int l_feedmultiply = setup_for_endstop_move(); @@ -5151,9 +5225,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) SERIAL_PROTOCOLPGM("\n"); break; - /*! - ### G83: Babystep in Z and store to EEPROM - Not active G83: Babystep in Z and store to EEPROM - */ + /*! + ### G83: Babystep in Z and store to EEPROM - Not active G83: Babystep in Z and store to EEPROM + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. + */ ----------------------------------------- case 83: { int babystepz = code_seen('S') ? code_value() : 0; @@ -5178,7 +5253,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; /*! ### G84: UNDO Babystep Z (move Z axis back) - Not active G84: UNDO Babystep Z (move Z axis back) - */ + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. + */ ----------------------------------------- case 84: babystepsTodoZsubtract(babystepLoadZ); // babystepLoadZ = 0; @@ -5186,7 +5262,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G85: Pick best babystep - Not active G87: Enable babystep correction after home - This G-code will be performed at the end of a calibration script. (Prusa3D specific) */ @@ -5214,7 +5290,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) calibration_status_store(CALIBRATION_STATUS_CALIBRATED); break; - /*! ### G88 - Reserved G88: Reserved @@ -5231,19 +5306,42 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G90 - Switch off relative mode G90: Set to Absolute Positioning + #### Usage + + G90 + + All coordinates from now on are absolute relative to the origin of the machine. */ ------------------------------- case 90: relative_mode = false; break; /*! ### G91 - Switch on relative mode G91: Set to Relative Positioning - */ ------------------------------- + #### Usage + + G91 + + All coordinates from now on are relative to the last position. + */ ------------------------------- case 91: relative_mode = true; break; /*! ### G92 - Set position G92: Set Position + #### Usage + + G92 [ X | Y | Z | E ] + + #### Parameters + - `X` - new X axis position + - `Y` - new Y axis position + - `Z` - new Z axis position + - `E` - new extruder position + + Allows programming of absolute zero point, by reseting the current position to the values specified. This would set the machine's X coordinate to 10, and the extrude coordinate to 90. No physical motion will occur. + + A G92 without coordinates will reset all axes to zero on some firmware. */ ----------------------------- case 92: if(!code_seen(axis_codes[E_AXIS])) @@ -5265,6 +5363,12 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G98 - Activate farm mode G98: Activate farm mode + Enable Prusa-specific Farm functions and g-code. + #### Usage + + G98 + + See Internal Prusa commands */ ----------------------------------- case 98: farm_mode = 1; @@ -5277,7 +5381,12 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; /*! ### G99 - Deactivate farm mode G99: Deactivate farm mode - */ ------------------------------------- + Disables Prusa-specific Farm functions and g-code. + #### Usage + + G99 + + */ ------------------------------------- case 99: farm_mode = 0; lcd_printer_connected(); @@ -5292,7 +5401,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) gcode_in_progress = 0; } // end if(code_seen('G')) /*! - #### End of G-Codes + ### End of G-Codes */ /*! From a14d7545a5ec362fa82df4ce68e7209395774d35 Mon Sep 17 00:00:00 2001 From: DRracer Date: Fri, 8 Nov 2019 16:06:42 +0100 Subject: [PATCH 137/271] Update Marlin_main.cpp --- Firmware/Marlin_main.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index d987fad98..36be553ca 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7553,16 +7553,15 @@ Sigma_Exit: uint16_t res = tmc2130_get_res(i); tmc2130_set_res(i, res_new); cs.axis_ustep_resolution[i] = res_new; - uint16_t fac; if (res_new > res) { - fac = (res_new / res); + uint16_t fac = (res_new / res); cs.axis_steps_per_unit[i] *= fac; position[i] *= fac; } else { - fac = (res / res_new); + uint16_t fac = (res / res_new); cs.axis_steps_per_unit[i] /= fac; position[i] /= fac; } From 0de47bf0fd3b518e7dc97705b8bdd03b9e283cca Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Fri, 8 Nov 2019 18:19:15 +0200 Subject: [PATCH 138/271] Fix "On" for all languages --- lang/lang_en_cz.txt | 8 ++++---- lang/lang_en_de.txt | 8 ++++---- lang/lang_en_es.txt | 8 ++++---- lang/lang_en_fr.txt | 8 ++++---- lang/lang_en_pl.txt | 8 ++++---- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 8ab05fa4f..a5c5b8251 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -1206,6 +1206,10 @@ "Off" "Vyp" +#MSG_ON +"On" +"Zap" + # "Back" "Zpet" @@ -1222,10 +1226,6 @@ "FINDA:" "\x00" -#MSG_ON -"On" -"Zap" - # "Firmware [none]" "Firmware [Zadne]" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 8c18d189d..2da2b7a8e 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -1206,6 +1206,10 @@ "Off" "Aus" +#MSG_ON +"On" +"An" + # "Back" "Zurueck" @@ -1214,10 +1218,6 @@ "Checks" "Kontrolle" -#MSG_ON -"On" -"An" - # "False triggering" "Falschtriggerung" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index f3f721439..796fc47e2 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -1206,6 +1206,10 @@ "Off" "Ina" +#MSG_ON +"On" +"Act" + # "Back" "atras" @@ -1242,10 +1246,6 @@ "IR:" "\x00" -#MSG_ON -"On" -"Act" - # "Magnets comp.[N/A]" "Comp. imanes [N/A]" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index c787a4161..0b7ccebea 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -1203,6 +1203,10 @@ "Off" "\x00" +#MSG_ON +"On" +"\x00" + # "Back" "Retour" @@ -1251,10 +1255,6 @@ "Magnets comp. [On]" "Compens. aim. [on]" -#MSG_ON -"On" -"\x00" - # "Mesh [3x3]" "\x00" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 525f41b95..e816bbf85 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -1204,6 +1204,10 @@ "Off" "Wyl" +#MSG_ON +"On" +"Wl" + # "Back" "Wstecz" @@ -1220,10 +1224,6 @@ "FINDA:" "\x00" -#MSG_ON -"On" -"Wl" - # "Firmware [none]" "Firmware [brak]" From 20a59f5f40577a57a56058b434519d25f2bbd04a Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Fri, 8 Nov 2019 19:44:48 +0200 Subject: [PATCH 139/271] Temp cal. --- Firmware/messages.c | 2 +- Firmware/ultralcd.cpp | 14 ++++++-------- lang/lang_en.txt | 10 ++-------- lang/lang_en_cz.txt | 14 +++----------- lang/lang_en_de.txt | 14 +++----------- lang/lang_en_es.txt | 14 +++----------- lang/lang_en_fr.txt | 12 ++---------- lang/lang_en_it.txt | 14 +++----------- lang/lang_en_pl.txt | 12 ++---------- 9 files changed, 25 insertions(+), 81 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index 73bcf13ab..1ad5fe33c 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -90,7 +90,7 @@ const char MSG_STEALTH[] PROGMEM_I1 = ISTR("Stealth"); //// const char MSG_STEEL_SHEET_CHECK[] PROGMEM_I1 = ISTR("Is steel sheet on heatbed?"); ////c=20 r=2 const char MSG_STOP_PRINT[] PROGMEM_I1 = ISTR("Stop print"); //// const char MSG_STOPPED[] PROGMEM_I1 = ISTR("STOPPED. "); //// -const char MSG_TEMP_CALIBRATION[] PROGMEM_I1 = ISTR("Temp. cal. "); ////c=20 r=1 +const char MSG_TEMP_CALIBRATION[] PROGMEM_I1 = ISTR("Temp. cal."); ////c=12 r=1 const char MSG_TEMP_CALIBRATION_DONE[] PROGMEM_I1 = ISTR("Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal."); ////c=20 r=12 const char MSG_UNLOAD_FILAMENT[] PROGMEM_I1 = ISTR("Unload filament"); ////c=17 const char MSG_UNLOADING_FILAMENT[] PROGMEM_I1 = ISTR("Unloading filament"); ////c=20 r=1 diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ddb83e40a..13c48325c 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -838,12 +838,13 @@ void lcdui_print_status_line(void) break; case CustomMsg::TempCal: // PINDA temp calibration in progress { + char statusLine[LCD_WIDTH + 1]; + sprintf_P(statusLine, PSTR("%-20S"), _T(MSG_TEMP_CALIBRATION)); char progress[4]; + sprintf_P(progress, PSTR("%d/6"), custom_message_state); + memcpy(statusLine + 12, progress, sizeof(progress) - 1); lcd_set_cursor(0, 3); - lcd_puts_P(_T(MSG_TEMP_CALIBRATION)); - lcd_set_cursor(12, 3); - sprintf(progress, "%d/6", custom_message_state); - lcd_print(progress); + lcd_print(statusLine); } break; case CustomMsg::TempCompPreheat: // temp compensation preheat @@ -5742,10 +5743,7 @@ static void lcd_settings_menu() MENU_ITEM_SUBMENU_P(_i("Lin. correction"), lcd_settings_linearity_correction_menu); #endif //LINEARITY_CORRECTION && TMC2130 - if (temp_cal_active == false) - MENU_ITEM_FUNCTION_P(_i("Temp. cal. [off]"), lcd_temp_calibration_set);////MSG_TEMP_CALIBRATION_OFF c=20 r=1 - else - MENU_ITEM_FUNCTION_P(_i("Temp. cal. [on]"), lcd_temp_calibration_set);////MSG_TEMP_CALIBRATION_ON c=20 r=1 + MENU_ITEM_TOGGLE_P(_T(MSG_TEMP_CALIBRATION), temp_cal_active ? _T(MSG_ON) : _T(MSG_OFF), lcd_temp_calibration_set); #ifdef HAS_SECOND_SERIAL_PORT MENU_ITEM_TOGGLE_P(_T(MSG_RPI_PORT), (selectedSerialPort == 0) ? _T(MSG_OFF) : _T(MSG_ON), lcd_second_serial_set); diff --git a/lang/lang_en.txt b/lang/lang_en.txt index b6861f966..2f3bbfc8f 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -750,18 +750,12 @@ # "Select filament:" -#MSG_TEMP_CALIBRATION c=20 r=1 -"Temp. cal. " - -#MSG_TEMP_CALIBRATION_ON c=20 r=1 -"Temp. cal. [on]" +#MSG_TEMP_CALIBRATION c=12 r=1 +"Temp. cal." # "Select temperature which matches your material." -#MSG_TEMP_CALIBRATION_OFF c=20 r=1 -"Temp. cal. [off]" - #MSG_CALIBRATION_PINDA_MENU c=17 r=1 "Temp. calibration" diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index a5c5b8251..aed952bad 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -1002,22 +1002,14 @@ "Select filament:" "Zvolte filament:" -#MSG_TEMP_CALIBRATION c=20 r=1 -"Temp. cal. " -"Tepl. kal. " - -#MSG_TEMP_CALIBRATION_ON c=20 r=1 -"Temp. cal. [on]" -"Tepl. kal. [zap]" +#MSG_TEMP_CALIBRATION c=12 r=1 +"Temp. cal." +"Tepl. kal." # "Select temperature which matches your material." "Zvolte teplotu, ktera odpovida vasemu materialu." -#MSG_TEMP_CALIBRATION_OFF c=20 r=1 -"Temp. cal. [off]" -"Tepl. kal. [vyp]" - #MSG_CALIBRATION_PINDA_MENU c=17 r=1 "Temp. calibration" "Teplot. kalibrace" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 2da2b7a8e..bf850c6a6 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -1002,22 +1002,14 @@ "Select filament:" "Filament auswaehlen:" -#MSG_TEMP_CALIBRATION c=20 r=1 -"Temp. cal. " -"Temp Kalib. " - -#MSG_TEMP_CALIBRATION_ON c=20 r=1 -"Temp. cal. [on]" -"Temp. Kal. [an]" +#MSG_TEMP_CALIBRATION c=12 r=1 +"Temp. cal." +"Temp Kalib." # "Select temperature which matches your material." "Waehlen Sie die Temperatur, die zu Ihrem Material passt." -#MSG_TEMP_CALIBRATION_OFF c=20 r=1 -"Temp. cal. [off]" -"Temp. Kal. [aus]" - #MSG_CALIBRATION_PINDA_MENU c=17 r=1 "Temp. calibration" "Temp. kalibrieren" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index 796fc47e2..0b29393ae 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -1002,22 +1002,14 @@ "Select filament:" "Selecciona filamento:" -#MSG_TEMP_CALIBRATION c=20 r=1 -"Temp. cal. " -"Cal. temp. " - -#MSG_TEMP_CALIBRATION_ON c=20 r=1 -"Temp. cal. [on]" -"Cal. temp. [on]" +#MSG_TEMP_CALIBRATION c=12 r=1 +"Temp. cal." +"Cal. temp." # "Select temperature which matches your material." "Selecciona la temperatura adecuada a tu material." -#MSG_TEMP_CALIBRATION_OFF c=20 r=1 -"Temp. cal. [off]" -"Cal. temp. [off]" - #MSG_CALIBRATION_PINDA_MENU c=17 r=1 "Temp. calibration" "Calibracion temp." diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index 0b7ccebea..9f29192a6 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -999,22 +999,14 @@ "Select filament:" "Selectionnez le filament:" -#MSG_TEMP_CALIBRATION c=20 r=1 -"Temp. cal. " +#MSG_TEMP_CALIBRATION c=12 r=1 +"Temp. cal." "Calib. Temp." -#MSG_TEMP_CALIBRATION_ON c=20 r=1 -"Temp. cal. [on]" -"Calib. Temp. [on]" - # "Select temperature which matches your material." "Selectionnez la temperature qui correspond a votre materiau." -#MSG_TEMP_CALIBRATION_OFF c=20 r=1 -"Temp. cal. [off]" -"Calib. Temp.[off]" - #MSG_CALIBRATION_PINDA_MENU c=17 r=1 "Temp. calibration" "Calibration temp." diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index dac04865b..c3304400e 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -1001,22 +1001,14 @@ "Select filament:" "Seleziona il filamento:" -#MSG_TEMP_CALIBRATION c=20 r=1 -"Temp. cal. " -"Calib. temp. " - -#MSG_TEMP_CALIBRATION_ON c=20 r=1 -"Temp. cal. [on]" -"Calib. temp. [on]" +#MSG_TEMP_CALIBRATION c=12 r=1 +"Temp. cal." +"Calib. temp." # "Select temperature which matches your material." "Seleziona la temperatura appropriata per il tuo materiale." -#MSG_TEMP_CALIBRATION_OFF c=20 r=1 -"Temp. cal. [off]" -"Calib. temp.[off]" - #MSG_CALIBRATION_PINDA_MENU c=17 r=1 "Temp. calibration" "Calib. Temp." diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index e816bbf85..6e86ff0cf 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -1000,22 +1000,14 @@ "Select filament:" "Wybierz filament:" -#MSG_TEMP_CALIBRATION c=20 r=1 -"Temp. cal. " +#MSG_TEMP_CALIBRATION c=12 r=1 +"Temp. cal." "Kalibracja temp." -#MSG_TEMP_CALIBRATION_ON c=20 r=1 -"Temp. cal. [on]" -"Kalibr.temp. [wl]" - # "Select temperature which matches your material." "Wybierz temperature, ktora odpowiada Twojemu filamentowi." -#MSG_TEMP_CALIBRATION_OFF c=20 r=1 -"Temp. cal. [off]" -"Kalibr.temp.[wyl]" - #MSG_CALIBRATION_PINDA_MENU c=17 r=1 "Temp. calibration" "Kalibracja temp." From 11428388c607c3e8e228b3074d0b4d18cb5478bb Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Sat, 9 Nov 2019 20:58:56 +0200 Subject: [PATCH 140/271] MBL toggle and cleanup --- Firmware/messages.c | 3 ++ Firmware/messages.h | 3 ++ Firmware/ultralcd.cpp | 28 +++++------ lang/lang_en.txt | 79 ++++++++--------------------- lang/lang_en_cz.txt | 112 +++++++++++------------------------------ lang/lang_en_de.txt | 112 +++++++++++------------------------------ lang/lang_en_es.txt | 112 +++++++++++------------------------------ lang/lang_en_fr.txt | 111 +++++++++++------------------------------ lang/lang_en_it.txt | 112 +++++++++++------------------------------ lang/lang_en_pl.txt | 113 ++++++++++++------------------------------ 10 files changed, 218 insertions(+), 567 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index 1ad5fe33c..f38c29390 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -125,6 +125,9 @@ const char MSG_SOUND[] PROGMEM_I1 = ISTR("Sound"); //// const char MSG_SOUND_LOUD[] PROGMEM_I1 = ISTR("Loud"); //// const char MSG_SOUND_ONCE[] PROGMEM_I1 = ISTR("Once"); //// const char MSG_SOUND_BLIND[] PROGMEM_I1 = ISTR("Assist"); //// +const char MSG_MESH[] PROGMEM_I1 = ISTR("Mesh"); //// +const char MSG_Z_PROBE_NR[] PROGMEM_I1 = ISTR("Z-probe nr."); //// +const char MSG_MAGNETS_COMP[] PROGMEM_I1 = ISTR("Magnets comp."); //// //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index fbbd8a3fa..30671533c 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -125,6 +125,9 @@ extern const char MSG_SOUND[]; extern const char MSG_SOUND_LOUD[]; extern const char MSG_SOUND_ONCE[]; extern const char MSG_SOUND_BLIND[]; +extern const char MSG_MESH[]; +extern const char MSG_Z_PROBE_NR[]; +extern const char MSG_MAGNETS_COMP[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 13c48325c..96fddeb96 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5530,7 +5530,6 @@ eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,nDiameter); #define SETTINGS_NOZZLE \ do\ {\ - char sNozzleDiam[5];/*enough for two decimals*/\ float fNozzleDiam;\ switch(oNozzleDiameter)\ {\ @@ -5539,8 +5538,7 @@ do\ case ClNozzleDiameter::_Diameter_600: fNozzleDiam = 0.6f; break;\ default: fNozzleDiam = 0.4f; break;\ }\ - sprintf_P(sNozzleDiam, PSTR("%.2f"), fNozzleDiam);\ - MENU_ITEM_TOGGLE(_T(MSG_NOZZLE_DIAMETER), sNozzleDiam, lcd_nozzle_diameter_set);\ + MENU_ITEM_TOGGLE(_T(MSG_NOZZLE_DIAMETER), ftostr12ns(fNozzleDiam), lcd_nozzle_diameter_set);\ }\ while (0) @@ -7105,21 +7103,19 @@ static void lcd_mesh_bed_leveling_settings() bool magnet_elimination = (eeprom_read_byte((uint8_t*)EEPROM_MBL_MAGNET_ELIMINATION) > 0); uint8_t points_nr = eeprom_read_byte((uint8_t*)EEPROM_MBL_POINTS_NR); + char sToggle[4]; //enough for nxn format MENU_BEGIN(); - MENU_ITEM_BACK_P(_T(MSG_SETTINGS)); - if(points_nr == 3) MENU_ITEM_FUNCTION_P(_i("Mesh [3x3]"), mbl_mesh_toggle); ////MSG_MESH_3x3 c=18 - else MENU_ITEM_FUNCTION_P(_i("Mesh [7x7]"), mbl_mesh_toggle); ////MSG_MESH_7x7 c=18 - switch (mbl_z_probe_nr) { - case 1: MENU_ITEM_FUNCTION_P(_i("Z-probe nr. [1]"), mbl_probe_nr_toggle); break; ////MSG_Z_PROBE_NR_1 c=18 - case 5: MENU_ITEM_FUNCTION_P(_i("Z-probe nr. [5]"), mbl_probe_nr_toggle); break; ////MSG_Z_PROBE_NR_1 c=18 - default: MENU_ITEM_FUNCTION_P(_i("Z-probe nr. [3]"), mbl_probe_nr_toggle); break; ////MSG_Z_PROBE_NR_1 c=18 - } - if (points_nr == 7) { - if (magnet_elimination) MENU_ITEM_FUNCTION_P(_i("Magnets comp. [On]"), mbl_magnets_elimination_toggle); ////MSG_MAGNETS_COMP_ON c=18 - else MENU_ITEM_FUNCTION_P(_i("Magnets comp.[Off]"), mbl_magnets_elimination_toggle); ////MSG_MAGNETS_COMP_OFF c=18 - } - else menu_item_text_P(_i("Magnets comp.[N/A]")); ////MSG_MAGNETS_COMP_NA c=18 + MENU_ITEM_BACK_P(_T(MSG_SETTINGS)); + sToggle[0] = points_nr + '0'; + sToggle[1] = 'x'; + sToggle[2] = points_nr + '0'; + sToggle[3] = 0; + MENU_ITEM_TOGGLE(_T(MSG_MESH), sToggle, mbl_mesh_toggle); + sToggle[0] = mbl_z_probe_nr + '0'; + sToggle[1] = 0; + MENU_ITEM_TOGGLE(_T(MSG_Z_PROBE_NR), sToggle, mbl_probe_nr_toggle); + MENU_ITEM_TOGGLE_P(_T(MSG_MAGNETS_COMP), (points_nr == 7) ? (magnet_elimination ? _T(MSG_ON): _T(MSG_OFF)) : _T(MSG_NA), mbl_magnets_elimination_toggle); MENU_END(); //SETTINGS_MBL_MODE; } diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 2f3bbfc8f..73c1e9c27 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -912,14 +912,14 @@ # "FINDA:" -# -"Firmware [none]" +#MSG_FIRMWARE +"Firmware" -# -"Firmware [strict]" +#MSG_STRICT +"Strict" -# -"Firmware [warn]" +#MSG_WARN +"Warn" # "HW Setup" @@ -927,20 +927,11 @@ # "IR:" -# -"Magnets comp.[N/A]" +#MSG_MAGNETS_COMP +"Magnets comp." -# -"Magnets comp.[Off]" - -# -"Magnets comp. [On]" - -# -"Mesh [3x3]" - -# -"Mesh [7x7]" +#MSG_MESH +"Mesh" # "Mesh bed leveling" @@ -948,41 +939,17 @@ # "MK3S firmware detected on MK3 printer" -# -"MMU Mode [Normal]" - -# -"MMU Mode[Stealth]" +#MSG_MMU_MODE +"MMU Mode" # "Mode change in progress ..." -# -"Model [none]" +#MSG_MODEL +"Model" -# -"Model [strict]" - -# -"Model [warn]" - -# -"Nozzle d. [0.25]" - -# -"Nozzle d. [0.40]" - -# -"Nozzle d. [0.60]" - -# -"Nozzle [none]" - -# -"Nozzle [strict]" - -# -"Nozzle [warn]" +#MSG_NOZZLE_DIAMETER +"Nozzle d." # "G-code sliced for a different level. Continue?" @@ -1029,8 +996,8 @@ # "Sheet" -# -"Sound [assist]" +#MSG_SOUND_BLIND +"Assist" # "Steel sheets" @@ -1038,11 +1005,5 @@ # "Z-correct:" -# -"Z-probe nr. [1]" - -# -"Z-probe nr. [3]" - -# -"Z-probe nr. [5]" +#MSG_Z_PROBE_NR +"Z-probe nr." diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index aed952bad..0fc920ad5 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -1218,17 +1218,17 @@ "FINDA:" "\x00" -# -"Firmware [none]" -"Firmware [Zadne]" +#MSG_FIRMWARE +"Firmware" +"\x00" -# -"Firmware [strict]" -"Firmware [Prisne]" +#MSG_STRICT +"Strict" +"Prisne" -# -"Firmware [warn]" -"Firmware[Varovat]" +#MSG_WARN +"Warn" +"Varovat" # "HW Setup" @@ -1238,25 +1238,13 @@ "IR:" "\x00" -# -"Magnets comp.[N/A]" -"Komp. magnetu[N/A]" +#MSG_MAGNETS_COMP +"Magnets comp." +"Komp. magnetu" -# -"Magnets comp.[Off]" -"Komp. magnetu[Vyp]" - -# -"Magnets comp. [On]" -"Komp. magnetu[Zap]" - -# -"Mesh [3x3]" -"Mesh [3x3]" - -# -"Mesh [7x7]" -"Mesh [7x7]" +#MSG_MESH +"Mesh" +"\x00" # "Mesh bed leveling" @@ -1266,53 +1254,21 @@ "MK3S firmware detected on MK3 printer" "MK3S firmware detekovan na tiskarne MK3" -# -"MMU Mode [Normal]" -"MMU mod [Normal]" - -# -"MMU Mode[Stealth]" -"MMU Mod [Tichy]" +#MSG_MMU_MODE +"MMU Mode" +"MMU mod" # "Mode change in progress ..." "Probiha zmena modu..." -# -"Model [none]" -"Model [Zadne]" +#MSG_MODEL +"Model" +"\x00" -# -"Model [strict]" -"Model [Prisne]" - -# -"Model [warn]" -"Model [Varovat]" - -# -"Nozzle d. [0.25]" -"Tryska [0.25]" - -# -"Nozzle d. [0.40]" -"Tryska [0.40]" - -# -"Nozzle d. [0.60]" -"Tryska [0.60]" - -# -"Nozzle [none]" -"Tryska [Zadne]" - -# -"Nozzle [strict]" -"Tryska [Prisne]" - -# -"Nozzle [warn]" -"Tryska [Varovat]" +#MSG_NOZZLE_DIAMETER +"Nozzle d." +"Tryska" # "G-code sliced for a different level. Continue?" @@ -1374,9 +1330,9 @@ "Sheet" "Plat" -# -"Sound [assist]" -"Zvuk [Asist.]" +#MSG_SOUND_BLIND +"Assist" +"Asist." # "Steel sheets" @@ -1386,14 +1342,6 @@ "Z-correct:" "Korekce Z:" -# -"Z-probe nr. [1]" -"Pocet mereni Z [1]" - -# -"Z-probe nr. [3]" -"Pocet mereni Z [3]" - -# -"Z-probe nr. [5]" -"Pocet mereni Z [5]" +#MSG_Z_PROBE_NR +"Z-probe nr." +"Pocet mereni Z" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index bf850c6a6..91107d8e8 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -1218,17 +1218,17 @@ "FINDA:" "\x00" -# -"Firmware [none]" -"Firmware [ohne]" +#MSG_FIRMWARE +"Firmware" +"\x00" -# -"Firmware [strict]" -"Firmware [strikt]" +#MSG_STRICT +"Strict" +"Strikt" -# -"Firmware [warn]" -"Firmware [warnen]" +#MSG_WARN +"Warn" +"Warnen" # "HW Setup" @@ -1238,25 +1238,13 @@ "IR:" "\x00" -# -"Magnets comp.[N/A]" -"Magnet Komp. [nv]" +#MSG_MAGNETS_COMP +"Magnets comp." +"Magnet Komp." -# -"Magnets comp.[Off]" -"Magnet Komp. [Aus]" - -# -"Magnets comp. [On]" -"Magnet Komp. [An]" - -# -"Mesh [3x3]" -"Gitter [3x3]" - -# -"Mesh [7x7]" -"Gitter [7x7]" +#MSG_MESH +"Mesh" +"Gitter" # "Mesh bed leveling" @@ -1266,53 +1254,21 @@ "MK3S firmware detected on MK3 printer" "MK3S-Firmware auf MK3-Drucker erkannt" -# -"MMU Mode [Normal]" -"MMU Modus[Normal]" - -# -"MMU Mode[Stealth]" -"MMU Mod.[Stealth]" +#MSG_MMU_MODE +"MMU Mode" +"MMU Modus" # "Mode change in progress ..." "Moduswechsel erfolgt..." -# -"Model [none]" -"Modell [ohne]" +#MSG_MODEL +"Model" +"Modell" -# -"Model [strict]" -"Modell [strikt]" - -# -"Model [warn]" -"Modell [warnen]" - -# -"Nozzle d. [0.25]" -"Duese D. [0.25]" - -# -"Nozzle d. [0.40]" -"Duese D. [0.40]" - -# -"Nozzle d. [0.60]" -"Duese D. [0.60]" - -# -"Nozzle [none]" -"Duese [ohne]" - -# -"Nozzle [strict]" -"Duese [strikt]" - -# -"Nozzle [warn]" -"Duese [warnen]" +#MSG_NOZZLE_DIAMETER +"Nozzle d." +"Duese D." # "G-code sliced for a different level. Continue?" @@ -1374,9 +1330,9 @@ "Sheet" "Blech" -# -"Sound [assist]" -"Sound [Assist]" +#MSG_SOUND_BLIND +"Assist" +"\x00" # "Steel sheets" @@ -1386,14 +1342,6 @@ "Z-correct:" "Z-Korrektur:" -# -"Z-probe nr. [1]" -"Z-Probe Nr. [1]" - -# -"Z-probe nr. [3]" -"Z-Probe Nr. [3]" - -# -"Z-probe nr. [5]" -"Z-Probe Nr. [5]" +#MSG_Z_PROBE_NR +"Z-probe nr." +"\x00" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index 0b29393ae..565399669 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -1218,17 +1218,17 @@ "FINDA:" "FINDA:" -# -"Firmware [none]" -"Firmware[ninguno]" +#MSG_FIRMWARE +"Firmware" +"\x00" -# -"Firmware [strict]" -"Firmware[estrict]" +#MSG_STRICT +"Strict" +"Estrict" -# -"Firmware [warn]" -"Firmware [aviso]" +#MSG_WARN +"Warn" +"Aviso" # "HW Setup" @@ -1238,25 +1238,13 @@ "IR:" "\x00" -# -"Magnets comp.[N/A]" -"Comp. imanes [N/A]" +#MSG_MAGNETS_COMP +"Magnets comp." +"Comp. imanes" -# -"Magnets comp.[Off]" -"Comp. imanes [Off]" - -# -"Magnets comp. [On]" -"Comp. imanes [On]" - -# -"Mesh [3x3]" -"Malla [3x3]" - -# -"Mesh [7x7]" -"Malla [7x7]" +#MSG_MESH +"Mesh" +"Malla" # "Mesh bed leveling" @@ -1266,53 +1254,21 @@ "MK3S firmware detected on MK3 printer" "Firmware MK3S detectado en impresora MK3" -# -"MMU Mode [Normal]" -"Modo MMU [Normal]" - -# -"MMU Mode[Stealth]" -"Modo MMU[Silenci]" +#MSG_MMU_MODE +"MMU Mode" +"Modo MMU" # "Mode change in progress ..." "Cambio de modo progresando ..." -# -"Model [none]" -"Modelo [ninguno]" +#MSG_MODEL +"Model" +"Modelo" -# -"Model [strict]" -"Modelo [estricto]" - -# -"Model [warn]" -"Modelo [aviso]" - -# -"Nozzle d. [0.25]" -"Diam. nozzl[0.25]" - -# -"Nozzle d. [0.40]" -"Diam. nozzl[0.40]" - -# -"Nozzle d. [0.60]" -"Diam. nozzl[0.60]" - -# -"Nozzle [none]" -"Nozzle [ninguno]" - -# -"Nozzle [strict]" -"Nozzle [estricto]" - -# -"Nozzle [warn]" -"Nozzle [aviso]" +#MSG_NOZZLE_DIAMETER +"Nozzle d." +"Diam. nozzl" # "G-code sliced for a different level. Continue?" @@ -1374,9 +1330,9 @@ "Sheet" "Lamina" -# -"Sound [assist]" -"Sonido [asistido]" +#MSG_SOUND_BLIND +"Assist" +"Asistido" # "Steel sheets" @@ -1386,14 +1342,6 @@ "Z-correct:" "Corregir-Z:" -# -"Z-probe nr. [1]" -"Z-sensor nr. [1]" - -# -"Z-probe nr. [3]" -"Z-sensor nr. [3]" - -# -"Z-probe nr. [5]" -"Z-sensor nr. [5]" +#MSG_Z_PROBE_NR +"Z-probe nr." +"Z-sensor nr." diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index 9f29192a6..b0b62e9dc 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -1215,17 +1215,17 @@ "FINDA:" "FINDA:" -# -"Firmware [none]" -"Firmware [aucune]" +#MSG_FIRMWARE +"Firmware" +"\x00" -# -"Firmware [strict]" -"Firmware[stricte]" +#MSG_STRICT +"Strict" +"Stricte" -# -"Firmware [warn]" -"Firmware [avert]" +#MSG_WARN +"Warn" +"Avert" # "HW Setup" @@ -1235,24 +1235,12 @@ "IR:" "IR:" -# -"Magnets comp.[N/A]" -"Compens. aim.[N/A]" +#MSG_MAGNETS_COMP +"Magnets comp." +"Compens. aim." -# -"Magnets comp.[Off]" -"Compens. aim.[off]" - -# -"Magnets comp. [On]" -"Compens. aim. [on]" - -# -"Mesh [3x3]" -"\x00" - -# -"Mesh [7x7]" +#MSG_MESH +"Mesh" "\x00" # @@ -1263,53 +1251,21 @@ "MK3S firmware detected on MK3 printer" "Firmware MK3S detecte sur imprimante MK3" -# -"MMU Mode [Normal]" -"Mode MMU [normal]" - -# -"MMU Mode[Stealth]" -"Mode MMU [feutre]" +#MSG_MMU_MODE +"MMU Mode" +"Mode MMU" # "Mode change in progress ..." "Changement de mode en cours..." -# -"Model [none]" -"Modele [aucune]" +#MSG_MODEL +"Model" +"Modele" -# -"Model [strict]" -"Modele [stricte]" - -# -"Model [warn]" -"Modele [avert]" - -# -"Nozzle d. [0.25]" -"Diam. buse [0.25]" - -# -"Nozzle d. [0.40]" -"Diam. buse [0.40]" - -# -"Nozzle d. [0.60]" -"Diam. buse [0.60]" - -# -"Nozzle [none]" -"Buse [aucune]" - -# -"Nozzle [strict]" -"Buse [stricte]" - -# -"Nozzle [warn]" -"Buse [avert]" +#MSG_NOZZLE_DIAMETER +"Nozzle d." +"Diam. buse" # "G-code sliced for a different level. Continue?" @@ -1371,9 +1327,9 @@ "Sheet" "Plaque" -# -"Sound [assist]" -"Son [assist]" +#MSG_SOUND_BLIND +"Assist" +"\x00" # "Steel sheets" @@ -1383,15 +1339,6 @@ "Z-correct:" "Correct-Z:" -# -"Z-probe nr. [1]" -"Mesurer x-fois [1]" - -# -"Z-probe nr. [3]" -"Mesurer x-fois [3]" - -# -"Z-probe nr. [5]" -"Mesurer x-fois [5]" - +#MSG_Z_PROBE_NR +"Z-probe nr." +"Mesurer x-fois" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index c3304400e..44285a43f 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -1217,17 +1217,17 @@ "FINDA:" "\x00" -# -"Firmware [none]" -"Firmware[nessuno]" +#MSG_FIRMWARE +"Firmware" +"\x00" -# -"Firmware [strict]" -"Firmware [esatto]" +#MSG_STRICT +"Strict" +"Esatto" -# -"Firmware [warn]" -"Firmware [avviso]" +#MSG_WARN +"Warn" +"Avviso" # "HW Setup" @@ -1237,25 +1237,13 @@ "IR:" "\x00" -# -"Magnets comp.[N/A]" -"Comp. Magneti[N/A]" +#MSG_MAGNETS_COMP +"Magnets comp." +"Comp. Magneti" -# -"Magnets comp.[Off]" -"Comp. Magneti[off]" - -# -"Magnets comp. [On]" -"Comp. Magneti [on]" - -# -"Mesh [3x3]" -"Griglia [3x3]" - -# -"Mesh [7x7]" -"Griglia [7x7]" +#MSG_MESH +"Mesh" +"Griglia" # "Mesh bed leveling" @@ -1265,53 +1253,21 @@ "MK3S firmware detected on MK3 printer" "Firmware MK3S rilevato su stampante MK3" -# -"MMU Mode [Normal]" -"Modalita MMU [Normale]" - -# -"MMU Mode[Stealth]" -"Modalita MMU [Silenziosa]" +#MSG_MMU_MODE +"MMU Mode" +"Mod. MMU" # "Mode change in progress ..." "Cambio modalita in corso ..." -# -"Model [none]" -"Modello [nessuno]" +#MSG_MODEL +"Model" +"Modello" -# -"Model [strict]" -"Modello [esatto]" - -# -"Model [warn]" -"Modello [avviso]" - -# -"Nozzle d. [0.25]" -"Diam.Ugello[0.25]" - -# -"Nozzle d. [0.40]" -"Diam.Ugello[0.40]" - -# -"Nozzle d. [0.60]" -"Diam.Ugello[0.60]" - -# -"Nozzle [none]" -"Ugello [nessuno]" - -# -"Nozzle [strict]" -"Ugello [esatto]" - -# -"Nozzle [warn]" -"Ugello [avviso]" +#MSG_NOZZLE_DIAMETER +"Nozzle d." +"Diam.Ugello" # "G-code sliced for a different level. Continue?" @@ -1373,9 +1329,9 @@ "Sheet" "Piano" -# -"Sound [assist]" -"Suono [assist.]" +#MSG_SOUND_BLIND +"Assist" +"Assist." # "Steel sheets" @@ -1385,14 +1341,6 @@ "Z-correct:" "Correzione-Z:" -# -"Z-probe nr. [1]" -"Z-probe nr. [1]" - -# -"Z-probe nr. [3]" -"Z-probe nr. [3]" - -# -"Z-probe nr. [5]" -"Z-probe nr. [5]" +#MSG_Z_PROBE_NR +"Z-probe nr." +"\x00" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 6e86ff0cf..25c4d14f5 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -53,6 +53,7 @@ #MSG_AUTO_DEPLETE c=17 r=1 "SpoolJoin" "\x00" + #MSG_AUTO_HOME "Auto home" "Auto zerowanie" @@ -1216,17 +1217,17 @@ "FINDA:" "\x00" -# -"Firmware [none]" -"Firmware [brak]" +#MSG_FIRMWARE +"Firmware" +"\x00" -# -"Firmware [strict]" -"Firmware [restr.]" +#MSG_STRICT +"Strict" +"Restr." -# -"Firmware [warn]" -"Firmware[ostrzez]" +#MSG_WARN +"Warn" +"Ostrzez" # "HW Setup" @@ -1236,25 +1237,13 @@ "IR:" "\x00" -# -"Magnets comp.[N/A]" -"Kor. magnesow[N/D]" +#MSG_MAGNETS_COMP +"Magnets comp." +"Kor. magnesow" -# -"Magnets comp.[Off]" -"Kor. magnesow[wyl]" - -# -"Magnets comp. [On]" -"Kor. magnesow [wl]" - -# -"Mesh [3x3]" -"Siatka [3x3]" - -# -"Mesh [7x7]" -"Siatka [7x7]" +#MSG_MESH +"Mesh" +"Siatka" # "Mesh bed leveling" @@ -1264,53 +1253,21 @@ "MK3S firmware detected on MK3 printer" "Wykryto firmware MK3S w drukarce MK3" -# -"MMU Mode [Normal]" -"Tryb MMU[Normaln]" - -# -"MMU Mode[Stealth]" -"Tryb MMU[Stealth]" +#MSG_MMU_MODE +"MMU Mode" +"Tryb MMU" # "Mode change in progress ..." "Trwa zmiana trybu..." -# -"Model [none]" -"Model [brak]" +#MSG_MODEL +"Model" +"\x00" -# -"Model [strict]" -"Model [restrykc.]" - -# -"Model [warn]" -"Model [ostrzez.]" - -# -"Nozzle d. [0.25]" -"Sr. dyszy [0,25]" - -# -"Nozzle d. [0.40]" -"Sr. dyszy [0,40]" - -# -"Nozzle d. [0.60]" -"Sr. dyszy [0,60]" - -# -"Nozzle [none]" -"Dysza [brak]" - -# -"Nozzle [strict]" -"Dysza [restrykc.]" - -# -"Nozzle [warn]" -"Dysza [ostrzez.]" +#MSG_NOZZLE_DIAMETER +"Nozzle d." +"Sr. dyszy" # "G-code sliced for a different level. Continue?" @@ -1372,9 +1329,9 @@ "Sheet" "Plyta" -# -"Sound [assist]" -"Dzwiek [asyst.]" +#MSG_SOUND_BLIND +"Assist" +"Asyst." # "Steel sheets" @@ -1384,14 +1341,6 @@ "Z-correct:" "Korekcja-Z:" -# -"Z-probe nr. [1]" -"Ilosc Pomiarow [1]" - -# -"Z-probe nr. [3]" -"Ilosc Pomiarow [3]" - -# -"Z-probe nr. [5]" -"Ilosc Pomiarow [5]" +#MSG_Z_PROBE_NR +"Z-probe nr." +"Ilosc Pomiarow" From 23cf076242a7fdf5c43beb6a1684bff189761844 Mon Sep 17 00:00:00 2001 From: Panayiotis-git <32783577+Panayiotis-git@users.noreply.github.com> Date: Tue, 12 Nov 2019 21:32:39 +0200 Subject: [PATCH 141/271] =?UTF-8?q?Add=20oversighted=20=E2=80=98break?= =?UTF-8?q?=E2=80=99=20statement=20at=20the=20M603=20command's=20source?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Firmware/Marlin_main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index d6bb77ef3..aecb7e39e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7250,9 +7250,10 @@ Sigma_Exit: //! ### M603 - Stop print // ------------------------------- - case 603: { + case 603: { lcd_print_stop(); } + break; #ifdef PINDA_THERMISTOR //! ### M860 - Wait for extruder temperature (PINDA) From 28e812d91fe2b4633c9427abdf554e5a9449dd17 Mon Sep 17 00:00:00 2001 From: leptun Date: Wed, 2 Oct 2019 17:34:09 +0300 Subject: [PATCH 142/271] Mesh bed leveling testing --- Firmware/Marlin_main.cpp | 10 +++------- Firmware/mesh_bed_calibration.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 45dd118c4..f65ec4b68 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4767,11 +4767,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) z_offset_u = eeprom_read_word((uint16_t*)(EEPROM_BED_CALIBRATION_Z_JITTER + 2 * (ix + iy * 3 - 1))); } z0 = mbl.z_values[0][0] + *reinterpret_cast(&z_offset_u) * 0.01; - #ifdef SUPPORT_VERBOSITY - if (verbosity_level >= 1) { - printf_P(PSTR("Bed leveling, point: %d, calibration Z stored in eeprom: %d, calibration z: %f \n"), mesh_point, z_offset_u, z0); - } - #endif // SUPPORT_VERBOSITY + // printf_P(PSTR("Bed leveling, point: %d, calibration Z stored in eeprom: %d, calibration z: %f \n"), mesh_point, z_offset_u, z0); } // Move Z up to MESH_HOME_Z_SEARCH. @@ -4798,7 +4794,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); #endif // SUPPORT_VERBOSITY - //printf_P(PSTR("after clamping: [%f;%f]\n"), current_position[X_AXIS], current_position[Y_AXIS]); + printf_P(PSTR("after clamping: [%f;%f]\n"), current_position[X_AXIS], current_position[Y_AXIS]); plan_buffer_line_curposXYZE(XY_AXIS_FEEDRATE, active_extruder); st_synchronize(); @@ -4809,7 +4805,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; } if (init_z_bckp - current_position[Z_AXIS] < 0.1f) { //broken cable or initial Z coordinate too low. Go to MESH_HOME_Z_SEARCH and repeat last step (z-probe) again to distinguish between these two cases. - //printf_P(PSTR("Another attempt! Current Z position: %f\n"), current_position[Z_AXIS]); + printf_P(PSTR("Another attempt! Current Z position: %f\n"), current_position[Z_AXIS]); current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder); st_synchronize(); diff --git a/Firmware/mesh_bed_calibration.cpp b/Firmware/mesh_bed_calibration.cpp index 88cbc671a..fed100e68 100644 --- a/Firmware/mesh_bed_calibration.cpp +++ b/Firmware/mesh_bed_calibration.cpp @@ -991,7 +991,7 @@ inline bool find_bed_induction_sensor_point_z(float minimum_z, uint8_t n_iter, i update_current_position_z(); //printf_P(PSTR("Zs: %f, Z: %f, delta Z: %f"), z_bckp, current_position[Z_AXIS], (z_bckp - current_position[Z_AXIS])); if (abs(current_position[Z_AXIS] - z_bckp) < 0.025) { - //printf_P(PSTR("PINDA triggered immediately, move Z higher and repeat measurement\n")); + printf_P(PSTR("PINDA triggered immediately, move Z higher and repeat measurement\n")); current_position[Z_AXIS] += 0.5; go_to_current(homing_feedrate[Z_AXIS]/60); current_position[Z_AXIS] = minimum_z; @@ -1019,10 +1019,10 @@ inline bool find_bed_induction_sensor_point_z(float minimum_z, uint8_t n_iter, i float dz = i?abs(current_position[Z_AXIS] - (z / i)):0; z += current_position[Z_AXIS]; //printf_P(PSTR("Z[%d] = %d, dz=%d\n"), i, (int)(current_position[Z_AXIS] * 1000), (int)(dz * 1000)); - //printf_P(PSTR("Z- measurement deviation from avg value %f um\n"), dz); + printf_P(PSTR("Z- measurement deviation from avg value %f um\n"), dz); if (dz > 0.05) { //deviation > 50um if (high_deviation_occured == false) { //first occurence may be caused in some cases by mechanic resonance probably especially if printer is placed on unstable surface - //printf_P(PSTR("high dev. first occurence\n")); + printf_P(PSTR("high dev. first occurence\n")); delay_keep_alive(500); //damping //start measurement from the begining, but this time with higher movements in Z axis which should help to reduce mechanical resonance high_deviation_occured = true; @@ -1033,7 +1033,7 @@ inline bool find_bed_induction_sensor_point_z(float minimum_z, uint8_t n_iter, i goto error; } } - //printf_P(PSTR("PINDA triggered at %f\n"), current_position[Z_AXIS]); + printf_P(PSTR("PINDA triggered at %f\n"), current_position[Z_AXIS]); } current_position[Z_AXIS] = z; if (n_iter > 1) From 9e780f0b2b40a19a776bd218d891e99dbc80c39e Mon Sep 17 00:00:00 2001 From: DRracer Date: Fri, 15 Nov 2019 09:26:56 +0100 Subject: [PATCH 143/271] remove ESC sequence --- Firmware/ultralcd.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 7dd8b0274..d2cb51a15 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6959,7 +6959,6 @@ void lcd_belttest_print(const char* msg, uint16_t X, uint16_t Y) lcd_clear(); lcd_printf_P( _N( - ESC_H(0,0) "%S:\n" "%S\n" "X:%d\n" From f6c35c5d5f1e292716a456ca09e43f55c2a4dd34 Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Fri, 15 Nov 2019 08:58:58 -0500 Subject: [PATCH 144/271] Removed separate fix for #2089 Per PR fix request --- Firmware/ultralcd.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 66e08143d..2235c7af0 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6552,15 +6552,6 @@ static void lcd_rename_sheet_menu() lcd_putc(menuData->name[i]); } lcd_set_cursor(menuData->selected, 1); - if (menuData->selected>0) - { - lcd_set_cursor(menuData->selected-1, 1); - lcd_putc(' '); - } - else - { - lcd_set_cursor(menuData->selected, 1); - } lcd_putc('^'); if (lcd_clicked()) { From 460f6c3b5e8ac41da50cb00562e84e1074dcc133 Mon Sep 17 00:00:00 2001 From: DRracer Date: Fri, 15 Nov 2019 17:47:39 +0100 Subject: [PATCH 145/271] update message --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 0630eb7c1..1088770da 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -4819,7 +4819,7 @@ void lcd_first_layer_calibration_reset() eeprom_read_block(sheet_name, &EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].name, sizeof(Sheet::name)); lcd_set_cursor(0, 0); float offset = static_cast(eeprom_read_word(reinterpret_cast(&EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].z_offset)))/cs.axis_steps_per_unit[Z_AXIS]; - lcd_printf_P(_i("Sheet %.7s actual\nZ offset: %+1.3f mm\n%cContinue\n%cStart from zero"), //// \n denotes line break, %.7s is replaced by 7 character long sheet name, %+1.3f is replaced by 6 character long floating point number, %c is replaced by > or white space (one character) based on whether first or second option is selected. % denoted place holders can not be reordered. r=4 + lcd_printf_P(_i("Sheet %.7s\nZ offset: %+1.3f mm\n%cContinue\n%cStart from zero"), //// \n denotes line break, %.7s is replaced by 7 character long sheet name, %+1.3f is replaced by 6 character long floating point number, %c is replaced by > or white space (one character) based on whether first or second option is selected. % denoted place holders can not be reordered. r=4 sheet_name, offset, menuData->reset ? ' ' : '>', menuData->reset ? '>' : ' '); } From 359c44712718b506166f159d9ec6a3c769180a9d Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Sat, 16 Nov 2019 22:44:34 +0200 Subject: [PATCH 146/271] Do not check for fanError if it is not enabled on resume Fix typos --- Firmware/ultralcd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 2ed8d5de4..a6f92f47b 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6652,6 +6652,7 @@ static void lcd_test_menu() static bool fan_error_selftest() { #ifdef FANCHECK + if (!fans_check_enabled) return 0; fanSpeed = 255; #ifdef FAN_SOFT_PWM @@ -6682,9 +6683,8 @@ static bool fan_error_selftest() return 1; } #endif +#endif //FANCHECK return 0; - -#endif //FANCHECK } //! @brief Resume paused print From 2e0034d915b073d11807eb815e63a7c4374cd9c7 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Sun, 17 Nov 2019 09:53:14 +0200 Subject: [PATCH 147/271] Update Toggles and Translations --- Firmware/messages.c | 7 +++++++ Firmware/messages.h | 7 +++++++ Firmware/ultralcd.cpp | 17 ++++++----------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index f38c29390..9d878f6ec 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -128,6 +128,13 @@ const char MSG_SOUND_BLIND[] PROGMEM_I1 = ISTR("Assist"); //// const char MSG_MESH[] PROGMEM_I1 = ISTR("Mesh"); //// const char MSG_Z_PROBE_NR[] PROGMEM_I1 = ISTR("Z-probe nr."); //// const char MSG_MAGNETS_COMP[] PROGMEM_I1 = ISTR("Magnets comp."); //// +const char MSG_BRIGHTNESS[] PROGMEM_I1 = ISTR("Brightness"); //// +const char MSG_BL_HIGH[] PROGMEM_I1 = ISTR("Level Bright"); //// +const char MSG_BL_LOW[] PROGMEM_I1 = ISTR("Level Dimmed"); //// +const char MSG_TIMEOUT[] PROGMEM_I1 = ISTR("Timeout"); //// +const char MSG_BRIGHT[] PROGMEM_I1 = ISTR("Bright"); //// +const char MSG_DIM[] PROGMEM_I1 = ISTR("Dim"); //// +const char MSG_AUTO[] PROGMEM_I1 = ISTR("Auto"); //// //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index 30671533c..4de5c7cfd 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -128,6 +128,13 @@ extern const char MSG_SOUND_BLIND[]; extern const char MSG_MESH[]; extern const char MSG_Z_PROBE_NR[]; extern const char MSG_MAGNETS_COMP[]; +extern const char MSG_BRIGHTNESS[]; +extern const char MSG_BL_HIGH[]; +extern const char MSG_BL_LOW[]; +extern const char MSG_TIMEOUT[]; +extern const char MSG_BRIGHT[]; +extern const char MSG_DIM[]; +extern const char MSG_AUTO[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 1c2be1acf..0a721cfd2 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5787,7 +5787,7 @@ static void lcd_settings_menu() #ifdef LCD_BL_PIN if (backlightSupport) { - MENU_ITEM_SUBMENU_P(_i("Brightness"), lcd_backlight_menu); + MENU_ITEM_SUBMENU_P(_T(MSG_BRIGHTNESS), lcd_backlight_menu); } #endif //LCD_BL_PIN @@ -7113,7 +7113,7 @@ static void lcd_tune_menu() #ifdef LCD_BL_PIN if (backlightSupport) { - MENU_ITEM_SUBMENU_P(_i("Brightness"), lcd_backlight_menu); + MENU_ITEM_SUBMENU_P(_T(MSG_BRIGHTNESS), lcd_backlight_menu); } #endif //LCD_BL_PIN MENU_END(); @@ -7186,15 +7186,10 @@ static void lcd_backlight_menu() ); MENU_ITEM_BACK_P(_T(MSG_BACK)); - MENU_ITEM_EDIT_int3_P(_i("Level Bright"), &backlightLevel_HIGH, backlightLevel_LOW, 255); - MENU_ITEM_EDIT_int3_P(_i("Level Dimmed"), &backlightLevel_LOW, 0, backlightLevel_HIGH); - switch (backlightMode) - { - case BACKLIGHT_MODE_BRIGHT: MENU_ITEM_FUNCTION_P(_i("Mode [Bright]"), backlight_mode_toggle); break; - case BACKLIGHT_MODE_DIM: MENU_ITEM_FUNCTION_P(_i("Mode [Dim]"), backlight_mode_toggle); break; - default: MENU_ITEM_FUNCTION_P(_i("Mode [Auto]"), backlight_mode_toggle); break; - } - MENU_ITEM_EDIT_int3_P(_i("Timeout"), &backlightTimer_period, 1, 999); + MENU_ITEM_EDIT_int3_P(_T(MSG_BL_HIGH), &backlightLevel_HIGH, backlightLevel_LOW, 255); + MENU_ITEM_EDIT_int3_P(_T(MSG_BL_LOW), &backlightLevel_LOW, 0, backlightLevel_HIGH); + MENU_ITEM_TOGGLE_P(_T(MSG_MODE), ((backlightMode==BACKLIGHT_MODE_BRIGHT) ? _T(MSG_BRIGHT) : ((backlightMode==BACKLIGHT_MODE_DIM) ? _T(MSG_DIM) : _T(MSG_AUTO))), backlight_mode_toggle); + MENU_ITEM_EDIT_int3_P(_T(MSG_TIMEOUT), &backlightTimer_period, 1, 999); MENU_END(); } From 14104e7bf98b5bf28d6db64585a65bf40b55196a Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Sun, 17 Nov 2019 10:44:11 +0200 Subject: [PATCH 148/271] Clear error flag when fanError is disabled --- Firmware/ultralcd.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index a6f92f47b..fdb1e954f 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2270,6 +2270,7 @@ static void lcd_support_menu() void lcd_set_fan_check() { fans_check_enabled = !fans_check_enabled; eeprom_update_byte((unsigned char *)EEPROM_FAN_CHECK_ENABLED, fans_check_enabled); + if (fans_check_enabled == false) fan_check_error = EFCE_OK; //reset error if fanCheck is disabled during error. Allows resuming print. } #ifdef MMU_HAS_CUTTER From b077303156aec0a5a775654334aa405ba36aacc2 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Sun, 17 Nov 2019 11:10:13 +0200 Subject: [PATCH 149/271] Fix compile error --- Firmware/ultralcd.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index fdb1e954f..3bc94b81e 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2270,7 +2270,9 @@ static void lcd_support_menu() void lcd_set_fan_check() { fans_check_enabled = !fans_check_enabled; eeprom_update_byte((unsigned char *)EEPROM_FAN_CHECK_ENABLED, fans_check_enabled); +#ifdef FANCHECK if (fans_check_enabled == false) fan_check_error = EFCE_OK; //reset error if fanCheck is disabled during error. Allows resuming print. +#endif //FANCHECK } #ifdef MMU_HAS_CUTTER From e66574ac5f547c766bb04a0c8bd9b4a8c28d7a2e Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 19 Nov 2019 13:51:10 +0200 Subject: [PATCH 150/271] Updated branch to use TOGGLE --- Firmware/messages.c | 3 +++ Firmware/messages.h | 3 +++ Firmware/ultralcd.cpp | 8 ++++---- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index f38c29390..bb2e9510a 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -128,6 +128,9 @@ const char MSG_SOUND_BLIND[] PROGMEM_I1 = ISTR("Assist"); //// const char MSG_MESH[] PROGMEM_I1 = ISTR("Mesh"); //// const char MSG_Z_PROBE_NR[] PROGMEM_I1 = ISTR("Z-probe nr."); //// const char MSG_MAGNETS_COMP[] PROGMEM_I1 = ISTR("Magnets comp."); //// +const char MSG_FS_ACTION[] PROGMEM_I1 = ISTR("FS Action"); //// +const char MSG_FS_CONTINUE[] PROGMEM_I1 = ISTR("Cont."); //// +const char MSG_FS_PAUSE[] PROGMEM_I1 = ISTR("Pause"); //// //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index 30671533c..60a4cc1c1 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -128,6 +128,9 @@ extern const char MSG_SOUND_BLIND[]; extern const char MSG_MESH[]; extern const char MSG_Z_PROBE_NR[]; extern const char MSG_MAGNETS_COMP[]; +extern const char MSG_FS_ACTION[]; +extern const char MSG_FS_CONTINUE[]; +extern const char MSG_FS_PAUSE[]; //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index e2c82c036..68710ec31 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5726,10 +5726,10 @@ do\ switch(oFsensorActionNA)\ {\ case ClFsensorActionNA::_Continue:\ - MENU_ITEM_FUNCTION_P(_i("FS Action [cont.]"),lcd_fsensor_actionNA_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_FS_ACTION), _T(MSG_FS_CONTINUE), lcd_fsensor_actionNA_set);\ break;\ case ClFsensorActionNA::_Pause:\ - MENU_ITEM_FUNCTION_P(_i("FS Action [pause]"),lcd_fsensor_actionNA_set);\ + MENU_ITEM_TOGGLE_P(_T(MSG_FS_ACTION), _T(MSG_FS_PAUSE), lcd_fsensor_actionNA_set);\ break;\ default:\ oFsensorActionNA=ClFsensorActionNA::_Continue;\ @@ -7107,11 +7107,11 @@ static void lcd_tune_menu() if (FSensorStateMenu == 0) { if (fsensor_not_responding && (mmu_enabled == false)) { /* Filament sensor not working*/ - MENU_ITEM_FUNCTION_P(_i("Fil. sensor [N/A]"), lcd_fsensor_state_set); + MENU_ITEM_TOGGLE_P(_T(MSG_MSG_FSENSOR), _T(MSG_NA), lcd_fsensor_state_set); } else { /* Filament sensor turned off, working, no problems*/ - MENU_ITEM_FUNCTION_P(_T(MSG_FSENSOR_OFF), lcd_fsensor_state_set); + MENU_ITEM_TOGGLE_P(_T(MSG_MSG_FSENSOR), _T(MSG_OFF), lcd_fsensor_state_set); } } else { From 45b89c5728f487a3c3a408f52b86aa31d2b04ae7 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 19 Nov 2019 13:55:37 +0200 Subject: [PATCH 151/271] Fix typo --- Firmware/ultralcd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 68710ec31..465fde2b4 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7107,11 +7107,11 @@ static void lcd_tune_menu() if (FSensorStateMenu == 0) { if (fsensor_not_responding && (mmu_enabled == false)) { /* Filament sensor not working*/ - MENU_ITEM_TOGGLE_P(_T(MSG_MSG_FSENSOR), _T(MSG_NA), lcd_fsensor_state_set); + MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR), _T(MSG_NA), lcd_fsensor_state_set); } else { /* Filament sensor turned off, working, no problems*/ - MENU_ITEM_TOGGLE_P(_T(MSG_MSG_FSENSOR), _T(MSG_OFF), lcd_fsensor_state_set); + MENU_ITEM_TOGGLE_P(_T(MSG_FSENSOR), _T(MSG_OFF), lcd_fsensor_state_set); } } else { From 982c4cbf7b3b27ccabf181d07c30e62d944b113e Mon Sep 17 00:00:00 2001 From: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Thu, 21 Nov 2019 18:51:02 -0500 Subject: [PATCH 152/271] Candidate fix for homing fail hard reset --- Firmware/tmc2130.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Firmware/tmc2130.cpp b/Firmware/tmc2130.cpp index 42359ba84..f64457b5e 100755 --- a/Firmware/tmc2130.cpp +++ b/Firmware/tmc2130.cpp @@ -807,15 +807,15 @@ void tmc2130_goto_step(uint8_t axis, uint8_t step, uint8_t dir, uint16_t delay_u { dir = tmc2130_get_inv(axis)?0:1; int steps = (int)step - (int)(mscnt >> shift); - if (steps < 0) - { - dir ^= 1; - steps = -steps; - } if (steps > static_cast(cnt / 2)) { dir ^= 1; - steps = cnt - steps; + steps = cnt - steps; // This can create a negative step value + } + if (steps < 0) + { + dir ^= 1; + steps = -steps; } cnt = steps; } From 84cb37390570e0bc624cac83599eb64abb7f5476 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 26 Nov 2019 20:11:55 +0100 Subject: [PATCH 153/271] More G codes documented in RR wiki M44, M45, M47, M403, M509, M851, M601, M602, M603, M862 --- Firmware/Marlin_main.cpp | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index c6e9783c5..5ffb54602 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5739,7 +5739,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! - ### M44 - Reset the bed skew and offset calibrationM44: Reset the bed skew and offset calibration + ### M44 - Reset the bed skew and offset calibration M44: Reset the bed skew and offset calibration */ -------------------------------------------------------------------- case 44: // M44: Prusa3D: Reset the bed skew and offset calibration. @@ -5756,9 +5756,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; /*! - ### M45 - Bed skew and offset with manual Z upM45: Bed skew and offset with manual Z up + ### M45 - Bed skew and offset with manual Z up M45: Bed skew and offset with manual Z up - G80 [ V ] + M45 [ V ] - `V` - Verbosity level 1, 10 and 20 (low, mid, high). Only when SUPPORT_VERBOSITY is defined. */ ------------------------------------------------------ case 45: // M45: Prusa3D: bed skew and offset with manual Z up @@ -5777,8 +5777,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; + /*! + ### M46 - Show the assigned IP address M46: Show the assigned IP address. + */ ---------------------------------------------------- /* - case 46: + case 46: { // M46: Prusa3D: Show the assigned IP address. uint8_t ip[4]; @@ -5801,7 +5804,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) */ /*! - ### M47 - Show end stops dialog on the displayM47: Show end stops dialog on the display + ### M47 - Show end stops dialog on the display M47: Show end stops dialog on the display */ ---------------------------------------------------- case 47: @@ -5851,7 +5854,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifdef Z_PROBE_REPEATABILITY_TEST /*! - ### M48 - Z-Probe repeatability measurement function. M48: Measure Z-Probe repeatability + ### M48 - Z-Probe repeatability measurement function M48: Measure Z-Probe repeatability This function assumes the bed has been homed. Specifically, that a G28 command as been issued prior to invoking the M48 Z-Probe repeatability measurement function. Any information generated by a prior G29 Bed leveling command will be lost and need to be regenerated. @@ -7485,7 +7488,7 @@ Sigma_Exit: break; /*! - ### M403 - Set filament type (material) for particular extruder and notify the MMU M403 - Set filament type (material) for particular extruder and notify the MMU + ### M403 - Set filament type (material) for particular extruder and notify the MMU M403 - Set filament type (material) for particular extruder and notify the MMU M403 [ E | F ] @@ -7724,7 +7727,7 @@ Sigma_Exit: #endif //FILAMENTCHANGEENABLE /*! - ### M601 - Pause print G32: Undock Z Probe sled + ### M601 - Pause print M601: Pause print */ ------------------------------- case 601: { @@ -7734,7 +7737,7 @@ Sigma_Exit: break; /*! - ### M602 - Resume print G32: Undock Z Probe sled + ### M602 - Resume print M602: Resume print */ ------------------------------- case 602: { lcd_resume_print(); @@ -7742,7 +7745,7 @@ Sigma_Exit: break; /*! - ### M603 - Stop print G32: Undock Z Probe sled + ### M603 - Stop print M603: Stop print */ ------------------------------- case 603: { lcd_print_stop(); @@ -7889,14 +7892,14 @@ Sigma_Exit: #endif //PINDA_THERMISTOR /*! - ### M862 - Print checking G32: Undock Z Probe sled + ### M862 - Print checking M862: Print checking Checks the parameters of the printer and gcode and performs compatibility check - - M862.1 { P | Q } + - M862.1 { P | Q } 0.25/0.40/0.60 - M862.2 { P | Q } - M862.3 { P"" | Q } - M862.4 { P | Q } - - M862.5 { P | Q } + - M862.5 { P | Q } 0 = none, 1 = warn, 2 = strict When run with P<> argument, the check is performed against the input value. When run with Q argument, the current value is shown. @@ -7920,7 +7923,7 @@ Sigma_Exit: - MK3 (300) - MK3MMU2 (20300) - MK3S (302) - - MK3SMMU2S (20302) + - MK3SMMU2S (20302) */ ---------------------------------------------- case 862: // M862: print checking From 475551431c494572d30011126ee698b429df0230 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 26 Nov 2019 20:21:05 +0100 Subject: [PATCH 154/271] How does M862.5 P works??? --- Firmware/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 5ffb54602..394c818c6 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7899,7 +7899,7 @@ Sigma_Exit: - M862.2 { P | Q } - M862.3 { P"" | Q } - M862.4 { P | Q } - - M862.5 { P | Q } 0 = none, 1 = warn, 2 = strict + - M862.5 { P | Q } When run with P<> argument, the check is performed against the input value. When run with Q argument, the current value is shown. From 660b646b57a5bd6404549d69ccfab291af250bf8 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 27 Nov 2019 11:29:55 +0100 Subject: [PATCH 155/271] RR Wiki for Dcodes open D-1, D80, D81, D106, D2130 --- Firmware/Dcodes.cpp | 146 +++++++++++++++++++++++++++++++++- Firmware/Marlin_main.cpp | 164 ++++++++++++++++++++++++++++++++------- 2 files changed, 283 insertions(+), 27 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index d2016ded5..86dd1aa4a 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -99,7 +99,19 @@ void print_mem(uint32_t address, uint16_t count, uint8_t type, uint8_t countperl #ifdef DEBUG_DCODE3 #define EEPROM_SIZE 0x1000 -void dcode_3() + /*! + * + ### D3 - Read/Write EEPROM D3: Read/Write EEPROM + This command can be used without any additional parameters. It will read the entire eeprom. + + D3 [ A | C | X ] + + - `A` - Address (0x0000-0x0fff) + - `C` - Count (0x0001-0x1000) + - `X` - Data + * + */ + void dcode_3() { DBG(_N("D3 - Read/Write EEPROM\n")); uint16_t address = 0x0000; //default 0x0000 @@ -176,6 +188,14 @@ extern float axis_steps_per_unit[NUM_AXIS]; #endif //0 #define LOG(args...) + /*! + * + ### D-1 - Endless Loop D-1: Endless Loop + + D-1 + + * + */ void dcode__1() { printf_P(PSTR("D-1 - Endless loop\n")); @@ -185,6 +205,15 @@ void dcode__1() #ifdef DEBUG_DCODES + /*! + * + ### D0 - Reset D0: Reset + + D0 [ B ] + + - `B` - Bootloader + * + */ void dcode_0() { if (*(strchr_pointer + 1) == 0) return; @@ -203,6 +232,14 @@ void dcode_0() } } + /*! + * + ### D1 - Clear EEPROM and RESET D1: Clear EEPROM and RESET + + D1 + + * + */ void dcode_1() { LOG("D1 - Clear EEPROM and RESET\n"); @@ -213,6 +250,18 @@ void dcode_1() while(1); } + /*! + * + ### D2 - Read/Write RAM D3: Read/Write RAM + This command can be used without any additional parameters. It will read the entire eeprom. + + D3 [ A | C | X ] + + - `A` - Address (0x0000-0x1fff) + - `C` - Count (0x0001-0x2000) + - `X` - Data + * + */ void dcode_2() { LOG("D2 - Read/Write RAM\n"); @@ -256,6 +305,19 @@ void dcode_2() }*/ } + /*! + * + ### D4 - Read/Write PIN D4: Read/Write PIN + + To read the digital value of a pin you need only to define the pin number. + + D4 [ P | F | V ] + + - `P` - Pin (0-255) + - `F` - Function in/out (0/1) + - `V` - Value (0/1) + * + */ void dcode_4() { LOG("D4 - Read/Write PIN\n"); @@ -288,6 +350,19 @@ void dcode_4() #ifdef DEBUG_DCODE5 + /*! + * + ### D5 - Read/Write FLASH D5: Read/Write Flash + This command can be used without any additional parameters. It will read the 1kb FLASH. + + D3 [ A | C | X | E ] + + - `A` - Address (0x00000-0x3ffff) + - `C` - Count (0x0001-0x2000) + - `X` - Data + - `E` - Erase + * + */ void dcode_5() { printf_P(PSTR("D5 - Read/Write FLASH\n")); @@ -351,11 +426,25 @@ void dcode_5() #ifdef DEBUG_DCODES + /*! + * + ### D6 - Read/Write external FLASH D6: Read/Write external Flash + + Reserved + * + */ void dcode_6() { LOG("D6 - Read/Write external FLASH\n"); } + /*! + * + ### D7 - Read/Write Bootloader D7: Read/Write Bootloader + + Reserved + * + */ void dcode_7() { LOG("D7 - Read/Write Bootloader\n"); @@ -371,6 +460,18 @@ void dcode_7() */ } + /*! + * + ### D8 - Read/Write PINDA D8: Read/Write PINDA + + D8 [ ? | ! | P | Z ] + + - `?` - Read PINDA temperature shift values + - `!` - Reset PINDA temperature shift values to default + - `P` - Pinda temperature [C] + - `Z` - Z Offset [mm] + * + */ void dcode_8() { printf_P(PSTR("D8 - Read/Write PINDA\n")); @@ -412,6 +513,23 @@ void dcode_8() printf_P(PSTR("temp_pinda=%d offset_z=%d.%03d\n"), (int)temp_pinda, (int)offset_z, ((int)(1000 * offset_z) % 1000)); } + /*! + * + ### D9 - Read ADC D9: Read ADC + + D9 [ I | V ] + + - `I` - ADC channel index + - `0` - Heater 0 temperature + - `1` - Heater 1 temperature + - `2` - Bed temperature + - `3` - PINDA temperature + - `4` - PWR voltage + - `5` - Ambient temperature + - `6` - BED voltage + - `V` Value to be written as simulated + * + */ const char* dcode_9_ADC_name(uint8_t i) { switch (i) @@ -485,12 +603,24 @@ void dcode_9() } } + /*! + * + ### D10 - Set XYZ calibration = OK D10: Set XYZ calibration = OK + + * + */ void dcode_10() {//Tell the printer that XYZ calibration went OK LOG("D10 - XYZ calibration = OK\n"); calibration_status_store(CALIBRATION_STATUS_LIVE_ADJUST); } + /*! + * + ### D12 - Time D12: Time + + * + */ void dcode_12() {//Time LOG("D12 - Time\n"); @@ -636,6 +766,20 @@ void dcode_2130() #endif //TMC2130 #ifdef PAT9125 + /*! + * + ### D9125 - PAT9125 filament sensor D9125: PAT9125 filament sensor + + D9125 [ ? | ! | R | X | Y | L ] + + - `?` - Print values + - `!` - Print values + - `R` - Resolution. Not active in code + - `X` - X values + - `Y` - Y values + - `L` - Activate filament sensor log + * + */ void dcode_9125() { LOG("D9125 - PAT9125\n"); diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 394c818c6..2674ba829 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8517,73 +8517,173 @@ Sigma_Exit: switch((int)code_value()) { - //! ### D-1 - Endless loop - // ------------------- + /*! + * + ### D-1 - Endless Loop D-1: Endless Loop + + D-1 + + * + */ case -1: dcode__1(); break; #ifdef DEBUG_DCODES - //! ### D0 - Reset - // -------------- + /*! + * + ### D0 - Reset D0: Reset + + D0 [ B ] + + - `B` - Bootloader + * + */ case 0: dcode_0(); break; - //! ### D1 - Clear EEPROM - // ------------------ + /*! + * + ### D1 - Clear EEPROM and RESET D1: Clear EEPROM and RESET + + D1 + + * + */ case 1: dcode_1(); break; - //! ### D2 - Read/Write RAM - // -------------------- + /*! + * + ### D2 - Read/Write RAM D3: Read/Write RAM + This command can be used without any additional parameters. It will read the entire eeprom. + + D3 [ A | C | X ] + + - `A` - Address (0x0000-0x1fff) + - `C` - Count (0x0001-0x2000) + - `X` - Data + * + */ case 2: dcode_2(); break; #endif //DEBUG_DCODES #ifdef DEBUG_DCODE3 - //! ### D3 - Read/Write EEPROM - // ----------------------- + /*! + * + ### D3 - Read/Write EEPROM D3: Read/Write EEPROM + This command can be used without any additional parameters. It will read the entire eeprom. + + D3 [ A | C | X ] + + - `A` - Address (0x0000-0x0fff) + - `C` - Count (0x0001-0x1000) + - `X` - Data + * + */ case 3: dcode_3(); break; #endif //DEBUG_DCODE3 #ifdef DEBUG_DCODES - //! ### D4 - Read/Write PIN - // --------------------- + /*! + * + ### D4 - Read/Write PIN D4: Read/Write PIN + + To read the digital value of a pin you need only to define the pin number. + + D4 [ P | F | V ] + + - `P` - Pin (0-255) + - `F` - Function in/out (0/1) + - `V` - Value (0/1) + * + */ case 4: dcode_4(); break; #endif //DEBUG_DCODES #ifdef DEBUG_DCODE5 - //! ### D5 - Read/Write FLASH - // ------------------------ + /*! + * + ### D5 - Read/Write FLASH D5: Read/Write Flash + This command can be used without any additional parameters. It will read the 1kb FLASH. + + D3 [ A | C | X | E ] + + - `A` - Address (0x00000-0x3ffff) + - `C` - Count (0x0001-0x2000) + - `X` - Data + - `E` - Erase + * + */ case 5: dcode_5(); break; break; #endif //DEBUG_DCODE5 #ifdef DEBUG_DCODES - //! ### D6 - Read/Write external FLASH - // --------------------------------------- + /*! + * + ### D6 - Read/Write external FLASH D6: Read/Write external Flash + + Reserved + * + */ case 6: dcode_6(); break; - //! ### D7 - Read/Write Bootloader - // ------------------------------- + /*! + * + ### D7 - Read/Write Bootloader D7: Read/Write Bootloader + + Reserved + * + */ case 7: dcode_7(); break; - //! ### D8 - Read/Write PINDA - // --------------------------- + /*! + * + ### D8 - Read/Write PINDA D8: Read/Write PINDA + + D8 [ ? | ! | P | Z ] + + - `?` - Read PINDA temperature shift values + - `!` - Reset PINDA temperature shift values to default + - `P` - Pinda temperature [C] + - `Z` - Z Offset [mm] + * + */ case 8: dcode_8(); break; - // ### D9 - Read/Write ADC - // ------------------------ + /*! + * + ### D9 - Read ADC D9: Read ADC + + D9 [ I | V ] + + - `I` - ADC channel index + - `0` - Heater 0 temperature + - `1` - Heater 1 temperature + - `2` - Bed temperature + - `3` - PINDA temperature + - `4` - PWR voltage + - `5` - Ambient temperature + - `6` - BED voltage + - `V` Value to be written as simulated + * + */ case 9: dcode_9(); break; - //! ### D10 - XYZ calibration = OK - // ------------------------------ + /*! + * + ### D10 - Set XYZ calibration = OK D10: Set XYZ calibration = OK + + * + */ case 10: dcode_10(); break; #endif //DEBUG_DCODES @@ -8715,8 +8815,20 @@ Sigma_Exit: #if (defined (FILAMENT_SENSOR) && defined(PAT9125)) - //! ### D9125 - FILAMENT_SENSOR - // --------------------------------- + /*! + * + ### D9125 - PAT9125 filament sensor D9125: PAT9125 filament sensor + + D9125 [ ? | ! | R | X | Y | L ] + + - `?` - Print values + - `!` - Print values + - `R` - Resolution. Not active in code + - `X` - X values + - `Y` - Y values + - `L` - Activate filament sensor log + * + */ case 9125: dcode_9125(); break; #endif //FILAMENT_SENSOR From 92482f03abde99bb7634a507fee60b0f0d1b7771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20B=C4=9Bl?= <35807926+mkbel@users.noreply.github.com> Date: Wed, 27 Nov 2019 17:23:16 +0100 Subject: [PATCH 156/271] Update README.md Add link for doxygen generated documentation. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 782ed6f7d..6b0edf0a0 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ Example: # 4. Documentation run [doxygen](http://www.doxygen.nl/) in Firmware folder +or visit https://prusa3d.github.io/Prusa-Firmware-Doc/index.html for doxygen generated output # 5. FAQ Q:I built firmware using Arduino and I see "?" instead of numbers in printer user interface. From 05a1debf3d9a89043b0c0a941cdab9dd204aaa97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20B=C4=9Bl?= <35807926+mkbel@users.noreply.github.com> Date: Wed, 27 Nov 2019 17:27:11 +0100 Subject: [PATCH 157/271] Update README.md /index.html becomes unnecessary after several seconds online. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6b0edf0a0..9c50509a1 100644 --- a/README.md +++ b/README.md @@ -178,7 +178,7 @@ Example: # 4. Documentation run [doxygen](http://www.doxygen.nl/) in Firmware folder -or visit https://prusa3d.github.io/Prusa-Firmware-Doc/index.html for doxygen generated output +or visit https://prusa3d.github.io/Prusa-Firmware-Doc for doxygen generated output # 5. FAQ Q:I built firmware using Arduino and I see "?" instead of numbers in printer user interface. From 404802b5e6e3ebd3a21f936691b7885f11966c26 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 13 Oct 2019 18:49:32 +0200 Subject: [PATCH 158/271] Clear "sdprinting" state only when all SD moves are complete Ensure card.printingHasFinished sees all the planned moves before clearing sdprinting. To do that, we need to ensure all SD commands exited the command queue. --- Firmware/cmdqueue.cpp | 55 +++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/Firmware/cmdqueue.cpp b/Firmware/cmdqueue.cpp index 74a8b90a5..e17db42a3 100755 --- a/Firmware/cmdqueue.cpp +++ b/Firmware/cmdqueue.cpp @@ -582,30 +582,8 @@ void get_command() ((serial_char == '#' || serial_char == ':') && comment_mode == false) || serial_count >= (MAX_CMD_SIZE - 1) || n==-1) { - if(card.eof()){ - SERIAL_PROTOCOLLNRPGM(_n("Done printing file"));////MSG_FILE_PRINTED - stoptime=_millis(); - char time[30]; - unsigned long t=(stoptime-starttime-pause_time)/1000; - pause_time = 0; - int hours, minutes; - minutes=(t/60)%60; - hours=t/60/60; - save_statistics(total_filament_used, t); - sprintf_P(time, PSTR("%i hours %i minutes"),hours, minutes); - SERIAL_ECHO_START; - SERIAL_ECHOLN(time); - lcd_setstatus(time); - card.printingHasFinished(); - card.checkautostart(true); + if(card.eof()) break; - if (farm_mode) - { - prusa_statistics(6); - lcd_commands_type = LcdCommands::FarmModeConfirm; - } - - } if(serial_char=='#') stop_buffering=true; @@ -663,6 +641,37 @@ void get_command() else if(!comment_mode) cmdbuffer[bufindw+CMDHDRSIZE+serial_count++] = serial_char; } } + if(card.eof()) + { + // file was fully buffered, but commands might still need to be planned! + // do *not* clear sdprinting until all SD commands are consumed to ensure + // SD state can be resumed from a saved printing state. sdprinting is only + // cleared by printingHasFinished after peforming all remaining moves. + if(!cmdqueue_calc_sd_length()) + { + SERIAL_PROTOCOLLNRPGM(_n("Done printing file"));////MSG_FILE_PRINTED + stoptime=_millis(); + char time[30]; + unsigned long t=(stoptime-starttime-pause_time)/1000; + pause_time = 0; + int hours, minutes; + minutes=(t/60)%60; + hours=t/60/60; + save_statistics(total_filament_used, t); + sprintf_P(time, PSTR("%i hours %i minutes"),hours, minutes); + SERIAL_ECHO_START; + SERIAL_ECHOLN(time); + lcd_setstatus(time); + card.printingHasFinished(); + card.checkautostart(true); + + if (farm_mode) + { + prusa_statistics(6); + lcd_commands_type = LcdCommands::FarmModeConfirm; + } + } + } #endif //SDSUPPORT } From 0f6b9b40512eca03abbc930ae337a87ddf9323d6 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 15 Oct 2019 21:09:28 +0200 Subject: [PATCH 159/271] Unroll the stack in restore_print_from_ram_and_continue While handling moves in a recursive plan, such a filament check, ensure restore_print_from_ram_and_continue unwinds the stack by aborting early from any call that waits on the planner. This currently only handles G1 moves, but hard-coded behavior that can trigger recursive behavior (such as filament change) will probably have to be checked too. --- Firmware/Marlin_main.cpp | 6 ++++++ Firmware/planner.cpp | 2 +- Firmware/planner.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 19d799534..46fef27a0 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8363,6 +8363,8 @@ void clamp_to_software_endstops(float target[3]) current_position[Z_AXIS] + t * dz, current_position[E_AXIS] + t * de, feed_rate, extruder); + if (waiting_inside_plan_buffer_line_print_aborted) + return; } } // The rest of the path. @@ -8390,6 +8392,8 @@ void prepare_move() plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply*(1./(60.f*100.f)), active_extruder); #endif } + if (waiting_inside_plan_buffer_line_print_aborted) + return; for(int8_t i=0; i < NUM_AXIS; i++) { current_position[i] = destination[i]; @@ -10264,10 +10268,12 @@ void restore_print_from_ram_and_continue(float e_move) else { //not sd printing nor usb printing } + SERIAL_PROTOCOLLNRPGM(MSG_OK); //dummy response because of octoprint is waiting for this lcd_setstatuspgm(_T(WELCOME_MSG)); saved_printing_type = PRINTING_TYPE_NONE; saved_printing = false; + waiting_inside_plan_buffer_line_print_aborted = true; //unroll the stack } void print_world_coordinates() diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 752d07258..63058d2cf 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -666,8 +666,8 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate // If the buffer is full: good! That means we are well ahead of the robot. // Rest here until there is room in the buffer. + waiting_inside_plan_buffer_line_print_aborted = false; if (block_buffer_tail == next_buffer_head) { - waiting_inside_plan_buffer_line_print_aborted = false; do { manage_heater(); // Vojtech: Don't disable motors inside the planner! diff --git a/Firmware/planner.h b/Firmware/planner.h index 7904c45a5..4977265bf 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -238,6 +238,7 @@ FORCE_INLINE bool planner_queue_full() { // wait for the steppers to stop, // update planner's current position and the current_position of the front end. extern void planner_abort_hard(); +extern bool waiting_inside_plan_buffer_line_print_aborted; #ifdef PREVENT_DANGEROUS_EXTRUDE void set_extrude_min_temp(float temp); From 5fa7c178b5fa2232c9c2f3e1939611e9ad453f1b Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 15 Oct 2019 21:14:28 +0200 Subject: [PATCH 160/271] Do not set current_position in mesh_plan_buffer_line This is a task which _has_ to be performed by the caller, such as prepare_move(). --- Firmware/Marlin_main.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 46fef27a0..6686fba0a 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8369,10 +8369,6 @@ void clamp_to_software_endstops(float target[3]) } // The rest of the path. plan_buffer_line(x, y, z, e, feed_rate, extruder); - current_position[X_AXIS] = x; - current_position[Y_AXIS] = y; - current_position[Z_AXIS] = z; - current_position[E_AXIS] = e; } #endif // MESH_BED_LEVELING From faa9e925fe38acfc3de13aae35e6227c68fedc1e Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 15 Oct 2019 21:20:18 +0200 Subject: [PATCH 161/271] Replace a few loops with set_current_to_destination() --- Firmware/Marlin_main.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 6686fba0a..3d1945efd 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8391,9 +8391,7 @@ void prepare_move() if (waiting_inside_plan_buffer_line_print_aborted) return; - for(int8_t i=0; i < NUM_AXIS; i++) { - current_position[i] = destination[i]; - } + set_current_to_destination(); } void prepare_arc_move(char isclockwise) { @@ -9114,10 +9112,8 @@ void bed_check(float x_dimension, float y_dimension, int x_points_num, int y_poi destination[X_AXIS] = ix * (x_dimension / (x_points_num - 1)) + shift_x; destination[Y_AXIS] = iy * (y_dimension / (y_points_num - 1)) + shift_y; - mesh_plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], XY_AXIS_FEEDRATE/6, active_extruder); - for(int8_t i=0; i < NUM_AXIS; i++) { - current_position[i] = destination[i]; - } + mesh_plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], XY_AXIS_FEEDRATE/6, active_extruder); + set_current_to_destination(); st_synchronize(); // printf_P(PSTR("X = %f; Y= %f \n"), current_position[X_AXIS], current_position[Y_AXIS]); From 4268c2fdae35c97d732fa4318a60c342e5547065 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 15 Oct 2019 21:23:50 +0200 Subject: [PATCH 162/271] Fix recovery from relative/chunked moves When starting to replay existing USB/SD commands from a recovery state, an immediate relative move needs to compensate for a previously interrupted move. This is almost the norm for the E axis. Instead of saving the relative status of the move (which needs to account for the world2machine conversion and is not always available on a chunked move split by MBL) save directly the calculated target position for the move in the original plan, which is easy to replay. --- Firmware/Marlin_main.cpp | 61 ++++++++++++++++++++++++++++++++++------ Firmware/eeprom.h | 3 +- Firmware/planner.cpp | 31 +++++++++++++------- Firmware/planner.h | 5 ++-- 4 files changed, 78 insertions(+), 22 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 3d1945efd..4877f7a8b 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -309,6 +309,8 @@ bool no_response = false; uint8_t important_status; uint8_t saved_filament_type; +#define SAVED_TARGET_UNSET (X_MIN_POS-1) +float saved_target[NUM_AXIS] = {SAVED_TARGET_UNSET, 0, 0, 0}; // save/restore printing in case that mmu was not responding bool mmu_print_saved = false; @@ -4043,8 +4045,19 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #endif + get_coordinates(); // For X Y Z E F + + // When recovering from a previous print move, restore the originally + // calculated target position on the first USB/SD command. This accounts + // properly for relative moves + if ((saved_target[0] != SAVED_TARGET_UNSET) && + ((CMDBUFFER_CURRENT_TYPE == CMDBUFFER_CURRENT_TYPE_SDCARD) || + (CMDBUFFER_CURRENT_TYPE == CMDBUFFER_CURRENT_TYPE_USB_WITH_LINENR))) + { + memcpy(destination, saved_target, sizeof(destination)); + saved_target[0] = SAVED_TARGET_UNSET; + } - get_coordinates(); // For X Y Z E F if (total_filament_used > ((current_position[E_AXIS] - destination[E_AXIS]) * 100)) { //protection against total_filament_used overflow total_filament_used = total_filament_used + ((destination[E_AXIS] - current_position[E_AXIS]) * 100); } @@ -8339,30 +8352,37 @@ void clamp_to_software_endstops(float target[3]) } #ifdef MESH_BED_LEVELING - void mesh_plan_buffer_line(const float &x, const float &y, const float &z, const float &e, const float &feed_rate, const uint8_t extruder) { +void mesh_plan_buffer_line(const float &x, const float &y, const float &z, const float &e, const float &feed_rate, const uint8_t extruder) { float dx = x - current_position[X_AXIS]; float dy = y - current_position[Y_AXIS]; - float dz = z - current_position[Z_AXIS]; int n_segments = 0; - + if (mbl.active) { float len = abs(dx) + abs(dy); if (len > 0) // Split to 3cm segments or shorter. n_segments = int(ceil(len / 30.f)); } - + if (n_segments > 1) { + // In a multi-segment move explicitly set the final target in the plan + // as the move will be recalculated in it's entirety + float gcode_target[NUM_AXIS]; + gcode_target[X_AXIS] = x; + gcode_target[Y_AXIS] = y; + gcode_target[Z_AXIS] = z; + gcode_target[E_AXIS] = e; + + float dz = z - current_position[Z_AXIS]; float de = e - current_position[E_AXIS]; + for (int i = 1; i < n_segments; ++ i) { float t = float(i) / float(n_segments); - if (saved_printing || (mbl.active == false)) return; - plan_buffer_line( - current_position[X_AXIS] + t * dx, + plan_buffer_line(current_position[X_AXIS] + t * dx, current_position[Y_AXIS] + t * dy, current_position[Z_AXIS] + t * dz, current_position[E_AXIS] + t * de, - feed_rate, extruder); + feed_rate, extruder, gcode_target); if (waiting_inside_plan_buffer_line_print_aborted) return; } @@ -9602,6 +9622,12 @@ void uvlo_() // Backup the feedrate in mm/min. int feedrate_bckp = blocks_queued() ? (block_buffer[block_buffer_tail].nominal_speed * 60.f) : feedrate; + // save the original target position of the current move + if (blocks_queued()) + memcpy(saved_target, current_block->gcode_target, sizeof(saved_target)); + else + saved_target[0] = SAVED_TARGET_UNSET; + // After this call, the planner queue is emptied and the current_position is set to a current logical coordinate. // The logical coordinate will likely differ from the machine coordinate if the skew calibration and mesh bed leveling // are in action. @@ -9679,6 +9705,11 @@ void uvlo_() #endif #endif eeprom_update_word((uint16_t*)(EEPROM_EXTRUDEMULTIPLY), (uint16_t)extrudemultiply); + // Store the saved target + eeprom_update_float((float*)(EEPROM_UVLO_SAVED_TARGET+0*4), saved_target[X_AXIS]); + eeprom_update_float((float*)(EEPROM_UVLO_SAVED_TARGET+1*4), saved_target[Y_AXIS]); + eeprom_update_float((float*)(EEPROM_UVLO_SAVED_TARGET+2*4), saved_target[Z_AXIS]); + eeprom_update_float((float*)(EEPROM_UVLO_SAVED_TARGET+3*4), saved_target[E_AXIS]); // Finaly store the "power outage" flag. if(sd_print) eeprom_update_byte((uint8_t*)EEPROM_UVLO, 1); @@ -9927,6 +9958,12 @@ void recover_machine_state_after_power_panic(bool bTiny) #endif #endif extrudemultiply = (int)eeprom_read_word((uint16_t*)(EEPROM_EXTRUDEMULTIPLY)); + + // 9) Recover the saved target + saved_target[X_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_SAVED_TARGET+0*4)); + saved_target[Y_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_SAVED_TARGET+1*4)); + saved_target[Z_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_SAVED_TARGET+2*4)); + saved_target[E_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_SAVED_TARGET+3*4)); } void restore_print_from_eeprom() { @@ -10143,6 +10180,12 @@ void stop_and_save_print_to_ram(float z_move, float e_move) saved_feedrate2 = blocks_queued() ? (block_buffer[block_buffer_tail].nominal_speed * 60.f) : feedrate; #endif + // save the original target position of the current move + if (blocks_queued()) + memcpy(saved_target, current_block->gcode_target, sizeof(saved_target)); + else + saved_target[0] = SAVED_TARGET_UNSET; + planner_abort_hard(); //abort printing memcpy(saved_pos, current_position, sizeof(saved_pos)); saved_active_extruder = active_extruder; //save active_extruder diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 0949e4110..82852220f 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -204,9 +204,10 @@ static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); #define EEPROM_FSENSOR_PCB (EEPROM_SHEETS_BASE-1) // uint8 #define EEPROM_FSENSOR_ACTION_NA (EEPROM_FSENSOR_PCB-1) // uint8 +#define EEPROM_UVLO_SAVED_TARGET (EEPROM_FSENSOR_ACTION_NA - 4*4) // 4 x float for saved target for all axes //This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items. -#define EEPROM_LAST_ITEM EEPROM_SHEETS_BASE +#define EEPROM_LAST_ITEM EEPROM_UVLO_SAVED_TARGET // !!!!! // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!! // !!!!! diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 63058d2cf..c1285aed6 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -659,7 +659,7 @@ float junction_deviation = 0.1; // Add a new linear movement to the buffer. steps_x, _y and _z is the absolute position in // mm. Microseconds specify how many microseconds the move should take to perform. To aid acceleration // calculation the caller must also provide the physical length of the line in millimeters. -void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, uint8_t extruder) +void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, uint8_t extruder, const float* gcode_target) { // Calculate the buffer head after we push this byte int next_buffer_head = next_block_index(block_buffer_head); @@ -687,6 +687,26 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate planner_update_queue_min_counter(); #endif /* PLANNER_DIAGNOSTICS */ + // Prepare to set up new block + block_t *block = &block_buffer[block_buffer_head]; + + // Set sdlen for calculating sd position + block->sdlen = 0; + + // Mark block as not busy (Not executed by the stepper interrupt, could be still tinkered with.) + block->busy = false; + + // Save original destination of the move + if (gcode_target) + memcpy(block->gcode_target, gcode_target, sizeof(block_t::gcode_target)); + else + { + block->gcode_target[X_AXIS] = x; + block->gcode_target[Y_AXIS] = y; + block->gcode_target[Z_AXIS] = z; + block->gcode_target[E_AXIS] = e; + } + #ifdef ENABLE_AUTO_BED_LEVELING apply_rotation_xyz(plan_bed_level_matrix, x, y, z); #endif // ENABLE_AUTO_BED_LEVELING @@ -786,15 +806,6 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate } #endif - // Prepare to set up new block - block_t *block = &block_buffer[block_buffer_head]; - - // Set sdlen for calculating sd position - block->sdlen = 0; - - // Mark block as not busy (Not executed by the stepper interrupt, could be still tinkered with.) - block->busy = false; - // Number of steps for each axis #ifndef COREXY // default non-h-bot planning diff --git a/Firmware/planner.h b/Firmware/planner.h index 4977265bf..d4c6bc2b4 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -116,7 +116,8 @@ typedef struct { unsigned long abs_adv_steps_multiplier8; // Factorised by 2^8 to avoid float #endif - uint16_t sdlen; + float gcode_target[NUM_AXIS]; // Target (abs mm) of the original Gcode instruction + uint16_t sdlen; // Length of the Gcode instruction } block_t; #ifdef LIN_ADVANCE @@ -147,7 +148,7 @@ vector_3 plan_get_position(); /// The performance penalty is negligible, since these planned lines are usually maintenance moves with the extruder. void plan_buffer_line_curposXYZE(float feed_rate, uint8_t extruder); -void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, uint8_t extruder); +void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, uint8_t extruder, const float* gcode_target = NULL); //void plan_buffer_line(const float &x, const float &y, const float &z, const float &e, float feed_rate, const uint8_t &extruder); #endif // ENABLE_AUTO_BED_LEVELING From 6ecff003b78e276ae775e47279559b45b8584d75 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 16 Oct 2019 18:47:18 +0200 Subject: [PATCH 163/271] Fix M600 insertion by the filament sensor Remove incorrect usage of stop_and_save_print combined with the fsensor_recovert internal instruction which would result in a broken sequence of events and/or broken stack. Re-use the now safe stop/recover functions in the same spot (fsensor_checkpoint_stream) to effectively cut a hole in the current gcode stream to insert an M600 instruction, which removes all recursive behavior without the need of extra state variables. --- Firmware/Marlin_main.cpp | 9 +------- Firmware/fsensor.cpp | 46 +++++++++++++++++----------------------- Firmware/fsensor.h | 2 ++ Firmware/mmu.cpp | 3 +-- 4 files changed, 24 insertions(+), 36 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 4877f7a8b..5afeb525b 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3657,7 +3657,7 @@ void process_commands() Set of internal PRUSA commands - PRUSA [ Ping | PRN | FAN | fn | thx | uvlo | fsensor_recover | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ] + PRUSA [ Ping | PRN | FAN | fn | thx | uvlo | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ] - `Ping` - `PRN` - Prints revision of the printer @@ -3665,7 +3665,6 @@ void process_commands() - `fn` - Prints farm no. - `thx` - `uvlo` - - `fsensor_recover` - Filament sensor recover - restore print and continue - `MMURES` - Reset MMU - `RESET` - (Careful!) - `fv` - ? @@ -3715,12 +3714,6 @@ void process_commands() eeprom_update_byte((uint8_t*)EEPROM_UVLO,0); enquecommand_P(PSTR("M24")); } -#ifdef FILAMENT_SENSOR - else if (code_seen("fsensor_recover")) // PRUSA fsensor_recover - { - fsensor_restore_print_and_continue(); - } -#endif //FILAMENT_SENSOR else if (code_seen("MMURES")) // PRUSA MMURES { mmu_reset(); diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index c01274fb3..1c28d025f 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -57,15 +57,8 @@ bool fsensor_enabled = true; bool fsensor_watch_runout = true; //! not responding - is set if any communication error occurred during initialization or readout bool fsensor_not_responding = false; -//! printing saved -bool fsensor_printing_saved = false; //! enable/disable quality meassurement bool fsensor_oq_meassure_enabled = false; -//! as explained in the CHECK_FSENSOR macro: this flag is set to true when fsensor posts -//! the M600 into the command queue, which elliminates the hazard of having posted multiple M600's -//! before the first one gets read and started processing. -//! Btw., the IR fsensor could do up to 6 posts before the command queue managed to start processing the first M600 ;) -static bool fsensor_m600_enqueued = false; //! number of errors, updated in ISR uint8_t fsensor_err_cnt = 0; @@ -137,12 +130,19 @@ void fsensor_stop_and_save_print(void) void fsensor_restore_print_and_continue(void) { printf_P(PSTR("fsensor_restore_print_and_continue\n")); - fsensor_watch_runout = true; fsensor_err_cnt = 0; - fsensor_m600_enqueued = false; restore_print_from_ram_and_continue(0); //XYZ = orig, E - no change } +// fsensor_checkpoint_print cuts the current print job at the current position, +// allowing new instructions to be inserted in the middle +void fsensor_checkpoint_print(void) +{ + printf_P(PSTR("fsensor_checkpoint_print\n")); + stop_and_save_print_to_ram(0, 0); + restore_print_from_ram_and_continue(0); +} + void fsensor_init(void) { #ifdef PAT9125 @@ -565,8 +565,6 @@ void fsensor_enque_M600(){ printf_P(PSTR("fsensor_update - M600\n")); eeprom_update_byte((uint8_t*)EEPROM_FERROR_COUNT, eeprom_read_byte((uint8_t*)EEPROM_FERROR_COUNT) + 1); eeprom_update_word((uint16_t*)EEPROM_FERROR_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_FERROR_COUNT_TOT) + 1); - enquecommand_front_P(PSTR("PRUSA fsensor_recover")); - fsensor_m600_enqueued = true; enquecommand_front_P((PSTR("M600"))); } @@ -578,7 +576,7 @@ void fsensor_enque_M600(){ void fsensor_update(void) { #ifdef PAT9125 - if (fsensor_enabled && fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX) && ( ! fsensor_m600_enqueued) ) + if (fsensor_enabled && fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX)) { bool autoload_enabled_tmp = fsensor_autoload_enabled; fsensor_autoload_enabled = false; @@ -611,22 +609,18 @@ void fsensor_update(void) err |= (fsensor_oq_er_sum > 2); err |= (fsensor_oq_yd_sum < (4 * FSENSOR_OQ_MIN_YD)); - if (!err) - { - printf_P(PSTR("fsensor_err_cnt = 0\n")); - fsensor_restore_print_and_continue(); - } - else - { - fsensor_enque_M600(); - fsensor_watch_runout = false; - } + fsensor_restore_print_and_continue(); fsensor_autoload_enabled = autoload_enabled_tmp; fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp; + + if (!err) + printf_P(PSTR("fsensor_err_cnt = 0\n")); + else + fsensor_enque_M600(); } #else //PAT9125 - if (CHECK_FSENSOR && fsensor_enabled && ir_sensor_detected && ( ! fsensor_m600_enqueued) ) - { + if (CHECK_FSENSOR && fsensor_enabled && ir_sensor_detected) + { if(digitalRead(IR_SENSOR_PIN)) { // IR_SENSOR_PIN ~ H #if IR_SENSOR_ANALOG @@ -670,8 +664,8 @@ void fsensor_update(void) else { #endif //IR_SENSOR_ANALOG - fsensor_stop_and_save_print(); - fsensor_enque_M600(); + fsensor_checkpoint_print(); + fsensor_enque_M600(); #if IR_SENSOR_ANALOG } } diff --git a/Firmware/fsensor.h b/Firmware/fsensor.h index 48ad5fba0..aa4963afa 100755 --- a/Firmware/fsensor.h +++ b/Firmware/fsensor.h @@ -21,6 +21,8 @@ extern bool fsensor_oq_meassure_enabled; extern void fsensor_stop_and_save_print(void); //! restore print - restore position and heatup to original temperature extern void fsensor_restore_print_and_continue(void); +//! split the current gcode stream to insert new instructions +extern void fsensor_checkpoint_print(void); //! @} //! initialize diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index c9ca9cb65..f1515d988 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -382,8 +382,7 @@ void mmu_loop(void) FDEBUG_PRINTF_P(PSTR("MMU => '%dok'\n"), mmu_finda); //printf_P(PSTR("Eact: %d\n"), int(e_active())); if (!mmu_finda && CHECK_FSENSOR && fsensor_enabled) { - fsensor_stop_and_save_print(); - enquecommand_front_P(PSTR("PRUSA fsensor_recover")); //then recover + fsensor_checkpoint_print(); ad_markDepleted(mmu_extruder); if (lcd_autoDepleteEnabled() && !ad_allDepleted()) { From 4f0af648fb95903942d0ebf1cad9d1d214048084 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 19 Oct 2019 18:48:02 +0200 Subject: [PATCH 164/271] Save/restore feedmultiply independently of the feedrate --- Firmware/Marlin_main.cpp | 34 ++++++++++++++++++---------------- Firmware/eeprom.h | 3 ++- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 5afeb525b..00e0ae993 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -375,8 +375,8 @@ bool saved_printing = false; //!< Print is paused and saved in RAM static uint32_t saved_sdpos = 0; //!< SD card position, or line number in case of USB printing uint8_t saved_printing_type = PRINTING_TYPE_SD; static float saved_pos[4] = { 0, 0, 0, 0 }; -//! Feedrate hopefully derived from an active block of the planner at the time the print has been canceled, in mm/min. static float saved_feedrate2 = 0; +static int saved_feedmultiply2 = 0; static uint8_t saved_active_extruder = 0; static float saved_extruder_temperature = 0.0; //!< Active extruder temperature static bool saved_extruder_under_pressure = false; @@ -9612,9 +9612,6 @@ void uvlo_() if (sd_position < 0) sd_position = 0; } - // Backup the feedrate in mm/min. - int feedrate_bckp = blocks_queued() ? (block_buffer[block_buffer_tail].nominal_speed * 60.f) : feedrate; - // save the original target position of the current move if (blocks_queued()) memcpy(saved_target, current_block->gcode_target, sizeof(saved_target)); @@ -9686,7 +9683,9 @@ void uvlo_() eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4), current_position[Y_AXIS]); eeprom_update_float((float*)EEPROM_UVLO_CURRENT_POSITION_Z , current_position[Z_AXIS]); // Store the current feed rate, temperatures, fan speed and extruder multipliers (flow rates) - EEPROM_save_B(EEPROM_UVLO_FEEDRATE, &feedrate_bckp); + int i_feedrate = feedrate; + EEPROM_save_B(EEPROM_UVLO_FEEDRATE, &i_feedrate); + EEPROM_save_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply); eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND, target_temperature[active_extruder]); eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_BED, target_temperature_bed); eeprom_update_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED, fanSpeed); @@ -9961,6 +9960,7 @@ void recover_machine_state_after_power_panic(bool bTiny) void restore_print_from_eeprom() { int feedrate_rec; + int feedmultiply_rec; uint8_t fan_speed_rec; char cmd[30]; char filename[13]; @@ -9969,8 +9969,11 @@ void restore_print_from_eeprom() { fan_speed_rec = eeprom_read_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED); EEPROM_read_B(EEPROM_UVLO_FEEDRATE, &feedrate_rec); + EEPROM_read_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply_rec); SERIAL_ECHOPGM("Feedrate:"); - MYSERIAL.println(feedrate_rec); + MYSERIAL.print(feedrate_rec); + SERIAL_ECHOPGM(", feedmultiply:"); + MYSERIAL.println(feedmultiply_rec); depth = eeprom_read_byte((uint8_t*)EEPROM_DIR_DEPTH); @@ -10011,9 +10014,11 @@ void restore_print_from_eeprom() { enquecommand(cmd); // Unretract. enquecommand_P(PSTR("G1 E" STRINGIFY(2*default_retraction)" F480")); - // Set the feedrate saved at the power panic. + // Set the feedrates saved at the power panic. sprintf_P(cmd, PSTR("G1 F%d"), feedrate_rec); enquecommand(cmd); + sprintf_P(cmd, PSTR("M220 S%d"), feedmultiply_rec); + enquecommand(cmd); if (eeprom_read_byte((uint8_t*)EEPROM_UVLO_E_ABS)) { enquecommand_P(PSTR("M82")); //E axis abslute mode @@ -10165,14 +10170,6 @@ void stop_and_save_print_to_ram(float z_move, float e_move) } #endif -#if 0 - saved_feedrate2 = feedrate; //save feedrate -#else - // Try to deduce the feedrate from the first block of the planner. - // Speed is in mm/min. - saved_feedrate2 = blocks_queued() ? (block_buffer[block_buffer_tail].nominal_speed * 60.f) : feedrate; -#endif - // save the original target position of the current move if (blocks_queued()) memcpy(saved_target, current_block->gcode_target, sizeof(saved_target)); @@ -10181,6 +10178,8 @@ void stop_and_save_print_to_ram(float z_move, float e_move) planner_abort_hard(); //abort printing memcpy(saved_pos, current_position, sizeof(saved_pos)); + saved_feedrate2 = feedrate; //save feedrate + saved_feedmultiply2 = feedmultiply; //save feedmultiply saved_active_extruder = active_extruder; //save active_extruder saved_extruder_temperature = degTargetHotend(active_extruder); @@ -10258,7 +10257,6 @@ void restore_print_from_ram_and_continue(float e_move) wait_for_heater(_millis(), saved_active_extruder); heating_status = 2; } - feedrate = saved_feedrate2; //restore feedrate axis_relative_modes[E_AXIS] = saved_extruder_relative_mode; float e = saved_pos[E_AXIS] - e_move; plan_set_e_position(e); @@ -10281,6 +10279,10 @@ void restore_print_from_ram_and_continue(float e_move) fans_check_enabled = true; #endif + // restore original feedrate/feedmultiply _after_ restoring the extruder position + feedrate = saved_feedrate2; + feedmultiply = saved_feedmultiply2; + memcpy(current_position, saved_pos, sizeof(saved_pos)); memcpy(destination, current_position, sizeof(destination)); if (saved_printing_type == PRINTING_TYPE_SD) { //was sd printing diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 82852220f..3f1e61419 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -205,9 +205,10 @@ static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); #define EEPROM_FSENSOR_ACTION_NA (EEPROM_FSENSOR_PCB-1) // uint8 #define EEPROM_UVLO_SAVED_TARGET (EEPROM_FSENSOR_ACTION_NA - 4*4) // 4 x float for saved target for all axes +#define EEPROM_UVLO_FEEDMULTIPLY (EEPROM_UVLO_SAVED_TARGET - 2) // uint16_t for feedmultiply //This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items. -#define EEPROM_LAST_ITEM EEPROM_UVLO_SAVED_TARGET +#define EEPROM_LAST_ITEM EEPROM_UVLO_FEEDMULTIPLY // !!!!! // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!! // !!!!! From 17176c1df21574c53c2fefc0b1455f9eb3f5e625 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 19 Oct 2019 21:20:38 +0200 Subject: [PATCH 165/271] Save/restore the default feedrate correctly Since the global feedrate can be similarly modified for moves ahead of time, save the original feedrate in the planner as we do for gcode_target. This avoids having to undo feedmultiply (and machine limits!) from "nominal_speed" as previously done. Thanks @leptun --- Firmware/Marlin.h | 1 + Firmware/Marlin_main.cpp | 31 +++++++++++++++++++++++++------ Firmware/planner.cpp | 9 ++++++--- Firmware/planner.h | 2 ++ 4 files changed, 34 insertions(+), 9 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 8a396dac1..d9078ada2 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -296,6 +296,7 @@ void setPwmFrequency(uint8_t pin, int val); extern bool fans_check_enabled; extern float homing_feedrate[]; extern bool axis_relative_modes[]; +extern float feedrate; extern int feedmultiply; extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders extern int extruder_multiply[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 00e0ae993..6e33a3974 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -331,7 +331,15 @@ float destination[NUM_AXIS] = { 0.0, 0.0, 0.0, 0.0}; // For tracing an arc static float offset[3] = {0.0, 0.0, 0.0}; -static float feedrate = 1500.0, next_feedrate, saved_feedrate; + +// Current feedrate +float feedrate = 1500.0; + +// Feedrate for the next move +static float next_feedrate; + +// Original feedrate saved during homing moves +static float saved_feedrate; // Determines Absolute or Relative Coordinates. // Also there is bool axis_relative_modes[] per axis flag. @@ -9612,11 +9620,18 @@ void uvlo_() if (sd_position < 0) sd_position = 0; } - // save the original target position of the current move + // save the global state at planning time + int feedrate_bckp; if (blocks_queued()) + { memcpy(saved_target, current_block->gcode_target, sizeof(saved_target)); + feedrate_bckp = current_block->gcode_feedrate; + } else + { saved_target[0] = SAVED_TARGET_UNSET; + feedrate_bckp = feedrate; + } // After this call, the planner queue is emptied and the current_position is set to a current logical coordinate. // The logical coordinate will likely differ from the machine coordinate if the skew calibration and mesh bed leveling @@ -9683,8 +9698,7 @@ void uvlo_() eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4), current_position[Y_AXIS]); eeprom_update_float((float*)EEPROM_UVLO_CURRENT_POSITION_Z , current_position[Z_AXIS]); // Store the current feed rate, temperatures, fan speed and extruder multipliers (flow rates) - int i_feedrate = feedrate; - EEPROM_save_B(EEPROM_UVLO_FEEDRATE, &i_feedrate); + EEPROM_save_B(EEPROM_UVLO_FEEDRATE, &feedrate_bckp); EEPROM_save_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply); eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND, target_temperature[active_extruder]); eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_BED, target_temperature_bed); @@ -10170,15 +10184,20 @@ void stop_and_save_print_to_ram(float z_move, float e_move) } #endif - // save the original target position of the current move + // save the global state at planning time if (blocks_queued()) + { memcpy(saved_target, current_block->gcode_target, sizeof(saved_target)); + saved_feedrate2 = current_block->gcode_feedrate; + } else + { saved_target[0] = SAVED_TARGET_UNSET; + saved_feedrate2 = feedrate; + } planner_abort_hard(); //abort printing memcpy(saved_pos, current_position, sizeof(saved_pos)); - saved_feedrate2 = feedrate; //save feedrate saved_feedmultiply2 = feedmultiply; //save feedmultiply saved_active_extruder = active_extruder; //save active_extruder saved_extruder_temperature = degTargetHotend(active_extruder); diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index c1285aed6..0ccf54f83 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -690,12 +690,12 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate // Prepare to set up new block block_t *block = &block_buffer[block_buffer_head]; - // Set sdlen for calculating sd position - block->sdlen = 0; - // Mark block as not busy (Not executed by the stepper interrupt, could be still tinkered with.) block->busy = false; + // Set sdlen for calculating sd position + block->sdlen = 0; + // Save original destination of the move if (gcode_target) memcpy(block->gcode_target, gcode_target, sizeof(block_t::gcode_target)); @@ -707,6 +707,9 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate block->gcode_target[E_AXIS] = e; } + // Save the global feedrate at scheduling time + block->gcode_feedrate = feedrate; + #ifdef ENABLE_AUTO_BED_LEVELING apply_rotation_xyz(plan_bed_level_matrix, x, y, z); #endif // ENABLE_AUTO_BED_LEVELING diff --git a/Firmware/planner.h b/Firmware/planner.h index d4c6bc2b4..27541e5f0 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -116,7 +116,9 @@ typedef struct { unsigned long abs_adv_steps_multiplier8; // Factorised by 2^8 to avoid float #endif + // Save/recovery state data float gcode_target[NUM_AXIS]; // Target (abs mm) of the original Gcode instruction + float gcode_feedrate; // Original feedrate uint16_t sdlen; // Length of the Gcode instruction } block_t; From 18eaf21baf38ec6bff47882af4b1c664f4b9e935 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 19 Oct 2019 21:45:50 +0200 Subject: [PATCH 166/271] Halve memory usage of saved feedrate Truncate the saved feedrate to an uint16_t. This is more than sufficient for recovery. --- Firmware/Marlin_main.cpp | 8 ++++---- Firmware/eeprom.h | 2 +- Firmware/planner.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 6e33a3974..a312f3e52 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -383,7 +383,7 @@ bool saved_printing = false; //!< Print is paused and saved in RAM static uint32_t saved_sdpos = 0; //!< SD card position, or line number in case of USB printing uint8_t saved_printing_type = PRINTING_TYPE_SD; static float saved_pos[4] = { 0, 0, 0, 0 }; -static float saved_feedrate2 = 0; +static uint16_t saved_feedrate2 = 0; //!< Default feedrate (truncated from float) static int saved_feedmultiply2 = 0; static uint8_t saved_active_extruder = 0; static float saved_extruder_temperature = 0.0; //!< Active extruder temperature @@ -9621,7 +9621,7 @@ void uvlo_() } // save the global state at planning time - int feedrate_bckp; + uint16_t feedrate_bckp; if (blocks_queued()) { memcpy(saved_target, current_block->gcode_target, sizeof(saved_target)); @@ -9698,7 +9698,7 @@ void uvlo_() eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4), current_position[Y_AXIS]); eeprom_update_float((float*)EEPROM_UVLO_CURRENT_POSITION_Z , current_position[Z_AXIS]); // Store the current feed rate, temperatures, fan speed and extruder multipliers (flow rates) - EEPROM_save_B(EEPROM_UVLO_FEEDRATE, &feedrate_bckp); + eeprom_update_word((uint16_t*)EEPROM_UVLO_FEEDRATE, feedrate_bckp); EEPROM_save_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply); eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND, target_temperature[active_extruder]); eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_BED, target_temperature_bed); @@ -9982,7 +9982,7 @@ void restore_print_from_eeprom() { char dir_name[9]; fan_speed_rec = eeprom_read_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED); - EEPROM_read_B(EEPROM_UVLO_FEEDRATE, &feedrate_rec); + feedrate_rec = eeprom_read_word((uint16_t*)EEPROM_UVLO_FEEDRATE); EEPROM_read_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply_rec); SERIAL_ECHOPGM("Feedrate:"); MYSERIAL.print(feedrate_rec); diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 3f1e61419..12a31d3cc 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -74,7 +74,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP #define EEPROM_UVLO_CURRENT_POSITION_Z (EEPROM_FILE_POSITION - 4) //float for current position in Z #define EEPROM_UVLO_TARGET_HOTEND (EEPROM_UVLO_CURRENT_POSITION_Z - 1) #define EEPROM_UVLO_TARGET_BED (EEPROM_UVLO_TARGET_HOTEND - 1) -#define EEPROM_UVLO_FEEDRATE (EEPROM_UVLO_TARGET_BED - 2) +#define EEPROM_UVLO_FEEDRATE (EEPROM_UVLO_TARGET_BED - 2) //uint16_t #define EEPROM_UVLO_FAN_SPEED (EEPROM_UVLO_FEEDRATE - 1) #define EEPROM_FAN_CHECK_ENABLED (EEPROM_UVLO_FAN_SPEED - 1) #define EEPROM_UVLO_MESH_BED_LEVELING (EEPROM_FAN_CHECK_ENABLED - 9*2) diff --git a/Firmware/planner.h b/Firmware/planner.h index 27541e5f0..0d0cb41ab 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -118,7 +118,7 @@ typedef struct { // Save/recovery state data float gcode_target[NUM_AXIS]; // Target (abs mm) of the original Gcode instruction - float gcode_feedrate; // Original feedrate + uint16_t gcode_feedrate; // Default and/or move feedrate uint16_t sdlen; // Length of the Gcode instruction } block_t; From dbe2ed41500863b6948f5a0154700feb76dafdb7 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 20 Oct 2019 17:34:54 +0200 Subject: [PATCH 167/271] Fix pause/resume when using M25/M601 Remove the conflicting and mostly useless card.paused flag (the printing is either paused, or not) and switch to isPrintPaused only which accounts for both cases (SD/USB) correctly. Fix M27/getStatus to show the current real status of the SD print. Synchronize the queue on M601, as required to precisely pause the print at the correct instruction. Alias M25 to M601, which when combined with PR #1899 fixes issue #1614. Guard against incorrect usage in M601, M602 and M603. --- Firmware/Marlin.h | 2 +- Firmware/Marlin_main.cpp | 36 ++++++++++++--------- Firmware/cardreader.cpp | 57 ++++++++++++++-------------------- Firmware/cardreader.h | 2 -- Firmware/ultralcd.cpp | 2 +- Tests/PrusaStatistics_test.cpp | 5 ++- 6 files changed, 48 insertions(+), 56 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index d9078ada2..7dedc8a4b 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -396,7 +396,7 @@ extern uint16_t gcode_in_progress; extern LongTimer safetyTimer; #define PRINT_PERCENT_DONE_INIT 0xff -#define PRINTER_ACTIVE (IS_SD_PRINTING || is_usb_printing || isPrintPaused || (custom_message_type == CustomMsg::TempCal) || saved_printing || (lcd_commands_type == LcdCommands::Layer1Cal) || card.paused || mmu_print_saved) +#define PRINTER_ACTIVE (IS_SD_PRINTING || is_usb_printing || isPrintPaused || (custom_message_type == CustomMsg::TempCal) || saved_printing || (lcd_commands_type == LcdCommands::Layer1Cal) || mmu_print_saved) //! Beware - mcode_in_progress is set as soon as the command gets really processed, //! which is not the same as posting the M600 command into the command queue diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a312f3e52..fe94fab5b 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5377,21 +5377,19 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) card.openFile(strchr_pointer + 4,true); break; - //! ### M24 - Start SD print + //! ### M24 - Start/resume SD print // ---------------------------------- case 24: - if (!card.paused) - failstats_reset_print(); - card.startFileprint(); - starttime=_millis(); + if (isPrintPaused) + lcd_resume_print(); + else + { + failstats_reset_print(); + card.startFileprint(); + starttime=_millis(); + } break; - //! ### M25 - Pause SD print - // ---------------------------------- - case 25: - card.pauseSDPrint(); - break; - //! ### M26 S\ - Set SD index //! Set position in SD card file to index in bytes. //! This command is expected to be called after M23 and before M24. @@ -7246,26 +7244,34 @@ Sigma_Exit: break; #endif //FILAMENTCHANGEENABLE + //! ### M25 - Pause SD print //! ### M601 - Pause print + //! ### M125 - Pause print (TODO: not implemented) // ------------------------------- + case 25: case 601: { - cmdqueue_pop_front(); //trick because we want skip this command (M601) after restore - lcd_pause_print(); + if (!isPrintPaused) + { + st_synchronize(); + cmdqueue_pop_front(); //trick because we want skip this command (M601) after restore + lcd_pause_print(); + } } break; //! ### M602 - Resume print // ------------------------------- case 602: { - lcd_resume_print(); + if (isPrintPaused) + lcd_resume_print(); } break; //! ### M603 - Stop print // ------------------------------- case 603: { - lcd_print_stop(); + Stop(); } break; diff --git a/Firmware/cardreader.cpp b/Firmware/cardreader.cpp index 3c01bf84b..047a2c761 100644 --- a/Firmware/cardreader.cpp +++ b/Firmware/cardreader.cpp @@ -25,7 +25,6 @@ CardReader::CardReader() sdpos = 0; sdprinting = false; cardOK = false; - paused = false; saving = false; logging = false; autostart_atmillis=0; @@ -242,24 +241,13 @@ void CardReader::startFileprint() if(cardOK) { sdprinting = true; - paused = false; - Stopped = false; + Stopped = false; #ifdef SDCARD_SORT_ALPHA //flush_presort(); #endif } } -void CardReader::pauseSDPrint() -{ - if(sdprinting) - { - sdprinting = false; - paused = true; - } -} - - void CardReader::openLogFile(const char* name) { logging = true; @@ -408,9 +396,7 @@ void CardReader::openFile(const char* name,bool read, bool replace_current/*=tru SERIAL_ECHOLN(name); } sdprinting = false; - paused = false; - - + SdFile myDir; const char *fname=name; diveSubfolder(fname,myDir); @@ -492,24 +478,27 @@ uint32_t CardReader::getFileSize() void CardReader::getStatus() { - if(sdprinting){ - SERIAL_PROTOCOL(longFilename); - SERIAL_PROTOCOLPGM("\n"); - SERIAL_PROTOCOLRPGM(_N("SD printing byte "));////MSG_SD_PRINTING_BYTE - SERIAL_PROTOCOL(sdpos); - SERIAL_PROTOCOLPGM("/"); - SERIAL_PROTOCOLLN(filesize); - uint16_t time = _millis()/60000 - starttime/60000; - SERIAL_PROTOCOL(itostr2(time/60)); - SERIAL_PROTOCOL(':'); - SERIAL_PROTOCOL(itostr2(time%60)); - SERIAL_PROTOCOLPGM("\n"); - } - else if (paused) { - SERIAL_PROTOCOLLNPGM("SD print paused"); - } - else if (saved_printing) { - SERIAL_PROTOCOLLNPGM("Print saved"); + if(sdprinting) + { + if (isPrintPaused) { + SERIAL_PROTOCOLLNPGM("SD print paused"); + } + else if (saved_printing) { + SERIAL_PROTOCOLLNPGM("Print saved"); + } + else { + SERIAL_PROTOCOL(longFilename); + SERIAL_PROTOCOLPGM("\n"); + SERIAL_PROTOCOLRPGM(_N("SD printing byte "));////MSG_SD_PRINTING_BYTE + SERIAL_PROTOCOL(sdpos); + SERIAL_PROTOCOLPGM("/"); + SERIAL_PROTOCOLLN(filesize); + uint16_t time = _millis()/60000 - starttime/60000; + SERIAL_PROTOCOL(itostr2(time/60)); + SERIAL_PROTOCOL(':'); + SERIAL_PROTOCOL(itostr2(time%60)); + SERIAL_PROTOCOLPGM("\n"); + } } else { SERIAL_PROTOCOLLNPGM("Not SD printing"); diff --git a/Firmware/cardreader.h b/Firmware/cardreader.h index b7df8ff41..9a7d0f697 100644 --- a/Firmware/cardreader.h +++ b/Firmware/cardreader.h @@ -25,7 +25,6 @@ public: void closefile(bool store_location=false); void release(); void startFileprint(); - void pauseSDPrint(); uint32_t getFileSize(); void getStatus(); void printingHasFinished(); @@ -75,7 +74,6 @@ public: bool logging; bool sdprinting ; bool cardOK ; - bool paused ; char filename[13]; uint16_t modificationTime, modificationDate; uint32_t cluster, position; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 465fde2b4..cbfe017fd 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -4108,7 +4108,7 @@ void prusa_statistics(int _message, uint8_t _fil_nr) { { prusa_statistics_case0(15); } - else if (isPrintPaused || card.paused) + else if (isPrintPaused) { prusa_statistics_case0(14); } diff --git a/Tests/PrusaStatistics_test.cpp b/Tests/PrusaStatistics_test.cpp index 3c15899ab..261a4dc6d 100644 --- a/Tests/PrusaStatistics_test.cpp +++ b/Tests/PrusaStatistics_test.cpp @@ -198,7 +198,7 @@ void prusa_statistics(int _message, uint8_t _fil_nr) { SERIAL_ECHOLN("}"); status_number = 15; } - else if (isPrintPaused || card.paused) + else if (isPrintPaused) { SERIAL_ECHO("{"); prusa_stat_printerstatus(14); @@ -490,7 +490,7 @@ void prusa_statistics(int _message, uint8_t _fil_nr) { { prusa_statistics_case0(15); } - else if (isPrintPaused || card.paused) + else if (isPrintPaused) { prusa_statistics_case0(14); } @@ -753,7 +753,6 @@ TEST_CASE("Prusa_statistics test", "[prusa_stats]") SERIALS_RESET(); isPrintPaused = 0; - card.paused = 0; IS_SD_PRINTING = 1; old_code::prusa_statistics(test_codes[i],0); new_code::prusa_statistics(test_codes[i],0); From 779423f0e71b700f941d1c5e6b8ac1114f05adc5 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Fri, 29 Nov 2019 15:06:54 +0200 Subject: [PATCH 168/271] Move hardcoded values to variants --- Firmware/tmc2130.cpp | 4 ++-- Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 4 +++- Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 4 +++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Firmware/tmc2130.cpp b/Firmware/tmc2130.cpp index 6a79f51ac..dca50ac77 100755 --- a/Firmware/tmc2130.cpp +++ b/Firmware/tmc2130.cpp @@ -24,7 +24,7 @@ uint8_t tmc2130_current_h[4] = TMC2130_CURRENTS_H; uint8_t tmc2130_current_r[4] = TMC2130_CURRENTS_R; //running currents for homing -uint8_t tmc2130_current_r_home[4] = {8, 10, 20, 18}; +uint8_t tmc2130_current_r_home[4] = TMC2130_CURRENTS_R_HOME; //pwm_ampl @@ -40,7 +40,7 @@ uint8_t tmc2130_mres[4] = {0, 0, 0, 0}; //will be filed at begin of init uint8_t tmc2130_sg_thr[4] = {TMC2130_SG_THRS_X, TMC2130_SG_THRS_Y, TMC2130_SG_THRS_Z, TMC2130_SG_THRS_E}; -uint8_t tmc2130_sg_thr_home[4] = {3, 3, TMC2130_SG_THRS_Z, TMC2130_SG_THRS_E}; +uint8_t tmc2130_sg_thr_home[4] = TMC2130_SG_THRS_HOME; uint8_t tmc2130_sg_homing_axes_mask = 0x00; diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index 54f0c4699..685d77c6b 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -260,11 +260,13 @@ #define TMC2130_SG_THRS_Y 3 // stallguard sensitivity for Y axis #define TMC2130_SG_THRS_Z 4 // stallguard sensitivity for Z axis #define TMC2130_SG_THRS_E 3 // stallguard sensitivity for E axis +#define TMC2130_SG_THRS_HOME {3, 3, TMC2130_SG_THRS_Z, TMC2130_SG_THRS_E} //new settings is possible for vsense = 1, running current value > 31 set vsense to zero and shift both currents by 1 bit right (Z axis only) #define TMC2130_CURRENTS_H {16, 20, 35, 30} // default holding currents for all axes #define TMC2130_CURRENTS_R {16, 20, 35, 30} // default running currents for all axes -#define TMC2130_UNLOAD_CURRENT_R 12 // lowe current for M600 to protect filament sensor +#define TMC2130_CURRENTS_R_HOME {8, 10, 20, 18} // homing running currents for all axes +// #define TMC2130_UNLOAD_CURRENT_R 12 // lower current for M600 to protect filament sensor - Unused #define TMC2130_STEALTH_Z diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index 62dae6aca..5ee149e75 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -262,11 +262,13 @@ #define TMC2130_SG_THRS_Y 3 // stallguard sensitivity for Y axis #define TMC2130_SG_THRS_Z 4 // stallguard sensitivity for Z axis #define TMC2130_SG_THRS_E 3 // stallguard sensitivity for E axis +#define TMC2130_SG_THRS_HOME {3, 3, TMC2130_SG_THRS_Z, TMC2130_SG_THRS_E} //new settings is possible for vsense = 1, running current value > 31 set vsense to zero and shift both currents by 1 bit right (Z axis only) #define TMC2130_CURRENTS_H {16, 20, 35, 30} // default holding currents for all axes #define TMC2130_CURRENTS_R {16, 20, 35, 30} // default running currents for all axes -#define TMC2130_UNLOAD_CURRENT_R 12 // lowe current for M600 to protect filament sensor +#define TMC2130_CURRENTS_R_HOME {8, 10, 20, 18} // homing running currents for all axes +// #define TMC2130_UNLOAD_CURRENT_R 12 // lower current for M600 to protect filament sensor - Unused #define TMC2130_STEALTH_Z From e7f2577233100a32abf050d1ba77492e9b3a1a91 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Fri, 29 Nov 2019 22:49:22 +0200 Subject: [PATCH 169/271] Fix kill messages --- Firmware/Marlin_main.cpp | 6 +++--- Firmware/cardreader.cpp | 8 ++++---- Firmware/cmdqueue.cpp | 2 +- Firmware/messages.c | 1 + Firmware/messages.h | 1 + Firmware/temperature.cpp | 2 +- 6 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index fe94fab5b..5788e0dd3 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5944,7 +5944,7 @@ Sigma_Exit: //! ### M112 - Emergency stop // ----------------------------------------- case 112: - kill(_n(""), 3); + kill(MSG_M112_KILL, 3); break; //! ### M140 - Set bed temperature @@ -8626,7 +8626,7 @@ if(0) if( (_millis() - previous_millis_cmd) > max_inactive_time ) if(max_inactive_time) - kill(_n(""), 4); + kill(_n("Inactivity Shutdown"), 4); if(stepper_inactive_time) { if( (_millis() - previous_millis_cmd) > stepper_inactive_time ) { @@ -8667,7 +8667,7 @@ if(0) // ---------------------------------------------------------------- if ( killCount >= KILL_DELAY) { - kill("", 5); + kill(NULL, 5); } #endif diff --git a/Firmware/cardreader.cpp b/Firmware/cardreader.cpp index 047a2c761..545316d39 100644 --- a/Firmware/cardreader.cpp +++ b/Firmware/cardreader.cpp @@ -359,10 +359,10 @@ void CardReader::openFile(const char* name,bool read, bool replace_current/*=tru { if((int)file_subcall_ctr>(int)SD_PROCEDURE_DEPTH-1) { - SERIAL_ERROR_START; - SERIAL_ERRORPGM("trying to call sub-gcode files with too many levels. MAX level is:"); - SERIAL_ERRORLN(SD_PROCEDURE_DEPTH); - kill("", 1); + // SERIAL_ERROR_START; + // SERIAL_ERRORPGM("trying to call sub-gcode files with too many levels. MAX level is:"); + // SERIAL_ERRORLN(SD_PROCEDURE_DEPTH); + kill(_n("trying to call sub-gcode files with too many levels."), 1); return; } diff --git a/Firmware/cmdqueue.cpp b/Firmware/cmdqueue.cpp index e17db42a3..c86935529 100755 --- a/Firmware/cmdqueue.cpp +++ b/Firmware/cmdqueue.cpp @@ -500,7 +500,7 @@ void get_command() //If command was e-stop process now if(strcmp(cmdbuffer+bufindw+CMDHDRSIZE, "M112") == 0) - kill("", 2); + kill(MSG_M112_KILL, 2); // Store the current line into buffer, move to the next line. // Store type of entry diff --git a/Firmware/messages.c b/Firmware/messages.c index bb2e9510a..1d8847e13 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -160,3 +160,4 @@ const char MSG_OCTOPRINT_RESUMED[] PROGMEM_N1 = "// action:resumed"; //// const char MSG_OCTOPRINT_CANCEL[] PROGMEM_N1 = "// action:cancel"; //// const char MSG_FANCHECK_EXTRUDER[] PROGMEM_N1 = "Err: EXTR. FAN ERROR"; ////c=20 const char MSG_FANCHECK_PRINT[] PROGMEM_N1 = "Err: PRINT FAN ERROR"; ////c=20 +const char MSG_M112_KILL[] PROGMEM_N1 = "M112 called. Emergency Stop."; ////c=20 diff --git a/Firmware/messages.h b/Firmware/messages.h index 60a4cc1c1..1dfbfa50d 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -161,6 +161,7 @@ extern const char MSG_OCTOPRINT_RESUMED[]; extern const char MSG_OCTOPRINT_CANCEL[]; extern const char MSG_FANCHECK_EXTRUDER[]; extern const char MSG_FANCHECK_PRINT[]; +extern const char MSG_M112_KILL[]; #if defined(__cplusplus) } diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index a9373a54b..88674cf98 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -879,7 +879,7 @@ static float analog2temp(int raw, uint8_t e) { SERIAL_ERROR_START; SERIAL_ERROR((int)e); SERIAL_ERRORLNPGM(" - Invalid extruder number !"); - kill(PSTR(""), 6); + kill(NULL, 6); return 0.0; } #ifdef HEATER_0_USES_MAX6675 From 3ce631052dbda683c3666b268bceadc688aea63c Mon Sep 17 00:00:00 2001 From: unknown <3d.gussner@gmail.com> Date: Fri, 29 Nov 2019 22:35:07 +0100 Subject: [PATCH 170/271] Set PF-build.sh to use v1.0.2 Arduino_Boards --- PF-build.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 7f538ea09..984df8a58 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -213,12 +213,12 @@ fi #### Set build environment ARDUINO_ENV="1.8.5" BUILD_ENV="1.0.6" -BOARD="rambo" +BOARD="prusa_einsy_rambo" BOARD_PACKAGE_NAME="PrusaResearchRambo" -BOARD_VERSION="1.0.1" +BOARD_VERSION="1.0.2" BOARD_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json" -BOARD_FILENAME="prusa3drambo" -BOARD_FILE_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/prusa3drambo-1.0.1.tar.bz2" +BOARD_FILENAME="prusa3dboards" +BOARD_FILE_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/prusa3dboards-1.0.2.tar.bz2" PF_BUILD_FILE_URL="https://github.com/3d-gussner/PF-build-env/releases/download/$BUILD_ENV/PF-build-env-$BUILD_ENV.zip" LIB="PrusaLibrary" SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" From 454e99dbb54086e2ce4a1ea7c1cb9317671c4668 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 3 Dec 2019 15:50:21 +0100 Subject: [PATCH 171/271] Use lcd_print_stop() in M603, fix octoprint regression M603 shouldn't report a fatal error state. Use lcd_print_stop(). Regression introduced in PR #2274 --- Firmware/Marlin_main.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index fe94fab5b..4dc5e2d3e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7271,7 +7271,7 @@ Sigma_Exit: //! ### M603 - Stop print // ------------------------------- case 603: { - Stop(); + lcd_print_stop(); } break; @@ -8745,6 +8745,16 @@ void kill(const char *full_screen_message, unsigned char id) } // Wait for reset } +// Stop: Emergency stop used by overtemp functions which allows recovery +// +// In addition to stopping the print, this prevents subsequent G[0-3] commands to be +// processed via USB (using "Stopped") until the print is resumed via M999 or +// manually started from scratch with the LCD. +// +// Note that the current instruction is completely discarded, so resuming from Stop() +// will introduce either over/under extrusion on the current segment, and will not +// survive a power panic. Switching Stop() to use the pause machinery instead (with +// the addition of disabling the headers) could allow true recovery in the future. void Stop() { disable_heater(); From 0ce7c51c1d8b96e6b10cc53bdd0b5cd520aeba1e Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 3 Dec 2019 20:02:58 +0100 Subject: [PATCH 172/271] Added more D-codes to RR Wiki and doxygen D-1, D80, D81, D106 --- Firmware/Dcodes.cpp | 2 +- Firmware/Marlin_main.cpp | 72 ++++++++++++++++++++++++++-------------- 2 files changed, 48 insertions(+), 26 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 86dd1aa4a..9649d62bb 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -253,7 +253,7 @@ void dcode_1() /*! * ### D2 - Read/Write RAM D3: Read/Write RAM - This command can be used without any additional parameters. It will read the entire eeprom. + This command can be used without any additional parameters. It will read the entire RAM. D3 [ A | C | X ] diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 2674ba829..ec3102fd8 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5574,10 +5574,13 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; /*! - ### M26 S\ - Set SD index M26: Set SD position + ### M26 - Set SD index M26: Set SD position Set position in SD card file to index in bytes. This command is expected to be called after M23 and before M24. Otherwise effect of this command is undefined. + M26 [ S ] + + - `S` - Index in bytes */ ---------------------------------- case 26: if(card.cardOK && code_seen('S')) { @@ -8519,7 +8522,7 @@ Sigma_Exit: /*! * - ### D-1 - Endless Loop D-1: Endless Loop + ### D-1 - Endless Loop D-1: Endless Loop D-1 @@ -8555,7 +8558,7 @@ Sigma_Exit: /*! * ### D2 - Read/Write RAM D3: Read/Write RAM - This command can be used without any additional parameters. It will read the entire eeprom. + This command can be used without any additional parameters. It will read the entire RAM. D3 [ A | C | X ] @@ -8682,22 +8685,35 @@ Sigma_Exit: * ### D10 - Set XYZ calibration = OK D10: Set XYZ calibration = OK - * - */ + * + */ case 10: dcode_10(); break; + + /*! + * + ### D12 - Time D12: Time + + Writes the actual time in the log file. + * + */ + #endif //DEBUG_DCODES #ifdef HEATBED_ANALYSIS - //! ### D80 - Bed check - // --------------------- - /*! - - `E` - dimension x - - `F` - dimention y - - `G` - points_x - - `H` - points_y - - `I` - offset_x - - `J` - offset_y + /*! + * + ### D80 - Bed check D80: Bed check + This command will log data to SD card file "mesh.txt". + + D80 [ E | F | G | H | I | J ] + + - `E` - Dimension X (default 40) + - `F` - Dimention Y (default 40) + - `G` - Points X (default 40) + - `H` - Points Y (default 40) + - `I` - Offset X (default 74) + - `J` - Offset Y (default 34) */ case 80: { @@ -8723,15 +8739,19 @@ Sigma_Exit: bed_check(dimension_x,dimension_y,points_x,points_y,offset_x,offset_y); }break; - //! ### D81 - Bed analysis - // ----------------------------- - /*! - - `E` - dimension x - - `F` - dimention y - - `G` - points_x - - `H` - points_y - - `I` - offset_x - - `J` - offset_y + /*! + * + ### D81 - Bed analysis D80: Bed analysis + This command will log data to SD card file "wldsd.txt". + + D81 [ E | F | G | H | I | J ] + + - `E` - Dimension X (default 40) + - `F` - Dimention Y (default 40) + - `G` - Points X (default 40) + - `H` - Points Y (default 40) + - `I` - Offset X (default 74) + - `J` - Offset Y (default 34) */ case 81: { @@ -8756,8 +8776,10 @@ Sigma_Exit: #endif //HEATBED_ANALYSIS #ifdef DEBUG_DCODES - //! ### D106 print measured fan speed for different pwm values - // -------------------------------------------------------------- + /*! + * + ### D106 - Print measured fan speed for different pwm values D106: Print measured fan speed for different pwm values + */ case 106: { for (int i = 255; i > 0; i = i - 5) { From 4fce74140a55679318b09027d0e42ec7c0aa0cf6 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 3 Dec 2019 19:35:29 +0100 Subject: [PATCH 173/271] Also abort planning in stop_and_save_print_to_ram Similarly to resume_print_from_ram_and_continue, abort any planning in mesh_plan_buffer_line already in stop_and_save_print_to_ram in case it is called for pausing only. --- Firmware/Marlin_main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index fe94fab5b..33f67684e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10249,6 +10249,7 @@ void stop_and_save_print_to_ram(float z_move, float e_move) memcpy(current_position, saved_pos, sizeof(saved_pos)); memcpy(destination, current_position, sizeof(destination)); #endif + waiting_inside_plan_buffer_line_print_aborted = true; //unroll the stack } } From 792d7ca6dc2029e7c6d81c6609eb89c06bb29ba7 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 3 Dec 2019 19:54:06 +0100 Subject: [PATCH 174/271] Turn off heaters just prior to retraction to limit oozing --- Firmware/Marlin_main.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 33f67684e..c8596bad6 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9555,9 +9555,11 @@ float temp_compensation_pinda_thermistor_offset(float temperature_pinda) void long_pause() //long pause print { st_synchronize(); - start_pause_print = _millis(); + // Stop heaters + setAllTargetHotends(0); + //retract current_position[E_AXIS] -= default_retraction; plan_buffer_line_curposXYZE(400, active_extruder); @@ -9572,8 +9574,7 @@ void long_pause() //long pause print current_position[Y_AXIS] = Y_PAUSE_POS; plan_buffer_line_curposXYZE(50, active_extruder); - // Turn off the hotends and print fan - setAllTargetHotends(0); + // Turn off the print fan fanSpeed = 0; } From d60230e494e6e4a60387b7fceab8e8be24648b70 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 3 Dec 2019 19:55:33 +0100 Subject: [PATCH 175/271] Add some documentation --- Firmware/Marlin_main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index c8596bad6..9924b61cb 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10221,7 +10221,9 @@ void stop_and_save_print_to_ram(float z_move, float e_move) sei(); if ((z_move != 0) || (e_move != 0)) { // extruder or z move #if 1 - // Rather than calling plan_buffer_line directly, push the move into the command queue, + // Rather than calling plan_buffer_line directly, push the move into the command queue so that + // the caller can continue processing. This is used during powerpanic to save the state as we + // move away from the print. char buf[48]; // First unretract (relative extrusion) From 063d0421ac71801bf0d8eb31ca9e51ef3950737f Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 3 Dec 2019 19:56:05 +0100 Subject: [PATCH 176/271] Call long_pause from the main loop (again) After calling stop_and_save_print_to_ram, perform the parking moves within the main loop as done before PR#1899 to avoid planning within an interrupted move (which would clear the abort flag too soon). --- Firmware/ultralcd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index cbfe017fd..b9e86fc43 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1100,6 +1100,7 @@ void lcd_commands() lcd_setstatuspgm(_i("Print paused"));////MSG_PRINT_PAUSED c=20 r=1 lcd_commands_type = LcdCommands::Idle; lcd_commands_step = 0; + long_pause(); } } @@ -1656,9 +1657,8 @@ void lcd_return_to_status() //! @brief Pause print, disable nozzle heater, move to park position void lcd_pause_print() { - lcd_return_to_status(); stop_and_save_print_to_ram(0.0,0.0); - long_pause(); + lcd_return_to_status(); isPrintPaused = true; if (LcdCommands::Idle == lcd_commands_type) { From 8448b8d41390301a6cd3a5e4b31260d52bfff896 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 3 Dec 2019 20:17:08 +0100 Subject: [PATCH 177/271] Keep destination updated in an aborted plan as well When aborting the plan destination is updated anyway to reflect the latest position. There's no use in this additional check. --- Firmware/Marlin_main.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 9924b61cb..5bdae1bb7 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8415,8 +8415,6 @@ void prepare_move() plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply*(1./(60.f*100.f)), active_extruder); #endif } - if (waiting_inside_plan_buffer_line_print_aborted) - return; set_current_to_destination(); } From a5f3027ee18064be0ea3610ac5cb83ea9ccbbac9 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 4 Dec 2019 11:38:29 +0100 Subject: [PATCH 178/271] D2130 updated Needs review --- Firmware/Marlin_main.cpp | 54 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index ec3102fd8..7181b7303 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8829,7 +8829,59 @@ Sigma_Exit: D2130E!wave220 ... (sin(x))^1.1 extruder microstep compensation curve used */ - + /*! + * + ### D2130 - Trinamic stepper controller D2130: Trinamic stepper controller + Unsing G28 without any paramters will perfom on the Prusa i3 printers home AND mesh bed leveling, while the default G-code G28 is just homeing the printer + + D2130 [ Axis | Command | Subcommand | Value ] + + - Axis + - `X` - X stepper driver + - `Y` - Y stepper driver + - `Z` - Z stepper driver + - `E` - Extruder stepper driver + - Commands + - `0` - Current off + - `1` - Current on + - `+` - Single step + - `-` - Single step oposite direction + - `NNN` - Value sereval steps + - `?` - Read register + - Subcommands for read register + - `mres` - Micro step resolution. More information in datasheet '5.5.2 CHOPCONF – Chopper Configuration' + - `step` - Step + - `mscnt` - Microstep counter. More information in datasheet '5.5 Motor Driver Registers' + - `mscuract` - Actual microstep current for motor. More information in datasheet '5.5 Motor Driver Registers' + - `wave` - Microstep linearity compensation curve + - `!` - Set register + - Subcommands for set register + - `mres` - Micro step resolution + - `step` - Step + - `wave` - Microstep linearity compensation curve + - Values for set register + - `0, 180 --> 250` - Off + - `0.9 --> 1.25` - Valid values (recommended is 1.1) + - `@` - Home calibrate axis + + Examples: + + D2130E?wave + + Print extruder microstep linearity compensation curve + + D2130E!wave0 + + Disable extruder linearity compensation curve, (sine curve is used) + + D2130E!wave220 + + (sin(x))^1.1 extruder microstep compensation curve used + + Notes: + For more information see https://www.trinamic.com/fileadmin/assets/Products/ICs_Documents/TMC2130_datasheet.pdf + * + */ case 2130: dcode_2130(); break; From cdc6beaf6f1abd58146e4fc44092c1fe679c898b Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 4 Dec 2019 12:25:33 +0100 Subject: [PATCH 179/271] Added M910 -> M918 --- Firmware/Marlin_main.cpp | 110 ++++++++++++++++++++++----------------- 1 file changed, 63 insertions(+), 47 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 7181b7303..248ce989b 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8072,7 +8072,9 @@ Sigma_Exit: #ifdef TMC2130_SERVICE_CODES_M910_M918 /*! - ### M910 - TMC2130 init G32: Undock Z Probe sled + ### M910 - TMC2130 init M910: TMC2130 init + Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. + */ ----------------------------------------------- case 910: { @@ -8081,8 +8083,16 @@ Sigma_Exit: break; /*! - ### M911 - Set TMC2130 holding currents G32: Undock Z Probe sled - */ ------------------------------------------------- + ### M911 - Set TMC2130 holding currents M911: Set TMC2130 holding currents + Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. + + M911 [ X | Y | Z | E ] + + - `X` - X stepper driver holding current value + - `Y` - Y stepper driver holding current value + - `Z` - Z stepper driver holding current value + - `E` - Extruder stepper driver holding current value + */ ------------------------------------------------- case 911: { if (code_seen('X')) tmc2130_set_current_h(0, code_value()); @@ -8093,7 +8103,16 @@ Sigma_Exit: break; /*! - ### M912 - Set TMC2130 running currents G32: Undock Z Probe sled + ### M912 - Set TMC2130 running currents M912: Set TMC2130 running currents + Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. + + M912 [ X | Y | Z | E ] + + + - `X` - X stepper driver running current value + - `Y` - Y stepper driver running current value + - `Z` - Z stepper driver running current value + - `E` - Extruder stepper driver running current value */ ----------------------------------------------- case 912: { @@ -8105,7 +8124,9 @@ Sigma_Exit: break; /*! - ### M913 - Print TMC2130 currents G32: Undock Z Probe sled + ### M913 - Print TMC2130 currents M913: Print TMC2130 currents + Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. + Shows TMC2130 currents. */ ----------------------------- case 913: { @@ -8114,7 +8135,8 @@ Sigma_Exit: break; /*! - ### M914 - Set TMC2130 normal mode G32: Undock Z Probe sled + ### M914 - Set TMC2130 normal mode M914: Set TMC2130 normal mode + Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. */ ------------------------------ case 914: { @@ -8125,7 +8147,8 @@ Sigma_Exit: break; /*! - ### M915 - Set TMC2130 silent mode G32: Undock Z Probe sled + ### M915 - Set TMC2130 silent mode M915: Set TMC2130 silent mode + Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. */ ------------------------------ case 915: { @@ -8136,7 +8159,16 @@ Sigma_Exit: break; /*! - ### M916 - Set TMC2130 Stallguard sensitivity threshold G32: Undock Z Probe sled + ### M916 - Set TMC2130 Stallguard sensitivity threshold M916: Set TMC2130 Stallguard sensitivity threshold + Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. + + M916 [ X | Y | Z | E ] + + + - `X` - X stepper driver stallguard sensitivity threshold value + - `Y` - Y stepper driver stallguard sensitivity threshold value + - `Z` - Z stepper driver stallguard sensitivity threshold value + - `E` - Extruder stepper driver stallguard sensitivity threshold value */ ------------------------------------------------------- case 916: { @@ -8150,7 +8182,16 @@ Sigma_Exit: break; /*! - ### M917 - Set TMC2130 PWM amplitude offset (pwm_ampl) G32: Undock Z Probe sled + ### M917 - Set TMC2130 PWM amplitude offset (pwm_ampl) M917: Set TMC2130 PWM amplitude offset (pwm_ampl) + Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. + + M917 [ X | Y | Z | E ] + + + - `X` - X stepper driver PWM amplitude offset value + - `Y` - Y stepper driver PWM amplitude offset value + - `Z` - Z stepper driver PWM amplitude offset value + - `E` - Extruder stepper driver PWM amplitude offset value */ -------------------------------------------------------------- case 917: { @@ -8162,7 +8203,16 @@ Sigma_Exit: break; /*! - ### M918 - Set TMC2130 PWM amplitude gradient (pwm_grad) G32: Undock Z Probe sled + ### M918 - Set TMC2130 PWM amplitude gradient (pwm_grad) M918: Set TMC2130 PWM amplitude gradient (pwm_grad) + Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. + + M918 [ X | Y | Z | E ] + + + - `X` - X stepper driver PWM amplitude gradient value + - `Y` - Y stepper driver PWM amplitude gradient value + - `Z` - Z stepper driver PWM amplitude gradient value + - `E` - Extruder stepper driver PWM amplitude gradient value */ ------------------------------------------------------------- case 918: { @@ -8794,45 +8844,11 @@ Sigma_Exit: }break; #ifdef TMC2130 - //! ### D2130 - TMC2130 Trinamic stepper controller - // --------------------------- - - - /*! - - - D2130[subcommand][value] - - - : - - '0' current off - - '1' current on - - '+' single step - - * value sereval steps - - '-' dtto oposite direction - - '?' read register - - * "mres" - - * "step" - - * "mscnt" - - * "mscuract" - - * "wave" - - '!' set register - - * "mres" - - * "step" - - * "wave" - - '@' home calibrate axis - - Example: - - D2130E?wave ... print extruder microstep linearity compensation curve - - D2130E!wave0 ... disable extruder linearity compensation curve, (sine curve is used) - - D2130E!wave220 ... (sin(x))^1.1 extruder microstep compensation curve used - */ /*! * - ### D2130 - Trinamic stepper controller D2130: Trinamic stepper controller - Unsing G28 without any paramters will perfom on the Prusa i3 printers home AND mesh bed leveling, while the default G-code G28 is just homeing the printer + ### D2130 - Trinamic stepper controller D2130: Trinamic stepper controller + + @todo Please review by owner of the code. RepRap Wiki Gcode needs to be updated after review of owner as well. D2130 [ Axis | Command | Subcommand | Value ] From fb3c65b3dcbc100b80f2d295b729498ca6d25be1 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 4 Dec 2019 12:38:43 +0100 Subject: [PATCH 180/271] fixed links to RR Wiki --- Firmware/Marlin_main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 248ce989b..b27dfed74 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8182,7 +8182,7 @@ Sigma_Exit: break; /*! - ### M917 - Set TMC2130 PWM amplitude offset (pwm_ampl) M917: Set TMC2130 PWM amplitude offset (pwm_ampl) + ### M917 - Set TMC2130 PWM amplitude offset (pwm_ampl) M917: Set TMC2130 PWM amplitude offset (pwm_ampl) Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. M917 [ X | Y | Z | E ] @@ -8203,7 +8203,7 @@ Sigma_Exit: break; /*! - ### M918 - Set TMC2130 PWM amplitude gradient (pwm_grad) M918: Set TMC2130 PWM amplitude gradient (pwm_grad) + ### M918 - Set TMC2130 PWM amplitude gradient (pwm_grad) M918: Set TMC2130 PWM amplitude gradient (pwm_grad) Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. M918 [ X | Y | Z | E ] From f7bfca30612e0da9519fdced7bcd397a72f4af94 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 4 Dec 2019 13:39:56 +0100 Subject: [PATCH 181/271] Fix merge issues --- Firmware/Marlin_main.cpp | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 22229b477..3a3270841 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5569,14 +5569,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) card.openFile(strchr_pointer + 4,true); break; -<<<<<<< HEAD /*! ### M24 - Start SD print M24: Start/resume SD print */ ---------------------------------- -======= - //! ### M24 - Start/resume SD print - // ---------------------------------- ->>>>>>> upstream/MK3 case 24: if (isPrintPaused) lcd_resume_print(); @@ -5588,14 +5583,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; -<<<<<<< HEAD - /*! - ### M25 - Pause SD print M25: Pause SD print - */ ---------------------------------- - case 25: - card.pauseSDPrint(); - break; - /*! ### M26 - Set SD index M26: Set SD position Set position in SD card file to index in bytes. @@ -5605,13 +5592,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) - `S` - Index in bytes */ ---------------------------------- -======= - //! ### M26 S\ - Set SD index - //! Set position in SD card file to index in bytes. - //! This command is expected to be called after M23 and before M24. - //! Otherwise effect of this command is undefined. - // ---------------------------------- ->>>>>>> upstream/MK3 case 26: if(card.cardOK && code_seen('S')) { long index = code_value_long(); @@ -7759,17 +7739,16 @@ Sigma_Exit: break; #endif //FILAMENTCHANGEENABLE -<<<<<<< HEAD /*! ### M601 - Pause print M601: Pause print */ ------------------------------- -======= - //! ### M25 - Pause SD print - //! ### M601 - Pause print - //! ### M125 - Pause print (TODO: not implemented) - // ------------------------------- + /*! + ### M125 - Pause print (TODO: not implemented) + */ ------------------------------- + /*! + ### M25 - Pause SD print M25: Pause SD print + */ ---------------------------------- case 25: ->>>>>>> upstream/MK3 case 601: { if (!isPrintPaused) @@ -7790,18 +7769,11 @@ Sigma_Exit: } break; -<<<<<<< HEAD /*! ### M603 - Stop print M603: Stop print */ ------------------------------- - case 603: { - lcd_print_stop(); -======= - //! ### M603 - Stop print - // ------------------------------- case 603: { Stop(); ->>>>>>> upstream/MK3 } break; From 0cafd103787c405f7995cca01b3d014047d543bd Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 4 Dec 2019 13:43:19 +0100 Subject: [PATCH 182/271] minor fix --- Firmware/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 3a3270841..90aff701b 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7746,7 +7746,7 @@ Sigma_Exit: ### M125 - Pause print (TODO: not implemented) */ ------------------------------- /*! - ### M25 - Pause SD print M25: Pause SD print + ### M25 - Pause SD print M25: Pause SD print */ ---------------------------------- case 25: case 601: From 17e23693ebda55452d3560a0e2e8428afc6afac3 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 4 Dec 2019 14:21:43 +0100 Subject: [PATCH 183/271] Fixed stuipid copy paste error --- Firmware/Dcodes.cpp | 2 +- Firmware/Marlin_main.cpp | 243 +++++++++++++++++++-------------------- 2 files changed, 122 insertions(+), 123 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 9649d62bb..0a5142629 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -111,7 +111,7 @@ void print_mem(uint32_t address, uint16_t count, uint8_t type, uint8_t countperl - `X` - Data * */ - void dcode_3() +void dcode_3() { DBG(_N("D3 - Read/Write EEPROM\n")); uint16_t address = 0x0000; //default 0x0000 diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 90aff701b..c8dfcd098 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3906,7 +3906,7 @@ eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,0xFFFF); - `E` - The amount to extrude between the starting point and ending point - `F` - The feedrate per minute of the move between the starting point and ending point (if supplied) - */ -------------------------------------- + */ case 0: // G0 -> G1 case 1: // G1 if(Stopped == false) { @@ -4132,7 +4132,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) - `E` - The amount to extrude between the starting point and ending point - `F` - The feedrate per minute of the move between the starting point and ending point (if supplied) - */ ------------------------------ + */ case 2: if(Stopped == false) { get_arc_coordinates(); @@ -4161,7 +4161,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) - `P` - Time to wait, in milliseconds - `S` - Time to wait, in seconds - */ ------------------------------- + */ case 4: codenum = 0; if(code_seen('P')) codenum = code_value(); // milliseconds to wait @@ -4187,7 +4187,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) G10 - */ ------------------------------ + */ case 10: #if EXTRUDERS > 1 retracted_swap[active_extruder]=(code_seen('S') && code_value_long() == 1); // checks for swap retract argument @@ -4205,7 +4205,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) G11 - */ ----------------------------- + */ case 11: #if EXTRUDERS > 1 retract(false,retracted_swap[active_extruder]); @@ -4230,7 +4230,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) - `W` - Suppress mesh bed leveling - `C` - Calibrate X and Y origin (home) - Only on MK3/s */ - // ------------------------------ case 28: { long home_x_value = 0; @@ -4267,7 +4266,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. See `G81` - */ -------------------------------- + */ case 29: { #if Z_MIN_PIN == -1 @@ -4415,7 +4414,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G30 - Single Z Probe G30: Single Z-Probe In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. - */ ------------------------------------ + */ case 30: { st_synchronize(); @@ -4442,7 +4441,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G31 - Dock the sled G31: Dock Z Probe sled In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. - */ --------------------------- + */ case 31: dock_sled(true); break; @@ -4451,7 +4450,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G32 - Undock the sled G32: Undock Z Probe sled In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. - */ ---------------------------- + */ case 32: dock_sled(false); break; @@ -4462,7 +4461,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G30 - Single Z Probe G30: Single Z-Probe - */ ---------------------------- + */ case 30: { st_synchronize(); @@ -4486,7 +4485,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) G75 - */ --------------------------------------------- + */ case 75: { for (int i = 40; i <= 110; i++) @@ -4517,7 +4516,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) echo PINDA temperature -- Z shift (mm): 0.--- ``` */ - ------------------------------------------------ case 76: { #ifdef PINDA_THERMISTOR @@ -4794,7 +4792,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) - `F` - Front Bed Level correct value in um. - `B` - Back Bed Level correct value in um. */ - // ----------------------------------- /* * Probes a grid and produces a mesh to compensate for variable bed height @@ -5229,7 +5226,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) G81 - */ ----------------------------------------- + */ case 81: if (mbl.active) { SERIAL_PROTOCOLPGM("Num X,Y: "); @@ -5257,7 +5254,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) WARNING! USE WITH CAUTION! If you'll try to probe where is no leveling pad, nasty things can happen! In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. - */ ----------------------------------------- + */ case 82: SERIAL_PROTOCOLLNPGM("Finding bed "); int l_feedmultiply = setup_for_endstop_move(); @@ -5271,7 +5268,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G83: Babystep in Z and store to EEPROM - Not active G83: Babystep in Z and store to EEPROM In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. - */ ----------------------------------------- + */ case 83: { int babystepz = code_seen('S') ? code_value() : 0; @@ -5297,7 +5294,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G84: UNDO Babystep Z (move Z axis back) - Not active G84: UNDO Babystep Z (move Z axis back) In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. - */ ----------------------------------------- + */ case 84: babystepsTodoZsubtract(babystepLoadZ); // babystepLoadZ = 0; @@ -5306,7 +5303,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G85: Pick best babystep - Not active M0: Stop or Unconditional stop - */ --------------------------------------------------------------- + */ case 0: // M0 - Unconditional stop - Wait for user button press on LCD case 1: // M1 - Conditional stop - Wait for user button press on LCD { @@ -5522,8 +5519,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; - //! ### M17 - Enable axes M17: Enable/Power all stepper motors - // --------------------------------- + /*! + ### M17 - Enable axes M17: Enable/Power all stepper motors + */ case 17: LCD_MESSAGERPGM(_i("No move."));////MSG_NO_MOVE enable_x(); @@ -5538,7 +5536,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M20 - SD Card file list M20: List SD card - */ ----------------------------------- + */ case 20: SERIAL_PROTOCOLLNRPGM(_N("Begin file list"));////MSG_BEGIN_FILE_LIST card.ls(); @@ -5547,21 +5545,21 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M21 - Init SD card M21: Initialize SD card - */ ------------------------------------ + */ case 21: card.initsd(); break; /*! ### M22 - Release SD card M22: Release SD card - */ ----------------------------------- + */ case 22: card.release(); break; /*! ### M23 - Select file M23: Select SD file - */ ----------------------------------- + */ case 23: starpos = (strchr(strchr_pointer + 4,'*')); if(starpos!=NULL) @@ -5571,7 +5569,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M24 - Start SD print M24: Start/resume SD print - */ ---------------------------------- + */ case 24: if (isPrintPaused) lcd_resume_print(); @@ -5591,7 +5589,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) M26 [ S ] - `S` - Index in bytes - */ ---------------------------------- + */ case 26: if(card.cardOK && code_seen('S')) { long index = code_value_long(); @@ -5604,14 +5602,14 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M27 - Get SD status M27: Report SD print status - */ ---------------------------------- + */ case 27: card.getStatus(); break; /*! ### M28 - Start SD write M28: Begin write to SD card - */ --------------------------------- + */ case 28: starpos = (strchr(strchr_pointer + 4,'*')); if(starpos != NULL){ @@ -5624,7 +5622,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M29 - Stop SD write M29: Stop writing to SD card Currently has no effect. - */ ------------------------------------- + */ case 29: //processed in write to file routine above //card,saving = false; @@ -5632,7 +5630,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M30 - Delete file M30: Delete a file on the SD card - */ ---------------------------------- + */ case 30: if (card.cardOK){ card.closefile(); @@ -5649,7 +5647,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M32 - Select file and start SD print M32: Select file and start SD print @todo What are the parameters P and S for in M32? - */ ------------------------------------ + */ case 32: { if(card.sdprinting) { @@ -5686,8 +5684,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } } break; - /*! ### M982 - Start SD logging M928: Start SD logging - */ --------------------------------- + /*! + ### M982 - Start SD logging M928: Start SD logging + */ case 928: starpos = (strchr(strchr_pointer + 5,'*')); if(starpos != NULL){ @@ -5702,7 +5701,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M31 - Report current print time M31: Output time since last M109 or SD card start to serial - */ -------------------------------------------------- + */ case 31: //M31 take time since the start of the SD print or an M109 command { stoptime=_millis(); @@ -5721,7 +5720,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M42 - Set pin state M42: Switch I/O pin - */ ----------------------------- + */ case 42: if (code_seen('S')) { @@ -5753,7 +5752,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M44 - Reset the bed skew and offset calibration M44: Reset the bed skew and offset calibration - */ -------------------------------------------------------------------- + */ case 44: // M44: Prusa3D: Reset the bed skew and offset calibration. // Reset the baby step value and the baby step applied flag. @@ -5773,7 +5772,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) M45 [ V ] - `V` - Verbosity level 1, 10 and 20 (low, mid, high). Only when SUPPORT_VERBOSITY is defined. - */ ------------------------------------------------------ + */ case 45: // M45: Prusa3D: bed skew and offset with manual Z up { int8_t verbosity_level = 0; @@ -5792,7 +5791,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M46 - Show the assigned IP address M46: Show the assigned IP address. - */ ---------------------------------------------------- + */ /* case 46: { @@ -5818,7 +5817,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M47 - Show end stops dialog on the display M47: Show end stops dialog on the display - */ ---------------------------------------------------- + */ case 47: KEEPALIVE_STATE(PAUSED_FOR_USER); @@ -6150,7 +6149,7 @@ Sigma_Exit: M104 [ S ] - `S` - Target temperature - */ ----------------------------------------- + */ case 104: // M104 { uint8_t extruder; @@ -6166,14 +6165,14 @@ Sigma_Exit: /*! ### M112 - Emergency stop M112: Full (Emergency) Stop - */ ----------------------------------------- + */ case 112: kill(_n(""), 3); break; /*! ### M140 - Set bed temperature M140: Set Bed Temperature (Fast) - */ ----------------------------------------- + */ case 140: if (code_seen('S')) setTargetBed(code_value()); break; @@ -6194,7 +6193,7 @@ Sigma_Exit: ok T:20.2 /0.0 B:19.1 /0.0 T0:20.2 /0.0 @:0 B@:0 P:19.8 A:26.4 - */ ----------------------------------------- + */ case 105: { uint8_t extruder; @@ -6302,7 +6301,7 @@ Sigma_Exit: Command always waits for both cool down and heat up. If no parameters are supplied waits for previously set extruder temperature. - */ ------------------------------------------------- + */ case 109: { uint8_t extruder; @@ -6417,7 +6416,7 @@ Sigma_Exit: /*! ### M106 - Set fan speed M106: Fan On - */ ------------------------------------------- + */ case 106: // M106 Sxxx Fan On S 0 .. 255 if (code_seen('S')){ fanSpeed=constrain(code_value(),0,255); @@ -6429,7 +6428,7 @@ Sigma_Exit: /*! ### M107 - Fan off M107: Fan Off - */ ------------------------------- + */ case 107: fanSpeed = 0; break; @@ -6439,7 +6438,7 @@ Sigma_Exit: /*! ### M80 - Turn on the Power Supply M80: ATX Power On - */ ------------------------------- + */ case 80: SET_OUTPUT(PS_ON_PIN); //GND WRITE(PS_ON_PIN, PS_ON_AWAKE); @@ -6460,7 +6459,7 @@ Sigma_Exit: /*! ### M81 - Turn off Power Supply M81: ATX Power Off - */ -------------------------------------- + */ case 81: disable_heater(); st_synchronize(); @@ -6485,7 +6484,7 @@ Sigma_Exit: /*! ### M82 - Set E axis to absolute mode M82: Set extruder to absolute mode Makes the extruder interpret extrusion as absolute positions. - */ --------------------------------------- + */ case 82: axis_relative_modes[3] = false; break; @@ -6493,7 +6492,7 @@ Sigma_Exit: /*! ### M83 - Set E axis to relative mode M83: Set extruder to relative mode Makes the extruder interpret extrusion values as relative positions. - */ --------------------------------------- + */ case 83: axis_relative_modes[3] = true; break; @@ -6555,7 +6554,7 @@ Sigma_Exit: /*! ### M85 - Set max inactive time M85: Set Inactivity Shutdown Timer Set Inactivity Shutdown Timer with parameter S. "M85 S0" will disable the inactivity shutdown time (default) - */ --------------------------------------- + */ case 85: // M85 if(code_seen('S')) { max_inactive_time = code_value() * 1000; @@ -6592,7 +6591,7 @@ Sigma_Exit: - `Y` - Steps per unit for the Y drive - `Z` - Steps per unit for the Z drive - `E` - Steps per unit for the extruder drive(s) - */ --------------------------------------- + */ case 92: for(int8_t i=0; i < NUM_AXIS; i++) { @@ -6622,7 +6621,7 @@ Sigma_Exit: M110 [ N ] - `N` - Line number - */ --------------------------------------- + */ case 110: if (code_seen('N')) gcode_LastN = code_value_long(); @@ -6635,7 +6634,7 @@ Sigma_Exit: M113 [ S ] - `S` - Seconds Default is 2 seconds between "busy" messages - */ ------------------------------------------ + */ case 113: if (code_seen('S')) { host_keepalive_interval = (uint8_t)code_value_short(); @@ -6699,7 +6698,7 @@ Sigma_Exit: /*! ### M114 - Get current position M114: Get Current Position - */ ------------------------------------- + */ case 114: gcode_M114(); break; @@ -6717,14 +6716,14 @@ Sigma_Exit: /*! ### M120 - Enable endstops M120: Enable endstop detection - */ ---------------------------------------- + */ case 120: enable_endstops(false) ; break; /*! ### M121 - Disable endstops M121: Disable endstop detection - */ ---------------------------------------- + */ case 121: enable_endstops(true) ; break; @@ -6732,7 +6731,7 @@ Sigma_Exit: /*! ### M119 - Get endstop states M119: Get Endstop Status Returns the current state of the configured X, Y, Z endstops. Takes into account any 'inverted endstop' settings, so one can confirm that the machine is interpreting the endstops correctly. - */ ---------------------------------------- + */ case 119: SERIAL_PROTOCOLRPGM(_N("Reporting endstop status"));////MSG_M119_REPORT SERIAL_PROTOCOLLN(""); @@ -6798,7 +6797,7 @@ Sigma_Exit: /*! ### M150 - Set RGB(W) Color M150: Set LED color In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code by defining BLINKM and its dependencies. - */ ------------------------------------------- + */ case 150: { byte red; @@ -6821,7 +6820,7 @@ Sigma_Exit: - `D` - Diameter in mm - `T` - Number of extruder (MMUs) - */ ---------------------------------------- + */ case 200: // M200 D set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters). { @@ -6863,7 +6862,7 @@ Sigma_Exit: /*! ### M201 - Set Print Max Acceleration M201: Set max printing acceleration - */ ------------------------------------------- + */ case 201: for (int8_t i = 0; i < NUM_AXIS; i++) { @@ -6899,7 +6898,7 @@ Sigma_Exit: /*! ### M203 - Set Max Feedrate M203: Set maximum feedrate - */ --------------------------------------- + */ case 203: // M203 max feedrate mm/sec for (int8_t i = 0; i < NUM_AXIS; i++) { @@ -6926,7 +6925,7 @@ Sigma_Exit: /*! ### M204 - Acceleration settings M204: Set default acceleration - */ ------------------------------------------ + */ /*! Supporting old format: M204 [ S | T ] @@ -6967,7 +6966,7 @@ Sigma_Exit: /*! ### M205 - Set advanced settings M205: Advanced settings - */ --------------------------------------------- + */ /*! Set some advanced settings related to movement. M205 [ S | T | B | X | Y | Z | E ] @@ -7002,7 +7001,7 @@ Sigma_Exit: - `X` - X axis offset - `Y` - Y axis offset - `Z` - Z axis offset - */ ---------------------------------------------- + */ case 206: for(int8_t i=0; i < 3; i++) { @@ -7019,7 +7018,7 @@ Sigma_Exit: - `S` - positive length to retract, in mm - `F` - retraction feedrate, in mm/min - `Z` - additional zlift/hop - */ -------------------------------------------------- + */ case 207: //M207 - set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop] { if(code_seen('S')) @@ -7043,7 +7042,7 @@ Sigma_Exit: - `S` - positive length surplus to the M207 Snnn, in mm - `F` - feedrate, in mm/sec - */ -------------------------------------------- + */ case 208: // M208 - set retract recover length S[positive mm surplus to the M207 S*] F[feedrate mm/min] { if(code_seen('S')) @@ -7064,7 +7063,7 @@ Sigma_Exit: - `S` - 1=true or 0=false This boolean value S 1=true or 0=false enables automatic retract detect if the slicer did not support G10/G11: every normal extrude-only move will be classified as retract depending on the direction. - */ --------------------------------------------- + */ case 209: // M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction. { if(code_seen('S')) @@ -7109,7 +7108,7 @@ Sigma_Exit: /*! ### M218 - Set hotend offset M218: Set Hotend Offset In Prusa Firmware this G-code is only active if `EXTRUDERS` is higher then 1 in the source code. On Original i3 Prusa MK2/s MK2.5/s MK3/s it is not active. - */ ---------------------------------------- + */ case 218: // M218 - set hotend offset (in mm), T X Y { uint8_t extruder; @@ -7146,7 +7145,7 @@ Sigma_Exit: - `S` - Speed factor override percentage (0..100 or higher) - `R` - Restore previous speed factor - */ ----------------------------------------------- + */ case 220: // M220 S- set speed factor override percentage { if (code_seen('B')) //backup current speed factor @@ -7171,7 +7170,7 @@ Sigma_Exit: - `S` - Extrude factor override percentage (0..100 or higher), default 100% - `T` - Extruder drive number (Prusa Firmware only), default 0 if not set. - */ ---------------------------------------------------- + */ case 221: // M221 S- set extrude factor override percentage { if(code_seen('S')) @@ -7203,7 +7202,7 @@ Sigma_Exit: - `S` - pin state Wait until the specified pin reaches the state required - */ ------------------------------------------ + */ case 226: // M226 P S- Wait until the specified pin reaches the state required { if(code_seen('P')){ @@ -7261,7 +7260,7 @@ Sigma_Exit: /*! ### M280 - Set/Get servo position M280: Set servo position In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. - */ -------------------------------------------- + */ case 280: // M280 - set servo position absolute. P: servo index, S: angle or microseconds { int servo_index = -1; @@ -7310,7 +7309,7 @@ Sigma_Exit: - `P` - duration in milliseconds In Prusa Firmware the defaults are `100Hz` and `1000ms`, so that `M300` without parameters will beep for a second. - */ ----------------------- + */ case 300: // M300 { int beepS = code_seen('S') ? code_value() : 110; @@ -7344,7 +7343,7 @@ Sigma_Exit: Sets Proportional (P), Integral (I) and Derivative (D) values for hot end. See also PID Tuning. - */ --------------------------------------- + */ case 301: { if(code_seen('P')) cs.Kp = code_value(); @@ -7386,7 +7385,7 @@ Sigma_Exit: Sets Proportional (P), Integral (I) and Derivative (D) values for bed. See also PID Tuning. - */ -------------------------------------- + */ case 304: { if(code_seen('P')) cs.bedKp = code_value(); @@ -7412,7 +7411,7 @@ Sigma_Exit: In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. You need to define `CHDK` and assign a `PHOTOGRAPH_PIN` to bea ble to use it. - */ -------------------------------------------- + */ case 240: // M240 Triggers a camera by emulating a Canon RC-1 : http://www.doc-diy.net/photo/rc-1_hacked/ { #ifdef CHDK @@ -7454,7 +7453,7 @@ Sigma_Exit: - `S` - Cold extrude minimum temperature This tells the printer to allow movement of the extruder motor above a certain temperature, or if disabled, to allow extruder movement when the hotend is below a safe printing temperature. - */ ------------------------------------------------------------------- + */ case 302: { float temp = .0; @@ -7474,7 +7473,7 @@ Sigma_Exit: - `C` - Cycles, default `5` PID Tuning refers to a control algorithm used in some repraps to tune heating behavior for hot ends and heated beds. This command generates Proportional (Kp), Integral (Ki), and Derivative (Kd) values for the hotend or bed (`E-1`). Send the appropriate code and wait for the output to update the firmware. - */ ------------------------------------- + */ case 303: { float temp = 150.0; @@ -7493,7 +7492,7 @@ Sigma_Exit: ### M400 - Wait for all moves to finish M400: Wait for current moves to finish Finishes all current moves and and thus clears the buffer. - */ ----------------------------------------- + */ case 400: { st_synchronize(); @@ -7511,7 +7510,7 @@ Sigma_Exit: Currently three different materials are needed (default, flex and PVA). And storing this information for different load/unload profiles etc. in the future firmware does not have to wait for "ok" from MMU. - */ ---------------------------------------------- + */ case 403: { // currently three different materials are needed (default, flex and PVA) @@ -7532,7 +7531,7 @@ Sigma_Exit: ### M500 - Store settings in EEPROM M500: Store parameters in non-volatile storage Save current parameters to EEPROM, SD card or other non-volatile storage. - */ ----------------------------------------- + */ case 500: { Config_StoreSettings(); @@ -7543,7 +7542,7 @@ Sigma_Exit: ### M501 - Read settings from EEPROM M501: Read parameters from EEPROM Set the active parameters to those stored in the EEPROM, SD card or other non-volatile storage. This is useful to revert parameters after experimenting with them. - */ ---------------------------------------- + */ case 501: { Config_RetrieveSettings(); @@ -7554,7 +7553,7 @@ Sigma_Exit: ### M502 - Revert all settings to factory default M502: Restore Default Settings This command resets all tunable parameters to their default values, as set in the firmware's configuration files. This doesn't reset any parameters stored in the EEPROM, so it must be followed with M500 to reboot with default settings. - */ ------------------------------------------------- + */ case 502: { Config_ResetDefault(); @@ -7565,7 +7564,7 @@ Sigma_Exit: ### M503 - Repport all settings currently in memory M503: Report Current Settings This command asks the firmware to reply with the current print settings as set in memory. Settings will differ from EEPROM contents if changed since the last load / save. The reply output includes the G-Code commands to produce each setting. For example, Steps-Per-Unit values are displayed as an M92 command. - */ ------------------------------------------------- + */ case 503: { Config_PrintSettings(); @@ -7577,7 +7576,7 @@ Sigma_Exit: Resets the language to English. Only on Original Prusa i3 MK2.5/s and MK3/s with multiple languages. - */ ------------------------------------------------ + */ case 509: { lang_reset(); @@ -7591,7 +7590,7 @@ Sigma_Exit: ### M540 - Abort print on endstop hit (enable/disable) M540 in Marlin: Enable/Disable "Stop SD Print on Endstop Hit" In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. You must define `ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED`. - */ ----------------------------------------------------- + */ case 540: { if(code_seen('S')) abort_on_endstop_hit = code_value() > 0; @@ -7609,7 +7608,7 @@ Sigma_Exit: Sets the Z-probe Z offset. This offset is used to determine the actual Z position of the nozzle when using a probe to home Z with G28. This value may also be used by G81 (Prusa) / G29 (Marlin) to apply correction to the Z position. This value represents the distance from nozzle to the bed surface at the point where the probe is triggered. This value will be negative for typical switch probes, inductive probes, and setups where the nozzle makes a circuit with a raised metal contact. This setting will be greater than zero on machines where the nozzle itself is used as the probe, pressing down on the bed to press a switch. (This is a common setup on delta machines.) - */ ----------------------------------------------------- + */ #ifdef CUSTOM_M_CODE_SET_Z_PROBE_OFFSET case CUSTOM_M_CODE_SET_Z_PROBE_OFFSET: { @@ -7663,7 +7662,7 @@ Sigma_Exit: Initiates Filament change, it is also used during Filament Runout Sensor process. If the `M600` is triggered under 25mm it will do a Z-lift of 25mm to prevent a filament blob. - */ -------------------------------------- + */ case 600: //Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal] { st_synchronize(); @@ -7741,13 +7740,13 @@ Sigma_Exit: /*! ### M601 - Pause print M601: Pause print - */ ------------------------------- + */ /*! ### M125 - Pause print (TODO: not implemented) - */ ------------------------------- + */ /*! ### M25 - Pause SD print M25: Pause SD print - */ ---------------------------------- + */ case 25: case 601: { @@ -7762,7 +7761,7 @@ Sigma_Exit: /*! ### M602 - Resume print M602: Resume print - */ ------------------------------- + */ case 602: { if (isPrintPaused) lcd_resume_print(); @@ -7771,7 +7770,7 @@ Sigma_Exit: /*! ### M603 - Stop print M603: Stop print - */ ------------------------------- + */ case 603: { Stop(); } @@ -7786,7 +7785,7 @@ Sigma_Exit: - `S` - Target temperature Wait for PINDA thermistor to reach target temperature - */ -------------------------------------------------------------- + */ case 860: { int set_target_pinda = 0; @@ -7843,7 +7842,7 @@ Sigma_Exit: - `I` - Table index Set compensation ustep value `S` for compensation table index `I`. - */ ----------------------------------------------------------- + */ case 861: if (code_seen('?')) { // ? - Print out current EEPROM offset values uint8_t cal_status = calibration_status_pinda(); @@ -7950,7 +7949,7 @@ Sigma_Exit: - MK3S (302) - MK3SMMU2S (20302) - */ ---------------------------------------------- + */ case 862: // M862: print checking float nDummy; uint8_t nCommand; @@ -8022,7 +8021,7 @@ Sigma_Exit: - `W` - Width - `H` - Height - `D` - Diameter Set ratio from WH/D - */ ---------------------------------------------- + */ case 900: gcode_M900(); break; @@ -8042,7 +8041,7 @@ Sigma_Exit: - `S` - ?? @todo What are `B` and `S` in M907? - */ --------------------------------------------------------------- + */ case 907: { #ifdef TMC2130 @@ -8079,7 +8078,7 @@ Sigma_Exit: /*! ### M908 - Control digital trimpot directly M908: Control digital trimpot directly In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. - */ --------------------------------------------------------- + */ case 908: { #if defined(DIGIPOTSS_PIN) && DIGIPOTSS_PIN > -1 @@ -8097,7 +8096,7 @@ Sigma_Exit: ### M910 - TMC2130 init M910: TMC2130 init Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. - */ ----------------------------------------------- + */ case 910: { tmc2130_init(); @@ -8114,7 +8113,7 @@ Sigma_Exit: - `Y` - Y stepper driver holding current value - `Z` - Z stepper driver holding current value - `E` - Extruder stepper driver holding current value - */ ------------------------------------------------- + */ case 911: { if (code_seen('X')) tmc2130_set_current_h(0, code_value()); @@ -8135,7 +8134,7 @@ Sigma_Exit: - `Y` - Y stepper driver running current value - `Z` - Z stepper driver running current value - `E` - Extruder stepper driver running current value - */ ----------------------------------------------- + */ case 912: { if (code_seen('X')) tmc2130_set_current_r(0, code_value()); @@ -8149,7 +8148,7 @@ Sigma_Exit: ### M913 - Print TMC2130 currents M913: Print TMC2130 currents Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. Shows TMC2130 currents. - */ ----------------------------- + */ case 913: { tmc2130_print_currents(); @@ -8159,7 +8158,7 @@ Sigma_Exit: /*! ### M914 - Set TMC2130 normal mode M914: Set TMC2130 normal mode Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. - */ ------------------------------ + */ case 914: { tmc2130_mode = TMC2130_MODE_NORMAL; @@ -8171,7 +8170,7 @@ Sigma_Exit: /*! ### M915 - Set TMC2130 silent mode M915: Set TMC2130 silent mode Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. - */ ------------------------------ + */ case 915: { tmc2130_mode = TMC2130_MODE_SILENT; @@ -8191,7 +8190,7 @@ Sigma_Exit: - `Y` - Y stepper driver stallguard sensitivity threshold value - `Z` - Z stepper driver stallguard sensitivity threshold value - `E` - Extruder stepper driver stallguard sensitivity threshold value - */ ------------------------------------------------------- + */ case 916: { if (code_seen('X')) tmc2130_sg_thr[X_AXIS] = code_value(); @@ -8214,7 +8213,7 @@ Sigma_Exit: - `Y` - Y stepper driver PWM amplitude offset value - `Z` - Z stepper driver PWM amplitude offset value - `E` - Extruder stepper driver PWM amplitude offset value - */ -------------------------------------------------------------- + */ case 917: { if (code_seen('X')) tmc2130_set_pwm_ampl(0, code_value()); @@ -8235,7 +8234,7 @@ Sigma_Exit: - `Y` - Y stepper driver PWM amplitude gradient value - `Z` - Z stepper driver PWM amplitude gradient value - `E` - Extruder stepper driver PWM amplitude gradient value - */ ------------------------------------------------------------- + */ case 918: { if (code_seen('X')) tmc2130_set_pwm_grad(0, code_value()); @@ -8250,7 +8249,7 @@ Sigma_Exit: /*! ### M350 - Set microstepping mode M350: Set microstepping mode Warning: Steps per unit remains unchanged. S code sets stepping mode for all drivers. - */ --------------------------------------------------- + */ case 350: { #ifdef TMC2130 @@ -8300,7 +8299,7 @@ Sigma_Exit: Toggle MS1 MS2 pins directly, S# determines MS1 or MS2, X# sets the pin high/low. M351 [B<0|1>] [E<0|1>] S<1|2> [X<0|1>] [Y<0|1>] [Z<0|1>] - */ ----------------------------------- + */ case 351: { #if defined(X_MS1_PIN) && X_MS1_PIN > -1 @@ -8323,7 +8322,7 @@ Sigma_Exit: /*! ### M701 - Load filament M701: Load filament - */ ------------------------- + */ case 701: { if (mmu_enabled && code_seen('E')) @@ -8340,7 +8339,7 @@ Sigma_Exit: - `U` - Unload all filaments used in current print - `C` - Unload just current filament - without any parameters unload all filaments - */ ------------------------ + */ case 702: { #ifdef SNMM @@ -8365,7 +8364,7 @@ Sigma_Exit: /*! ### M999 - Restart after being stopped M999: Restart after being stopped by error - */ ------------------------------------ + */ case 999: Stopped = false; lcd_reset_alert_level(); @@ -8374,7 +8373,7 @@ Sigma_Exit: break; /*! #### End of M-Commands - */ ------------------------------------ + */ default: printf_P(PSTR("Unknown M code: %s \n"), cmdbuffer + bufindr + CMDHDRSIZE); } From 564bab7308f69bbe2857b806ecdd63e96a75067d Mon Sep 17 00:00:00 2001 From: Michal Fanta <45625875+michalxfanta@users.noreply.github.com> Date: Thu, 5 Dec 2019 11:42:42 +0100 Subject: [PATCH 184/271] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 31 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/enhancement.md | 20 +++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 +++++++++++++++ .github/ISSUE_TEMPLATE/question.md | 12 +++++++++ 4 files changed, 83 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/enhancement.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/question.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..196d5756d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "[BUG]" +labels: bug +assignees: '' + +--- + +Please, before you create a new bug report, please make sure you searched in open and closed issues and couldn't find anything that matches. + +**Printer type** - [e.g. MK3S, MK3, MK2.5S, MK2.5, MK2S, MK2] +**Printer firmware version**- [e.g. 3.8.1, 3.8.1-RC1, ...] + +**MMU Upgrade** - [e.g. MMU2S, MMU2, MMU1] +**MMU upgrade firmware version [e.g. 1.0.6, 1.0.6-RC2, ...] + +**Describe the bug** + A clear and concise description of what the bug is. + +**To Reproduce** + Please describe steps to reproduce the behavior. + +**Expected behavior** + A clear and concise description of what you expected to happen. + +**G-code** + Please attach a G-code. This will make it easier for us to replicate the error. + +**Video** + Please attach a video. It usually helps to solve the problem. diff --git a/.github/ISSUE_TEMPLATE/enhancement.md b/.github/ISSUE_TEMPLATE/enhancement.md new file mode 100644 index 000000000..1592c6fc6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/enhancement.md @@ -0,0 +1,20 @@ +--- +name: Enhancement +about: Suggest an idea for this project +title: " [ENHANCEMENT]" +labels: enhancement +assignees: '' + +--- + +Please, before you create a new feature request, please make sure you searched in open and closed issues and couldn't find anything that matches. + +Enter what type of printer or upgrade the enhancement applies to. +**Printer type** - [e.g. MK3S, MK3, MK2.5S, MK2.5, MK2S, MK2] +**MMU Upgrade** - [e.g. MMU2S, MMU2, MMU1] + +**Is your enhancement related to a problem? Please describe.** + A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** + A clear and concise description of what you want to happen. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..abc71cbb4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[FEATURE REQUEST]" +labels: feature request +assignees: '' + +--- + +Please, before you create a new feature request, please make sure you searched in open and closed issues and couldn't find anything that matches. + +If it makes sense, enter what type of printer or upgrade the feature request applies to. +**Printer type** - [e.g. MK3S, MK3, MK2.5S, MK2.5, MK2S, MK2] +**MMU Upgrade** - [e.g. MMU2S, MMU2, MMU1] + +**Is your feature request related to a problem? Please describe.** + A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** + A clear and concise description of what you want to happen. diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 000000000..14ce734fe --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,12 @@ +--- +name: Question +about: What do you want to know? +title: "[QUESTION]" +labels: question +assignees: '' + +--- + +Please, before you create a new question, please make sure you searched in open and closed issues and couldn't find anything that matches. + +**What is your question?** From 0b9123ce24a31f9247cc0af2282ede488dd8b641 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 5 Dec 2019 15:18:24 +0100 Subject: [PATCH 185/271] Fix Live K, allow "Advance K" to be translated --- Firmware/menu.h | 2 -- Firmware/messages.c | 3 +++ Firmware/messages.h | 3 +++ Firmware/ultralcd.cpp | 6 +++--- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Firmware/menu.h b/Firmware/menu.h index 2ab0c3659..88363359b 100755 --- a/Firmware/menu.h +++ b/Firmware/menu.h @@ -132,8 +132,6 @@ extern const char menu_fmt_int3[]; extern const char menu_fmt_float31[]; extern const char menu_fmt_float13[]; -extern const char menu_fmt_float13off[]; - extern void menu_draw_float31(const char* str, float val); diff --git a/Firmware/messages.c b/Firmware/messages.c index bb2e9510a..3c2fc9bb1 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -131,6 +131,9 @@ const char MSG_MAGNETS_COMP[] PROGMEM_I1 = ISTR("Magnets comp."); //// const char MSG_FS_ACTION[] PROGMEM_I1 = ISTR("FS Action"); //// const char MSG_FS_CONTINUE[] PROGMEM_I1 = ISTR("Cont."); //// const char MSG_FS_PAUSE[] PROGMEM_I1 = ISTR("Pause"); //// +#ifdef LA_LIVE_K +const char MSG_ADVANCE_K[] PROGMEM_I1 = ISTR("Advance K:"); //// +#endif //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index 60a4cc1c1..ec3ab96ec 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -131,6 +131,9 @@ extern const char MSG_MAGNETS_COMP[]; extern const char MSG_FS_ACTION[]; extern const char MSG_FS_CONTINUE[]; extern const char MSG_FS_PAUSE[]; +#ifdef LA_LIVE_K +extern const char MSG_ADVANCE_K[]; +#endif //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ddfab61f0..9de5ec95b 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7065,14 +7065,14 @@ static void lcd_colorprint_change() { #ifdef LA_LIVE_K // @wavexx: looks like there's no generic float editing function in menu.cpp so we // redefine our custom handling functions to mimick other tunables -#define MSG_ADVANCE_K PSTR("Advance K:") +const char menu_fmt_float13off[] PROGMEM = "%c%-13.13S%6.6S"; static void lcd_advance_draw_K(char chr, float val) { if (val <= 0) - lcd_printf_P(menu_fmt_float13off, chr, MSG_ADVANCE_K, " [off]"); + lcd_printf_P(menu_fmt_float13off, chr, _T(MSG_ADVANCE_K), _T(MSG_OFF)); else - lcd_printf_P(menu_fmt_float13, chr, MSG_ADVANCE_K, val); + lcd_printf_P(menu_fmt_float13, chr, _T(MSG_ADVANCE_K), val); } static void lcd_advance_edit_K(void) From 89dfb00b04bff7fd1f8656744ef8d74bd79a9a6a Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Sun, 8 Dec 2019 08:43:43 +0200 Subject: [PATCH 186/271] Fix optiboot erase function after address 0xFFFF --- Firmware/optiboot_w25x20cl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/optiboot_w25x20cl.cpp b/Firmware/optiboot_w25x20cl.cpp index e84bf639c..584c32fed 100644 --- a/Firmware/optiboot_w25x20cl.cpp +++ b/Firmware/optiboot_w25x20cl.cpp @@ -258,11 +258,11 @@ void optiboot_w25x20cl_enter() uint32_t addr = (((uint32_t)rampz) << 16) | address; // During a single bootloader run, only erase a 64kB block once. // An 8bit bitmask 'pages_erased' covers 512kB of FLASH memory. - if (address == 0 && (pages_erased & (1 << addr)) == 0) { + if ((address == 0) && (pages_erased & (1 << (addr >> 16))) == 0) { w25x20cl_wait_busy(); w25x20cl_enable_wr(); w25x20cl_block64_erase(addr); - pages_erased |= (1 << addr); + pages_erased |= (1 << (addr >> 16)); } w25x20cl_wait_busy(); w25x20cl_enable_wr(); From ed3a459090ccc4322dc0ba8dbe85064572b78884 Mon Sep 17 00:00:00 2001 From: DRracer Date: Wed, 23 Oct 2019 13:54:15 +0200 Subject: [PATCH 187/271] Revert "Skipped one translated sentence, because total translation size was >" This reverts commit 5c2b573415a19d57353463856017919e7376ffac. --- lang/lang_en_cz.txt | 2 +- lang/lang_en_de.txt | 2 +- lang/lang_en_es.txt | 2 +- lang/lang_en_fr.txt | 2 +- lang/lang_en_it.txt | 2 +- lang/lang_en_pl.txt | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 0fc920ad5..230055b12 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -1188,7 +1188,7 @@ # "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)." -"\x00" +"Tiskarna zacne tisknout lomenou caru. Otacenim tlacitka nastavte optimalni vysku. Postupujte podle obrazku v handbooku (kapitola Kalibrace)." # "Y-correct:" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 91107d8e8..11c36b407 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -1188,7 +1188,7 @@ # "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)." -"\x00" +"Der Drucker beginnt mit dem Drucken einer Zickzacklinie. Drehen Sie den Knopf, bis Sie die optimale Hoehe erreicht haben. Ueberpruefen Sie die Bilder im Handbuch (Kapitel Kalibrierung)." # "Y-correct:" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index 565399669..8255bd792 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -1188,7 +1188,7 @@ # "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)." -"\x00" +"La impresora comenzara a imprimir una linea en zig-zag. Gira el dial hasta que la linea alcance la altura optima. Mira las fotos del manual (Capitulo de calibracion)." # "Y-correct:" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index b0b62e9dc..f6add9480 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -1185,7 +1185,7 @@ # "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)." -"\x00" +"L'imprimante commencera a imprimer une ligne en zig-zag. Tournez le bouton jusqu'a atteindre la hauteur optimale. Consultez les photos dans le manuel (chapitre Calibration)." # "Y-correct:" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 44285a43f..672859a09 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -1187,7 +1187,7 @@ # "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)." -"\x00" +"La stampante iniziera a stampare una linea a zig-zag. Gira la manopola fino a che non hai raggiungo l'altezza ottimale. Verifica con le immagini nel manuale (capitolo sulla calibrazione):" # "Y-correct:" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 25c4d14f5..aa07cd75a 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -1187,7 +1187,7 @@ # "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)." -"\x00" +"Drukarka zacznie drukowanie linii w ksztalcie zygzaka. Ustaw optymalna wysokosc obracajac pokretlo. Porownaj z ilustracjami w Podreczniku (rozdzial Kalibracja)." # "Y-correct:" From 28b66bc909744cbbe1a11328cfe5c262a726aa4a Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sun, 15 Dec 2019 17:27:15 +0100 Subject: [PATCH 188/271] Update to prepare for new prusa3d/PF-build-env Fixed a bug in Arduino user preferences --- PF-build.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 984df8a58..9cbedd549 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.0.6-Build_10 +# Version: 1.0.6-Build_12 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -114,7 +114,9 @@ # 26 Jul 2019, 3d-gussner, Change JSON repository to prusa3d after PR https://github.com/prusa3d/Arduino_Boards/pull/1 was merged # 23 Sep 2019, 3d-gussner, Prepare PF-build.sh for comming Prusa3d/Arduino_Boards version 1.0.2 Pull Request # 17 Oct 2019, 3d-gussner, Changed folder and check file names to have seperated build enviroments depening on Arduino IDE version and -# board-versions. +# board-versions. +# 15 Dec 2019, 3d-gussner, Prepare for switch to Prusa3d/PF-build-env repository +# 15 Dec 2019, 3d-gussner, Fix Audrino user preferences for the chosen board. #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -219,7 +221,8 @@ BOARD_VERSION="1.0.2" BOARD_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json" BOARD_FILENAME="prusa3dboards" BOARD_FILE_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/prusa3dboards-1.0.2.tar.bz2" -PF_BUILD_FILE_URL="https://github.com/3d-gussner/PF-build-env/releases/download/$BUILD_ENV/PF-build-env-$BUILD_ENV.zip" +PF_BUILD_FILE_URL="https://github.com/3d-gussner/PF-build-env-1/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip" +#PF_BUILD_FILE_URL="https://github.com/prusa3d/PF-build-env/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip" LIB="PrusaLibrary" SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" @@ -321,7 +324,7 @@ if [ ! -e ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TA echo "update.check" sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt echo "board" - sed -i 's/board = uno/board = $BOARD/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + sed -i "s/board = uno/board = $BOARD/g" ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt echo "editor.linenumbers" sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt echo "boardsmanager.additional.urls" @@ -364,7 +367,7 @@ if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$P fi # Download and extract Prusa Firmware specific library files -if [ ! -f "PF-build-env-$BUILD_ENV.zip" ]; then +if [ ! -f "PF-build-env-WinLin-$BUILD_ENV.zip" ]; then echo "$(tput setaf 6)Downloading Prusa Firmware build environment...$(tput setaf 2)" sleep 2 wget $PF_BUILD_FILE_URL || exit 11 @@ -373,7 +376,7 @@ fi if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]; then echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)" sleep 2 - unzip -o PF-build-env-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12 + unzip -o PF-build-env-WinLin-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12 echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr0)" fi From 348bbbffb01fcdfe37602dd0fd0fd852fea66a68 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 15 Dec 2019 22:22:44 +0100 Subject: [PATCH 189/271] Do not allow to resume a print twice while waiting for the hotend Clear isPrintPaused just prior to restore_print_from_ram_and_continue. --- Firmware/ultralcd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index b23cc2236..e517b3269 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6752,10 +6752,10 @@ void lcd_resume_print() if (fan_error_selftest()) return; //abort if error persists + isPrintPaused = false; restore_print_from_ram_and_continue(0.0); pause_time += (_millis() - start_pause_print); //accumulate time when print is paused for correct statistics calculation refresh_cmd_timeout(); - isPrintPaused = false; SERIAL_PROTOCOLLNRPGM(MSG_OCTOPRINT_RESUMED); //resume octoprint } @@ -6907,7 +6907,7 @@ static void lcd_main_menu() { MENU_ITEM_FUNCTION_P(_i("Pause print"), lcd_pause_print);////MSG_PAUSE_PRINT } - else + else if(isPrintPaused) { #ifdef FANCHECK if((fan_check_error == EFCE_FIXED) || (fan_check_error == EFCE_OK)) From faa76df2fe989dee140ffd69fb5ca36c31afe3c4 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 16 Dec 2019 15:52:37 +0100 Subject: [PATCH 190/271] Fix the "Stop print" behavior from the LCD Correctly cleanup the printer state when stopping the current print: - Disable interrupts while aborting the planner/queue to ensure new serial commands are not inserted while aborting - _Always_ call planner_abort_hard() to interrupt any pending move! - Clear the saved_target, which might be set when calling stop from within a paused state. Create a new function to clear the paused state for future use. - Do not disable/reset the MBL: doing so will destroy the ability to restart correctly using M999. --- Firmware/Marlin.h | 1 + Firmware/Marlin_main.cpp | 8 ++++++++ Firmware/ultralcd.cpp | 35 +++++++++++++++-------------------- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 7dedc8a4b..a162d5c8a 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -455,6 +455,7 @@ extern void print_mesh_bed_leveling_table(); extern void stop_and_save_print_to_ram(float z_move, float e_move); extern void restore_print_from_ram_and_continue(float e_move); +extern void cancel_saved_printing(); //estimated time to end of the print diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index edefa0725..8e4f7ddcd 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10343,6 +10343,14 @@ void restore_print_from_ram_and_continue(float e_move) waiting_inside_plan_buffer_line_print_aborted = true; //unroll the stack } +// Cancel the state related to a currently saved print +void cancel_saved_printing() +{ + saved_target[0] = SAVED_TARGET_UNSET; + saved_printing_type = PRINTING_TYPE_NONE; + saved_printing = false; +} + void print_world_coordinates() { printf_P(_N("world coordinates: (%.3f, %.3f, %.3f)\n"), current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS]); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index b23cc2236..90beb3a9b 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7258,30 +7258,25 @@ static void lcd_sd_updir() void lcd_print_stop() { -//-// - if(!card.sdprinting) - { - SERIAL_ECHOLNRPGM(MSG_OCTOPRINT_CANCEL); // for Octoprint - } - saved_printing = false; - saved_printing_type = PRINTING_TYPE_NONE; + if (!card.sdprinting) { + SERIAL_ECHOLNRPGM(MSG_OCTOPRINT_CANCEL); // for Octoprint + } + + cli(); + + // Clear any saved printing state + cancel_saved_printing(); cancel_heatup = true; -#ifdef MESH_BED_LEVELING - mbl.active = false; -#endif - // Stop the stoppers, update the position from the stoppers. - if (mesh_bed_leveling_flag == false && homing_flag == false) - { - planner_abort_hard(); - // Because the planner_abort_hard() initialized current_position[Z] from the stepper, - // Z baystep is no more applied. Reset it. - babystep_reset(); - } - // Clean the input command queue. + + // Abort the planner/queue/sd + planner_abort_hard(); cmdqueue_reset(); - lcd_setstatuspgm(_T(MSG_PRINT_ABORTED)); card.sdprinting = false; card.closefile(); + st_reset_timer(); + sei(); + + lcd_setstatuspgm(_T(MSG_PRINT_ABORTED)); stoptime = _millis(); unsigned long t = (stoptime - starttime - pause_time) / 1000; //time in s pause_time = 0; From 0cc68228f8c7b00ec99693e6da4bd6cfa7b1a524 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 14 Dec 2019 18:05:08 +0100 Subject: [PATCH 191/271] Unretract when resuming a paused print --- Firmware/Marlin.h | 1 + Firmware/Marlin_main.cpp | 4 ---- Firmware/ultralcd.cpp | 4 ++-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 7dedc8a4b..ad1407ae3 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -308,6 +308,7 @@ extern float max_pos[3]; extern bool axis_known_position[3]; extern int fanSpeed; extern int8_t lcd_change_fil_state; +extern float default_retraction; #ifdef TMC2130 void homeaxis(int axis, uint8_t cnt = 1, uint8_t* pstep = 0); diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 4970091ea..3327f8f8e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9571,10 +9571,6 @@ void long_pause() //long pause print // Stop heaters setAllTargetHotends(0); - //retract - current_position[E_AXIS] -= default_retraction; - plan_buffer_line_curposXYZE(400, active_extruder); - //lift z current_position[Z_AXIS] += Z_PAUSE_LIFT; if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5d0abeac9..d29e40617 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1662,7 +1662,7 @@ void lcd_return_to_status() //! @brief Pause print, disable nozzle heater, move to park position void lcd_pause_print() { - stop_and_save_print_to_ram(0.0,0.0); + stop_and_save_print_to_ram(0.0, -default_retraction); lcd_return_to_status(); isPrintPaused = true; if (LcdCommands::Idle == lcd_commands_type) @@ -6771,7 +6771,7 @@ void lcd_resume_print() if (fan_error_selftest()) return; //abort if error persists isPrintPaused = false; - restore_print_from_ram_and_continue(0.0); + restore_print_from_ram_and_continue(default_retraction); pause_time += (_millis() - start_pause_print); //accumulate time when print is paused for correct statistics calculation refresh_cmd_timeout(); SERIAL_PROTOCOLLNRPGM(MSG_OCTOPRINT_RESUMED); //resume octoprint From 8d490f941a7e9409bc175a186334e4b40319a2d0 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 16 Dec 2019 16:39:20 +0100 Subject: [PATCH 192/271] Make use of the CRITICAL_SECTION macros in lcd_print_stop --- Firmware/ultralcd.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 90beb3a9b..969ca2a51 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7262,7 +7262,7 @@ void lcd_print_stop() SERIAL_ECHOLNRPGM(MSG_OCTOPRINT_CANCEL); // for Octoprint } - cli(); + CRITICAL_SECTION_START; // Clear any saved printing state cancel_saved_printing(); @@ -7274,7 +7274,8 @@ void lcd_print_stop() card.sdprinting = false; card.closefile(); st_reset_timer(); - sei(); + + CRITICAL_SECTION_END; lcd_setstatuspgm(_T(MSG_PRINT_ABORTED)); stoptime = _millis(); From 46c06f7eee5c289fa5abda658c7e55c5e80f09a9 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 17 Dec 2019 14:05:39 +0100 Subject: [PATCH 193/271] Updated it to use Arduino_Boards v1.0.3 and linked everything to prusa3d repositories --- PF-build.sh | 18 +++++++++++------- README.md | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 9cbedd549..8f1fa2478 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.0.6-Build_12 +# Version: 1.0.6-Build_13 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -117,6 +117,7 @@ # board-versions. # 15 Dec 2019, 3d-gussner, Prepare for switch to Prusa3d/PF-build-env repository # 15 Dec 2019, 3d-gussner, Fix Audrino user preferences for the chosen board. +# 17 Dec 2019, 3d-gussner, Fix "timer0_fract = 0" warning by using Arduino_boards v1.0.3 #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -209,20 +210,22 @@ if ! type python > /dev/null; then fi fi -#### End prepare bash environment +#### End prepare bash / Linux environment #### Set build environment ARDUINO_ENV="1.8.5" BUILD_ENV="1.0.6" BOARD="prusa_einsy_rambo" -BOARD_PACKAGE_NAME="PrusaResearchRambo" -BOARD_VERSION="1.0.2" +BOARD_PACKAGE_NAME="PrusaResearch" +BOARD_VERSION="1.0.3" +#BOARD_URL="https://raw.githubusercontent.com/3d-gussner/Arduino_Boards/Prusa_Merge_v1.0.3/IDE_Board_Manager/package_prusa3d_index.json" BOARD_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json" BOARD_FILENAME="prusa3dboards" -BOARD_FILE_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/prusa3dboards-1.0.2.tar.bz2" -PF_BUILD_FILE_URL="https://github.com/3d-gussner/PF-build-env-1/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip" -#PF_BUILD_FILE_URL="https://github.com/prusa3d/PF-build-env/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip" +#BOARD_FILE_URL="https://raw.githubusercontent.com/3d-gussner/Arduino_Boards/Prusa_Merge_v1.0.3/IDE_Board_Manager/prusa3dboards-1.0.3.tar.bz2" +BOARD_FILE_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/prusa3dboards-1.0.3.tar.bz2" +#PF_BUILD_FILE_URL="https://github.com/3d-gussner/PF-build-env-1/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip" +PF_BUILD_FILE_URL="https://github.com/prusa3d/PF-build-env/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip" LIB="PrusaLibrary" SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" @@ -236,6 +239,7 @@ echo "Ardunio IDE :" $ARDUINO_ENV echo "Build env :" $BUILD_ENV echo "Board :" $BOARD echo "Package name:" $BOARD_PACKAGE_NAME +echo "Board v. :" $BOARD_VERSION echo "Specific Lib:" $LIB echo "" diff --git a/README.md b/README.md index 782ed6f7d..6edbe0127 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ _Note: Multi language build is not supported._ * Open Arduino and navigate to File -> Preferences -> Settings * To the text field `"Additional Boards Manager URLSs"` add `https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json` -* Open Board manager (`Tools->Board->Board manager`), and install `Prusa Research AVR MK3 RAMBo EINSy board` +* Open Board manager (`Tools->Board->Board manager`), and install `Prusa Research AVR Boards by Prusa Research` **c.** Modify compiler flags in `platform.txt` file From f071aec74775c9f8b568f053a5dc6d4b9078e757 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 18 Dec 2019 08:52:25 +0300 Subject: [PATCH 194/271] Fix sheet minimum width on the status screen --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5d0abeac9..a4019f494 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -630,7 +630,7 @@ void lcdui_print_percent_done(void) { eeprom_read_block(sheet, EEPROM_Sheets_base->s[eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet))].name, 7); sheet[7] = '\0'; - lcd_printf_P(PSTR("%s"),sheet); + lcd_printf_P(PSTR("%-7s"),sheet); } else { From c0ae92cd2a2864d9b760e0325d93942cf7421f88 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Fri, 20 Dec 2019 18:28:44 +0100 Subject: [PATCH 195/271] Remove "relative_mode", only use "axis_relative_modes" axis_relative_modes can cleanly handle G90/G91 and M82/M83 without the need of "relative_mode" entirely. Change G90/G91 to simply reset all axes according to the requested state, which avoids to check two variables in get_coordinates(), fixing the following incorrect handling: G91 ; all axis relative M83 ; set extruder absolute G1 E1 ; should be an absolute move, but still relative --- Firmware/Marlin_main.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 4970091ea..b29be9efe 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -342,10 +342,6 @@ static float next_feedrate; // Original feedrate saved during homing moves static float saved_feedrate; -// Determines Absolute or Relative Coordinates. -// Also there is bool axis_relative_modes[] per axis flag. -static bool relative_mode = false; - const int sensitive_pins[] = SENSITIVE_PINS; // Sensitive pin list for M42 //static float tt = 0; @@ -5208,15 +5204,19 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) //! ### G90 - Switch off relative mode // ------------------------------- - case 90: - relative_mode = false; - break; + case 90: { + for(uint8_t i = 0; i != NUM_AXIS; ++i) + axis_relative_modes[i] = false; + } + break; //! ### G91 - Switch on relative mode // ------------------------------- - case 91: - relative_mode = true; - break; + case 91: { + for(uint8_t i = 0; i != NUM_AXIS; ++i) + axis_relative_modes[i] = true; + } + break; //! ### G92 - Set position // ----------------------------- @@ -6238,13 +6238,13 @@ Sigma_Exit: //! ### M82 - Set E axis to absolute mode // --------------------------------------- case 82: - axis_relative_modes[3] = false; + axis_relative_modes[E_AXIS] = false; break; //! ### M83 - Set E axis to relative mode // --------------------------------------- case 83: - axis_relative_modes[3] = true; + axis_relative_modes[E_AXIS] = true; break; //! ### M84, M18 - Disable steppers @@ -8279,7 +8279,7 @@ void get_coordinates() for(int8_t i=0; i < NUM_AXIS; i++) { if(code_seen(axis_codes[i])) { - bool relative = axis_relative_modes[i] || relative_mode; + bool relative = axis_relative_modes[i]; destination[i] = (float)code_value(); if (i == E_AXIS) { float emult = extruder_multiplier[active_extruder]; From 7b29ce29b45c0bef41bfe604c43014ba88c2c139 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 21 Dec 2019 22:48:30 +0100 Subject: [PATCH 196/271] Add a Linear Advance 1.0->1.5 compatibility layer Allow existing gcode using LA10 to transparently take advantage of LA15 by using a simple linear conversion function based on experimental results with the MK3 implementation of linear advance. Autodetect LA10 values based on the first M900 instruction contained in the print. In order to support printing mixed files without resetting the printer we also reset the autodetection status when starting a new SD print and/or when explicitly disabling LA. Since we cannot reliably detect whether a new print is started when printing via USB, also reset the detection status when homing in G28, which is generally performed once at each print. Note that this doesn't clear the previous K value, it only allows a subsequent M900 to provide LA10 values when printed after a LA15 file. --- Firmware/Configuration_adv.h | 1 + Firmware/Marlin_main.cpp | 29 +++++++++++++++++++++++--- Firmware/la10compat.cpp | 40 ++++++++++++++++++++++++++++++++++++ Firmware/la10compat.h | 39 +++++++++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+), 3 deletions(-) create mode 100644 Firmware/la10compat.cpp create mode 100644 Firmware/la10compat.h diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index 7f25f07d5..d25b345c3 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -287,6 +287,7 @@ #ifdef LIN_ADVANCE #define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed + //#define LA_NOCOMPAT // Disable Linear Advance 1.0 compatibility //#define LA_LIVE_K // Allow adjusting K in the Tune menu //#define LA_DEBUG // If enabled, this will generate debug information output over USB. //#define LA_DEBUG_LOGIC // @wavexx: setup logic channels for isr debugging diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 816763ac1..8959bdd31 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -83,6 +83,9 @@ #include "Dcodes.h" #include "AutoDeplete.h" +#ifndef LA_NOCOMPAT +#include "la10compat.h" +#endif #ifdef SWSPI #include "swspi.h" @@ -2068,12 +2071,23 @@ static float probe_pt(float x, float y, float z_before) { */ inline void gcode_M900() { st_synchronize(); - + const float newK = code_seen('K') ? code_value_float() : -1; +#ifdef LA_NOCOMPAT if (newK >= 0 && newK < 10) - extruder_advance_K = newK; + extruder_advance_K = newK; else - SERIAL_ECHOLNPGM("K out of allowed range!"); + SERIAL_ECHOLNPGM("K out of allowed range!"); +#else + if (newK == 0) { + la10c_reset(); + extruder_advance_K = 0; + } + else if(newK > 0) + extruder_advance_K = la10c_value(newK); + else + SERIAL_ECHOLNPGM("K out of allowed range!"); +#endif SERIAL_ECHO_START; SERIAL_ECHOPGM("Advance K="); @@ -4136,6 +4150,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) // -------------------------------------------- case 28: { +#ifndef LA_NOCOMPAT + la10c_reset(); +#endif long home_x_value = 0; long home_y_value = 0; long home_z_value = 0; @@ -5372,6 +5389,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) else { failstats_reset_print(); +#ifndef LA_NOCOMPAT + la10c_reset(); +#endif card.startFileprint(); starttime=_millis(); } @@ -5465,6 +5485,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) if(code_seen('S')) if(strchr_pointerLA15 conversion +// +// When the current mode is UNKNOWN autodetection is active and any K<10 +// will set the mode to LA15, LA10 is set otherwise. When LA10 +// compatbility mode is active the K factor is converted to a LA15 +// equivalent (that is, the return value is always a LA15 value). +// +// Once the interpretation mode has been set it is kept until the mode +// is explicitly reset. This is done to handle transparent fallback for +// old firmware revisions in combination with the following gcode +// sequence: +// +// M900 K0.01 ; set LA15 value (interpreted by any firmware) +// M900 K10 ; set LA10 value (ignored by LA15 firmware) +// +// A LA15 firmware without this module will only parse the first +// correctly, rejecting the second. A LA10 FW will parse both, but keep +// the last value. Since the LA15 value, if present, corresponds to the +// truth value, the compatibility stub needs to "lock" onto the first +// seen value for the current print. +// +// The mode needs to be carefully reset for each print in order for +// diffent versions of M900 to be interpreted independently. + +#pragma once + +enum __attribute__((packed)) LA10C_MODE +{ + LA10C_UNKNOWN = 0, + LA10C_LA15 = 1, + LA10C_LA10 = 2 +}; + +// Explicitly set/reset the interpretation mode for la10c_value() +void la10c_mode_change(LA10C_MODE mode); +static inline void la10c_reset() { la10c_mode_change(LA10C_UNKNOWN); } + +// Return a LA15 K value according to the supplied value and mode +float la10c_value(float k); From a31319888c3d6660fc7ecd9869a6e5b2488339fc Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 23 Dec 2019 19:06:13 +0100 Subject: [PATCH 197/271] Fix fan_check_error check in usb print resume Also check for fan_check_error == EFCE_OK in addition to EFCE_FIXED. Reorganize the check in order to fix both #if[n]def FANCHECK cases, as similarly done in the SDSUPPORT case a few lines below. --- Firmware/ultralcd.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5d0abeac9..588cb2480 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6910,10 +6910,15 @@ static void lcd_main_menu() } + if(isPrintPaused && saved_printing_type == PRINTING_TYPE_USB) + { #ifdef FANCHECK - if((fan_check_error == EFCE_FIXED) && (saved_printing_type == PRINTING_TYPE_USB)) - MENU_ITEM_SUBMENU_P(_i("Resume print"), lcd_resume_print);////MSG_RESUME_PRINT + if((fan_check_error == EFCE_FIXED) || (fan_check_error == EFCE_OK)) + MENU_ITEM_SUBMENU_P(_i("Resume print"), lcd_resume_print);////MSG_RESUME_PRINT +#else + MENU_ITEM_SUBMENU_P(_i("Resume print"), lcd_resume_print);////MSG_RESUME_PRINT #endif + } #ifdef SDSUPPORT if (card.cardOK || lcd_commands_type == LcdCommands::Layer1Cal) From 301d64042bcb1a68744da60ccda02d549b37b578 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Fri, 27 Dec 2019 19:29:02 +0100 Subject: [PATCH 198/271] Set fsensor_watch_runout earlier to prevent re-entry Do not set/clear fsensor_watch_runout within fsensor_oq_meassure_start which is used outside of fsensor_update where it could have a different starting value. Set it within fsensor_stop_and_save_print to immediately prevent re-entry. --- Firmware/fsensor.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 1c28d025f..b9b1f0685 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -124,14 +124,16 @@ unsigned long nIRsensorLastTime; void fsensor_stop_and_save_print(void) { printf_P(PSTR("fsensor_stop_and_save_print\n")); - stop_and_save_print_to_ram(0, 0); //XYZE - no change + stop_and_save_print_to_ram(0, 0); + fsensor_watch_runout = false; } void fsensor_restore_print_and_continue(void) { printf_P(PSTR("fsensor_restore_print_and_continue\n")); + fsensor_watch_runout = true; fsensor_err_cnt = 0; - restore_print_from_ram_and_continue(0); //XYZ = orig, E - no change + restore_print_from_ram_and_continue(0); } // fsensor_checkpoint_print cuts the current print job at the current position, @@ -379,7 +381,6 @@ void fsensor_oq_meassure_start(uint8_t skip) fsensor_oq_sh_sum = 0; pat9125_update(); pat9125_y = 0; - fsensor_watch_runout = false; fsensor_oq_meassure = true; } @@ -391,7 +392,6 @@ void fsensor_oq_meassure_stop(void) printf_P(_N(" st_sum=%u yd_sum=%u er_sum=%u er_max=%hhu\n"), fsensor_oq_st_sum, fsensor_oq_yd_sum, fsensor_oq_er_sum, fsensor_oq_er_max); printf_P(_N(" yd_min=%u yd_max=%u yd_avg=%u sh_avg=%u\n"), fsensor_oq_yd_min, fsensor_oq_yd_max, (uint16_t)((uint32_t)fsensor_oq_yd_sum * fsensor_chunk_len / fsensor_oq_st_sum), (uint16_t)(fsensor_oq_sh_sum / fsensor_oq_samples)); fsensor_oq_meassure = false; - fsensor_watch_runout = true; fsensor_err_cnt = 0; } @@ -578,12 +578,13 @@ void fsensor_update(void) #ifdef PAT9125 if (fsensor_enabled && fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX)) { + fsensor_stop_and_save_print(); + bool autoload_enabled_tmp = fsensor_autoload_enabled; fsensor_autoload_enabled = false; bool oq_meassure_enabled_tmp = fsensor_oq_meassure_enabled; fsensor_oq_meassure_enabled = true; - fsensor_stop_and_save_print(); fsensor_err_cnt = 0; fsensor_oq_meassure_start(0); From fe4c00fb8a8ff32fcafecb2a730e432a7f065607 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Fri, 27 Dec 2019 19:35:08 +0100 Subject: [PATCH 199/271] Lift the extruder when checking for the filament This avoids leaving marks on the print --- Firmware/fsensor.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index b9b1f0685..02f7d572b 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -585,6 +585,11 @@ void fsensor_update(void) bool oq_meassure_enabled_tmp = fsensor_oq_meassure_enabled; fsensor_oq_meassure_enabled = true; + // move the nozzle away while checking the filament + current_position[Z_AXIS] += 0.8; + if(current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS; + plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); + st_synchronize(); fsensor_err_cnt = 0; fsensor_oq_meassure_start(0); From 97170ed68dbfd5660f28f2f286d94bafee74d939 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Fri, 27 Dec 2019 19:37:20 +0100 Subject: [PATCH 200/271] Do not call process_commands() within fsensor_update() Plan moves directly to reduce the required stack size. --- Firmware/fsensor.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 02f7d572b..f9875fa6e 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -591,20 +591,15 @@ void fsensor_update(void) plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); st_synchronize(); + // check the filament in isolation fsensor_err_cnt = 0; fsensor_oq_meassure_start(0); - - enquecommand_front_P((PSTR("G1 E-3 F200"))); - process_commands(); - KEEPALIVE_STATE(IN_HANDLER); - cmdqueue_pop_front(); - st_synchronize(); - - enquecommand_front_P((PSTR("G1 E3 F200"))); - process_commands(); - KEEPALIVE_STATE(IN_HANDLER); - cmdqueue_pop_front(); - st_synchronize(); + float e_tmp = current_position[E_AXIS]; + current_position[E_AXIS] -= 3; + plan_buffer_line_curposXYZE(200/60, active_extruder); + current_position[E_AXIS] = e_tmp; + plan_buffer_line_curposXYZE(200/60, active_extruder); + st_synchronize(); uint8_t err_cnt = fsensor_err_cnt; fsensor_oq_meassure_stop(); From bd80ee88a0f0c8d5a354f7c81a8551d9ee297f5d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 28 Dec 2019 18:50:42 +0100 Subject: [PATCH 201/271] Set the IN_HANDLER busy state while checking the filament --- Firmware/fsensor.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index f9875fa6e..0113317eb 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -579,6 +579,7 @@ void fsensor_update(void) if (fsensor_enabled && fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX)) { fsensor_stop_and_save_print(); + KEEPALIVE_STATE(IN_HANDLER); bool autoload_enabled_tmp = fsensor_autoload_enabled; fsensor_autoload_enabled = false; From 186f8816000f0c8632fe3c8cfe0aac8c0b13d4b1 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 29 Dec 2019 22:08:44 +0100 Subject: [PATCH 202/271] Avoid calling fsensor_update() one level earlier Move the common checks between filament sensors out of fsensor_update(). Disable the runout check if a saved state is already present (this check was missing in the PAT9125 variant) as this is currently not supported. Note that the CHECK_FSENSOR looks completely redundant besides e_active(). --- Firmware/Marlin_main.cpp | 3 ++- Firmware/fsensor.cpp | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 4970091ea..fc395900a 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8606,7 +8606,8 @@ if(0) #ifdef PAT9125 fsensor_autoload_check_stop(); #endif //PAT9125 - fsensor_update(); + if (fsensor_enabled && !saved_printing) + fsensor_update(); } } } diff --git a/Firmware/fsensor.cpp b/Firmware/fsensor.cpp index 0113317eb..a7dbce979 100755 --- a/Firmware/fsensor.cpp +++ b/Firmware/fsensor.cpp @@ -576,7 +576,7 @@ void fsensor_enque_M600(){ void fsensor_update(void) { #ifdef PAT9125 - if (fsensor_enabled && fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX)) + if (fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX)) { fsensor_stop_and_save_print(); KEEPALIVE_STATE(IN_HANDLER); @@ -621,7 +621,7 @@ void fsensor_update(void) fsensor_enque_M600(); } #else //PAT9125 - if (CHECK_FSENSOR && fsensor_enabled && ir_sensor_detected) + if (CHECK_FSENSOR && ir_sensor_detected) { if(digitalRead(IR_SENSOR_PIN)) { // IR_SENSOR_PIN ~ H From f5d382f9f4d77b32f1779099cc7fad1f1277d7e9 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 28 Dec 2019 20:35:04 +0100 Subject: [PATCH 203/271] Remove useless st_synchronize calls when unparking --- Firmware/Marlin_main.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 4970091ea..994fba7bb 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10312,12 +10312,10 @@ void restore_print_from_ram_and_continue(float e_move) //first move print head in XY to the saved position: plan_buffer_line(saved_pos[X_AXIS], saved_pos[Y_AXIS], current_position[Z_AXIS], saved_pos[E_AXIS] - e_move, homing_feedrate[Z_AXIS]/13, active_extruder); - st_synchronize(); //then move Z plan_buffer_line(saved_pos[X_AXIS], saved_pos[Y_AXIS], saved_pos[Z_AXIS], saved_pos[E_AXIS] - e_move, homing_feedrate[Z_AXIS]/13, active_extruder); - st_synchronize(); //and finaly unretract (35mm/s) - plan_buffer_line(saved_pos[X_AXIS], saved_pos[Y_AXIS], saved_pos[Z_AXIS], saved_pos[E_AXIS], 35, active_extruder); + plan_buffer_line(saved_pos[X_AXIS], saved_pos[Y_AXIS], saved_pos[Z_AXIS], saved_pos[E_AXIS], FILAMENTCHANGE_RFEED, active_extruder); st_synchronize(); #ifdef FANCHECK From d78636c308c0285fe2773d404c64811ecfea19a9 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 29 Dec 2019 23:25:16 +0100 Subject: [PATCH 204/271] Do not synchronize on M900 Since the advance factor is computed per-segment in LA15, there's no need to stop the planner. Allow changing K freely at each segment. This allows varying quality factors for different filling roles, see: https://github.com/supermerill/Slic3r/issues/108 During pause/resume/crashdetect or powerpanic K might temporarily be out of sync when used this way. If this becomes an issue, we might need to store K for each block, as done for the feedrate. --- Firmware/Marlin_main.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 8959bdd31..9a0977ab3 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2070,8 +2070,6 @@ static float probe_pt(float x, float y, float z_before) { * K Set advance K factor */ inline void gcode_M900() { - st_synchronize(); - const float newK = code_seen('K') ? code_value_float() : -1; #ifdef LA_NOCOMPAT if (newK >= 0 && newK < 10) From fd0ed1f0eac44b5564110ce8db2d632dad13c66f Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 30 Dec 2019 11:32:27 +0100 Subject: [PATCH 205/271] Move LA reset from G28 to G80, do not reset on 0 In preparation for #2161, use MBL (G80) as a "new print" boundary instead of just re-homing to ensure the reset is issued only once for each print. Similarly, do not reset the autodetection when LA is disabled via M900 K0. This can/will be used during a print if different quality settings are used for different filling roles. --- Firmware/Marlin_main.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 9a0977ab3..97fbdf7f7 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2078,7 +2078,6 @@ inline void gcode_M900() { SERIAL_ECHOLNPGM("K out of allowed range!"); #else if (newK == 0) { - la10c_reset(); extruder_advance_K = 0; } else if(newK > 0) @@ -4148,9 +4147,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) // -------------------------------------------- case 28: { -#ifndef LA_NOCOMPAT - la10c_reset(); -#endif long home_x_value = 0; long home_y_value = 0; long home_z_value = 0; @@ -4674,6 +4670,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) case_G80: { mesh_bed_leveling_flag = true; +#ifndef LA_NOCOMPAT + // When printing via USB there's no clear boundary between prints. Abuse MBL to indicate + // the beginning of a new print, allowing a new autodetected setting just after G80. + la10c_reset(); +#endif #ifndef PINDA_THERMISTOR static bool run = false; // thermistor-less PINDA temperature compensation is running #endif // ndef PINDA_THERMISTOR From 57be14fca6d791a550be515fc1c074d11296dcbd Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 28 Dec 2019 20:26:19 +0100 Subject: [PATCH 206/271] Complete all pending moves before restoring a saved print --- Firmware/mmu.cpp | 1 + Firmware/ultralcd.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 2bb2afa76..bc369fd53 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -1589,6 +1589,7 @@ void mmu_continue_loading(bool blocking) if (blocking) { marlin_wait_for_click(); + st_synchronize(); restore_print_from_ram_and_continue(0); state = Ls::Retry; } diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5d0abeac9..f5b73d3ed 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6764,12 +6764,13 @@ static bool fan_error_selftest() void lcd_resume_print() { lcd_return_to_status(); - lcd_reset_alert_level(); - lcd_setstatuspgm(_T(MSG_RESUMING_PRINT)); lcd_reset_alert_level(); //for fan speed error - if (fan_error_selftest()) return; //abort if error persists + lcd_setstatuspgm(_T(MSG_FINISHING_MOVEMENTS)); + st_synchronize(); + + lcd_setstatuspgm(_T(MSG_RESUMING_PRINT)); isPrintPaused = false; restore_print_from_ram_and_continue(0.0); pause_time += (_millis() - start_pause_print); //accumulate time when print is paused for correct statistics calculation From 86696156af0a17cfea873e01e7cf81d9f0a3e5a2 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 30 Dec 2019 13:17:12 +0100 Subject: [PATCH 207/271] Improve K error checking, allow to manually reset the version Properly check K independently for each version by delegating it to la10c_value() Handle -1 as a special case to allow manual reset. --- Firmware/Marlin_main.cpp | 17 +++++++++++------ Firmware/la10compat.cpp | 12 ++++++++++-- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 97fbdf7f7..71e952a58 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2070,20 +2070,25 @@ static float probe_pt(float x, float y, float z_before) { * K Set advance K factor */ inline void gcode_M900() { - const float newK = code_seen('K') ? code_value_float() : -1; + float newK = code_seen('K') ? code_value_float() : -2; #ifdef LA_NOCOMPAT if (newK >= 0 && newK < 10) extruder_advance_K = newK; else SERIAL_ECHOLNPGM("K out of allowed range!"); #else - if (newK == 0) { + if (newK == 0) extruder_advance_K = 0; - } - else if(newK > 0) - extruder_advance_K = la10c_value(newK); + else if (newK == -1) + la10c_reset(); else - SERIAL_ECHOLNPGM("K out of allowed range!"); + { + newK = la10c_value(newK); + if (newK < 0) + SERIAL_ECHOLNPGM("K out of allowed range!"); + else + extruder_advance_K = newK; + } #endif SERIAL_ECHO_START; diff --git a/Firmware/la10compat.cpp b/Firmware/la10compat.cpp index 41c3a8e6f..d54e5acea 100644 --- a/Firmware/la10compat.cpp +++ b/Firmware/la10compat.cpp @@ -31,10 +31,18 @@ static float la10c_convert(float k) float la10c_value(float k) { if(la10c_mode == LA10C_UNKNOWN) + { + // do not autodetect until a valid value is seen + if(k == 0) + return 0; + else if(k < 0) + return -1; + la10c_mode_change(k < 10? LA10C_LA15: LA10C_LA10); + } if(la10c_mode == LA10C_LA15) - return k; + return (k >= 0 && k < 10? k: -1); else - return la10c_convert(k); + return (k >= 0? la10c_convert(k): -1); } From 5660fcffb08841742103e67f32eb3cd3da30ae23 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 30 Dec 2019 14:49:07 +0100 Subject: [PATCH 208/271] Do not enqueue a E/Z moves unless requested Do not unconditionally enqueue a Z move if no move has been requested. Since Z is calculated using the absolute current (saved) position and scheduled for later execution, the queue order becomes relevant. --- Firmware/Marlin_main.cpp | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 3327f8f8e..c8e142c47 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10238,23 +10238,29 @@ void stop_and_save_print_to_ram(float z_move, float e_move) // move away from the print. char buf[48]; - // First unretract (relative extrusion) - if(!saved_extruder_relative_mode){ - enquecommand(PSTR("M83"), true); - } - //retract 45mm/s - // A single sprintf may not be faster, but is definitely 20B shorter - // than a sequence of commands building the string piece by piece - // A snprintf would have been a safer call, but since it is not used - // in the whole program, its implementation would bring more bytes to the total size - // The behavior of dtostrf 8,3 should be roughly the same as %-0.3 - sprintf_P(buf, PSTR("G1 E%-0.3f F2700"), e_move); - enquecommand(buf, false); + if(e_move) + { + // First unretract (relative extrusion) + if(!saved_extruder_relative_mode){ + enquecommand(PSTR("M83"), true); + } + //retract 45mm/s + // A single sprintf may not be faster, but is definitely 20B shorter + // than a sequence of commands building the string piece by piece + // A snprintf would have been a safer call, but since it is not used + // in the whole program, its implementation would bring more bytes to the total size + // The behavior of dtostrf 8,3 should be roughly the same as %-0.3 + sprintf_P(buf, PSTR("G1 E%-0.3f F2700"), e_move); + enquecommand(buf, false); + } + + if(z_move) + { + // Then lift Z axis + sprintf_P(buf, PSTR("G1 Z%-0.3f F%-0.3f"), saved_pos[Z_AXIS] + z_move, homing_feedrate[Z_AXIS]); + enquecommand(buf, false); + } - // Then lift Z axis - sprintf_P(buf, PSTR("G1 Z%-0.3f F%-0.3f"), saved_pos[Z_AXIS] + z_move, homing_feedrate[Z_AXIS]); - // At this point the command queue is empty. - enquecommand(buf, false); // If this call is invoked from the main Arduino loop() function, let the caller know that the command // in the command queue is not the original command, but a new one, so it should not be removed from the queue. repeatcommand_front(); From 853991865c3d983cc6ed927f9de784001c4974d7 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Thu, 2 Jan 2020 18:07:30 +0100 Subject: [PATCH 209/271] Improve raise_z_above to always raise when at Z_MIN When check_z_endstop is set, Z_MIN_PIN is checkend regardless of the moving direction to support Z calibration. This prevents the ability to use _just_ SG when moving upwards. But since we know the extruder is at Z_MIN, it's always safe to raise irregardless, so we can dodge the issue. --- Firmware/Marlin_main.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 4970091ea..7d8d94547 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2125,9 +2125,15 @@ void raise_z_above(float target, bool plan) // Z needs raising current_position[Z_AXIS] = target; - if (axis_known_position[Z_AXIS]) +#if defined(Z_MIN_PIN) && (Z_MIN_PIN > -1) && !defined(DEBUG_DISABLE_ZMINLIMIT) + bool z_min_endstop = (READ(Z_MIN_PIN) != Z_MIN_ENDSTOP_INVERTING); +#else + bool z_min_endstop = false; +#endif + + if (axis_known_position[Z_AXIS] || z_min_endstop) { - // current position is known, it's safe to raise Z + // current position is known or very low, it's safe to raise Z if(plan) plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder); return; } From f8a0d5d7737476f13c0699b1b9a879df4eddd78a Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 7 Jan 2020 19:51:30 +0200 Subject: [PATCH 210/271] Fix lcd_print_stop function --- Firmware/Marlin_main.cpp | 29 ++++++++++++----------- Firmware/ultralcd.cpp | 50 ++++++++++++++++++++++++++++++---------- 2 files changed, 53 insertions(+), 26 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 507a8f83e..62bfb68da 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4692,13 +4692,13 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) // We don't know where we are! HOME! // Push the commands to the front of the message queue in the reverse order! // There shall be always enough space reserved for these commands. - if (lcd_commands_type != LcdCommands::StopPrint) { + // if (lcd_commands_type != LcdCommands::StopPrint) { repeatcommand_front(); // repeat G80 with all its parameters enquecommand_front_P((PSTR("G28 W0"))); - } - else { - mesh_bed_leveling_flag = false; - } + // } + // else { + // mesh_bed_leveling_flag = false; + // } break; } @@ -4728,23 +4728,23 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifndef PINDA_THERMISTOR if (run == false && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) { - if (lcd_commands_type != LcdCommands::StopPrint) { + // if (lcd_commands_type != LcdCommands::StopPrint) { temp_compensation_start(); run = true; repeatcommand_front(); // repeat G80 with all its parameters enquecommand_front_P((PSTR("G28 W0"))); - } - else { - mesh_bed_leveling_flag = false; - } + // } + // else { + // mesh_bed_leveling_flag = false; + // } break; } run = false; #endif //PINDA_THERMISTOR - if (lcd_commands_type == LcdCommands::StopPrint) { - mesh_bed_leveling_flag = false; - break; - } + // if (lcd_commands_type == LcdCommands::StopPrint) { + // mesh_bed_leveling_flag = false; + // break; + // } // Save custom message state, set a new custom message state to display: Calibrating point 9. CustomMsg custom_message_type_old = custom_message_type; unsigned int custom_message_state_old = custom_message_state; @@ -8948,6 +8948,7 @@ static void wait_for_heater(long codenum, uint8_t extruder) { residencyStart = -1; /* continue to loop until we have reached the target temp _and_ until TEMP_RESIDENCY_TIME hasn't passed since we reached it */ + cancel_heatup = false; while ((!cancel_heatup) && ((residencyStart == -1) || (residencyStart >= 0 && (((unsigned int)(_millis() - residencyStart)) < (TEMP_RESIDENCY_TIME * 1000UL))))) { #else diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index d988e5488..d8b3e817b 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -250,7 +250,9 @@ static void fil_unload_menu(); static void lcd_disable_farm_mode(); static void lcd_set_fan_check(); static void lcd_cutter_enabled(); +#ifdef SNMM static char snmm_stop_print_menu(); +#endif //SNMM #ifdef SDCARD_SORT_ALPHA static void lcd_sort_type_set(); #endif @@ -1056,7 +1058,7 @@ static void lcd_status_screen() } if (current_click - && (lcd_commands_type != LcdCommands::StopPrint) //click is aborted unless stop print finishes + // && (lcd_commands_type != LcdCommands::StopPrint) //click is aborted unless stop print finishes && ( menu_block_entering_on_serious_errors == SERIOUS_ERR_NONE ) // or a serious error blocks entering the menu ) { @@ -1466,7 +1468,7 @@ void lcd_commands() } #endif // not SNMM - +/* if (lcd_commands_type == LcdCommands::StopPrint) /// stop print { @@ -1558,6 +1560,7 @@ void lcd_commands() lcd_commands_step = 7; } } +*/ if (lcd_commands_type == LcdCommands::FarmModeConfirm) /// farm mode confirm { @@ -6051,7 +6054,7 @@ void bowden_menu() { } } -//#ifdef SNMM +#ifdef SNMM static char snmm_stop_print_menu() { //menu for choosing which filaments will be unloaded in stop print lcd_clear(); @@ -6102,6 +6105,8 @@ static char snmm_stop_print_menu() { //menu for choosing which filaments will be } +#endif //SNMM + //! @brief Select one of numbered items //! //! Create list of items with header. Header can not be selected. @@ -7320,7 +7325,6 @@ void lcd_print_stop() // Clear any saved printing state cancel_saved_printing(); - cancel_heatup = true; // Abort the planner/queue/sd planner_abort_hard(); @@ -7331,19 +7335,41 @@ void lcd_print_stop() CRITICAL_SECTION_END; +#ifdef MESH_BED_LEVELING + mbl.active = false; //also prevents undoing the mbl compensation a second time in the second planner_abort_hard() +#endif + lcd_setstatuspgm(_T(MSG_PRINT_ABORTED)); stoptime = _millis(); unsigned long t = (stoptime - starttime - pause_time) / 1000; //time in s pause_time = 0; save_statistics(total_filament_used, t); - lcd_return_to_status(); - lcd_ignore_click(true); - lcd_commands_step = 0; - lcd_commands_type = LcdCommands::StopPrint; - // Turn off the print fan - SET_OUTPUT(FAN_PIN); - WRITE(FAN_PIN, 0); - fanSpeed = 0; + + lcd_commands_step = 0; + lcd_commands_type = LcdCommands::Idle; + + lcd_cooldown(); //turns off heaters and fan; goes to status screen. + cancel_heatup = true; //unroll temperature wait loop stack. + + current_position[Z_AXIS] += 10; //lift Z. + plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60, active_extruder); + + if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) //if axis are homed, move to parked position. + { + current_position[X_AXIS] = X_CANCEL_POS; + current_position[Y_AXIS] = Y_CANCEL_POS; + plan_buffer_line_curposXYZE(manual_feedrate[0] / 60, active_extruder); + } + st_synchronize(); + + if (mmu_enabled) extr_unload(); //M702 C + + finishAndDisableSteppers(); //M84 + + lcd_setstatuspgm(_T(WELCOME_MSG)); + custom_message_type = CustomMsg::Status; + + planner_abort_hard(); //needs to be done since plan_buffer_line resets waiting_inside_plan_buffer_line_print_aborted to false. Also copies current to destination. } void lcd_sdcard_stop() From 4422fc29f8c020347133e63b3fab67b4fd2cbe18 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 7 Jan 2020 20:42:21 +0200 Subject: [PATCH 211/271] Set XYZ to absolute and E to relative --- Firmware/ultralcd.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index d8b3e817b..44e9b4371 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7370,6 +7370,11 @@ void lcd_print_stop() custom_message_type = CustomMsg::Status; planner_abort_hard(); //needs to be done since plan_buffer_line resets waiting_inside_plan_buffer_line_print_aborted to false. Also copies current to destination. + + axis_relative_modes[X_AXIS] = false; + axis_relative_modes[Y_AXIS] = false; + axis_relative_modes[Z_AXIS] = false; + axis_relative_modes[E_AXIS] = true; } void lcd_sdcard_stop() From 1996fc79409789d09dcc4c8bb21b4732df920679 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 7 Jan 2020 20:43:56 +0200 Subject: [PATCH 212/271] Remove commented-out code --- Firmware/Marlin_main.cpp | 26 +++-------- Firmware/ultralcd.cpp | 94 ---------------------------------------- 2 files changed, 6 insertions(+), 114 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 62bfb68da..94dd7dba4 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4692,13 +4692,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) // We don't know where we are! HOME! // Push the commands to the front of the message queue in the reverse order! // There shall be always enough space reserved for these commands. - // if (lcd_commands_type != LcdCommands::StopPrint) { - repeatcommand_front(); // repeat G80 with all its parameters - enquecommand_front_P((PSTR("G28 W0"))); - // } - // else { - // mesh_bed_leveling_flag = false; - // } + repeatcommand_front(); // repeat G80 with all its parameters + enquecommand_front_P((PSTR("G28 W0"))); break; } @@ -4728,23 +4723,14 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #ifndef PINDA_THERMISTOR if (run == false && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) { - // if (lcd_commands_type != LcdCommands::StopPrint) { - temp_compensation_start(); - run = true; - repeatcommand_front(); // repeat G80 with all its parameters - enquecommand_front_P((PSTR("G28 W0"))); - // } - // else { - // mesh_bed_leveling_flag = false; - // } + temp_compensation_start(); + run = true; + repeatcommand_front(); // repeat G80 with all its parameters + enquecommand_front_P((PSTR("G28 W0"))); break; } run = false; #endif //PINDA_THERMISTOR - // if (lcd_commands_type == LcdCommands::StopPrint) { - // mesh_bed_leveling_flag = false; - // break; - // } // Save custom message state, set a new custom message state to display: Calibrating point 9. CustomMsg custom_message_type_old = custom_message_type; unsigned int custom_message_state_old = custom_message_state; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 44e9b4371..75d233620 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1058,7 +1058,6 @@ static void lcd_status_screen() } if (current_click - // && (lcd_commands_type != LcdCommands::StopPrint) //click is aborted unless stop print finishes && ( menu_block_entering_on_serious_errors == SERIOUS_ERR_NONE ) // or a serious error blocks entering the menu ) { @@ -1468,99 +1467,6 @@ void lcd_commands() } #endif // not SNMM -/* - if (lcd_commands_type == LcdCommands::StopPrint) /// stop print - { - - - if (lcd_commands_step == 0) - { - lcd_commands_step = 6; - } - - if (lcd_commands_step == 1 && !blocks_queued()) - { - lcd_commands_step = 0; - lcd_commands_type = LcdCommands::Idle; - lcd_setstatuspgm(_T(WELCOME_MSG)); - custom_message_type = CustomMsg::Status; - isPrintPaused = false; - } - if (lcd_commands_step == 2 && !blocks_queued()) - { - setTargetBed(0); - enquecommand_P(PSTR("M104 S0")); //set hotend temp to 0 - - manage_heater(); - lcd_setstatuspgm(_T(WELCOME_MSG)); - cancel_heatup = false; - lcd_commands_step = 1; - } - if (lcd_commands_step == 3 && !blocks_queued()) - { - // M84: Disable steppers. - enquecommand_P(PSTR("M84")); - autotempShutdown(); - lcd_commands_step = 2; - } - if (lcd_commands_step == 4 && !blocks_queued()) - { - lcd_setstatuspgm(_T(MSG_PLEASE_WAIT)); - // G90: Absolute positioning. - enquecommand_P(PSTR("G90")); - // M83: Set extruder to relative mode. - enquecommand_P(PSTR("M83")); - #ifdef X_CANCEL_POS - enquecommand_P(PSTR("G1 X" STRINGIFY(X_CANCEL_POS) " Y" STRINGIFY(Y_CANCEL_POS) " E0 F7000")); - #else - enquecommand_P(PSTR("G1 X50 Y" STRINGIFY(Y_MAX_POS) " E0 F7000")); - #endif - lcd_ignore_click(false); - if (mmu_enabled) - lcd_commands_step = 8; - else - lcd_commands_step = 3; - } - if (lcd_commands_step == 5 && !blocks_queued()) - { - lcd_setstatuspgm(_T(MSG_PRINT_ABORTED)); - // G91: Set to relative positioning. - enquecommand_P(PSTR("G91")); - // Lift up. - enquecommand_P(PSTR("G1 Z15 F1500")); - if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) lcd_commands_step = 4; - else lcd_commands_step = 3; - } - if (lcd_commands_step == 6 && !blocks_queued()) - { - lcd_setstatuspgm(_T(MSG_PRINT_ABORTED)); - cancel_heatup = true; - setTargetBed(0); - if (mmu_enabled) - setAllTargetHotends(0); - manage_heater(); - custom_message_type = CustomMsg::FilamentLoading; - lcd_commands_step = 5; - } - if (lcd_commands_step == 7 && !blocks_queued()) - { - if (mmu_enabled) - enquecommand_P(PSTR("M702 C")); //current - else - switch(snmm_stop_print_menu()) - { - case 0: enquecommand_P(PSTR("M702")); break;//all - case 1: enquecommand_P(PSTR("M702 U")); break; //used - case 2: enquecommand_P(PSTR("M702 C")); break; //current - default: enquecommand_P(PSTR("M702")); break; - } - lcd_commands_step = 3; - } - if (lcd_commands_step == 8 && !blocks_queued()) { //step 8 is here for delay (going to next step after execution of all gcodes from step 4) - lcd_commands_step = 7; - } - } -*/ if (lcd_commands_type == LcdCommands::FarmModeConfirm) /// farm mode confirm { From d9e52835260b5780f076551ca35c1c4cb3eb5453 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 7 Jan 2020 21:02:13 +0200 Subject: [PATCH 213/271] Fix pause->stop->PrintFromSD scenario --- Firmware/ultralcd.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 75d233620..75031f46b 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7281,6 +7281,8 @@ void lcd_print_stop() axis_relative_modes[Y_AXIS] = false; axis_relative_modes[Z_AXIS] = false; axis_relative_modes[E_AXIS] = true; + + isPrintPaused = false; //clear isPrintPaused flag to allow starting next print after pause->stop scenario. } void lcd_sdcard_stop() From c5324291ada0bf14906f688f04760bfe8352000f Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 8 Jan 2020 12:48:41 +0200 Subject: [PATCH 214/271] Do not show sheet on status screen if less than 2 are initialized --- Firmware/ultralcd.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5d0abeac9..ed9c403bb 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -622,21 +622,24 @@ void lcdui_print_feedrate(void) // Print percent done in form "USB---%", " SD---%", " ---%" (7 chars total) void lcdui_print_percent_done(void) { - char sheet[8]; const char* src = is_usb_printing?_N("USB"):(IS_SD_PRINTING?_N(" SD"):_N(" ")); char per[4]; bool num = IS_SD_PRINTING || (PRINTER_ACTIVE && (print_percent_done_normal != PRINT_PERCENT_DONE_INIT)); if (!num || heating_status) // either not printing or heating { - eeprom_read_block(sheet, EEPROM_Sheets_base->s[eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet))].name, 7); - sheet[7] = '\0'; - lcd_printf_P(PSTR("%s"),sheet); - } - else - { - sprintf_P(per, num?_N("%3hhd"):_N("---"), calc_percent_done()); - lcd_printf_P(_N("%3S%3s%%"), src, per); + const int8_t sheetNR = eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)); + const int8_t nextSheet = eeprom_next_initialized_sheet(sheetNR); + if ((nextSheet >= 0) && (sheetNR != nextSheet)) + { + char sheet[8]; + eeprom_read_block(sheet, EEPROM_Sheets_base->s[sheetNR].name, 7); + sheet[7] = '\0'; + lcd_printf_P(PSTR("%s"),sheet); + return; //do not also print the percentage + } } + sprintf_P(per, num?_N("%3hhd"):_N("---"), calc_percent_done()); + lcd_printf_P(_N("%3S%3s%%"), src, per); } // Print extruder status (5 chars total) From 9abdf4e5359a15c5d78b8c735c8864b20dbdef09 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 8 Jan 2020 13:46:51 +0200 Subject: [PATCH 215/271] Show ? near Z value if the position is unknown --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5d0abeac9..6bacd6322 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -586,7 +586,7 @@ void lcdui_print_Z_coord(void) if (custom_message_type == CustomMsg::MeshBedLeveling) lcd_puts_P(_N("Z --- ")); else - lcd_printf_P(_N("Z%6.2f "), current_position[Z_AXIS]); + lcd_printf_P(_N("Z%6.2f%c"), current_position[Z_AXIS], axis_known_position[Z_AXIS]?' ':'?'); } #ifdef PLANNER_DIAGNOSTICS From bab756699f182a1733e62b2d59926bb09f8a9152 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 14 Jan 2020 20:24:14 +0100 Subject: [PATCH 216/271] Fix incorrect usage of plan_set_e_position() in G92 E* To maintain an accurate step count (which is required for correct position recovery), any call to plan_set_position&co needs to be done synchronously and from a halted state. However, G92 E* is currently special-cased to skip the sync (likely to avoid the associated performance cost), causing an incorrect E step count and position to be set. This breaks absolute position recovery, miscalculation of the LA factor and possibly other weird issues. We rewrite the handling of G92 to always sync but still special-case the frequent "G92 E0" for performance by using a free bit in the block flags. To avoid a sync, we relay the request for reset first to the planner which clears its internal state and then relays the request to the final stepper isr. --- Firmware/Marlin_main.cpp | 63 ++++++++++++++++++++++++++++++---------- Firmware/planner.cpp | 35 ++++++++++++++++++++++ Firmware/planner.h | 5 ++++ Firmware/stepper.cpp | 4 +++ 4 files changed, 91 insertions(+), 16 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 72a24312c..1cea6c59d 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3356,6 +3356,49 @@ static void gcode_PRUSA_BadRAMBoFanTest(){ #endif } + +// G92 - Set current position to coordinates given +static void gcode_G92() +{ + bool codes[NUM_AXIS]; + float values[NUM_AXIS]; + + // Check which axes need to be set + for(uint8_t i = 0; i < NUM_AXIS; ++i) + { + codes[i] = code_seen(axis_codes[i]); + if(codes[i]) + values[i] = code_value(); + } + + if((codes[E_AXIS] && values[E_AXIS] == 0) && + (!codes[X_AXIS] && !codes[Y_AXIS] && !codes[Z_AXIS])) + { + // As a special optimization, when _just_ clearing the E position + // we schedule a flag asynchronously along with the next block to + // reset the starting E position instead of stopping the planner + current_position[E_AXIS] = 0; + plan_reset_next_e(); + } + else + { + // In any other case we're forced to synchronize + st_synchronize(); + for(uint8_t i = 0; i < 3; ++i) + { + if(codes[i]) + current_position[i] = values[i] + cs.add_homing[i]; + } + if(codes[E_AXIS]) + current_position[E_AXIS] = values[E_AXIS]; + + // Set all at once + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], + current_position[Z_AXIS], current_position[E_AXIS]); + } +} + + #ifdef BACKLASH_X extern uint8_t st_backlash_x; #endif //BACKLASH_X @@ -5217,22 +5260,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) //! ### G92 - Set position // ----------------------------- - case 92: - if(!code_seen(axis_codes[E_AXIS])) - st_synchronize(); - for(int8_t i=0; i < NUM_AXIS; i++) { - if(code_seen(axis_codes[i])) { - if(i == E_AXIS) { - current_position[i] = code_value(); - plan_set_e_position(current_position[E_AXIS]); - } - else { - current_position[i] = code_value()+cs.add_homing[i]; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - } - } - } - break; + case 92: { + gcode_G92(); + } + break; //! ### G98 - Activate farm mode diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index f5270d4a2..8c26cef9b 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -130,6 +130,10 @@ float extruder_advance_K = LIN_ADVANCE_K; float position_float[NUM_AXIS]; #endif +// Request the next block to start at zero E count +static bool plan_reset_next_e_queue; +static bool plan_reset_next_e_sched; + // Returns the index of the next block in the ring buffer // NOTE: Removed modulo (%) operator, which uses an expensive divide and multiplication. static inline int8_t next_block_index(int8_t block_index) { @@ -441,6 +445,8 @@ void plan_init() { previous_speed[2] = 0.0; previous_speed[3] = 0.0; previous_nominal_speed = 0.0; + plan_reset_next_e_queue = false; + plan_reset_next_e_sched = false; } @@ -658,6 +664,9 @@ void planner_abort_hard() previous_speed[2] = 0.0; previous_speed[3] = 0.0; + plan_reset_next_e_queue = false; + plan_reset_next_e_sched = false; + // Relay to planner wait routine, that the current line shall be canceled. waiting_inside_plan_buffer_line_print_aborted = true; } @@ -721,6 +730,20 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate // Save the global feedrate at scheduling time block->gcode_feedrate = feedrate; + // Reset the starting E position when requested + if (plan_reset_next_e_queue) + { + position[E_AXIS] = 0; +#ifdef LIN_ADVANCE + position_float[E_AXIS] = 0; +#endif + + // the block might still be discarded later, but we need to ensure the lower-level + // count_position is also reset correctly for consistent results! + plan_reset_next_e_queue = false; + plan_reset_next_e_sched = true; + } + #ifdef ENABLE_AUTO_BED_LEVELING apply_rotation_xyz(plan_bed_level_matrix, x, y, z); #endif // ENABLE_AUTO_BED_LEVELING @@ -1165,6 +1188,13 @@ Having the real displacement of the head, we can calculate the total movement le // Reset the block flag. block->flag = 0; + if (plan_reset_next_e_sched) + { + // finally propagate a pending reset + block->flag |= BLOCK_FLAG_E_RESET; + plan_reset_next_e_sched = false; + } + // Initial limit on the segment entry velocity. float vmax_junction; @@ -1367,6 +1397,11 @@ void plan_set_e_position(const float &e) st_set_e_position(position[E_AXIS]); } +void plan_reset_next_e() +{ + plan_reset_next_e_queue = true; +} + #ifdef PREVENT_DANGEROUS_EXTRUDE void set_extrude_min_temp(float temp) { diff --git a/Firmware/planner.h b/Firmware/planner.h index 8cb3218c1..23509acfc 100644 --- a/Firmware/planner.h +++ b/Firmware/planner.h @@ -44,6 +44,8 @@ enum BlockFlag { // than 32767, therefore the DDA algorithm may run with 16bit resolution only. // In addition, the stepper routine will not do any end stop checking for higher performance. BLOCK_FLAG_DDA_LOWRES = 8, + // Block starts with Zeroed E counter + BLOCK_FLAG_E_RESET = 16, }; union dda_isteps_t @@ -168,6 +170,9 @@ void plan_set_position(float x, float y, float z, const float &e); void plan_set_z_position(const float &z); void plan_set_e_position(const float &e); +// Reset the E position to zero at the start of the next segment +void plan_reset_next_e(); + extern bool e_active(); void check_axes_activity(); diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index ff17c845c..74625a633 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -362,6 +362,10 @@ FORCE_INLINE void stepper_next_block() LA_phase = -1; #endif + if (current_block->flag & BLOCK_FLAG_E_RESET) { + count_position[E_AXIS] = 0; + } + if (current_block->flag & BLOCK_FLAG_DDA_LOWRES) { counter_x.lo = -(current_block->step_event_count.lo >> 1); counter_y.lo = counter_x.lo; From 4a4d7976d1f935eb6974830b36a1f7a36fab6ec1 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 15:30:48 +0200 Subject: [PATCH 217/271] Fix PRUSA typo --- Firmware/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 957d2cd73..5e6eeb9d5 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3731,7 +3731,7 @@ void process_commands() Set of internal PRUSA commands #### Usage - P RUSA [ Ping | PRN | FAN | fn | thx | uvlo | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ] + PRUSA [ Ping | PRN | FAN | fn | thx | uvlo | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ] #### Parameters - `Ping` From 8449136520ced2c07068290f564617ac95f74635 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 15:31:14 +0200 Subject: [PATCH 218/271] Separate M117 from the TMC2130 commands --- Firmware/Marlin_main.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 5e6eeb9d5..5dabe7741 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3599,16 +3599,7 @@ void process_commands() --------------------------------------------------------------------------------- ### M117 - Display Message M117: Display Message This causes the given message to be shown in the status line on an attached LCD. - - It is also used by internal to display status messages on LCD. - Here the internal status messages: - Only on MK3/s (TMC2130) - - CRASH DETECTED - - CRASH RECOVER - - CRASH_CANCEL - - TMC_SET_WAVE - - TMC_SET_STEP - - TMC_SET_CHOP + It is processed early as to allow printing messages that contain G, M, N or T. */ if (code_seen("M117")) { //moved to highest priority place to be able to to print strings which includes "G", "PRUSA" and "^" starpos = (strchr(strchr_pointer + 5, '*')); @@ -3618,6 +3609,19 @@ void process_commands() } #ifdef TMC2130 + /*! + --------------------------------------------------------------------------------- + ### Special internal commands + These are used by internal functions to process certain actions in the right order. Some of these are also usable by the user. + They are processed early as the commands are complex (strings). + These are only available on the MK3(S) as these require TMC2130 drivers: + - CRASH DETECTED + - CRASH RECOVER + - CRASH_CANCEL + - TMC_SET_WAVE + - TMC_SET_STEP + - TMC_SET_CHOP + */ else if (strncmp_P(CMDBUFFER_CURRENT_STRING, PSTR("CRASH_"), 6) == 0) { From 7ea00a7efd9156b61467367a584e8edaa0f56140 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 15:31:28 +0200 Subject: [PATCH 219/271] Fix typo in page description --- Firmware/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 5dabe7741..dd34d1de6 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3548,7 +3548,7 @@ extern uint8_t st_backlash_y; //! _This is a list of currently implemented G Codes in Prusa firmware (dynamically generated from doxygen)._ /** -They are shown in order of appierence in the code. +They are shown in order of appearance in the code. There are reasons why some G Codes aren't in numerical order. */ From 7118007efe18b6a37c5488259ae605a3df1cf092 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 15:52:56 +0200 Subject: [PATCH 220/271] Adjustments --- Firmware/Marlin_main.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index dd34d1de6..cdbb8cedf 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3945,7 +3945,7 @@ eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,0xFFFF); --------------------------------------------------------------------------------- # G Codes ### G0, G1 - Coordinated movement X Y Z E G0 & G1: Move - In Prusa Frimware G0 and G1 are the same. + In Prusa Firmware G0 and G1 are the same. #### Usage G0 [ X | Y | Z | E | F | S ] @@ -4171,6 +4171,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G2, G3 - Controlled Arc Move G2 & G3: Controlled Arc Move + These commands don't propperly work with MBL enabled. The compensation only happens at the end of the move, so avoid long arcs. + #### Usage G2 [ X | Y | I | E | F ] (Clockwise Arc) @@ -4270,7 +4272,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G28 - Home all Axis one at a time G28: Move to Origin (Home) - Unsing `G28` without any paramters will perfom on the Prusa i3 printers home AND mesh bed leveling, while `G28 W` will just home the printer + Using `G28` without any parameters will perfom home of all Axis AND mesh bed leveling, while `G28 W` will just home the printer. #### Usage G28 [ X | Y | Z | W | C ] @@ -4279,7 +4281,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) - `X` - Flag to go back to the X axis origin - `Y` - Flag to go back to the Y axis origin - `Z` - Flag to go back to the Z axis origin - - `W` - Suppress mesh bed leveling + - `W` - Suppress mesh bed leveling if `X`, `Y` or `Z` are not provided - `C` - Calibrate X and Y origin (home) - Only on MK3/s */ case 28: @@ -4513,6 +4515,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G30 - Single Z Probe G30: Single Z-Probe + Sensor must be over the bed. + The maximum travel distance before an error is triggered is 10mm. */ case 30: { From 4cf4720a15ae093c25547c930b4f96ed547d6ff7 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 17:27:54 +0200 Subject: [PATCH 221/271] Even more formatting fixes --- Firmware/Marlin_main.cpp | 239 ++++++++++++++++++++++----------------- 1 file changed, 138 insertions(+), 101 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index cdbb8cedf..2b8d81de6 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4236,11 +4236,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G10 - Retract G10: Retract Retracts filament according to settings of `M207` - - #### Usage - - G10 - */ case 10: #if EXTRUDERS > 1 @@ -4255,10 +4250,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G11 - Retract recover G11: Unretract Unretracts/recovers filament according to settings of `M208` - #### Usage - - G11 - */ case 11: #if EXTRUDERS > 1 @@ -4537,10 +4528,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G75 - Print temperature interpolation G75: Print temperature interpolation Show/print PINDA temperature interpolating. - #### Usage - - G75 - */ case 75: { @@ -4556,11 +4543,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) The PINDAv2 sensor has a built-in thermistor which has the advantage that the calibration can be done once for all materials. The Original i3 Prusa MK2/s uses PINDAv1 and this calibration improves the temperature drift, but not as good as the PINDAv2. - - #### Usage - - G76 - + #### Example ``` @@ -4839,10 +4822,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) #### Parameters - `N` - Number of mesh points on x axis. Default is 3. Valid values are 3 and 7. - `R` - Probe retries. Default 3 max. 10 - - `V` - Verbosity level 1=low, 10=mid, 20=high. It can be only used if firmware has been compiled with SUPPORT_VERBOSITY active. + - `V` - Verbosity level 1=low, 10=mid, 20=high. It only can be used if the firmware has been compiled with SUPPORT_VERBOSITY active. Using the following parameters enables additional "manual" bed leveling correction. Valid values are -100 microns to 100 microns. - #### Additional Parameters + #### Additional Parameters - `L` - Left Bed Level correct value in um. - `R` - Right Bed Level correct value in um. - `F` - Front Bed Level correct value in um. @@ -4850,7 +4833,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) */ /* - * Probes a grid and produces a mesh to compensate for variable bed height + * Probes a grid and produces a mesh to compensate for variable bed height * The S0 report the points as below * +----> X-axis * | @@ -5269,11 +5252,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G81 - Mesh bed leveling status G81: Mesh bed leveling status Prints mesh bed leveling status and bed profile if activated. - #### Usage - - G81 - - */ + */ case 81: if (mbl.active) { SERIAL_PROTOCOLPGM("Num X,Y: "); @@ -5394,11 +5373,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G90 - Switch off relative mode G90: Set to Absolute Positioning - #### Usage - - G90 - - All coordinates from now on are absolute relative to the origin of the machine. + All coordinates from now on are absolute relative to the origin of the machine. E axis is also switched to absolute mode. */ case 90: { for(uint8_t i = 0; i != NUM_AXIS; ++i) @@ -5408,11 +5383,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G91 - Switch on relative mode G91: Set to Relative Positioning - #### Usage - - G91 - - All coordinates from now on are relative to the last position. + All coordinates from now on are relative to the last position. E axis is also switched to relative mode. */ case 91: { for(uint8_t i = 0; i != NUM_AXIS; ++i) @@ -5422,7 +5393,13 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G92 - Set position G92: Set Position - #### Usage + + It is used for setting the current position of each axis. The parameters are always absolute to the origin. + If a parameter is omitted, that axis will not be affected. + If `X`, `Y`, or `Z` axis are specified, the move afterwards might stutter because of Mesh Bed Leveling. `E` axis is not affected if the target position is 0 (`G92 E0`). + A G92 without coordinates will reset all axes to zero on some firmware. This is not the case for Prusa-Firmware! + + #### Usage G92 [ X | Y | Z | E ] @@ -5432,9 +5409,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) - `Z` - new Z axis position - `E` - new extruder position - Allows programming of absolute zero point, by reseting the current position to the values specified. This would set the machine's X coordinate to 10, and the extrude coordinate to 90. No physical motion will occur. - - A G92 without coordinates will reset all axes to zero on some firmware. */ case 92: { gcode_G92(); @@ -5445,11 +5419,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G98 - Activate farm mode G98: Activate farm mode Enable Prusa-specific Farm functions and g-code. - #### Usage - - G98 - - See Internal Prusa commands + See Internal Prusa commands. */ case 98: farm_mode = 1; @@ -5463,10 +5433,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G99 - Deactivate farm mode G99: Deactivate farm mode Disables Prusa-specific Farm functions and g-code. - #### Usage - - G99 - */ case 99: farm_mode = 0; @@ -5561,7 +5527,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; /*! - ### M17 - Enable axes M17: Enable/Power all stepper motors + ### M17 - Enable all axis M17: Enable/Power all stepper motors */ case 17: LCD_MESSAGERPGM(_i("No move."));////MSG_NO_MOVE @@ -5600,6 +5566,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M23 - Select file M23: Select SD file + #### Usage + + M23 [filename] + */ case 23: starpos = (strchr(strchr_pointer + 4,'*')); @@ -5630,9 +5600,12 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) Set position in SD card file to index in bytes. This command is expected to be called after M23 and before M24. Otherwise effect of this command is undefined. - M26 [ S ] - - - `S` - Index in bytes + #### Usage + + M26 [ S ] + + #### Parameters + - `S` - Index in bytes */ case 26: if(card.cardOK && code_seen('S')) { @@ -5665,7 +5638,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; /*! ### M29 - Stop SD write M29: Stop writing to SD card - Currently has no effect. + Stops writing to the SD file signaling the end of the uploaded file. It is processed very early and it's not written to the card. */ case 29: //processed in write to file routine above @@ -5673,7 +5646,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; /*! - ### M30 - Delete file M30: Delete a file on the SD card + ### M30 - Delete file M30: Delete a file on the SD card + #### Usage + + M30 [filename] + */ case 30: if (card.cardOK){ @@ -5732,7 +5709,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) } break; /*! - ### M982 - Start SD logging M928: Start SD logging + ### M928 - Start SD logging M928: Start SD logging + #### Usage + + M928 [filename] + */ case 928: starpos = (strchr(strchr_pointer + 5,'*')); @@ -5767,6 +5748,14 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M42 - Set pin state M42: Switch I/O pin + #### Usage + + M42 [ P | S ] + + #### Parameters + - `P` - Pin number. + - `S` - Pin value. If the pin is analog, values are from 0 to 255. If the pin is digital, values are from 0 to 1. + */ case 42: if (code_seen('S')) @@ -5816,9 +5805,12 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M45 - Bed skew and offset with manual Z up M45: Bed skew and offset with manual Z up - - M45 [ V ] - - `V` - Verbosity level 1, 10 and 20 (low, mid, high). Only when SUPPORT_VERBOSITY is defined. + #### Usage + + M45 [ V ] + #### Parameters + - `V` - Verbosity level 1, 10 and 20 (low, mid, high). Only when SUPPORT_VERBOSITY is defined. Optional. + - `Z` - If it is provided, only Z calibration will run. Otherwise full calibration is executed. */ case 45: // M45: Prusa3D: bed skew and offset with manual Z up { @@ -5915,18 +5907,21 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### M48 - Z-Probe repeatability measurement function M48: Measure Z-Probe repeatability - This function assumes the bed has been homed. Specifically, that a G28 command as been issued prior to invoking the M48 Z-Probe repeatability measurement function. Any information generated by a prior G29 Bed leveling command will be lost and need to be regenerated. + This function assumes the bed has been homed. Specifically, that a G28 command as been issued prior to invoking the M48 Z-Probe repeatability measurement function. Any information generated by a prior G29 Bed leveling command will be lost and needs to be regenerated. The number of samples will default to 10 if not specified. You can use upper or lower case letters for any of the options EXCEPT n. n must be in lower case because Marlin uses a capital N for its communication protocol and will get horribly confused if you send it a capital N. + @todo Why would you check for both uppercase and lowercase? Seems wasteful. + #### Usage + M48 [ n | X | Y | V | L ] + + #### Parameters - `n` - Number of samples. Valid values 4-50 - `X` - X position for samples - `Y` - Y position for samples - `V` - Verbose level. Valid values 1-4 - `L` - Legs of movementprior to doing probe. Valid values 1-15 - - */ case 48: // M48 Z-Probe repeatability { @@ -6168,14 +6163,15 @@ Sigma_Exit: /*! ### M73 - Set/get print progress M73: Set/Get build percentage - Prusa firmware just shows percent done and time remaining. - + #### Usage + M73 [ P | R | Q | S ] - - - `P` - Percent in normal mode - - `R` - Time remaining in normal mode - - `Q` - Percent in silent mode - - `S` - Time in silent mode + + #### Parameters + - `P` - Percent in normal mode + - `R` - Time remaining in normal mode + - `Q` - Percent in silent mode + - `S` - Time in silent mode */ case 73: //M73 show percent done and time remaining if(code_seen('P')) print_percent_done_normal = code_value(); @@ -6192,9 +6188,11 @@ Sigma_Exit: /*! ### M104 - Set hotend temperature M104: Set Extruder Temperature - + #### Usage + M104 [ S ] - + + #### Parameters - `S` - Target temperature */ case 104: // M104 @@ -6212,6 +6210,7 @@ Sigma_Exit: /*! ### M112 - Emergency stop M112: Full (Emergency) Stop + It is processed much earlier as to bypass the cmdqueue. */ case 112: kill(MSG_M112_KILL, 3); @@ -6219,6 +6218,12 @@ Sigma_Exit: /*! ### M140 - Set bed temperature M140: Set Bed Temperature (Fast) + #### Usage + + M140 [ S ] + + #### Parameters + - `S` - Target temperature */ case 140: if (code_seen('S')) setTargetBed(code_value()); @@ -6233,7 +6238,7 @@ Sigma_Exit: - `Tx:` - x Tool (actual / target) - `@:` - Hotend power - `B@:` - Bed power - - `P:` - PINDAv2 actual (only MK2.5/s and MK3.5/s) + - `P:` - PINDAv2 actual (only MK2.5/s and MK3/s) - `A:` - Ambient actual (only MK3/s) _Example:_ @@ -6338,7 +6343,10 @@ Sigma_Exit: /*! ### M109 - Wait for extruder temperature M109: Set Extruder Temperature and Wait - Parameters (not mandatory): + #### Usage + + M104 [ B | R | S ] + #### Parameters (not mandatory) - `S` - Set extruder temperature - `R` - Set extruder temperature @@ -6346,8 +6354,7 @@ Sigma_Exit: Parameters S and R are treated identically. Command always waits for both cool down and heat up. - If no parameters are supplied waits for previously - set extruder temperature. + If no parameters are supplied waits for previously set extruder temperature. */ case 109: { @@ -6400,7 +6407,11 @@ Sigma_Exit: /*! ### M190 - Wait for bed temperature M190: Wait for bed temperature to reach target temp - Parameters (not mandatory): + #### Usage + + M190 [ R | S ] + + #### Parameters (not mandatory) - `S` - Set extruder temperature and wait for heating - `R` - Set extruder temperature and wait for heating or cooling @@ -6463,6 +6474,12 @@ Sigma_Exit: /*! ### M106 - Set fan speed M106: Fan On + #### Usage + + M106 [ S ] + + #### Parameters + - `S` - Specifies the duty cycle of the print fan. Allowed values are 0-255. If it's omitted, a value of 255 is used. */ case 106: // M106 Sxxx Fan On S 0 .. 255 if (code_seen('S')){ @@ -6485,6 +6502,7 @@ Sigma_Exit: /*! ### M80 - Turn on the Power Supply M80: ATX Power On + Only works if the firmware is compiled with PS_ON_PIN defined. */ case 80: SET_OUTPUT(PS_ON_PIN); //GND @@ -6505,6 +6523,7 @@ Sigma_Exit: /*! ### M81 - Turn off Power Supply M81: ATX Power Off + Only works if the firmware is compiled with PS_ON_PIN defined. */ case 81: disable_heater(); @@ -6546,10 +6565,10 @@ Sigma_Exit: /*! ### M84 - Disable steppers M84: Stop idle hold - This command can be used to set the stepper inactivity timeout (`S`) or to disable steppers (`X`,`Y`,`Z`,`E`) + This command can be used without any additional parameters. In that case all steppers are disabled. - _This command can be used without any additional parameters._ + The file completeness check uses this parameter to detect an incomplete file. It has to be present at the end of a file with no parameters. M84 [ S | X | Y | Z | E ] @@ -6557,7 +6576,7 @@ Sigma_Exit: - `X` - X axsis - `Y` - Y axis - `Z` - Z axis - - `E` - Exruder drive(s) + - `E` - Exruder ### M18 - Disable steppers M18: Disable all stepper motors Equal to M84 (compatibility) @@ -6600,7 +6619,12 @@ Sigma_Exit: /*! ### M85 - Set max inactive time M85: Set Inactivity Shutdown Timer - Set Inactivity Shutdown Timer with parameter S. "M85 S0" will disable the inactivity shutdown time (default) + #### Usage + + M85 [ S ] + + #### Parameters + - `S` - specifies the time in seconds. If a value of 0 is specified, the timer is disabled. */ case 85: // M85 if(code_seen('S')) { @@ -6610,15 +6634,14 @@ Sigma_Exit: #ifdef SAFETYTIMER /*! - ### M86 - Set safety timer expiration time M86: Set Safety Timer expiration time - Sets the safety timer expiration time in seconds. - + ### M86 - Set safety timer expiration time M86: Set Safety Timer expiration time When safety timer expires, heatbed and nozzle target temperatures are set to zero. + #### Usage M86 [ S ] - - `S` - Seconds Setting it to 0 will disable safety timer. - + #### Parameters + - `S` - specifies the time in seconds. If a value of 0 is specified, the timer is disabled. */ case 86: if (code_seen('S')) { @@ -6631,13 +6654,15 @@ Sigma_Exit: /*! ### M92 Set Axis steps-per-unit M92: Set axis_steps_per_unit Allows programming of steps per unit (usually mm) for motor drives. These values are reset to firmware defaults on power on, unless saved to EEPROM if available (M500 in Marlin) - + #### Usage + M92 [ X | Y | Z | E ] - - `X` - Steps per unit for the X drive - - `Y` - Steps per unit for the Y drive - - `Z` - Steps per unit for the Z drive - - `E` - Steps per unit for the extruder drive(s) + #### Parameters + - `X` - Steps per unit for the X drive + - `Y` - Steps per unit for the Y drive + - `Z` - Steps per unit for the Z drive + - `E` - Steps per unit for the extruder drive */ case 92: for(int8_t i=0; i < NUM_AXIS; i++) @@ -6664,10 +6689,12 @@ Sigma_Exit: /*! ### M110 - Set Line number M110: Set Current Line Number Sets the line number in G-code - + #### Usage + M110 [ N ] - - `N` - Line number + #### Parameters + - `N` - Line number */ case 110: if (code_seen('N')) @@ -6676,11 +6703,13 @@ Sigma_Exit: /*! ### M113 - Get or set host keep-alive interval M113: Host Keepalive - During some lengthy processes, such as G29, Marlin may appear to the host to have “gone away.†The “host keepalive†feature will send messages to the host when Marlin is busy or waiting for user response so the host won’t try to reconnect. + During some lengthy processes, such as G29, Marlin may appear to the host to have “gone away.†The “host keepalive†feature will send messages to the host when Marlin is busy or waiting for user response so the host won’t try to reconnect (or disconnect). + #### Usage M113 [ S ] - - `S` - Seconds Default is 2 seconds between "busy" messages + #### Parameters + - `S` - Seconds. Default is 2 seconds between "busy" messages */ case 113: if (code_seen('S')) { @@ -6697,13 +6726,6 @@ Sigma_Exit: /*! ### M115 - Firmware info M115: Get Firmware Version and Capabilities Print the firmware info and capabilities - - M115 [ V | U ] - - - V - Report current installed firmware version - - U - Firmware version provided by G-code to be compared to current one. - - Without any arguments, prints Prusa firmware version number, machine type, extruder count and UUID. `M115 U` Checks the firmware version provided. If the firmware version provided by the U code is higher than the currently running firmware, it will pause the print for 30s and ask the user to upgrade the firmware. @@ -6720,6 +6742,13 @@ Sigma_Exit: `M115 U3.8.2-RC1` results on LCD display for 30s or user interaction: `New firmware version available: 3.8.2-RC1 Please upgrade.` + #### Usage + + M115 [ V | U ] + + #### Parameters + - V - Report current installed firmware version + - U - Firmware version provided by G-code to be compared to current one. */ case 115: // M115 if (code_seen('V')) { @@ -6844,6 +6873,14 @@ Sigma_Exit: /*! ### M150 - Set RGB(W) Color M150: Set LED color In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code by defining BLINKM and its dependencies. + #### Usage + + M150 [ R | U | B ] + + #### Parameters + - `R` - Red color value + - `U` - Green color value. It is NOT `G`! + - `B` - Blue color value */ case 150: { From cabfc37f157b278b021c8978acac59951d2f4856 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 20:17:26 +0200 Subject: [PATCH 222/271] The other changes --- Firmware/Marlin_main.cpp | 709 +++++++++++++++++++++------------------ 1 file changed, 384 insertions(+), 325 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 2b8d81de6..671fc40c2 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -6899,9 +6899,11 @@ Sigma_Exit: /*! ### M200 - Set filament diameter M200: Set filament diameter - + #### Usage + M200 [ D | T ] + #### Parameters - `D` - Diameter in mm - `T` - Number of extruder (MMUs) */ @@ -6946,6 +6948,7 @@ Sigma_Exit: /*! ### M201 - Set Print Max Acceleration M201: Set max printing acceleration + For each axis individually. */ case 201: for (int8_t i = 0; i < NUM_AXIS; i++) @@ -6982,6 +6985,7 @@ Sigma_Exit: /*! ### M203 - Set Max Feedrate M203: Set maximum feedrate + For each axis individually. */ case 203: // M203 max feedrate mm/sec for (int8_t i = 0; i < NUM_AXIS; i++) @@ -7009,16 +7013,20 @@ Sigma_Exit: /*! ### M204 - Acceleration settings M204: Set default acceleration - */ - /*! Supporting old format: + #### Usage + Old format: - M204 [ S | T ] - - `S` - normal moves + M204 [ S | T ] + New format: + + M204 [ P | R | T ] + + #### Parameters + Old format: + - `S` - normal moves - `T` - filmanent only moves - and new format: - - M204 [ P | R | T ] + New format: - `P` - printing moves - `R` - filmanent only moves - `T` - travel moves (as of now T is ignored) @@ -7041,7 +7049,9 @@ Sigma_Exit: cs.retract_acceleration = code_value(); if(code_seen('T')) { // Interpret the T value as the travel acceleration in the new Marlin format. - //FIXME Prusa3D firmware currently does not support travel acceleration value independent from the extruding acceleration value. + /*! + @todo Prusa3D firmware currently does not support travel acceleration value independent from the extruding acceleration value. + */ // travel_acceleration = code_value(); } } @@ -7050,11 +7060,12 @@ Sigma_Exit: /*! ### M205 - Set advanced settings M205: Advanced settings - */ - /*! Set some advanced settings related to movement. - - M205 [ S | T | B | X | Y | Z | E ] + Set some advanced settings related to movement. + #### Usage + M205 [ S | T | B | X | Y | Z | E ] + + #### Parameters - `S` - Minimum feedrate for print moves (unit/s) - `T` - Minimum feedrate for travel moves (units/s) - `B` - Minimum segment time (us) @@ -7079,9 +7090,11 @@ Sigma_Exit: /*! ### M206 - Set additional homing offsets M206: Offset axes + #### Usage - M206 [ X | Y | Z] + M206 [ X | Y | Z ] + #### Parameters - `X` - X axis offset - `Y` - Y axis offset - `Z` - Z axis offset @@ -7096,9 +7109,11 @@ Sigma_Exit: /*! ### M207 - Set firmware retraction M207: Set retract length - - M207 [ S | F | Z] + #### Usage + M207 [ S | F | Z ] + + #### Parameters - `S` - positive length to retract, in mm - `F` - retraction feedrate, in mm/min - `Z` - additional zlift/hop @@ -7121,9 +7136,11 @@ Sigma_Exit: /*! ### M208 - Set retract recover length M208: Set unretract length - - M208 [ S | F ] + #### Usage + M208 [ S | F ] + + #### Parameters - `S` - positive length surplus to the M207 Snnn, in mm - `F` - feedrate, in mm/sec */ @@ -7141,12 +7158,13 @@ Sigma_Exit: /*! ### M209 - Enable/disable automatict retract M209: Enable automatic retract - - M209 [ S ] - - - `S` - 1=true or 0=false - This boolean value S 1=true or 0=false enables automatic retract detect if the slicer did not support G10/G11: every normal extrude-only move will be classified as retract depending on the direction. + #### Usage + + M209 [ S ] + + #### Parameters + - `S` - 1=true or 0=false */ case 209: // M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction. { @@ -7192,6 +7210,13 @@ Sigma_Exit: /*! ### M218 - Set hotend offset M218: Set Hotend Offset In Prusa Firmware this G-code is only active if `EXTRUDERS` is higher then 1 in the source code. On Original i3 Prusa MK2/s MK2.5/s MK3/s it is not active. + #### Usage + + M218 [ X | Y ] + + #### Parameters + - `X` - X offset + - `Y` - Y offset */ case 218: // M218 - set hotend offset (in mm), T X Y { @@ -7222,13 +7247,14 @@ Sigma_Exit: /*! ### M220 Set feedrate percentage M220: Set speed factor override percentage - - M220 [ B | S | R ] - - - `B` - Backup current speed factor - - `S` - Speed factor override percentage (0..100 or higher) - - `R` - Restore previous speed factor - + #### Usage + + M220 [ B | S | R ] + + #### Parameters + - `B` - Backup current speed factor + - `S` - Speed factor override percentage (0..100 or higher) + - `R` - Restore previous speed factor */ case 220: // M220 S- set speed factor override percentage { @@ -7248,12 +7274,13 @@ Sigma_Exit: /*! ### M221 - Set extrude factor override percentage M221: Set extrude factor override percentage - - M221 [ S | T ] - - - `S` - Extrude factor override percentage (0..100 or higher), default 100% - - `T` - Extruder drive number (Prusa Firmware only), default 0 if not set. - + #### Usage + + M221 [ S | T ] + + #### Parameters + - `S` - Extrude factor override percentage (0..100 or higher), default 100% + - `T` - Extruder drive number (Prusa Firmware only), default 0 if not set. */ case 221: // M221 S- set extrude factor override percentage { @@ -7279,13 +7306,14 @@ Sigma_Exit: /*! ### M226 - Wait for Pin state M226: Wait for pin state - - M226 [ P | S ] - - - `P` - pin number - - `S` - pin state - Wait until the specified pin reaches the state required + #### Usage + + M226 [ P | S ] + + #### Parameters + - `P` - pin number + - `S` - pin state */ case 226: // M226 P S- Wait until the specified pin reaches the state required { @@ -7344,6 +7372,13 @@ Sigma_Exit: /*! ### M280 - Set/Get servo position M280: Set servo position In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. + #### Usage + + M280 [ P | S ] + + #### Parameters + - `P` - Servo index (id) + - `S` - Target position */ case 280: // M280 - set servo position absolute. P: servo index, S: angle or microseconds { @@ -7386,13 +7421,14 @@ Sigma_Exit: /*! ### M300 - Play tone M300: Play beep sound - - M300 [ S | P ] - - - `S` - frequency in Hz - - `P` - duration in milliseconds - In Prusa Firmware the defaults are `100Hz` and `1000ms`, so that `M300` without parameters will beep for a second. + #### Usage + + M300 [ S | P ] + + #### Parameters + - `S` - frequency in Hz. Not all firmware versions support this parameter + - `P` - duration in milliseconds */ case 300: // M300 { @@ -7416,17 +7452,17 @@ Sigma_Exit: /*! ### M301 - Set hotend PID M301: Set PID parameters - - M301 [ P | I | D | C ] - - - `P` - proportional (Kp) - - `I` - integral (Ki) - - `D` - derivative (Kd) - - `C` - heating power=Kc*(e_speed0) - Sets Proportional (P), Integral (I) and Derivative (D) values for hot end. - - See also PID Tuning. + See also PID Tuning. + #### Usage + + M301 [ P | I | D | C ] + + #### Parameters + - `P` - proportional (Kp) + - `I` - integral (Ki) + - `D` - derivative (Kd) + - `C` - heating power=Kc*(e_speed0) */ case 301: { @@ -7459,16 +7495,16 @@ Sigma_Exit: /*! ### M304 - Set bed PID M304: Set PID parameters - Bed - - M304 [ P | I | D ] - - - `P` - proportional (Kp) - - `I` - integral (Ki) - - `D` - derivative (Kd) - Sets Proportional (P), Integral (I) and Derivative (D) values for bed. - - See also PID Tuning. + See also PID Tuning. + #### Usage + + M304 [ P | I | D ] + + #### Parameters + - `P` - proportional (Kp) + - `I` - integral (Ki) + - `D` - derivative (Kd) */ case 304: { @@ -7494,7 +7530,7 @@ Sigma_Exit: In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. - You need to define `CHDK` and assign a `PHOTOGRAPH_PIN` to bea ble to use it. + You need to (re)define and assign `CHDK` or `PHOTOGRAPH_PIN` the correct pin number to be able to use the feature. */ case 240: // M240 Triggers a camera by emulating a Canon RC-1 : http://www.doc-diy.net/photo/rc-1_hacked/ { @@ -7505,9 +7541,7 @@ Sigma_Exit: chdkHigh = _millis(); chdkActive = true; - #else - - #if defined(PHOTOGRAPH_PIN) && PHOTOGRAPH_PIN > -1 + #elif defined(PHOTOGRAPH_PIN) && PHOTOGRAPH_PIN > -1 const uint8_t NUM_PULSES=16; const float PULSE_LENGTH=0.01524; for(int i=0; i < NUM_PULSES; i++) { @@ -7524,19 +7558,19 @@ Sigma_Exit: _delay_ms(PULSE_LENGTH); } #endif - #endif //chdk end if } break; #ifdef PREVENT_DANGEROUS_EXTRUDE /*! ### M302 - Allow cold extrude, or set minimum extrude temperature M302: Allow cold extrudes - - M302 [ S ] - - - `S` - Cold extrude minimum temperature - - This tells the printer to allow movement of the extruder motor above a certain temperature, or if disabled, to allow extruder movement when the hotend is below a safe printing temperature. + This tells the printer to allow movement of the extruder motor above a certain temperature, or if disabled, to allow extruder movement when the hotend is below a safe printing temperature. + #### Usage + + M302 [ S ] + + #### Parameters + - `S` - Cold extrude minimum temperature */ case 302: { @@ -7549,14 +7583,15 @@ Sigma_Exit: /*! ### M303 - PID autotune M303: Run PID tuning - - M303 [ E | S | C ] - - - `E` - Extruder, default `E0`. - - `S` - Target temperature, default `210°C` - - `C` - Cycles, default `5` + PID Tuning refers to a control algorithm used in some repraps to tune heating behavior for hot ends and heated beds. This command generates Proportional (Kp), Integral (Ki), and Derivative (Kd) values for the hotend or bed. Send the appropriate code and wait for the output to update the firmware values. + #### Usage - PID Tuning refers to a control algorithm used in some repraps to tune heating behavior for hot ends and heated beds. This command generates Proportional (Kp), Integral (Ki), and Derivative (Kd) values for the hotend or bed (`E-1`). Send the appropriate code and wait for the output to update the firmware. + M303 [ E | S | C ] + + #### Parameters + - `E` - Extruder, default `E0`. Use `E-1` to calibrate the bed PID + - `S` - Target temperature, default `210°C` for hotend, 70 for bed + - `C` - Cycles, default `5` */ case 303: { @@ -7574,8 +7609,8 @@ Sigma_Exit: /*! ### M400 - Wait for all moves to finish M400: Wait for current moves to finish - - Finishes all current moves and and thus clears the buffer. + Finishes all current moves and and thus clears the buffer. + Equivalent to `G4` with no parameters. */ case 400: { @@ -7585,15 +7620,15 @@ Sigma_Exit: /*! ### M403 - Set filament type (material) for particular extruder and notify the MMU M403 - Set filament type (material) for particular extruder and notify the MMU - - M403 [ E | F ] - - - `E` - Extruder number - - `F` - Filament type - - Currently three different materials are needed (default, flex and PVA). - - And storing this information for different load/unload profiles etc. in the future firmware does not have to wait for "ok" from MMU. + Currently three different materials are needed (default, flex and PVA). + And storing this information for different load/unload profiles etc. in the future firmware does not have to wait for "ok" from MMU. + #### Usage + + M403 [ E | F ] + + #### Parameters + - `E` - Extruder number. 0-indexed. + - `F` - Filament type */ case 403: { @@ -7613,8 +7648,7 @@ Sigma_Exit: /*! ### M500 - Store settings in EEPROM M500: Store parameters in non-volatile storage - - Save current parameters to EEPROM, SD card or other non-volatile storage. + Save current parameters to EEPROM. */ case 500: { @@ -7624,8 +7658,7 @@ Sigma_Exit: /*! ### M501 - Read settings from EEPROM M501: Read parameters from EEPROM - - Set the active parameters to those stored in the EEPROM, SD card or other non-volatile storage. This is useful to revert parameters after experimenting with them. + Set the active parameters to those stored in the EEPROM. This is useful to revert parameters after experimenting with them. */ case 501: { @@ -7635,8 +7668,7 @@ Sigma_Exit: /*! ### M502 - Revert all settings to factory default M502: Restore Default Settings - - This command resets all tunable parameters to their default values, as set in the firmware's configuration files. This doesn't reset any parameters stored in the EEPROM, so it must be followed with M500 to reboot with default settings. + This command resets all tunable parameters to their default values, as set in the firmware's configuration files. This doesn't reset any parameters stored in the EEPROM, so it must be followed by M500 to write the default settings. */ case 502: { @@ -7646,7 +7678,6 @@ Sigma_Exit: /*! ### M503 - Repport all settings currently in memory M503: Report Current Settings - This command asks the firmware to reply with the current print settings as set in memory. Settings will differ from EEPROM contents if changed since the last load / save. The reply output includes the G-Code commands to produce each setting. For example, Steps-Per-Unit values are displayed as an M92 command. */ case 503: @@ -7657,7 +7688,6 @@ Sigma_Exit: /*! ### M509 - Force language selection M509: Force language selection - Resets the language to English. Only on Original Prusa i3 MK2.5/s and MK3/s with multiple languages. */ @@ -7672,8 +7702,13 @@ Sigma_Exit: /*! ### M540 - Abort print on endstop hit (enable/disable) M540 in Marlin: Enable/Disable "Stop SD Print on Endstop Hit" - In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. You must define `ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED`. + #### Usage + + M540 [ S ] + + #### Parameters + - `S` - disabled=0, enabled=1 */ case 540: { @@ -7684,14 +7719,14 @@ Sigma_Exit: /*! ### M851 - Set Z-Probe Offset M851: Set Z-Probe Offset" - - M4861 [ Z ] - - - `Z` - Z offset probe to nozzle. - - Sets the Z-probe Z offset. This offset is used to determine the actual Z position of the nozzle when using a probe to home Z with G28. This value may also be used by G81 (Prusa) / G29 (Marlin) to apply correction to the Z position. - + Sets the Z-probe Z offset. This offset is used to determine the actual Z position of the nozzle when using a probe to home Z with G28. This value may also be used by G81 (Prusa) / G29 (Marlin) to apply correction to the Z position. This value represents the distance from nozzle to the bed surface at the point where the probe is triggered. This value will be negative for typical switch probes, inductive probes, and setups where the nozzle makes a circuit with a raised metal contact. This setting will be greater than zero on machines where the nozzle itself is used as the probe, pressing down on the bed to press a switch. (This is a common setup on delta machines.) + #### Usage + + M851 [ Z ] + + #### Parameters + - `Z` - Z offset probe to nozzle. */ #ifdef CUSTOM_M_CODE_SET_Z_PROBE_OFFSET case CUSTOM_M_CODE_SET_Z_PROBE_OFFSET: @@ -7733,19 +7768,18 @@ Sigma_Exit: /*! ### M600 - Initiate Filament change procedure M600: Filament change pause - - M600 [ X | Y | Z | E | L | AUTO ] - - - `X` - X position, default 211 - - `Y` - Y position, default 0 - - `Z` - relative lift Z, default 2. - - `E` - initial retract, default -2 - - `L` - later retract distance for removal, default -80 - - `AUTO` - Automatically (only with MMU) - - Initiates Filament change, it is also used during Filament Runout Sensor process. - + Initiates Filament change, it is also used during Filament Runout Sensor process. If the `M600` is triggered under 25mm it will do a Z-lift of 25mm to prevent a filament blob. + #### Usage + + M600 [ X | Y | Z | E | L | AUTO ] + + - `X` - X position, default 211 + - `Y` - Y position, default 0 + - `Z` - relative lift Z, default 2. + - `E` - initial retract, default -2 + - `L` - later retract distance for removal, default -80 + - `AUTO` - Automatically (only with MMU) */ case 600: //Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal] { @@ -7863,12 +7897,13 @@ Sigma_Exit: #ifdef PINDA_THERMISTOR /*! ### M860 - Wait for extruder temperature (PINDA) M860 Wait for Probe Temperature - - M860 [ S ] - - - `S` - Target temperature - Wait for PINDA thermistor to reach target temperature + #### Usage + + M860 [ S ] + + #### Parameters + - `S` - Target temperature */ case 860: { @@ -7916,16 +7951,17 @@ Sigma_Exit: /*! ### M861 - Set/Get PINDA temperature compensation offsets M861 Set Probe Thermal Compensation - + Set compensation ustep value `S` for compensation table index `I`. + #### Usage + M861 [ ? | ! | Z | S | I ] - - - `?` - Print current EEPROM offset values - - `!` - Set factory default values - - `Z` - Set all values to 0 (effectively disabling PINDA temperature compensation) - - `S` - Microsteps - - `I` - Table index - - Set compensation ustep value `S` for compensation table index `I`. + + #### Parameters + - `?` - Print current EEPROM offset values + - `!` - Set factory default values + - `Z` - Set all values to 0 (effectively disabling PINDA temperature compensation) + - `S` - Microsteps + - `I` - Table index */ case 861: if (code_seen('?')) { // ? - Print out current EEPROM offset values @@ -8097,14 +8133,16 @@ Sigma_Exit: /*! ### M900 - Set Linear advance options M900 Set Linear Advance Scaling Factors Sets the advance extrusion factors for Linear Advance. If any of the R, W, H, or D parameters are set to zero the ratio will be computed dynamically during printing. - - M900 [ K | R | W | H | D] - - - `K` - Advance K factor - - `R` - Set ratio directly (overrides WH/D) - - `W` - Width - - `H` - Height - - `D` - Diameter Set ratio from WH/D + #### Usage + + M900 [ K | R | W | H | D] + + #### Parameters + - `K` - Advance K factor + - `R` - Set ratio directly (overrides WH/D) + - `W` - Width + - `H` - Height + - `D` - Diameter Set ratio from WH/D */ case 900: gcode_M900(); @@ -8114,17 +8152,17 @@ Sigma_Exit: /*! ### M907 - Set digital trimpot motor current in mA using axis codes M907: Set digital trimpot motor Set digital trimpot motor current using axis codes (X, Y, Z, E, B, S). + #### Usage + + M907 [ X | Y | Z | E | B | S ] - M907 [ X | Y | Z | E | B | S ] - - - `X` - X motor driver - - `Y` - Y motor driver - - `Z` - Z motor driver - - `E` - Extruder motor driver - - `B` - ?? - - `S` - ?? - - @todo What are `B` and `S` in M907? + #### Parameters + - `X` - X motor driver + - `Y` - Y motor driver + - `Z` - Z motor driver + - `E` - Extruder motor driver + - `B` - Second Extruder motor driver + - `S` - All motors */ case 907: { @@ -8161,7 +8199,14 @@ Sigma_Exit: /*! ### M908 - Control digital trimpot directly M908: Control digital trimpot directly - In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. + In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. Not usable on Prusa printers. + #### Usage + + M908 [ P | S ] + + #### Parameters + - `P` - channel + - `S` - current */ case 908: { @@ -8190,13 +8235,15 @@ Sigma_Exit: /*! ### M911 - Set TMC2130 holding currents M911: Set TMC2130 holding currents Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. - - M911 [ X | Y | Z | E ] - - - `X` - X stepper driver holding current value - - `Y` - Y stepper driver holding current value - - `Z` - Z stepper driver holding current value - - `E` - Extruder stepper driver holding current value + #### Usage + + M911 [ X | Y | Z | E ] + + #### Parameters + - `X` - X stepper driver holding current value + - `Y` - Y stepper driver holding current value + - `Z` - Z stepper driver holding current value + - `E` - Extruder stepper driver holding current value */ case 911: { @@ -8210,14 +8257,15 @@ Sigma_Exit: /*! ### M912 - Set TMC2130 running currents M912: Set TMC2130 running currents Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. - - M912 [ X | Y | Z | E ] - - - - `X` - X stepper driver running current value - - `Y` - Y stepper driver running current value - - `Z` - Z stepper driver running current value - - `E` - Extruder stepper driver running current value + #### Usage + + M912 [ X | Y | Z | E ] + + #### Parameters + - `X` - X stepper driver running current value + - `Y` - Y stepper driver running current value + - `Z` - Z stepper driver running current value + - `E` - Extruder stepper driver running current value */ case 912: { @@ -8266,14 +8314,15 @@ Sigma_Exit: /*! ### M916 - Set TMC2130 Stallguard sensitivity threshold M916: Set TMC2130 Stallguard sensitivity threshold Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. - - M916 [ X | Y | Z | E ] - - - - `X` - X stepper driver stallguard sensitivity threshold value - - `Y` - Y stepper driver stallguard sensitivity threshold value - - `Z` - Z stepper driver stallguard sensitivity threshold value - - `E` - Extruder stepper driver stallguard sensitivity threshold value + #### Usage + + M916 [ X | Y | Z | E ] + + #### Parameters + - `X` - X stepper driver stallguard sensitivity threshold value + - `Y` - Y stepper driver stallguard sensitivity threshold value + - `Z` - Z stepper driver stallguard sensitivity threshold value + - `E` - Extruder stepper driver stallguard sensitivity threshold value */ case 916: { @@ -8289,14 +8338,15 @@ Sigma_Exit: /*! ### M917 - Set TMC2130 PWM amplitude offset (pwm_ampl) M917: Set TMC2130 PWM amplitude offset (pwm_ampl) Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. - - M917 [ X | Y | Z | E ] - - - - `X` - X stepper driver PWM amplitude offset value - - `Y` - Y stepper driver PWM amplitude offset value - - `Z` - Z stepper driver PWM amplitude offset value - - `E` - Extruder stepper driver PWM amplitude offset value + #### Usage + + M917 [ X | Y | Z | E ] + + #### Parameters + - `X` - X stepper driver PWM amplitude offset value + - `Y` - Y stepper driver PWM amplitude offset value + - `Z` - Z stepper driver PWM amplitude offset value + - `E` - Extruder stepper driver PWM amplitude offset value */ case 917: { @@ -8310,14 +8360,15 @@ Sigma_Exit: /*! ### M918 - Set TMC2130 PWM amplitude gradient (pwm_grad) M918: Set TMC2130 PWM amplitude gradient (pwm_grad) Not active in default, only if `TMC2130_SERVICE_CODES_M910_M918` is defined in source code. - - M918 [ X | Y | Z | E ] - - - - `X` - X stepper driver PWM amplitude gradient value - - `Y` - Y stepper driver PWM amplitude gradient value - - `Z` - Z stepper driver PWM amplitude gradient value - - `E` - Extruder stepper driver PWM amplitude gradient value + #### Usage + + M918 [ X | Y | Z | E ] + + #### Parameters + - `X` - X stepper driver PWM amplitude gradient value + - `Y` - Y stepper driver PWM amplitude gradient value + - `Z` - Z stepper driver PWM amplitude gradient value + - `E` - Extruder stepper driver PWM amplitude gradient value */ case 918: { @@ -8332,7 +8383,21 @@ Sigma_Exit: /*! ### M350 - Set microstepping mode M350: Set microstepping mode - Warning: Steps per unit remains unchanged. S code sets stepping mode for all drivers. + Printers with TMC2130 drivers have `X`, `Y`, `Z` and `E` as options. The steps-per-unit value is updated accordingly. Not all resolutions are valid! + Printers without TMC2130 drivers also have `B` and `S` options. In this case, the steps-per-unit value in not changed! + #### Usage + + M350 [ X | Y | Z | E | B | S ] + + #### Parameters + - `X` - X new resolution + - `Y` - Y new resolution + - `Z` - Z new resolution + - `E` - E new resolution + + Only valid for MK2.5(S) or printers without TMC2130 drivers + - `B` - Second extruder new resolution + - `S` - All axis new resolution */ case 350: { @@ -8380,9 +8445,18 @@ Sigma_Exit: /*! ### M351 - Toggle Microstep Pins M351: Toggle MS1 MS2 pins directly - Toggle MS1 MS2 pins directly, S# determines MS1 or MS2, X# sets the pin high/low. + Toggle MS1 MS2 pins directly. + #### Usage - M351 [B<0|1>] [E<0|1>] S<1|2> [X<0|1>] [Y<0|1>] [Z<0|1>] + M351 [B<0|1>] [E<0|1>] S<1|2> [X<0|1>] [Y<0|1>] [Z<0|1>] + + #### Parameters + - `X` - Update X axis + - `Y` - Update Y axis + - `Z` - Update Z axis + - `E` - Update E axis + - `S` - which MSx pin to toggle + - `B` - new pin value */ case 351: { @@ -8417,12 +8491,14 @@ Sigma_Exit: /*! ### M702 - Unload filament G32: Undock Z Probe sled - - M702 [ U | C] - - - `U` - Unload all filaments used in current print - - `C` - Unload just current filament - - without any parameters unload all filaments + #### Usage + + M702 [ U | C ] + + #### Parameters + - `U` - Unload all filaments used in current print + - `C` - Unload just current filament + - without any parameters unload all filaments */ case 702: { @@ -8448,6 +8524,7 @@ Sigma_Exit: /*! ### M999 - Restart after being stopped M999: Restart after being stopped by error + Usually doesn't work. */ case 999: Stopped = false; @@ -8466,19 +8543,16 @@ Sigma_Exit: } } // end if(code_seen('M')) (end of M codes) - - //! ----------------------------------------------------------------------------------------- - //! # T Codes - //! - //! T - select extruder in case of multi extruder printer - //! select filament in case of MMU_V2 - //! if extruder is "?", open menu to let the user select extruder/filament - //! - //! For MMU_V2: - //! @n T Gcode to extrude at least 38.10 mm at feedrate 19.02 mm/s must follow immediately to load to extruder wheels. - //! @n T? Gcode to extrude shouldn't have to follow, load to extruder wheels is done automatically - //! @n Tx Same as T?, except nozzle doesn't have to be preheated. Tc must be placed after extruder nozzle is preheated to finish filament load. - //! @n Tc Load to nozzle after filament was prepared by Tc and extruder nozzle is already heated. + /*! + ----------------------------------------------------------------------------------------- + # T Codes + T - select extruder in case of multi extruder printer. select filament in case of MMU_V2. + #### For MMU_V2: + T Gcode to extrude at least 38.10 mm at feedrate 19.02 mm/s must follow immediately to load to extruder wheels. + @n T? Gcode to extrude shouldn't have to follow, load to extruder wheels is done automatically + @n Tx Same as T?, except nozzle doesn't have to be preheated. Tc must be placed after extruder nozzle is preheated to finish filament load. + @n Tc Load to nozzle after filament was prepared by Tc and extruder nozzle is already heated. + */ else if(code_seen('T')) { int index; @@ -8669,25 +8743,20 @@ Sigma_Exit: { /*! - * ### D-1 - Endless Loop D-1: Endless Loop - - D-1 - - * */ case -1: dcode__1(); break; #ifdef DEBUG_DCODES /*! - * ### D0 - Reset D0: Reset - - D0 [ B ] - - - `B` - Bootloader - * + #### Usage + + D0 [ B ] + + #### Parameters + - `B` - Bootloader */ case 0: dcode_0(); break; @@ -8704,16 +8773,16 @@ Sigma_Exit: dcode_1(); break; /*! - * ### D2 - Read/Write RAM D3: Read/Write RAM This command can be used without any additional parameters. It will read the entire RAM. - - D3 [ A | C | X ] - - - `A` - Address (0x0000-0x1fff) - - `C` - Count (0x0001-0x2000) - - `X` - Data - * + #### Usage + + D3 [ A | C | X ] + + #### Parameters + - `A` - Address (0x0000-0x1fff) + - `C` - Count (0x0001-0x2000) + - `X` - Data */ case 2: dcode_2(); break; @@ -8721,16 +8790,16 @@ Sigma_Exit: #ifdef DEBUG_DCODE3 /*! - * ### D3 - Read/Write EEPROM D3: Read/Write EEPROM This command can be used without any additional parameters. It will read the entire eeprom. - - D3 [ A | C | X ] - - - `A` - Address (0x0000-0x0fff) - - `C` - Count (0x0001-0x1000) - - `X` - Data - * + #### Usage + + D3 [ A | C | X ] + + #### Parameters + - `A` - Address (0x0000-0x0fff) + - `C` - Count (0x0001-0x1000) + - `X` - Data */ case 3: dcode_3(); break; @@ -8738,17 +8807,17 @@ Sigma_Exit: #ifdef DEBUG_DCODES /*! - * - ### D4 - Read/Write PIN D4: Read/Write PIN + ### D4 - Read/Write PIN D4: Read/Write PIN To read the digital value of a pin you need only to define the pin number. - - D4 [ P | F | V ] - - - `P` - Pin (0-255) - - `F` - Function in/out (0/1) - - `V` - Value (0/1) - * + #### Usage + + D4 [ P | F | V ] + + #### Parameters + - `P` - Pin (0-255) + - `F` - Function in/out (0/1) + - `V` - Value (0/1) */ case 4: dcode_4(); break; @@ -8756,17 +8825,17 @@ Sigma_Exit: #ifdef DEBUG_DCODE5 /*! - * ### D5 - Read/Write FLASH D5: Read/Write Flash This command can be used without any additional parameters. It will read the 1kb FLASH. - - D3 [ A | C | X | E ] - - - `A` - Address (0x00000-0x3ffff) - - `C` - Count (0x0001-0x2000) - - `X` - Data - - `E` - Erase - * + #### Usage + + D3 [ A | C | X | E ] + + #### Parameters + - `A` - Address (0x00000-0x3ffff) + - `C` - Count (0x0001-0x2000) + - `X` - Data + - `E` - Erase */ case 5: dcode_5(); break; @@ -8775,87 +8844,76 @@ Sigma_Exit: #ifdef DEBUG_DCODES /*! - * ### D6 - Read/Write external FLASH D6: Read/Write external Flash - Reserved - * - */ + */ case 6: dcode_6(); break; /*! - * ### D7 - Read/Write Bootloader D7: Read/Write Bootloader - Reserved - * - */ + */ case 7: dcode_7(); break; /*! - * ### D8 - Read/Write PINDA D8: Read/Write PINDA - - D8 [ ? | ! | P | Z ] - - - `?` - Read PINDA temperature shift values - - `!` - Reset PINDA temperature shift values to default - - `P` - Pinda temperature [C] - - `Z` - Z Offset [mm] - * + #### Usage + + D8 [ ? | ! | P | Z ] + + #### Parameters + - `?` - Read PINDA temperature shift values + - `!` - Reset PINDA temperature shift values to default + - `P` - Pinda temperature [C] + - `Z` - Z Offset [mm] */ case 8: dcode_8(); break; /*! - * ### D9 - Read ADC D9: Read ADC - - D9 [ I | V ] - - - `I` - ADC channel index - - `0` - Heater 0 temperature - - `1` - Heater 1 temperature - - `2` - Bed temperature - - `3` - PINDA temperature - - `4` - PWR voltage - - `5` - Ambient temperature - - `6` - BED voltage - - `V` Value to be written as simulated - * + #### Usage + + D9 [ I | V ] + + #### Parameters + - `I` - ADC channel index + - `0` - Heater 0 temperature + - `1` - Heater 1 temperature + - `2` - Bed temperature + - `3` - PINDA temperature + - `4` - PWR voltage + - `5` - Ambient temperature + - `6` - BED voltage + - `V` Value to be written as simulated */ case 9: dcode_9(); break; /*! - * ### D10 - Set XYZ calibration = OK D10: Set XYZ calibration = OK - - * */ case 10: dcode_10(); break; /*! - * ### D12 - Time D12: Time - Writes the actual time in the log file. - * */ #endif //DEBUG_DCODES #ifdef HEATBED_ANALYSIS /*! - * ### D80 - Bed check D80: Bed check This command will log data to SD card file "mesh.txt". - - D80 [ E | F | G | H | I | J ] - + #### Usage + + D80 [ E | F | G | H | I | J ] + + #### Parameters - `E` - Dimension X (default 40) - `F` - Dimention Y (default 40) - `G` - Points X (default 40) @@ -8888,12 +8946,13 @@ Sigma_Exit: }break; /*! - * ### D81 - Bed analysis D80: Bed analysis This command will log data to SD card file "wldsd.txt". - - D81 [ E | F | G | H | I | J ] - + #### Usage + + D81 [ E | F | G | H | I | J ] + + #### Parameters - `E` - Dimension X (default 40) - `F` - Dimention Y (default 40) - `G` - Points X (default 40) @@ -8925,7 +8984,6 @@ Sigma_Exit: #ifdef DEBUG_DCODES /*! - * ### D106 - Print measured fan speed for different pwm values D106: Print measured fan speed for different pwm values */ case 106: @@ -8943,13 +9001,14 @@ Sigma_Exit: #ifdef TMC2130 /*! - * ### D2130 - Trinamic stepper controller D2130: Trinamic stepper controller - @todo Please review by owner of the code. RepRap Wiki Gcode needs to be updated after review of owner as well. - - D2130 [ Axis | Command | Subcommand | Value ] - + + #### Usage + + D2130 [ Axis | Command | Subcommand | Value ] + + #### Parameters - Axis - `X` - X stepper driver - `Y` - Y stepper driver @@ -9004,18 +9063,18 @@ Sigma_Exit: #if (defined (FILAMENT_SENSOR) && defined(PAT9125)) /*! - * ### D9125 - PAT9125 filament sensor D9125: PAT9125 filament sensor - - D9125 [ ? | ! | R | X | Y | L ] - - - `?` - Print values - - `!` - Print values - - `R` - Resolution. Not active in code - - `X` - X values - - `Y` - Y values - - `L` - Activate filament sensor log - * + #### Usage + + D9125 [ ? | ! | R | X | Y | L ] + + #### Parameters + - `?` - Print values + - `!` - Print values + - `R` - Resolution. Not active in code + - `X` - X values + - `Y` - Y values + - `L` - Activate filament sensor log */ case 9125: dcode_9125(); break; From aac66d4a4b853db540ace3a5f83fb97e07ee1ec4 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 22:21:23 +0200 Subject: [PATCH 223/271] Add missing quote --- Firmware/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 35a540f6d..60aa0d294 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5327,7 +5327,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; /*! - ### G85: Pick best babystep - Not active G85: Pick best babystep In Prusa Firmware this G-code is deactivated by default, must be turned on in the source code. */ case 85: From ea51696a688d496b9865a2ef45d9008457e227c2 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 22:30:43 +0200 Subject: [PATCH 224/271] Merge Special sections as requested --- Firmware/Marlin_main.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 60aa0d294..6090867fe 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3600,16 +3600,7 @@ void process_commands() ### M117 - Display Message M117: Display Message This causes the given message to be shown in the status line on an attached LCD. It is processed early as to allow printing messages that contain G, M, N or T. - */ - if (code_seen("M117")) { //moved to highest priority place to be able to to print strings which includes "G", "PRUSA" and "^" - starpos = (strchr(strchr_pointer + 5, '*')); - if (starpos != NULL) - *(starpos) = '\0'; - lcd_setstatus(strchr_pointer + 5); - } - -#ifdef TMC2130 - /*! + --------------------------------------------------------------------------------- ### Special internal commands These are used by internal functions to process certain actions in the right order. Some of these are also usable by the user. @@ -3621,7 +3612,15 @@ void process_commands() - TMC_SET_WAVE - TMC_SET_STEP - TMC_SET_CHOP - */ + */ + if (code_seen("M117")) { //moved to highest priority place to be able to to print strings which includes "G", "PRUSA" and "^" + starpos = (strchr(strchr_pointer + 5, '*')); + if (starpos != NULL) + *(starpos) = '\0'; + lcd_setstatus(strchr_pointer + 5); + } + +#ifdef TMC2130 else if (strncmp_P(CMDBUFFER_CURRENT_STRING, PSTR("CRASH_"), 6) == 0) { From 622319f86c82fa35b477c3ed6369748595415477 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 22:30:53 +0200 Subject: [PATCH 225/271] Add missing LF --- Firmware/Marlin_main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 6090867fe..2f07fe67b 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -6344,6 +6344,7 @@ Sigma_Exit: #### Usage M104 [ B | R | S ] + #### Parameters (not mandatory) - `S` - Set extruder temperature From 47ddc2e9025ab6e9cdd5a8baa7010156b426782b Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 22:35:34 +0200 Subject: [PATCH 226/271] M204 - better old_new separation --- Firmware/Marlin_main.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 2f07fe67b..0f2f6c183 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7012,20 +7012,22 @@ Sigma_Exit: /*! ### M204 - Acceleration settings M204: Set default acceleration - #### Usage - Old format: + + #### Old format: + ##### Usage - M204 [ S | T ] - New format: - - M204 [ P | R | T ] - - #### Parameters - Old format: + M204 [ S | T ] + + ##### Parameters - `S` - normal moves - `T` - filmanent only moves - New format: + #### New format: + ##### Usage + + M204 [ P | R | T ] + + ##### Parameters - `P` - printing moves - `R` - filmanent only moves - `T` - travel moves (as of now T is ignored) From d676542229c01927ff7a6ff7b4df3a7f92a33320 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 22:38:00 +0200 Subject: [PATCH 227/271] Revert code changes --- Firmware/Marlin_main.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 0f2f6c183..1898f0fc0 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7542,7 +7542,9 @@ Sigma_Exit: chdkHigh = _millis(); chdkActive = true; - #elif defined(PHOTOGRAPH_PIN) && PHOTOGRAPH_PIN > -1 + #else + + #if defined(PHOTOGRAPH_PIN) && PHOTOGRAPH_PIN > -1 const uint8_t NUM_PULSES=16; const float PULSE_LENGTH=0.01524; for(int i=0; i < NUM_PULSES; i++) { @@ -7559,6 +7561,7 @@ Sigma_Exit: _delay_ms(PULSE_LENGTH); } #endif + #endif //chdk end if } break; #ifdef PREVENT_DANGEROUS_EXTRUDE From 6a1eb63a52b4cce52d41e1e4aa76f4f4e7600014 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 15 Jan 2020 22:41:02 +0200 Subject: [PATCH 228/271] Add @todo to M999 --- Firmware/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 1898f0fc0..411edc545 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8528,7 +8528,7 @@ Sigma_Exit: /*! ### M999 - Restart after being stopped M999: Restart after being stopped by error - Usually doesn't work. + @todo Usually doesn't work. Should be fixed or removed. Most of the time, if `Stopped` it set, the print fails and is unrecoverable. */ case 999: Stopped = false; From ccd3885d84e953cf3f87655656d16532b1fe0654 Mon Sep 17 00:00:00 2001 From: leptun Date: Wed, 15 Jan 2020 23:01:09 +0200 Subject: [PATCH 229/271] rephrase G28 W --- Firmware/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 411edc545..6c52e34c0 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4262,7 +4262,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! ### G28 - Home all Axis one at a time G28: Move to Origin (Home) - Using `G28` without any parameters will perfom home of all Axis AND mesh bed leveling, while `G28 W` will just home the printer. + Using `G28` without any parameters will perfom homing of all axis AND mesh bed leveling, while `G28 W` will just home all axis (no mesh bed leveling). #### Usage G28 [ X | Y | Z | W | C ] From 1d17a372508e8a8dedafa46a1f2fea71fd99133a Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Thu, 16 Jan 2020 09:15:44 +0200 Subject: [PATCH 230/271] all axis -> all axes --- Firmware/Marlin_main.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 6c52e34c0..211384f9d 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3429,7 +3429,7 @@ extern uint8_t st_backlash_y; //!@n G4 - Dwell S or P //!@n G10 - retract filament according to settings of M207 //!@n G11 - retract recover filament according to settings of M208 -//!@n G28 - Home all Axis +//!@n G28 - Home all Axes //!@n G29 - Detailed Z-Probe, probes the bed at 3 or more points. Will fail if you haven't homed yet. //!@n G30 - Single Z Probe, probes bed at current XY location. //!@n G31 - Dock sled (Z_PROBE_SLED only) @@ -4261,8 +4261,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) /*! - ### G28 - Home all Axis one at a time G28: Move to Origin (Home) - Using `G28` without any parameters will perfom homing of all axis AND mesh bed leveling, while `G28 W` will just home all axis (no mesh bed leveling). + ### G28 - Home all Axes one at a time G28: Move to Origin (Home) + Using `G28` without any parameters will perfom homing of all axes AND mesh bed leveling, while `G28 W` will just home all axes (no mesh bed leveling). #### Usage G28 [ X | Y | Z | W | C ] @@ -5525,7 +5525,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; /*! - ### M17 - Enable all axis M17: Enable/Power all stepper motors + ### M17 - Enable all axes M17: Enable/Power all stepper motors */ case 17: LCD_MESSAGERPGM(_i("No move."));////MSG_NO_MOVE @@ -6572,7 +6572,7 @@ Sigma_Exit: M84 [ S | X | Y | Z | E ] - `S` - Seconds - - `X` - X axsis + - `X` - X axis - `Y` - Y axis - `Z` - Z axis - `E` - Exruder @@ -6865,7 +6865,7 @@ Sigma_Exit: SERIAL_PROTOCOLLN(""); #endif break; - //TODO: update for all axis, use for loop + //!@todo update for all axes, use for loop #ifdef BLINKM @@ -8401,7 +8401,7 @@ Sigma_Exit: Only valid for MK2.5(S) or printers without TMC2130 drivers - `B` - Second extruder new resolution - - `S` - All axis new resolution + - `S` - All axes new resolution */ case 350: { From 95a2ad533d4cb5b3d61bc989b6681247bf3c72c3 Mon Sep 17 00:00:00 2001 From: DRracer Date: Thu, 16 Jan 2020 16:03:34 +0100 Subject: [PATCH 231/271] Version changed (3.9.0 build 3175) --- Firmware/Configuration.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index e11790e35..2f2ea7d8e 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -16,8 +16,8 @@ extern uint16_t nPrinterType; extern PGM_P sPrinterName; // Firmware version -#define FW_VERSION "3.8.1" -#define FW_COMMIT_NR 2869 +#define FW_VERSION "3.9.0" +#define FW_COMMIT_NR 3175 // FW_VERSION_UNKNOWN means this is an unofficial build. // The firmware should only be checked into github with this symbol. #define FW_DEV_VERSION FW_VERSION_UNKNOWN From 67decb466d478c487dfa6192f8f8cafb787faf06 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 21 Jan 2020 16:24:19 +0100 Subject: [PATCH 232/271] Avoid another call to st_get_position_mm current_position is already filled by planner_abort_hard. --- Firmware/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 211384f9d..a3cf6440a 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10549,7 +10549,7 @@ void uvlo_() planner_abort_hard(); // Store the current extruder position. - eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION_E), st_get_position_mm(E_AXIS)); + eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION_E), current_position[E_AXIS]); eeprom_update_byte((uint8_t*)EEPROM_UVLO_E_ABS, axis_relative_modes[3]?0:1); // Clean the input command queue. cmdqueue_reset(); From e8f05d06684a6c8818b11fba334bbb36d2e8fcf5 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 21 Jan 2020 16:26:16 +0100 Subject: [PATCH 233/271] Heat both nozzle/bed together while recovering a print --- Firmware/Marlin_main.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a3cf6440a..267bbe587 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10777,10 +10777,13 @@ void recover_print(uint8_t automatic) { // Home X and Y axes. Homing just X and Y shall not touch the babystep and the world2machine transformation status. enquecommand_P(PSTR("G28 X Y")); // Set the target bed and nozzle temperatures and wait. - sprintf_P(cmd, PSTR("M109 S%d"), target_temperature[active_extruder]); + sprintf_P(cmd, PSTR("M104 S%d"), target_temperature[active_extruder]); enquecommand(cmd); sprintf_P(cmd, PSTR("M190 S%d"), target_temperature_bed); enquecommand(cmd); + sprintf_P(cmd, PSTR("M109 S%d"), target_temperature[active_extruder]); + enquecommand(cmd); + enquecommand_P(PSTR("M83")); //E axis relative mode //enquecommand_P(PSTR("G1 E5 F120")); //Extrude some filament to stabilize pessure // If not automatically recoreverd (long power loss), extrude extra filament to stabilize From 84376301228aaaa0e2f02a0ab1c960a32af9f271 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 21 Jan 2020 16:29:12 +0100 Subject: [PATCH 234/271] Inhibit serial processing in uvlo_ Do not process serial commands when re-enabling the global isr. While printing via USB and a power panic is triggered, *any* extra command should be ignored. Abuse the "saved_printing" variable to inhibit serial processing. --- Firmware/Marlin_main.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 267bbe587..9777aa269 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10551,15 +10551,18 @@ void uvlo_() // Store the current extruder position. eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION_E), current_position[E_AXIS]); eeprom_update_byte((uint8_t*)EEPROM_UVLO_E_ABS, axis_relative_modes[3]?0:1); - // Clean the input command queue. + + // Clean the input command queue, inhibit serial processing using saved_printing cmdqueue_reset(); card.sdprinting = false; -// card.closefile(); - // Enable stepper driver interrupt to move Z axis. - // This should be fine as the planner and command queues are empty and the SD card printing is disabled. - //FIXME one may want to disable serial lines at this point of time to avoid interfering with the command queue, - // though it should not happen that the command queue is touched as the plan_buffer_line always succeed without blocking. - sei(); +// card.closefile(); + saved_printing = true; + + // Enable stepper driver interrupt to move Z axis. This should be fine as the planner and + // command queues are empty, SD card printing is disabled, usb is inhibited. + sei(); + + // retract plan_buffer_line( current_position[X_AXIS], current_position[Y_AXIS], From 9ac80f73f2cc4d1d206c370ebef7bf74526137d6 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 21 Jan 2020 16:34:09 +0100 Subject: [PATCH 235/271] Remove an useless/duplicate Z move Likely a result of a merge --- Firmware/Marlin_main.cpp | 37 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 9777aa269..674fff8dd 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10563,37 +10563,26 @@ void uvlo_() sei(); // retract - plan_buffer_line( - current_position[X_AXIS], - current_position[Y_AXIS], - current_position[Z_AXIS], - current_position[E_AXIS] - default_retraction, - 95, active_extruder); - - st_synchronize(); - disable_e0(); - - plan_buffer_line( - current_position[X_AXIS], - current_position[Y_AXIS], - current_position[Z_AXIS] + UVLO_Z_AXIS_SHIFT + float((1024 - z_microsteps + 7) >> 4) / cs.axis_steps_per_unit[Z_AXIS], - current_position[E_AXIS] - default_retraction, - 40, active_extruder); + plan_buffer_line(current_position[X_AXIS], + current_position[Y_AXIS], + current_position[Z_AXIS], + current_position[E_AXIS] - default_retraction, + 95, active_extruder); st_synchronize(); disable_e0(); - plan_buffer_line( - current_position[X_AXIS], - current_position[Y_AXIS], - current_position[Z_AXIS] + UVLO_Z_AXIS_SHIFT + float((1024 - z_microsteps + 7) >> 4) / cs.axis_steps_per_unit[Z_AXIS], - current_position[E_AXIS] - default_retraction, - 40, active_extruder); + // Move Z up and to the next 0th full step. + plan_buffer_line(current_position[X_AXIS], + current_position[Y_AXIS], + current_position[Z_AXIS] + UVLO_Z_AXIS_SHIFT + float((1024 - z_microsteps + 7) >> 4) / cs.axis_steps_per_unit[Z_AXIS], + current_position[E_AXIS] - default_retraction, + 40, active_extruder); st_synchronize(); + disable_z(); - disable_e0(); - // Move Z up to the next 0th full step. // Write the file position. eeprom_update_dword((uint32_t*)(EEPROM_FILE_POSITION), sd_position); + // Store the mesh bed leveling offsets. This is 2*7*7=98 bytes, which takes 98*3.4us=333us in worst case. for (int8_t mesh_point = 0; mesh_point < MESH_NUM_X_POINTS * MESH_NUM_Y_POINTS; ++ mesh_point) { uint8_t ix = mesh_point % MESH_NUM_X_POINTS; // from 0 to MESH_NUM_X_POINTS - 1 From 4c8f1e8b892f335ec14b39244e26ed3e53e01753 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 21 Jan 2020 16:36:34 +0100 Subject: [PATCH 236/271] Use eeprom_update_word instead of EEPROM_save_B --- Firmware/Marlin_main.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 674fff8dd..eb7a179ff 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10509,7 +10509,6 @@ void uvlo_() tmc2130_set_current_r(E_AXIS, 20); #endif //TMC2130 - // Indicate that the interrupt has been triggered. // SERIAL_ECHOLNPGM("UVLO"); @@ -10591,17 +10590,19 @@ void uvlo_() int16_t v = mbl.active ? int16_t(floor(mbl.z_values[iy][ix] * 1000.f + 0.5f)) : 0; eeprom_update_word((uint16_t*)(EEPROM_UVLO_MESH_BED_LEVELING_FULL +2*mesh_point), *reinterpret_cast(&v)); } - // Read out the current Z motor microstep counter. This will be later used + + // Write the current Z motor microstep counter. This will be later used // for reaching the zero full step before powering off. eeprom_update_word((uint16_t*)(EEPROM_UVLO_Z_MICROSTEPS), z_microsteps); - // Store the current position. + // Store the current position. eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 0), current_position[X_AXIS]); eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4), current_position[Y_AXIS]); eeprom_update_float((float*)EEPROM_UVLO_CURRENT_POSITION_Z , current_position[Z_AXIS]); + // Store the current feed rate, temperatures, fan speed and extruder multipliers (flow rates) eeprom_update_word((uint16_t*)EEPROM_UVLO_FEEDRATE, feedrate_bckp); - EEPROM_save_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply); + eeprom_update_word((uint16_t*)EEPROM_UVLO_FEEDMULTIPLY, feedmultiply); eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND, target_temperature[active_extruder]); eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_BED, target_temperature_bed); eeprom_update_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED, fanSpeed); @@ -10897,7 +10898,7 @@ void restore_print_from_eeprom() { fan_speed_rec = eeprom_read_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED); feedrate_rec = eeprom_read_word((uint16_t*)EEPROM_UVLO_FEEDRATE); - EEPROM_read_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply_rec); + feedmultiply_rec = eeprom_read_word((uint16_t*)EEPROM_UVLO_FEEDMULTIPLY); SERIAL_ECHOPGM("Feedrate:"); MYSERIAL.print(feedrate_rec); SERIAL_ECHOPGM(", feedmultiply:"); From 7f3d4a8491acabbbb139a41e4c5bff7e4dad9d3f Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 21 Jan 2020 16:39:39 +0100 Subject: [PATCH 237/271] Restore the last E axis position correctly after powerpanic - Initially restore the last E position from the eeprom in any case, not just when using absolute mode (although unnecessary: since it will be reset later), fixing a possible unitialized position and crash during recovery (thanks to @leptun) - Remove useless extra calls to put the extruder in relative mode: the extruder already starts in relative mode and is later switched to absolute. - Replace incorrect calls to STRINGIFY with sprintf_P - Retract after pressure has been restored in uvlo_tiny, to be consistent with a regular uvlo (remove the bogus double unretract as a result). - Set the real E position prior to the panic *after* the retraction, using the now-fixed G92. --- Firmware/Marlin_main.cpp | 41 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index eb7a179ff..61ab10310 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10778,12 +10778,15 @@ void recover_print(uint8_t automatic) { enquecommand(cmd); enquecommand_P(PSTR("M83")); //E axis relative mode - //enquecommand_P(PSTR("G1 E5 F120")); //Extrude some filament to stabilize pessure - // If not automatically recoreverd (long power loss), extrude extra filament to stabilize - if(automatic == 0){ - enquecommand_P(PSTR("G1 E5 F120")); //Extrude some filament to stabilize pessure - } - enquecommand_P(PSTR("G1 E" STRINGIFY(-default_retraction)" F480")); + + // If not automatically recoreverd (long power loss) + if(automatic == 0){ + //Extrude some filament to stabilize the pressure + enquecommand_P(PSTR("G1 E5 F120")); + // Retract to be consistent with a short pause + sprintf_P(cmd, PSTR("G1 E%-0.3f F2700"), default_retraction); + enquecommand(cmd); + } printf_P(_N("After waiting for temp:\nCurrent pos X_AXIS:%.3f\nCurrent pos Y_AXIS:%.3f\n"), current_position[X_AXIS], current_position[Y_AXIS]); @@ -10794,7 +10797,6 @@ void recover_print(uint8_t automatic) { void recover_machine_state_after_power_panic(bool bTiny) { - char cmd[30]; // 1) Recover the logical cordinates at the time of the power panic. // The logical XY coordinates are needed to recover the machine Z coordinate corrected by the mesh bed leveling. current_position[X_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 0)); @@ -10829,12 +10831,9 @@ void recover_machine_state_after_power_panic(bool bTiny) UVLO_Z_AXIS_SHIFT + float((1024 - eeprom_read_word((uint16_t*)(EEPROM_UVLO_Z_MICROSTEPS)) + 7) >> 4) / cs.axis_steps_per_unit[Z_AXIS]; } - if (eeprom_read_byte((uint8_t*)EEPROM_UVLO_E_ABS)) { - current_position[E_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION_E)); - sprintf_P(cmd, PSTR("G92 E")); - dtostrf(current_position[E_AXIS], 6, 3, cmd + strlen(cmd)); - enquecommand(cmd); - } + + // Recover last E axis position + current_position[E_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION_E)); memcpy(destination, current_position, sizeof(destination)); @@ -10929,8 +10928,6 @@ void restore_print_from_eeprom() { uint32_t position = eeprom_read_dword((uint32_t*)(EEPROM_FILE_POSITION)); SERIAL_ECHOPGM("Position read from eeprom:"); MYSERIAL.println(position); - // E axis relative mode. - enquecommand_P(PSTR("M83")); // Move to the XY print position in logical coordinates, where the print has been killed. strcpy_P(cmd, PSTR("G1 X")); strcat(cmd, ftostr32(eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 0)))); strcat_P(cmd, PSTR(" Y")); strcat(cmd, ftostr32(eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4)))); @@ -10942,16 +10939,20 @@ void restore_print_from_eeprom() { strcpy_P(cmd, PSTR("G1 Z")); strcat(cmd, ftostr32(eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION_Z)))); enquecommand(cmd); // Unretract. - enquecommand_P(PSTR("G1 E" STRINGIFY(2*default_retraction)" F480")); + sprintf_P(cmd, PSTR("G1 E%0.3f F2700"), default_retraction); + enquecommand(cmd); + // Recover final E axis position and mode + float pos_e = eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION_E)); + sprintf_P(cmd, PSTR("G92 E")); + dtostrf(pos_e, 6, 3, cmd + strlen(cmd)); + enquecommand(cmd); + if (eeprom_read_byte((uint8_t*)EEPROM_UVLO_E_ABS)) + enquecommand_P(PSTR("M82")); //E axis abslute mode // Set the feedrates saved at the power panic. sprintf_P(cmd, PSTR("G1 F%d"), feedrate_rec); enquecommand(cmd); sprintf_P(cmd, PSTR("M220 S%d"), feedmultiply_rec); enquecommand(cmd); - if (eeprom_read_byte((uint8_t*)EEPROM_UVLO_E_ABS)) - { - enquecommand_P(PSTR("M82")); //E axis abslute mode - } // Set the fan speed saved at the power panic. strcpy_P(cmd, PSTR("M106 S")); strcat(cmd, itostr3(int(fan_speed_rec))); From 73527d6069c5a4b6d75d8150887640c0ec2f4f6f Mon Sep 17 00:00:00 2001 From: MRprusa3d Date: Wed, 22 Jan 2020 04:45:13 +0100 Subject: [PATCH 238/271] selfTest workflow optimalization --- Firmware/ultralcd.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5d291f35c..38471b814 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -7541,26 +7541,24 @@ bool lcd_selftest() int _progress = 0; bool _result = true; bool _swapped_fan = false; +#if IR_SENSOR_ANALOG + bool bAction; + bAction=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament unloaded?"),false,true); + if(!bAction) + return(false); +#endif //IR_SENSOR_ANALOG lcd_wait_for_cool_down(); lcd_clear(); lcd_set_cursor(0, 0); lcd_puts_P(_i("Self test start "));////MSG_SELFTEST_START c=20 #ifdef TMC2130 FORCE_HIGH_POWER_START; #endif // TMC2130 -#if !IR_SENSOR_ANALOG _delay(2000); -#endif //!IR_SENSOR_ANALOG FORCE_BL_ON_START; _delay(2000); KEEPALIVE_STATE(IN_HANDLER); -#if IR_SENSOR_ANALOG - bool bAction; - bAction=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is filament unloaded?"),false,true); - if(!bAction) - return(false); -#endif //IR_SENSOR_ANALOG _progress = lcd_selftest_screen(TestScreen::ExtruderFan, _progress, 3, true, 2000); #if (defined(FANCHECK) && defined(TACH_0)) From 4055977a95fde87d7d78763e02c5838e9c48bbf0 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Sat, 25 Jan 2020 11:41:27 +0200 Subject: [PATCH 239/271] Do not clear axis known position when Z is set to silent Also removed unused (forgotten) variable. --- Firmware/Marlin_main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 211384f9d..70cbd6d7a 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -11563,7 +11563,7 @@ if(!(bEnableForce_z||eeprom_read_byte((uint8_t*)EEPROM_SILENT))) void disable_force_z() { - uint16_t z_microsteps=0; + // uint16_t z_microsteps=0; if(!bEnableForce_z) return; // motor already disabled (may be ;-p ) @@ -11576,7 +11576,7 @@ void disable_force_z() tmc2130_init(true); #endif // TMC2130 - axis_known_position[Z_AXIS]=false; + // axis_known_position[Z_AXIS]=false; } From 53101819701f010cb215e5b50cbfb026084fa870 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 22 Jan 2020 19:39:55 +0100 Subject: [PATCH 240/271] Cancel a recovering print when using the LCD "Stop" Also clear the UVLO flag when using lcd_print_stop. This prevents an aborted print which has been cancelled while unparking (just prior to recover) to come back again at the next startup. --- Firmware/Marlin_main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 61ab10310..67b85b94d 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -11249,6 +11249,7 @@ void restore_print_from_ram_and_continue(float e_move) // Cancel the state related to a currently saved print void cancel_saved_printing() { + eeprom_update_byte((uint8_t*)EEPROM_UVLO, 0); saved_target[0] = SAVED_TARGET_UNSET; saved_printing_type = PRINTING_TYPE_NONE; saved_printing = false; From ec8b5aaa341cbfd02bf952ba16f36a50a902e816 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Jan 2020 14:01:18 +0100 Subject: [PATCH 241/271] Do not attempt to "zero-phase" the microstep counter If the motors are off-phase, this is more likely to "bump" them to an incorrect/reverse full-step, doing worse. We need to ensure the motors are already positioned on a fullstep during power panic instead. Remove the PSU_DELTA exception: Z _always_ needs to be powered here. --- Firmware/Marlin_main.cpp | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 67b85b94d..f5bccffe0 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1327,29 +1327,12 @@ void setup() SET_OUTPUT(CONTROLLERFAN_PIN); //Set pin used for driver cooling fan #endif - setup_homepin(); -#ifdef TMC2130 - - if (1) { - // try to run to zero phase before powering the Z motor. - // Move in negative direction - WRITE(Z_DIR_PIN,INVERT_Z_DIR); - // Round the current micro-micro steps to micro steps. - for (uint16_t phase = (tmc2130_rd_MSCNT(Z_AXIS) + 8) >> 4; phase > 0; -- phase) { - // Until the phase counter is reset to zero. - WRITE(Z_STEP_PIN, !INVERT_Z_STEP_PIN); - _delay(2); - WRITE(Z_STEP_PIN, INVERT_Z_STEP_PIN); - _delay(2); - } - } -#endif //TMC2130 - -#if defined(Z_AXIS_ALWAYS_ON) && !defined(PSU_Delta) - enable_z(); +#if defined(Z_AXIS_ALWAYS_ON) + enable_z(); #endif + farm_mode = eeprom_read_byte((uint8_t*)EEPROM_FARM_MODE); EEPROM_read_B(EEPROM_FARM_NUMBER, &farm_no); if ((farm_mode == 0xFF && farm_no == 0) || (farm_no == static_cast(0xFFFF))) farm_mode = false; //if farm_mode has not been stored to eeprom yet and farm number is set to zero or EEPROM is fresh, deactivate farm mode From ec5cbf73b90070fa9ce58cfc9628dd72f8cb03ea Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Jan 2020 14:24:53 +0100 Subject: [PATCH 242/271] During PP keep the watchdog waiting for longer When the printer is connected to a USB host during a PP (and the host does not lose power), the rambo can linger for longer, sometimes for long enough to recover the print state. Drain some more power. --- Firmware/Marlin_main.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index f5bccffe0..b3b0376ca 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10625,10 +10625,11 @@ void uvlo_() plan_buffer_line_curposXYZE(500, active_extruder); st_synchronize(); #endif -wdt_enable(WDTO_500MS); -WRITE(BEEPER,HIGH); -while(1) - ; + + // burn all that residual power + wdt_enable(WDTO_1S); + WRITE(BEEPER,HIGH); + while(1); } @@ -10672,10 +10673,10 @@ eeprom_update_byte((uint8_t*)EEPROM_UVLO,2); // Increment power failure counter eeprom_update_byte((uint8_t*)EEPROM_POWER_COUNT, eeprom_read_byte((uint8_t*)EEPROM_POWER_COUNT) + 1); eeprom_update_word((uint16_t*)EEPROM_POWER_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_POWER_COUNT_TOT) + 1); -wdt_enable(WDTO_500MS); -WRITE(BEEPER,HIGH); -while(1) - ; + // burn all that residual power + wdt_enable(WDTO_1S); + WRITE(BEEPER,HIGH); + while(1); } #endif //UVLO_SUPPORT From 0702e0de6e1cc22a3c8af6d0d40f35e23564a2b6 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Jan 2020 17:12:27 +0100 Subject: [PATCH 243/271] Use world2machine instead of repeating code --- Firmware/planner.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 8c26cef9b..197b3d9f9 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1345,14 +1345,7 @@ void plan_set_position(float x, float y, float z, const float &e) apply_rotation_xyz(plan_bed_level_matrix, x, y, z); #endif // ENABLE_AUTO_BED_LEVELING - // Apply the machine correction matrix. - if (world2machine_correction_mode != WORLD2MACHINE_CORRECTION_NONE) - { - float tmpx = x; - float tmpy = y; - x = world2machine_rotation_and_skew[0][0] * tmpx + world2machine_rotation_and_skew[0][1] * tmpy + world2machine_shift[0]; - y = world2machine_rotation_and_skew[1][0] * tmpx + world2machine_rotation_and_skew[1][1] * tmpy + world2machine_shift[1]; - } + world2machine(x, y); position[X_AXIS] = lround(x*cs.axis_steps_per_unit[X_AXIS]); position[Y_AXIS] = lround(y*cs.axis_steps_per_unit[Y_AXIS]); From 11a0e95f60313f6162d6b94e0d0cc31395aeb825 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Jan 2020 17:16:15 +0100 Subject: [PATCH 244/271] Re-enable the code that moves the extruder during PP There is frequently plenty of power left during a PP. Take advantage of it by moving the extruder to either side of the axis to detach completely the nozzle from the print. Re-enable Z during this move to avoid losing the current step. --- Firmware/Marlin_main.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index b3b0376ca..3fdff1a91 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10617,18 +10617,17 @@ void uvlo_() // Increment power failure counter eeprom_update_byte((uint8_t*)EEPROM_POWER_COUNT, eeprom_read_byte((uint8_t*)EEPROM_POWER_COUNT) + 1); eeprom_update_word((uint16_t*)EEPROM_POWER_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_POWER_COUNT_TOT) + 1); - printf_P(_N("UVLO - end %d\n"), _millis() - time_start); -#if 0 - // Move the print head to the side of the print until all the power stored in the power supply capacitors is depleted. + printf_P(_N("UVLO - end %d\n"), _millis() - time_start); + WRITE(BEEPER,HIGH); + + // All is set: with all the juice left, try to move extruder away to detach the nozzle completely from the print + enable_z(); current_position[X_AXIS] = (current_position[X_AXIS] < 0.5f * (X_MIN_POS + X_MAX_POS)) ? X_MIN_POS : X_MAX_POS; plan_buffer_line_curposXYZE(500, active_extruder); st_synchronize(); -#endif - // burn all that residual power wdt_enable(WDTO_1S); - WRITE(BEEPER,HIGH); while(1); } From eb2ca78167fbec4ded3731a00f9cad921adbea39 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 26 Jan 2020 17:35:50 +0100 Subject: [PATCH 245/271] Rewrite uvlo handling for accurate Z re/positioning - In both uvlo_ and uvlo_tiny, calculate Z usteps properly and adjust the Z position to a true fullstep before disabling the motor. This avoids shifs during recovery. - In uvlo_tiny, instead of moving up indefinitely, adjust Z just once using the smallest move possible (new def UVLO_TINY_Z_AXIS_SHIFT) - Perform all the uvlo/recovery processing in physical coordinates and MBL off: there should be no automatic Z movement! - Disable heaters in both handlers to conserve more power. - Add timing information to uvlo_tiny too. - During recovery, to switch between physical and logical positioning introduce a new "PRUSA MBL" gcode as most of the procedure is enqueued, and no existing gcode was available. --- Firmware/Marlin.h | 5 +- Firmware/Marlin_main.cpp | 256 ++++++++++-------- Firmware/eeprom.h | 4 +- .../variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 4 + .../variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 6 +- 5 files changed, 158 insertions(+), 117 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 19e5df57b..58b3351de 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -445,9 +445,8 @@ void setup_uvlo_interrupt(); void setup_fan_interrupt(); #endif -//extern void recover_machine_state_after_power_panic(); -extern void recover_machine_state_after_power_panic(bool bTiny); -extern void restore_print_from_eeprom(); +extern bool recover_machine_state_after_power_panic(); +extern void restore_print_from_eeprom(bool mbl_was_active); extern void position_menu(); extern void print_world_coordinates(); diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 3fdff1a91..c2439d743 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3838,6 +3838,17 @@ void process_commands() } else if(code_seen("FR")) { // PRUSA FR // Factory full reset factory_reset(0); + } else if(code_seen("MBL")) { // PRUSA MBL + // Change the MBL status without changing the logical Z position. + if(code_seen("V")) { + bool value = code_value_short(); + st_synchronize(); + if(value != mbl.active) { + mbl.active = value; + // Use plan_set_z_position to reset the physical values + plan_set_z_position(current_position[Z_AXIS]); + } + } //-// /* @@ -10492,15 +10503,11 @@ void uvlo_() tmc2130_set_current_r(E_AXIS, 20); #endif //TMC2130 - // Indicate that the interrupt has been triggered. - // SERIAL_ECHOLNPGM("UVLO"); - - // Read out the current Z motor microstep counter. This will be later used - // for reaching the zero full step before powering off. - uint16_t z_microsteps = 0; -#ifdef TMC2130 - z_microsteps = tmc2130_rd_MSCNT(Z_TMC2130_CS); -#endif //TMC2130 + // Stop all heaters + uint8_t saved_target_temperature_bed = target_temperature_bed; + uint8_t saved_target_temperature_ext = target_temperature[active_extruder]; + setAllTargetHotends(0); + setTargetBed(0); // Calculate the file position, from which to resume this print. long sd_position = sdpos_atomic; //atomic sd position of last command added in queue @@ -10525,40 +10532,52 @@ void uvlo_() feedrate_bckp = feedrate; } + // From this point on and up to the print recovery, Z should not move during X/Y travels and + // should be controlled precisely. Reset the MBL status before planner_abort_hard in order to + // get the physical Z for further manipulation. + bool mbl_was_active = mbl.active; + mbl.active = false; + // After this call, the planner queue is emptied and the current_position is set to a current logical coordinate. // The logical coordinate will likely differ from the machine coordinate if the skew calibration and mesh bed leveling // are in action. planner_abort_hard(); - // Store the current extruder position. + // Store the print logical Z position, which we need to recover (a slight error here would be + // recovered on the next Gcode instruction, while a physical location error would not) + float logical_z = current_position[Z_AXIS]; + if(mbl_was_active) logical_z -= mbl.get_z(st_get_position_mm(X_AXIS), st_get_position_mm(Y_AXIS)); + eeprom_update_float((float*)EEPROM_UVLO_CURRENT_POSITION_Z, logical_z); + + // Store the print E position before we lose track eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION_E), current_position[E_AXIS]); eeprom_update_byte((uint8_t*)EEPROM_UVLO_E_ABS, axis_relative_modes[3]?0:1); // Clean the input command queue, inhibit serial processing using saved_printing cmdqueue_reset(); card.sdprinting = false; -// card.closefile(); saved_printing = true; // Enable stepper driver interrupt to move Z axis. This should be fine as the planner and // command queues are empty, SD card printing is disabled, usb is inhibited. sei(); - // retract - plan_buffer_line(current_position[X_AXIS], - current_position[Y_AXIS], - current_position[Z_AXIS], - current_position[E_AXIS] - default_retraction, - 95, active_extruder); + // Retract + current_position[E_AXIS] -= default_retraction; + plan_buffer_line_curposXYZE(95, active_extruder); st_synchronize(); disable_e0(); - // Move Z up and to the next 0th full step. - plan_buffer_line(current_position[X_AXIS], - current_position[Y_AXIS], - current_position[Z_AXIS] + UVLO_Z_AXIS_SHIFT + float((1024 - z_microsteps + 7) >> 4) / cs.axis_steps_per_unit[Z_AXIS], - current_position[E_AXIS] - default_retraction, - 40, active_extruder); + // Read out the current Z motor microstep counter to move the axis up towards + // a full step before powering off. NOTE: we need to ensure to schedule more + // than "dropsegments" steps in order to move (this is always the case here + // due to UVLO_Z_AXIS_SHIFT being used) + uint16_t z_res = tmc2130_get_res(Z_AXIS); + uint16_t z_microsteps = tmc2130_rd_MSCNT(Z_AXIS); + current_position[Z_AXIS] += float(1024 - z_microsteps) + / (z_res * cs.axis_steps_per_unit[Z_AXIS]) + + UVLO_Z_AXIS_SHIFT; + plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS]/60, active_extruder); st_synchronize(); disable_z(); @@ -10570,24 +10589,24 @@ void uvlo_() uint8_t ix = mesh_point % MESH_NUM_X_POINTS; // from 0 to MESH_NUM_X_POINTS - 1 uint8_t iy = mesh_point / MESH_NUM_X_POINTS; // Scale the z value to 1u resolution. - int16_t v = mbl.active ? int16_t(floor(mbl.z_values[iy][ix] * 1000.f + 0.5f)) : 0; + int16_t v = mbl_was_active ? int16_t(floor(mbl.z_values[iy][ix] * 1000.f + 0.5f)) : 0; eeprom_update_word((uint16_t*)(EEPROM_UVLO_MESH_BED_LEVELING_FULL +2*mesh_point), *reinterpret_cast(&v)); } - // Write the current Z motor microstep counter. This will be later used - // for reaching the zero full step before powering off. + // Write the _final_ Z position and motor microstep counter (unused). + eeprom_update_float((float*)EEPROM_UVLO_TINY_CURRENT_POSITION_Z, current_position[Z_AXIS]); + z_microsteps = tmc2130_rd_MSCNT(Z_AXIS); eeprom_update_word((uint16_t*)(EEPROM_UVLO_Z_MICROSTEPS), z_microsteps); // Store the current position. eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 0), current_position[X_AXIS]); eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4), current_position[Y_AXIS]); - eeprom_update_float((float*)EEPROM_UVLO_CURRENT_POSITION_Z , current_position[Z_AXIS]); // Store the current feed rate, temperatures, fan speed and extruder multipliers (flow rates) eeprom_update_word((uint16_t*)EEPROM_UVLO_FEEDRATE, feedrate_bckp); eeprom_update_word((uint16_t*)EEPROM_UVLO_FEEDMULTIPLY, feedmultiply); - eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND, target_temperature[active_extruder]); - eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_BED, target_temperature_bed); + eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND, saved_target_temperature_ext); + eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_BED, saved_target_temperature_bed); eeprom_update_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED, fanSpeed); eeprom_update_float((float*)(EEPROM_EXTRUDER_MULTIPLIER_0), extruder_multiplier[0]); #if EXTRUDERS > 1 @@ -10611,9 +10630,6 @@ void uvlo_() // Finaly store the "power outage" flag. if(sd_print) eeprom_update_byte((uint8_t*)EEPROM_UVLO, 1); - st_synchronize(); - printf_P(_N("stps%d\n"), tmc2130_rd_MSCNT(Z_AXIS)); - // Increment power failure counter eeprom_update_byte((uint8_t*)EEPROM_POWER_COUNT, eeprom_read_byte((uint8_t*)EEPROM_POWER_COUNT) + 1); eeprom_update_word((uint16_t*)EEPROM_POWER_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_POWER_COUNT_TOT) + 1); @@ -10634,44 +10650,68 @@ void uvlo_() void uvlo_tiny() { -uint16_t z_microsteps=0; + unsigned long time_start = _millis(); + + // Conserve power as soon as possible. + disable_x(); + disable_y(); + disable_e0(); -// Conserve power as soon as possible. -disable_x(); -disable_y(); -disable_e0(); - #ifdef TMC2130 -tmc2130_set_current_h(Z_AXIS, 20); -tmc2130_set_current_r(Z_AXIS, 20); + tmc2130_set_current_h(Z_AXIS, 20); + tmc2130_set_current_r(Z_AXIS, 20); #endif //TMC2130 -// Read out the current Z motor microstep counter -#ifdef TMC2130 -z_microsteps=tmc2130_rd_MSCNT(Z_TMC2130_CS); -#endif //TMC2130 -planner_abort_hard(); + // Stop all heaters + setAllTargetHotends(0); + setTargetBed(0); -//save current position only in case, where the printer is moving on Z axis, which is only when EEPROM_UVLO is 1 -//EEPROM_UVLO is 1 after normal uvlo or after recover_print(), when the extruder is moving on Z axis after rehome -if(eeprom_read_byte((uint8_t*)EEPROM_UVLO)!=2){ - eeprom_update_float((float*)(EEPROM_UVLO_TINY_CURRENT_POSITION_Z), current_position[Z_AXIS]); - eeprom_update_word((uint16_t*)(EEPROM_UVLO_TINY_Z_MICROSTEPS),z_microsteps); -} + // When power is interrupted on the _first_ recovery an attempt can be made to raise the + // extruder, causing the Z position to change. Similarly, when recovering, the Z position is + // lowered. In such cases we cannot just save Z, we need to re-align the steppers to a fullstep. + // Disable MBL (if not already) to work with physical coordinates. + mbl.active = false; + planner_abort_hard(); -//after multiple power panics current Z axis is unknow -//in this case we set EEPROM_UVLO_TINY_CURRENT_POSITION_Z to last know position which is EEPROM_UVLO_CURRENT_POSITION_Z -if(eeprom_read_float((float*)EEPROM_UVLO_TINY_CURRENT_POSITION_Z) < 0.001f){ - eeprom_update_float((float*)(EEPROM_UVLO_TINY_CURRENT_POSITION_Z), eeprom_read_float((float*)EEPROM_UVLO_CURRENT_POSITION_Z)); - eeprom_update_word((uint16_t*)(EEPROM_UVLO_TINY_Z_MICROSTEPS), eeprom_read_word((uint16_t*)EEPROM_UVLO_Z_MICROSTEPS)); -} + // Allow for small roundoffs to be ignored + if(abs(current_position[Z_AXIS] - eeprom_read_float((float*)(EEPROM_UVLO_TINY_CURRENT_POSITION_Z))) >= 1.f/cs.axis_steps_per_unit[Z_AXIS]) + { + // Clean the input command queue, inhibit serial processing using saved_printing + cmdqueue_reset(); + card.sdprinting = false; + saved_printing = true; -// Finaly store the "power outage" flag. -eeprom_update_byte((uint8_t*)EEPROM_UVLO,2); + // Enable stepper driver interrupt to move Z axis. This should be fine as the planner and + // command queues are empty, SD card printing is disabled, usb is inhibited. + sei(); + + // The axis was moved: adjust Z as done on a regular UVLO. + uint16_t z_res = tmc2130_get_res(Z_AXIS); + uint16_t z_microsteps = tmc2130_rd_MSCNT(Z_AXIS); + current_position[Z_AXIS] += float(1024 - z_microsteps) + / (z_res * cs.axis_steps_per_unit[Z_AXIS]) + + UVLO_TINY_Z_AXIS_SHIFT; + plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS]/60, active_extruder); + st_synchronize(); + disable_z(); + + // Update Z position + eeprom_update_float((float*)(EEPROM_UVLO_TINY_CURRENT_POSITION_Z), current_position[Z_AXIS]); + + // Update the _final_ Z motor microstep counter (unused). + z_microsteps = tmc2130_rd_MSCNT(Z_AXIS); + eeprom_update_word((uint16_t*)(EEPROM_UVLO_Z_MICROSTEPS), z_microsteps); + } + + // Update the the "power outage" flag. + eeprom_update_byte((uint8_t*)EEPROM_UVLO,2); + + // Increment power failure counter + eeprom_update_byte((uint8_t*)EEPROM_POWER_COUNT, eeprom_read_byte((uint8_t*)EEPROM_POWER_COUNT) + 1); + eeprom_update_word((uint16_t*)EEPROM_POWER_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_POWER_COUNT_TOT) + 1); + + printf_P(_N("UVLO_TINY - end %d\n"), _millis() - time_start); -// Increment power failure counter -eeprom_update_byte((uint8_t*)EEPROM_POWER_COUNT, eeprom_read_byte((uint8_t*)EEPROM_POWER_COUNT) + 1); -eeprom_update_word((uint16_t*)EEPROM_POWER_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_POWER_COUNT_TOT) + 1); // burn all that residual power wdt_enable(WDTO_1S); WRITE(BEEPER,HIGH); @@ -10744,13 +10784,16 @@ void recover_print(uint8_t automatic) { lcd_update(2); lcd_setstatuspgm(_i("Recovering print "));////MSG_RECOVERING_PRINT c=20 r=1 - bool bTiny=(eeprom_read_byte((uint8_t*)EEPROM_UVLO)==2); - recover_machine_state_after_power_panic(bTiny); //recover position, temperatures and extrude_multipliers - // Lift the print head, so one may remove the excess priming material. - if(!bTiny&&(current_position[Z_AXIS]<25)) - enquecommand_P(PSTR("G1 Z25 F800")); + // Recover position, temperatures and extrude_multipliers + bool mbl_was_active = recover_machine_state_after_power_panic(); - // Home X and Y axes. Homing just X and Y shall not touch the babystep and the world2machine transformation status. + // Attempt to lift the print head on the first recovery, so one may remove the excess priming material. + bool raise_z = (eeprom_read_byte((uint8_t*)EEPROM_UVLO) == 1); + if(raise_z && (current_position[Z_AXIS]<25)) + enquecommand_P(PSTR("G1 Z25 F800")); + + // Home X and Y axes. Homing just X and Y shall not touch the babystep and the world2machine + // transformation status. G28 will not touch Z when MBL is off. enquecommand_P(PSTR("G28 X Y")); // Set the target bed and nozzle temperatures and wait. sprintf_P(cmd, PSTR("M104 S%d"), target_temperature[active_extruder]); @@ -10774,19 +10817,19 @@ void recover_print(uint8_t automatic) { printf_P(_N("After waiting for temp:\nCurrent pos X_AXIS:%.3f\nCurrent pos Y_AXIS:%.3f\n"), current_position[X_AXIS], current_position[Y_AXIS]); // Restart the print. - restore_print_from_eeprom(); + restore_print_from_eeprom(mbl_was_active); printf_P(_N("Current pos Z_AXIS:%.3f\nCurrent pos E_AXIS:%.3f\n"), current_position[Z_AXIS], current_position[E_AXIS]); } -void recover_machine_state_after_power_panic(bool bTiny) +bool recover_machine_state_after_power_panic() { - // 1) Recover the logical cordinates at the time of the power panic. - // The logical XY coordinates are needed to recover the machine Z coordinate corrected by the mesh bed leveling. - current_position[X_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 0)); - current_position[Y_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4)); + // 1) Preset some dummy values for the XY axes + current_position[X_AXIS] = 0; + current_position[Y_AXIS] = 0; - // 2) Restore the mesh bed leveling offsets. This is 2*7*7=98 bytes, which takes 98*3.4us=333us in worst case. - mbl.active = false; + // 2) Restore the mesh bed leveling offsets, but not the MBL status. + // This is 2*7*7=98 bytes, which takes 98*3.4us=333us in worst case. + bool mbl_was_active = false; for (int8_t mesh_point = 0; mesh_point < MESH_NUM_X_POINTS * MESH_NUM_Y_POINTS; ++ mesh_point) { uint8_t ix = mesh_point % MESH_NUM_X_POINTS; // from 0 to MESH_NUM_X_POINTS - 1 uint8_t iy = mesh_point / MESH_NUM_X_POINTS; @@ -10794,26 +10837,13 @@ void recover_machine_state_after_power_panic(bool bTiny) int16_t v; eeprom_read_block(&v, (void*)(EEPROM_UVLO_MESH_BED_LEVELING_FULL+2*mesh_point), 2); if (v != 0) - mbl.active = true; + mbl_was_active = true; mbl.z_values[iy][ix] = float(v) * 0.001f; } - // Recover the logical coordinate of the Z axis at the time of the power panic. + // Recover the physical coordinate of the Z axis at the time of the power panic. // The current position after power panic is moved to the next closest 0th full step. - if(bTiny){ - current_position[Z_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_TINY_CURRENT_POSITION_Z)) - + float((1024 - eeprom_read_word((uint16_t*)(EEPROM_UVLO_TINY_Z_MICROSTEPS)) - + 7) >> 4) / cs.axis_steps_per_unit[Z_AXIS]; - - //after multiple power panics the print is slightly in the air so get it little bit down. - //Not exactly sure why is this happening, but it has something to do with bed leveling and world2machine coordinates - current_position[Z_AXIS] -= 0.4*mbl.get_z(current_position[X_AXIS], current_position[Y_AXIS]); - } - else{ - current_position[Z_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION_Z)) + - UVLO_Z_AXIS_SHIFT + float((1024 - eeprom_read_word((uint16_t*)(EEPROM_UVLO_Z_MICROSTEPS)) - + 7) >> 4) / cs.axis_steps_per_unit[Z_AXIS]; - } + current_position[Z_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_TINY_CURRENT_POSITION_Z)); // Recover last E axis position current_position[E_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION_E)); @@ -10832,17 +10862,13 @@ void recover_machine_state_after_power_panic(bool bTiny) // The baby stepping value is used to reset the physical Z axis when rehoming the Z axis. babystep_load(); - // 5) Set the physical positions from the logical positions using the world2machine transformation and the active bed leveling. + // 5) Set the physical positions from the logical positions using the world2machine transformation + // This is only done to inizialize Z/E axes with physical locations, since X/Y are unknown. plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - // 6) Power up the motors, mark their positions as known. - //FIXME Verfiy, whether the X and Y axes should be powered up here, as they will later be re-homed anyway. - axis_known_position[X_AXIS] = true; enable_x(); - axis_known_position[Y_AXIS] = true; enable_y(); - axis_known_position[Z_AXIS] = true; enable_z(); - - SERIAL_ECHOPGM("recover_machine_state_after_power_panic, initial "); - print_physical_coordinates(); + // 6) Power up the Z motors, mark their positions as known. + axis_known_position[Z_AXIS] = true; + enable_z(); // 7) Recover the target temperatures. target_temperature[active_extruder] = eeprom_read_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND); @@ -10867,9 +10893,11 @@ void recover_machine_state_after_power_panic(bool bTiny) #ifdef LIN_ADVANCE extruder_advance_K = eeprom_read_float((float*)EEPROM_UVLO_LA_K); #endif + + return mbl_was_active; } -void restore_print_from_eeprom() { +void restore_print_from_eeprom(bool mbl_was_active) { int feedrate_rec; int feedmultiply_rec; uint8_t fan_speed_rec; @@ -10910,17 +10938,23 @@ void restore_print_from_eeprom() { enquecommand(cmd); uint32_t position = eeprom_read_dword((uint32_t*)(EEPROM_FILE_POSITION)); SERIAL_ECHOPGM("Position read from eeprom:"); - MYSERIAL.println(position); - // Move to the XY print position in logical coordinates, where the print has been killed. - strcpy_P(cmd, PSTR("G1 X")); strcat(cmd, ftostr32(eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 0)))); - strcat_P(cmd, PSTR(" Y")); strcat(cmd, ftostr32(eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4)))); - strcat_P(cmd, PSTR(" F2000")); + MYSERIAL.println(position); + + // Move to the XY print position in logical coordinates, where the print has been killed, but + // without shifting Z along the way. This requires performing the move without mbl. + sprintf_P(cmd, PSTR("G1 X%f Y%f F2000"), + eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 0)), + eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4))); enquecommand(cmd); - //moving on Z axis ahead, set EEPROM_UVLO to 1, so normal uvlo can fire - eeprom_update_byte((uint8_t*)EEPROM_UVLO,1); - // Move the Z axis down to the print, in logical coordinates. - strcpy_P(cmd, PSTR("G1 Z")); strcat(cmd, ftostr32(eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION_Z)))); + + // Enable MBL and switch to logical positioning + if (mbl_was_active) + enquecommand_P(PSTR("PRUSA MBL V1")); + + // Move the Z axis down to the print, in logical coordinates. + sprintf_P(cmd, PSTR("G1 Z%f"), eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION_Z))); enquecommand(cmd); + // Unretract. sprintf_P(cmd, PSTR("G1 E%0.3f F2700"), default_retraction); enquecommand(cmd); diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 5a9d7d813..c50dc94e5 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -79,7 +79,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP #define EEPROM_FAN_CHECK_ENABLED (EEPROM_UVLO_FAN_SPEED - 1) #define EEPROM_UVLO_MESH_BED_LEVELING (EEPROM_FAN_CHECK_ENABLED - 9*2) -#define EEPROM_UVLO_Z_MICROSTEPS (EEPROM_UVLO_MESH_BED_LEVELING - 2) +#define EEPROM_UVLO_Z_MICROSTEPS (EEPROM_UVLO_MESH_BED_LEVELING - 2) // uint16_t (could be removed) #define EEPROM_UVLO_E_ABS (EEPROM_UVLO_Z_MICROSTEPS - 1) #define EEPROM_UVLO_CURRENT_POSITION_E (EEPROM_UVLO_E_ABS - 4) //float for current position in E @@ -167,7 +167,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP // #define EEPROM_UVLO_TINY_CURRENT_POSITION_Z (EEPROM_EXTRUDEMULTIPLY-4) // float -#define EEPROM_UVLO_TINY_Z_MICROSTEPS (EEPROM_UVLO_TINY_CURRENT_POSITION_Z-2) // uint16 +#define EEPROM_UVLO_TINY_Z_MICROSTEPS (EEPROM_UVLO_TINY_CURRENT_POSITION_Z-2) // uint16 (unused) // Sound Mode //#define EEPROM_SOUND_MODE (EEPROM_EXTRUDEMULTIPLY-1) // uint8 diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index 400d098ff..53bfb4bf9 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -618,6 +618,10 @@ // The following example, 12 * (4 * 16 / 400) = 12 * 0.16mm = 1.92mm. //#define UVLO_Z_AXIS_SHIFT 1.92 #define UVLO_Z_AXIS_SHIFT 0.64 +// When powered off during PP recovery, the Z axis position can still be re-adjusted. In this case +// we just need to shift to the nearest fullstep, but we need a move which is at least +// "dropsegments" steps long. All the above rules still need to apply. +#define UVLO_TINY_Z_AXIS_SHIFT 0.16 // If power panic occured, and the current temperature is higher then target temperature before interrupt minus this offset, print will be recovered automatically. #define AUTOMATIC_UVLO_BED_TEMP_OFFSET 5 diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index 48ed91392..253fe0ec8 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -620,7 +620,11 @@ // The following example, 12 * (4 * 16 / 400) = 12 * 0.16mm = 1.92mm. //#define UVLO_Z_AXIS_SHIFT 1.92 #define UVLO_Z_AXIS_SHIFT 0.64 -// If power panic occured, and the current temperature is higher then target temperature before interrupt minus this offset, print will be recovered automatically. +// When powered off during PP recovery, the Z axis position can still be re-adjusted. In this case +// we just need to shift to the nearest fullstep, but we need a move which is at least +// "dropsegments" steps long. All the above rules still need to apply. +#define UVLO_TINY_Z_AXIS_SHIFT 0.16 +// If power panic occured, and the current temperature is higher then target temperature before interrupt minus this offset, print will be recovered automatically. #define AUTOMATIC_UVLO_BED_TEMP_OFFSET 5 #define HEATBED_V2 From 50a9fe003a5524cfae0023b605c96577831d2a1b Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 27 Jan 2020 11:08:28 +0100 Subject: [PATCH 246/271] Bump the unparking speed to 50mm/s (same as M600 recovery) --- Firmware/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index c2439d743..1d7821947 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10942,7 +10942,7 @@ void restore_print_from_eeprom(bool mbl_was_active) { // Move to the XY print position in logical coordinates, where the print has been killed, but // without shifting Z along the way. This requires performing the move without mbl. - sprintf_P(cmd, PSTR("G1 X%f Y%f F2000"), + sprintf_P(cmd, PSTR("G1 X%f Y%f F3000"), eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 0)), eeprom_read_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4))); enquecommand(cmd); From 5d8857371132b311c76d07c19be548a73281b8f0 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 27 Jan 2020 14:59:18 +0100 Subject: [PATCH 247/271] Save/restore hotend temperatures above 255C in PowerPanic Use 2 bytes to store extruder temperature during UVLO. Re-use the storage of EEPROM_UVLO_TINY_Z_MICROSTEPS which has been freed by previous changes. Fixes #2303 --- Firmware/Marlin_main.cpp | 6 +++--- Firmware/eeprom.h | 10 ++++------ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 1d7821947..a204f9f0b 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10505,7 +10505,7 @@ void uvlo_() // Stop all heaters uint8_t saved_target_temperature_bed = target_temperature_bed; - uint8_t saved_target_temperature_ext = target_temperature[active_extruder]; + uint16_t saved_target_temperature_ext = target_temperature[active_extruder]; setAllTargetHotends(0); setTargetBed(0); @@ -10605,7 +10605,7 @@ void uvlo_() // Store the current feed rate, temperatures, fan speed and extruder multipliers (flow rates) eeprom_update_word((uint16_t*)EEPROM_UVLO_FEEDRATE, feedrate_bckp); eeprom_update_word((uint16_t*)EEPROM_UVLO_FEEDMULTIPLY, feedmultiply); - eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND, saved_target_temperature_ext); + eeprom_update_word((uint16_t*)EEPROM_UVLO_TARGET_HOTEND, saved_target_temperature_ext); eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_BED, saved_target_temperature_bed); eeprom_update_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED, fanSpeed); eeprom_update_float((float*)(EEPROM_EXTRUDER_MULTIPLIER_0), extruder_multiplier[0]); @@ -10871,7 +10871,7 @@ bool recover_machine_state_after_power_panic() enable_z(); // 7) Recover the target temperatures. - target_temperature[active_extruder] = eeprom_read_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND); + target_temperature[active_extruder] = eeprom_read_word((uint16_t*)EEPROM_UVLO_TARGET_HOTEND); target_temperature_bed = eeprom_read_byte((uint8_t*)EEPROM_UVLO_TARGET_BED); // 8) Recover extruder multipilers diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index c50dc94e5..f0544f395 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -72,8 +72,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP #define EEPROM_FILENAME (EEPROM_UVLO_CURRENT_POSITION - 8) //8chars to store filename without extension #define EEPROM_FILE_POSITION (EEPROM_FILENAME - 4) //32 bit for uint32_t file position #define EEPROM_UVLO_CURRENT_POSITION_Z (EEPROM_FILE_POSITION - 4) //float for current position in Z -#define EEPROM_UVLO_TARGET_HOTEND (EEPROM_UVLO_CURRENT_POSITION_Z - 1) -#define EEPROM_UVLO_TARGET_BED (EEPROM_UVLO_TARGET_HOTEND - 1) +#define EEPROM_UVLO_UNUSED_001 (EEPROM_UVLO_CURRENT_POSITION_Z - 1) // uint8_t (unused) +#define EEPROM_UVLO_TARGET_BED (EEPROM_UVLO_UNUSED_001 - 1) #define EEPROM_UVLO_FEEDRATE (EEPROM_UVLO_TARGET_BED - 2) //uint16_t #define EEPROM_UVLO_FAN_SPEED (EEPROM_UVLO_FEEDRATE - 1) #define EEPROM_FAN_CHECK_ENABLED (EEPROM_UVLO_FAN_SPEED - 1) @@ -165,13 +165,11 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP #define EEPROM_EXTRUDER_MULTIPLIER_2 (EEPROM_EXTRUDER_MULTIPLIER_1 - 4) //float #define EEPROM_EXTRUDEMULTIPLY (EEPROM_EXTRUDER_MULTIPLIER_2 - 2) // uint16 -// #define EEPROM_UVLO_TINY_CURRENT_POSITION_Z (EEPROM_EXTRUDEMULTIPLY-4) // float -#define EEPROM_UVLO_TINY_Z_MICROSTEPS (EEPROM_UVLO_TINY_CURRENT_POSITION_Z-2) // uint16 (unused) +#define EEPROM_UVLO_TARGET_HOTEND (EEPROM_UVLO_TINY_CURRENT_POSITION_Z-2) // uint16 // Sound Mode -//#define EEPROM_SOUND_MODE (EEPROM_EXTRUDEMULTIPLY-1) // uint8 -#define EEPROM_SOUND_MODE (EEPROM_UVLO_TINY_Z_MICROSTEPS-1) // uint8 +#define EEPROM_SOUND_MODE (EEPROM_UVLO_TARGET_HOTEND-1) // uint8 #define EEPROM_AUTO_DEPLETE (EEPROM_SOUND_MODE-1) //bool #define EEPROM_FSENS_OQ_MEASS_ENABLED (EEPROM_AUTO_DEPLETE - 1) //bool From 3da20db02404f3654631bf99d8c4d8aea0e8c709 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 27 Jan 2020 18:50:17 +0100 Subject: [PATCH 248/271] Really poweroff Z motors when PSU_Delta is defined enable/disable_z behave differently when PSU_Delta is defined. During powerpanic and kill however we do *really* need to save energy and poweroff the motors. Rename enable/disable_z as poweron/poweroff_z and define some aliases so that we can use the low-level function where needed. --- Firmware/Marlin.h | 35 +++++++++++++++++------------------ Firmware/Marlin_main.cpp | 8 ++++---- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 58b3351de..a0b3c19b8 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -146,40 +146,39 @@ void manage_inactivity(bool ignore_stepper_queue=false); #if defined(Z_ENABLE_PIN) && Z_ENABLE_PIN > -1 #if defined(Z_AXIS_ALWAYS_ON) #ifdef Z_DUAL_STEPPER_DRIVERS - #define enable_z() { WRITE(Z_ENABLE_PIN, Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN, Z_ENABLE_ON); } - #define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } + #define poweron_z() { WRITE(Z_ENABLE_PIN, Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN, Z_ENABLE_ON); } + #define poweroff_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } #else - #define enable_z() WRITE(Z_ENABLE_PIN, Z_ENABLE_ON) - #define disable_z() {} + #define poweron_z() WRITE(Z_ENABLE_PIN, Z_ENABLE_ON) + #define poweroff_z() {} #endif #else #ifdef Z_DUAL_STEPPER_DRIVERS - #define enable_z() { WRITE(Z_ENABLE_PIN, Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN, Z_ENABLE_ON); } - #define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } + #define poweron_z() { WRITE(Z_ENABLE_PIN, Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN, Z_ENABLE_ON); } + #define poweroff_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } #else - #define enable_z() WRITE(Z_ENABLE_PIN, Z_ENABLE_ON) - #define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } + #define poweron_z() WRITE(Z_ENABLE_PIN, Z_ENABLE_ON) + #define poweroff_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } #endif #endif #else - #define enable_z() {} - #define disable_z() {} + #define poweron_z() {} + #define poweroff_z() {} #endif -#ifdef PSU_Delta +#ifndef PSU_Delta + #define enable_z() poweron_z() + #define disable_z() poweroff_z() +#else void init_force_z(); void check_force_z(); - #undef disable_z - #define disable_z() disable_force_z() - void disable_force_z(); - #undef enable_z - #define enable_z() enable_force_z() void enable_force_z(); + void disable_force_z(); + #define enable_z() enable_force_z() + #define disable_z() disable_force_z() #endif // PSU_Delta - - //#if defined(Z_ENABLE_PIN) && Z_ENABLE_PIN > -1 //#ifdef Z_DUAL_STEPPER_DRIVERS //#define enable_z() { WRITE(Z_ENABLE_PIN, Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN, Z_ENABLE_ON); } diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a204f9f0b..c80199a22 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9595,7 +9595,7 @@ void kill(const char *full_screen_message, unsigned char id) disable_x(); // SERIAL_ECHOLNPGM("kill - disable Y"); disable_y(); - disable_z(); + poweroff_z(); disable_e0(); disable_e1(); disable_e2(); @@ -10579,7 +10579,7 @@ void uvlo_() + UVLO_Z_AXIS_SHIFT; plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS]/60, active_extruder); st_synchronize(); - disable_z(); + poweroff_z(); // Write the file position. eeprom_update_dword((uint32_t*)(EEPROM_FILE_POSITION), sd_position); @@ -10638,7 +10638,7 @@ void uvlo_() WRITE(BEEPER,HIGH); // All is set: with all the juice left, try to move extruder away to detach the nozzle completely from the print - enable_z(); + poweron_z(); current_position[X_AXIS] = (current_position[X_AXIS] < 0.5f * (X_MIN_POS + X_MAX_POS)) ? X_MIN_POS : X_MAX_POS; plan_buffer_line_curposXYZE(500, active_extruder); st_synchronize(); @@ -10693,7 +10693,7 @@ void uvlo_tiny() + UVLO_TINY_Z_AXIS_SHIFT; plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS]/60, active_extruder); st_synchronize(); - disable_z(); + poweroff_z(); // Update Z position eeprom_update_float((float*)(EEPROM_UVLO_TINY_CURRENT_POSITION_Z), current_position[Z_AXIS]); From 200cdde1af99ffc3d3c981f6d431cf0bc936ca2d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 28 Jan 2020 21:50:12 +0100 Subject: [PATCH 249/271] Setup the UVLO interrupt later during initialization Do not allow uvlo_tiny() to trigger before the previous print has already been recovered. A quick repeated power failure could cause uvlo_tiny to overwrite the Z position before it has been correctly recovered. --- Firmware/Marlin_main.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index c80199a22..fbfb39f25 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1298,10 +1298,6 @@ void setup() st_init(); // Initialize stepper, this enables interrupts! -#ifdef UVLO_SUPPORT - setup_uvlo_interrupt(); -#endif //UVLO_SUPPORT - #ifdef TMC2130 tmc2130_mode = silentMode?TMC2130_MODE_SILENT:TMC2130_MODE_NORMAL; update_mode_profile(); @@ -1596,12 +1592,14 @@ void setup() lcd_update(2); lcd_setstatuspgm(_T(WELCOME_MSG)); } - } - - } + + // Only arm the uvlo interrupt _after_ a recovering print has been initialized and + // the entire state machine initialized. + setup_uvlo_interrupt(); #endif //UVLO_SUPPORT + fCheckModeInit(); fSetMmuMode(mmu_enabled); KEEPALIVE_STATE(NOT_BUSY); From b46dc59fad9bf26534ac8e9d40e17c4404b2362d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 29 Jan 2020 16:06:54 +0100 Subject: [PATCH 250/271] Refuse to start a print if power is lost before arming uvlo If power has been lost during startup already a falling edge would be skipped, causing the print to continue and lose its state without being able to save again. Check for a low line after arming the interrupt and simply wait for reset. --- Firmware/Marlin_main.cpp | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index fbfb39f25..5eb8d48b2 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10480,6 +10480,14 @@ void serialecho_temperatures() { } #ifdef UVLO_SUPPORT +void uvlo_drain_reset() +{ + // burn all that residual power + wdt_enable(WDTO_1S); + WRITE(BEEPER,HIGH); + while(1); +} + void uvlo_() { @@ -10709,11 +10717,7 @@ void uvlo_tiny() eeprom_update_word((uint16_t*)EEPROM_POWER_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_POWER_COUNT_TOT) + 1); printf_P(_N("UVLO_TINY - end %d\n"), _millis() - time_start); - - // burn all that residual power - wdt_enable(WDTO_1S); - WRITE(BEEPER,HIGH); - while(1); + uvlo_drain_reset(); } #endif //UVLO_SUPPORT @@ -10760,12 +10764,19 @@ void setup_uvlo_interrupt() { DDRE &= ~(1 << 4); //input pin PORTE &= ~(1 << 4); //no internal pull-up - //sensing falling edge + // sensing falling edge EICRB |= (1 << 0); EICRB &= ~(1 << 1); - //enable INT4 interrupt + // enable INT4 interrupt EIMSK |= (1 << 4); + + // check if power was lost before we armed the interrupt + if(!(PINE & (1 << 4))) + { + SERIAL_ECHOLNPGM("INT4"); + uvlo_drain_reset(); + } } ISR(INT4_vect) { From 4fd913ddf3f7170456cbdf195c332a75f8f2012f Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 29 Jan 2020 17:45:47 +0200 Subject: [PATCH 251/271] Remove commented out code --- Firmware/Marlin_main.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 70cbd6d7a..1dc45eab5 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -11563,8 +11563,6 @@ if(!(bEnableForce_z||eeprom_read_byte((uint8_t*)EEPROM_SILENT))) void disable_force_z() { - // uint16_t z_microsteps=0; - if(!bEnableForce_z) return; // motor already disabled (may be ;-p ) bEnableForce_z=false; @@ -11575,8 +11573,6 @@ void disable_force_z() update_mode_profile(); tmc2130_init(true); #endif // TMC2130 - - // axis_known_position[Z_AXIS]=false; } From 2b46fdac2d0251041cb89f96ae16e7e19e17473c Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 29 Jan 2020 17:56:26 +0100 Subject: [PATCH 252/271] Only trigger a quick reset if there's a pending saved state Thanks to @leptun --- Firmware/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 5eb8d48b2..169effb8d 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10772,7 +10772,7 @@ void setup_uvlo_interrupt() { EIMSK |= (1 << 4); // check if power was lost before we armed the interrupt - if(!(PINE & (1 << 4))) + if(!(PINE & (1 << 4)) && eeprom_read_byte((uint8_t*)EEPROM_UVLO)) { SERIAL_ECHOLNPGM("INT4"); uvlo_drain_reset(); From 02d1525445b81002cc591738d69cbdb05988ee18 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 29 Jan 2020 21:08:56 +0100 Subject: [PATCH 253/271] Display "POWER PANIC DETECTED" when possible Both during early init and in uvlo_tiny, display "POWER PANIC DETECTED" if enough charge is left. This is not worth doing in regular uvlo_, as we want to give full priority to the X motor --- Firmware/Marlin_main.cpp | 2 ++ Firmware/messages.c | 1 + Firmware/messages.h | 1 + 3 files changed, 4 insertions(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 169effb8d..20a269af5 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10485,6 +10485,8 @@ void uvlo_drain_reset() // burn all that residual power wdt_enable(WDTO_1S); WRITE(BEEPER,HIGH); + lcd_clear(); + lcd_puts_at_P(0, 1, MSG_POWERPANIC_DETECTED); while(1); } diff --git a/Firmware/messages.c b/Firmware/messages.c index 68bad5ffb..2b113673e 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -171,3 +171,4 @@ const char MSG_M112_KILL[] PROGMEM_N1 = "M112 called. Emergency Stop."; ////c=20 #ifdef LA_LIVE_K const char MSG_ADVANCE_K[] PROGMEM_N1 = "Advance K:"; ////c=13 #endif +const char MSG_POWERPANIC_DETECTED[] PROGMEM_N1 = "POWER PANIC DETECTED"; ////c=20 diff --git a/Firmware/messages.h b/Firmware/messages.h index 678524abb..7cc240d3b 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -170,6 +170,7 @@ extern const char MSG_FANCHECK_EXTRUDER[]; extern const char MSG_FANCHECK_PRINT[]; extern const char MSG_M112_KILL[]; extern const char MSG_ADVANCE_K[]; +extern const char MSG_POWERPANIC_DETECTED[]; #if defined(__cplusplus) } From a5198e32a3d041024fbf327d0e380bbd69543a5f Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 29 Jan 2020 22:44:19 +0200 Subject: [PATCH 254/271] Just keep the current state. ON or OFF. No switching allowed --- Firmware/heatbed_pwm.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/Firmware/heatbed_pwm.cpp b/Firmware/heatbed_pwm.cpp index 1e467c4e8..612cf3c86 100755 --- a/Firmware/heatbed_pwm.cpp +++ b/Firmware/heatbed_pwm.cpp @@ -139,19 +139,15 @@ ISR(TIMER0_OVF_vect) // timer compare interrupt service routine break; case States::ONE: // state ONE - we'll either stay in ONE or change to FALL OCR0B = 255; + if (bedPWMDisabled) return; slowCounter += slowInc; // this does software timer_clk/256 or less - if (!bedPWMDisabled){ //disable heating as soon as possible - if( slowCounter < pwm ){ - return; - } - if( (soft_pwm_bed << 1) >= (255 - slowInc - 1) ){ //@@TODO simplify & explain - // if slowInc==2, soft_pwm == 251 will be the first to do short drops to zero. 252 will keep full heating - return; // want full duty for the next ONE cycle again - so keep on heating and just wait for the next timer ovf - } - } - else if (pwm > 200){ //if duty cycle is high and BED PWM is disabled keep heater on. Prevents overcooling + if( slowCounter < pwm ){ return; } + if( (soft_pwm_bed << 1) >= (255 - slowInc - 1) ){ //@@TODO simplify & explain + // if slowInc==2, soft_pwm == 251 will be the first to do short drops to zero. 252 will keep full heating + return; // want full duty for the next ONE cycle again - so keep on heating and just wait for the next timer ovf + } // otherwise moving towards FALL // @@TODO it looks like ONE_TO_FALL isn't necessary, there are no artefacts at all state = States::ONE;//_TO_FALL; From 755230e2e750880de393586946dfa0c26a15737c Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 29 Jan 2020 22:47:28 +0200 Subject: [PATCH 255/271] fix small mistake --- Firmware/heatbed_pwm.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/heatbed_pwm.cpp b/Firmware/heatbed_pwm.cpp index 612cf3c86..4552bf966 100755 --- a/Firmware/heatbed_pwm.cpp +++ b/Firmware/heatbed_pwm.cpp @@ -95,7 +95,7 @@ ISR(TIMER0_OVF_vect) // timer compare interrupt service routine { switch(state){ case States::ZERO_START: - if (bedPWMDisabled) break; + if (bedPWMDisabled) return; pwm = soft_pwm_bed << 1;// expecting soft_pwm_bed to be 7bit! if( pwm != 0 ){ state = States::ZERO; // do nothing, let it tick once again after the 30Hz period From b86aafb56e2dd3b2ec162b7130ec28890ec908f4 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 29 Jan 2020 23:03:20 +0200 Subject: [PATCH 256/271] Documentation --- Firmware/heatbed_pwm.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Firmware/heatbed_pwm.cpp b/Firmware/heatbed_pwm.cpp index 4552bf966..e85515016 100755 --- a/Firmware/heatbed_pwm.cpp +++ b/Firmware/heatbed_pwm.cpp @@ -45,6 +45,12 @@ // If there are any change requirements in the future, the signal must be checked with an osciloscope again, // ad-hoc changes may completely screw things up! +// 2020-01-29 update: we are introducing a new option to the automaton that will allow us to force the output state +// to either full ON or OFF. This is so that interference during the MBL probing is minimal. +// To accomplish this goal we use bedPWMDisabled. It is only supposed to be used for brief periods of time as to +// not make the bed temperature too unstable. Also, careful consideration should be used when using this +// option as leaving this enabled will also keep the bed output in the state it stopped in. + ///! Definition off finite automaton states enum class States : uint8_t { ZERO_START = 0,///< entry point of the automaton - reads the soft_pwm_bed value for the next whole PWM cycle @@ -95,7 +101,7 @@ ISR(TIMER0_OVF_vect) // timer compare interrupt service routine { switch(state){ case States::ZERO_START: - if (bedPWMDisabled) return; + if (bedPWMDisabled) return; // stay in the OFF state and do not change the output pin pwm = soft_pwm_bed << 1;// expecting soft_pwm_bed to be 7bit! if( pwm != 0 ){ state = States::ZERO; // do nothing, let it tick once again after the 30Hz period @@ -139,7 +145,7 @@ ISR(TIMER0_OVF_vect) // timer compare interrupt service routine break; case States::ONE: // state ONE - we'll either stay in ONE or change to FALL OCR0B = 255; - if (bedPWMDisabled) return; + if (bedPWMDisabled) return; // stay in the ON state and do not change the output pin slowCounter += slowInc; // this does software timer_clk/256 or less if( slowCounter < pwm ){ return; From 8c2902a6605cacbc35232b3f6f1c49f9ca12a20f Mon Sep 17 00:00:00 2001 From: leptun Date: Wed, 2 Oct 2019 17:34:09 +0300 Subject: [PATCH 257/271] Revert "Mesh bed leveling testing" This reverts commit 28e812d91fe2b4633c9427abdf554e5a9449dd17. --- Firmware/Marlin_main.cpp | 10 +++++++--- Firmware/mesh_bed_calibration.cpp | 8 ++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index e14dd2e35..fbfb39f25 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -4973,7 +4973,11 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) z_offset_u = eeprom_read_word((uint16_t*)(EEPROM_BED_CALIBRATION_Z_JITTER + 2 * (ix + iy * 3 - 1))); } z0 = mbl.z_values[0][0] + *reinterpret_cast(&z_offset_u) * 0.01; - // printf_P(PSTR("Bed leveling, point: %d, calibration Z stored in eeprom: %d, calibration z: %f \n"), mesh_point, z_offset_u, z0); + #ifdef SUPPORT_VERBOSITY + if (verbosity_level >= 1) { + printf_P(PSTR("Bed leveling, point: %d, calibration Z stored in eeprom: %d, calibration z: %f \n"), mesh_point, z_offset_u, z0); + } + #endif // SUPPORT_VERBOSITY } // Move Z up to MESH_HOME_Z_SEARCH. @@ -5000,7 +5004,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); #endif // SUPPORT_VERBOSITY - printf_P(PSTR("after clamping: [%f;%f]\n"), current_position[X_AXIS], current_position[Y_AXIS]); + //printf_P(PSTR("after clamping: [%f;%f]\n"), current_position[X_AXIS], current_position[Y_AXIS]); plan_buffer_line_curposXYZE(XY_AXIS_FEEDRATE, active_extruder); st_synchronize(); @@ -5011,7 +5015,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) break; } if (init_z_bckp - current_position[Z_AXIS] < 0.1f) { //broken cable or initial Z coordinate too low. Go to MESH_HOME_Z_SEARCH and repeat last step (z-probe) again to distinguish between these two cases. - printf_P(PSTR("Another attempt! Current Z position: %f\n"), current_position[Z_AXIS]); + //printf_P(PSTR("Another attempt! Current Z position: %f\n"), current_position[Z_AXIS]); current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder); st_synchronize(); diff --git a/Firmware/mesh_bed_calibration.cpp b/Firmware/mesh_bed_calibration.cpp index fed100e68..88cbc671a 100644 --- a/Firmware/mesh_bed_calibration.cpp +++ b/Firmware/mesh_bed_calibration.cpp @@ -991,7 +991,7 @@ inline bool find_bed_induction_sensor_point_z(float minimum_z, uint8_t n_iter, i update_current_position_z(); //printf_P(PSTR("Zs: %f, Z: %f, delta Z: %f"), z_bckp, current_position[Z_AXIS], (z_bckp - current_position[Z_AXIS])); if (abs(current_position[Z_AXIS] - z_bckp) < 0.025) { - printf_P(PSTR("PINDA triggered immediately, move Z higher and repeat measurement\n")); + //printf_P(PSTR("PINDA triggered immediately, move Z higher and repeat measurement\n")); current_position[Z_AXIS] += 0.5; go_to_current(homing_feedrate[Z_AXIS]/60); current_position[Z_AXIS] = minimum_z; @@ -1019,10 +1019,10 @@ inline bool find_bed_induction_sensor_point_z(float minimum_z, uint8_t n_iter, i float dz = i?abs(current_position[Z_AXIS] - (z / i)):0; z += current_position[Z_AXIS]; //printf_P(PSTR("Z[%d] = %d, dz=%d\n"), i, (int)(current_position[Z_AXIS] * 1000), (int)(dz * 1000)); - printf_P(PSTR("Z- measurement deviation from avg value %f um\n"), dz); + //printf_P(PSTR("Z- measurement deviation from avg value %f um\n"), dz); if (dz > 0.05) { //deviation > 50um if (high_deviation_occured == false) { //first occurence may be caused in some cases by mechanic resonance probably especially if printer is placed on unstable surface - printf_P(PSTR("high dev. first occurence\n")); + //printf_P(PSTR("high dev. first occurence\n")); delay_keep_alive(500); //damping //start measurement from the begining, but this time with higher movements in Z axis which should help to reduce mechanical resonance high_deviation_occured = true; @@ -1033,7 +1033,7 @@ inline bool find_bed_induction_sensor_point_z(float minimum_z, uint8_t n_iter, i goto error; } } - printf_P(PSTR("PINDA triggered at %f\n"), current_position[Z_AXIS]); + //printf_P(PSTR("PINDA triggered at %f\n"), current_position[Z_AXIS]); } current_position[Z_AXIS] = z; if (n_iter > 1) From 571906a494ac07d3450854b15b3068ecc5eb0655 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 28 Jan 2020 21:55:16 +0100 Subject: [PATCH 258/271] Do not update saved_target if there's no current_block There is a chance that current_block can be NULL despite the queue being non-empty. This can happen early after a block has been queued, but before the isr has picked it up for processing, and/or when the current block is at the last step and is being discarded. Check for current_block directly to avoid this race. --- Firmware/Marlin_main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 20a269af5..9d00d42bd 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10529,7 +10529,7 @@ void uvlo_() // save the global state at planning time uint16_t feedrate_bckp; - if (blocks_queued()) + if (current_block) { memcpy(saved_target, current_block->gcode_target, sizeof(saved_target)); feedrate_bckp = current_block->gcode_feedrate; @@ -11129,7 +11129,7 @@ void stop_and_save_print_to_ram(float z_move, float e_move) #endif // save the global state at planning time - if (blocks_queued()) + if (current_block) { memcpy(saved_target, current_block->gcode_target, sizeof(saved_target)); saved_feedrate2 = current_block->gcode_feedrate; From 1db024f17af6ed22f7836ebb553f6b7fe5215227 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 28 Jan 2020 22:03:38 +0100 Subject: [PATCH 259/271] Always raise the extruder 25mm during power recovery Avoids oozed material (drooping more than ~1mm) to scrape and potentially detach the print. --- Firmware/Marlin_main.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 9d00d42bd..abd4c3685 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10798,10 +10798,13 @@ void recover_print(uint8_t automatic) { // Recover position, temperatures and extrude_multipliers bool mbl_was_active = recover_machine_state_after_power_panic(); - // Attempt to lift the print head on the first recovery, so one may remove the excess priming material. - bool raise_z = (eeprom_read_byte((uint8_t*)EEPROM_UVLO) == 1); - if(raise_z && (current_position[Z_AXIS]<25)) - enquecommand_P(PSTR("G1 Z25 F800")); + // Lift the print head 25mm, first to avoid collisions with oozed material with the print, + // and second also so one may remove the excess priming material. + if(eeprom_read_byte((uint8_t*)EEPROM_UVLO) == 1) + { + sprintf_P(cmd, PSTR("G1 Z%.3f F800"), current_position[Z_AXIS] + 25); + enquecommand(cmd); + } // Home X and Y axes. Homing just X and Y shall not touch the babystep and the world2machine // transformation status. G28 will not touch Z when MBL is off. From 886c2fdc4ebf18c9ca175068525fa4218c5637e4 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Thu, 30 Jan 2020 17:24:32 +0200 Subject: [PATCH 260/271] Show correct fixed message --- Firmware/temperature.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 175122548..7517978be 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -2003,6 +2003,8 @@ void check_max_temp() //! number of repeating the same state with consecutive step() calls //! used to slow down text switching struct alert_automaton_mintemp { + const char *m2; + alert_automaton_mintemp(const char *m2):m2(m2){} private: enum { ALERT_AUTOMATON_SPEED_DIV = 5 }; enum class States : uint8_t { Init = 0, TempAboveMintemp, ShowPleaseRestart, ShowMintemp }; @@ -2022,7 +2024,6 @@ public: //! @param current_temp current hotend/bed temperature (for computing simple hysteresis) //! @param mintemp minimal temperature including hysteresis to check current_temp against void step(float current_temp, float mintemp){ - static const char m2[] PROGMEM = "MINTEMP fixed"; static const char m1[] PROGMEM = "Please restart"; switch(state){ case States::Init: // initial state - check hysteresis @@ -2050,8 +2051,9 @@ public: } } }; - -static alert_automaton_mintemp alert_automaton_hotend, alert_automaton_bed; +static const char m2hotend[] PROGMEM = "MINTEMP HEATER fixed"; +static const char m2bed[] PROGMEM = "MINTEMP BED fixed"; +static alert_automaton_mintemp alert_automaton_hotend(m2hotend), alert_automaton_bed(m2bed); void check_min_temp_heater0() { From 84ecf96be50a3af450bff5d506962ef0a0158f57 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Fri, 31 Jan 2020 15:08:24 +0100 Subject: [PATCH 261/271] Do not clear last print fail stats prematurely M24 was always cleaning the last print failstats. But because M24 is used to restore a print after power failure (by setting the seek offset), it would also reset the stats incorrectly after resuming. Check for the file index position and reset the stats only when a print is started from the beginning of the file. Apply the same logic to M32 and similarly handle the LA10->15 conversion (do not re-apply the adjustment for a resumed print). --- Firmware/Marlin_main.cpp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index cd4ee63f4..62f93fae5 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5576,10 +5576,15 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) lcd_resume_print(); else { - failstats_reset_print(); + if (!card.get_sdpos()) + { + // A new print has started from scratch, reset stats + failstats_reset_print(); #ifndef LA_NOCOMPAT - la10c_reset(); + la10c_reset(); #endif + } + card.startFileprint(); starttime=_millis(); } @@ -5689,12 +5694,19 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) if(code_seen('S')) if(strchr_pointer Date: Fri, 31 Jan 2020 15:27:19 +0100 Subject: [PATCH 262/271] Fix copy paste issues D2 D5 Fixed copy paste --- Firmware/Dcodes.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index 0a5142629..ee62087d6 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -255,7 +255,7 @@ void dcode_1() ### D2 - Read/Write RAM D3: Read/Write RAM This command can be used without any additional parameters. It will read the entire RAM. - D3 [ A | C | X ] + D2 [ A | C | X ] - `A` - Address (0x0000-0x1fff) - `C` - Count (0x0001-0x2000) @@ -355,7 +355,7 @@ void dcode_4() ### D5 - Read/Write FLASH D5: Read/Write Flash This command can be used without any additional parameters. It will read the 1kb FLASH. - D3 [ A | C | X | E ] + D5 [ A | C | X | E ] - `A` - Address (0x00000-0x3ffff) - `C` - Count (0x0001-0x2000) From a355fdd00d8a3287144d09056c45df94b5043b72 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 31 Jan 2020 15:40:07 +0100 Subject: [PATCH 263/271] And another one sorry --- Firmware/Dcodes.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Dcodes.cpp b/Firmware/Dcodes.cpp index ee62087d6..70ffe2c49 100644 --- a/Firmware/Dcodes.cpp +++ b/Firmware/Dcodes.cpp @@ -252,7 +252,7 @@ void dcode_1() /*! * - ### D2 - Read/Write RAM D3: Read/Write RAM + ### D2 - Read/Write RAM D2: Read/Write RAM This command can be used without any additional parameters. It will read the entire RAM. D2 [ A | C | X ] From 3bbc14382103e711f6b5b304e7522f25aeb85f28 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 2 Feb 2020 18:01:06 +0100 Subject: [PATCH 264/271] Fix build with LA_LIVE_K Do not check for LA_LIVE_K in messages.c (Configuration_adv.h is not included here). Rely on the linker to drop the symbol when LA_LIVE_K is disabled. --- Firmware/messages.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/Firmware/messages.c b/Firmware/messages.c index 2b113673e..4e229ba76 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -168,7 +168,5 @@ const char MSG_OCTOPRINT_CANCEL[] PROGMEM_N1 = "// action:cancel"; //// const char MSG_FANCHECK_EXTRUDER[] PROGMEM_N1 = "Err: EXTR. FAN ERROR"; ////c=20 const char MSG_FANCHECK_PRINT[] PROGMEM_N1 = "Err: PRINT FAN ERROR"; ////c=20 const char MSG_M112_KILL[] PROGMEM_N1 = "M112 called. Emergency Stop."; ////c=20 -#ifdef LA_LIVE_K const char MSG_ADVANCE_K[] PROGMEM_N1 = "Advance K:"; ////c=13 -#endif const char MSG_POWERPANIC_DETECTED[] PROGMEM_N1 = "POWER PANIC DETECTED"; ////c=20 From 47db75d5fda29dabf2f6b8749c3180677fb99ca5 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sun, 2 Feb 2020 18:02:57 +0100 Subject: [PATCH 265/271] Fix overflow and infloop with LA15 and low step rates When calculating the advance tick interval, be sure to check for integer overflow. Very low step rates can result in values exceeding uint16_t causing premature LA tick delivery. An overflow resulting in zero would also block in an infinite loop within advance_spread(). Even though such rates are worthless in terms of compensation and often result in 0 extra ticks as well, do not disable LA for the block (as doing so would reset the count for short segments) and do not check for zero in multiple paces either. Saturate the interval instead, delaying any further tick to the next block. --- Firmware/planner.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Firmware/planner.cpp b/Firmware/planner.cpp index 197b3d9f9..57d7b89bb 100644 --- a/Firmware/planner.cpp +++ b/Firmware/planner.cpp @@ -1137,17 +1137,24 @@ Having the real displacement of the head, we can calculate the total movement le // still need to replicate the *exact* same step grouping policy (see below) float advance_speed = (extruder_advance_K * e_D_ratio * block->acceleration * cs.axis_steps_per_unit[E_AXIS]); if (advance_speed > MAX_STEP_FREQUENCY) advance_speed = MAX_STEP_FREQUENCY; - block->advance_rate = (F_CPU / 8.0) / advance_speed; - if (block->advance_rate > 20000) { - block->advance_rate = (block->advance_rate >> 2)&0x3fff; + float advance_rate = (F_CPU / 8.0) / advance_speed; + if (advance_speed > 20000) { + block->advance_rate = advance_rate * 4; block->advance_step_loops = 4; } - else if (block->advance_rate > 10000) { - block->advance_rate = (block->advance_rate >> 1)&0x7fff; + else if (advance_speed > 10000) { + block->advance_rate = advance_rate * 2; block->advance_step_loops = 2; } else + { + // never overflow the internal accumulator with very low rates + if (advance_rate < UINT16_MAX) + block->advance_rate = advance_rate; + else + block->advance_rate = UINT16_MAX; block->advance_step_loops = 1; + } #ifdef LA_DEBUG if (block->advance_step_loops > 2) From 4b85664b27abacbfe89ada22c2b54b0bd1abd526 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Feb 2020 14:28:54 +0100 Subject: [PATCH 266/271] Raise default extruder jerk to 4.5 This should be the new default for LA1.5 for direct drive printers and newer PrusaSlicer profiles too (hopefully). --- Firmware/Configuration.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 2f2ea7d8e..694247fbd 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -424,7 +424,7 @@ your extruder heater takes 2 minutes to hit the target on heating. #define DEFAULT_XJERK 10 // (mm/sec) #define DEFAULT_YJERK 10 // (mm/sec) #define DEFAULT_ZJERK 0.4 // (mm/sec) -#define DEFAULT_EJERK 2.5 // (mm/sec) +#define DEFAULT_EJERK 4.5 // (mm/sec) //=========================================================================== //=============================Additional Features=========================== From 453f5dd8744383c2d1481228db91099037b103fe Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 3 Feb 2020 15:37:11 +0100 Subject: [PATCH 267/271] Adjust E-jerk in LA10 compatibility mode When upgrading K values of a LA1.0 print, also adjust E-jerk settings (<2) if permissible according to current accell limits. The same is also true when jerk is set mid-print via 'M205 E'. Existing values are always restored when switching to another compatibility mode. TODO: Since this is stateful, we will need to save the current print mode / acceleration and jerk in the eeprom for this to survive a power panic (see prusa3d#2456). --- Firmware/Marlin_main.cpp | 14 +++++++++++--- Firmware/la10compat.cpp | 42 +++++++++++++++++++++++++++++++++++++++- Firmware/la10compat.h | 9 ++++++++- 3 files changed, 60 insertions(+), 5 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index cd4ee63f4..92f3bd307 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7075,9 +7075,17 @@ Sigma_Exit: if(code_seen('X')) cs.max_jerk[X_AXIS] = cs.max_jerk[Y_AXIS] = code_value(); if(code_seen('Y')) cs.max_jerk[Y_AXIS] = code_value(); if(code_seen('Z')) cs.max_jerk[Z_AXIS] = code_value(); - if(code_seen('E')) cs.max_jerk[E_AXIS] = code_value(); - if (cs.max_jerk[X_AXIS] > DEFAULT_XJERK) cs.max_jerk[X_AXIS] = DEFAULT_XJERK; - if (cs.max_jerk[Y_AXIS] > DEFAULT_YJERK) cs.max_jerk[Y_AXIS] = DEFAULT_YJERK; + if(code_seen('E')) + { + float e = code_value(); +#ifndef LA_NOCOMPAT + + e = la10c_jerk(e); +#endif + cs.max_jerk[E_AXIS] = e; + } + if (cs.max_jerk[X_AXIS] > DEFAULT_XJERK) cs.max_jerk[X_AXIS] = DEFAULT_XJERK; + if (cs.max_jerk[Y_AXIS] > DEFAULT_YJERK) cs.max_jerk[Y_AXIS] = DEFAULT_YJERK; } break; diff --git a/Firmware/la10compat.cpp b/Firmware/la10compat.cpp index d54e5acea..5b851bc34 100644 --- a/Firmware/la10compat.cpp +++ b/Firmware/la10compat.cpp @@ -2,13 +2,24 @@ #include "Marlin.h" -static LA10C_MODE la10c_mode = LA10C_UNKNOWN; +static LA10C_MODE la10c_mode = LA10C_UNKNOWN; // Current LA compatibility mode +static float la10c_orig_jerk = 0; // Unadjusted/saved e-jerk + + +LA10C_MODE la10c_mode_get() +{ + return la10c_mode; +} void la10c_mode_change(LA10C_MODE mode) { if(mode == la10c_mode) return; + // always restore to the last unadjusted E-jerk value + if(la10c_orig_jerk) + cs.max_jerk[E_AXIS] = la10c_orig_jerk; + SERIAL_ECHOPGM("LA10C: Linear Advance mode: "); switch(mode) { @@ -17,6 +28,9 @@ void la10c_mode_change(LA10C_MODE mode) case LA10C_LA10: SERIAL_ECHOLNPGM("1.0"); break; } la10c_mode = mode; + + // adjust the E-jerk if needed + cs.max_jerk[E_AXIS] = la10c_jerk(cs.max_jerk[E_AXIS]); } @@ -46,3 +60,29 @@ float la10c_value(float k) else return (k >= 0? la10c_convert(k): -1); } + + +float la10c_jerk(float j) +{ + la10c_orig_jerk = j; + + if(la10c_mode != LA10C_LA10) + return j; + + // check for a compatible range of values prior to convert (be sure that + // a higher E-jerk would still be compatible wrt the E accell range) + if(j < 4.5 && cs.max_acceleration_units_per_sq_second_normal[E_AXIS] < 2000) + return j; + + // bring low E-jerk values into equivalent LA 1.5 values by + // flattening the response in the (1-4.5) range using a piecewise + // function. Is it truly worth to preserve the difference between + // 1.5/2.5 E-jerk for LA1.0? Probably not, but we try nonetheless. + j = j < 1.0? j * 3.625: + j < 4.5? j * 0.25 + 3.375: + j; + + SERIAL_ECHOPGM("LA10C: Adjusted E-Jerk: "); + SERIAL_ECHOLN(j); + return j; +} diff --git a/Firmware/la10compat.h b/Firmware/la10compat.h index e6ffbc37b..5116eb278 100644 --- a/Firmware/la10compat.h +++ b/Firmware/la10compat.h @@ -5,6 +5,9 @@ // compatbility mode is active the K factor is converted to a LA15 // equivalent (that is, the return value is always a LA15 value). // +// E-jerk<2 is also bumped in LA10 mode to restore the the printing speed +// to values comparable to existing settings. +// // Once the interpretation mode has been set it is kept until the mode // is explicitly reset. This is done to handle transparent fallback for // old firmware revisions in combination with the following gcode @@ -31,9 +34,13 @@ enum __attribute__((packed)) LA10C_MODE LA10C_LA10 = 2 }; -// Explicitly set/reset the interpretation mode for la10c_value() +// Explicitly set/get/reset the interpretation mode for la10c_value() void la10c_mode_change(LA10C_MODE mode); +LA10C_MODE la10c_mode_get(); static inline void la10c_reset() { la10c_mode_change(LA10C_UNKNOWN); } // Return a LA15 K value according to the supplied value and mode float la10c_value(float k); + +// Return an updated LA15 E-jerk value according to the current mode +float la10c_jerk(float j); From 1f482adf557160f2417bb4e6235f460767740b07 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 3 Feb 2020 18:40:46 +0200 Subject: [PATCH 268/271] Improved lcd_menu_statistics() implementation --- Firmware/ultralcd.cpp | 50 ++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 38471b814..42848b781 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2794,9 +2794,9 @@ static void lcd_LoadFilament() //! //! @code{.unparsed} //! |01234567890123456789| -//! |Filament used: | c=18 r=1 -//! | 00.00m | -//! |Print time: | c=18 r=1 +//! |Filament used: | c=19 r=1 +//! | 0000.00m | +//! |Print time: | c=19 r=1 //! | 00h 00m 00s | //! ---------------------- //! @endcode @@ -2805,29 +2805,30 @@ static void lcd_LoadFilament() //! //! @code{.unparsed} //! |01234567890123456789| -//! |Total filament : | c=18 r=1 -//! | 000.00 m | -//! |Total print time : | c=18 r=1 -//! | 00d :00h :00 m | +//! |Total filament: | c=19 r=1 +//! | 0000.00m | +//! |Total print time: | c=19 r=1 +//! | 00d 00h 00m | //! ---------------------- //! @endcode //! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations. Translations missing for "d"days, "h"ours, "m"inutes", "s"seconds". void lcd_menu_statistics() { + lcd_timeoutToStatus.stop(); //infinite timeout if (IS_SD_PRINTING) { const float _met = ((float)total_filament_used) / (100000.f); const uint32_t _t = (_millis() - starttime) / 1000ul; - const int _h = _t / 3600; - const int _m = (_t - (_h * 3600ul)) / 60ul; - const int _s = _t - ((_h * 3600ul) + (_m * 60ul)); + const uint32_t _h = _t / 3600; + const uint8_t _m = (_t - (_h * 3600ul)) / 60ul; + const uint8_t _s = _t - ((_h * 3600ul) + (_m * 60ul)); - lcd_clear(); + lcd_home(); lcd_printf_P(_N( "%S:\n" - "%17.2fm \n" + "%18.2fm \n" "%S:\n" - "%2dh %02dm %02ds" + "%10ldh %02hhdm %02hhds" ), _i("Filament used"), _met, ////c=18 r=1 _i("Print time"), _h, _m, _s); ////c=18 r=1 @@ -2840,29 +2841,20 @@ void lcd_menu_statistics() uint8_t _hours, _minutes; uint32_t _days; float _filament_m = (float)_filament/100; -// int _filament_km = (_filament >= 100000) ? _filament / 100000 : 0; -// if (_filament_km > 0) _filament_m = _filament - (_filament_km * 100000); _days = _time / 1440; _hours = (_time - (_days * 1440)) / 60; _minutes = _time - ((_days * 1440) + (_hours * 60)); - lcd_clear(); + lcd_home(); lcd_printf_P(_N( "%S:\n" - "%17.2fm \n" + "%18.2fm \n" "%S:\n" - "%7ldd :%2hhdh :%02hhdm" - ), _i("Total filament"), _filament_m, _i("Total print time"), _days, _hours, _minutes); - KEEPALIVE_STATE(PAUSED_FOR_USER); - while (!lcd_clicked()) - { - manage_heater(); - manage_inactivity(true); - _delay(100); - } - KEEPALIVE_STATE(NOT_BUSY); - lcd_quick_feedback(); - menu_back(); + "%10ldd %02hhdh %02hhdm" + ), + _i("Total filament"), _filament_m, + _i("Total print time"), _days, _hours, _minutes); + menu_back_if_clicked_fb(); } } From 3ae5fa70cabc3f96c5093a07374458756977317f Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 3 Feb 2020 19:20:43 +0200 Subject: [PATCH 269/271] Fix comments --- Firmware/ultralcd.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 42848b781..cefd9b8c5 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2830,8 +2830,8 @@ void lcd_menu_statistics() "%S:\n" "%10ldh %02hhdm %02hhds" ), - _i("Filament used"), _met, ////c=18 r=1 - _i("Print time"), _h, _m, _s); ////c=18 r=1 + _i("Filament used"), _met, ////c=19 r=1 + _i("Print time"), _h, _m, _s); ////c=19 r=1 menu_back_if_clicked_fb(); } else @@ -2852,8 +2852,8 @@ void lcd_menu_statistics() "%S:\n" "%10ldd %02hhdh %02hhdm" ), - _i("Total filament"), _filament_m, - _i("Total print time"), _days, _hours, _minutes); + _i("Total filament"), _filament_m, ////c=19 r=1 + _i("Total print time"), _days, _hours, _minutes); ////c=19 r=1 menu_back_if_clicked_fb(); } } From f23dd6bed4c1c5e6b1617723a0971dea1cfbb189 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Tue, 4 Feb 2020 10:16:44 +0100 Subject: [PATCH 270/271] Hard reset to prusa3d/mk3 and added changes --- build.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 907b1e037..d44a4d890 100755 --- a/build.sh +++ b/build.sh @@ -1,5 +1,5 @@ #!/bin/bash -BUILD_ENV="1.0.6" +BUILD_ENV="1.0.6.1" SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" if [ ! -d "build-env" ]; then @@ -8,7 +8,8 @@ fi cd build-env || exit 2 if [ ! -f "PF-build-env-Linux64-$BUILD_ENV.zip" ]; then - wget https://github.com/mkbel/PF-build-env/releases/download/$BUILD_ENV/PF-build-env-Linux64-$BUILD_ENV.zip || exit 3 + #wget https://github.com/3d-gussner/PF-build-env-1/releases/download/$BUILD_ENV-Linux64/PF-build-env-Linux64-$BUILD_ENV.zip || exit 3 + wget https://github.com/prusa3d/PF-build-env/releases/download/$BUILD_ENV-Linux64/PF-build-env-Linux64-$BUILD_ENV.zip || exit 3 fi if [ ! -d "../../PF-build-env-$BUILD_ENV" ]; then From f1ccfd481ac8f6c5a0bae3779ff73df060bc1c92 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 4 Feb 2020 17:30:44 +0200 Subject: [PATCH 271/271] HEATER -> HOTEND --- Firmware/temperature.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 7517978be..54a782b01 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -2051,7 +2051,7 @@ public: } } }; -static const char m2hotend[] PROGMEM = "MINTEMP HEATER fixed"; +static const char m2hotend[] PROGMEM = "MINTEMP HOTEND fixed"; static const char m2bed[] PROGMEM = "MINTEMP BED fixed"; static alert_automaton_mintemp alert_automaton_hotend(m2hotend), alert_automaton_bed(m2bed);